summaryrefslogtreecommitdiff
path: root/SparkleShare
diff options
context:
space:
mode:
Diffstat (limited to 'SparkleShare')
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/AboutController.cs (renamed from SparkleShare/SparkleAboutController.cs)39
-rw-r--r--SparkleShare/Common/Avatars.cs (renamed from SparkleShare/SparkleAvatars.cs)23
-rw-r--r--SparkleShare/Common/BaseController.cs (renamed from SparkleShare/SparkleControllerBase.cs)576
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/BubblesController.cs (renamed from SparkleShare/SparkleBubblesController.cs)16
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/EventLogController.cs (renamed from SparkleShare/SparkleEventLogController.cs)109
-rwxr-xr-xSparkleShare/Common/HTML/event-log.html2
-rw-r--r--SparkleShare/Common/Images/Makefile.am (renamed from SparkleShare/Common/Pixmaps/Makefile.am)0
-rw-r--r--SparkleShare/Common/Images/Sources/about-dialog.svg (renamed from SparkleShare/Common/Pixmaps/Sources/about-dialog.svg)2
-rw-r--r--SparkleShare/Common/Images/Sources/actions.svg (renamed from SparkleShare/Common/Pixmaps/Sources/actions.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/app-icons.svg1550
-rw-r--r--SparkleShare/Common/Images/Sources/bitbucket.svg (renamed from SparkleShare/Common/Pixmaps/Sources/bitbucket.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/folder-icons-mac-yosemite.svg (renamed from SparkleShare/Common/Pixmaps/Sources/folder-icons-mac-yosemite.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/folder-icons-mac.svg (renamed from SparkleShare/Common/Pixmaps/Sources/folder-icons-mac.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/folder-icons-windows.svg (renamed from SparkleShare/Common/Pixmaps/Sources/folder-icons-windows.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/github.svg (renamed from SparkleShare/Common/Pixmaps/Sources/github.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/gitlab.svg195
-rw-r--r--SparkleShare/Common/Images/Sources/planio.svg182
-rw-r--r--SparkleShare/Common/Images/Sources/side-splash.svg (renamed from SparkleShare/Common/Pixmaps/Sources/side-splash.svg)2
-rw-r--r--SparkleShare/Common/Images/Sources/ssnet.svg (renamed from SparkleShare/Common/Pixmaps/Sources/ssnet.svg)0
-rw-r--r--SparkleShare/Common/Images/Sources/status-icons.svg (renamed from SparkleShare/Common/Pixmaps/Sources/status-icons.svg)64
-rw-r--r--SparkleShare/Common/Images/Sources/tutorial-slides.svg (renamed from SparkleShare/Common/Pixmaps/Sources/tutorial-slides.svg)2
-rw-r--r--SparkleShare/Common/Images/Sources/user-icon-default.svg (renamed from SparkleShare/Common/Pixmaps/Sources/user-icon-default.svg)0
-rwxr-xr-xSparkleShare/Common/Images/about.png (renamed from SparkleShare/Common/Pixmaps/about.png)bin66572 -> 66572 bytes
-rw-r--r--SparkleShare/Common/Images/about@2x.png (renamed from SparkleShare/Common/Pixmaps/about@2x.png)bin197165 -> 197165 bytes
-rw-r--r--SparkleShare/Common/Images/readme-banner.pngbin0 -> 137626 bytes
-rwxr-xr-xSparkleShare/Common/Images/side-splash.png (renamed from SparkleShare/Common/Pixmaps/side-splash.png)bin64937 -> 64937 bytes
-rw-r--r--SparkleShare/Common/Images/side-splash@2x.png (renamed from SparkleShare/Common/Pixmaps/side-splash@2x.png)bin189579 -> 189579 bytes
-rw-r--r--SparkleShare/Common/Images/text-balloon.png (renamed from SparkleShare/Common/Pixmaps/text-balloon.png)bin1118 -> 1118 bytes
-rw-r--r--SparkleShare/Common/Images/text-balloon@2x.png (renamed from SparkleShare/Common/Pixmaps/text-balloon@2x.png)bin2632 -> 2632 bytes
-rw-r--r--SparkleShare/Common/Images/tutorial-slide-1.png (renamed from SparkleShare/Common/Pixmaps/tutorial-slide-1.png)bin27962 -> 27962 bytes
-rw-r--r--SparkleShare/Common/Images/tutorial-slide-1@2x.png (renamed from SparkleShare/Common/Pixmaps/tutorial-slide-1@2x.png)bin71140 -> 71140 bytes
-rw-r--r--SparkleShare/Common/Images/tutorial-slide-2.png (renamed from SparkleShare/Common/Pixmaps/tutorial-slide-2.png)bin23261 -> 23261 bytes
-rw-r--r--SparkleShare/Common/Images/tutorial-slide-2@2x.png (renamed from SparkleShare/Common/Pixmaps/tutorial-slide-2@2x.png)bin63666 -> 63666 bytes
-rw-r--r--SparkleShare/Common/Images/user-icon-default.png (renamed from SparkleShare/Common/Pixmaps/user-icon-default.png)bin558 -> 558 bytes
-rw-r--r--SparkleShare/Common/Makefile.am4
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/NoteController.cs (renamed from SparkleShare/SparkleNoteController.cs)42
-rw-r--r--SparkleShare/Common/Pixmaps/Sources/app-icons.svg2009
-rw-r--r--SparkleShare/Common/Pixmaps/Sources/gitorious.svg63
-rw-r--r--SparkleShare/Common/Plugins/gitorious.pngbin1238 -> 0 bytes
-rw-r--r--SparkleShare/Common/Plugins/gitorious.xml20
-rw-r--r--SparkleShare/Common/Plugins/gitorious@2x.pngbin2751 -> 0 bytes
-rw-r--r--SparkleShare/Common/Plugins/planio.pngbin3232 -> 0 bytes
-rw-r--r--SparkleShare/Common/Plugins/planio@2x.pngbin4609 -> 0 bytes
-rw-r--r--SparkleShare/Common/Plugins/ssnet.pngbin1438 -> 0 bytes
-rw-r--r--SparkleShare/Common/Plugins/ssnet.xml19
-rw-r--r--SparkleShare/Common/Plugins/ssnet@2x.pngbin3701 -> 0 bytes
-rw-r--r--SparkleShare/Common/Presets/Makefile.am (renamed from SparkleShare/Common/Plugins/Makefile.am)11
-rw-r--r--SparkleShare/Common/Presets/bitbucket.png (renamed from SparkleShare/Common/Plugins/bitbucket.png)bin1202 -> 1202 bytes
-rw-r--r--SparkleShare/Common/Presets/bitbucket.xml (renamed from SparkleShare/Common/Plugins/bitbucket.xml)7
-rw-r--r--SparkleShare/Common/Presets/bitbucket@2x.png (renamed from SparkleShare/Common/Plugins/bitbucket@2x.png)bin2599 -> 2599 bytes
-rw-r--r--SparkleShare/Common/Presets/github.png (renamed from SparkleShare/Common/Plugins/github.png)bin1578 -> 1578 bytes
-rw-r--r--SparkleShare/Common/Presets/github.xml (renamed from SparkleShare/Common/Plugins/github.xml)9
-rw-r--r--SparkleShare/Common/Presets/github@2x.png (renamed from SparkleShare/Common/Plugins/github@2x.png)bin3633 -> 3633 bytes
-rw-r--r--SparkleShare/Common/Presets/gitlab.pngbin0 -> 1236 bytes
-rw-r--r--SparkleShare/Common/Presets/gitlab.xml21
-rw-r--r--SparkleShare/Common/Presets/gitlab@2x.pngbin0 -> 2966 bytes
-rw-r--r--SparkleShare/Common/Presets/own-server.png (renamed from SparkleShare/Common/Plugins/own-server.png)bin1161 -> 1161 bytes
-rw-r--r--SparkleShare/Common/Presets/own-server.xml (renamed from SparkleShare/Common/Plugins/own-server.xml)7
-rw-r--r--SparkleShare/Common/Presets/own-server@2x.png (renamed from SparkleShare/Common/Plugins/own-server@2x.png)bin2409 -> 2409 bytes
-rw-r--r--SparkleShare/Common/Presets/parse_plugins.xsl (renamed from SparkleShare/Common/Plugins/parse_plugins.xsl)0
-rw-r--r--SparkleShare/Common/Presets/planio.pngbin0 -> 1499 bytes
-rw-r--r--SparkleShare/Common/Presets/planio.xml (renamed from SparkleShare/Common/Plugins/planio.xml)9
-rw-r--r--SparkleShare/Common/Presets/planio@2x.pngbin0 -> 3737 bytes
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/SetupController.cs (renamed from SparkleShare/SparkleSetupController.cs)259
-rw-r--r--SparkleShare/Common/SparkleShare.cs (renamed from SparkleShare/Program.cs)51
-rw-r--r--SparkleShare/Common/SparkleShare.projitems22
-rw-r--r--SparkleShare/Common/SparkleShare.shproj14
-rw-r--r--[-rwxr-xr-x]SparkleShare/Common/StatusIconController.cs (renamed from SparkleShare/SparkleStatusIconController.cs)220
-rwxr-xr-xSparkleShare/Common/Translations/nl.po2
-rwxr-xr-xSparkleShare/Linux/About.cs168
-rwxr-xr-xSparkleShare/Linux/Bubbles.cs (renamed from SparkleShare/Linux/SparkleBubbles.cs)22
-rw-r--r--SparkleShare/Linux/Controller.cs140
-rwxr-xr-xSparkleShare/Linux/EventLog.cs (renamed from SparkleShare/Linux/SparkleEventLog.cs)190
-rwxr-xr-xSparkleShare/Linux/Images/Makefile.am (renamed from SparkleShare/Linux/Pixmaps/Makefile.am)1
-rwxr-xr-xSparkleShare/Linux/Images/icons/Makefile.am4
-rw-r--r--[-rwxr-xr-x]SparkleShare/Linux/Images/icons/hicolor/Makefile.am (renamed from SparkleShare/Linux/Pixmaps/icons/Makefile.am)39
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/document-added-12.png (renamed from SparkleShare/Linux/Pixmaps/icons/document-added-12.png)bin193 -> 193 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/document-deleted-12.png (renamed from SparkleShare/Linux/Pixmaps/icons/document-deleted-12.png)bin117 -> 117 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/document-edited-12.png (renamed from SparkleShare/Linux/Pixmaps/icons/document-edited-12.png)bin428 -> 428 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/document-moved-12.png (renamed from SparkleShare/Linux/Pixmaps/icons/document-moved-12.png)bin445 -> 445 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/list-point-16.png (renamed from SparkleShare/Linux/Pixmaps/icons/list-point-16.png)bin575 -> 575 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-16.pngbin0 -> 879 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-22.pngbin0 -> 1154 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-24.pngbin0 -> 1168 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-256.pngbin0 -> 17730 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-32.pngbin0 -> 1168 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-48.pngbin0 -> 2083 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-512.pngbin0 -> 44891 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-symbolic.svg (renamed from SparkleShare/Linux/Pixmaps/icons/gnome/sparkleshare-symbolic.svg)0
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-24.png)bin831 -> 831 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-48.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png)bin1679 -> 1679 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-down-24.png)bin768 -> 768 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-48.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png)bin1620 -> 1620 bytes
-rwxr-xr-xSparkleShare/Linux/Images/icons/hicolor/process-syncing-error-24.pngbin0 -> 1333 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-48.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png)bin2699 -> 2699 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-up-24.png)bin768 -> 768 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-48.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png)bin1588 -> 1588 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/hicolor/process-working-22.png (renamed from SparkleShare/Linux/Pixmaps/icons/process-working-22.png)bin4104 -> 4104 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/Makefile.am (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile.am)1
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-24.png)bin268 -> 268 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-down-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-down-24.png)bin271 -> 271 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-error-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-error-24.png)bin266 -> 266 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-idle-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-idle-24.png)bin361 -> 361 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-up-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-up-24.png)bin271 -> 271 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/Makefile.am (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile.am)0
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-24.png)bin252 -> 252 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-down-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-down-24.png)bin258 -> 258 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-error-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-error-24.png)bin250 -> 250 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-idle-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-idle-24.png)bin337 -> 337 bytes
-rw-r--r--SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-up-24.png (renamed from SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-up-24.png)bin259 -> 259 bytes
-rwxr-xr-xSparkleShare/Linux/Images/tutorial-slide-3.png (renamed from SparkleShare/Linux/Pixmaps/tutorial-slide-3.png)bin36876 -> 36876 bytes
-rw-r--r--SparkleShare/Linux/Makefile.am53
-rw-r--r--[-rwxr-xr-x]SparkleShare/Linux/Note.cs (renamed from SparkleShare/Linux/SparkleNote.cs)40
-rw-r--r--SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.am20
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/process-syncing-error-24.pngbin1017 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-16.pngbin689 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-22.pngbin926 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-24.pngbin1196 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-256.pngbin47701 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-32.pngbin1270 -> 0 bytes
-rwxr-xr-xSparkleShare/Linux/Pixmaps/icons/sparkleshare-48.pngbin2182 -> 0 bytes
-rw-r--r--SparkleShare/Linux/README.md88
-rwxr-xr-xSparkleShare/Linux/Setup.cs (renamed from SparkleShare/Linux/SparkleSetup.cs)234
-rw-r--r--[-rwxr-xr-x]SparkleShare/Linux/SetupWindow.cs (renamed from SparkleShare/Linux/SparkleSetupWindow.cs)55
-rwxr-xr-xSparkleShare/Linux/SparkleAbout.cs182
-rwxr-xr-xSparkleShare/Linux/SparkleController.cs205
-rwxr-xr-xSparkleShare/Linux/SparkleShare.Autostart.desktop7
-rw-r--r--SparkleShare/Linux/SparkleShare.Linux.csproj173
-rw-r--r--SparkleShare/Linux/SparkleUI.cs99
-rw-r--r--SparkleShare/Linux/StatusIcon.cs (renamed from SparkleShare/Linux/SparkleStatusIcon.cs)173
-rw-r--r--SparkleShare/Linux/UserInterface.cs114
-rwxr-xr-xSparkleShare/Linux/UserInterfaceHelpers.cs (renamed from SparkleShare/Linux/SparkleUIHelpers.cs)13
-rw-r--r--SparkleShare/Linux/org.sparkleshare.SparkleShare.Invites.desktop (renamed from SparkleShare/Linux/sparkleshare-invite-opener.desktop)3
-rw-r--r--SparkleShare/Linux/org.sparkleshare.SparkleShare.appdata.xml (renamed from SparkleShare/Linux/sparkleshare.appdata.xml)10
-rwxr-xr-xSparkleShare/Linux/org.sparkleshare.SparkleShare.desktop8
-rwxr-xr-xSparkleShare/Linux/sparkleshare.desktop9
-rwxr-xr-xSparkleShare/Linux/sparkleshare.in20
-rwxr-xr-xSparkleShare/Mac/AppDelegate.cs12
-rw-r--r--SparkleShare/Mac/Assets.xcassets/Contents.json6
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/Controller.cs (renamed from SparkleShare/Mac/SparkleController.cs)193
-rwxr-xr-xSparkleShare/Mac/Info.plist10
-rwxr-xr-xSparkleShare/Mac/MainMenu.xib.designer.cs4
-rw-r--r--SparkleShare/Mac/README.md19
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/Resources/sparkleshare-app.icnsbin143098 -> 370614 bytes
-rw-r--r--SparkleShare/Mac/SparkleShare.Mac.csproj340
-rw-r--r--SparkleShare/Mac/SparkleShare.csproj296
-rw-r--r--SparkleShare/Mac/SparkleShare.sln56
-rwxr-xr-xSparkleShare/Mac/SparkleUI.cs97
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/About.cs (renamed from SparkleShare/Mac/SparkleAbout.cs)97
-rwxr-xr-xSparkleShare/Mac/UserInterface/Bubbles.cs (renamed from SparkleShare/Mac/SparkleBubbles.cs)22
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/EventLog.cs (renamed from SparkleShare/Mac/SparkleEventLog.cs)224
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/Note.cs (renamed from SparkleShare/Mac/SparkleNote.cs)88
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/Setup.cs (renamed from SparkleShare/Mac/SparkleSetup.cs)395
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/SetupWindow.cs (renamed from SparkleShare/Mac/SparkleSetupWindow.cs)57
-rw-r--r--[-rwxr-xr-x]SparkleShare/Mac/UserInterface/StatusIcon.cs (renamed from SparkleShare/Mac/SparkleStatusIcon.cs)40
-rwxr-xr-xSparkleShare/Mac/UserInterface/UserInterface.cs89
-rwxr-xr-xSparkleShare/Mac/Watcher.cs (renamed from SparkleShare/Mac/SparkleMacWatcher.cs)10
-rwxr-xr-xSparkleShare/Mac/checkGit.sh24
-rw-r--r--SparkleShare/Mac/config28
-rw-r--r--SparkleShare/Mac/git.download1
-rw-r--r--SparkleShare/Mac/git.version1
-rwxr-xr-xSparkleShare/Mac/packReleaseDist.sh7
-rwxr-xr-xSparkleShare/Mac/postBuild.sh7
-rw-r--r--SparkleShare/SparkleExtensions.cs35
-rw-r--r--SparkleShare/SparkleInvite.cs120
-rw-r--r--SparkleShare/SparkleKeys.cs105
-rw-r--r--SparkleShare/SparklePlugin.cs123
-rw-r--r--SparkleShare/Windows/Images/folder.png (renamed from SparkleShare/Windows/Pixmaps/folder.png)bin639 -> 639 bytes
-rw-r--r--SparkleShare/Windows/Images/process-syncing-down.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-down.png)bin352 -> 352 bytes
-rw-r--r--SparkleShare/Windows/Images/process-syncing-error.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-error.png)bin300 -> 300 bytes
-rw-r--r--SparkleShare/Windows/Images/process-syncing-idle.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-idle.png)bin433 -> 433 bytes
-rw-r--r--SparkleShare/Windows/Images/process-syncing-up.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-up.png)bin357 -> 357 bytes
-rw-r--r--SparkleShare/Windows/Images/process-syncing.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing.png)bin288 -> 288 bytes
-rw-r--r--SparkleShare/Windows/Images/sparkleshare-app.ico (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-app.ico)bin68092 -> 68092 bytes
-rw-r--r--SparkleShare/Windows/Images/sparkleshare-folder.ico (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico)bin38403 -> 38403 bytes
-rw-r--r--SparkleShare/Windows/Images/sparkleshare-folder.png (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-folder.png)bin633 -> 633 bytes
-rw-r--r--SparkleShare/Windows/Images/tutorial-slide-3.png (renamed from SparkleShare/Windows/Pixmaps/tutorial-slide-3.png)bin24292 -> 24292 bytes
-rw-r--r--SparkleShare/Windows/README.md4
-rw-r--r--SparkleShare/Windows/SparkleController.cs270
-rw-r--r--SparkleShare/Windows/SparkleEventLog.cs372
-rw-r--r--SparkleShare/Windows/SparkleEventLogWindow.xaml38
-rw-r--r--SparkleShare/Windows/SparkleEventLogWindow.xaml.cs262
-rw-r--r--SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj71
-rw-r--r--SparkleShare/Windows/SparkleLib/SparkleLib.csproj97
-rw-r--r--SparkleShare/Windows/SparkleShare.Windows.csproj337
-rw-r--r--SparkleShare/Windows/SparkleShare.csproj294
-rw-r--r--SparkleShare/Windows/SparkleShare.sln49
-rw-r--r--SparkleShare/Windows/SparkleShare.vssettings2
-rw-r--r--SparkleShare/Windows/SparkleShare.wxs8
-rw-r--r--SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj20
-rw-r--r--SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs2
-rw-r--r--SparkleShare/Windows/UserInterface/About.cs (renamed from SparkleShare/Windows/SparkleAbout.cs)17
-rw-r--r--SparkleShare/Windows/UserInterface/Bubbles.cs (renamed from SparkleShare/Windows/SparkleBubbles.cs)14
-rw-r--r--SparkleShare/Windows/UserInterface/Controller.cs199
-rw-r--r--SparkleShare/Windows/UserInterface/EventLog.cs347
-rw-r--r--SparkleShare/Windows/UserInterface/Note.xaml (renamed from SparkleShare/Windows/SparkleNote.xaml)4
-rw-r--r--SparkleShare/Windows/UserInterface/Note.xaml.cs (renamed from SparkleShare/Windows/SparkleNote.xaml.cs)22
-rw-r--r--SparkleShare/Windows/UserInterface/NotifyIcon.cs (renamed from SparkleShare/Windows/SparkleNotifyIcon.cs)376
-rw-r--r--SparkleShare/Windows/UserInterface/ProtocolHandler.cs74
-rw-r--r--SparkleShare/Windows/UserInterface/Setup.cs (renamed from SparkleShare/Windows/SparkleSetup.cs)199
-rw-r--r--SparkleShare/Windows/UserInterface/SetupWindow.cs (renamed from SparkleShare/Windows/SparkleSetupWindow.cs)386
-rw-r--r--SparkleShare/Windows/UserInterface/Shortcut.cs (renamed from SparkleShare/Windows/SparkleShortcut.cs)5
-rw-r--r--SparkleShare/Windows/UserInterface/Spinner.cs (renamed from SparkleShare/Windows/SparkleSpinner.cs)182
-rw-r--r--SparkleShare/Windows/UserInterface/StatusIcon.cs (renamed from SparkleShare/Windows/SparkleStatusIcon.cs)40
-rw-r--r--SparkleShare/Windows/UserInterface/UserInterface.cs (renamed from SparkleShare/Windows/SparkleUI.cs)40
-rw-r--r--SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs (renamed from SparkleShare/Windows/SparkleUIHelpers.cs)12
-rw-r--r--SparkleShare/Windows/app.config3
-rw-r--r--SparkleShare/Windows/build.cmd2
-rw-r--r--SparkleShare/Windows/packages.config7
209 files changed, 6252 insertions, 7631 deletions
diff --git a/SparkleShare/SparkleAboutController.cs b/SparkleShare/Common/AboutController.cs
index 58a4c8d..9f7436e 100755..100644
--- a/SparkleShare/SparkleAboutController.cs
+++ b/SparkleShare/Common/AboutController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -19,9 +19,11 @@ using System;
using System.Net;
using System.Threading;
+using Sparkles;
+
namespace SparkleShare {
- public class SparkleAboutController {
+ public class AboutController {
public event Action ShowWindowEvent = delegate { };
public event Action HideWindowEvent = delegate { };
@@ -29,21 +31,21 @@ namespace SparkleShare {
public event UpdateLabelEventDelegate UpdateLabelEvent = delegate { };
public delegate void UpdateLabelEventDelegate (string text);
- public readonly string WebsiteLinkAddress = "http://www.sparkleshare.org/";
- public readonly string CreditsLinkAddress = "http://github.com/hbons/SparkleShare/blob/master/legal/Authors.txt";
- public readonly string ReportProblemLinkAddress = "http://www.github.com/hbons/SparkleShare/issues";
- public readonly string DebugLogLinkAddress = "file://" + Program.Controller.Config.LogFilePath;
+ public readonly string WebsiteLinkAddress = "https://www.sparkleshare.org/";
+ public readonly string CreditsLinkAddress = "https://github.com/hbons/SparkleShare/blob/master/legal/Authors.txt";
+ public readonly string ReportProblemLinkAddress = "https://www.github.com/hbons/SparkleShare/issues";
+ public readonly string DebugLogLinkAddress = "file://" + SparkleShare.Controller.Config.LogFilePath;
public string RunningVersion;
- public SparkleAboutController ()
+ public AboutController ()
{
- RunningVersion = SparkleLib.SparkleBackend.Version;
+ RunningVersion = InstallationInfo.Version;
- Program.Controller.ShowAboutWindowEvent += delegate {
+ SparkleShare.Controller.ShowAboutWindowEvent += delegate {
ShowWindowEvent ();
- new Thread (() => CheckForNewVersion ()).Start ();
+ new Thread (CheckForNewVersion).Start ();
};
}
@@ -54,24 +56,25 @@ namespace SparkleShare {
}
- private void CheckForNewVersion ()
+ void CheckForNewVersion ()
{
- UpdateLabelEvent ("Checking for updates...");
+ UpdateLabelEvent ("Checking for updates…");
Thread.Sleep (500);
- WebClient web_client = new WebClient ();
- Uri uri = new Uri ("http://www.sparkleshare.org/version");
+ var web_client = new WebClient ();
+ var uri = new Uri ("http://www.sparkleshare.org/version");
try {
- string latest_version = web_client.DownloadString (uri).Trim ();
+ string latest_version = web_client.DownloadString (uri);
+ latest_version = latest_version.Trim ();
if (new Version (latest_version) > new Version (RunningVersion))
- UpdateLabelEvent ("A newer version (" + latest_version + ") is available!");
+ UpdateLabelEvent ("An update (version " + latest_version + ") is available!");
else
- UpdateLabelEvent ("You are running the latest version.");
+ UpdateLabelEvent ("✓ You are running the latest version");
} catch {
- UpdateLabelEvent ("Version check failed.");
+ UpdateLabelEvent ("Couldn’t check for updates\t");
}
}
}
diff --git a/SparkleShare/SparkleAvatars.cs b/SparkleShare/Common/Avatars.cs
index 2562e9f..058dbc4 100644
--- a/SparkleShare/SparkleAvatars.cs
+++ b/SparkleShare/Common/Avatars.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -23,13 +23,13 @@ using System.Net.Mime;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare
{
- public static class SparkleAvatars
+ public static class Avatars
{
- private static List<string> skipped_avatars = new List<string> ();
+ static List<string> skipped_avatars = new List<string> ();
public static string GetAvatar (string email, int size, string target_path)
@@ -43,8 +43,7 @@ namespace SparkleShare
if (skipped_avatars.Contains (email))
return null;
- string avatars_path = new string [] { Path.GetDirectoryName (target_path),
- "avatars", size + "x" + size }.Combine ();
+ string avatars_path = Path.Combine (Path.GetDirectoryName (target_path), "avatars", size + "x" + size);
// Search avatars by file name, ignore extension
// Delete files over a day old
@@ -64,11 +63,11 @@ namespace SparkleShare
avatar_file_path = Path.Combine (avatars_path, email.MD5 ());
} catch (InvalidOperationException e) {
- SparkleLogger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
+ Logger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
return null;
}
- WebClient client = new WebClient ();
+ var client = new WebClient ();
string url = "https://gravatar.com/avatar/" + email.MD5 () + ".png?s=" + size + "&d=404";
try {
@@ -87,11 +86,11 @@ namespace SparkleShare
if (buffer.Length > 255) {
if (!Directory.Exists (avatars_path)) {
Directory.CreateDirectory (avatars_path);
- SparkleLogger.LogInfo ("Avatars", "Created '" + avatars_path + "'");
+ Logger.LogInfo ("Avatars", "Created '" + avatars_path + "'");
}
File.WriteAllBytes (avatar_file_path, buffer);
- SparkleLogger.LogInfo ("Avatars", "Fetched " + size + "x" + size + " avatar for " + email);
+ Logger.LogInfo ("Avatars", "Fetched " + size + "x" + size + " avatar for " + email);
return avatar_file_path;
@@ -100,7 +99,7 @@ namespace SparkleShare
}
} catch (Exception e) {
- SparkleLogger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
+ Logger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
skipped_avatars.Add (email);
return null;
@@ -121,7 +120,7 @@ namespace SparkleShare
string gravatar_cert_fingerprint = "1264B3F00814C6077D3853238771EE67FB6321C9";
if (!certificate2.Thumbprint.Equals (gravatar_cert_fingerprint)) {
- SparkleLogger.LogInfo ("Avatars", "Invalid certificate for https://www.gravatar.com/");
+ Logger.LogInfo ("Avatars", "Invalid certificate for https://www.gravatar.com/");
return false;
}
diff --git a/SparkleShare/SparkleControllerBase.cs b/SparkleShare/Common/BaseController.cs
index 2f7e95f..ddca2c2 100644
--- a/SparkleShare/SparkleControllerBase.cs
+++ b/SparkleShare/Common/BaseController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -21,13 +21,13 @@ using System.IO;
using System.Linq;
using System.Threading;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- public abstract class SparkleControllerBase {
+ public abstract class BaseController {
- public SparkleRepoBase [] Repositories {
+ public BaseRepository [] Repositories {
get {
lock (this.repo_lock)
return this.repositories.GetRange (0, this.repositories.Count).ToArray ();
@@ -35,7 +35,7 @@ namespace SparkleShare {
}
- private void AddRepository (SparkleRepoBase repo)
+ void AddRepository (BaseRepository repo)
{
lock (this.repo_lock) {
this.repositories.Add (repo);
@@ -44,17 +44,17 @@ namespace SparkleShare {
}
- private void RemoveRepository (SparkleRepoBase repo)
+ void RemoveRepository (BaseRepository repo)
{
lock (this.repo_lock)
this.repositories.Remove (repo);
}
- public SparkleRepoBase GetRepoByName (string name)
+ public BaseRepository GetRepoByName (string name)
{
lock (this.repo_lock) {
- foreach (SparkleRepoBase repo in this.repositories)
+ foreach (BaseRepository repo in this.repositories)
if (repo.Name.Equals (name))
return repo;
}
@@ -63,15 +63,16 @@ namespace SparkleShare {
}
- public SparkleConfig Config { get; private set; }
+ public Configuration Config { get; private set; }
public bool RepositoriesLoaded { get; private set; }
public string FoldersPath { get; private set; }
- public double ProgressPercentage = 0.0;
- public double ProgressSpeedUp = 0.0;
- public double ProgressSpeedDown = 0.0;
-
-
+ public double ProgressPercentage = 0.0;
+ public double ProgressSpeedUp = 0.0;
+ public double ProgressSpeedDown = 0.0;
+ public string ProgressInformation = "";
+
+
public event ShowSetupWindowEventHandler ShowSetupWindowEvent = delegate { };
public delegate void ShowSetupWindowEventHandler (PageType page_type);
@@ -88,7 +89,7 @@ namespace SparkleShare {
public delegate void FolderFetchErrorHandler (string remote_url, string [] errors);
public event FolderFetchingHandler FolderFetching = delegate { };
- public delegate void FolderFetchingHandler (double percentage, double speed);
+ public delegate void FolderFetchingHandler (double percentage, double speed, string information);
public event Action FolderListChanged = delegate { };
@@ -101,7 +102,7 @@ namespace SparkleShare {
public delegate void InviteReceivedHandler (SparkleInvite invite);
public event NotificationRaisedEventHandler NotificationRaised = delegate { };
- public delegate void NotificationRaisedEventHandler (SparkleChangeSet change_set);
+ public delegate void NotificationRaisedEventHandler (ChangeSet change_set);
public event AlertNotificationRaisedEventHandler AlertNotificationRaised = delegate { };
public delegate void AlertNotificationRaisedEventHandler (string title, string message);
@@ -117,12 +118,16 @@ namespace SparkleShare {
return folders;
}
}
-
- public SparkleUser CurrentUser {
+
+
+ public User CurrentUser {
get { return Config.User; }
set { Config.User = value; }
}
-
+
+ public SSHAuthenticationInfo UserAuthenticationInfo;
+
+
public bool NotificationsEnabled {
get {
string notifications_enabled = Config.GetConfigOption ("notifications");
@@ -150,20 +155,19 @@ namespace SparkleShare {
// Path where the plugins are kept
- public abstract string PluginsPath { get; }
+ public abstract string PresetsPath { get; }
// Enables SparkleShare to start automatically at login
public abstract void CreateStartupItem ();
-
+
// Installs the sparkleshare:// protocol handler
public abstract void InstallProtocolHandler ();
-
- // Adds the SparkleShare folder to the user's
- // list of bookmarked places
- public abstract void AddToBookmarks ();
-
+
+ // Installs the sparkleshare:// protocol handler
+ public abstract void SetFolderIcon ();
+
// Creates the SparkleShare folder in the user's home folder
- public abstract bool CreateSparkleShareFolder ();
+ public abstract void CreateSparkleShareFolder ();
// Opens the SparkleShare folder or an (optional) subfolder
public abstract void OpenFolder (string path);
@@ -182,85 +186,53 @@ namespace SparkleShare {
public abstract string EventEntryHTML { get; }
- private SparkleFetcherBase fetcher;
- private FileSystemWatcher watcher;
- private Object repo_lock = new Object ();
- private Object check_repos_lock = new Object ();
- private List<SparkleRepoBase> repositories = new List<SparkleRepoBase> ();
- private bool lost_folders_path = false;
+ BaseFetcher fetcher;
+ FileSystemWatcher watcher;
+ object repo_lock = new object ();
+ object check_repos_lock = new object ();
+ List<BaseRepository> repositories = new List<BaseRepository> ();
+ bool lost_folders_path = false;
- public SparkleControllerBase ()
+ public BaseController (Configuration config)
{
-
- string app_data_path = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
- string config_path = Path.Combine (app_data_path, "sparkleshare");
-
- Config = new SparkleConfig (config_path, "config.xml");
- SparkleConfig.DefaultConfig = Config;
- FoldersPath = Config.FoldersPath;
+ Config = config;
+ FoldersPath = Config.FoldersPath;
}
public virtual void Initialize ()
{
- SparkleLogger.LogInfo ("Environment", "SparkleShare version: " + SparkleLib.SparkleBackend.Version +
- ", Operating system: " + SparkleLib.SparkleBackend.Platform + " (" + Environment.OSVersion + ")");
-
- SparklePlugin.PluginsPath = PluginsPath;
+ string version = InstallationInfo.Version;
+
+ if (InstallationInfo.Directory.StartsWith ("/app", StringComparison.InvariantCulture))
+ version += " (Flatpak)";
+
+ Logger.LogInfo ("Environment", "SparkleShare " + version);
+ Logger.LogInfo ("Environment", "Git LFS " + Sparkles.Git.GitCommand.GitLFSVersion);
+ Logger.LogInfo ("Environment", "Git " + Sparkles.Git.GitCommand.GitVersion);
+
+ // TODO: Nice OS version names for Linux (Fedora 24, Ubuntu 16.04, etc.)
+ if (InstallationInfo.OperatingSystem == OS.Mac)
+ Logger.LogInfo ("Environment", InstallationInfo.MacOSVersion ());
+ else
+ Logger.LogInfo ("Environment", InstallationInfo.OperatingSystem + " (" + Environment.OSVersion + ")");
+
+ UserAuthenticationInfo = new SSHAuthenticationInfo ();
+ SSHAuthenticationInfo.DefaultAuthenticationInfo = UserAuthenticationInfo;
+
+ Preset.PresetsPath = PresetsPath;
InstallProtocolHandler ();
try {
- if (CreateSparkleShareFolder ())
- AddToBookmarks ();
-
+ CreateSparkleShareFolder ();
+
} catch (DirectoryNotFoundException) {
this.lost_folders_path = true;
}
-
- bool keys_imported = false;
-
- if (FirstRun) {
- Config.SetConfigOption ("notifications", bool.TrueString);
- } else {
- string keys_path = Path.GetDirectoryName (Config.FullPath);
- string key_file_path = "";
-
- foreach (string file_path in Directory.GetFiles (keys_path)) {
- string file_name = Path.GetFileName(file_path);
- if (file_name.EndsWith (".key")) {
- key_file_path = Path.Combine (keys_path, file_name);
-
- // Replace spaces with underscores in old keys
- if (file_name.Contains (" ")) {
- string new_file_name = file_name.Replace (" ", "_");
- File.Move (key_file_path, Path.Combine (keys_path, new_file_name));
- File.Move (key_file_path + ".pub", Path.Combine (keys_path, new_file_name + ".pub"));
- key_file_path = Path.Combine (keys_path, new_file_name);
- }
-
- SparkleKeys.ImportPrivateKey (key_file_path);
- keys_imported = true;
-
- break;
- }
- }
-
- if (keys_imported) {
- CurrentUser.PublicKey = File.ReadAllText (key_file_path + ".pub");
-
- } else {
- string [] key_pair = CreateKeys ();
-
- SparkleKeys.ImportPrivateKey (key_pair [0]);
- CurrentUser.PublicKey = File.ReadAllText (key_pair [1]);
- }
-
- SparkleKeys.ListPrivateKeys ();
- FolderListChanged (); // FIXME: Hacky way to update status icon menu to show the key
- }
-
+ SetFolderIcon ();
+
// Watch the SparkleShare folder
this.watcher = new FileSystemWatcher () {
Filter = "*",
@@ -269,14 +241,11 @@ namespace SparkleShare {
};
watcher.Created += OnFolderActivity;
- // FIXME watcher.Deleted += OnFolderActivity;
- // FIXME watcher.Renamed += OnFolderActivity;
-
watcher.EnableRaisingEvents = true;
}
- private int reopen_attempt_counts = 0;
+ int reopen_attempt_counts = 0;
public void HandleReopen ()
{
@@ -286,17 +255,17 @@ namespace SparkleShare {
} else if (reopen_attempt_counts > 1) {
AlertNotificationRaised ("Hello!", "SparkleShare sits right here, as a status icon.");
reopen_attempt_counts = 0;
-
+
} else {
reopen_attempt_counts++;
}
}
-
-
+
+
public void UIHasLoaded ()
{
if (this.lost_folders_path) {
- Program.UI.Bubbles.Controller.ShowBubble ("Where's your SparkleShare folder?",
+ SparkleShare.UI.Bubbles.Controller.ShowBubble ("Where's your SparkleShare folder?",
"Did you put it on a detached drive?", null);
Environment.Exit (-1);
@@ -305,16 +274,6 @@ namespace SparkleShare {
if (FirstRun) {
ShowSetupWindow (PageType.Setup);
- new Thread (() => {
- string [] key_pair = CreateKeys ();
-
- SparkleKeys.ImportPrivateKey (key_pair [0]);
- CurrentUser.PublicKey = File.ReadAllText (key_pair [1]);
-
- FolderListChanged (); // FIXME: Hacky way to update status icon menu to show the key
-
- }).Start ();
-
} else {
new Thread (() => {
StartupInviteScan ();
@@ -370,81 +329,80 @@ namespace SparkleShare {
}
- private void CheckRepositories ()
+ void CheckRepositories ()
{
lock (this.check_repos_lock) {
- string path = Config.FoldersPath;
-
- // Detect any renames
- foreach (string folder_path in Directory.GetDirectories (path)) {
+ DetectRepositoryRenames ();
+ RemoveDeletedRepositories ();
+ }
+
+ FolderListChanged ();
+ }
+
+
+ void DetectRepositoryRenames ()
+ {
+ foreach (string group_path in Directory.GetDirectories (Config.FoldersPath)) {
+ foreach (string folder_path in Directory.GetDirectories (group_path)) {
string folder_name = Path.GetFileName (folder_path);
-
- if (folder_name.Equals (".tmp"))
+
+ if (Config.IdentifierByName (folder_name) != null)
continue;
-
- if (Config.GetIdentifierForFolder (folder_name) == null) {
- string identifier_file_path = Path.Combine (folder_path, ".sparkleshare");
-
- if (!File.Exists (identifier_file_path))
- continue;
-
- string identifier = File.ReadAllText (identifier_file_path).Trim ();
-
- if (Config.IdentifierExists (identifier)) {
- RemoveRepository (GetRepoByName (folder_name));
- Config.RenameFolder (identifier, folder_name);
-
- string new_folder_path = Path.Combine (path, folder_name);
- AddRepository (new_folder_path);
-
- SparkleLogger.LogInfo ("Controller",
- "Renamed folder with identifier " + identifier + " to '" + folder_name + "'");
- }
- }
- }
-
- // Remove any deleted folders
- foreach (string folder_name in Config.Folders) {
- string folder_path = new SparkleFolder (folder_name).FullPath;
-
- if (!Directory.Exists (folder_path)) {
- Config.RemoveFolder (folder_name);
- RemoveRepository (GetRepoByName (folder_name));
-
- SparkleLogger.LogInfo ("Controller", "Removed folder '" + folder_name + "' from config");
-
- } else {
- AddRepository (folder_path);
- }
+
+ string identifier_file_path = Path.Combine (folder_path, ".sparkleshare");
+
+ if (!File.Exists (identifier_file_path))
+ continue;
+
+ string identifier = File.ReadAllText (identifier_file_path).Trim ();
+
+ if (!Config.IdentifierExists (identifier))
+ continue;
+
+ RemoveRepository (GetRepoByName (folder_name));
+ Config.RenameFolder (identifier, folder_name);
+
+ string new_folder_path = Path.Combine (group_path, folder_name);
+ AddRepository (new_folder_path);
+
+ Logger.LogInfo ("Controller",
+ "Renamed folder with identifier " + identifier + " to '" + folder_name + "'");
}
-
- // Remove any duplicate folders
- string previous_name = "";
- foreach (string folder_name in Config.Folders) {
- if (!string.IsNullOrEmpty (previous_name) && folder_name.Equals (previous_name))
- Config.RemoveFolder (folder_name);
- else
- previous_name = folder_name;
+ }
+ }
+
+
+ void RemoveDeletedRepositories ()
+ {
+ foreach (string folder_name in Config.Folders) {
+ string folder_path = new SparkleFolder (folder_name).FullPath;
+
+ if (!Directory.Exists (folder_path)) {
+ Config.RemoveFolder (folder_name);
+ RemoveRepository (GetRepoByName (folder_name));
+
+ Logger.LogInfo ("Controller", "Removed folder '" + folder_name + "' from config");
+
+ } else {
+ AddRepository (folder_path);
}
-
- FolderListChanged ();
}
}
-
-
- private void AddRepository (string folder_path)
+
+
+ void AddRepository (string folder_path)
{
- SparkleRepoBase repo = null;
- string folder_name = Path.GetFileName (folder_path);
- string backend = Config.GetBackendForFolder (folder_name);
+ BaseRepository repo = null;
+ string folder_name = Path.GetFileName (folder_path);
+ string backend = Config.BackendByName (folder_name);
try {
- repo = (SparkleRepoBase) Activator.CreateInstance (
- Type.GetType ("SparkleLib." + backend + ".SparkleRepo, SparkleLib." + backend),
- new object [] { folder_path, Config });
+ repo = (BaseRepository) Activator.CreateInstance (
+ Type.GetType ("Sparkles." + backend + "." + backend + "Repository, Sparkles." + backend),
+ new object [] { folder_path, Config, SSHAuthenticationInfo.DefaultAuthenticationInfo });
} catch (Exception e) {
- SparkleLogger.LogInfo ("Controller", "Failed to load backend '" + backend + "' for '" + folder_name + "': ", e);
+ Logger.LogInfo ("Controller", "Failed to load backend '" + backend + "' for '" + folder_name + "': ", e);
return;
}
@@ -454,23 +412,25 @@ namespace SparkleShare {
repo.SyncStatusChanged += delegate (SyncStatus status) {
if (status == SyncStatus.Idle) {
- ProgressPercentage = 0.0;
- ProgressSpeedUp = 0.0;
- ProgressSpeedDown = 0.0;
+ ProgressPercentage = 0.0;
+ ProgressSpeedUp = 0.0;
+ ProgressSpeedDown = 0.0;
+ ProgressInformation = "";
}
UpdateState ();
};
repo.ProgressChanged += delegate {
- ProgressPercentage = 0.0;
- ProgressSpeedUp = 0.0;
- ProgressSpeedDown = 0.0;
+ ProgressPercentage = 0.0;
+ ProgressSpeedUp = 0.0;
+ ProgressSpeedDown = 0.0;
+ ProgressInformation = "";
double percentage = 0.0;
int repo_count = 0;
- foreach (SparkleRepoBase rep in Repositories) {
+ foreach (BaseRepository rep in Repositories) {
if (rep.ProgressPercentage > 0) {
percentage += rep.ProgressPercentage;
repo_count++;
@@ -482,6 +442,9 @@ namespace SparkleShare {
if (rep.Status == SyncStatus.SyncDown)
ProgressSpeedDown += rep.ProgressSpeed;
}
+
+ if (repo_count == 1)
+ ProgressInformation = repo.ProgressInformation;
if (repo_count > 0)
ProgressPercentage = percentage / repo_count;
@@ -489,57 +452,47 @@ namespace SparkleShare {
UpdateState ();
};
- repo.NewChangeSet += delegate (SparkleChangeSet change_set) {
+ repo.NewChangeSet += delegate (ChangeSet change_set) {
if (AvatarsEnabled)
- change_set.User.AvatarFilePath = SparkleAvatars.GetAvatar (change_set.User.Email, 48, Config.FullPath);
+ change_set.User.AvatarFilePath = Avatars.GetAvatar (change_set.User.Email, 48, Config.DirectoryPath);
NotificationRaised (change_set);
};
repo.ConflictResolved += delegate {
- AlertNotificationRaised ("Resolved a file collision",
- "Local and server versions were kept.");
+ AlertNotificationRaised ("Resolved a file collision", "Local and server versions were kept.");
};
AddRepository (repo);
repo.Initialize ();
}
-
- private void OnFolderActivity (object o, FileSystemEventArgs args)
+
+ void OnFolderActivity (object o, FileSystemEventArgs args)
{
if (args != null && args.FullPath.EndsWith (".xml") &&
args.ChangeType == WatcherChangeTypes.Created) {
-
+
HandleInvite (args);
return;
-
- }/* else { FIXME: on the fly folder removal doesn't always work. disabling for now
- Thread.Sleep (1000);
-
- if (Directory.Exists (args.FullPath) && args.ChangeType == WatcherChangeTypes.Created)
- return;
-
- CheckRepositories ();
- }*/
+ }
}
- private void StartupInviteScan ()
+ void StartupInviteScan ()
{
- foreach (string invite in Directory.GetFiles (FoldersPath, "*.xml")) {
+ foreach (string invite in Directory.GetFiles (FoldersPath, "*.xml"))
HandleInvite (invite);
- }
}
- private void HandleInvite (FileSystemEventArgs args)
+ void HandleInvite (FileSystemEventArgs args)
{
HandleInvite (args.FullPath);
}
- private void HandleInvite (string path)
+ void HandleInvite (string path)
{
if (this.fetcher != null &&
this.fetcher.IsActive) {
@@ -572,12 +525,12 @@ namespace SparkleShare {
// Fires events for the current syncing state
- private void UpdateState ()
+ void UpdateState ()
{
bool has_unsynced_repos = false;
bool has_syncing_repos = false;
- foreach (SparkleRepoBase repo in Repositories) {
+ foreach (BaseRepository repo in Repositories) {
if (repo.Status == SyncStatus.SyncDown || repo.Status == SyncStatus.SyncUp || repo.IsBuffering) {
has_syncing_repos = true;
break;
@@ -595,31 +548,35 @@ namespace SparkleShare {
OnIdle ();
}
-
+
+ public List<StorageTypeInfo> FetcherAvailableStorageTypes {
+ get {
+ return this.fetcher.AvailableStorageTypes;
+ }
+ }
+
+
public void StartFetcher (SparkleFetcherInfo info)
{
- string tmp_path = Config.TmpPath;
-
- if (!Directory.Exists (tmp_path)) {
- Directory.CreateDirectory (tmp_path);
- File.SetAttributes (tmp_path, File.GetAttributes (tmp_path) | FileAttributes.Hidden);
- }
-
string canonical_name = Path.GetFileName (info.RemotePath);
string backend = info.Backend;
if (string.IsNullOrEmpty (backend))
- backend = SparkleFetcherBase.GetBackend (info.Address);
+ backend = BaseFetcher.GetBackend (info.Address);
- info.TargetDirectory = Path.Combine (tmp_path, canonical_name);
+ info.TargetDirectory = Path.Combine (Config.TmpPath, canonical_name);
+
+ if (Directory.Exists (info.TargetDirectory))
+ Directory.Delete (info.TargetDirectory, true);
try {
- this.fetcher = (SparkleFetcherBase) Activator.CreateInstance (
- Type.GetType ("SparkleLib." + backend + ".SparkleFetcher, SparkleLib." + backend), info);
+ this.fetcher = (BaseFetcher) Activator.CreateInstance (
+ Type.GetType ("Sparkles." + backend + "." + backend + "Fetcher, Sparkles." + backend),
+ new object [] { info, UserAuthenticationInfo});
} catch (Exception e) {
- SparkleLogger.LogInfo ("Controller",
- "Failed to load '" + backend + "' backend for '" + canonical_name + "' " + e.Message);
+ Logger.LogInfo ("Controller",
+ "Failed to load '" + backend + "' backend for '" + canonical_name + "' " + e.Message);
FolderFetchError (Path.Combine (info.Address, info.RemotePath).Replace (@"\", "/"),
new string [] {"Failed to load \"" + backend + "\" backend for \"" + canonical_name + "\""});
@@ -627,31 +584,43 @@ namespace SparkleShare {
return;
}
- this.fetcher.Finished += delegate (bool repo_is_encrypted, bool repo_is_empty, string [] warnings) {
- if (repo_is_encrypted && repo_is_empty) {
- ShowSetupWindowEvent (PageType.CryptoSetup);
-
- } else if (repo_is_encrypted) {
- ShowSetupWindowEvent (PageType.CryptoPassword);
-
- } else {
- FinishFetcher ();
- }
- };
-
- this.fetcher.Failed += delegate {
- FolderFetchError (this.fetcher.RemoteUrl.ToString (), this.fetcher.Errors);
- StopFetcher ();
- };
-
- this.fetcher.ProgressChanged += delegate (double percentage, double speed) {
- FolderFetching (percentage, speed);
- };
-
+ this.fetcher.Finished += FetcherFinishedDelegate;
+ this.fetcher.Failed += FetcherFailedDelegate;
+ this.fetcher.ProgressChanged += FetcherProgressChangedDelgate;
+
this.fetcher.Start ();
}
-
-
+
+
+ void FetcherFinishedDelegate (StorageType storage_type, string [] warnings)
+ {
+ if (storage_type == StorageType.Unknown) {
+ ShowSetupWindow (PageType.StorageSetup);
+ return;
+ }
+
+ if (storage_type == StorageType.Encrypted) {
+ ShowSetupWindowEvent (PageType.CryptoPassword);
+ return;
+ }
+
+ FinishFetcher (storage_type);
+ }
+
+
+ void FetcherFailedDelegate ()
+ {
+ FolderFetchError (this.fetcher.RemoteUrl.ToString (), this.fetcher.Errors);
+ StopFetcher ();
+ }
+
+
+ void FetcherProgressChangedDelgate (double percentage, double speed, string information)
+ {
+ FolderFetching (percentage, speed, information);
+ }
+
+
public void StopFetcher ()
{
this.fetcher.Stop ();
@@ -666,60 +635,36 @@ namespace SparkleShare {
{
return this.fetcher.IsFetchedRepoPasswordCorrect (password);
}
-
-
- public void FinishFetcher (string password)
+
+
+ public void FinishFetcher (StorageType selected_storage_type, string password)
{
this.fetcher.EnableFetchedRepoCrypto (password);
- FinishFetcher ();
- }
+ FinishFetcher (StorageType.Encrypted);
+ } // TODO: make this the main method. password optional. need to know storage type before Complete to allow crypto in lfs
+ // Make sure IsCryptoPasswordCorrect works with SparkleShare.txt checkout and LFS
- public void FinishFetcher ()
+ public void FinishFetcher (StorageType selected_storage_type)
{
this.watcher.EnableRaisingEvents = false;
-
- this.fetcher.Complete ();
- string canonical_name = Path.GetFileName (this.fetcher.RemoteUrl.AbsolutePath);
-
- if (canonical_name.EndsWith (".git"))
- canonical_name = canonical_name.Replace (".git", "");
-
- canonical_name = canonical_name.Replace ("-crypto", "");
- canonical_name = canonical_name.ReplaceUnderscoreWithSpace ();
- canonical_name = canonical_name.Replace ("%20", " ");
-
- bool target_folder_exists = Directory.Exists (
- Path.Combine (Config.FoldersPath, canonical_name));
-
- // Add a numbered suffix to the name if a folder with the same name
- // already exists. Example: "Folder (2)"
- int suffix = 1;
- while (target_folder_exists) {
- suffix++;
- target_folder_exists = Directory.Exists (
- Path.Combine (Config.FoldersPath, canonical_name + " (" + suffix + ")"));
- }
-
- string target_folder_name = canonical_name;
-
- if (suffix > 1)
- target_folder_name += " (" + suffix + ")";
-
- string target_folder_path = Path.Combine (Config.FoldersPath, target_folder_name);
-
+ string identifier = this.fetcher.Complete (selected_storage_type);
+
+ string target_folder_path = DetermineFolderPath ();
+ string target_folder_name = Path.GetFileName (target_folder_path);
+
try {
Directory.Move (this.fetcher.TargetFolder, target_folder_path);
} catch (Exception e) {
- SparkleLogger.LogInfo ("Controller", "Error moving directory, trying again...", e);
+ Logger.LogInfo ("Controller", "Error moving directory, trying again...", e);
try {
ClearDirectoryAttributes (this.fetcher.TargetFolder);
Directory.Move (this.fetcher.TargetFolder, target_folder_path);
} catch (Exception x) {
- SparkleLogger.LogInfo ("Controller", "Error moving directory", x);
+ Logger.LogInfo ("Controller", "Error moving directory", x);
this.fetcher.Dispose ();
this.fetcher = null;
@@ -727,70 +672,77 @@ namespace SparkleShare {
return;
}
}
+
+ string backend = BaseFetcher.GetBackend (this.fetcher.RemoteUrl.ToString ());
- string backend = SparkleFetcherBase.GetBackend (this.fetcher.RemoteUrl.ToString ());
-
- Config.AddFolder (target_folder_name, this.fetcher.Identifier,
- this.fetcher.RemoteUrl.ToString (), backend);
-
+ Config.AddFolder (target_folder_name, identifier, this.fetcher.RemoteUrl.ToString (), backend);
+
+ if (this.fetcher.FetchedRepoStorageType != StorageType.Plain) {
+ Config.SetFolderOptionalAttribute (target_folder_name,
+ "storage_type", this.fetcher.FetchedRepoStorageType.ToString ());
+ }
+
if (this.fetcher.OriginalFetcherInfo.AnnouncementsUrl != null) {
Config.SetFolderOptionalAttribute (target_folder_name, "announcements_url",
- this.fetcher.OriginalFetcherInfo.AnnouncementsUrl);
+ this.fetcher.OriginalFetcherInfo.AnnouncementsUrl);
}
-
- RepositoriesLoaded = true;
- FolderFetched (this.fetcher.RemoteUrl.ToString (), this.fetcher.Warnings.ToArray ());
-
+
AddRepository (target_folder_path);
+ RepositoriesLoaded = true;
+
FolderListChanged ();
+ FolderFetched (this.fetcher.RemoteUrl.ToString (), this.fetcher.Warnings.ToArray ());
this.fetcher.Dispose ();
this.fetcher = null;
this.watcher.EnableRaisingEvents = true;
}
+
+
+ string DetermineFolderPath ()
+ {
+ string folder_name = this.fetcher.FormatName ();
+ string folder_group_path = Path.Combine (Config.FoldersPath, this.fetcher.RemoteUrl.Host);
+ string folder_path = Path.Combine (Config.FoldersPath, folder_group_path, folder_name);
+
+ if (!Directory.Exists (folder_path)) {
+ if (!Directory.Exists (folder_group_path))
+ Directory.CreateDirectory (folder_group_path);
+
+ return folder_path;
+ }
+
+ // Add a number suffix when needed, e.g. "Folder (3)"
+ int suffix = 2 + Directory.GetDirectories (folder_group_path, folder_name + " (*").Length;
+ return string.Format ("{0} ({1})", folder_path, suffix);
+ }
public virtual void Quit ()
{
- foreach (SparkleRepoBase repo in Repositories)
+ foreach (BaseRepository repo in Repositories)
repo.Dispose ();
Environment.Exit (0);
}
-
-
- private void ClearDirectoryAttributes (string path)
+
+
+ void ClearDirectoryAttributes (string path)
{
if (!Directory.Exists (path))
return;
-
+
string [] folders = Directory.GetDirectories (path);
-
+
foreach (string folder in folders)
ClearDirectoryAttributes (folder);
-
- string [] files = Directory.GetFiles(path);
-
+
+ string [] files = Directory.GetFiles (path);
+
foreach (string file in files)
- if (!IsSymlink (file))
+ if (file.IsSymlink ())
File.SetAttributes (file, FileAttributes.Normal);
}
-
-
- private string [] CreateKeys ()
- {
- string keys_path = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath);
- string key_file_name = DateTime.Now.ToString ("yyyy-MM-dd_HH\\hmm");
-
- return SparkleKeys.GenerateKeyPair (keys_path, key_file_name);
- }
-
-
- private bool IsSymlink (string file)
- {
- FileAttributes attributes = File.GetAttributes (file);
- return ((attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint);
- }
}
}
diff --git a/SparkleShare/SparkleBubblesController.cs b/SparkleShare/Common/BubblesController.cs
index b3eca17..8fba4a4 100755..100644
--- a/SparkleShare/SparkleBubblesController.cs
+++ b/SparkleShare/Common/BubblesController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -15,26 +15,24 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-using System;
using System.Text;
-
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- public class SparkleBubblesController {
+ public class BubblesController {
public event ShowBubbleEventHandler ShowBubbleEvent = delegate { };
public delegate void ShowBubbleEventHandler (string title, string subtext, string image_path);
- public SparkleBubblesController ()
+ public BubblesController ()
{
- Program.Controller.AlertNotificationRaised += delegate (string title, string message) {
+ SparkleShare.Controller.AlertNotificationRaised += delegate (string title, string message) {
ShowBubble (title, message, null);
};
- Program.Controller.NotificationRaised += delegate (SparkleChangeSet change_set) {
+ SparkleShare.Controller.NotificationRaised += delegate (ChangeSet change_set) {
ShowBubble (change_set.User.Name, change_set.ToMessage (), change_set.User.AvatarFilePath);
};
}
@@ -53,7 +51,7 @@ namespace SparkleShare {
public void BubbleClicked ()
{
- Program.Controller.ShowEventLogWindow ();
+ SparkleShare.Controller.ShowEventLogWindow ();
}
}
}
diff --git a/SparkleShare/SparkleEventLogController.cs b/SparkleShare/Common/EventLogController.cs
index fea2e65..78831af 100755..100644
--- a/SparkleShare/SparkleEventLogController.cs
+++ b/SparkleShare/Common/EventLogController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -24,11 +24,11 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- public class SparkleEventLogController {
+ public class EventLogController {
public event Action ShowWindowEvent = delegate { };
public event Action HideWindowEvent = delegate { };
@@ -84,7 +84,7 @@ namespace SparkleShare {
public string HTML {
get {
- List<SparkleChangeSet> change_sets = GetLog (this.selected_folder);
+ List<ChangeSet> change_sets = GetLog (this.selected_folder);
string html = GetHTMLLog (change_sets);
return html;
@@ -93,7 +93,7 @@ namespace SparkleShare {
public string [] Folders {
get {
- return Program.Controller.Folders.ToArray ();
+ return SparkleShare.Controller.Folders.ToArray ();
}
}
@@ -101,7 +101,7 @@ namespace SparkleShare {
get {
double size = 0;
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
if (this.selected_folder == null) {
size += repo.Size;
@@ -124,7 +124,7 @@ namespace SparkleShare {
get {
double size = 0;
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
if (this.selected_folder == null) {
size += repo.HistorySize;
@@ -144,9 +144,9 @@ namespace SparkleShare {
}
- public SparkleEventLogController ()
+ public EventLogController ()
{
- Program.Controller.ShowEventLogWindowEvent += delegate {
+ SparkleShare.Controller.ShowEventLogWindowEvent += delegate {
if (!WindowIsOpen) {
ContentLoadingEvent ();
UpdateSizeInfoEvent ("…", "…");
@@ -173,7 +173,7 @@ namespace SparkleShare {
ShowWindowEvent ();
};
- Program.Controller.OnIdle += delegate {
+ SparkleShare.Controller.OnIdle += delegate {
if (this.history_view_active)
return;
@@ -190,8 +190,8 @@ namespace SparkleShare {
UpdateSizeInfoEvent (Size, HistorySize);
};
- Program.Controller.FolderListChanged += delegate {
- if (this.selected_folder != null && !Program.Controller.Folders.Contains (this.selected_folder))
+ SparkleShare.Controller.FolderListChanged += delegate {
+ if (this.selected_folder != null && !SparkleShare.Controller.Folders.Contains (this.selected_folder))
this.selected_folder = null;
UpdateChooserEvent (Folders);
@@ -208,19 +208,19 @@ namespace SparkleShare {
}
- public void LinkClicked (string url)
+ public void LinkClicked (string href)
{
- if (url.StartsWith ("about:") || string.IsNullOrEmpty (url))
+ if (string.IsNullOrEmpty (href) || href.StartsWith ("about:"))
return;
- url = url.Replace ("%20", " ");
+ href = href.Replace ("%20", " ");
- if (url.StartsWith ("http")) {
- Program.Controller.OpenWebsite (url);
+ if (href.StartsWith ("http")) {
+ SparkleShare.Controller.OpenWebsite (href);
- } else if (url.StartsWith ("restore://") && this.restore_revision_info == null) {
+ } else if (href.StartsWith ("restore://") && this.restore_revision_info == null) {
Regex regex = new Regex ("restore://(.+)/([a-f0-9]+)/(.+)/(.{3} [0-9]+ [0-9]+h[0-9]+)/(.+)");
- Match match = regex.Match (url);
+ Match match = regex.Match (href);
if (match.Success) {
string author_name = match.Groups [3].Value;
@@ -241,34 +241,34 @@ namespace SparkleShare {
ShowSaveDialogEvent (file_name, target_folder_path);
}
- } else if (url.StartsWith ("back://")) {
+ } else if (href.StartsWith ("back://")) {
this.history_view_active = false;
SelectedFolder = this.selected_folder; // TODO: Return to the same position on the page
UpdateChooserEnablementEvent (true);
- } else if (url.StartsWith ("history://")) {
+ } else if (href.StartsWith ("history://")) {
this.history_view_active = true;
ContentLoadingEvent ();
UpdateSizeInfoEvent ("…", "…");
UpdateChooserEnablementEvent (false);
- string folder = url.Replace ("history://", "").Split ("/".ToCharArray ()) [0];
- string file_path = url.Replace ("history://" + folder + "/", "");
+ string folder = href.Replace ("history://", "").Split ("/".ToCharArray ()) [0];
+ string file_path = href.Replace ("history://" + folder + "/", "");
byte [] file_path_bytes = Encoding.Default.GetBytes (file_path);
file_path = Encoding.UTF8.GetString (file_path_bytes);
file_path = Uri.UnescapeDataString (file_path);
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
if (!repo.Name.Equals (folder))
continue;
new Thread (() => {
SparkleDelay delay = new SparkleDelay ();
- List<SparkleChangeSet> change_sets = repo.GetChangeSets (file_path);
+ List<ChangeSet> change_sets = repo.GetChangeSets (file_path);
string html = GetHistoryHTMLLog (change_sets, file_path);
delay.Stop ();
@@ -281,14 +281,17 @@ namespace SparkleShare {
}
} else {
- Program.Controller.OpenFile (url);
+ if (href.StartsWith ("file:///"))
+ href = href.Substring (7);
+
+ SparkleShare.Controller.OpenFile (href);
}
}
public void SaveDialogCompleted (string target_file_path)
{
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
if (repo.Name.Equals (this.restore_revision_info.Folder.Name)) {
repo.RestoreFile (this.restore_revision_info.FilePath,
this.restore_revision_info.Revision, target_file_path);
@@ -298,7 +301,7 @@ namespace SparkleShare {
}
this.restore_revision_info = null;
- Program.Controller.OpenFolder (Path.GetDirectoryName (target_file_path));
+ SparkleShare.Controller.OpenFolder (Path.GetDirectoryName (target_file_path));
}
@@ -308,17 +311,17 @@ namespace SparkleShare {
}
- private List<SparkleChangeSet> GetLog ()
+ private List<ChangeSet> GetLog ()
{
- List<SparkleChangeSet> list = new List<SparkleChangeSet> ();
+ List<ChangeSet> list = new List<ChangeSet> ();
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
- List<SparkleChangeSet> change_sets = repo.ChangeSets;
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
+ List<ChangeSet> change_sets = repo.ChangeSets;
if (change_sets != null)
list.AddRange (change_sets);
else
- SparkleLogger.LogInfo ("Log", "Could not create log for " + repo.Name);
+ Logger.LogInfo ("Log", "Could not create log for " + repo.Name);
}
list.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp)));
@@ -331,14 +334,14 @@ namespace SparkleShare {
}
- private List<SparkleChangeSet> GetLog (string name)
+ private List<ChangeSet> GetLog (string name)
{
if (name == null)
return GetLog ();
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
if (repo.Name.Equals (name)) {
- List<SparkleChangeSet> change_sets = repo.ChangeSets;
+ List<ChangeSet> change_sets = repo.ChangeSets;
if (change_sets != null)
return change_sets;
@@ -347,11 +350,11 @@ namespace SparkleShare {
}
}
- return new List<SparkleChangeSet> ();
+ return new List<ChangeSet> ();
}
- public string GetHistoryHTMLLog (List<SparkleChangeSet> change_sets, string file_path)
+ public string GetHistoryHTMLLog (List<ChangeSet> change_sets, string file_path)
{
string html = "<div class='history-header'>" +
"<a class='windows' href='back://'>&laquo; Back</a> &nbsp;|&nbsp; ";
@@ -367,7 +370,7 @@ namespace SparkleShare {
if (change_sets.Count > 0)
change_sets.RemoveAt (0);
- foreach (SparkleChangeSet change_set in change_sets) {
+ foreach (ChangeSet change_set in change_sets) {
html += "<tr>" +
"<td class='avatar'><img src='" + GetAvatarFilePath (change_set.User) + "'></td>" +
"<td class='name'>" + change_set.User.Name + "</td>" +
@@ -385,16 +388,16 @@ namespace SparkleShare {
}
html += "</table></div>";
- html = Program.Controller.EventLogHTML.Replace ("<!-- $event-log-content -->", html);
+ html = SparkleShare.Controller.EventLogHTML.Replace ("<!-- $event-log-content -->", html);
return html.Replace ("<!-- $midnight -->", "100000000");
}
- public string GetHTMLLog (List<SparkleChangeSet> change_sets)
+ public string GetHTMLLog (List<ChangeSet> change_sets)
{
if (change_sets == null || change_sets.Count == 0)
- return Program.Controller.EventLogHTML.Replace ("<!-- $event-log-content -->",
+ return SparkleShare.Controller.EventLogHTML.Replace ("<!-- $event-log-content -->",
"<div class='day-entry'><div class='day-entry-header'>This project does not keep a history.</div></div>");
List <ActivityDay> activity_days = new List <ActivityDay> ();
@@ -402,7 +405,7 @@ namespace SparkleShare {
change_sets.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp)));
change_sets.Reverse ();
- foreach (SparkleChangeSet change_set in change_sets) {
+ foreach (ChangeSet change_set in change_sets) {
bool change_set_inserted = false;
foreach (ActivityDay stored_activity_day in activity_days) {
@@ -424,19 +427,19 @@ namespace SparkleShare {
}
}
- string event_log_html = Program.Controller.EventLogHTML;
- string day_entry_html = Program.Controller.DayEntryHTML;
- string event_entry_html = Program.Controller.EventEntryHTML;
+ string event_log_html = SparkleShare.Controller.EventLogHTML;
+ string day_entry_html = SparkleShare.Controller.DayEntryHTML;
+ string event_entry_html = SparkleShare.Controller.EventEntryHTML;
string event_log = "";
foreach (ActivityDay activity_day in activity_days) {
string event_entries = "";
- foreach (SparkleChangeSet change_set in activity_day) {
+ foreach (ChangeSet change_set in activity_day) {
string event_entry = "<dl>";
- foreach (SparkleChange change in change_set.Changes) {
- if (change.Type != SparkleChangeType.Moved) {
+ foreach (Change change in change_set.Changes) {
+ if (change.Type != ChangeType.Moved) {
event_entry += "<dd class='" + change.Type.ToString ().ToLower () + "'>";
if (!change.IsFolder) {
@@ -590,12 +593,12 @@ namespace SparkleShare {
}
- private string GetAvatarFilePath (SparkleUser user)
+ private string GetAvatarFilePath (User user)
{
- if (!Program.Controller.AvatarsEnabled)
+ if (!SparkleShare.Controller.AvatarsEnabled)
return "<!-- $pixmaps-path -->/user-icon-default.png";
- string fetched_avatar = SparkleAvatars.GetAvatar (user.Email, 48, Program.Controller.Config.FullPath);
+ string fetched_avatar = Avatars.GetAvatar (user.Email, 48, SparkleShare.Controller.Config.DirectoryPath);
if (!string.IsNullOrEmpty (fetched_avatar))
return "file://" + fetched_avatar.Replace ("\\", "/");
@@ -605,7 +608,7 @@ namespace SparkleShare {
// All change sets that happened on a day
- private class ActivityDay : List<SparkleChangeSet>
+ private class ActivityDay : List<ChangeSet>
{
public DateTime Date;
diff --git a/SparkleShare/Common/HTML/event-log.html b/SparkleShare/Common/HTML/event-log.html
index cbc5b3a..3e6d9f5 100755
--- a/SparkleShare/Common/HTML/event-log.html
+++ b/SparkleShare/Common/HTML/event-log.html
@@ -55,7 +55,7 @@
background-color: #fefefe;
color: <!-- $body-color -->;
font-size: <!-- $body-font-size -->;
- font-family: "<!-- $body-font-family -->";
+ font-family: -apple-system, "<!-- $body-font-family -->";
margin: 0;
-webkit-user-select: none;
overflow-x: hidden;
diff --git a/SparkleShare/Common/Pixmaps/Makefile.am b/SparkleShare/Common/Images/Makefile.am
index 825b196..825b196 100644
--- a/SparkleShare/Common/Pixmaps/Makefile.am
+++ b/SparkleShare/Common/Images/Makefile.am
diff --git a/SparkleShare/Common/Pixmaps/Sources/about-dialog.svg b/SparkleShare/Common/Images/Sources/about-dialog.svg
index c07d454..2a86205 100644
--- a/SparkleShare/Common/Pixmaps/Sources/about-dialog.svg
+++ b/SparkleShare/Common/Images/Sources/about-dialog.svg
@@ -2114,7 +2114,7 @@
id="g101011"
transform="translate(-65.909,-78.641)"
clip-path="url(#clipPath4254)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Pixmaps/about@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Images/about@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180">
<rect
diff --git a/SparkleShare/Common/Pixmaps/Sources/actions.svg b/SparkleShare/Common/Images/Sources/actions.svg
index c3d028d..c3d028d 100644
--- a/SparkleShare/Common/Pixmaps/Sources/actions.svg
+++ b/SparkleShare/Common/Images/Sources/actions.svg
diff --git a/SparkleShare/Common/Images/Sources/app-icons.svg b/SparkleShare/Common/Images/Sources/app-icons.svg
new file mode 100644
index 0000000..2dcc19e
--- /dev/null
+++ b/SparkleShare/Common/Images/Sources/app-icons.svg
@@ -0,0 +1,1550 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="Template.png"
+ width="680"
+ height="560"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.92pre2 r"
+ sodipodi:docname="app-icons.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 680 560">
+ <title
+ id="title4162">Sparkleshare Linux Icon</title>
+ <defs
+ id="defs3">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath7991">
+ <path
+ d="m 76,-180 c -12,0 -12,12 -12,12 v 276 h 416 v -228 c 0,0 0,-12 -12,-12 H 280 c -3.5093,0 -9.09146,-0.51692 -13.46022,-5.3383 l -33.91554,-37.42936 C 228.8957,-178.88249 223.86532,-180 220,-180 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03651488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path7993"
+ sodipodi:nodetypes="cccccccsscc"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4908"
+ id="linearGradient6985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(11.124296,0,0,10.602774,83.30186,-98.32982)"
+ x1="17.68185"
+ y1="-1.666562"
+ x2="17.68185"
+ y2="24.295708" />
+ <linearGradient
+ id="linearGradient10374">
+ <stop
+ style="stop-color:#c3b08d;stop-opacity:1"
+ offset="0"
+ id="stop10376" />
+ <stop
+ style="stop-color:#9f8865;stop-opacity:1;"
+ offset="1"
+ id="stop10378" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6987"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.3548387,0,0,0.5,-543.96775,-426.5)"
+ cx="243.81731"
+ cy="537.00006"
+ fx="243.81731"
+ fy="537.00006"
+ r="208" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6123">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6125" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6127" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter10257"
+ x="-0.0081230765"
+ width="1.0162462"
+ y="-0.011733333"
+ height="1.0234667">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.408"
+ id="feGaussianBlur10259" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter8182"
+ x="-0.07674107"
+ width="1.1534821"
+ y="-0.10879747"
+ height="1.2175949">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="14.325"
+ id="feGaussianBlur8184" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient8695"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.2645115,0,0,0.63225606,-723.01371,-20.409786)"
+ cx="571.18335"
+ cy="-56.290825"
+ fx="571.18335"
+ fy="-56.290825"
+ r="8.0071211" />
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter5792"
+ x="-0.033333331"
+ width="1.0666667"
+ y="-0.30000001"
+ height="1.6">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.25"
+ id="feGaussianBlur5794" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter5788"
+ x="-0.071999997"
+ width="1.1440001"
+ y="-0.36000001"
+ height="1.72">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.6"
+ id="feGaussianBlur5790" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4989"
+ id="linearGradient8478"
+ gradientUnits="userSpaceOnUse"
+ x1="571.99951"
+ y1="-52.967789"
+ x2="572"
+ y2="-41.002605"
+ gradientTransform="rotate(180,571.99977,-46.00031)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="linearGradient8474"
+ gradientUnits="userSpaceOnUse"
+ x1="571.99585"
+ y1="-41.306217"
+ x2="571.99585"
+ y2="-48.6875" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient8472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.9166362,0,0,0.49961033,-524.31592,-25.101494)"
+ cx="570.82074"
+ cy="-51.432213"
+ fx="570.82074"
+ fy="-51.432213"
+ r="9.0071211" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4989"
+ id="linearGradient8424"
+ gradientUnits="userSpaceOnUse"
+ x1="572"
+ y1="-7.9671698"
+ x2="572"
+ y2="2.1187184"
+ gradientTransform="rotate(180,568,-2.5)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="linearGradient8368"
+ gradientUnits="userSpaceOnUse"
+ x1="568.01355"
+ y1="2.2283287"
+ x2="568.01355"
+ y2="-4.9999499" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient8496"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.8345188,0,0,0.64220385,-1042.8817,-2.3256749)"
+ cx="566.83136"
+ cy="-6.5"
+ fx="566.83136"
+ fy="-6.5"
+ r="7.0071211" />
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter6151"
+ x="-0.064168461"
+ width="1.1283369"
+ y="-0.92362803"
+ height="2.8472559">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.1229481"
+ id="feGaussianBlur6153" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter6145"
+ x="-0.03208423"
+ width="1.0641685"
+ y="-0.46181399"
+ height="1.923628">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.56147404"
+ id="feGaussianBlur6147" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter10890-6"
+ x="-0.044054188"
+ width="1.0881084"
+ y="-3.1619647"
+ height="7.3239293">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.6804669"
+ id="feGaussianBlur10892-2" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter10886-3"
+ x="-0.030818185"
+ width="1.0616364"
+ y="-1.1299965"
+ height="3.2599931">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="5.6500005"
+ id="feGaussianBlur10888-5" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter8424"
+ x="-0.012330275"
+ width="1.0246606"
+ y="-0.44800001"
+ height="1.896">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.24"
+ id="feGaussianBlur8426" />
+ </filter>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath6228">
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ sodipodi:nodetypes="czzszcccccccc"
+ id="path6230"
+ d="m 60,-20 h 109.44278 c 8.64132,-0.004 11.2047,-2.65758 15.16748,-8.5786 l 15.2868,-23.63318 C 203.16772,-57.26818 208.28276,-68 214.91244,-68 H 484 c 12,0 12,12 12,12 l -4,292 c 0,0 0,12 -12,12 H 64 C 52,248 52,236 52,236 L 48,-8 c 0,0 0,-12 12,-12 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3c3222;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4989"
+ id="linearGradient6977"
+ gradientUnits="userSpaceOnUse"
+ x1="280"
+ y1="-71.967171"
+ x2="279.83273"
+ y2="247"
+ gradientTransform="rotate(180,272,90)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0535714,0,0,0.47651455,-217.03571,57.541517)"
+ cx="206"
+ cy="-229.88074"
+ fx="206"
+ fy="-229.88074"
+ r="224" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5241546,0,0,0.01570048,-142.04589,238.13889)"
+ cx="271"
+ cy="230"
+ fx="271"
+ fy="230"
+ r="207" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7187"
+ id="linearGradient6983"
+ gradientUnits="userSpaceOnUse"
+ x1="272"
+ y1="241.88329"
+ x2="272"
+ y2="129.81732" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7187">
+ <stop
+ style="stop-color:#3c3222;stop-opacity:1;"
+ offset="0"
+ id="stop7189" />
+ <stop
+ style="stop-color:#3c3222;stop-opacity:0.42"
+ offset="1"
+ id="stop7191" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter8589"
+ x="-0.0061392859"
+ width="1.0122786"
+ y="-0.0087037971"
+ height="1.0174077">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.146"
+ id="feGaussianBlur8591" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4989"
+ id="linearGradient8642"
+ gradientUnits="userSpaceOnUse"
+ x1="584.00269"
+ y1="-182.95795"
+ x2="584"
+ y2="-153.58839"
+ gradientTransform="rotate(180,584.00135,-167.49539)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient10236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.468749,-8.0634377e-6,1.0479505e-6,0.32084663,-853.81494,-121.58576)"
+ cx="580.32037"
+ cy="-180.78497"
+ fx="580.32037"
+ fy="-180.78497"
+ r="21.00712" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="linearGradient10532"
+ gradientUnits="userSpaceOnUse"
+ x1="584.00134"
+ y1="-154.06042"
+ x2="584.00134"
+ y2="-166.61157" />
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter5976"
+ x="-0.036806535"
+ width="1.073613"
+ y="-0.3929815"
+ height="1.7859631">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.5206773"
+ id="feGaussianBlur5978" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter5970"
+ x="-0.07361307"
+ width="1.1472261"
+ y="-0.785963"
+ height="2.5719261">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.0413547"
+ id="feGaussianBlur5972" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient8666"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6615112,0,0,0.55258593,-958.7489,-50.110375)"
+ cx="574.15649"
+ cy="-111.88689"
+ fx="574.15649"
+ fy="-111.88689"
+ r="13.007121" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4989"
+ id="linearGradient8668"
+ gradientUnits="userSpaceOnUse"
+ x1="583.99243"
+ y1="-106.97181"
+ x2="584"
+ y2="-87.771248"
+ gradientTransform="rotate(180,575.99621,-97.002319)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="linearGradient8670"
+ gradientUnits="userSpaceOnUse"
+ x1="575.99933"
+ y1="-88.556061"
+ x2="575.99933"
+ y2="-103.51257" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient8672"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.2052612,0,0,0.31488063,-694.25534,-71.937552)"
+ cx="574.1369"
+ cy="-105.28072"
+ fx="574.1369"
+ fy="-105.28072"
+ r="14.007121" />
+ <linearGradient
+ id="linearGradient8666">
+ <stop
+ id="stop8662"
+ offset="0"
+ style="stop-color:#c3ac8b;stop-opacity:1" />
+ <stop
+ id="stop8664"
+ offset="1"
+ style="stop-color:#c8b294;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11723"
+ y2="18.848"
+ xlink:href="#linearGradient4908"
+ gradientUnits="userSpaceOnUse"
+ y1="30.385"
+ gradientTransform="matrix(-0.3089,0,0,-0.27375,638.05886,-3.4813)"
+ x2="24.865999"
+ x1="24.865999" />
+ <linearGradient
+ id="linearGradient4908">
+ <stop
+ offset="0"
+ stop-color="#f57900"
+ id="stop4912" />
+ <stop
+ offset="1"
+ stop-color="#ce5c00"
+ id="stop4910" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11725"
+ y2="221.38"
+ xlink:href="#linearGradient11481"
+ gradientUnits="userSpaceOnUse"
+ y1="232.34"
+ gradientTransform="rotate(-180,469.99942,106.99934)"
+ x2="315.29001"
+ x1="315.04999" />
+ <linearGradient
+ id="linearGradient11481">
+ <stop
+ offset="0"
+ stop-color="#ce5c00"
+ id="stop11485" />
+ <stop
+ offset="1"
+ stop-color="#a04600"
+ id="stop11483" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient11727"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient6123"
+ cx="306.10001"
+ cy="179.00999"
+ r="8.6093998"
+ gradientTransform="matrix(-2.5489,0,0,-0.5173,1416.4088,85.9487)" />
+ <linearGradient
+ id="linearGradient11729"
+ y2="-3.1078067"
+ xlink:href="#linearGradient4989"
+ gradientUnits="userSpaceOnUse"
+ y1="50.896999"
+ gradientTransform="matrix(-0.28968,0,0,-0.1769,638.12886,-9.0413)"
+ x2="25.188"
+ x1="25.188" />
+ <linearGradient
+ id="linearGradient4989">
+ <stop
+ id="stop4991"
+ stop-color="#f57900"
+ offset="0" />
+ <stop
+ id="stop4993"
+ stop-color="#fcaf3e"
+ offset="0.06758628" />
+ <stop
+ id="stop4995"
+ stop-color="#fcaf3e"
+ offset="0.19854175" />
+ <stop
+ id="stop4997"
+ stop-color="#f57900"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11731"
+ y2="223.67999"
+ xlink:href="#linearGradient11481"
+ gradientUnits="userSpaceOnUse"
+ y1="233.24001"
+ x2="314.47"
+ x1="314.48999"
+ gradientTransform="rotate(-180,469.99942,107.49934)" />
+ <linearGradient
+ id="linearGradient11733"
+ y2="208.75"
+ gradientUnits="userSpaceOnUse"
+ y1="184.62"
+ x2="320.56"
+ x1="312.44"
+ gradientTransform="rotate(-180,470.49942,87.499345)">
+ <stop
+ id="stop4631"
+ stop-color="#fff"
+ offset="0" />
+ <stop
+ id="stop4633"
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient11735"
+ gradientUnits="userSpaceOnUse"
+ cx="147.02"
+ cy="525.85999"
+ r="103.05"
+ gradientTransform="matrix(-1.5869,-1.2599e-7,5.9772999e-8,-0.75289999,387.79396,846.03475)">
+ <stop
+ id="stop4349-3-4"
+ stop-color="#fff"
+ offset="0" />
+ <stop
+ id="stop16502"
+ stop-color="#fff"
+ stop-opacity=".49804"
+ offset=".5" />
+ <stop
+ id="stop4351-6-4"
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1" />
+ </radialGradient>
+ <filter
+ id="filter4375-3-0"
+ height="1.7122"
+ width="1.0247999"
+ y="-0.35609001"
+ x="-0.012418"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4377-0-0"
+ stdDeviation="1.0664062" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5059"
+ x1="572"
+ y1="-9.0328302"
+ x2="572"
+ y2="3.96717"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5067"
+ x1="578"
+ y1="-53.032829"
+ x2="578"
+ y2="-38.032829"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5077"
+ x1="581"
+ y1="-108.03283"
+ x2="581"
+ y2="-86.032829"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5085"
+ x1="596"
+ y1="-181.99542"
+ x2="596"
+ y2="-152.03284"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4908"
+ id="linearGradient5126"
+ x1="589"
+ y1="-187.08308"
+ x2="589"
+ y2="-160.03284"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4908"
+ id="linearGradient5128"
+ x1="578"
+ y1="-112.03283"
+ x2="578"
+ y2="-101.03283"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4908"
+ id="linearGradient5130"
+ x1="573"
+ y1="-55.032829"
+ x2="573"
+ y2="-45.032829"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4908"
+ id="linearGradient5132"
+ x1="569"
+ y1="-10.03283"
+ x2="569.17102"
+ y2="-1.2868409"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5140"
+ x1="596.82324"
+ y1="-200.78328"
+ x2="597"
+ y2="-160.03284"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5142"
+ x1="584"
+ y1="-109.03283"
+ x2="584"
+ y2="-97.032829"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5144"
+ x1="577"
+ y1="-54.032829"
+ x2="577"
+ y2="-48.032829"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11481"
+ id="linearGradient5146"
+ x1="572"
+ y1="-9.0328302"
+ x2="572"
+ y2="-2.03283"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient7894-2"
+ gradientUnits="userSpaceOnUse"
+ cx="179.52"
+ cy="178.16"
+ r="68.867996"
+ gradientTransform="matrix(1.3088,0.77845,-0.34302,0.57647,-3.4812,-69.984)">
+ <stop
+ id="stop15764-4"
+ stop-color="#fff"
+ offset="0" />
+ <stop
+ id="stop15766-7"
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1" />
+ </radialGradient>
+ <filter
+ id="filter15758-4"
+ height="1.2122"
+ width="1.2028"
+ y="-0.10611"
+ x="-0.1014"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur15760-4"
+ stdDeviation="4.6353635" />
+ </filter>
+ <radialGradient
+ id="radialGradient7892-7"
+ cx="239"
+ xlink:href="#linearGradient6123"
+ gradientUnits="userSpaceOnUse"
+ cy="51"
+ r="5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6918"
+ gradientUnits="userSpaceOnUse"
+ cx="239"
+ cy="51"
+ r="5"
+ gradientTransform="matrix(2.7092,0,0,2.7092,-423.307,-238.293)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6920"
+ gradientUnits="userSpaceOnUse"
+ cx="239"
+ cy="51"
+ r="5"
+ gradientTransform="matrix(3.8092,0,0,3.8092,-681.587,-297.393)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient5268"
+ cx="224.86823"
+ cy="-99.445023"
+ fx="224.86823"
+ fy="-99.445023"
+ r="2.5399001"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient5240"
+ cx="229.76659"
+ cy="-102.16778"
+ fx="229.76659"
+ fy="-102.16778"
+ r="3.5711"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient7892-7-7"
+ cx="239"
+ xlink:href="#linearGradient6123"
+ gradientUnits="userSpaceOnUse"
+ cy="51"
+ r="5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient6922"
+ gradientUnits="userSpaceOnUse"
+ cx="239"
+ cy="51"
+ r="5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient5260"
+ cx="239"
+ cy="51"
+ fx="239"
+ fy="51"
+ r="5"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6123"
+ id="radialGradient5258"
+ cx="239"
+ cy="51"
+ fx="239"
+ fy="51"
+ r="5"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient7894-2-5"
+ gradientUnits="userSpaceOnUse"
+ cx="179.52"
+ cy="178.16"
+ r="68.867996"
+ gradientTransform="matrix(1.3088,0.77845,-0.34302,0.57647,-3.4812,-69.984)">
+ <stop
+ id="stop15764-4-3"
+ stop-color="#fff"
+ offset="0" />
+ <stop
+ id="stop15766-7-5"
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1" />
+ </radialGradient>
+ <filter
+ id="filter15758-4-6"
+ height="1.2122"
+ width="1.2028"
+ y="-0.10611"
+ x="-0.1014"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur15760-4-2"
+ stdDeviation="4.6353635" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ stroke="#ef2929"
+ fill="#f57900"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.25490196"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="322.57412"
+ inkscape:cy="177.12079"
+ inkscape:current-layer="layer8"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ width="400px"
+ height="300px"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ objecttolerance="7"
+ gridtolerance="12"
+ guidetolerance="13"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="false"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:locked="false"
+ inkscape:measure-start="0,0"
+ inkscape:measure-end="0,0"
+ inkscape:object-nodes="true"
+ inkscape:bbox-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5883"
+ spacingx="1px"
+ spacingy="1px"
+ enabled="true"
+ visible="true"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Sam Hewitt</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Sparkleshare Linux Icon</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="artwork:icon-name"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ transform="translate(0,260)">
+ <g
+ inkscape:groupmode="layer"
+ id="layer7"
+ inkscape:label="baseplate"
+ style="display:none">
+ <rect
+ inkscape:label="48x48"
+ y="-196"
+ x="568"
+ height="48"
+ width="48"
+ id="rect6284"
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ id="rect6592"
+ width="32"
+ height="32"
+ x="568"
+ y="-116"
+ inkscape:label="32x32" />
+ <rect
+ inkscape:label="22x22"
+ y="-58.941162"
+ x="569"
+ height="22"
+ width="22"
+ id="rect6749"
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ id="rect6833"
+ width="16"
+ height="16"
+ x="568"
+ y="-12"
+ inkscape:label="16x16" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ id="rect8104"
+ width="24"
+ height="24"
+ x="568"
+ y="-60"
+ inkscape:label="24x24" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.30133247px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;enable-background:new"
+ x="31.855944"
+ y="-303.69958"
+ id="context"
+ inkscape:label="context"><tspan
+ sodipodi:role="line"
+ id="tspan2716"
+ x="31.855944"
+ y="-303.69958">apps</tspan></text>
+ <text
+ inkscape:label="icon-name"
+ id="text3021"
+ y="-277.90063"
+ x="31.264769"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:18.30133247px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;enable-background:new"
+ xml:space="preserve"><tspan
+ y="-277.90063"
+ x="31.264769"
+ id="tspan3023"
+ sodipodi:role="line">org.sparkleshare.SparkleShare</tspan></text>
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ id="rect13805"
+ width="512"
+ height="512"
+ x="24"
+ y="-236"
+ inkscape:label="512x512" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path13807"
+ d="m 24,-236 v 512 h 511.875 v -512 h -36 V 240 H 60 v -476 z"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer8"
+ inkscape:label="icons"
+ style="display:inline">
+ <g
+ transform="translate(8,0.03283)"
+ style="display:inline;enable-background:new"
+ id="g11603">
+ <g
+ id="g7988"
+ clip-path="url(#clipPath7991)">
+ <path
+ d="m 76,-180 c -12,0 -12,12 -12,12 v 276 h 416 v -228 c 0,0 0,-12 -12,-12 H 280 c -3.5093,0 -9.09146,-0.51692 -13.46022,-5.3383 l -33.91554,-37.42936 C 228.8957,-178.88249 223.86532,-180 220,-180 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient6985);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.03651488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path11591"
+ sodipodi:nodetypes="cccccccsscc"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.47099998;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#radialGradient6987);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.03651488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 76,-178 c -12,0 -12,12 -12,12 v 2 c 0,0 0,-12 12,-12 h 144 c 3.86532,0 8.89646,1.11759 12.625,5.23242 l 33.91406,37.42969 C 270.90782,-128.51651 276.4907,-128 280,-128 h 188 c 12,0 12,12 12,12 v -2 c 0,0 0,-12 -12,-12 H 280 c -3.5093,0 -9.09218,-0.51651 -13.46094,-5.33789 L 232.625,-172.76758 C 228.89646,-176.88241 223.86532,-178 220,-178 Z"
+ id="path11591-6" />
+ <path
+ clip-path="none"
+ d="m 76,-180 c -12,0 -12,12 -12,12 V 92 h 416 v -212 c 0,0 0,-12 -12,-12 H 280 c -3.5093,0 -9.09146,-0.51692 -13.46022,-5.3383 l -33.91554,-37.42936 C 228.8957,-178.88249 223.86532,-180 220,-180 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.5;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter10257);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path11593"
+ sodipodi:nodetypes="cccccccsscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.25700001;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#301e01;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.3510741;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter8182);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 60,-28 h 109.44278 c 8.64132,-0.004 11.2047,-2.65758 15.16748,-8.5786 l 15.2868,-15.63318 C 204.10729,-56.517404 208.28276,-68 214.91244,-68 H 484 c 12,0 12,12 12,12 l -4,292 c 0,0 0,12 -12,12 H 64 C 52,248 52,236 52,236 L 48,-16 c 0,0 0,-12 12,-12 z"
+ id="path11597-1"
+ sodipodi:nodetypes="czzszcccccccc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g8701">
+ <path
+ clip-path="none"
+ d="m 564.46875,-57.49151 c -0.5201,0.01563 -0.9484,0.459393 -0.9484,1.02276 L 563.49995,-41.5 h 17 l -0.0117,-13.05679 c 0,-0.49196 -0.40182,-0.96654 -0.93473,-0.96654 l -7.28464,0.0551 -1.68699,-2.02332 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5130);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5144);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path11549"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 564.5,-56.476562 c 0.0415,-0.0012 0.0352,-0.0394 0.0352,0.0078 a 1.0165672,1.0165672 0 0 1 0,0.002 l -0.0176,13.951172 h 14.9668 l -0.0117,-11.992187 -7.19532,0.05469 a 1.0165672,1.0165672 0 0 1 -0.78906,-0.365234 l -1.38281,-1.658203 z"
+ id="path7147"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.06000001;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:original="M 564.46875 -57.492188 C 563.94865 -57.476588 563.51953 -57.03212 563.51953 -56.46875 L 563.5 -41.5 L 580.5 -41.5 L 580.48828 -54.556641 C 580.48828 -55.048601 580.08564 -55.523437 579.55273 -55.523438 L 572.26953 -55.46875 L 570.58203 -57.492188 L 564.46875 -57.492188 z "
+ inkscape:radius="-1.0164655"
+ sodipodi:type="inkscape:offset"
+ transform="translate(1.6e-6,-2.3766313e-6)" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path11555"
+ d="m 564.5,-56.5 h 5.61981 l 1.6748,2 H 579.5"
+ style="opacity:0.26300001;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient8695);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ <g
+ id="g11537"
+ transform="translate(256,-224)"
+ style="opacity:0.572">
+ <rect
+ rx="1"
+ ry="1"
+ y="184"
+ x="307"
+ height="2"
+ width="18"
+ id="rect11533"
+ style="opacity:0.2;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter5792)" />
+ <rect
+ rx="2"
+ style="opacity:0.3;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter5788)"
+ id="rect11535"
+ width="20"
+ height="4"
+ x="306"
+ y="183"
+ ry="2" />
+ </g>
+ <g
+ id="g8715">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path11539"
+ d="M 560.5,-9.375 V 0.5 h 15 v -7.84375 c -6e-5,-0.62129 -0.50371,-1.12494 -1.125,-1.125 h -5.84375 c -0.3334,0 -0.20853,0.0527 -0.40625,-0.21875 l -0.96875,-1.34375 c -0.2098,-0.29211 -0.54661,-0.46632 -0.90625,-0.46875 h -4.75 c -0.99615,0.0162 -1,1.125 -1,1.125 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5132);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5146);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccsssccccc"
+ id="path11541"
+ d="m 561.5,1 h 13 v -8.5 l -5.96875,-0.0312 c -0.0587,0 -0.0805,-10e-4 -0.15625,0 -0.0757,0.001 -0.29559,0.0325 -0.5625,-0.125 -0.26691,-0.15754 -0.34468,-0.32772 -0.375,-0.375 -0.0303,-0.0473 -0.0322,-0.0522 -0.0625,-0.0937 l -0.96875,-1.28057 c -0.0355,-0.0494 -0.0954,-0.0933 -0.15625,-0.0937 L 561.5,-9.5 Z"
+ style="display:inline;opacity:0.072;fill:none;fill-opacity:0;stroke:#ffffff;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path8086"
+ d="m 561.49288,-9.49995 h 5"
+ style="opacity:0.17300002;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <g
+ id="g8706">
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path11553"
+ d="M 562.5,-39.99987 V -50 c -0.0111,-0.50823 0.5,-0.50056 0.5,-0.50056 l 4.5,-0.006 2,-1.99371 H 581 c 0,0 0.48895,-0.0188 0.5,0.50044 v 11.99969 c -0.0937,1.50001 -1.5,1.49987 -1.5,1.49987 h -16 c 0,0 -1.53125,-0.0311 -1.5,-1.49987 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient8478);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5067);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <path
+ d="m 569.91602,-51.5 -1.70899,1.703125 a 1.0001,1.0001 0 0 1 -0.70508,0.291016 L 563.5,-49.5 v 8.5 a 1.0001,1.0001 0 0 1 0,0.02148 c -0.008,0.386958 0.0427,0.312601 0.18945,0.386719 0.14673,0.07412 0.33008,0.0918 0.33008,0.0918 H 580 c 0,0 0.12623,-0.0093 0.25586,-0.07617 0.12859,-0.06637 0.21595,-0.05389 0.24414,-0.482422 V -51.5 Z"
+ id="path7002"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.23999999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8474);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ inkscape:original="M 569.5 -52.5 L 567.5 -50.505859 L 563 -50.5 C 563 -50.5 562.4889 -50.50823 562.5 -50 L 562.5 -41 C 562.46875 -39.53123 564 -39.5 564 -39.5 L 580 -39.5 C 580 -39.5 581.4063 -39.49999 581.5 -41 L 581.5 -52 C 581.48895 -52.51924 581 -52.5 581 -52.5 L 569.5 -52.5 z "
+ inkscape:radius="-1"
+ sodipodi:type="inkscape:offset"
+ transform="translate(-1.9624896e-6,1)" />
+ <path
+ style="opacity:0.68199978;fill:none;fill-rule:evenodd;stroke:url(#radialGradient8472);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 580.5,-51.5 h -10.52072 l -2.00555,2 H 563.5"
+ id="path11557"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="g8720">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient8424);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5059);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 566.92188,-8.5 c -0.34915,0 -0.55954,0.20959 -0.73438,0.34375 l -1.45228,1.47457 C 564.60566,-6.55013 564.49257,-6.5 564.1875,-6.5 h -2.5625 c -0.65057,0 -1.12499,0.43342 -1.125,1.07813 V 1 c 0,1.33755 0.68182,2.5 1.5,2.5 h 12 c 0.81819,0 1.5,-1.16245 1.5,-2.5 v -8.5 c -0.0156,-0.96881 -1,-1 -1,-1 z"
+ id="path11543"
+ sodipodi:nodetypes="ccscccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 566.92188,-7.5 c 0.051,0 0.14153,-0.067801 -0.125,0.1367188 l 0.10351,-0.091797 -1.45312,1.4746093 c -0.12156,0.1234147 -0.34139,0.2961474 -0.58789,0.3828126 C 564.61287,-5.5109911 564.39477,-5.5 564.1875,-5.5 h -2.5625 c -0.20642,0 -0.125,-0.075997 -0.125,0.078125 V 1 c 0,0.4988574 0.14105,0.9688306 0.30273,1.2402344 C 561.96442,2.5116381 562.0645,2.5 562,2.5 h 12 c -0.0645,0 0.0356,0.011637 0.19727,-0.2597656 C 574.35895,1.968832 574.5,1.4988599 574.5,1 v -8.484375 c -0.002,-0.1460121 0.0557,0.019531 0.0332,0.00781 -0.0116,-0.00602 -0.0196,-0.007 -0.0332,-0.011719 -0.0128,-0.00447 -0.0312,-0.011719 -0.0312,-0.011719 z"
+ id="path8314"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.32400004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8368);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ inkscape:original="M 566.92188 -8.5 C 566.57272 -8.5 566.36234 -8.29041 566.1875 -8.15625 L 564.73438 -6.6816406 C 564.60481 -6.5500906 564.49257 -6.5 564.1875 -6.5 L 561.625 -6.5 C 560.97443 -6.5 560.50001 -6.066575 560.5 -5.421875 L 560.5 1 C 560.5 2.33755 561.18182 3.5 562 3.5 L 574 3.5 C 574.81819 3.5 575.5 2.33755 575.5 1 L 575.5 -7.5 C 575.4844 -8.46881 574.5 -8.5 574.5 -8.5 L 566.92188 -8.5 z "
+ inkscape:radius="-1"
+ sodipodi:type="inkscape:offset" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path11571"
+ d="m 574.5,-7.5 h -7.52072 l -2.00555,2 H 561.5"
+ style="opacity:0.67099998;fill:none;fill-rule:evenodd;stroke:url(#radialGradient8496);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ <g
+ id="g8649">
+ <path
+ clip-path="none"
+ d="m 565.5,-193.49151 c -1.09462,0.0156 -0.97965,0.99151 -0.97965,0.99151 l -0.0204,32 h 39 l -0.0117,-28 c 0.0287,-0.90113 -0.9883,-1.02333 -0.9883,-1.02333 l -19.62495,0.0534 c 0,0 -0.65625,-0.0459 -1.12211,-0.56141 l -2.31769,-2.52911 c -0.4538,-0.53068 -1.02895,-0.91095 -1.65395,-0.93115 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5126);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5140);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path11573"
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 565.58008,-192.43164 -0.0195,30.87109 h 36.8789 l -0.0117,-26.88867 c -0.0139,-0.005 -0.0259,-0.0114 -0.0332,-0.0137 l -19.51758,0.0527 a 1.0607637,1.0607637 0 0 1 -0.0742,-0.002 c 0,0 -1.0581,-0.0488 -1.83593,-0.9082 h -0.002 l -2.31054,-2.52344 a 1.0607637,1.0607637 0 0 1 -0.0254,-0.0273 c -0.3288,-0.38451 -0.66691,-0.55357 -0.88282,-0.56055 z"
+ id="path10568"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.081;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:original="M 565.5 -193.49219 C 564.40538 -193.47659 564.51953 -192.5 564.51953 -192.5 L 564.5 -160.5 L 603.5 -160.5 L 603.48828 -188.5 C 603.51698 -189.40113 602.5 -189.52344 602.5 -189.52344 L 582.875 -189.4707 C 582.875 -189.4707 582.21781 -189.51574 581.75195 -190.03125 L 579.43555 -192.56055 C 578.98175 -193.09123 578.40625 -193.47199 577.78125 -193.49219 L 565.5 -193.49219 z "
+ inkscape:radius="-1.0606576"
+ sodipodi:type="inkscape:offset" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path11577"
+ d="m 565.5,-192.5 h 12.09375 c 0.40625,-0.022 0.91331,0.42813 0.91331,0.42813 l 2.6938,2.97812 C 581.98211,-188.375 583,-188.5 583,-188.5 h 19.5"
+ style="opacity:0.22000002;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ <g
+ id="g6439"
+ style="opacity:0.60399996"
+ transform="matrix(1.0595238,0,0,1,-34.761905,0)">
+ <rect
+ style="display:inline;opacity:0.3;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16706455;filter:url(#filter6151);enable-background:new"
+ id="rect11531"
+ width="42"
+ height="2.917923"
+ x="563"
+ y="-153.91792"
+ rx="1.5597881"
+ ry="1.4277115" />
+ <rect
+ ry="1.4277115"
+ rx="1.5597881"
+ y="-153.91792"
+ x="563"
+ height="2.917923"
+ width="42"
+ id="rect11579"
+ style="display:inline;opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16706455;filter:url(#filter6145);enable-background:new" />
+ </g>
+ <g
+ id="g6823">
+ <rect
+ transform="matrix(2.1944501,0,0,4.2956156,400.75696,-1922.6296)"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10225201;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter10890-6);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ id="rect11527"
+ width="200.50581"
+ height="2.7935545"
+ x="-158.92682"
+ y="502.98486"
+ ry="1.3864861"
+ rx="2.7341692" />
+ <rect
+ rx="5.9999981"
+ ry="5.9116116"
+ y="237.99997"
+ x="53.999996"
+ height="12"
+ width="436"
+ id="rect11529"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.3;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.38420343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter10886-3);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.2;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.38420343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter8424);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ id="rect8422"
+ width="436"
+ height="12"
+ x="53.999996"
+ y="237.99997"
+ ry="5.9116116"
+ rx="5.9999981" />
+ </g>
+ <g
+ id="g6075"
+ clip-path="url(#clipPath6228)">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient6977);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.3510741;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 60,-20 h 109.44278 c 8.64132,-0.004 11.2047,-2.65758 15.16748,-8.5786 l 15.2868,-23.63318 C 203.16772,-57.26818 208.28276,-68 214.91244,-68 H 484 c 12,0 12,12 12,12 l -4,292 c 0,0 0,12 -12,12 H 64 C 52,248 52,236 52,236 L 48,-8 c 0,0 0,-12 12,-12 z"
+ id="path11597"
+ sodipodi:nodetypes="czzszcccccccc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#radialGradient6979);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.3510741;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 214.91211,-66 c -6.62968,0 -11.74497,10.73266 -15.01563,15.78906 l -15.2871,23.63282 c -3.96279,5.92101 -6.5247,8.57412 -15.16602,8.57812 H 60 C 48,-18 48,-6 48,-6 l 0.02344,1.47852 C 48.188797,-6.82532 49.506373,-16 60,-16 h 109.44336 c 8.64132,-0.004 11.20323,-2.65711 15.16602,-8.57812 l 15.2871,-23.63282 C 203.16714,-53.26734 208.28243,-64 214.91211,-64 H 484 c 10.65335,0 11.84435,9.41438 11.97852,11.53711 L 496,-54 c 0,0 0,-12 -12,-12 z"
+ id="path11597-3" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.23699999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#radialGradient6981);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect5882"
+ width="631"
+ height="6.5"
+ x="-44.5"
+ y="238.5"
+ rx="9.144928"
+ ry="3.25" />
+ <path
+ clip-path="none"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient6983);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter8589);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 60,-20 h 109.44278 c 8.64132,-0.004 11.2047,-2.65758 15.16748,-8.5786 l 15.2868,-23.63318 C 203.16772,-57.268176 208.28276,-68 214.91244,-68 H 483.75 c 13.5,0 12.25,7.25 12.25,12 l -4,292 c 0,0 0,12 -12,12 H 64 C 52,248 52,236 52,236 L 48,-8 c 0,-7.75 -2.75,-12 12,-12 z"
+ id="path8549"
+ sodipodi:nodetypes="czzszcccccccc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g8644">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc"
+ id="path11581"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient8642);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5085);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 604.49975,-182.49147 c 1.09462,0.0156 0.97965,0.99151 0.97965,0.99151 l 0.0206,25.5 c 0.0139,2 0.0308,3.53965 -1.5,3.5 h -40.00016 c -1.28109,-0.0625 -1.46951,-1.5052 -1.49984,-3.5 l 0.0115,-21.5 c -0.0287,-0.90113 0.9883,-1.02333 0.9883,-1.02333 l 11.40398,0.0534 c 0,0 0.65625,-0.0459 1.12211,-0.56141 l 1.53866,-2.52911 c 0.4538,-0.53068 1.02895,-0.91095 1.65395,-0.93115 z"
+ clip-path="none" />
+ <path
+ style="opacity:0.75;fill:none;fill-rule:evenodd;stroke:url(#radialGradient10236);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 604.52072,-181.5 H 579.5 c 0,0 -0.66026,0.018 -1.18442,0.58483 l -1.46221,2.42376 c -0.41838,0.51442 -1.07151,0.99136 -2.19934,0.99136 h -11.13331"
+ id="path11583"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ d="m 579.25195,-181.4375 c -0.2116,0.007 -0.53957,0.18431 -0.85937,0.54492 l -1.4668,2.41016 a 1.054403,1.054403 0 0 1 -0.11914,0.1582 c -0.77509,0.8577 -1.83008,0.90625 -1.83008,0.90625 a 1.054403,1.054403 0 0 1 -0.0762,0.002 l -11.29687,-0.0527 c -0.008,0.002 -0.0213,0.01 -0.0371,0.0156 l -0.0117,21.4375 c 0.0147,0.96805 0.0922,1.76086 0.22461,2.14843 0.0662,0.19379 0.13025,0.2691 0.14843,0.28516 0.017,0.015 0.0152,0.0215 0.11524,0.0273 H 604 a 1.054403,1.054403 0 0 1 0.0273,0 c 0.2062,0.005 0.2028,-0.0239 0.19727,-0.0195 -0.006,0.004 0.0399,-0.0261 0.0937,-0.20898 0.10766,-0.36585 0.13391,-1.2079 0.12695,-2.20899 a 1.054403,1.054403 0 0 1 0,-0.008 l -0.0215,-25.4375 z"
+ id="path10472"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.25400002;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient10532);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ inkscape:original="M 579.21875 -182.49219 C 578.59375 -182.47199 578.01825 -182.09123 577.56445 -181.56055 L 576.02539 -179.03125 C 575.55953 -178.51574 574.9043 -178.4707 574.9043 -178.4707 L 563.5 -178.52344 C 563.5 -178.52344 562.48302 -178.40113 562.51172 -177.5 L 562.5 -156 C 562.53033 -154.0052 562.71891 -152.5625 564 -152.5 L 604 -152.5 C 605.5308 -152.46035 605.5139 -154 605.5 -156 L 605.47852 -181.5 C 605.47852 -181.5 605.59462 -182.47659 604.5 -182.49219 L 579.21875 -182.49219 z "
+ inkscape:radius="-1.0542976"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <g
+ id="g7517"
+ style="opacity:0.70800003"
+ transform="matrix(1,0,0,1.0871046,0,7.603314)">
+ <rect
+ transform="matrix(0.12196789,0,0,0.09301748,560.64417,-105.19862)"
+ ry="10.750666"
+ rx="8.1988802"
+ y="189.49869"
+ x="11.116286"
+ height="21.501331"
+ width="229.56862"
+ id="rect11559"
+ style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5976)" />
+ <rect
+ style="opacity:0.35;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5970)"
+ id="rect11561"
+ width="229.56862"
+ height="21.501331"
+ x="11.116286"
+ y="189.49869"
+ rx="8.1988802"
+ ry="10.750666"
+ transform="matrix(0.12945128,0,0,0.09301748,559.70201,-105.19862)" />
+ </g>
+ <g
+ id="g8528">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path11563"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5128);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5142);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 563.5,-114.49151 c -1.09462,0.0156 -0.97965,0.99151 -0.97965,0.99151 l -0.0204,16 h 27 l -0.0117,-13 c 0.0287,-0.90113 -0.9883,-1.02333 -0.9883,-1.02333 l -13.23107,0.0551 -2.68699,-3.02332 z"
+ clip-path="none" />
+ <path
+ d="M 563.51758,-113.49414 563.5,-98.498047 h 25.00195 l -0.0117,-11.992183 c -0.0389,-0.018 -0.0723,-0.0308 -0.0879,-0.0352 l -13.1289,0.0547 a 0.9982575,0.9982575 0 0 1 -0.75,-0.33399 l -2.38867,-2.68945 z"
+ id="path7856"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.07000002;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:original="M 563.5 -114.49219 C 562.40538 -114.47659 562.51953 -113.5 562.51953 -113.5 L 562.5 -97.5 L 589.5 -97.5 L 589.48828 -110.5 C 589.51698 -111.40113 588.5 -111.52344 588.5 -111.52344 L 575.26953 -111.46875 L 572.58203 -114.49219 L 563.5 -114.49219 z "
+ inkscape:radius="-0.99815768"
+ sodipodi:type="inkscape:offset" />
+ <path
+ style="opacity:0.26600001;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient8666);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 563.5,-113.5 h 8.61981 l 2.6748,3 H 588.5"
+ id="path11567"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g8498">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient8668);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5077);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 561.74999,-87.499997 c -0.15012,-0.56026 -0.25,-1.48333 -0.25,-2.5 v -13.000013 c -0.0111,-0.50823 -0.12297,-1.5 1,-1.5 h 6.5 c 0,0 0.45412,0.0494 0.8609,-0.27711 l 2.19133,-2.38848 c 0.51129,-0.39482 0.96341,-0.33512 0.96341,-0.33512 h 16.48436 c 0,0 1.02676,0.0273 1,1.00027 v 16.500453 c 0,1.04873 -0.0883,1.8958 -0.25,2.49929 -0.13944,0.52039 -0.51562,1 -1,1 h -26.5 c -0.33001,-0.0435 -0.84005,-0.40234 -1,-0.99929 z"
+ id="path11565"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sccccccccccsccs" />
+ <path
+ d="m 572.88281,-106.50977 c 0,0 0.0779,0.001 0.0332,0.01 -0.0385,0.007 -0.12029,0.0424 -0.2168,0.10742 l -2.10156,2.29102 a 1.0001,1.0001 0 0 1 -0.11133,0.10351 c -0.7286,0.58483 -1.59375,0.49219 -1.59375,0.49219 L 569,-103.5 h -6.48633 c -0.007,0.0791 -0.0193,0.22186 -0.0137,0.47852 a 1.0001,1.0001 0 0 1 0,0.0215 v 13 c 0,0.951186 0.10905,1.838099 0.2168,2.240234 0.0242,0.09029 0.0779,0.169945 0.13867,0.22461 0.0501,0.04512 0.0682,0.04152 0.0215,0.03516 h 26.27539 c 0.0369,-0.04358 0.10098,-0.148231 0.13086,-0.259766 C 589.40786,-88.225 589.5,-89.007391 589.5,-90 v -16.49219 c -0.008,-0.002 -0.0254,-0.008 -0.0254,-0.008 h -16.45899 a 1.0001,1.0001 0 0 1 -0.13281,-0.01 z"
+ id="path7557"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.225;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8670);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ inkscape:original="M 573.01562 -107.5 C 573.01563 -107.5 572.56402 -107.56084 572.05273 -107.16602 L 569.86133 -104.77734 C 569.45455 -104.45083 569 -104.5 569 -104.5 L 562.5 -104.5 C 561.37703 -104.5 561.4889 -103.50823 561.5 -103 L 561.5 -90 C 561.5 -88.98332 561.59988 -88.06026 561.75 -87.5 C 561.90995 -86.90304 562.41999 -86.5435 562.75 -86.5 L 589.25 -86.5 C 589.73438 -86.5 590.11056 -86.9796 590.25 -87.5 C 590.4117 -88.10348 590.5 -88.95126 590.5 -90 L 590.5 -106.5 C 590.52676 -107.47297 589.5 -107.5 589.5 -107.5 L 573.01562 -107.5 z "
+ inkscape:radius="-1"
+ sodipodi:type="inkscape:offset"
+ transform="translate(4.2651516e-6)" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path11569"
+ d="m 589.52072,-106.5 h -16.66435 l -3.10499,2.99995 h -7.23066"
+ style="opacity:0.772;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient8672);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 583.97168,-102.091 c -0.2567,0.0331 -0.4832,0.23499 -0.5466,0.48632 l -1.0927,3.282701 c 0,0 -0.1467,0.0739 -0.2423,0.12249 h -3.3395 c -0.1867,0 -0.3689,0.0973 -0.4859,0.24315 -0.2462,0.27585 -0.1844,0.76528 0.1207,0.97266 l 2.7325,2.0062 0.058,0.2918 -1.032,3.2218 c -0.1435,0.50286 0.5294,1.0082 0.9715,0.72947 l 2.7322,-2.006 h 0.3497 l 2.7325,2.006 c 0.2376,0.15564 0.5781,0.12845 0.7891,-0.0603 0.1789,-0.16536 0.2534,-0.43555 0.1827,-0.66879 l -1.0323,-3.2218 c -0.098,-0.0194 0.038,-0.19453 0.058,-0.29178 l 2.7321,-2.0062 c 0.3061,-0.20736 0.3667,-0.6968 0.1207,-0.97264 -0.1161,-0.14585 -0.2991,-0.23713 -0.4857,-0.24316 h -3.4004 c 0,0 -0.153,-0.0774 -0.2422,-0.12249 l -1.0323,-3.282601 c -0.031,-0.11485 -0.095,-0.22216 -0.1826,-0.30405 -0.1283,-0.12447 -0.3079,-0.19259 -0.4857,-0.18286 l 0.021,2e-4 -9e-4,1e-5 4e-4,-3e-5 z"
+ style="fill:none;stroke:#bb660b;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+ id="path5717-0-9-4-5" />
+ <g
+ transform="matrix(1.5273,0,0,1.5273,-2334.6183,-1362.081)"
+ style="stroke:#fde8d0;stroke-width:0.98214;enable-background:new"
+ id="g5833-3-4-9">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 1911,824.3 c -0.1681,0.0217 -0.3164,0.15386 -0.3579,0.31842 l -0.7155,2.1494 c 0,0 -0.096,0.0484 -0.1586,0.0802 h -2.1866 c -0.1222,0 -0.2415,0.0637 -0.3181,0.15921 -0.1612,0.18061 -0.1208,0.50107 0.079,0.63685 l 1.7891,1.3136 0.038,0.19106 -0.6757,2.1095 c -0.094,0.32925 0.3466,0.66015 0.6361,0.47763 l 1.7889,-1.3134 h 0.229 l 1.7891,1.3134 c 0.1556,0.1019 0.3785,0.0841 0.5167,-0.0395 0.1171,-0.10827 0.1659,-0.28518 0.1196,-0.4379 l -0.6759,-2.1095 c -0.064,-0.0127 0.025,-0.12737 0.038,-0.19105 l 1.7889,-1.3136 c 0.2004,-0.13577 0.2401,-0.45623 0.079,-0.63684 -0.076,-0.0955 -0.1958,-0.15526 -0.318,-0.15921 h -2.2264 c 0,0 -0.1002,-0.0507 -0.1586,-0.0802 l -0.6759,-2.1493 c -0.02,-0.0752 -0.062,-0.14546 -0.1196,-0.19908 -0.084,-0.0815 -0.2016,-0.1261 -0.318,-0.11973 l 0.014,1.3e-4 -6e-4,1e-5 v 0 z"
+ style="fill:none;stroke:#fde8d0;stroke-width:0.98214;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+ id="path5717-0-9-4" />
+ </g>
+ <g
+ transform="translate(-0.09003553,0.01997387)"
+ style="display:inline;enable-background:new"
+ id="g4814">
+ <g
+ transform="matrix(2,0,0,2,-108.1692,270.37793)"
+ id="g6954"
+ style="display:inline;enable-background:new">
+ <g
+ style="fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-377,-265.9)"
+ id="g7670">
+ <path
+ id="path4683"
+ style="stroke:#fbc98d;enable-background:new"
+ d="m 569.63,135.6 c -1.8678,0.24167 -3.5157,1.7145 -3.9769,3.5482 l -7.9492,23.95 -1.7625,0.89368 h -24.294 c -1.3579,0 -2.6831,0.70979 -3.5342,1.7741 -1.7911,2.0126 -1.342,5.5835 0.8777,7.0965 l 19.878,14.637 0.4228,2.129 -7.5075,23.506 c -1.044,3.6688 3.8509,7.3561 7.0675,5.3223 l 19.876,-14.636 h 2.5444 l 19.878,14.636 c 1.7284,1.1354 4.2055,0.93713 5.7406,-0.43994 1.3013,-1.2065 1.8432,-3.1778 1.3288,-4.8796 l -7.5094,-23.506 c -0.7113,-0.14154 0.2801,-1.4192 0.4228,-2.1289 l 19.875,-14.637 c 2.2268,-1.5129 2.6678,-5.0838 0.8779,-7.0964 -0.8444,-1.0642 -2.1756,-1.7301 -3.5328,-1.7741 h -24.737 l -1.7619,-0.89367 -7.5096,-23.95 c -0.2213,-0.83794 -0.689,-1.6208 -1.3288,-2.2184 -0.9333,-0.90818 -2.2399,-1.4052 -3.5332,-1.3341 l 0.1573,8.6e-4 v 1.1e-4 l -0.009,3.4e-4 z"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 569.63,136.6 c -1.8678,0.24167 -3.5157,1.7145 -3.9769,3.5482 l -7.9492,23.95 -1.7625,0.89368 h -24.294 c -1.3579,0 -2.6831,0.70979 -3.5342,1.7741 -1.7911,2.0126 -1.342,5.5835 0.8777,7.0965 l 19.878,14.637 0.4228,2.129 -7.5075,23.506 c -1.044,3.6688 3.8509,7.3561 7.0675,5.3223 l 19.876,-14.636 h 2.5444 l 19.878,14.636 c 1.7284,1.1354 4.2055,0.93713 5.7406,-0.43994 1.3013,-1.2065 1.8432,-3.1778 1.3288,-4.8796 l -7.5094,-23.506 c -0.7113,-0.14154 0.2801,-1.4192 0.4228,-2.1289 l 19.875,-14.637 c 2.2268,-1.5129 2.6678,-5.0838 0.8779,-7.0964 -0.8444,-1.0642 -2.1756,-1.7301 -3.5328,-1.7741 h -24.737 l -1.7619,-0.89367 -7.5096,-23.95 c -0.2213,-0.83794 -0.689,-1.6208 -1.3288,-2.2184 -0.9333,-0.90818 -2.2399,-1.4052 -3.5332,-1.3341 l 0.1573,8.6e-4 v 1.1e-4 l -0.009,3.4e-4 z"
+ style="stroke:#d77711;enable-background:new"
+ id="path5717-0-9-5-0" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 569.63,135.6 c -1.8678,0.24167 -3.5157,1.7145 -3.9769,3.5482 l -7.9492,23.95 -1.7625,0.89368 h -24.294 c -1.3579,0 -2.6831,0.70979 -3.5342,1.7741 -1.7911,2.0126 -1.342,5.5835 0.8777,7.0965 l 19.878,14.637 0.4228,2.129 -7.5075,23.506 c -1.044,3.6688 3.8509,7.3561 7.0675,5.3223 l 19.876,-14.636 h 2.5444 l 19.878,14.636 c 1.7284,1.1354 4.2055,0.93713 5.7406,-0.43994 1.3013,-1.2065 1.8432,-3.1778 1.3288,-4.8796 l -7.5094,-23.506 c -0.7113,-0.14154 0.2801,-1.4192 0.4228,-2.1289 l 19.875,-14.637 c 2.2268,-1.5129 2.6678,-5.0838 0.8779,-7.0964 -0.8444,-1.0642 -2.1756,-1.7301 -3.5328,-1.7741 h -24.737 l -1.7619,-0.89367 -7.5096,-23.95 c -0.2213,-0.83794 -0.689,-1.6208 -1.3288,-2.2184 -0.9333,-0.90818 -2.2399,-1.4052 -3.5332,-1.3341 l 0.1573,8.6e-4 v 1.1e-4 l -0.009,3.4e-4 z"
+ style="stroke:#fbc98d;enable-background:new"
+ id="path5717-0-9-5-3" />
+ </g>
+ <path
+ style="opacity:0.45783003;fill:url(#radialGradient6918);fill-rule:evenodd;stroke-width:2.70919991"
+ inkscape:connector-curvature="0"
+ d="m 237.7378,-100.1238 c 0,7.481185 -6.06482,13.546 -13.546,13.546 -7.48118,0 -13.546,-6.064815 -13.546,-13.546 0,-7.48118 6.06482,-13.546 13.546,-13.546 7.48118,0 13.546,6.06482 13.546,13.546 z"
+ id="path14841-3" />
+ <path
+ style="opacity:0.45783003;fill:url(#radialGradient6920);fill-rule:evenodd;stroke-width:3.80920005"
+ inkscape:connector-curvature="0"
+ d="m 247.8578,-103.1238 c 0,10.518725 -8.52728,19.046 -19.046,19.046 -10.51872,0 -19.046,-8.527275 -19.046,-19.046 0,-10.51872 8.52728,-19.046 19.046,-19.046 10.51872,0 19.046,8.52728 19.046,19.046 z"
+ id="path14849-7" />
+ <path
+ style="fill:url(#radialGradient5268);fill-opacity:1;fill-rule:evenodd;stroke-width:0.50797999"
+ inkscape:connector-curvature="0"
+ d="m 227.40812,-99.44502 c 0,1.402736 -1.13716,2.5399 -2.5399,2.5399 -1.40274,0 -2.5399,-1.137164 -2.5399,-2.5399 0,-1.40274 1.13716,-2.5399 2.5399,-2.5399 1.40274,0 2.5399,1.13716 2.5399,2.5399 z"
+ id="path14843-0" />
+ <path
+ style="fill:url(#radialGradient5240);fill-opacity:1;fill-rule:evenodd;stroke-width:0.71421999"
+ inkscape:connector-curvature="0"
+ d="m 233.33768,-102.16778 c 0,1.97225 -1.59885,3.5711 -3.5711,3.5711 -1.97225,0 -3.5711,-1.59885 -3.5711,-3.5711 0,-1.97225 1.59885,-3.5711 3.5711,-3.5711 1.97225,0 3.5711,1.59885 3.5711,3.5711 z"
+ id="path14851-8" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 180.32656,-58.581108 c 0,0 6.625,-3.125 12.625,0.125 l 21,15.25 c 3.875,2.125 9.5,-1.25 10.375,-4.875 0,0 -6.25,0.75 -8.5,-2.75 l -19.5,-14.75 c -1.625,-1.25 -4.25,-1.25 -6.25,-0.25 z"
+ style="color:#000000;opacity:0.56223001;fill:#fdeddd"
+ id="path11982-8" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 171.49622,-42.841 c -3.125,-1 -4.4428,-3.0273 -2.8894,-8.8172 l 3.9266,-12.827 c 0.46212,-4.3952 0.2966,-7.8518 -5.2599,-11.008 0,0 -0.75133,6.0816 -2.2258,10.04 l -4.3167,13.436 c -0.30418,5.8002 4.7754,9.8299 10.765,9.176 z"
+ style="color:#000000;opacity:0.56223001;fill:#fde6cf"
+ id="path11986-8" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 188.003,-112.918 c 0,0 -3.5993,6.3798 -10.374,7.1964 l -23.701,0.19632 c -5.8903,0.006 -9.4041,7.3868 -7.2725,12.851 0,0 0.66626,-4.725 7.7755,-4.7948 l 24.563,-0.48717 c 2.0486,0.0806 4.1905,-1.4369 5.2444,-3.4091 z"
+ style="color:#000000;opacity:0.56223001;fill:#ffffff"
+ id="path12005-4" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 187.913,-132.97246 c 0,0 2.26,1.3429 5.6317,7.2754 l 3.7079,12.163 c 2.1637,3.8535 4.1,7.2989 10.458,6.6619 0,0 -4.8166,-15.45 -7.5324,-23.085 -3.1048,-4.9086 -7.9683,-4.7165 -12.265,-3.0153 z"
+ style="color:#000000;opacity:0.56223001;fill:#ffffff"
+ id="path12007-3" />
+ <g
+ style="fill-rule:evenodd"
+ transform="translate(352.053,-245.983)"
+ id="g12056-1">
+ <path
+ style="opacity:0.45783003;fill:url(#radialGradient7892-7-7)"
+ inkscape:connector-curvature="0"
+ transform="matrix(1.8092,0,0,1.8092,-568.58,103.68)"
+ d="m 244,51 c 0,2.7614 -2.2386,5 -5,5 -2.7614,0 -5,-2.2386 -5,-5 0,-2.7614 2.2386,-5 5,-5 2.7614,0 5,2.2386 5,5 z"
+ id="path12062-2" />
+ <path
+ style="opacity:0.45783003;fill:url(#radialGradient6922)"
+ inkscape:connector-curvature="0"
+ transform="matrix(3.8092,0,0,3.8092,-1042.5,0.95285)"
+ d="m 244,51 c 0,2.7614 -2.2386,5 -5,5 -2.7614,0 -5,-2.2386 -5,-5 0,-2.7614 2.2386,-5 5,-5 2.7614,0 5,2.2386 5,5 z"
+ id="path12058-4" />
+ <path
+ style="fill:url(#radialGradient5260);fill-opacity:1"
+ inkscape:connector-curvature="0"
+ transform="matrix(0.71422,0,0,0.71422,-301.85,159.75)"
+ d="m 244,51 c 0,2.7614 -2.2386,5 -5,5 -2.7614,0 -5,-2.2386 -5,-5 0,-2.7614 2.2386,-5 5,-5 2.7614,0 5,2.2386 5,5 z"
+ id="path12060-9" />
+ <path
+ style="fill:url(#radialGradient5258);fill-opacity:1"
+ inkscape:connector-curvature="0"
+ transform="matrix(0.33922,0,0,0.33922,-216.81,179.1)"
+ d="m 244,51 c 0,2.7614 -2.2386,5 -5,5 -2.7614,0 -5,-2.2386 -5,-5 0,-2.7614 2.2386,-5 5,-5 2.7614,0 5,2.2386 5,5 z"
+ id="path12064-0" />
+ </g>
+ </g>
+ <path
+ id="path14984-6"
+ transform="matrix(1.59104,0.7026,-0.70276,1.5914,158.4148,-308.70807)"
+ d="m 206.67,217.35 -40.254,-8.0108 -22.183,34.465 -4.8204,-40.759 -39.633,-10.447 37.275,-17.18 -2.3117,-40.921 27.858,30.142 38.204,-14.844 -20.058,35.808 z"
+ inkscape:connector-curvature="0"
+ style="display:inline;fill:none;stroke:url(#radialGradient7894-2-5);stroke-width:11.49800014;stroke-linecap:round;stroke-linejoin:round;filter:url(#filter15758-4-6);enable-background:new" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="symbols"
+ style="display:inline">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5899"
+ d="m 591.8782,-175.86534 v 0.002 a 1.0000999,1.0000999 0 0 0 -0.057,0.002 c 0,1.1e-4 0,-0.002 -0.01,-0.002 a 1.0000999,1.0000999 0 0 0 -0.627,0.26953 1.0000999,1.0000999 0 0 0 0,0.002 c -0.511,0.25042 -0.9347,0.63689 -1.082,1.2207 l 0.02,-0.0723 -1.4902,4.48243 h -4.6504 c -0.6202,0 -1.1339,0.29559 -1.4922,0.73046 -0.7959,0.91835 -0.6322,2.25491 0.375,2.93946 l -0.029,-0.0195 3.752,2.7539 -1.4453,4.50782 a 1.0000999,1.0000999 0 0 0 -0.01,0.0293 c -0.2464,0.86305 0.2006,1.64798 0.7656,2.07227 0.565,0.42429 1.4436,0.63516 2.2031,0.15625 a 1.0000999,1.0000999 0 0 0 0.059,-0.041 l 3.8184,-2.80273 3.8184,2.80273 a 1.0000999,1.0000999 0 0 0 0.045,0.0312 c 0.7713,0.50513 1.7273,0.42709 2.4101,-0.18359 a 1.0000999,1.0000999 0 0 0 0.014,-0.01 c 0.5683,-0.52542 0.7809,-1.29324 0.5547,-2.03906 a 1.0000999,1.0000999 0 0 0 -0.01,-0.0156 l -1.4433,-4.50782 3.7187,-2.73242 c 1.0089,-0.68352 1.1716,-2.02204 0.3789,-2.93945 -0.3674,-0.44717 -0.8841,-0.7138 -1.4609,-0.73242 a 1.0000999,1.0000999 0 0 0 -0.031,0 h -4.7343 l -1.3907,-4.42188 c -0.094,-0.35824 -0.2866,-0.67041 -0.5546,-0.92383 -0.1859,-0.17924 -0.4594,-0.16535 -0.6914,-0.25976 a 1.0000999,1.0000999 0 0 0 -0.6934,-0.29883 h -0.014 z m 0.098,2.18945 1.5196,4.82813 a 1.0000999,1.0000999 0 0 0 0.023,0.0664 c 0,0 0.1364,0.30397 0.3594,0.49219 0.223,0.18822 0.5819,0.32813 0.9394,0.32813 h 5.1172 a 1.0000999,1.0000999 0 0 0 0.021,0.0234 1.0000999,1.0000999 0 0 0 -0.02,0.0156 l -4.1445,3.04297 a 1.0000999,1.0000999 0 0 0 -0.2676,0.29297 1.0000999,1.0000999 0 0 0 0,0.002 c -0.027,0.0291 -0.01,0.003 -0.053,0.0586 -0.124,0.1621 -0.2493,0.49216 -0.2363,0.75781 0.013,0.26566 0.097,0.44876 0.1796,0.60547 l -0.068,-0.16406 1.541,4.81445 -4.0508,-2.9746 a 1.0000999,1.0000999 0 0 0 -0.035,-0.0234 c 0,0 -0.2057,-0.14681 -0.5,-0.21875 -0.2943,-0.0719 -0.8543,-0.056 -1.2559,0.30469 l 0.076,-0.0625 -4.0332,2.96093 c -0.013,-0.007 -0.01,-0.0175 -0.031,0.0566 l 0.014,-0.043 -0.018,0.0137 c 0.018,-0.006 0.015,-0.0176 0.02,-0.0195 l 1.541,-4.80859 -0.1211,0.25 c 0.1288,-0.19319 0.2381,-0.43838 0.25,-0.72656 0.012,-0.28818 -0.099,-0.58545 -0.2364,-0.77149 -0.2745,-0.37206 -0.623,-0.45117 -0.623,-0.45117 l 0.2812,0.14453 -4.1445,-3.04296 a 1.0000999,1.0000999 0 0 0 -0.02,-0.0137 1.0000999,1.0000999 0 0 0 0.02,-0.0234 h 5.0274 c 0.7427,2.4e-4 1.2207,-0.66602 1.2207,-0.66602 a 1.0000999,1.0000999 0 0 0 0.096,-0.20508 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c66f11;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5901"
+ d="m 579.9016,-49.683699 a 0.50005,0.50005 0 0 0 -0.01,0.002 0.50005,0.50005 0 0 0 -0.4531,0.390626 c -0.1198,0.119007 -0.3208,0.147869 -0.3652,0.324218 l -0.6639,1.996047 h -2.1093 c -0.2985,0 -0.5429,0.143479 -0.7149,0.351562 -0.3829,0.442206 -0.3052,1.080436 0.1797,1.410157 l -0.016,-0.0098 1.7031,1.25 -0.6562,2.042969 a 0.50005,0.50005 0 0 0 0,0.01563 c -0.1188,0.416168 0.095,0.793371 0.3652,0.996094 0.27,0.202722 0.6923,0.305072 1.0586,0.07422 a 0.50005,0.50005 0 0 0 0.029,-0.02148 l 1.7324,-1.271484 1.7324,1.271484 a 0.50005,0.50005 0 0 0 0.021,0.01563 c 0.3712,0.243327 0.8296,0.205796 1.1582,-0.08789 a 0.50005,0.50005 0 0 0 0.01,-0.0059 c 0.2728,-0.252577 0.3743,-0.61969 0.2656,-0.978516 a 0.50005,0.50005 0 0 0 0,-0.0078 l -0.6562,-2.042969 1.7031,-1.25 -0.016,0.0098 c 0.4862,-0.32933 0.5624,-0.968479 0.1797,-1.410157 -0.1765,-0.21343 -0.423,-0.342641 -0.6992,-0.351562 a 0.50005,0.50005 0 0 0 -0.016,0 h -2.1484 l -0.6348,-2.023438 v 0.01758 c -0.045,-0.164363 -0.132,-0.316265 -0.2617,-0.439453 -4e-4,-4.42e-4 0,4.4e-4 0,0 -0.086,-0.08255 -0.2134,-0.07584 -0.3203,-0.121094 a 0.50005,0.50005 0 0 0 -0.3438,-0.146485 v 0 h -0.012 a 0.50005,0.50005 0 0 0 -0.027,0.002 c 0,7.7e-5 0,-0.002 0,-0.002 z m 0.074,1.173829 0.6622,2.103515 a 0.50005,0.50005 0 0 0 0.012,0.0332 c 0,0 0.066,0.149815 0.1758,0.242188 0.1093,0.09237 0.2861,0.160156 0.4589,0.160156 h 2.2559 l -1.832,1.345703 a 0.50005,0.50005 0 0 0 -0.127,0.136719 c -0.014,0.01436 -0.01,0.0019 -0.029,0.0332 -0.011,0.01414 -0.01,0.04767 -0.02,0.06641 -0.049,0.08765 -0.103,0.200511 -0.098,0.308594 0.01,0.131193 0.048,0.219897 0.088,0.294922 l -0.035,-0.08203 0.6718,2.095703 -1.7636,-1.294922 a 0.50005,0.50005 0 0 0 -0.018,-0.01172 c 0,0 -0.099,-0.0705 -0.2422,-0.105469 -0.143,-0.03497 -0.4171,-0.02768 -0.6133,0.148438 l 0.037,-0.03125 -1.7617,1.294922 0.6699,-2.095703 -0.059,0.123046 c 0.062,-0.09339 0.1137,-0.211833 0.1192,-0.353515 0.01,-0.141682 -0.048,-0.287582 -0.1153,-0.378906 -0.1351,-0.182649 -0.3066,-0.222657 -0.3066,-0.222657 l 0.1406,0.07227 -1.832,-1.34375 h 2.2148 c 0.3598,-0.0011 0.5957,-0.326172 0.5957,-0.326172 a 0.50005,0.50005 0 0 0 0.047,-0.101562 z m 2.2286,6.880859 v 0.0098 -0.0078 c -5e-4,-0.0014 3e-4,-7.29e-4 0,-0.002 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c66f11;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5905"
+ d="m 575.9407,-5.2696361 a 0.50005,0.50005 0 0 0 -0.033,0.00195 0.50005,0.50005 0 0 0 -0.023,0.00195 0.50005,0.50005 0 0 0 -0.4335,0.3867188 c -0.096,0.1054119 -0.2709,0.1237527 -0.3086,0.2734375 l 0.01,-0.035156 -0.5547,1.6640625 h -1.7246 c -0.2782,0 -0.5047,0.1317579 -0.664,0.3242188 -0.3553,0.4108805 -0.2844,0.9948116 0.164,1.3027344 0,9.237e-4 6e-4,0.00299 0,0.00391 l 1.3769,1.0117188 -0.5351,1.6738281 a 0.50005,0.50005 0 0 0 0,0.015625 c -0.1117,0.3891075 0.088,0.7378254 0.3359,0.9238281 0.2478,0.1860027 0.64,0.2822567 0.9824,0.066406 a 0.50005,0.50005 0 0 0 0.029,-0.019531 l 1.4154,-1.0410135 1.418,1.0410156 a 0.50005,0.50005 0 0 0 0.022,0.013672 c 0.3454,0.2262629 0.7665,0.1929902 1.0722,-0.080078 a 0.50005,0.50005 0 0 0 0.01,-0.00586 c 0.2536,-0.2346783 0.3473,-0.572636 0.2461,-0.90625 a 0.50005,0.50005 0 0 0 0,-0.00781 l -0.5351,-1.6738281 1.375,-1.0117188 c 0.453,-0.3068044 0.5241,-0.8949907 0.1679,-1.3066406 -0.1631,-0.1963607 -0.3895,-0.3159199 -0.6465,-0.3242188 a 0.50005,0.50005 0 0 0 -0.017,0 h -1.7559 l -0.5156,-1.6347656 c -0.043,-0.1602909 -0.1264,-0.2991013 -0.2461,-0.4121094 -0.073,-0.069482 -0.1826,-0.058759 -0.2715,-0.099609 a 0.50005,0.50005 0 0 0 -0.3359,-0.1464843 0.50005,0.50005 0 0 0 -0.01,0 z m 0.033,1.3242187 0.4863,1.546875 a 0.50005,0.50005 0 0 0 0.012,0.033203 c 0,0 0.066,0.145286 0.1719,0.234375 0.1054,0.089089 0.2752,0.1542968 0.4375,0.1542968 h 1.6699 l -1.3574,0.9960938 a 0.50005,0.50005 0 0 0 -0.1289,0.1386718 0.50005,0.50005 0 0 0 -0.01,0.00781 c -0.01,0.010503 0,-7.147e-4 -0.014,0.013672 -0.01,0.00664 0,0.02347 -0.01,0.03125 a 0.50005,0.50005 0 0 0 -0.035,0.109375 c 8e-4,-0.00389 0,-0.00398 0,-0.00781 -0.033,0.079121 -0.077,0.154375 -0.072,0.2363281 0.01,0.1280487 0.045,0.2119777 0.082,0.28125 l -0.035,-0.083984 0.4961,1.5429687 -1.2989,-0.95117188 a 0.50005,0.50005 0 0 0 -0.017,-0.0117188 c 0,0 -0.093,-0.0684594 -0.2286,-0.1015625 -0.1354,-0.0331031 -0.4016,-0.0248163 -0.5898,0.14453125 l 0.039,-0.03125 -1.2969,0.95117193 0.4941,-1.5429688 -0.06,0.1269531 c 0.058,-0.087035 0.1094,-0.2021235 0.1152,-0.3398438 0.01,-0.1377202 -0.047,-0.281773 -0.1133,-0.3710937 -0.1316,-0.1786413 -0.2968,-0.2148437 -0.2968,-0.2148436 l 0.1406,0.072266 -1.3574,-0.9960939 h 1.6347 c 0.3432,5.529e-4 0.5703,-0.3125 0.5703,-0.3125 a 0.50005,0.50005 0 0 0 0.047,-0.1015625 z m 2.0664,3.7324219 c -0.045,0.058226 -0.056,0.061826 -0.018,0.023437 0,-0.00258 0.01,-0.016345 0.01,-0.019531 z m -0.2559,1.8476563 v 0.00977 -0.00586 c -5e-4,-0.0018 5e-4,-0.00218 0,-0.00391 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c66f11;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fde8d0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92400002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 590.1022,-175.37111 0.02,-0.0723 -1.4902,4.48243 h -4.6504 c -0.6202,0 -1.1339,0.29559 -1.4922,0.73046 -0.7959,0.91835 -0.6322,2.25491 0.375,2.93946 l -0.029,-0.0195 3.752,2.7539 -1.4453,4.50782 c 0,0.01 -0.01,0.0195 -0.01,0.0293 -0.2464,0.86305 0.2006,1.64798 0.7656,2.07227 0.565,0.42429 1.4436,0.63516 2.2031,0.15625 0.02,-0.013 0.04,-0.0266 0.059,-0.041 l 3.8184,-2.80273 3.8184,2.80273 c 0.015,0.0108 0.03,0.0212 0.045,0.0312 0.7713,0.50513 1.7273,0.42709 2.4101,-0.18359 0,-0.003 0.01,-0.007 0.014,-0.01 0.5683,-0.52542 0.7809,-1.29324 0.5547,-2.03906 0,-0.005 -0.01,-0.0104 -0.01,-0.0156 l -1.4433,-4.50782 3.7187,-2.73242 c 1.0089,-0.68352 1.1716,-2.02204 0.3789,-2.93945 -0.3674,-0.44717 -0.8841,-0.7138 -1.4609,-0.73242 -0.01,-1.6e-4 -0.021,-1.6e-4 -0.031,0 h -4.7343 l -1.3907,-4.42188 c -0.094,-0.35824 -0.2866,-0.67041 -0.5546,-0.92383 -1.6271,-0.77006 -2.0804,-0.69724 -3.191,0.93578 z m 1.874,0.69522 1.5196,4.82813 c 0.01,0.0224 0.015,0.0445 0.023,0.0664 0,0 0.1364,0.30397 0.3594,0.49219 0.223,0.18822 0.5819,0.32813 0.9394,0.32813 h 5.1172 c 0.01,0.008 0.014,0.0157 0.021,0.0234 -0.01,0.005 -0.013,0.0103 -0.02,0.0156 l -4.1445,3.04297 c -0.1079,0.0788 -0.1989,0.17842 -0.2676,0.29297 v 0.002 c -0.027,0.0291 -0.01,0.003 -0.053,0.0586 -0.124,0.1621 -0.2493,0.49216 -0.2363,0.75781 0.013,0.26566 0.097,0.44876 0.1796,0.60547 l -0.068,-0.16406 1.541,4.81445 -4.0508,-2.9746 c -0.012,-0.008 -0.023,-0.0159 -0.035,-0.0234 0,0 -0.2057,-0.14681 -0.5,-0.21875 -0.2943,-0.0719 -0.8543,-0.056 -1.2559,0.30469 l 0.076,-0.0625 -4.0332,2.96093 c -0.013,-0.007 -0.01,-0.0175 -0.031,0.0566 l 0.014,-0.043 -0.018,0.0137 c 0.018,-0.006 0.015,-0.0176 0.02,-0.0195 l 1.541,-4.80859 -0.1211,0.25 c 0.1288,-0.19319 0.2381,-0.43838 0.25,-0.72656 0.012,-0.28818 -0.099,-0.58545 -0.2364,-0.77149 -0.2745,-0.37206 -0.623,-0.45117 -0.623,-0.45117 l 0.2812,0.14453 -4.1445,-3.04296 c -0.01,-0.005 -0.013,-0.009 -0.02,-0.0137 0.01,-0.008 0.014,-0.0155 0.02,-0.0234 h 5.0274 c 0.7427,2.4e-4 1.2207,-0.66602 1.2207,-0.66602 0.04,-0.0645 0.072,-0.13331 0.096,-0.20508 z"
+ id="path5717-0-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccscccccccccccccccccccccsscccccccccccccccccccccccccccccccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fde8d0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92400002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 579.9016,-50.683699 a 0.50005,0.50005 0 0 0 -0.01,0.002 0.50005,0.50005 0 0 0 -0.4531,0.390626 c -0.1198,0.119007 -0.3208,0.147869 -0.3652,0.324218 l -0.6639,1.996047 h -2.1093 c -0.2985,0 -0.5429,0.143479 -0.7149,0.351562 -0.3829,0.442206 -0.3052,1.080436 0.1797,1.410157 l -0.016,-0.0098 1.7031,1.25 -0.6562,2.042969 a 0.50005,0.50005 0 0 0 0,0.01563 c -0.1188,0.416168 0.095,0.793371 0.3652,0.996094 0.27,0.202722 0.6923,0.305072 1.0586,0.07422 a 0.50005,0.50005 0 0 0 0.029,-0.02148 l 1.7324,-1.271484 1.7324,1.271484 a 0.50005,0.50005 0 0 0 0.021,0.01563 c 0.3712,0.243327 0.8296,0.205796 1.1582,-0.08789 a 0.50005,0.50005 0 0 0 0.01,-0.0059 c 0.2728,-0.252577 0.3743,-0.61969 0.2656,-0.978516 a 0.50005,0.50005 0 0 0 0,-0.0078 l -0.6562,-2.042969 1.7031,-1.25 -0.016,0.0098 c 0.4862,-0.32933 0.5624,-0.968479 0.1797,-1.410157 -0.1765,-0.21343 -0.423,-0.342641 -0.6992,-0.351562 a 0.50005,0.50005 0 0 0 -0.016,0 h -2.1484 l -0.6348,-2.023438 v 0.01758 c -0.045,-0.164363 -0.132,-0.316265 -0.2617,-0.439453 -4e-4,-4.42e-4 0,4.4e-4 0,0 -0.086,-0.08255 -0.2134,-0.07584 -0.3203,-0.121094 a 0.50005,0.50005 0 0 0 -0.3438,-0.146485 v 0 h -0.012 a 0.50005,0.50005 0 0 0 -0.027,0.002 c 0,7.7e-5 0,-0.002 0,-0.002 z m 0.074,1.173829 0.6622,2.103515 a 0.50005,0.50005 0 0 0 0.012,0.0332 c 0,0 0.066,0.149815 0.1758,0.242188 0.1093,0.09237 0.2861,0.160156 0.4589,0.160156 h 2.2559 l -1.832,1.345703 a 0.50005,0.50005 0 0 0 -0.127,0.136719 c -0.014,0.01436 -0.01,0.0019 -0.029,0.0332 -0.011,0.01414 -0.01,0.04767 -0.02,0.06641 -0.049,0.08765 -0.103,0.200511 -0.098,0.308594 0.01,0.131193 0.048,0.219897 0.088,0.294922 l -0.035,-0.08203 0.6718,2.095703 -1.7636,-1.294922 a 0.50005,0.50005 0 0 0 -0.018,-0.01172 c 0,0 -0.099,-0.0705 -0.2422,-0.105469 -0.143,-0.03497 -0.4171,-0.02768 -0.6133,0.148438 l 0.037,-0.03125 -1.7617,1.294922 0.6699,-2.095703 -0.059,0.123046 c 0.062,-0.09339 0.1137,-0.211833 0.1192,-0.353515 0.01,-0.141682 -0.048,-0.287582 -0.1153,-0.378906 -0.1351,-0.182649 -0.3066,-0.222657 -0.3066,-0.222657 l 0.1406,0.07227 -1.832,-1.34375 h 2.2148 c 0.3598,-0.0011 0.5957,-0.326172 0.5957,-0.326172 a 0.50005,0.50005 0 0 0 0.047,-0.101562 z m 2.2286,6.880859 v 0.0098 -0.0078 c -5e-4,-0.0014 3e-4,-7.29e-4 0,-0.002 z"
+ id="path5862"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fde8d0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92400002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 575.9407,-6.2696361 a 0.50005,0.50005 0 0 0 -0.033,0.00195 0.50005,0.50005 0 0 0 -0.023,0.00195 0.50005,0.50005 0 0 0 -0.4335,0.3867188 c -0.096,0.1054119 -0.2709,0.1237527 -0.3086,0.2734375 l 0.01,-0.035156 -0.5547,1.6640625 h -1.7246 c -0.2782,0 -0.5047,0.1317579 -0.664,0.3242188 -0.3553,0.4108805 -0.2844,0.9948116 0.164,1.3027344 0,9.237e-4 6e-4,0.00299 0,0.00391 l 1.3769,1.0117188 -0.5351,1.67382805 a 0.50005,0.50005 0 0 0 0,0.015625 c -0.1117,0.3891075 0.088,0.73782545 0.3359,0.92382815 0.2478,0.1860027 0.64,0.2822567 0.9824,0.066406 a 0.50005,0.50005 0 0 0 0.029,-0.019531 l 1.4154,-1.04101355 1.418,1.04101565 a 0.50005,0.50005 0 0 0 0.022,0.013672 c 0.3454,0.2262629 0.7665,0.1929902 1.0722,-0.080078 a 0.50005,0.50005 0 0 0 0.01,-0.00586 c 0.2536,-0.2346783 0.3473,-0.57263599 0.2461,-0.90625005 a 0.50005,0.50005 0 0 0 0,-0.007813 l -0.5351,-1.67382805 1.375,-1.0117188 c 0.453,-0.3068044 0.5241,-0.8949907 0.1679,-1.3066406 -0.1631,-0.1963607 -0.3895,-0.3159199 -0.6465,-0.3242188 a 0.50005,0.50005 0 0 0 -0.017,0 h -1.7559 l -0.5156,-1.6347656 c -0.043,-0.1602909 -0.1264,-0.2991013 -0.2461,-0.4121094 -0.073,-0.069482 -0.1826,-0.058759 -0.2715,-0.099609 a 0.50005,0.50005 0 0 0 -0.3359,-0.1464843 0.50005,0.50005 0 0 0 -0.01,0 z m 0.033,1.3242187 0.4863,1.546875 a 0.50005,0.50005 0 0 0 0.012,0.033203 c 0,0 0.066,0.145286 0.1719,0.234375 0.1054,0.089089 0.2752,0.1542968 0.4375,0.1542968 h 1.6699 l -1.3574,0.9960938 a 0.50005,0.50005 0 0 0 -0.1289,0.1386718 0.50005,0.50005 0 0 0 -0.01,0.00781 c -0.01,0.010503 0,-7.147e-4 -0.014,0.013672 -0.01,0.00664 0,0.02347 -0.01,0.03125 a 0.50005,0.50005 0 0 0 -0.035,0.109375 c 8e-4,-0.00389 0,-0.00398 0,-0.00781 -0.033,0.079121 -0.077,0.154375 -0.072,0.2363281 0.01,0.1280487 0.045,0.2119777 0.082,0.28125 l -0.035,-0.083984 0.4961,1.54296869 -1.2989,-0.95117189 a 0.50005,0.50005 0 0 0 -0.017,-0.011719 c 0,0 -0.093,-0.068459 -0.2286,-0.1015625 -0.1354,-0.033103 -0.4016,-0.024816 -0.5898,0.1445313 l 0.039,-0.03125 -1.2969,0.95117184 0.4941,-1.54296864 -0.06,0.1269531 c 0.058,-0.087035 0.1094,-0.2021235 0.1152,-0.3398438 0.01,-0.1377202 -0.047,-0.281773 -0.1133,-0.3710937 -0.1316,-0.1786414 -0.2968,-0.2148438 -0.2968,-0.2148438 l 0.1406,0.072266 -1.3574,-0.9960938 h 1.6347 c 0.3432,5.529e-4 0.5703,-0.3125 0.5703,-0.3125 a 0.50005,0.50005 0 0 0 0.047,-0.1015625 z m 2.0664,3.7324219 c -0.045,0.058226 -0.056,0.061826 -0.018,0.023437 0,-0.00258 0.01,-0.016345 0.01,-0.019531 z m -0.2559,1.84765622 v 0.009766 -0.005859 c -5e-4,-0.001803 5e-4,-0.002176 0,-0.003907 z"
+ id="path5879"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/SparkleShare/Common/Pixmaps/Sources/bitbucket.svg b/SparkleShare/Common/Images/Sources/bitbucket.svg
index 5f3a754..5f3a754 100644
--- a/SparkleShare/Common/Pixmaps/Sources/bitbucket.svg
+++ b/SparkleShare/Common/Images/Sources/bitbucket.svg
diff --git a/SparkleShare/Common/Pixmaps/Sources/folder-icons-mac-yosemite.svg b/SparkleShare/Common/Images/Sources/folder-icons-mac-yosemite.svg
index 5b5bfb6..5b5bfb6 100644
--- a/SparkleShare/Common/Pixmaps/Sources/folder-icons-mac-yosemite.svg
+++ b/SparkleShare/Common/Images/Sources/folder-icons-mac-yosemite.svg
diff --git a/SparkleShare/Common/Pixmaps/Sources/folder-icons-mac.svg b/SparkleShare/Common/Images/Sources/folder-icons-mac.svg
index 5ae65da..5ae65da 100644
--- a/SparkleShare/Common/Pixmaps/Sources/folder-icons-mac.svg
+++ b/SparkleShare/Common/Images/Sources/folder-icons-mac.svg
diff --git a/SparkleShare/Common/Pixmaps/Sources/folder-icons-windows.svg b/SparkleShare/Common/Images/Sources/folder-icons-windows.svg
index 14e3173..14e3173 100644
--- a/SparkleShare/Common/Pixmaps/Sources/folder-icons-windows.svg
+++ b/SparkleShare/Common/Images/Sources/folder-icons-windows.svg
diff --git a/SparkleShare/Common/Pixmaps/Sources/github.svg b/SparkleShare/Common/Images/Sources/github.svg
index ccc55a4..ccc55a4 100644
--- a/SparkleShare/Common/Pixmaps/Sources/github.svg
+++ b/SparkleShare/Common/Images/Sources/github.svg
diff --git a/SparkleShare/Common/Images/Sources/gitlab.svg b/SparkleShare/Common/Images/Sources/gitlab.svg
new file mode 100644
index 0000000..377971b
--- /dev/null
+++ b/SparkleShare/Common/Images/Sources/gitlab.svg
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg9662"
+ height="24"
+ width="24"
+ version="1.1"
+ inkscape:version="0.91+devel r14094"
+ sodipodi:docname="gitlab.svg"
+ viewBox="0 0 24 24"
+ inkscape:export-filename="/Users/hbons/Personal/Projects/SparkleShare/SparkleShare/Common/Presets/gitlab@2x.png"
+ inkscape:export-xdpi="192"
+ inkscape:export-ydpi="192">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1280"
+ inkscape:window-height="755"
+ id="namedview4365"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="11.313708"
+ inkscape:cx="8.5858812"
+ inkscape:cy="8.8928334"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="g4326"
+ inkscape:snap-global="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4341" />
+ </sodipodi:namedview>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient4343"
+ inkscape:collect="always">
+ <stop
+ id="stop4345"
+ offset="0"
+ style="stop-color:#df2000;stop-opacity:1" />
+ <stop
+ id="stop4347"
+ offset="1"
+ style="stop-color:#881805;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4318">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4320" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4322" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4304">
+ <stop
+ style="stop-color:#ce2509;stop-opacity:1"
+ offset="0"
+ id="stop4306" />
+ <stop
+ style="stop-color:#a9210a;stop-opacity:1"
+ offset="1"
+ id="stop4308" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4304"
+ id="linearGradient4310"
+ x1="28.415369"
+ y1="9.2727699"
+ x2="31.521933"
+ y2="19.203804"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4343"
+ id="linearGradient4339"
+ gradientUnits="userSpaceOnUse"
+ x1="26.80905"
+ y1="3.7043378"
+ x2="31.521933"
+ y2="19.203804"
+ gradientTransform="translate(0,0.98994346)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4318"
+ id="radialGradient4349"
+ cx="27.992599"
+ cy="13.000279"
+ fx="27.992599"
+ fy="13.000279"
+ r="10.832553"
+ gradientTransform="matrix(2.7510713,0,0,2.3899162,-49.67941,-17.015106)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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>
+ <g
+ id="g4326"
+ transform="matrix(1.01163,0,0,1.0101587,-20.452835,-1.7447338)"
+ style="stroke-width:0.9892233">
+ <path
+ style="fill:#e24329;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9892233;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 28.012539,10.206244 8.200627,0 L 38.959248,2.1937049 43.510972,14.607498 32.075235,22.996213 20.639498,14.56988 24.965517,2.0432347 Z"
+ id="path4268"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(-1,0,0,1,64.092707,0.98994346)"
+ id="g4278"
+ style="stroke-width:0.9892233">
+ <g
+ id="g4284"
+ style="stroke-width:0.9892233">
+ <path
+ style="fill:#fc6d26;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9892233px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 28.012539,9.2163007 -5.818181,0 -1.55486,4.3636363 11.435737,8.426333 z"
+ id="path4280"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#fca326;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9892233px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 22.694403,9.207369 32.028121,21.951963 20.639498,13.579937 Z"
+ id="path4282"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ </g>
+ <g
+ id="g4288"
+ transform="translate(0.01747244,0.98994346)"
+ style="stroke-width:0.9892233">
+ <g
+ id="g4290"
+ style="stroke-width:0.9892233">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4292"
+ d="m 28.012539,9.2163007 -5.818181,0 -1.55486,4.3636363 11.435737,8.426333 z"
+ style="fill:#fc6d26;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9892233px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4294"
+ d="M 22.694403,9.207369 32.028121,21.951963 20.639498,13.579937 Z"
+ style="fill:#fca326;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9892233px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path4266"
+ d="m 28.012539,10.206244 8.200627,0 L 38.959248,2.1937049 43.510972,14.607498 32.075235,22.996213 20.639498,14.56988 24.965517,2.0432347 Z"
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient4339);stroke-width:0.9892233;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 25.001953,4.0175781 21.826172,13.210938 32.078125,20.761719 42.3125,13.253906 38.990234,4.1992188 37.160156,9.5410156 A 1.0021178,1.0021178 0 0 1 36.212891,10.21875 l -8.201172,0 A 1.0021178,1.0021178 0 0 1 27.072266,9.5664062 L 25.001953,4.0175781 Z"
+ id="path4312"
+ style="opacity:0.4;fill:none;fill-rule:evenodd;stroke:url(#radialGradient4349);stroke-width:0.9892233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:original="M 24.964844 1.0527344 L 20.638672 13.580078 L 32.076172 22.005859 L 43.511719 13.617188 L 38.958984 1.203125 L 36.212891 9.2167969 L 28.011719 9.2167969 L 24.964844 1.0527344 z "
+ inkscape:radius="-1.0020176"
+ sodipodi:type="inkscape:offset"
+ transform="translate(0,0.98994346)" />
+ </g>
+</svg>
diff --git a/SparkleShare/Common/Images/Sources/planio.svg b/SparkleShare/Common/Images/Sources/planio.svg
new file mode 100644
index 0000000..75aedb5
--- /dev/null
+++ b/SparkleShare/Common/Images/Sources/planio.svg
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg9662"
+ height="24"
+ width="24"
+ version="1.1"
+ inkscape:version="0.91+devel r14094"
+ sodipodi:docname="planio.svg"
+ viewBox="0 0 24 24"
+ inkscape:export-filename="/Users/hbons/Personal/Projects/SparkleShare/SparkleShare/Common/Presets/planio.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1280"
+ inkscape:window-height="755"
+ id="namedview4365"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="16"
+ inkscape:cx="11.663307"
+ inkscape:cy="11.258003"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="g4326"
+ inkscape:snap-global="true"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-bbox="true"
+ inkscape:snap-nodes="false"
+ inkscape:bbox-paths="false"
+ inkscape:bbox-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4341" />
+ </sodipodi:namedview>
+ <defs
+ id="defs3">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4455">
+ <stop
+ style="stop-color:#74caea;stop-opacity:1"
+ offset="0"
+ id="stop4457" />
+ <stop
+ style="stop-color:#34a1ca;stop-opacity:1"
+ offset="1"
+ id="stop4459" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4447">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4449" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4451" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4428">
+ <stop
+ style="stop-color:#005474;stop-opacity:1"
+ offset="0"
+ id="stop4430" />
+ <stop
+ style="stop-color:#37a9d4;stop-opacity:1"
+ offset="1"
+ id="stop4432" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4304">
+ <stop
+ style="stop-color:#ce2509;stop-opacity:1"
+ offset="0"
+ id="stop4306" />
+ <stop
+ style="stop-color:#a9210a;stop-opacity:1"
+ offset="1"
+ id="stop4308" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4304"
+ id="linearGradient4310"
+ x1="28.415369"
+ y1="9.2727699"
+ x2="31.521933"
+ y2="19.203804"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4428"
+ id="linearGradient4434"
+ x1="39.367229"
+ y1="23.90914"
+ x2="34.828079"
+ y2="3.3593886"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9885037,0,0,0.98994346,20.217703,1.7271878)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4447"
+ id="radialGradient4453"
+ cx="52.259827"
+ cy="9.6745958"
+ fx="52.259827"
+ fy="9.6745958"
+ r="9.5658912"
+ gradientTransform="matrix(2.1628252,0,0,2.9778165,-60.887608,-20.066985)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4455"
+ id="linearGradient4526"
+ x1="53.775932"
+ y1="11.068961"
+ x2="56.46653"
+ y2="23.231386"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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>
+ <g
+ id="g4326"
+ transform="matrix(1.01163,0,0,1.0101587,-20.452835,-1.7447338)"
+ style="stroke-width:0.9892233">
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.46403605"
+ inkscape:original="M 54.814453 3.7070312 C 53.729581 3.7104612 52.652708 3.8923279 51.626953 4.2460938 L 52.835938 10.195312 L 48.294922 6.1738281 C 48.133924 6.3131014 47.977862 6.4580369 47.826172 6.6074219 C 46.443434 7.9940104 45.502551 9.7611672 45.123047 11.683594 L 50.873047 13.607422 L 45.123047 15.53125 C 45.502551 17.453676 46.443434 19.218881 47.826172 20.605469 C 47.977861 20.754855 48.133925 20.89979 48.294922 21.039062 L 52.833984 17.017578 L 51.626953 22.966797 C 52.652675 23.320563 53.729581 23.502434 54.814453 23.505859 C 55.899326 23.502359 56.976198 23.320563 58.001953 22.966797 L 56.794922 17.017578 L 61.335938 21.039062 C 61.496935 20.89979 61.652997 20.754855 61.804688 20.605469 C 63.187426 19.218881 64.128308 17.453676 64.507812 15.53125 L 58.757812 13.605469 L 64.507812 11.683594 C 64.128343 9.7611672 63.187425 7.9940104 61.804688 6.6074219 C 61.652998 6.4580369 61.496935 6.3131014 61.335938 6.1738281 L 56.796875 10.195312 L 58.001953 4.2460938 C 56.976198 3.892328 55.899326 3.7104568 54.814453 3.7070312 z "
+ xlink:href="#path4468"
+ style="opacity:1;fill:url(#linearGradient4526);fill-opacity:1;stroke:url(#linearGradient4434);stroke-width:0.9892233;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4443"
+ d="m 54.8125,3.2421875 c -1.135761,0.00359 -2.26189,0.1940319 -3.335938,0.5644531 a 0.46408245,0.46408245 0 0 0 -0.304687,0.53125 l 0.931641,4.5878906 -3.5,-3.0996093 a 0.46408245,0.46408245 0 0 0 -0.611328,-0.00391 C 47.822934,5.9686805 47.658148,6.1215986 47.5,6.2773438 a 0.46408245,0.46408245 0 0 0 -0.002,0.00195 C 46.05043,7.7309453 45.065232,9.581363 44.667969,11.59375 a 0.46408245,0.46408245 0 0 0 0.308593,0.529297 l 4.4375,1.484375 -4.4375,1.484375 a 0.46408245,0.46408245 0 0 0 -0.308593,0.529297 c 0.397274,2.012444 1.382614,3.861006 2.830078,5.3125 a 0.46408245,0.46408245 0 0 0 0.002,0.002 c 0.158151,0.155749 0.322936,0.308666 0.492188,0.455078 a 0.46408245,0.46408245 0 0 0 0.611328,-0.0039 l 3.5,-3.09961 -0.931641,4.587891 a 0.46408245,0.46408245 0 0 0 0.304687,0.53125 c 1.074021,0.370424 2.200175,0.560867 3.335938,0.564453 a 0.46408245,0.46408245 0 0 0 0.0039,0 c 1.135722,-0.0037 2.261872,-0.194026 3.335938,-0.564453 A 0.46408245,0.46408245 0 0 0 58.457031,22.875 l -0.93164,-4.589844 3.501953,3.101563 a 0.46408245,0.46408245 0 0 0 0.611328,0.0039 c 0.169252,-0.146414 0.334038,-0.299332 0.492187,-0.455078 a 0.46408245,0.46408245 0 0 0 0.002,-0.002 c 1.447464,-1.451494 2.432804,-3.300056 2.830079,-5.3125 a 0.46408245,0.46408245 0 0 0 -0.308594,-0.529297 l -4.4375,-1.486328 4.4375,-1.482422 A 0.46408245,0.46408245 0 0 0 64.962891,11.59375 C 64.565662,9.5813519 63.580426,7.7309425 62.132812,6.2792969 a 0.46408245,0.46408245 0 0 0 -0.002,-0.00195 C 61.97271,6.1215979 61.807923,5.9686793 61.638672,5.8222656 a 0.46408245,0.46408245 0 0 0 -0.611328,0.00391 l -3.5,3.1015625 0.929687,-4.5898438 a 0.46408245,0.46408245 0 0 0 -0.304687,-0.53125 C 57.078298,3.43622 55.95217,3.2457738 54.816406,3.2421875 a 0.46408245,0.46408245 0 0 0 -0.0039,0 z"
+ inkscape:href="#path4468"
+ transform="translate(-22.735586)" />
+ <path
+ inkscape:href="#path4468"
+ d="m 54.8125,4.1933594 c -0.888505,0.00318 -1.766397,0.1572767 -2.617188,0.4082031 L 53.3125,10.097656 a 0.4869683,0.4869683 0 0 1 -0.798828,0.462891 L 48.302734,6.8300781 c -0.04455,0.042299 -0.09086,0.081766 -0.134765,0.125 -1.211927,1.2167288 -2.016154,2.7596114 -2.423828,4.4238279 l 5.283203,1.767578 a 0.4869683,0.4869683 0 0 1 0,0.921875 l -5.283203,1.767579 c 0.407646,1.663899 1.211754,3.205001 2.423828,4.421874 0.0439,0.04323 0.09021,0.0827 0.134765,0.125 l 4.208985,-3.730468 a 0.4869683,0.4869683 0 0 1 0.798828,0.46289 l -1.115235,5.496094 c 0.852018,0.251293 1.731274,0.405394 2.621094,0.408203 0.888542,-0.0032 1.766407,-0.157292 2.617188,-0.408203 l -1.115235,-5.496094 a 0.4869683,0.4869683 0 0 1 0.798829,-0.46289 l 4.210937,3.730468 c 0.04322,-0.04103 0.08826,-0.07918 0.130859,-0.121093 1.21414,-1.217521 2.019652,-2.760098 2.427735,-4.425781 l -5.283203,-1.769532 a 0.4869683,0.4869683 0 0 1 0,-0.921875 l 5.283203,-1.765625 C 63.479068,9.7146987 62.674819,8.1718096 61.462891,6.9550781 l -0.0039,-0.00391 c -0.0426,-0.041909 -0.08764,-0.080065 -0.130859,-0.1210938 L 57.119141,10.560547 A 0.4869683,0.4869683 0 0 1 56.320312,10.099609 L 57.433594,4.6015625 C 56.582803,4.3506351 55.70491,4.1965336 54.816406,4.1933594 l -0.0039,0 z"
+ id="path4445"
+ style="opacity:0.3;fill:#34a1ca;fill-opacity:1;stroke:url(#radialGradient4453);stroke-width:0.9892233;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ xlink:href="#path4468"
+ inkscape:original="M 54.814453 3.7070312 C 53.729581 3.7104612 52.652708 3.8923279 51.626953 4.2460938 L 52.835938 10.195312 L 48.294922 6.1738281 C 48.133924 6.3131014 47.977862 6.4580369 47.826172 6.6074219 C 46.443434 7.9940104 45.502551 9.7611672 45.123047 11.683594 L 50.873047 13.607422 L 45.123047 15.53125 C 45.502551 17.453676 46.443434 19.218881 47.826172 20.605469 C 47.977861 20.754855 48.133925 20.89979 48.294922 21.039062 L 52.833984 17.017578 L 51.626953 22.966797 C 52.652675 23.320563 53.729581 23.502434 54.814453 23.505859 C 55.899326 23.502359 56.976198 23.320563 58.001953 22.966797 L 56.794922 17.017578 L 61.335938 21.039062 C 61.496935 20.89979 61.652997 20.754855 61.804688 20.605469 C 63.187426 19.218881 64.128308 17.453676 64.507812 15.53125 L 58.757812 13.605469 L 64.507812 11.683594 C 64.128343 9.7611672 63.187425 7.9940104 61.804688 6.6074219 C 61.652998 6.4580369 61.496935 6.3131014 61.335938 6.1738281 L 56.796875 10.195312 L 58.001953 4.2460938 C 56.976198 3.892328 55.899326 3.7104568 54.814453 3.7070312 z "
+ inkscape:radius="-0.48691961"
+ sodipodi:type="inkscape:offset"
+ transform="translate(-22.735586)" />
+ </g>
+</svg>
diff --git a/SparkleShare/Common/Pixmaps/Sources/side-splash.svg b/SparkleShare/Common/Images/Sources/side-splash.svg
index 2602f5b..5559510 100644
--- a/SparkleShare/Common/Pixmaps/Sources/side-splash.svg
+++ b/SparkleShare/Common/Images/Sources/side-splash.svg
@@ -16,7 +16,7 @@
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="side-splash.svg"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Pixmaps/side-splash.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Images/side-splash.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<sodipodi:namedview
diff --git a/SparkleShare/Common/Pixmaps/Sources/ssnet.svg b/SparkleShare/Common/Images/Sources/ssnet.svg
index 6971d98..6971d98 100644
--- a/SparkleShare/Common/Pixmaps/Sources/ssnet.svg
+++ b/SparkleShare/Common/Images/Sources/ssnet.svg
diff --git a/SparkleShare/Common/Pixmaps/Sources/status-icons.svg b/SparkleShare/Common/Images/Sources/status-icons.svg
index 207cd11..b361de6 100644
--- a/SparkleShare/Common/Pixmaps/Sources/status-icons.svg
+++ b/SparkleShare/Common/Images/Sources/status-icons.svg
@@ -1209,7 +1209,7 @@
width="16"
y="-135"
x="42"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-idle@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-idle@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -1219,7 +1219,7 @@
width="16"
y="-135"
x="72"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-error@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-error@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -1229,7 +1229,7 @@
width="16"
y="-135"
x="102"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-up@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-up@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -1239,7 +1239,7 @@
width="16"
y="-135"
x="132"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-down@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-down@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -1249,7 +1249,7 @@
width="16"
y="-135"
x="162"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -2170,7 +2170,7 @@
width="16"
y="-115"
x="102"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-up-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-up-active@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -2180,7 +2180,7 @@
width="16"
y="-115"
x="132"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-down-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-down-active@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
@@ -2190,7 +2190,7 @@
width="16"
y="-115"
x="162"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-active@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<g
@@ -2241,7 +2241,7 @@
width="16"
y="-114"
x="41.96875"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-idle-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-idle-active@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<path
@@ -2249,13 +2249,13 @@
style="text-indent:0;text-transform:none;block-progression:tb;color:#000000;fill-rule:evenodd;enable-background:new;fill:#ffffff;fill-opacity:1"
d="m 44.4375,-113 c -0.82205,0.092 -1.4425,0.79783 -1.4375,1.625 l 0,4.375 -0.5,0 -0.5,0 0,0.5 -0.03125,5.59375 c 0,0.74984 0.1756,1.43675 0.5,1.96875 0.3244,0.5319 0.84191,0.9375 1.46875,0.9375 L 56,-98 c 0.62679,0 1.14435,-0.4056 1.46875,-0.9375 0.3244,-0.5319 0.5,-1.21885 0.5,-1.96875 l 0.0625,-7.59375 0,-0.5 -0.5,0 -0.5625,0 0,-0.34375 -0.03125,-1.125 0,-0.5 -0.5,0 -5.71875,0 -2.15625,-1.90625 -0.15625,-0.125 -0.1875,0 -3.5625,0 c -0.01,-4.6e-4 -0.02175,3.1e-4 -0.03125,0 -0.0385,-0.001 -0.0865,-0.001 -0.125,0 l -0.03125,0 -0.03125,0 z M 50,-108.84375 a 0.58589994,0.58589994 0 0 1 0.5625,0.375 l 1.0625,2.375 2.46875,0.25 a 0.58589994,0.58589994 0 0 1 0.3125,1.03125 l -1.875,1.78125 0.46875,2.375 a 0.58589994,0.58589994 0 0 1 -0.84375,0.625 l -2.15625,-1.125 -2.3125,1.09375 a 0.58589994,0.58589994 0 0 1 -0.84375,-0.6875 l 0.5625,-2.3125 -1.875,-1.90625 a 0.58589994,0.58589994 0 0 1 0.375,-1 l 2.375,-0.125 L 49.5,-108.5 a 0.58589994,0.58589994 0 0 1 0.375,-0.3125 0.58589994,0.58589994 0 0 1 0.125,-0.0312 z m 0,1.96875 -0.84375,1.625 a 0.58589994,0.58589994 0 0 1 -0.46875,0.3125 l -1.40625,0.0937 1.1875,1.1875 a 0.58589994,0.58589994 0 0 1 0.15625,0.5625 l -0.34375,1.4375 1.46875,-0.6875 a 0.58589994,0.58589994 0 0 1 0.53125,0.0312 l 1.3125,0.6875 -0.28125,-1.5 a 0.58589994,0.58589994 0 0 1 0.15625,-0.53115 l 1.1875,-1.125 -1.5,-0.15625 a 0.58589994,0.58589994 0 0 1 -0.46875,-0.34375 L 50,-106.875 z"
id="path4857-0"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-idle-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-idle-active@2x.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180" />
<rect
inkscape:export-ydpi="180"
inkscape:export-xdpi="180"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Pixmaps/process-syncing-error-active@2x.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Mac/Images/process-syncing-error-active@2x.png"
x="72"
y="-115"
width="16"
@@ -2269,14 +2269,14 @@
width="48"
id="rect7635"
style="opacity:0;fill:#f57900;fill-opacity:1;stroke:none;enable-background:new"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-up-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
transform="matrix(1.0414,0,0,0.92475,-101.77499,-255.97)"
style="opacity:0.7;fill-rule:evenodd;enable-background:new"
id="g7637"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-up-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<rect
@@ -2304,7 +2304,7 @@
transform="translate(-87.999989,-264)"
style="enable-background:new"
id="g7643"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-up-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2354,7 +2354,7 @@
transform="matrix(0.95581,0,0,0.96875,-73.859989,-261.12)"
style="enable-background:new"
id="g7659"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-up-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2397,14 +2397,14 @@
height="48"
x="258"
y="-214"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-down-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
id="g7701"
style="opacity:0.7;fill-rule:evenodd;enable-background:new"
transform="matrix(1.0414,0,0,0.92475,-51.774989,-255.97)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-down-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<rect
@@ -2432,7 +2432,7 @@
id="g7707"
style="enable-background:new"
transform="translate(-37.999989,-264)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-down-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2482,7 +2482,7 @@
id="g7723"
style="enable-background:new"
transform="matrix(0.95581,0,0,0.96875,-23.859989,-261.12)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-down-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2525,7 +2525,7 @@
width="48"
id="rect7763"
style="opacity:0;fill:#f57900;fill-opacity:1;stroke:none;enable-background:new"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
@@ -2557,7 +2557,7 @@
transform="translate(12.000011,-264)"
style="enable-background:new"
id="g7771"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2607,7 +2607,7 @@
transform="matrix(0.95581,0,0,0.96875,26.140011,-261.12)"
style="enable-background:new"
id="g7787"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
@@ -2647,7 +2647,7 @@
transform="translate(-192.99999,-13.999996)"
style="enable-background:new"
id="g7833"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-up-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2667,7 +2667,7 @@
style="enable-background:new"
id="g7837"
transform="matrix(1,0,0,-1,-142.99999,-361)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-down-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2687,7 +2687,7 @@
style="enable-background:new"
transform="matrix(1,0,0,-1,-91.999989,-361)"
id="g7843"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2707,7 +2707,7 @@
style="enable-background:new"
id="g7849"
transform="translate(-93.999989,-13.999996)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2739,7 +2739,7 @@
id="flowPara8732">GNOME 3</flowPara></flowRoot> <rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
style="opacity:0;fill:#f57900;fill-opacity:1;stroke:none;enable-background:new"
id="rect8734"
width="48"
@@ -2774,7 +2774,7 @@
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
id="g8742"
style="enable-background:new"
transform="translate(62.000011,-264)">
@@ -2824,7 +2824,7 @@
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
id="g8758"
style="enable-background:new"
transform="matrix(0.95581,0,0,0.96875,76.140011,-261.12)">
@@ -2865,7 +2865,7 @@
id="g5833-3-4-4"
style="stroke:#c36e11;stroke-width:2;enable-background:new"
transform="matrix(2.2594,0,0,2.2594,-3935.313,-2059.767)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2878,7 +2878,7 @@
id="g5833-3-4"
style="stroke:#fde2c0;stroke-width:2;enable-background:new"
transform="matrix(2.2594,0,0,2.2594,-3935.313,-2060.767)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
@@ -2891,7 +2891,7 @@
style="display:inline;enable-background:new"
id="g20371"
transform="translate(-338,-571)"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png"
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Linux/Images/icons/process-syncing-error-48.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<path
diff --git a/SparkleShare/Common/Pixmaps/Sources/tutorial-slides.svg b/SparkleShare/Common/Images/Sources/tutorial-slides.svg
index faec290..49e1a6f 100644
--- a/SparkleShare/Common/Pixmaps/Sources/tutorial-slides.svg
+++ b/SparkleShare/Common/Images/Sources/tutorial-slides.svg
@@ -3064,7 +3064,7 @@
style="fill:url(#radialGradient211652);fill-opacity:1;stroke:#261f1f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
- inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Pixmaps/tutorial-slide-1@2x.png" />
+ inkscape:export-filename="/Users/hbons/Projects/SparkleShare/SparkleShare/Common/Images/tutorial-slide-1@2x.png" />
<g
transform="matrix(0.85916724,0,0,0.85916724,-926.30984,-650.2188)"
id="g52133-7"
diff --git a/SparkleShare/Common/Pixmaps/Sources/user-icon-default.svg b/SparkleShare/Common/Images/Sources/user-icon-default.svg
index 872a50e..872a50e 100644
--- a/SparkleShare/Common/Pixmaps/Sources/user-icon-default.svg
+++ b/SparkleShare/Common/Images/Sources/user-icon-default.svg
diff --git a/SparkleShare/Common/Pixmaps/about.png b/SparkleShare/Common/Images/about.png
index c0d0c59..c0d0c59 100755
--- a/SparkleShare/Common/Pixmaps/about.png
+++ b/SparkleShare/Common/Images/about.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/about@2x.png b/SparkleShare/Common/Images/about@2x.png
index fc92a09..fc92a09 100644
--- a/SparkleShare/Common/Pixmaps/about@2x.png
+++ b/SparkleShare/Common/Images/about@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Images/readme-banner.png b/SparkleShare/Common/Images/readme-banner.png
new file mode 100644
index 0000000..428640d
--- /dev/null
+++ b/SparkleShare/Common/Images/readme-banner.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/side-splash.png b/SparkleShare/Common/Images/side-splash.png
index ca7f68f..ca7f68f 100755
--- a/SparkleShare/Common/Pixmaps/side-splash.png
+++ b/SparkleShare/Common/Images/side-splash.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/side-splash@2x.png b/SparkleShare/Common/Images/side-splash@2x.png
index f5fa864..f5fa864 100644
--- a/SparkleShare/Common/Pixmaps/side-splash@2x.png
+++ b/SparkleShare/Common/Images/side-splash@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/text-balloon.png b/SparkleShare/Common/Images/text-balloon.png
index b95e7e6..b95e7e6 100644
--- a/SparkleShare/Common/Pixmaps/text-balloon.png
+++ b/SparkleShare/Common/Images/text-balloon.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/text-balloon@2x.png b/SparkleShare/Common/Images/text-balloon@2x.png
index 6b86ad4..6b86ad4 100644
--- a/SparkleShare/Common/Pixmaps/text-balloon@2x.png
+++ b/SparkleShare/Common/Images/text-balloon@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/tutorial-slide-1.png b/SparkleShare/Common/Images/tutorial-slide-1.png
index bb6268e..bb6268e 100644
--- a/SparkleShare/Common/Pixmaps/tutorial-slide-1.png
+++ b/SparkleShare/Common/Images/tutorial-slide-1.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/tutorial-slide-1@2x.png b/SparkleShare/Common/Images/tutorial-slide-1@2x.png
index fbf4ac3..fbf4ac3 100644
--- a/SparkleShare/Common/Pixmaps/tutorial-slide-1@2x.png
+++ b/SparkleShare/Common/Images/tutorial-slide-1@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/tutorial-slide-2.png b/SparkleShare/Common/Images/tutorial-slide-2.png
index 15624a4..15624a4 100644
--- a/SparkleShare/Common/Pixmaps/tutorial-slide-2.png
+++ b/SparkleShare/Common/Images/tutorial-slide-2.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/tutorial-slide-2@2x.png b/SparkleShare/Common/Images/tutorial-slide-2@2x.png
index 2c99291..2c99291 100644
--- a/SparkleShare/Common/Pixmaps/tutorial-slide-2@2x.png
+++ b/SparkleShare/Common/Images/tutorial-slide-2@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Pixmaps/user-icon-default.png b/SparkleShare/Common/Images/user-icon-default.png
index b962747..b962747 100644
--- a/SparkleShare/Common/Pixmaps/user-icon-default.png
+++ b/SparkleShare/Common/Images/user-icon-default.png
Binary files differ
diff --git a/SparkleShare/Common/Makefile.am b/SparkleShare/Common/Makefile.am
index 2f972e5..8daf95b 100644
--- a/SparkleShare/Common/Makefile.am
+++ b/SparkleShare/Common/Makefile.am
@@ -1,3 +1,3 @@
SUBDIRS = HTML \
- Plugins \
- Pixmaps
+ Presets \
+ Images
diff --git a/SparkleShare/SparkleNoteController.cs b/SparkleShare/Common/NoteController.cs
index 47809d2..51e2082 100755..100644
--- a/SparkleShare/SparkleNoteController.cs
+++ b/SparkleShare/Common/NoteController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,12 +16,13 @@
using System;
-using System.Net;
using System.Threading;
+using Sparkles;
+
namespace SparkleShare {
- public class SparkleNoteController {
+ public class NoteController {
public event Action ShowWindowEvent = delegate { };
public event Action HideWindowEvent = delegate { };
@@ -29,20 +30,17 @@ namespace SparkleShare {
public event UpdateTitleEventDelegate UpdateTitleEvent = delegate { };
public delegate void UpdateTitleEventDelegate (string title);
- public string AvatarFilePath = "";
+ public readonly string AvatarFilePath = "";
public string CurrentProject { get; private set; }
- public SparkleNoteController ()
+ public NoteController ()
{
- Program.Controller.ShowNoteWindowEvent += delegate (string project) {
- CurrentProject = project;
- ShowWindowEvent ();
- UpdateTitleEvent (CurrentProject);
- };
-
- AvatarFilePath = SparkleAvatars.GetAvatar (Program.Controller.CurrentUser.Email,
- 48, Program.Controller.Config.FullPath);
+ SparkleShare.Controller.ShowNoteWindowEvent += OnNoteWindowEvent;
+
+ if (SparkleShare.Controller.AvatarsEnabled && !SparkleShare.Controller.FirstRun)
+ AvatarFilePath = Avatars.GetAvatar (SparkleShare.Controller.CurrentUser.Email,
+ 48, SparkleShare.Controller.Config.DirectoryPath);
}
@@ -55,7 +53,7 @@ namespace SparkleShare {
public void SyncClicked (string note)
{
HideWindowEvent ();
- new Thread (() => Program.Controller.GetRepoByName (CurrentProject).Resume (note)).Start ();
+ new Thread (() => ResumeWithNote (note)).Start ();
}
@@ -63,5 +61,21 @@ namespace SparkleShare {
{
HideWindowEvent ();
}
+
+
+ void OnNoteWindowEvent (string project)
+ {
+ CurrentProject = project;
+
+ ShowWindowEvent ();
+ UpdateTitleEvent (CurrentProject);
+ }
+
+
+ void ResumeWithNote (string note)
+ {
+ BaseRepository repo = SparkleShare.Controller.GetRepoByName (CurrentProject);
+ repo.Resume (note);
+ }
}
}
diff --git a/SparkleShare/Common/Pixmaps/Sources/app-icons.svg b/SparkleShare/Common/Pixmaps/Sources/app-icons.svg
deleted file mode 100644
index 275580d..0000000
--- a/SparkleShare/Common/Pixmaps/Sources/app-icons.svg
+++ /dev/null
@@ -1,2009 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- id="svg11300"
- style="enable-background:new"
- height="400"
- width="500"
- version="1.0"
- inkscape:version="0.48.2 r9819"
- sodipodi:docname="app-icons.svg">
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="847"
- inkscape:window-height="516"
- id="namedview5704"
- showgrid="false"
- inkscape:zoom="1.4142136"
- inkscape:cx="261.07811"
- inkscape:cy="215.48582"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="0"
- inkscape:current-layer="layer20">
- <inkscape:grid
- type="xygrid"
- id="grid6476" />
- </sodipodi:namedview>
- <metadata
- id="metadata85">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:creator>
- <cc:Agent>
- <dc:title>Hylke Bons, Lapo Calamandrei</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:title>sparkleshare</dc:title>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>folder</rdf:li>
- <rdf:li>directory</rdf:li>
- <rdf:li>share</rdf:li>
- <rdf:li>dir</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <dc:description>Derived from Jakub Steiner's design</dc:description>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
- <dc:rights>
- <cc:Agent>
- <dc:title>Hylke Bons, Lapo Calamandrei</dc:title>
- </cc:Agent>
- </dc:rights>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Reproduction" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#Distribution" />
- <cc:requires
- rdf:resource="http://creativecommons.org/ns#Notice" />
- <cc:requires
- rdf:resource="http://creativecommons.org/ns#Attribution" />
- <cc:permits
- rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
- <cc:requires
- rdf:resource="http://creativecommons.org/ns#ShareAlike" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs3">
- <linearGradient
- id="linearGradient11481">
- <stop
- id="stop11483"
- stop-color="#a04600"
- offset="0" />
- <stop
- id="stop11485"
- stop-color="#ce5c00"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4989">
- <stop
- id="stop4991"
- stop-color="#f57900"
- offset="0" />
- <stop
- id="stop4993"
- stop-color="#fcaf3e"
- offset=".060437" />
- <stop
- id="stop4995"
- stop-color="#fcaf3e"
- offset=".17754" />
- <stop
- id="stop4997"
- stop-color="#f57900"
- offset=".89422" />
- <stop
- id="stop4999"
- stop-color="#ce5c00"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4908">
- <stop
- id="stop4910"
- stop-color="#ce5c00"
- offset="0" />
- <stop
- id="stop4912"
- stop-color="#f57900"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient3423">
- <stop
- id="stop3425"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop3427"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4156">
- <stop
- id="stop4158"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4180"
- stop-color="#fff"
- stop-opacity=".78824"
- offset=".73068" />
- <stop
- id="stop4160"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4101">
- <stop
- id="stop4103"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4109"
- stop-color="#fff"
- stop-opacity=".80588"
- offset="0.6" />
- <stop
- id="stop4105"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <clipPath
- id="clipPath4061"
- clipPathUnits="userSpaceOnUse">
- <path
- id="path4063"
- style="enable-background:new"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-147.52c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-4.4338-0.2055-6.493-2.5614l-13.071-14.954c-1.7575-2.0107-4.2252-2.5106-6.0898-2.5106h-71.746z"
- fill-rule="evenodd" />
- </clipPath>
- <filter
- id="filter4065"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4067"
- stdDeviation="1.91" />
- </filter>
- <filter
- id="filter4123"
- width="1.1433"
- y="-.36858"
- x="-.071666"
- height="1.7372"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4125"
- stdDeviation="6.4501067" />
- </filter>
- <filter
- id="filter4375"
- width="1.0248"
- y="-.35609"
- x="-.012418"
- height="1.7122"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4377"
- stdDeviation="1.0664062" />
- </filter>
- <filter
- id="filter4379"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4381"
- stdDeviation="0.90031864" />
- </filter>
- <filter
- id="filter4454"
- width="1.323"
- y="-1.8572"
- x="-.16150"
- height="4.7144"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4456"
- stdDeviation="15.476679" />
- </filter>
- <filter
- id="filter4458"
- width="1.1077"
- y="-.61907"
- x="-.053832"
- height="2.2381"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4460"
- stdDeviation="5.158893" />
- </filter>
- <filter
- id="filter4496"
- width="1.0696"
- y="-.40007"
- x="-.034789"
- height="1.8001"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4498"
- stdDeviation="3.3339431" />
- </filter>
- <filter
- id="filter4508"
- width="1.1392"
- y="-.80015"
- x="-.069578"
- height="2.6003"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4510"
- stdDeviation="6.6678862" />
- </filter>
- <filter
- id="filter3458"
- width="3.8375"
- y="-.047068"
- x="-1.4188"
- height="1.0941"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur3460"
- stdDeviation="1.0345072" />
- </filter>
- <pattern
- id="pattern2719"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="translate(-523,-333)"
- height="256">
- <image
- id="image2715"
- xlink:href="data:image/png;base64,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 3NySOBxOkZub25pQKFyvq6tzsbW1nRoaGvIFAIAgFovXOjo6qvX09EAikQjAYDBq09PT9V+/fsXa 2dlJ/e9//+s+evSo0okTJ2YBAHD78ePH72PHjmUCAABMT0+nDQ0Nfe/p6ZHmcDjEHTvIwWjxAAAg AElEQVR2CDEYzLqvr6+GhobGOp1O92QwGJYsFuvu1taWjpSUlDufzwfNz8+v/vjxY+TixYsuKBRK BQKByAsEgjWJREIZGRkZxuPxgp07d6KysrLGvby8/jc7O1tAoVDgcDh8UVZWFnf06NH5ixcvStXW 1oqDgoKgtra2e9bX10cYDAYNh8PpUKlU2OPHj2vOnDkju3v37t0bGxsyqampT+fm5tZPnjwZQKfT +xsbGxWam5vF6enpBDwerzU5Odmvqqo6XlNTQzx37hylpKREWUdHhxwVFTV27do1opycnNjT09Mg Nze3mUKhED58+DAQEhJi0djYOHXr1i3Mly9f6jEYjJqNjY2zp6dn4/fv36WRSKSqhobGtpKSEnF1 dfUtDAY7OT8/T+fxeHo7duyAXb9+fTo3N1fGwcGhTEZGRhYGg/HOnz9vi0KhaN7e3rM5OTkK+vr6 HtevX/9+//79K+/evbvK4/H4ioqKKG9vb/+YmJjfly5dstm3bx/K19e36/nz508/fPjwLjc3t/L3 799vuFzuy+Hh4T/Xr193fvr0qYKBgQGuvr5+/NChQ8vnzp1T0NLSWhGJRNz19XVcbW2tho6Ozpfk 5OS/q6qq0m1sbKwXFxc/6ejo7LO2tqa+fPlSfXt7e+bKlSvmfD4fUVVVxadSqX8eP35M/fTpUxEA AEBVVVVEeHi4Vm9vrwIMBoNMT0/3ysvLb0KhUHcUCiWWk5Pby+Px7sFgsOOBgYEVGhoaW//8888h KBSqOzw8HD01NaVmbm5uqKys7BEcHOxrbGzs4unpCUxNTa2MjIwIXVxcjJqamqCNjY3Kjx496rK1 tb0UFRX1LDU1VZnD4bB4PN4ij8dTHx0dnQ4ODr4lFouB9vb2Aj09PXkZGZlgsVi8WF9ff3lkZAR/ 6tSpZyKRqO/Nmzdvb9++7bdnz56ypKQkaxqNhoDD4WJZWVkiAACAjIyMcHl5mamlpRX6H+W4+Ndf f73w8vLSPXjwoBGDwVg7fPjwgq2t7aS8vPyEtrb27r///hvQ1dUdxuPx2o8ePbIBS0tLS/P5/E4u l9tHp9NzV1dXKWg0Wt3Y2Dh5dnYWg8FgpBgMhiyXy4WMj49/v3Tp0oXW1tbys2fPxsHhcL2MjIzG 2NhYMYvFYqqqqkJu3LhRWF1dPWBpadlJIpGeKSkp4V1dXZ8fP348CIfDeQmFQoXKysqnbm5uSRUV FY9+/PhxIzg4eOHcuXNrdDp93sTERMjlcsfKy8svzM3NZZuamgLt7e3TFy9eZEChUEBLS0t9z549 daqqqpyGhgbHW7du7d3e3va4ePHiV5FIpLK4uHifw+H0LSwsbG9vb+8YHR3lXr58eby9vX0+MzNz 8+LFi0OnT58GGxkZfUhLS8ttbW1tAQCA7Orq+jw0NLRCVlaWeePGjUQejwficDiLQqFwFQwGS+Bw +M6bN29WQaFQiY+PT5G2tjZmfHw8U1FRkX/o0KESLBYrPTU1JRsYGKjU1tbGq66ulhIIBIL5+fks BAIxBwKBkOvr6zl9fX3LHh4ehn5+fr4RERG/QCCQBIfD8dPT0xNoNFq/SCQa1NTU/CEQCGiampqu FAplUCKRgGpqaojr6+uzFArFS0VFBRETE1O9vLwMtbGx0a6vr1+dmJhAuLq63ltdXf1TXFyMFYvF vL6+PlUwGMwgEAh8Ozs7pV27drEpFMqx6upq1Y2NDTgAAICzs/NKZmbmruHhYdb58+d5tra2wcPD w/z/Hp+kLywsWDIYDM6TJ0/8iUQiqrKycrympsbX1NT0JhgMRqSnp9s9f/68QEFBQZfNZsPs7e0D Y2JiqhISEgzk5eXlkpKStp8/f/70woULiRKJpP3QoUP4uLg4/7KyMgafz3eLjo6W2traghIIhPd/ /vxpt7e33x4dHUUVFRVpmpmZ6fb399Pk5eVZeXl5Hl5eXj+Ki4tJKysr9bKysvt1dXVZ29vb0lJS UlQikagWHh4+m5KS0iUUCgUEAgEbFRWlc+HChf3/obA7lZSUsFwud0VOTi7a2to6WSQSeSgpKekg EAg9AAAAMBi818jIqPrjx4+OKSkpPlwud+s/JkLKz88v5tOnTxMAAIj5fH60rq4u6+rVq9q3bt3y GBkZIcbGxkrl5ORUenl5FTOZTBiJROrq6OiwCAsLw8nLyyspKyur8ng81N69e09xuVyav79/NovF gpJIpI7Z2dnMjY2Nn25ubp/8/PwcPn36FKKurj45MDCw5uPj8+b69es6bW1toK2trbbq6mq6mpqa WVlZWcHevXsp3d3dpRsbGzcBABCDQCAgNDRU48iRIx7379+v2bVr1zAajV7+66+/6MePH7+yf/9+ 5d+/f8s1NDSIk5KSNgoLC3+BhEJhHwgEIrLZ7IGrV6/+4PP5sJSUFL2mpqZNR0dH4pMnTyacnJw2 NzY2QIcOHfqLy+VuyMnJGX369Omjo6MjncViQeXk5BSHhoYo6+vrOCwWO2htbR0jJyfn1t/f/8DY 2DhYKBRSUlNTkyIiIpJycnLG1tbWGLdv3zZ5/vz5uLm5Oc7V1fX0vn37dj948CBaW1vboK+vr0FR URFGIBBM+Hw+DYlEWlhbWz+5dOmSfGdn52ZOTo6al5fX/MOHDy2VlJT2j4yM3Ll165bK27dvNUdH R6t///49b2dnp/9fqWajrq6u+927d5Lfv38XUiiUJ//88w9ITU2tIjg4OEVPTw83OjrKKigoyLx4 8WL+f/3vytXV1bmkpCTQ27dv3YeHhxtMTEwihELhZzAYrPPixYuvERERxvLy8oYzMzOVa2trm1gs djM7O1vz2rVrJKFQOPn48eOayspKBwwGw7l7965TR0fHYlhYGLqsrIwLBoM5w8PDAI1GQ/X19U00 NTXtv3//foq7u7t+f3//nwMHDnD6+/ulHRwcpBYWFtxCQkJWMzIysMrKylAWi0UvKioaUFRUhEVE RGSKRKIFAACAgoKCd8+ePUMQicQ1Nzc3SxaLJX7w4IEpGAwWvXnz5qFQKPTCYDCiiYkJztmzZ+MO Hz78XFFRUeTu7i6iUqnwmzdvAkQicainpycXAACxn59fsoqKyqi1tfVmVVWVan5+ftba2trvxsbG qsXFRWJsbGyMi4uLT319fd3KysqDjY0NkYaGhh6HwwH+/PkzgMVikQgEArq1tcV0c3M7NjU1VbW1 tQVVVFSUJRAIMggEwjkuLi7jyZMn+4hEYnVnZ+cKEolcVlRUTBYKhdNTU1PtioqKOJFIBJqZmSkw MjLas7S0BMvPz2+fn5/HXLp0SSIUClnKysr+Z8+e/WxpaakQFRUV5OzsnHjv3j27xcVFpRcvXgw/ e/aMu3v37r3Xr19fuHfvnpJEIgEtLy97X7t27e6pU6eQcnJyaAaDsZmQkMCVl5cH8/l8eVtbW1pC QgJpbm7OZXNzs7Crq4vHYDB4fD4fAQAAYG1trbeyssJ++fIlNTEx0VxJSYlPp9MzS0pKlH78+KHO 4/FGmExm8L59+5itra3Q9PR0vqKiIh+FQuFWV1epAoEA3tLSsjIwMED49esXvK+vL5ZCoTxRU1M7 v729/YFOp1OkpaXV6uvru/Pz8w0OHz487O/vH9Hc3DxJJpOhZ8+e/fb69Wu/yMjICiMjI9zPnz+V dXV1RU+fPiXv3bv3J4vFCoyMjKQ0NjZusVgszPT09PTg4KBPXV3dm56eHpmzZ8/GRUREfC4pKXEC bW9vV6BQKC+xWLzs7+//PDk5WTA1NSW1traGdHFxGUhNTWUSiUS+i4sLob6+fu3Jkycv6XR6c1FR 0VcbGxttAwOD+93d3a9ramo2QkJCtDIyMgr19PTgtra23mZmZsLt7W17EAgkc//+/UQbGxstHA7X ikAgDsBgMKScnJxwdHR02dXV9bSZmdkJJpPpSaVS8UeOHLn46NGjJ9HR0dNXr14V0Gi0GSUlJezz 58/HpKSkSObm5jQQCLTt7+//F4fDGVVSUkr4LytNxcXFPRkaGhLu2rWLHx8fj4RAILJbW1sqcnJy h3p7ewvPnj07QSAQENnZ2TY/f/5stLKycjUzM8MGBgZefPfuXXZzc3ONqqoqp7GxkRkdHR3K5/MV wWAwDgAAMAAAwNOnT6+am5sLdXV1iQoKCh5///13JgAAwPv37xc7OzstWlpaZHfs2KEqKysrrKio GJubmyuRlZX1cXR0NIqNjS18//69z6NHj6rv379/XSKRAEwmcwMMBgNtbW3tOjo6g11dXTwcDjeq paWlTCAQ0ENDQ4q6urq78vPzs+FwODgiIuLg4ODg0sePH397e3vvcXV1tXjx4kVLe3v72K1btzCa mpohBw8eTASBQNorKyvmN2/erKiurlbX0NAYPHbsWDGTyazatWvXgImJybhQKNSOi4vrBoFAxK6u rmkVFRVZe3t7r6CgoKHS0lJDCAQiAYPBWvfu3bvx8+dPdwaDoVpVVSV/9erV7r6+voHV1VX+yMjI ru3t7XVzc3NqRUUFjkgkehQWFo4ikUhReHi4gUQi4WdkZDweHx+XuXbtmicAAICcnJwhGAyWwGAw fYFAsLy9vZ2DxWL9AABYg8PhvmKxeLqysrLD2dnZhk6nj9+8eXM5ISGh7+jRo6Tr16+3dXZ2Ijw8 PHSlpKR0u7u7lzgcznRISIgVBoPxKSwstPPy8nqJx+N3U6nU8n///Xfg5cuX0h8/foTp6Oiwnz59 ClpcXJTk5OSoh4eHrwcHBw84OjqS1NXVnbq6utIfPnxoU1BQEGNnZ3dVRUWFKJFItmg0mjg9PV2l vLz8B41G4169ejW8q6urwc/P7xyDwRi5dOlS2/LysqahoSHlxo0b+9BoNAmNRi/V19dP/vz5k3Hq 1ClpGAw2AIVCdeBwOP73798NVlZWhlAoFKGgoLD727dv57W0tGxYLBYUAoHwNjY22n19fe///Pnz k5yc3KS5ufleMpk8HxcXtxYZGam+urqKdnNzg9fU1Azu379fzsTEpDcwMFADBoPVmpmZBSKRyAk0 Gi1ubW2dio2NtbCxsaEdOHBgXFdXdz8SiczGYDBOO3fudGxra8OAv3379jksLCxgaWnp5+LiIlJf X38JDofTNDU1Uenp6Wa+vr4UHo8n9vT0/N/jx49L5ubm3nl6epZHRER8pVAoqMzMzEwNDY3txMRE fwUFBYX/evR6c3NzFYuLixI2mz34zz//vGxpaZmQkpISbm1t7VxbW1uAQqFDbDZ7e2hoaMbd3T04 MjJyHYFAsBYXFysvXbrkHxcXN4JCoXgAAEzy+XwxGo2mqaqqwh0cHKgcDkeeTCbjeTxenZycnM7A wMDF/zLQ9Pz8vGxsbCw1MDBQm8lkSkpKSgAmkwlNS0t7ZWZmFhwTE6OSl5fn5ejo2KelpYVpbW1t qKys7CYSiScgEAi0vb2dgUKhQMPDw3JCoVCfxWLl/99phsfjdZ89e/Y8mUy2/PnzJ2J9ff1ZQUEB 7/Tp0355eXkmy8vLCuXl5bylpSX+/Px8p4eHhyYEAgm7ePGiFg6HU0hNTbXIz89vUlNTs25tbc0D gUBAb2/vz+np6Z9isRgEBoPJTCZzOjo6eoVMJstBIBAAi8VKHThwoDgqKuqYiYmJ2fT0dMPHjx9/ JycnO6DR6Mn6+vqXHR0dwKFDh/g+Pj4zMBhM4ufnh/3169f+L1++4BwdHePPnTundOzYsTwHB4dU KSkpj2/fvhkePXpUbnl5GUyhUOhv377lAACgSiAQeBsbG82JiYn87OzsKQAAAH9//x+BgYEnc3Jy 1p8+fTqMRCJ/7du3jycrKzs1ODjoQKPREIuLi8S7d+9a7Nix4/j8/Pzv4OBg/Xv37qFqa2vHRCIR vK+vz3zXrl20tLS0TjqdLiwoKHgDAoEAZ2fnUiQSaQKFQr0gEAhvfX39/6Qxqt7e3hEjIyOVDAYD Mj4+ThsfH9/569cv1KlTp/aTSCRTY2NjEplM1tna2uKIRKJ1LpcLnpqaStu3b18yCoWSAQAAwOFw 0ltbWxRfX9/Z8vLyrqmpKXRSUpLW58+fnbe3t8GKioodFAqFwefzt2dnZ6ufPn1q9vnzZyMej1ej oKCwIS8vP6+qqgo+ePDgVnp6eouUlNTyixcv3iorK5vv2bPn7N27dz9SKJQmc3NzSH5+PuL27ds2 SUlJJTweb47NZhNevXo1/+jRI/2rV6+u43A49Y2NDQKfzx/S19dX7uvry33w4MGD2traq1AoVC07 O5ve2Ng419TURNXW1iYFBASEi8ViYGpqCn/9+vWv79696w0MDAQUFRXD8/Pzq/r7+8ekpaWFX79+ pd+5c8dg37591pmZmV7a2tp+MjIygrCwMK3R0VHPtLQ0bGZm5u7u7m6GkZGRHZvN3s9msxnt7e0d NBqtFqylpUXKz8+/bm9vD9/e3tb68OHDMo1Gm7x8+TK0ra2NuLm5acPn88EFBQXDfX19T3k8HhiB QCwPDw8/aWhoGPXw8IBev359+s+fP78ZDMYSgUDARkZGjjo4OLiCwWBpJBKp6ObmZvDnz5/9gYGB UE1NTZXp6WkCBAIRv3v37uWJEyfCampqCo8cOSL377//Dru5uU1PTEwwjh8/PvD69WtvAACAnTt3 qi8uLjp2dHRoqqiomIeEhEijUCgDeXn543A4fJ+cnJzr5ubmIx6PN52cnCyOj49Xn5mZkbx//359 7969Hpubm4ulpaUCsVi8Ym5uroZEIh3OnDmzZWlpefXu3bu42traeR0dnfF9+/bVa2pqAmg0WtTc 3IxAoVDFVlZWXf/pz1/b2toWTU1N/VBSUtL19/enysnJXfjw4cMaBoMRHzt2bN3JyWnA0NAQAgAA IBAIzCYnJ4etrKzWkUjkend3dyOdTucfPHjQW0NDg1dfX49PSEh4JxaLhSAQCPkfUHP17t27+4RC 4fmQkBCrw4cPO6uqqqpXV1e/mp+fH7WwsJCw2eyGv/76y3tkZGTT3t7e5ffv35KNjY3fLi4uuMrK Sm1NTc1iS0tL9+Tk5EJFRUU3GAxmQSAQYikUSkpzc/MFFApV5+HhseLu7u7c398/t3fv3rd2dnYA k8mE6enp7ftPTXbhzZs3yq2trcNKSkrr6enpm/fu3dOrqqoSJScnE9BoNM3MzCxwfHwcY21tvT49 PU1pamoSX758udrGxuY4kUgUAgAAGhkZ6aioqBgOCQlp9Pb2du/q6sI2NDRwDh06dFUkEoFqa2sd CwsLr+NwOHcIBOKRlpZmOT09/RAMBmMBAAD09fUJlZWVDz58+IApKSkpvHjxIru/v5936NCh40Kh EA0CgeCZmZmdhw4digkPD59RV1d3GRoamnJ0dPzJ5/NbUSiUCgAAwMGDB0eJRCJpcHCwsa6ubujW rVtx7e3tNDgcDnr9+nXAp0+fqGw2G/v69Wvx6upqr0AggPX391vDYDDs5OSknLa29sDff/+NEwqF 9mfPnn2fk5PT/OTJk3f79u3jJicnS8Ri8QgajXaanJzcTkpKskUgEOKNjY3SV69eqfj4+IxcuXKF WFtbOwsGgx/39/dPj4yMcPl8vntSUtL1V69e9RkZGfFgMJiwtLSUMDo6yvHw8OAVFRWl+/v779m/ f38kGAw2mJ2dxRkYGCQGBwenUKlUvLKy8l/S0tIwgUAgbG1thQwODnb9+vUrhEgkVmOx2EtMJrPv 9evXfSgUivHkyZPk06dPH+BwOPMWFhbHoVCoA5vNhojFYhCIQCAc+PLli//KykqXtrY2y8DAwC0o KKitrKwsbnFxseDBgwfgM2fOyMrJyREsLCx4/f39zJGREZ6BgYG+WCzeXFpaasvIyJjY2toy9fDw mHv79u32vXv3aFgs1g0AAKCxsZHi5+fnWVFRQdXR0RGTSCQjPB5P8/X1nW5vbw8CgUDS5eXljwUC AdrExES9sLCw9PXr19qjo6PHl5aWnqemphq/efNG38TE5FNSUpJjbm7u1KNHj+aHh4d5MjIy8qam prHd3d15i4uLi5aWllaOjo4IEonEyM3N3ZCRkdmlq6ubODw8fPzTp08/3d3d99y8eZMRHh7eGxcX F/TmzZuSW7duWZaWlrbNzMwoyMjIENvb21ufPHni2dLScuLr169HQkNDP6BQqNaxsbFpOp0+YGxs fE0sFi9cv3692dvbG5+YmDhUXV0dCoVCAQAAgM3NzQ5bW1tWR0eH2vT09OTevXu1hoaGBENDQxxz c/Otnp4eoZmZmVNISEjtw4cPZ6Kjo/X19fVFly5d4uzdu1dqYmLiwvr6ev6TJ09+xcfH96Snp9vc uHEjk8Ph1CYmJv7y9fVFt7a2rr99+1a9qalJMz09vfLgwYNqXC5X0tbWpqynp4eora0dd3JyWvT2 9vabnJwcNDAw2A2FQi3Kysp8nZycgtPS0gTFxcU9IBBIHBwcDKurq9vOzc31/fz588zExER9REQE MT4+Xunff/+18fPzuwAGg41v3Ljh6OzsvNrS0iIHg8Gm+Xy+cXBwsA8AAMDq6mrOxsYG6evXrzW3 bt1K5fP5W1NTU6VisVhiYmJyemlpqQgEApUzmUyinp7eOTU1tZ6RkREFGAwmAQBA/PDhw8KAgADr paUlAAKBjHZ3d5OzsrIw8fHxnK9fv9ZdvHhRd2FhodbCwsJeX19/PwQCQQEAIHfr1q0jfn5+9j09 Pd3y8vIgMzMzbRUVlb/AYDBKIpFwZ2ZmyjAYDF5OTs6+uLi4/cWLF6CysjIZaWlpmYWFhdH8/Pyy 3t5eBQsLC3ZwcHBQX1/f+uTkZO379++NwsLCNsvLy1W+ffsmjI6OprDZbMDGxgYUHx9vcuPGjV8r KytaysrK1Wg0WsPHx0fF0tLyydDQUKampianr6+vycbG5haPx5uGw+Gqo6Ojqe/fv3eKjY2lfPz4 sUJKSspFIBBICgoKxslksuPU1NT2+/fvxd7e3moyMjKolpYWbGRkZGtBQcFfu3btau7r61N+8+ZN T0FBAfz8+fPA8vIyKzc3d6OhocEhMDBwRUVFBcTn8yGJiYnqWCz2PQKBmOTxeITY2FjLu3fvgkgk ErWtrU17c3NzY25uTrmxsZF56tQpxMOHD8fA/f39Hu/fvx83MzMz7+3tlQkJCem2t7cf0dDQaJOX l99x5MgRBQKBwCcQCA6lpaWVSCQSqaysLA+FQiV4PF6EQCC0JyYmzCAQCKi2tpbs4uIyNTc3t29o aEiaTCbvyszM9NbQ0DgUHBy8EBsbq6SgoICUkpISMxgM1Tdv3ny+efPm32w2G8rn8/kqKipIQ0ND ZlNT066urq5ONpvNUFNTm66rq1sfGBgIh0AgEm1t7S0oFBq4a9euEg6HAwYAYH1sbGxmYmICikKh MPb29qM8Hg9VWlqqoquru11XVxc4NTW1pqWlJf3ly5exc+fOgXk8nkBPT68vLy9PY8eOHXMYDCbR zMwskclkIpSVlT3T0tKY0dHRsb6+vlbKysoPxWIxxs7ObkpFRcWDxWIVXbx4sfHq1atdzs7OVh4e HnJwOJzEYrE6qFRq0cLCAtLR0bHh8uXLuREREVyBQDBpZ2e3RiQS4QAA7NTR0SH09vY2Xr9+vYpE IjlhsVhmZ2dnHQAAwI8fPwTb29sDVCoVQSaT0Xg8/uuJEydsampqInJycj7Hx8fLy8vLy1CpVOTL ly8ZJSUlNf+xEOK2tjb5CxcuRI2NjfFSU1Nv7N27983q6urY8vLyNhgMRnK53PzOzs7ApaUlxLVr 17xu3LihlJKSoqKgoIBfXFy0zMjIaJCRkaHExsYeunHjBunly5ei0dHRP5mZmYGvXr3ysre3B4yN jRX5fP6SrKwswGQyhY2NjVXNzc0VPB4PKxKJOu7cuZMKBoOB9fX1zpWVFSGTyYTOzs6WNjc3b1pa WtpFR0cvp6en56+trSmEhYWNZmVlFTMYjDYtLa0ZEonEuHTp0oapqamckpJSR1NTk5DL5fY8ePAA vLm5yTAxMdEjkUiaEomEIRaLOWKxGECj0UJ7e3v7/fv3x5qamjqoqKgE29jY3CEQCNW2trYp6urq AVVVVV82Njbmg4ODrefn5+fGxsbauFwu2sjIaEhRUdHjxYsXsseOHQsSiUTCR48eSdzc3OycnZ2F hoaGmwcPHhT9/PmTB4PBtHA4HOvbt2/SfX19v4OCgjRTU1P1L1y4kKiiooKTlpaea2lpcZmenu53 dXWtlpWVNQcAgNHf31+TnJxc//HjR3VfX9+53bt3YxcXF4MJBAILAADAyMjI6cqVK8Ti4mKVjx8/ 1vP5fJnGxka0g4NDUX19PXn//v0lZ8+eXY2IiJjNzs6WDQsLQ6LR6AUikYj9+vWr6crKyp/u7m6E kZHRupqaGjI7O7s5JCRks7e31/zEiRPb/f39VRKJhNPU1OQvKyuricVi5aampv48fPjQz8/PTzMy MtIHTKFQkDo6OvxTp07R7ezsVIuLi09VV1cbUKlUCykpKXUAADZ0dHRm+/v7s0xNTa9IJBIQiUSS R6FQEKFQCJKRkcF9//7dEIVCzfb19en9/Pnzop+fn85/i7Ha169fLwMAII6Pj+9vaWkZ43K53dXV 1f0tLS1zaWlpkr6+vqXh4WGerq7uWklJycDo6ChOSkpKZGBgoJaSkrJzdHSUAIfD5y0sLLpv3brF VFNTs5dIJAAAAEBxcTHZwsJi6c+fPzobGxsEAoEQbv7/aDr3f6b/94+/drTNNrY5jDmb8ymnnA85 5VA5RCKVJB30dihKfHSidKJSIh2UilRICjmFHBOS83kOM+eNzcaO31/6/gfP2/OH5/O6Xdf9cb+M jVWio6Nn9u/fr9HZ2YlRVFS0U1BQwJuYmOw8duwYikajya6srMDn5ua0wsPDO2g02sLg4OBBgUCw 3tfX193f3w8TExMTPXv2LDMvL++FjIwMT0dHp05aWlpST0+v++vXrxVpaWmLaNRigS8AACAASURB VDT6v8rKyvNUKpX68ePHdBsbG7SSktJNGo3283//+58clUodJBAI9Ddv3ogfPHiwRygUbo2MjFRT qdTZr1+/jmloaBwjk8mrhYWFdi9evFB48uSJwurqKqeysrINCoWOHz169NTbt28z19fXN5hMpiWT ydT8+PEjWEJCYurixYu827dvYzw9PcnGxsayenp6/zMyMqI/f/48618VkvcP1iEaGhoqCYVCAIFA uDKZTLi5ublKZ2fn5/LycmZERITJvn37DOfm5sirq6vEkpIS2StXrvQXFRVZKikpeXt4eOxTU1Mj Wltbm/79+5c3ODgor6OjQ//w4QMxIyODd/r0aVZOTk5zdnZ2W11dnRwAAHI8Hm9ze3sb1NnZOaut rQ3U1dU1iYuLz168eLEKCoUKJycnBQMDAxWXLl2imZmZEfPy8ubhcLgoMzNzOTEx8efNmzfpHR0d 8mJiYpqNjY06NTU1FnJychgqlSpZWlra8fPnzxcAAEiAwWB0XFzcl5WVFQ6TyeRWVlYOFhQUPKiq qnJTVFTsaG9vvwgAQL2vr2+AjIyMNovFmh4eHjbR19cPaG9vL1NQUJil0+nf2Gy2EgAAWzAYbNTB wWFYV1c3DIfDdW9vb6u9f/9+5eHDh3xPT8/NO3fu7NXV1VXa3NzcXlpaQoDBYCoWi/2LwWDgubm5 O0gkks/29rbxgQMHPNXV1b1evnz5XF5e3u3GjRuHg4ODFRAIBKqjo4MeHx+/JicnpyAlJaWQlZVl qK2tTeTz+fi4uLhINBrNDgwMrCMQCAQUCjUbHh7ea21tvXb+/PkNS0vLVTQaPT48PIz99OkTeGho CDs3N7czPj4eyMnJYXO53K1Lly7t+P79+/mBgQF4Xl4e8PTp05OBgYF/dXR0Apqamiizs7Myp06d ivX19S3Lycnhp6amNoNlZGRofn5+iEOHDk1YWVlpAgDQl5ubq7G9vb0wMzPTERwcTHV3d2/T19d3 FwqFABKJdFNRUalsbm6uXVxcHGKz2Rh9ff2N3bt3s5OSkl7euHFj1cbGJiMqKmokODjYHACAkcLC wrxdu3btw2KxgTt37gQPDg7qk8nkPZ6engNzc3M+SUlJ5/T19S/29/eLm5mZmUChUDyXywXl5eXp REREMDY2NqDR0dGr+vr6yGPHjmFCQkIm9+7dG3316lWFrq4u7fz8fH0lJSWDnz9/5mIwGPyuXbsk pKWldwiFwiZnZ+dnTk5OQx4eHjVXrlxpzsnJET548MCvqamJTiKRrEJCQiySk5P3MRiMYR8fnwPl 5eWlGAzGpKurK+/Tp08xw8PDiMzMTJSysvK6t7f3yu7du8NPnDhB6unpGVdVVaUHBQWNXb161cDc 3Jz95MmTl319fdvXr1/vGhkZOctgMAj37t1jh4WF+eTk5LQqKiqqKSgoaKJQKIGYmJjc7OwsoKmp OW9tbX0Ij8ezzc3Nj/j4+DgpKirOQCAQuLq6uqScnFzbnz9/puvq6mqUlJSYSCRSUVJSkvTkyZNR NBotam1tRf5ThO3+/Pnzr5SUFMXU1NTZ1tbWDwwGY7Cjo2Oay+UuDg4Oxvv6+lLpdLpRbW1td25u bsafP38k0tLSRvr7+ye+ffs2amFhQTlx4gTIy8srKz09/S6Xy2XJysraNzU1de3bt8+fRCLpGBgY OEOhULSkpCRNS0urPzExUf7KlSuh6urqskKhcJRCoXQikUjQjh07lG7evNl36NAh58nJyQljY2Mv W1vbHTdv3rT6/PnzRn19/err16/7JSQkuO7u7nQtLS2knp4eMzQ0VAkEAq1CoVARm80GIRAISk9P zyYAAICTkxNURUWFNTExUenj4/OARqM9trKyGn716tWDpaUlBIVCwV27dm0gOTl5R3x8/AsQCKTz 8eNH0IcPHx5VVFTUAQCgMDw8/EpVVVXx1q1b5q9evQL6+vowDx8+XOVwOPTg4GBmUFBQkaKioo+N jc3a48ePKUZGRlNBQUEnJCQkJL28vMZUVFTC6HQ698uXL6yzZ89Wx8fHm588eXIEi8XyyWRyPgwG EzAYjILw8PC7ioqKOxcWFgp0dXWJenp6Bnv37p2XkpLiDg4ObgUEBKhkZ2f/7e7ubuzs7KzOzMzs +dfv0mIymXQAAAiRkZFUNpsN3djYYOno6MzR6XSlzc1N6YKCAnEdHR2J/Pz8GTwev/bmzRsHWVlZ iJ6e3oqRkdGQvr6+C4PBuDwwMNBVXl6et76+3rZnzx4PLS0t1j+XgQgCgaykpaVpgTIzM5NlZWU5 Li4ukLW1NSKZTI6Znp4+LC4uvo/NZm9MTU2hh4eHS1dXV80SEhLcAQAgDgwM5GIwGP7Pnz+l0Gj0 vKOjoxUAAOz8/Pzvk5OTGpcuXTL4/PnzQEhIiD6Xy+XBYDC4vr5+w/j4+GEYDKZlZGSUMT8/rx0U FDShoaGx8u+CmFJSUm5Hjx5NMzc3lzYwMFB4+PAhZ8eOHVJLS0tCEonU/fv3b87a2prUwMAAeG1t 7bilpeXz58+fQ4aHh7EcDkfcyMhIRlJSkk+n05eIRCI5Ojq6vru7m9DY2KhqZWWl+O3bN35KSsrS mTNnnmVkZHh//vw5zs7OLkEoFALh4eFLe/futcXj8R5cLnfp58+fg66urscHBwdfw+HwzdXVVYGO jo6Subk5OywsbKG+vn6+oqLihJ+f35XR0VGv3t5ei9DQ0E8rKyu8nJyczqioKJtv375JRURELJuY mNA6Ojqm1NXVia9fv54nk8mit2/fxiCRSCGLxQJTKJTV0tLSPHd3dzNDQ0OkpKRkMgAA7MnJySdr a2swJpPZU1dXB+3s7NyKiIggd3d3S4PB4HYTExOCtbX1/r6+vkIsFovKysqaPHDgwH4+n9+oqqpq RaFQxhITE/sKCwtNUSiUdEdHx1ZDQ4NQSUmpoqury7a0tDSFTqd/53K5I7dv3/587tw5/+rq6i13 d/fvDAYjfMeOHZIfP35c8PT03CkSiVZKS0t/29jYLMTHx2MAAOjNy8s7+/bt26HQ0FAdLBbLsbKy elBcXHwoLCyMl5+fTxYTE0OBQCA0CAQCXr58WdXQ0IDR0tISZWZmMv81PqFsNhsiLy+/DQAAUFBQ kNPe3u715MkTfSQSiaPRaNnq6uoP79+//8DCwkLV2NgYGB8fr5+envaCQqFCBwcHWF9f3+uMjIwd hoaGYAAAAAgEohkeHo729PR8YmpqGnz//n0HJyen9wAAAJaWltNXrlzxtLOzq7h06ZI0iUSSaGtr o0VFRZ1AIBCw5ubmD1ZWVm5iYmI7AQAAAgMDP8TFxdFramoWwsPDjeBwuOj169ddP3780Ozr66Mu LS3tbG9v/7t371753t5eBRQKJdzc3OwNDAzciImJ2XJ1dY3c3NwsqaqqmrWxsRnu6OgQlZeXy8jL y2v6+PhM9/b2kmEw2Py/c0M/fvyoGRQU9GdoaIj3+fNnpT9//lxcW1tLDg0NpVIoFPWWlhaeQCDw RKPRyt++fWs6derUfEVFBUxfX98VBoOJioqKejkcTv3GxoZhZGSk67/J2Po/EvJ9V1eXclJS0uGJ iYmqCxcujB8/frwbLCcnt6aiorIiEon0VlZW5lZXV891dnZKS0lJBSgpKR1PT0/PzcrKwl68eNFd IBAgpqen23R0dPzl5OR2zc7ObtnZ2RnxeDxmWlpauUAgACYnJ+dDQkL6PD09JU+ePFnDYrEgIpFo Oz8/XxYGg2n5+fm93bNnj1BMTGy5qKgIdufOHcz379/LiERiIggEwqLR6O2oqKiof6jj5tTU1J9H jx5p9Pb2buHxeCVPT092UlKSqrW19fOwsDC14eFhLIvFQs7OziIDAgJYX758YROJRBcEAiEUiUTQ kpISTEhIyPebN29+MDIyMhITE2sDAABgMpmzvb29FmVlZXsuXLggvbW1xd/Y2CCz2exBMBgspFKp tZOTk5lMJvNrQkKCUE5Obruvr288NTV1TE1NjSkhIaERFBSUVlZWVtjX17fT39//VWxsLNXV1VVq ampKsGvXLhCfz9cPCwv7df78+X4DA4Ndq6urqKGhoZj//e9/RggEQjg/P7/k6ura5OXltU4mk728 vb1VkEikMgAA7NXV1Uw1NbU4Op2+TSaTVRgMBk5aWhr9+PFj0cePH0dHRkaIjo6OWt3d3e/n5uYs jh49aqmqqupgb28Pc3JyckGhULCioiKp4uLiUCQSaTA0NMQMDg4+uX//fmkPD4/dYWFhCzIyMkVo NFpYVVW1EBER4S8nJ6eqrKy8eenSJTMoFCr8+vXrrKGhoWBkZORGRETEL2tr61UjIyMFBQWFIhMT E6Pl5eWloKAg3Y6Ojqnl5WU2iURiAACw0dfXt2Jvb5+bnp5efvPmzezHjx8Xw2AwelBQ0N/Lly+H zc3NSc/OzmJMTU3NTpw40WpnZ4cgkUgnPT09j87Pz+P9/PxW0Gi0DQaDER8cHKwyNjYWQiAQ0dbW FltKSsrSxsZmNSEhAfzt2zeugYHBLkdHRwqBQFA+ffo0yMfHZwaHw5ETEhI0bGxsOGw2e7qhocFu fX1dSlVVFfH58+equrq6PdLS0pJ2dnbNdXV1cDQabQAGgwn29vYnHz9+/LywsPBRXV1dYkZGBqW7 uxvn7e0tDQaDxW7fvt1KoVD0L1261K+trS0/PDyMwOFwhMrKSiyfz9/s7Oxsnp6epoPBYODcuXOo hISE42w2m2tkZKTf1dVF3tjY8M7JyTkVHx/PNjY2PsJgMMTa29sV8/PzDc+cOUO7d+8ed9euXbay srJbRkZGUAAA4BEREcgTJ06MNDU1IWZnZ5GXL1/u7O3tfWpiYiJXX1+vpaqqqg2DwZSdnZ1zDQwM BIGBgQd+//4tOTAw8B4CgegLBAImHA632tzchEIgEODBgwc5+fn5YwsLCysMBkMDVFZW5vfhwwd1 Y2PjZTgc3jMzMxM1PT3dwGQykY8ePTLCYrHbPB6PKCcnZyAUCsWGh4eLNTQ02AKBwJrD4dChUGgj EonU+fXrlyA3N/dXXV2d93///ffc2NjYmEqlovbu3WszMTHR9+TJk4ns7GyH4ODgwvv371v19PRI GhgYrCspKfnAYDDR0tJS19DQ0IJQKARcXFzOLywslMDhcCiVSq2Ul5eHCQQC1efPn2+BQCDQ/Py8 wNzcHDQ/Py/68+cPH4FAbBKJRGJ+fj6ezWarVlZW/rCwsDizsbExg8ViFX18fO4XFBSYxcXFdT95 8iTmn1TjGggEAsfHx8uYmJgwSCRSelpaWqqLi8uKvLz87ra2tk9LS0vDOBxOg81ms4VCoYyzs7PW w4cPxc+fP/+XyWSui4uLt1dXV18QExObPnr06NWTJ09mJyUlQbe3t0EaGhrhra2tcaurq1saGhqb zs7OiPb2dsbk5KTaxsYGKzMzUyUkJISdkJCA9vHxYVtaWnb6+fkdw2Awu4RCIf/AgQOZAQEBs1Ao VHfPnj3U9fX1vpCQEM8PHz6wt7e3NXx8fApkZGQYPT09ljMzMzf/4a5FBAKBQaPRpKFQqAgCgSCj o6OHr1+/rszlcvkGBgZe/+bs6FevXmULBAIgNDTUjMViDYHBYKCrqys7IiLiMBqNXlVRUREbHx9f 6ejo8FtfX39QUlJCwGKxI0KhUHZra4uyf//+ywQCQZfBYPy5du3aj3PnzjnJy8vjf/78+RGPxzep qak9sLGxqfP09ISmpKQEtbW1/c/Ozq7wH7C1gcfjr+7bt8+gqakJDoVCRerq6v2VlZWRWlpavzMz M1csLCzU19bWatlstrK+vr6vubn5sydPnqxraWkpcrlcrrGx8fbKyop3bm7uVQMDA6Kbm9suBweH 7OLi4pqtra0RgUBAp1AoZXp6ehfz8/OjiESi1cLCQpuNjY0hm81eAYPBgJKS0u5/7j1xGAwmBwCA 8P79+0murq47paSkeP39/WOOjo77Nzc3N3bu3MkdGhoi4fH4haqqqlsVFRVmqampmVQq9TWBQMDQ aDS2srKy9alTpy6dP39+x+3bt7vT09PPAwDwqr+/38DFxWXu3bt3M7t379ZBoVDu9+7dK01JSdnR 2dlJNzIyEmtubv6qqal5EgaDiXg8HiQlJeVnd3e3MCkpadDOzu5CRkZGXXBwsPDu3bvwY8eOsZeW ljT7+/sH4uPjk5eXlwvGxsbws7OzfWAwGFlbWzurrq6OPHbsGJNAIET++PHjx+LiIn3v3r2+GAzG mEqlht26dWvLzs6OCCksLBxMT08fio+PN3nz5o0JFosFsFgsRllZeUlPT0/Gzc1NMTIyEti9e3dT aGioOYFAkGMymW0YDCaQy+UK0Gi0Y3x8/CstLS3jN2/eABUVFRgFBYUNEomkBQKB5mg02nRUVNTM tWvX9JBI5Iyvr6/r169f59TV1WHW1tY2Fy9eRM7NzdXIyMhoamhoBJWWlp41MDDAikSiUQcHh+ZH jx6F+Pr6Tl2+fFnx1KlTqoaGhp0VFRVyYWFh3TIyMmwVFZXx2dlZKIPBIGRnZ/Obm5tXvL29WeLi 4mxJSUlXT0/PGx8/fqTz+fw/fn5+1xgMxncIBMI8duyYe35+fntqaqqjvLz837i4uOWpqSk6h8MZ W1paGre0tHRdW1ub2b179x4oFDpZUFBgsHPnTphQKFz99OnTCoFAmH/w4AHm2rVrp01NTfcDAACo qqo2NzQ0TG9vb/Pm5uZ+rK+vb/T39wvu37+/MycnR0ZLS0uJQCAgoVAoEQwGL3A4HN7Xr1+9Xr16 haDRaN0yMjI7JCUlVWk0WrO+vj4kPT1ddPHiRYne3t5OAoGgFxEREdHf3z+qqal5TFVVlY1GoyHN zc0T+fn5/WFhYVAUCjXY0dGxiEAgKIqKikQkEsk2NTXFQqHQGSaTiYNCodWqqqoLWlpaBVgsNk9J SUkHh8NJsNnsLTQaTSosLJx7+/atdHFx8ZaDg8MfKSkpfHx8POTChQthdDq9EYFAmGVnZ/dnZGS8 gUAgc5ubm2tYLBZwcnICLS0tbeHx+MWFhQVWamoqFo1GT379+lXr+/fvcCqVWnL69OnTbDabdv36 9WQ2m70kLy+/lJ+fv7x7924pExOT7/Pz84TNzc1Rb29vaEhIiFJeXt5fcXFxaTMzM8Ls7Gx3eHg4 ydXVlXju3DmZ3bt3Q549e7be2trKg8Fg2KSkpI67d+9SGhsbJZ4+fVq8uroKJRKJ3eLi4pJ///5t ZLFYxvr6+hvW1tY279+/LzIzMwvA4/HKfD5/CwaD8aampgZlZGTshELhsImJieTi4uLM0tJSV2lp qcz29nZDbm7ueFBQ0HxRUVFFQkLCtpSUlJyvr2/k8PBwjYmJiU5oaKjwx48fC0ZGRuZgMJhRW1vL 8vf3d7px48a4o6PjxpkzZ7bS0tKoIpEIrKmpKQeDwUzt7OxCpqamPjQ2NsI6OztNJCQkRFNTUywl JaUjCARCY/fu3Rxvb2+18+fPS2tra48aGBjMbGxscH7+/LmIx+NJXC6XFxgYqLqxsVEMh8ONVVVV 5ZSVlQXKysqahYWFPKFQSLOyslpDo9FG6urqQSwWqyssLGyroaGh1tHR0dzf39/08uXLf8CVlZX/ g0KhS1paWgG2trbz0tLSVC6X2zM7O7vz+vXriFevXjExGIyNsbHxuFAoZIhEIiESiRSAwWDZffv2 DZSWlp60s7OTX1lZ4b17904Vh8Nt//r1i1hYWNgQGxtrUVBQUNXd3f0/FovVvL29XQsAACAvL08w MzOz2djYQDEYjPaamhoMjUbra21tvfPnzx+b1tbWPElJSdXm5maPW7dufX/69Cnp/v37shoaGm8g EAjiwoULfTweD//gwQMZDAZDAAAA8PPzm6msrFxrb28P6O7uRi4uLm4ODw+/qKysTFtfX9f59euX pEgk2uRwOGAOhzMKBoMBX19fRHBw8CKXy7WsqqoaCAoKMuVyuUhnZ2c/Pp9P2blz58FTp04txcXF WXh6erYDAADY2dlhcDicYnt7O727u9uYwWC8rK6uvtXR0XFbX18/FoFAiEQi0RqVSkXV19dT4uPj Q/bt27dlbm6uJxKJ9J88efJcW1vbsre3V7h//37h6OjoezAYTBcTE3OSkJCY0dHR+YxGo7f9/f1b IyIiFsTExKyoVKoyk8lcycvLKzAwMJAVCARTNjY2qLm5OZilpaVYRETESm5u7mMymSxpamqqq66u fprBYOBhMNghMpkcRCAQzCIjIzkEAsGqpqYGiImJQVtYWDyfmZlp/beZJoBAICASEhL+h0AgvCoq KrBVVVWca9euqfT19dkDAEAQExNz0dTUHD958qTK0NBQOYvFYs3Pzw8dPHjw7p8/f7h4PB7c29v7 lEwmaxw9elTb2dnZ9ffv35K9vb1oWVlZheHhYQoAAIOxsbG79PX1N1JSUm6UlZXJHj16lCUuLu5S XV19UlJSUu5///sf1t7efrqkpET62LFjdSkpKUMCgWD93r173aWlpZR/bIne169fl+Fw+E8ajdbw /fv33bdv35bb2NhAq6urs729vREkEkkJgUAIWlpaaFFRUXJ0Ol2FQqHkLS4uKvz48aMGjUarCQQC KAwGE0cgEA1Xrly5HB8f//n3799NHA5ngUKhKNBoNMmrV68G/P37V+vZs2dm0dHRdlgsFuXv7+8s FAqnSCTS9uLi4ioIBBIhkUg+AABbCQkJWwQCAWphYeGUnp5OO3/+PD8lJaX5zJkzq87Ozi5oNPoy BALRjY6OjltdXUV7e3sz0tLSOv78+dNgaGjoOTs7GwcAAFBcXNwXHBw8NjExAduxY4fm8+fPcV5e Xjv7+/sRbDa7LC0tbW15eRmGw+F48/PzzTQa7UNtbe28i4vL9P79++FxcXHGCgoKb7hc7vCPHz8K CwoK0Ddv3lzQ0NAol5GR0dTU1Bzy8fGhgFJTU88mJSU9WlhYKNm/f//rS5cuKTk6OrrV1tbWoNFo ZUlJSZympiYZBoPxNjY2Gn19fSnnzp1befTokX1jY2MCAABAaWlpjJaWFhMEAln39vY2urm5mW1s bEAGBga+uru73xUKhbPPnj0r8PPz89fX1x8cGxtjGxgYsJqamnTBYLCIz+f35+Xlbd+4cSNlcXHx vaysbPjFixffP3v2TG1mZqbM3t6er6KiIlJRUYE5OjpSWSyWvJiYGHTPnj3etbW1DQMDA0w8Hq8M AoFmJSUlEd+/f9/EYrEgd3d344qKit6MjIxbBQUFRw8cOHCBQqH81dPTWxsdHWWgUCgtcXHxJg6H 40EgEGTs7e27ORwO6NatW+yVlRWqqqoqdXNzk0AgEAgpKSlyfn5+/QEBATG7du0qiYiIoM7MzPxM SkrqHBgYCOFwOA54PJ6goqKyxePxfsFgMHs+ny+Ew+H+AAAA7e3tyebm5s5+fn4dAAAAHz58cJ+f n/+qqKgYwmaza9Bo9O4bN24Uubm5EUZHR78cOHDgCgQCYXK5XGxra2uuk5OTP5/PB0GhULBQKMTW 1dX1urq6eohEopWVlZUOd3f3qaamJu2ZmRmGnp7ewcnJyQ///fcfu7S0dJ+dnV1WS0vLSZFIxAOB QDA2m70EgUBAsbGxX3JycpLAYDAKAADgy5cvH/X19ZkoFEqFz+eDFBQU7NTU1KoDAgLWPDw80OLi 4h8ePXok8ezZs4jv37+X7Nu3L6mkpOSmm5sbisViyb1+/XqRz+cLjx8/bjQ6OjpAJpP1Y2Njr+Xm 5nqKi4v7r6ys1OBwOKn6+vq6oqIi3dHRUV5lZaU+CoUy+PLlS5atra19YmLiHIlEmtXW1t4qLi5W O3/+fB+FQtkZEREh+89yS9+9e7c8Ho+XRSKRxPX19RfV1dUvHBwcbs/Pz896eHjII5FIHg6HG7x8 +bKMQCCY0NPTc19aWqquq6v7vrKyEvHo0SNPkUgEOnDgwPvMzEycoqJizP/j3gKB4M+jR49uaWtr 62pra+vIyMgQ4XA4gc/ng4qKitomJib4tra2NGlp6V9kMvnI3Nwcl0ajTWppaRkWFRW1zM/PYz59 +mRcX18/T6VSaTk5ObRnz54duHXrVub/JxPX1tb6Kioq5CYmJjq6u7sxi4uLct+/f1/c2NhY0dXV TdPW1s4cGhoCqaqqLl28eFE2MjLydnNz8yErK6tbNjY2OXNzczoIBOLP79+/dQcHB9HGxsZEkUg0 b25uzu/t7d2tra1dUldXx8ZgMGg8Hn/iyZMn58+ePevW09NTZ2RklLm+vl4mISGxl8FgdIBYLFbW 2NiYICUlhWFtbT0ZGBg409raalNWVradmJiIkZaWdhgaGhq8cuXKQmpqKkJCQoKnrq6uIBKJFNls Njg5OTns6tWru+7cuaNvY2ODtbS0XKuvr1/mcrnjtra2/jQa7Y+4uLicjIwMQUZGRmF4eLj9Xylk iEajXR8+fBgiKyvLsbGxsRYXF0dJSkoGsVisFxUVFVttbW0kOBz+d2RkBPSPJwCIROKHfx3ao7dv 394JBoOBxcVFeHNzM6e0tLQIAADg4sWL1lgsloTFYpFGRkYnZWRkXu7bt2+6vr4eNjo66ra9vT0F g8EMf/36Vejq6ur7/PnzirGxsa2LFy/6enh4/G5ra6M2NjZuz87O9gMAoAoCgSggEEjF19fX+cSJ E6MmJiZQLBY7d/jw4YypqamXAAAAdXV1FHV1dZXBwcHNkydPbkKh0EMsFqu7oaGhVltbW/HVq1fb SUlJVisrKxwYDCYMDg6eoNFoyjU1NdtjY2PVGhoabvLy8nZgMFhRIBD0lJeXP9+zZ88pKBRqcPHi xYBr166dBYPBYDgcTrx8+fJhZ2dnGzs7u4sAAAiysrLOOjo6qnp5eemNjY2ZjYyMvDQ0NLw/PDyc q62tHTE8PPxVVlaWNzExsV5eXi4UCASAhYXFIo1Gm4+IiLgtFArXwWCwu88EKwAAIABJREFUnKam 5ilxcfEZDAaz2dTUVDk8PPyOx+PJ+vj4CGdmZrRnZmaquVyuxKdPn9ZDQkKmOzo6oGpqaqZDQ0P1 s7OzK/Ly8rZNTU3Q/Px89PHjx788fPjwallZ2ePNzU3JgwcPxq6trX0QCAT4rq6uKmNjY8OYmBhu YWHhyX804RCdTn9tb2/vl5eXl1VUVKRtaGhY5unpeQICgaC4XO4WmUzWnZubG8NisSRJSUkNGAwm x+fzZ2JjY/Pi4uJc6urqasfGxiRWV1cFu3btYiQkJMyFh4erJCQkONFotKmrV68SRCLRyOvXr+8C AABERUXdtLe3n/X398/6/7DX1atX//Pw8JA1Njbev2fPnorPnz/vvHjx4qcjR46IbW9vk5ubm7eC goJ+nThxQvP9+/eOampqooiIiPHQ0FCcrq6uX3Z29isGgyGEw+Hs1tbWttevXx+OiYn5kJGRYeHm 5lZmYmIifePGDb3y8vJNCASyicPhtnNyckYSExPxERERCDs7O3NTU9MqKBSq6uvre2xiYmI4ODh4 49q1a88+f/6878KFCxUKCgpaOjo6nJ07dy5TKBSlxsbGgP3797dOTk5a19TU/H337t3vmpoa4ytX ruBqamoWMBjM9oEDBwA1NbVdbW1t3RoaGl8JBMKzmzdvvgOtr6/fEggEZkwm846CgkLq1tYWOCEh IU9eXp6pqKiIio+Pt/q3rgpeX18P+/3794SEhISJsrKykEajjcTFxfkHBQX1GhoajtbW1oozGAxC cXGxdHt7+y9DQ0NTNTU1tQ8fPvT903vBvL29pfT09Jyrq6uf6enpkRgMBmV+fl5sfX2d5+/vHzIw MHBfT08vTSgU0ng8HiU2Njaprq7uoLW1dau8vLyBsbFxq7+/f/Ha2loDm83uRyKRiM7OzvlXr15h y8rKlEkkUtGTJ09Ijo6OPnA43K6lpeVNenr6MAaDod29ezfI2dm5v7W1VV4gEID+vcaLGxsbEKFQ CHrz5s2ktLS0LAAAgKKiYp+pqSnqXx78gIKCglZ6evrrwMBAXG1t7bqCggJraGhIgs1mc69du+ZU U1MzxOfztyUkJAASicRKTk7GR0VFyZw/f35VJBL1ycjIYF69enXl/38aS0vLnHv37g1MTExoZ2Vl TbW3t0dTKJT69vb2ofb29tUHDx5cn5iY+KSmpraHw+H8RaFQO2ZmZt60t7fjAQDoJZFIaBsbm7ip qalvAAAAc3Nz4z9//pS7dOmSMZ/PR4tEom0jI6O/bW1tMlgsliAQCHDv37/P9/LyAldWVmJhMNh2 b2/v5o0bN+JWV1frCASCc3Nz8x0bG5sYExOT5pmZGZmKioo5Docz6eTklDI4OFjQ3t6+YGBgADU3 N4/6+/fvh9evX99aWlrSOnv27J6srKz6gYEBrbCwsFYHBwdNdXX1pdzcXFJkZCShpqYGEAqFyx4e HoH5+fmXRkZGJKKjo81Pnz79JzIycgeJRIJtbm5C0Gg0Ym1t7R4KhfInEonbGAwGKS4uHvjr168G NBqN0tTU5H7+/Hna39//Unx8vC8Gg7HV1NSkd3Z2MiEQCG97exuupqYmlp2dbSIrK5seFRWl5eHh 4S8mJmbv4+PzNiIiQtLc3ByWnp7+6/nz57oFBQWyk5OTi5GRkTEAAAgBAAB//Pjx0v79+2P5fP5q S0tLl4WFheH79++/DgwMwE6fPr3Q398vYWRkNEggEBRu3ry5HBoaqhgeHk549OiRqqampnBjY2N4 fX1908TExIHFYvF5PB4RDAYDW1tboPj4+Oc5OTlZAwMDD4lEIkckEqGnp6fH6XS6dGJi4mBdXd2x 6enprpSUFCqFQplta2v7n7e3d9qBAwfobW1tCmlpacegUOj3x48fE2NjY8G1tbXTtbW1GzExMQow GEywvr6+8+zZs/UgEEiIRCKBvr4+/ZiYmD+5ubmKnZ2dBgKBAHTz5s1X4eHhhlNTUwN0Oh0OKSgo OEyn02dPnTpl9+HDh9H5+fliAoGwqKOjA6NSqTaZmZnj6+vrlampqfCnT5/ue/ToETMjI6Pz0qVL pJiYmNm7d+9OHz9+fHhychJ/4MABoZGRkYBIJI6Pjo7CrKysLDkcDkRRUbH/48ePZUePHt0Ng8E6 XVxcmpKTk9W5XC74/fv3JWZmZoT8/HyKuro6s7a29rORkZHe2traHy6XW75///54HA43p6mpKYyM jDzC4XDGFhYWavB4PBiDwWjNzc1RDQwMDL28vJTodHo+mUwGycnJiWlra+tBIBDlysrKnoCAAGlJ Scmmixcv4n/+/KnV39/fuLCwMNXU1LSuoqJC6e3t1RgcHBy8dOkSWVdXd0hcXFwKBAKhUlJS2PX1 9YKenh4OiUR6m56efkZcXFxtfX39K4VCkbWwsBDFxsYil5eX/S9cuHDLyMhIXVFREff48eOVu3fv OuLxeKXMzMyW7u5ul8rKSjAAAMvb29vN1dXVb0xMTDY2Nzdhrq6ulrq6ulQymewzNzfXR6fTx+Lj 48evXLliLyUltQ8MBouNjo7WSktL60ChUJCpqamfq6vr+NGjRyfgcDhHTExMWFxc/INMJgsPHjx4 AwwGT0OhUMu2trbnKBSKcffu3VmBQFCgo6ODQqFQU0Qi0TkiIuKvi4uLOJPJ5JHJ5K3w8PAeRUXF ZmNj4yAoFIo2MDDofPfunerMzMxoUlJSYnBw8JVTp05FMRiMRhqNJsBgMN9//PgxJxQK9VVUVCR2 7Ngh4eDgoESj0XpnZmaQb9++VW9oaNAeHR2ljY+Po1xdXdFSUlKYiYmJ+fHx8a4zZ864cLlcqLOz s4KGhobJysoKU1NTU9Df3z9qb2//UFZW1nhjY6MDhUJ529raflxaWuqUkpIaIZPJZA6Hg5SWlpZz c3ML4nK5s9bW1gZycnLs+Pj4jZKSkoDIyMjOra0tZnR0NB8Gg8H7+/sXnj59Opefn79/ZGSkxMjI KLigoIDe1ta2r6ampjs8PFyczWb3rK+vrw0PDz/G4XDSxcXFHXFxcZMrKystVVVV85KSkmMXLlw4 dfToUQqJRELMzMxMKSgocCUkJLQPHjxIRKFQovDwcKqTk1NTVlYWxM3NTTw7O9t2cXGxBovFmnR0 dHwfGhqiurm54ZaWltokJSX1sFisYXFxccH58+fF7969G/HixYsfnz59auFyufTDhw8jTU1NZcfG xqbweLz4kSNH4t6/f79MpVIXv337JiUhIdGBQCC4jo6OGTwe77OCggKWz+dvxcTECK9evYp0cHCQ ePnypRiFQmlpbW3djI+PJxoZGckJBAKMg4ODnoSEBLalpWVwbm5OGtLf32/V3NzcFhoaSrS0tARL S0sLT5w4EVxcXPyNy+UaRkREGJBIpLbr168TkpOTR5SUlPb7+fkB09PT9Li4OIfY2Nime/fu+c7M zCyHhIQ0SkhIeLHZ7EI5ObldBAKBCIFARH5+flNwOBzx6dMn5okTJ1xwONwiBoOZFBcXVy4qKmp+ /vw5YnR01DYlJcVbU1OToaioSORwOHVmZmZWPB7vy8TEBNjX19fH3Ny89tq1a4dRKBSdy+Wu8fn8 hc3NTUhycvJAQECAop2dnaW7u7uhgYGBDQwGs7h//35UU1MTp7W1dc3MzAzv6+sLKy8vn/L09Fyt rq6W0tDQ+G1kZJQkEolajh49Kq2mplZjZWX17sCBA01UKnX43r17+D179igpKChQzp8/Hw0Gg2FQ KFRDSkpqqLi4mF5VVYV89uzZnxMnTpQ+e/bs1MjIyMzt27dX8/LyrPbt2/deWlpa9+XLl6OHDh0a OnTokJ65ufkok8nEv3z5cnhxcZEqJSUlbWZmZqiqqqrZ09OTqKamRvrXJUY7OzvX1dbWrh05cgQN gUBADAajYXR0FEEgEMaIROLfoKAgj6ioqM2YmBjgzJkzUtnZ2dLa2toLOBzOTUJCIgiLxa5dvHjx gLW1NVdJScmyq6vrM5lM3r25uQmprq7+4+3tDf/8+fPI8vIyKjo62mBmZgbs7Oz848KFC56ysrJS MBjs8+7du3Ha2toWUVFRlYGBgSwYDEZ0cHAIs7a2XgkODmaFhoYmW1paOtFotLqzZ89Ov3jx4kBL S8vWjh07/iKRSInt7W0lLpdLIRAIjMHBwYXKyspfR44c8WYwGKPLy8uY6elprIuLy8TIyEifqamp koSEhKyUlJTq6urqnJWVFQoCgURnZWUlOTg4yHO5XF0ZGRkejUb7dOzYsamNjY1ZBoPBGx8f37K3 tycfPHjw9YkTJ1YlJCRAqampeCMjI/HZ2VlNaWnp7dbWVkxtbW3/uXPnojQ1Nb/PzMwgVFVVKz09 PeUFAsGWubn5XExMjEJtbe1WS0vLdFBQkEReXt6IgYEBQKVSNb59+2a5trb2vLu729zLy6sBDocj pKWlma2trcjr16//MjIyksXj8Sx/f3/j0NDQdQ8PD2RUVJQcj8fbgkAgS9ra2naHDx9+SyQSyXg8 HiUlJYXa3Nxc8/T05IpEIpn8/Pw/PT09t0JDQ0MsLS2VHj9+3L5jxw62q6vr/fLy8rdwOJy2urpK e/36tZpAIFg3NjbWunLlCu748eMiFRUVBaFQqP3r16+vhw4dwqWnp4vCwsKQJ0+e1Nq1a1eppaUl ITU1dQcEAplOSkpaRiKRa/39/dUlJSWGmZmZe8FEItHR2tpakkgkAiEhIVZv3ryRo1Aoi8ePHw+D wWDA+fPnaVeuXDGTlJTks1is9ba2tvcYDMZaT0/PS1xcXP7w4cNWVCrVh0KhYOTk5PSbm5tbAQA4 LBKJ+MnJyb///v37KyoqCi0SiURZWVnqfD6fLxKJuJOTkyAmkwmxs7OT7O7uPtbf32/B5/MfZWVl jYWFhX00NDQ0WVpaYvz+/Rv17ds3REpKSn1ISAjj169feYcPHy708vLqkpSU9EtISKDl5eWlkkgk DgaDUd7Y2GhdX1+vAgAA4HA40Hv37mHl5ORmsrOzaVeuXBn+77//rsPh8LPLy8t4PB6/h8/ng7S1 tf0hEAhzdHS0DwAANhaLpa+trQn3798vGhwc5BAIBI2XL18W8ni8JTQa3bq2tgbW1NQUS0lJ2VZU VPSWl5eHtrS0pLBYrB6hUAhyd3f/hUKhZjY2Nmbq6uoMa2pqNr98+bIWGxu7/OzZs29dXV2yly5d MpSWlgYaGho6q6urq8zMzF5LSEiEo9HoE6dPnzbhcrkxjY2NGq6urk/weLyqtbW1NJlMhkMgEMDH x8fI1tZ2hUAg7H/37t1pRUXFPZcvX0ZhsVjAzMzsMYvFCk5PT/dxdXVtUVVVtVBWVuaQyWSz8fFx Go/Hg3l5eWE0NTUdTp8+bW1ubi755cuXmWfPntXo6Ogs4XC4rzAYjO3t7a106tSp7a2trSYAAAAZ GRmppaUl9tDQ0KvMzEyuqqqqzD9jcweDwcDdv38fTKFQ/qqqqk7v37/f/PLly8IHDx4wUCgUt7Oz U2b37t06fX19Vl+/fu35p70Wc3Z2tqBQKMqPHz826+npWQ4MDARBIBBFW1vb+cTExFdqamqnxcTE mGAwmCgUCt8tLS394nA44Nra2v+YTOY4n88HCATCNBqNFmAwmPskEmmNTCbrWllZeamrq18IDAx0 am9vxxQWFh46evQotbCwsExVVVVsZmbGXElJyRoOh0twOBwpVVXVCYFAIGVjY6OSlZVl/vfv39nI yEiGsrKyRFJSEvXQoUMri4uLZhgMhrp37960jIwMEzQafcze3r5HUVHxDJ1Ob4BAINtoNHr25s2b mOrqan0oFIrk8/nohYUFRHBwcL6/v795SUnJJAgE4nA4HPS7d+8mtre3NcLCwqpkZGSEAAAgAADY 2tzc7Gxubhb79OkTFQAAICAggPq///1PKjk5+dTY2JipiYkJanh4GEylUpW3trZANBqtLygo6C+D weAlJydDkEjk14aGhokfP3681tDQOGZtbW1va2s7c+LECeOysrIdubm5yLCwsCenT5/empubew96 9+5dBJlMZikpKR0dHR1tBwAAUFdXF547dw5Bp9NBlZWVoSAQCLh//35+bm4uqLy8fLa3t5fi7u5+ MDAwcOLnz59WeXl54xgMhu/i4qKAw+HErl69WruxsSEbFxdnl5ub28FisRaOHDnCk5eXt1tdXe3h 8XgWbDabcuHCBVBFRYWBjo5OvJ2dnSsGgwE1NjaCW1tbz/T399ej0ej5paUlTn5+/tbevXs3Tp06 ZRUcHDwOAACQmpoaWFRU9GRlZQV569YtfSkpqWl3d3d+UFAQFIfDbb1+/Xo7MTGxhk6nX2MymUNO Tk7QS5cu8XE43LabmxtseHh4BYvF8rW1tc+trq7+HhgYGMXj8RIQCATU19cHPnDggJKrq+ubp0+f isvIyARiMBhJoVAI/Pz587e+vv6qtLR0fEtLSzaHw/mbkZGBLikpcUEgEB6HDx++rqqqitHU1OwH AECnublZEBwcDDMzMxNub2/PzczMyH358mU1IyNjUyAQiDEYjGgOh7M0NTVVr6ure3xtbe0HDocz 6u7ufmhqaprg5ub2vaen55m0tLRvTU2NZnh4+OP//vtPycPD4058fPyje/fu/ScSiVYIBAJVRkZm pqGhgYTD4QSHDx8eO3Xq1KaLi0v0vyBSJZlMNuDz+cCdO3fel5eXK3748AEeEBCAQSKRHDqd3tbQ 0GCYkZHBi4uLIyGRSDyZTP6ooaGx3NfXpzk2NkZeX1+XnpmZ+WxhYWGBRCJPdXZ2ZuJwOKi4uLiU pKSkEoPB+CAnJ5fR0tKS1t3dPWpkZMQbHh5e8/b2PvLjx4/Be/fu9Z0+fVr46tUrz5SUFCA5Oflr bm6u67lz56aSkpKQ5ubmgWfPnn1hamo6V1JSIl9eXn7i0aNHOZ6eniYBAQH0M2fOsIODgwWampoa vb293WJiYr5QKPTmwsICTl1d/erY2Fg3hUKhy8nJIWZnZ0c8PT13QSAQVy6XW5GWltZtampKQaPR uv7+/og3b97wDx06tKWjoyPe1NTkIRQKQb9+/cpRUlKyeP78+cro6KgQAAAgKSlp4c+fPzB/f/8D gYGBP0gk0pqVlRXS0dFRY3t7+wWRSIwsLy//u7GxMejv779za2sLfOPGDSgMBpuJi4vTg0KhIjk5 uQM8Hu/PvXv3Xg8ODgqDg4Mlx8bGsL29vZC5ubnRHz9+eOzatYtaUVHhKhKJoCAQSGhhYfHo9+/f GZKSknHnzp3T3bFjh9irV6946enpQikpqamqqipOYWGh0NfXV7O9vX02KyvrBgAAAJlMzh4eHhZp aWnRk5KSumxtbQP9/PzmWSyWory8/Ni+fftGL1y4cFMoFM5CoVAz0NOnTxPevXun39jYeMjd3f32 27dvV7a3t1mysrJHSktLO+l0elt7e7u1ubl5Y1VVFfbFixd7USgU58ePH28SExOdiEQi7s6dO7BH jx7NOjo69oaEhHwsLS1NZzKZXDgcjvTw8OBBoVBSQUFBaUhIyKmtra3ZxcXFJVlZ2ZkLFy6svXnz xsPW1pamqKgICQsLQ1y9enV2eXkZsrKyYrd///72/v5+5Tdv3my2tbW1oFAoQwMDA4UnT57MDQwM UD9+/HgkMjLyOY1GkwoICNguLy/f2Ldvn62BgUF1aWmp0rVr184uLy/HolAoOSaTuXNsbGzE29u7 g06n3xeJRAQQCMRvaWm5YW5uPoxAIOoBAABGRkbSxcTEEGJiYktzc3MwKSkpVmpqat2tW7f8Ozo6 lru6uuB8Pr8kOTn57Pr6uvy5c+eopqamS4cOHZItLi6eP3Xq1M3s7OzjFhYWK3Jycsenp6dpenp6 rL6+vpWuri72f//99xAAACA9PT0+Njb2LAAAwOrq6tDly5eHgoKCRpSVlaEPHz7UIxAIHD09Pdre vXujYDDYrJ6e3sCPHz9whoaGzwcGBsLq6uqm/f39jwIAAPfy8jrz9OlT4ytXrjQmJiZKV1RUmLFY rOGSkhJCZ2fnWQAAEIuLiz+wWKxidnZ2PR6PBwmFQs7t27dV3rx5w9fT02M1NTVJenh4BAMAABgY GLyvr69f6ejokCSRSPSWlpafW1tbkMOHD9uCwWAICASSLS8vn/Py8hLB4XALFAolXF1dnU1MTOx1 cnISt7Ky+iktLR1ZWFg4YmBggFRVVd0qKytbTktLIyUkJFTNz88baWpqIre2tsZnZ2eXnZ2dTc+d Ozd29+5dxMTEBENfXx9pbW2d4+Tk9P7hw4eVS0tL6+bm5tchEAjA4XDqcTicHp/Px4mJiTmxWKxf 9+7da0xOTnYKDAysKywsdAkJCUleWFiQbGxsfM3n82m7du0qiYqKql9cXNxz5syZPfX19bUxMTFg d3f35sjISE0FBYVlKSkpj48fP9bcvHlzLjExkdTW1iZrbm4+b2hoqE8kEk0+fvxYi0KhIAsLC9zH jx//5vF4mk1NTdYYDEZQV1dXPjQ0hFNWVp6SkZFB/hupymZkZKQIhcIlXV3dDx0dHeiCgoKvhw4d ijEwMKDb29tXVlVVWf/9+xdy8ODBqqtXr+oIBAKBoqKibnd3d7e5uTmdTCY//kdOMgwNDWsfP34s XFtba0EikcpHjx7Vio2NpQQHBy+QSKQgPp8Pio6Ofvv06dMbenp6NyAQiJBKpYphsVjU6dOnt8rK yng/f/48npmZGR8VFXWrp6fn/vPnz0kQT0/PzbS0tL07d+58pK2trW5jYzOgqKh4g8/n06Ojo+lz c3OaWlpaX1++fGl+584dsJaWVhSNRvOprKwEysrKLJlMpkJlZeWcvr7+QEBAwFJjY+MGk8lEHDly 5LC+vr71gwcPekkk0rK4uLjy4uJi2ejoaG9eXp4agUCQ5XA4i1gslldeXp6cnp7e4uzsDDM0NMTw eLzhb9++MXV0dKrDw8NJjo6O69bW1mYODg4YCQkJvr6+/kxCQgJcR0dH+PfvX05oaCgsNzd3KSAg gCIhIUHYuXOns4eHx5nV1dW+pqambX19ffeoqKhbkpKSKmQyme3i4rJfIBCsbW1tvbtw4YIYgUBg vnz5smnXrl2adnZ2NZ6enhJSUlLqEAikNywsTFRQUHARjUYbKSgo4Ht6elZTU1NjT5w4scJgMNhc Lnd+e3sbmpWVtT45Oak5ODj49vTp0y7Z2dnjO3bskGAwGPDLly/3R0dHX9i5c6ctm82u5nA4nbKy sgwEArEMgUD4MBiMWVZWVu/i4sJTUFA4sGfPnoP29vYWmpqautXV1T+VlJQGNTU1t379+tX35s0b n69fv7apq6tDWltbS1ks1mc1NTVAVlaWtGfPHkUcDhdsYWGhAIfDtx8/fmwcGxuLgkAg4igUCuXo 6Fh2+vRp6YqKij/T09Oi4eHh8SNHjsgjEAi1kpKSjoWFhXlfX9/nw8PDcerq6quVlZXUtLQ0j5CQ EKlDhw5RWlpaWBQKBfHhw4dvVlZWphUVFSxpaelpJBIJGx8fB6HRaNSjR49wKysrg3FxcRJEIpE3 MzODPnTokP779+/ro6Ki1lpbW2W1tbU3pKSk4CoqKjra2trixcXFXCQSiTE0NNTB4XArISEhzjQa 7Up8fLwSjUbrWV1dDdHV1ZXq6elpZTAYcDc3N3xkZKQuBAKR3Nzc/KugoABfW1tbLS4uRnt6enZ5 eHgY9vf3s1tbW68cPnxYLC8vj2lmZqZjbW0tIS8vP/X48WPnFy9efEtMTNQnkUga586da/Xy8sLS 6XTKqVOn1DIzM4U/fvxQu3TpEqewsFBsdnZ25Nq1a9zp6WkOl8uFX79+Xeb8+fM9ZWVleC8vr20t LS12b2+vcGBgYENOTo5NJBLVcDiceFpaWsuePXuQFAqlb319fdzT09NZSkrKmUaj3SQSididO3fO W1lZKZeUlNDNzMzUNjY2Jq5du9Z+8uRJBTweD4bBYBShUNhTVFQ0XlNTg7xz545ZZWXlqJmZ2VRI SAji1q1bq97e3lIyMjJ7Pn78eDs0NNTd29v77vr6utTCwgIWDAYv+vj4TMvIyCjKy8v/aW9v7+vs 7NQhk8mUqampLzdu3PABRURE7PX29hZ5enqWP3r0KO+///47KhAIxk+ePHkzMDDQ6eXLl7O5ubnk wMDA77m5uXry8vLoioqKzfLyckxRUdGqmZkZe2trC0AikRyRSASqrq6OBQCALRQKgdTU1KtQKFTe zs6OJSkpyWKz2ZzKykr1tra2yatXrwrS0tKss7OzFf78+VP/+PFj5OnTp2U9PDzYMBhMb2hoiF5e Xp574MCB1La2tsVPnz5RcDjc8O/fv3Wjo6Prnzx5YnPo0CHukSNHQNPT0wCXy7WMior61tnZuScn J6d6cnJSMjEx0V4kEmHHx8eLZWRkZP9tqrERiUR8OBwuio+PzzIyMhLs27dv08rKas/m5qa0ra1t xd27d/3Gx8cXoFAoIC8vPxUTE0N5//79CS0trdGuri5JCAQiWlxcREtLS+OQSORYf39/P5VK5Z09 exY+NDRkAwKBwAwGYwGJRHLb2tqW9+3bF7q6uvrznwEHGBkZmW5tbSVGR0db83g8EAAA1KWlpa6f P3/KHzp0KLyysjLLysqKMDg4yLK0tNzd1dVVp6amRh4a+j+azvuf6vf/468zOIMzOPY+5rGPvbdk E00hhQqRSkkl1VtLiVISKQ1FA1FElJ0tHXs79namc5z1/eHb5/oTrh+u63F7PJ7P+2MoQ1JSUqym pka2uLiY1dzcfG/v3r2ZeXl5LAwG472wsFDY3Nws4e/v75SRkfEyODhY3snJaery5csKs7OzUHFx cZ6vr6/U2NiYyLt377aCg4MhFhYWIhkZGfVOTk6cyspKaGRkpPnQ0NCKg4ODEYPBAGOxWE1VVdUR EonU9vbtW4njx4/v1tbWbhgeHjZksViQnp6eUjgcvjg+Pk4UExPwgvEEAAAgAElEQVQT2rVrlz2R SPxaVFTELCoqwgMAAAQHB0tHRERshYeHNwkLC4N27dplLCUldcDU1PRxaWmpPgwG4xsaGk4tLi7G /fnz54GysrI6h8MBhYeHL9TV1anV1NQMj4yMoOzs7CRLS0s/JSQk+DU3N28pKCiIqqmp7aPT6S9F RUWPvHnz5lRAQICHh4dHr4SExPKnT58SKisrP+nq6oooKirqTUxMrL58+fIvjUaDP3r0KKy6urrw yJEjUlJSUgxlZWX28vIyPTU1Fd3W1kZNSkoyTkhIWAoJCcEgkchlISEhwdOnTx9++vTJ9evXryAC gYAIDw8Xevv2bdKLFy9e+Pn5qYmKivJ2dnbE19fX+6SkpAz++++/iVevXpWVlZUZqqioaHC5XHh7 e3tVa2sr+8mTJ5jW1tZVIpH4pLm5ufjPnz+koaEhqevXrzuzWKzfPB6Pg0Ag1CgUymZxcTGKRqO1 gcFgwNPTEw8AgNDY2BjV0tJSW0FBYTMuLm4ZAAAgJyfHrrq6+mddXR1pYmJCytbWdv3Ro0eHUlJS OnZ2dvhbW1vjBQUFe6enp48sLy834XA4JZCWltadZ8+eYRwcHILX1tZC3r9/z9bU1BTY2dmFODo6 8js6OjwdHR1zAgIC+jw9PVfwePyLiYmJ5qdPn1bHx8cfERERYSclJdVoamquR0VFGV25coV79epV SXFx8cOrq6sNi4uLIwQCgXjjxo06OBwOTk9P13n9+vX4yspKLwgEEggJCYEWFhYgXC6Xdvbs2Zh/ pR4DLS0tk+rq6j9fvnzpZ25uPpucnHwkLCzsVWlpKXn37t32u3fvxoiIiLCFhYVZ5ubmewoKCgrT 09NRIyMjxsPDw5UGBgZ5bDa7y9XVtaGurk45JyeneGpqipOamnqIx+NJX7ly5UZ5eXk8Go1m/fz5 U4FEIrUiEIg1IpFoTiKR2EZGRpbl5eUfk5KSGCMjI9c3Nzd/iImJWZmbm5+6ePGiwfXr11Hfv39X FhcXB7u6uvb5+vr+jYmJYdy5c0f2yJEjBDU1tRA+n883Nzf/TiQSW0xMTBaPHTvmxufzZREIhI+n p+edL1++eHG5XF5HR0cckUiMP3HixKCZmdlsX1+f2dTUVCeNRhM7dOiQZnh4uFZNTU0hgUCgQaFQ aFVVlTyBQNjy8/N7zOFwqlgs1urm5ia0sLBwNCkp6dq/tp4HFy9eDK2trd1VWFhoZWdnpxoaGmoj LS29OT8/j2Kz2aCkpKT2kJAQbHJyMv3169fCk5OTo1AolL+ysoI5d+5cy9mzZ32ioqLC7t27F5WY mPjmn7E6VlNT85zP5wO1tbWMwMBA8bt37y4XFRXtHx8fn6JSqajZ2Vmyo6MjTkREBOnq6grx9/dv 2NzcpGtoaMB37dolQiAQrldUVKRLS0svmZqaXqmoqEjQ1NT0l5aWVrS0tKwxNDRczsvL23/jxo3m qKgoNVNT00IymXyCSqUOAQAAzMzMfFdXV08gEAjwz58/jwgEgm1ra2tLJBJpt7Cw8M7ExKQwKSlJ Ly4u7p6Pj8+FI0eOKPr4+Bi7ubmRXFxcpqKjo12qq6tb8Xi88MTEhIiHhwcyMjLym7OzMyY6OvrW 8PBwXmpqqlxmZqbK+Ph4BwKBkEWj0ZMiIiLWw8PDpbKysrIEAuFke3t79t69ewljY2PGwcHB94qL i30UFRVXHz58SAcAAMBgMEKurq7+KBRqaWZmhrd3796q0tJSJyEhIYq1tfWXc+fOgffu3etmZmY2 0NjYaAgAACAQCICRkZFaUVFRJBaLFbDZbPa3b98obm5udtXV1c3j4+O4jIwMexwOJ6ipqVlBIBDb xsbG58zNza+bmpouHT16VAMGg/ELCws3+vv7Jaqrqx1ZLBadz+fvgMFgYRAIpGxgYPAFCoVuqKur r0A6Ojoi7O3t5S5duqSoo6ODffr0qc+fP39aGhoaaC9evLgIAADi8OHD9L6+PnEXF5cLrq6uRWfO nPEBgUDD+/fvl3769On3mpoaz9+/f/9VVVVdvnDhwvyZM2fshISE8HJyck0lJSWwU6dO4dzc3MLs 7e3NRUVFX2RkZMytrKxozM3NobS0tLbweDysurpa2dvbW01ERMQOh8Nh5ufnl6SkpKyQSCTr0aNH iOPHjy/U1dVZnDp1StPAwGDQ2toaPjg4yLW2tgYhEAit/v5+HpPJXNu7d6+XjIzMHhMTkyhxcXHR 69ev05uamhhMJnMtISEhgsvlstBo9F0PD48TX79+3W5sbLRBIBBYDAazICcnt3tubq5XXl5eKjw8 /Pzw8LAekUjc5PF4Xdvb2z+Li4u7Tp48yVBXVzePiYn5b3t72yshIeGRnZ3dyvr6Osna2hpmY2Pj X1VVVT89Pd0fGhpK3dnZASsoKOASExOJQ0ND5K2trT5paWn39+/fN+7fv19rZ2eHoqGhET05OVkT FhZmpqmpKefk5NQAh8OlFxcXObt374YODw9PV1RUyJSWlqLX19flqFSqYH5+Hi0vLz88NjY2Ozc3 x1RSUkLW1NSgVldXq7W0tCDm5uZrOTk5Hzo6OvSvXbuGnp+fb4uNjZ25deuWQF9f36Wtra1FTExs TE5OTsHLywtOp9OnxsfHhTY3N2F+fn7edDq95+zZs6EgEAhrZ2fnvWfPng/W1taPHj16BGlsbIT+ +fNn0sHBATUwMADPy8vL6O3tPWtsbGzX0NBANjExkZKVlRUuKyub8/Pz+6WlpSUpIyNDpVAoElpa WpMwGOyDjIzMLhkZGasvX778bm5uFvLw8DDbt2/f5L59+5C+vr6LWlpaXh4eHgZMJvO9nJycjr29 fdTs7Gy2tLS0I4PBEAsKCiKpq6t3RUdHq3G53J3CwsIyJSUlzvv370fHxsZMLly4IBAVFQUFBwcb ZWZmfrt79y7/+/fvS2lpaXKHDh0SRSAQYidPntxaXFxsy8zMpH748MHBwcEhGgAAkLS0tAcCgfhl Z2eneeTIEXZ8fPyYmZkZjcFgjFpYWIRJSEi4rK2tVe/fvx85PDzssbW11ZqRkbGlq6ubKycnB4ZA IFpbW1vIwcFBYSkpqa7+/v4qOBxel5ubG/X8+fOHhYWFlJKSEuOPHz/yRkZGqqytrcEkEmnCzMzM 6tOnT/Vubm7NSkpKQenp6XMYDGYRiURqX758eZlCoWgFBQWJYDAYKRERkVkAANgQCIRhYWHxbnBw MGT37t2mY2NjbVwuVwWNRvcaGxuL4XC4Vx4eHnICgQC9sbHRxuPxyHFxcS6RkZF6mpqaaHBQUNBs bW3tBxQK1RoVFVWMxWL1PTw8Dj1+/FgzIyPjBAAAfAgEIvj06dNGfHx8IY/Hg2ZlZSVDIBCD+/fv 08FgsHtcXFxiQkLCCVlZ2eNDQ0PRYmJilJCQkBMnTpxo6+7uVhYWFpYBAIAZFxd379u3byp79+7l ZWZmih85ckRdSkrKWk9PT0NGRgbZ09NTX1FRcW9wcLDYxcXFEo1GIw8dOhS8tLQkm5WVZTAyMqLU 1NS0NTMzY/X+/XvEr1+/Jv39/VVfv349qKqqivr8+fNdNptdzuPxNrq6ui5aWFhsolCoBCcnJ/Od nR3C+vo6lEqlQgAAMAAA4GNDQ4MJAAAAFApVlJCQCKdSqcP6+vq7YTAY/NGjR6enp6epP378ULGy slLa3t6W7u7uVjxx4oRhSEhIHxqNTk5LS/uspaWFxmAwyMXFRXUUCnX85s2bTb6+vjJWVlbKDg4O P6ysrBppNNokh8MBPXjw4Iempqbz69evA3bt2gWQyeQcJBIJX1xcfO/s7FyBRqOnBgYGWsbGxpAA AHD4fD5jc3NzZH19fdjExAQ8MzMjHhoaOjowMIBLS0u7TKFQUC0tLTuKiorbFRUVi9HR0Qh/f397 HA63SiaTlzs6OmDKysqThYWFI4GBgbHHjh3TP3nyJF5JScl7z549dZ8/f1ZbWFhYVlBQYPn4+Mwt LCyIBQcHH83JyfFLSEgIWF5evhAQEPDEx8cnf21tjff27VtrHA435+/vT2Kz2XAMBsNxcHCQAwAA eP78+SSDwZDS1tZua2ho2MjIyOh0dHRE2NjYGOro6BCdnJws4uLi0gsLC/HNzc2H19bWcj9+/Jgl ISHx48qVK+5cLpePxWIFv379ArPZbOXBwcEz29vbm0lJSfzDhw/TFhcXn7e0tFCam5tJs7Ozy5cv X+5PSkrSzcnJWbKxsSGdO3cuGgAAICwsDGlmZjZ49OhRkdbW1sbo6OjinJycK/7+/uC8vDyJoKCg JQgEAvPw8Jgjk8lyUCgUSEhI2Jqfn58tKyv7Nj8///PixYu3+Xw+bHNzUyQ1NfWDra2tLJ1Oh+ro 6BgIBAJgaWnpq4iISGNVVZVESUlJAZfLfQcAAKClpaWyf/9++WPHju1yc3Nbamxs7F1dXYVNTEzs UVNTU3Rzc/tcX1/vSiQS51RVVXdHR0cLj4yMSFKpVJiKiopaQ0ND6+HDhxvLy8utdnZ2avh8PlpI SAgSEBBw7p8Z+HdqagqRn58/HRAQsDY6OroMAAC0tbVV//r168VEIrHf0tJSgcfjDZSVlZlhMBjO o0ePkqFQaJiwsLDt+/fvp5qamvh///6tB4FAgIyMzA54aWmJV19fr9rV1TXv6Ohow+FwBjc3N5dG Rkb0Z2dnFVAoVKWVlVWPkpISVFNTc9nHx2eZTCYvmZiYUKBQqKCurm5NT08vaHt7+wUYDAaZmZml 0ul0eS6Xq9/e3s4KDAws4HK5U2fOnEnLyso6p6SkRPX29ladmJgQsra21h0ZGdmanZ2VKCoqYmxs bICxWCxUSkoK0t7e3l1TU9MPhUK3a2pqaGw2W+rhw4e9N2/ebFdUVPytra0tmpWV5XD//v1vZmZm G2pqam1bW1vZ4+PjSCEhIRU6nT6FxWIJ29vbtX5+ft81NTUpVlZWNAMDAzEAAFb+obujIBAI+H/j uV5eXpSIiIj8/Pz8hrm5uY6/f/8az83NaauoqMifPXtWWkhIiBQdHb3c2Nh4ks/nO5NIJHxDQ4P+ 8vKyyr59+6zAYHCAubk5ZGtrS8vPz+9vfHy8upubG9XX13e2vr5+KTIy0vfgwYPpdXV1OqdOnTJS UFAIYzKZLBgMJrq+vh5mbm6+ZmlpKU2hUDiGhoYEa2truJ+fX9Dhw4eP7Ozs0J88eTLu4eFhee3a NYSnp2eWlZXVIQkJCcnGxkaRsbGxLhwOJ7W2tjbd3t7+QUtLK/jNmzdRMBiMb2pqKunq6jrBYDBA RUVFm1NTU+8gEAglOztbwcLCghAaGtr+9u1b3P3796d//vxZEBwcnPnr16/PCATi2MWLF1mlpaV7 t7a2hBMSEpwPHDgg0dHRYfLhw4dADw+PfRcvXuxWUVGJLC0tjQ0JCWl//Pix0ePHj8UNDAxEsFgs g0wmjwMAAKBQKCcmk1mVnJx8fteuXWIEAuEnGAwWXLx40fHLly99UCi0X0pKat3R0XE4LCzMgsVi WQgLC681NDTs7uvrQ+Xl5Y1AoVDIz58/Z728vC74+fn9JJFINFFRUbaQkJDko0eP/uBwOPyTJ084 SUlJ+C9fvuyIiYlN37t3zwUMBgPFxcVDk5OTTZqamhh/f/9vQ0NDeqmpqddiY2N3rK2tNRobG+XP nz+/PjExsXjixAldKSkpOovFmv3H9JOAwWCGSCTSAAKBAD09Pb1WVlaeCASC7+DgoOTv70+ora0l u7q6GomLi8/+i9J9ExISgN7e3hUkEtk7PT294Ozs3FdZWdmdn58fBAKB+KKioth79+6F3b9/32Zm ZoaJw+GU/uHQbRMTEyF6enp/bW1tk2ZmZq6vra3taGhoqO/evXtWTEwMyuPx1mpra4du3LjRuLq6 iklOTvb/+/evXmNjY//Y2NhCYWHhaTU1Nea7d+/uUiiUaxQK5Y6jo+NqUlKSlImJSXhubm6bjo6O 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 LB4/foxcX19nGBsb9+vo6ITS6fRZAwODvp6eHmNpaWnPrq6uD8HBwZ2rq6vE8+fPkw4ePGhYWVnJ sLKyYnR0dNC3trZgy8vLovfv3/dcXl5emp2dpaLR6CpJSUm5Hz9+9PT19RnGxcWZuLq6zmVnZ086 ODikgMFgMQAARO/du/cwNjZWhkwmI3Jzc8eDg4Nn19fXYfb29vshEIjw0aNHr548eZJAIpFUzczM WCIiIrJoNHp6bW1NXEVFRX1paYn84MGDqaCgIA0ikai5trb2+vbt279///6tNj4+fkRfX3+hsbFx kMfjTdHp9D0SEhKztbW1cpcvX2a2t7f7Z2dn50hKSsIwGEy9uLi4mYmJya7W1tYbVCrVdnl5WUlH Rwfh7u4OoFCowa6uLr309PRlDw8PkJ6eHvPjx4+wqqqqLRcXl2FtbW07CQmJKhMTk6/Ly8tpTCYT Iikpif9flVxTU9P2yspKt5+fn7Wnp+fz2tpa56qqKqkTJ06IXr9+vauzs3P72bNn8VpaWn8+fvw4 /+PHj/GoqCiPurq6Im9v70QoFEoAAIDv4uJS+PXrVwUUCoWNjY297urqKiEjI+OekZFBy8nJwTo7 Ow91dHRc5HK5o2lpaV/t7OwQOzs7QuBLly6tioiINBkYGPjCYLDQ/v5+TllZ2Y2+vj6csrLy1NDQ 0Lu4uLj61NTUr9nZ2XWysrIHbGxsfO7cuZOenZ1NunHjBnv37t3bPB5vrqKi4mRhYaHW/v37vcLD w9/SaDQql8ud6unpeXX9+vW+3NxcnZKSEvj8/PwdAADWAABYo1Ao99LT05tDQkKGwGCwrkAg2GAy meD09HTlwMBADxsbG+uXL19uDgwM3AGBQAqWlpZAfHy8qoeHx7ShoaH16OgoY319fRsMBnM3NjZq 4XB4DxwOl7t+/fqStrY26vbt25fodHpVU1NTroODA4vD4Uxzudypo0ePhh88eFB/Y2NjRVNT8w6d ThfS0dGRDAsLUzI3N1fJycmRn52dHSgtLU35/ft3dnJy8u+2tjZxZ2dnx6WlJcb79++nFxcXHfbu 3esvJCQk+/v3b+fOzs6d2tpaelRU1Fc+nw/e2dnhbG9v183OzrbweDzpvr4+6ObmpnBjY2NwZGRk FRgMvr22tpbO4XAmmEwm4ufPn+3t7e0yeXl53TY2NuIWFhaI3bt3W1dXVxdevXp1FgwGQ8FgsGZB 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 RoYlAACAvb39nrGxsVIIBIICAECgoaFBEQqFrNra2lI1NTVlNBotIhKJOw8dOpTu7u4+FRUV9Wxl ZaVjdXV1/c6dO53Z2dnBu3fvLpqZmcHj8Xi4vb396KFDh7T++++/+Xv37omnpqZu/j/pEQqF0yAQ CPDw8HgWFRXVOTQ05D08PCwGAGC4pKTkIggEAkZHRzP09fWvNDc33wsMDMTfu3ePam1tLRcZGanc 29u7V1VVNaOiokJWUVFxA4vFkh0dHafu37/fvX379q8AAADt7e0pm5ub0KWlJR09Pb3WxsZGLQaD IYyMjNTA4/E0sVgstbCwMMbhcPTIZLIuCoVa7uzsHPj06ZOGh4cHLzc3F8tisdpv3bpFTE5OHq6s rLRDIpE+k5OTNVJSUpL9+/e3x8XFyUZERFyfmJg4mJKSovPw4UOZtLQ0fl5enm9RUdEFPz+/oxAI RNbPz+/+58+ffX///j1gaWmp7e/v3wE5efJkBJ1OrxgZGQkNDQ1dDA4O9mUwGPMeHh5xMTExP6Oi osgIBIJIJpNh8fHxKxEREajS0tLVmJgYzYSEBImqqqotEomU2b17dzkYDG75+/fvX29v7x329vZe 2dnZVREREQ4AAMyrqaktxMfHh2xtbf1cXFzsRCKRqltbW/ICgWCCRCItjI+PbywvL0NPnDhxhc/n V2lpaaEFAsE0mUy2TEpKGhcKhVsUCsUfCoViuFwurbu7ey4oKKgai8UOuLq6OkxMTDRFRkYGicVi CY/HG4yNjQ3o6emBKigo8KBQqOTXr19FYDCYK5FIjDs6OupxOBz71KlTbEdHR5anp6cCi8WiP3r0 SFhdXd21urq6ODc3J9na2lrIyMiYq6+v73BxcbFIS0vjnjt3Try2toacm5tDeXh4/Jqbm3vPZDIx jo6Oyl1dXSqWlpYz169fn923b5/Yw8PDmkwmQx8/fix6//69Qn9/P5tKpcqpqqoqent7++Tk5Kyd PXtW/vTp02ZCoZDFZrOh27ZtOxAaGnqeQCDsDQkJ+bFjxw69lJSUBTweD6+vr++am5tTKCwshCYk JIwZGxvr6OnpmbBYrGUajQYIhcJNNBrdOT4+DkOhUErNzc3dAwMDoO3bt+tYWlq6cjicCTKZrBAV FfXL0tJSwmaz1Q0NDS0tLCym2Wx2l1gsNhAKheUdHR2Lp0+fnqZQKI5v3759hsFgaObm5sNPnz6l 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 MplZWlqKzM7O5sJgsF9ycnI7XV1dIQUFBTNRUVHG7969W0Wj0a8PHjyYikAgqBAIxHl7eztjeXlZ BgAAAIVCKaJQKIPu7u6LCAQCmJmZsZCSktri8/mr1tbWMY6OjlGNjY0vAACgg8Fg1OLi4ueEhISl Fy9eeLNYrOZ79+69j42NTRQTExM4ODj8dXJy6vn48aNjdHR02ZkzZ17JyMjkZmRkVMrKyroXFxez 5+bmBl++fBklLy+vDoVC11xdXa9LSUlp5ObmhvN4PFB+fn59Xl4eDIvFUmVlZUWdnJwkg4KCjjQ2 NoYTiUTC379/e5hMJjg2Njb43r17s21tbT2amprIb9++0X7+/Gm8srJie+3atdz4+Hi3rq6uKQAA gB07dtgeO3bs1/PnzzEbGxtYaWlpbktLy5q9vb3d6urqLQKBcKa/v3+oqqpqU09PjxgeHr755MkT KJfLFbq7u68UFRWBDQ0NRwkEAsfMzOxeQUHBGygUKoyMjHRXVlbuAYPBQHt7e2hAQMApPp+v9/Hj R/KePXuUaTSawrt37wYHBwfNfv/+Tb937573gwcPislkcr2pqakHDoebiY2NJdvb2+u9evUqvLu7 u9DExMSRzWbft7a29ty9ezc/KSlp19TUVNbMzMzq8vIyR1lZ2QqHw7WVl5fT/1leteTl5bfYbLb2 wsLCqqqqqoqUlJQFDAaDPH/+/EtLSwtkYWEBTSAQKu7eveslKSmJJhAI4jweT1BZWTnk5eVlQqVS qQoKCvv7+/sTaDQalEwmi+7Zs2fnkSNHBvPz8x3n5+dHFBUVVcfHx/vl5eWxAoFgC4VCEWtqauqO Hz8ujsFgpmZnZw39/Pxy9u7dK1NcXCxZVlamTafTjZSVld/Mz8/HX7hw4SKfzwc/fvz4yOLiIkVD QyMEAADg5s2bl3x8fExVVVVZEhISWlAoVI7NZg+Pjo4OqKqq4pBIpKZAIOAzmUwwCoUSjY6OfonD 4XQSEhIu/vz5083X1/dmc3Nzm7W1Na+6uloEiUSqqKurE1AolP4/tgTAYrEW6HT6PBqNVrS3t/9Z VlZWY2xsHAv+/PmzR0lJycnz58+LS0pKLq+vrytjsVh0YmLi9O/fv83CwsJ+rKysUK2srN78+vVL rqSkJPHhw4fq8fHxnyIiInQyMzNLampq5ufm5hq/f/9elpmZ2cPlcpWlpaUvT0xMNF2/fn2TwWCA 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 t8uXL+vKy8sbPXr06M/9+/d1QkJCnlpYWByEQCBAQkLCLgwG0zh27BhteHh4+vTp00KGhoZCIBAI YWZmNhEREREnKSnJFRER8R4YGKgQEhLi3rt3b0pSUlKSx+MtYTAYYXd3d3kajda2tLTE/vDhg5ZA IJhcWVn5KScnd2b//v1LkOjo6KNjY2PDVVVVetLS0tSZmRny48ePT+jp6c1NTU2xYTDY+smTJ8P3 7dunl5+f3+rq6mooISEhOHXqFHR9fV2dTqcLSUlJocPDw6f6+/urZ2dnJa5evUqRkJDYk5aW5kZF RUU5OzvnSEhIiGZkZNzV09Nr6Ovrk09LS7OMiYmZlpGRkVRXVxdfWlrizszM7JSVlWkbGxtT2tvb dxwcHOx0dXUV7t69u5eYmKjh4eExjUKh4CwWi/z8+XNsSUnJHp/P5+bn59Pu3r3LCwkJEcnNzZ17 +/YtZ3d3F5GZmWlKoVDWYTAYcOjQoYNsNlsagUCgYDCYsYKCwmp0dPS/jx490isuLqaoqalBDA0N M86fP28ZFRX1TE5OzhCFQjlZWVllLywsCFlaWrZmZmbOX758ORSHw/XfvXtXobq6euvUqVMBAAAA cDgcx+PxJqWlpTGampoYIpG47/79+3L29va8qampqubmZrCTk5MGiUTakZSUnJGXl4c/fPjQ2tPT Ez8yMsIRFhamcDgcITAYPG1paakwODgIu3XrltWVK1fwHz58EB0dHR0MCgraBwKB5ng83vbY2Jj0 /v37laBQqHx7e/uIiIhInby8/N6VK1d8WlpaYNnZ2epTU1NYeXl5WTk5ubH+/v6poKAgx7S0tNLS 0tJTLS0tK7m5uWYQCGR0cXFx6q+//mptaWnR9fX1RW5vb7Pn5+cJrq6uszExMb4gEKg8MzPTW1VV dVNaWvrdoUOHxNFotGpoaOj0iRMnFCwsLO4zmcxJYWFhqo6OzvWxsbG0hIQEGgqF2rG2ttYfGxub k5eX10tLS+OoqqrOJyYmyuvp6U1HRESoubi4cEdGRsy5XG5/aGio2djY2Pa+ffs2sVissqGhIU5L S+tgX1/fKwkJCQlJSUk1cXFxXn19/QAcDgcdOXIErqCgIOjr60NtbW2N29nZPY6NjV0wNDScLiws 7FZVVTU3NjYWY7FYHGtr69MQCGQtKSkJIyYmhlRQUNhmsViQyclJYyQSyTx58qSZqKjo/s7OzkYj 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 dEtLy+2EhIT7YDBYCQAA4MuXL5KfP3++amdn50Amky0vXLjAd3Fx0Z2dnd1VU1Ojk5SU5KelpVWG wWBWnj9/PnHt2jUDFxcXmb///psdGxurMD8/z0Aikfz6+noKBoMx6uzsxHR3d0+ePn36kI2NjSYM BqO3tLQkdXZ2HqLT6Yy+vj4ABAIB7e3tap8/f2aurq5q2NjYWHh4eLA+f/784+3btzxXV9fPdDrd PzIycurixYvShw4dAnt4eKwIBAIeAABAVlZW2M6dO+l5eXlfhULhfGtr6w8CgQCm0+k6FAplIDQ0 1CsuLo6zvb0twGAw8P7+/go+n29w8+bNU0pKSukcDucGnU6/NTMzIyUhIeFvZWW1tW/fvm0KhdJB JBL9o6KixDdv3iR4enpKDQ0Nnbl3757ElStXpNfX1/sdHBzcu7q60ufm5iCvXr3Sraqq2kMikT4o KChIo9FoNBwOx8bExEQKBIIqUE1NzSlVVVVeYWEhMTo6WqGtra3k7du30o8fPybhcLjA+fl5DzQa bcpisXbHxsZ2ZmZmmv78+bMzPDw8QEZGZjcAAICPj8/Zf/75x3h+fr4uLy/PsaioyPfZs2e5fzTj Rr29vdOZmZk9JiYmuPfv3z8EAAD8/fv3F7du3eLOz88jCgsLZ4hEopOMjIx7YWHhtfDw8PT/9c9j Y2PHZ2Zm1Gpra2vFYrFJW1ubTnt7O1FCQgL06NGjx2Aw2JzBYAwtLy+LhoeHlaKjoy0OHTok5eXl taSrq7vA5/Ph58+f98RgMJZ/ilTGy5cv95w7d+6tvr5+r4ODg0Z3dzfdxMTETU9PT7+oqOhBSEiI 19DQ0ISZmZmrnp5e1a9fv0BQKFS8srIiCAkJwWZnZ3ebmZlZlpWVleBwOGJTU5OMm5ubg7q6OsfX 13fZwcGhZ2ZmxltOTm59c3MTjcFg6r9+/fo2IiLivL29fZu9vb3PH296n7Kycgyfz597+PDhyMWL F30gEIhJcXHx2507dwpbW1ul/Pz83MBgMDAwMPBFS0tL99evXz0oFEqorq7O0dDQOCAUCnkAAABg MBjr6Oj4paGhoY3H443B4XD52dlZVwcHh6Xx8fGN+Ph4aRQKxTl27BgJg8EIHj58OOPn58fQ19fn SkpKJn348OHx9+/fmX19fQafPn1if/r0SWVgYGA6MzNzZ39/PwUEAsGsrKxcDh06lP/3339rotFo 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 7+fPn3lGRkaM4eHhgLm5OeXQ0FAsiUTyMTY2lj537px4bGxsoLGxcXFgYIA9NzdHEQqF2JGREYml pSXJtrY2ZTc3N6yXl1fsz58/JwUCwZaMjIysWCyek5OTU15bW2tXUlJi6OrqblVWVm5oaGgw9u3b J1NQUPD9+fPnr69cuZLHZrO/0en0HhgMJrO1tbXs4ODgoaGhIREfH9/v7e1tNDAwQOZyudtBQUET kZGRhiQSSaG+vr63pqaG5efnJ2hubh40MjKyFQgEC319fR93796tAYFAjHR1dc17enpK/vvvvwQA AIB37949v3Hjxgc3Nze5b9++Sbu5ua3q6emp8vn8nywWa6u3t/cjiUTyaW1tvV9VVbXZ19eHNTc3 by0rK7M8dOgQamxsbOD06dMYS0tLMwkJCa3/Wzq3bt0adnJyMpaXlzdZX1+/KRaL5aqrq39mZ2fv olKpm729vZRr167N8fl8eRUVlZ9VVVXxQUFBG3A4nDM/P/+7qamJsrW1xYPD4ZJPnjz5b2trqz4l JcVCTU2N6ePjM0Ymk3UdHR1Zm5ubUlZWVkMHDhww4/P5M/Ly8uZUKnXMz89vIy0tTRcEAnEwGIzs 6urqxMzMjIqmpmZ3dHS0gkgkGoiOjn4aERHBnp2dNayvrydevXp1BAwGK4vFYoDNZv/68eOHioGB wUBRUdFsV1cX5/379+jy8nIFBAJBFAgEGyKRSHt1dZWmra29IisrqykhIfFHSkrKSigUzl66dOlX WFjYnrKysq8kEmmAzWYj8/PzA2AwGLGysvLXzZs3iXV1dYOJiYnOSUlJtMXFxe87duzwnJqaKgSB QGsIBEI2NzcXdeLECeuampoXTk5O58LCwtjOzs76LBYLJC0tza+tre1aW1vbrK2tRd67d4/233// 2VVWVoq9vb2fycrKKpqYmEDs7e1HOjs7qS0tLepBQUG1qamp6tbW1oC5uTlDV1eXbGJiIuvq6mpJ IBD+Nzc314HFYncTCARhR0dHq4eHBy4iIkIJgUDoQyAQIQwGmz1z5kwDhUJZkJGR2aipqdn95csX CQkJCSAhIaHjn3/+waytrS2ZmZlh8vPzcf7+/v5QKBTBZDJfnjhxotfDw8MyJCQESaVSn3h7e/tQ qdTWysrKvLKysnv+/v6aaDSap6Cg4M3hcOa+ffvWV1xcfA4CgeAjIyMlgoODBXv37nVaW1tTu3// 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 L6RfvHhB2rt3ryAyMjLg6dOnzjo6OrX19fUrTU1N7NLS0lO2trYnvb29n7S2tl6jUCjNAwMDZfn5 +XwfH5+O0NBQ9/z8fGRUVJRgampK3d/ff2llZaVrcHBQtby8HDk9PS3l5eU1eOnSJRk+nz8uIyOT CIfD0aGhoYekpaX7AABotbW1VVJUVITp6uq64nA4YP/+/VPr6+urCARC6Obm1nr16lUEkUiUb2lp MamqqvKrrq72OXPmjEZgYCAKh8Op7Nq1K66np+ePUChcNzAwABsbG4tzc3PJ7969m4+OjrbB4/Fl x48fz52bm8vH4XAN8fHx/gMDA2/V1dWNZWVltxkaGnrp6emp2drahuFwuFEpKSlET09Pi5ycHNfS 0lKdTCaL09LSank8npmLi0tJbm6upo2Njayuri4eDofTFhcXqS4uLhQOhyNhsVjQuLi4k1QqtWpj Y6OdSqWOlJeXF9y6detgRkZGZWJioguJRBp59OiRYnR0NKazsxNJpVKXOzo6ahEIhACJRA7fvn3b FwQCPdLX11fS19dfefLkyRqJRBqPioqyX19fX8nLy4M8evRI2NPTY3b69Onfi4uLK2g0micWi9Wt ra23MpnMGRQKNX/jxo0sV1dXyerqakVzc7PWlStXGnR1dSMuX76sUlJSAg8NDe1VVFRci4mJcdLT 0zPR09ObePz4sTQMBpMKCgryb2trq6PT6bbh4eHI0tLSucDAwMClpSUOHo/HKSoqNigpKXF+/vyJ NTIyKi0qKuKpqakxyWQyOCsry+Pp06fDwcHBqqA/f/5k0el06tOnT403bdrUn5KSkiwSiZY2NjZ6 USiUg7+/f761tTUFiUTK2dra0goKCkzOnj0729vbywwKCronEAgag4ODK758+XLjn70X3tLScio/ P995x44dHH19/Q8kEsnl8ePHY3w+fyMyMtISh8N5Q6FQ2ODgYB0AACA9PT1XFArlsLi4mA0Gg41C QkJKAADQHh0dRfv7+w/fvHnT9MmTJ33m5uZSxsbGBAAAAC8vL5knT560fP36VcPMzEzO09NToKWl daK8vDzH3d1d6siRI5SoqCihq6urk4qKSjGdTn8kIyNzsrOzc5OOjo7z8vLy2O3btzt0dXXlo6Oj LVtbW8MCAwPTnz592p+Xlzf+8OFDMovFOgmFQpm3b9+mEIlE8PPnz/WkpaWp+vr6DKFQCHn48KFq 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 zPbt2/coKyvbnzlz5ktISIgsISFhs4KCwlRSUlL5wMDAptraWp0rV644oNHoeXl5eY2VlZXvpqam 1hwOZ2X79u1kNBpNSEhIaLOysurG4XAkExOT1cjISERWVha9pqbGKzAwULBlyxZFKyurPVAodFlF RUXf1NRUa3l5Wezk5HRxamqqpKioaN7KysocjUZbtLa2vjY3N7/w48eP3k+fPoFAIFCvj4+PdH5+ HlNXVzfT3d2N9fT01Dx//vy++fl5dRcXF/D27dtnORzOZ3V1devu7u74uro6vJeXF/7ChQsBPB6P amlpaYpGo8V4PJ7t5eX1T25u7qy7uzteIpHMcjgc2tzcnCA8PNwhMzOzcWFhYT02NlaByWR+ZbFY S0+ePLH18vKiWFlZKXZ1dbX5+Pis2NvbK66vr8NaWlpQPT09QqlUipicnOTPzMwgIRCInK6ubiuY QCBQXF1dUXfv3u0eHR2V3bhxA3Bxcem8f//+y5s3b3Z4eHi4JCQkBDGZzOKIiIjm+Pj44bCwsBqR SARqa2t7CgAAoKqqKpTJZPMEAkGgoKAwHxsbm7K2tpZHoVAEN27cUFtZWcnKzMx0q6mpMY2Jifl7 69atLaqqqjsfPXq08f37934ulztuY2NT293dbbq4uPi7tbU1hEAgQOPi4qxhMJiZsbGx/cOHDw0M DAwEf/780QaDwTIymWybl5e318HBgT4+Pv7X1NQ078mTJz/Onz9P+/nz55ynpyd7enrazNnZmd/c 3IyYnp5GAwAAXLt2jRgcHDx84cKFsdbW1oMkEkmIRqPlnZ2dlbS0tGhKSkrEqqqqGldXVxUOhwML DAw0+/Lli2FaWtqsUChkv337lsnj8Y4NDw9XJyUliYlEIjU7O1tOTU3NkEQi6VpZWZHy8/MbyWSy bHZ2VhIbG4ujUCgmampqZjQaDXfw4EEHHo/XraysfAmHw2Xo6OhUCgSCMDKZPHXhwoW26OhoTSUl JVJ6ejqMwWC0CYXCjzo6OnVsNnvh4MGDp+vq6r6AwWCguLj4OZVKvW1lZfWPQCDgfv36Vchms+Gx sbFaPB6PQSKRlmUyGainp0dPJpNxNjY2QMrKyiHW1tamXV1drtPT0/Xl5eWdNBqt1dvb+/bNmzdn v337hnZxcUHW1NTU6+npzQEAANjb23/q6uqKKioqypubm9OIjY01SU5OLvr58+fCmTNngvLy8oZR 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 "
- height="256"
- width="256"
- y="0"
- x="0" />
- </pattern>
- <clipPath
- id="clipPath6238"
- clipPathUnits="userSpaceOnUse">
- <path
- id="path6241"
- style="enable-background:new"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-153.46c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-3.9044-0.77514-6.493-2.5614l-13.071-9.0198c-2.2092-1.5245-4.2252-2.5106-6.0898-2.5106l-71.746 0.01z"
- fill-rule="evenodd"
- fill="#808080" />
- </clipPath>
- <filter
- id="filter4375-3"
- height="1.7122"
- width="1.0248"
- color-interpolation-filters="sRGB"
- y="-.35609"
- x="-.012418">
- <feGaussianBlur
- id="feGaussianBlur4377-0"
- stdDeviation="1.0664062" />
- </filter>
- <filter
- id="filter4375-3-0"
- height="1.7122"
- width="1.0248"
- color-interpolation-filters="sRGB"
- y="-.35609"
- x="-.012418">
- <feGaussianBlur
- id="feGaussianBlur4377-0-0"
- stdDeviation="1.0664062" />
- </filter>
- <pattern
- id="pattern4229-8"
- xlink:href="#pattern2719-8"
- patternTransform="translate(-523,-583)" />
- <pattern
- id="pattern2719-8"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="translate(-523,-333)"
- height="256">
- <image
- id="image2715-4"
- xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL EwAACxMBAJqcGAAAAAd0SU1FB9kDFxAdKdJzpbEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo IEdJTVBXgQ4XAAAgAElEQVR42kyb9zvVj///n2c5nH2cw7H3PDjHyMrOXhmlhFJoIQ1NDRXS8moJ URmlkiJEZCRk773HsTk4xz77+8v3c13vx59wvx7X/fZ4XNf9DoqNjXW/cePG6y9fvtxwcnKy2d3d bUpPT5e5f/++jKOj4/zMzAykvb39OvA/Mzg4eO/u3bsiX758uRoUFBQbFxenuLS09AcAAAACgaj8 /v279d27dybfv3/HjoyM0J2dnb3QaHTdhw8f2FAoVODq6moXGhr6LzIyEkkkElFeXl5VdnZ2yj9/ /mz98uXLnqampi5zc3NRLpfLIhAI+lwuF1RbW1udkJAguru7Ozo5OUnE4/GC+vp6rYqKiraYmBiF hoYGibW1tY6TJ08q5Obm2mVnZyfeuXOHbGpqCi4qKrrGYrFqJCUl+QMDA4Lh4eEhRUXFbSwWK5OQ kJBz7tw5HxEREfXS0tKM4eHhaW1tbUdRUVH2wsLCjouLi2N+fn6+gYHB2vv377sfPnz4Z25uLgsA AODNmzftsrKyyrq6umuZmZn4kJAQPhwOn7a2tqaUl5fjPDw8msvLy+lMJpMhEAhk6+vrZb5//84r Ly8nbmxsiG5ubrZJSkoehEAgqM3NzRwMBnMVAADg8uXL51dWVjAzMzPiEAikrrS0NJPL5SZ0dnbK 4XA4DgAAwIcPHzrd3Nz4kpKSpLa2NoaHh0dCQUHBRzab3erg4CDL5XJVa2pqGgEAAI4fP67q6elJ 9/T0LKZQKAokEunU/Pw8zcfHZwYAADqXy4VEREQMWVpa2h4+fPjTjx8/jly8eLHlxYsX9ktLSzBR UVFBfn7+EJlM5uvr66u5uLhMFRcXk//8+fPx3bt3JgQCYXZ5eVmRy+WCXr58yeJyuYju7m5GRkZG X21t7YexsbHXHA5HuKur60tBQYFqUlKSBRqNtpyZmfkrKytr5ebm9iQsLKzj9evXejo6OsSenp7x xMREixcvXvQdOHBgE4VC6SclJY09efLEKCEh4U9paalaWloa9+TJk9Ctra1VOTm5kRs3bpRQKBQZ T0/PIyUlJZZJSUmFYWFhFAAAVK5fv/67pqamVUtLSyY1NVXfycmpFYVCid68eZMEhULniouLp729 vd1YLBbTzs5um8VimTg5OdUGBgb2pKen61hYWDRMT09jnJ2dpy0tLa2ZTCbx8+fPIBAIhPDz80MS CAT0rVu30m/fvk2ZmZnphcFghmw2mx4ZGYmVk5Obh0AgwO7uLl5RURH048cP0Zs3b3L37t2LwGKx VBAIBMnLy8vicrkjXl5egXNzc0BdXR1LTU0NkZ6e3h4cHCyemppaVVZWdkRLS6ustLTUFgAAjbKy surl5WU4DodD4XA4nq6urjKRSLQbHx+/R6fTxSgUipmfn19tXl5eeEdHx53+/n4FTU3NDR6Pt8Nk MqEwGIxjamq6DywsLLyvt7f3h6+vb/zGxsYyBoPxcHd3b1taWhoXCATCCQkJm4mJiU8AAAB2dnZ+ mZqaXtXQ0Ljx6tUrZltbW050dLQyk8n89e/fPwMXFxfX2NjY/ra2NiqXyxUiEAgEISEhyYWFhQEw GMzT1tZeNzU1JS8vL89FR0cT9PX1uQAAAIWFhWRra+ttExMTBRcXF/Dr168lFhcX16OjozFIJFKt qampfW5ubuz69esiOjo6s83NzXLPnj0jMRgMWH19/WJwcLAkBoMJbW5uxoPBYGBgYGD01KlT9+l0 +o0fP374jY6OfvPw8Gjx9/evJJPJm+Li4quSkpJ2kZGRo1wul/Ds2bOqlZWVUScnJ+MTJ04c1tHR 2a6pqWkmk8nrbDa7YW1trZVAIDjExcW94HA4PRkZGZ0CgQBEIpHWQkJCwvbs2XPr1atXYTdv3hwl kUjKERERm6ampuK3b9+uOXr0KF5BQeGMjIyM2+zsLMfAwGB0d3d3GAKBLMPh8D08Hm9sZWUlpqWl Bbe7u/sMAACgtbV1aWhoSM7Z2bmruLj4qaam5r3u7m6hPXv2eB0/fpxVX18/tbq6ugaFQmXxeDzV 3d39EovFSnV3d7dRUlJaxmKxkQQCYb+Xl9cDDw+P89ra2vWNjY3D//33n1JPT4/ZoUOHnoyNjb35 9+8fKC8vz/r58+eSfD5fWV5efvfHjx9HrKysZgIDA6k0Gm1IT09PQ1FR0TogIECFQqGoS0hIHKFQ KKtGRka9JSUlyxAIRHDhwoW1z58/K9XX1/erq6sb3b9/X8BgMFZ+/fp1ant7u/bChQtTRCIRl5CQ QG5qahKampoSZrPZ5VwuF5aTk1OYmpqKNDU1Ne3r66OfPHlSMDExgWUwGBu+vr78xsZGpXPnzi0u Ly/jnj9/Xt7V1SWnq6vbf+rUqa35+XmR1NRU/IsXL2xIJNJTeXn5m729vSYsFgtSVFRUU1BQ8NbP z68jPz9f5dGjR4T379+r2NjYJDEYDExpaekDMpmsSKfTcb29vdISEhJNampqSt++fYPV1dU15Ofn O3l5eYVvbW0Jr6ysyL18+fKypaXleTabjaTT6atwOBy2ubnJ7uzs5HI4nPWNjY2l3t5eFoPBULWy slKIjIxUEhUV3VZQUOBFRUW1cTiciStXrjSFhITsvHjxAofD4agjIyM0GAzG9fPzu/X+/Xu7qamp t2w2ez44ONhZXV197NChQ4CsrKxkSkpKWH9/P7GkpCQwNTV1g81md2AwmA4MBsM+ePBgiIWFhQIe jycAAAAoKSlFI5FI4YmJib+Dg4OdeXl5sUgkkksmkyeZTCaHSCQyVldXtx48eAD8+/evCMThcBpp NNqkkpLSYTab/ZNOpzOGhobmFxYW1iQkJEBRUVHK5eXlkggEYgEAAKeKiopsBweHy1tbW24iIiLJ x44dK8jKynL+/PnzaycnJ00HB4eN/v5+7UOHDnU+evSI29XVJZWQkECLjIyU+/TpE83Y2FhGQUEB 7uLicuDPnz/fiESi8Nra2pqGhsaWi4tL38jIiIuuru6ijo5O8YULFyjz8/NrFhYWSf+felfExMTG T58+rW1nZ1dtYWEBy83NPYrH4zd5PB4jOTkZqKurq923b981YWFh/tLS0hoSieRlZmauOjk5bVRX V4+Zmpri1dXV/WdnZytGRkamOzs7VxkMhtDt27ePxsfHZ6HR6Ok9e/bs0dPTM+fz+Z15eXlQXV1d oRs3bvAgEAi3oKDAaXd3d6q2trYtIyMD9PXr1zt0Ot1DWFhYjkaj/Xv9+rVqXFyc58WLF3uZTCbz 06dPx2Ew2HpJSckfKpVKGh0dndPW1ibBYDAMHo8/kZ2dHVVbWyv76tUrDAwG89fT03skKyu7i0Kh GiQkJKS2trZgycnJvgAAACwWa3Bubg5ubm7e3NfXp/n06dOJK1euKKyvr+OMjIz409PTpkJCQqjF xcWB3Nzc/PHxcQMdHZ0mHx+fA58+faqoqalZS0pKckQikVJv376N6+rqEl9dXZUMDw9f0NHRsd7Z 2QEfPHhws7Ky0mxwcLDs06dPHS4uLuomJib2AoEAOHjw4IOjR4+u7t+//8bW1haYTqdnjI2NCX3/ /n0uMTHxbFZW1mcbGxvliIgI1KNHj4Q9PDz4AAAAbW1t2ObmZo6ioiJHSUnJFA6HWxw/fty5qanJ Fo1G05ubmx8WFRWdNDIykkahUBLe3t47cnJy2SkpKQmtra0jo6Ojr8lk8lERERGx+/fv/7l3757+ 5uYmGwQCCfLy8lBqamqM9vb2oczMTDUfH5/erKwsl9jY2A8nT560RaPREXQ6PXllZYVbVlb2t6Sk RMrOzo7b19cn3tvbKyQiIrKVnZ29HRgYKP7w4cMZCoXiVVZWNm5tba1kZGTEevz4cR2NRkNbWFio j46O5uvq6u6Vl5eXNzMz+11UVKR4+PDhQXd3d4vKysqJvLw8Tycnp57FxUVUd3e3gZSUVHF6enpd SUmJyKNHj7xoNFoXGAwGZmdnRczMzMyUlZWn5ubmXGNjY7+2tLTM8ni8+aSkJMuxsbGRL1++MHR0 dPAPHjwQHDx4cDkuLs4PDocLIBDI1vz8fCUAADPa2tquDAbD98SJE65v3ryJ2NnZ+bC+vq4lKyt7 IzMz831RUVFNenq6i7a2dv/w8LDp7OxsU11dXbuqqqohDofjhIaGCoNLS0szlZSUfD5//vxISEjI hc/ng5hMJkFLS0vF0NDQ88iRI33CwsLyAAA43bt379729vYgAAAAn88/Wlpa+uLjx4/Ok5OT9Uwm UzMkJETA5/NBAACsOzg41L5//76Ky+WyLSwshjw9PblOTk5toaGhfuHh4UgWizVoY2PjpKGhoS4i IoJiMpnQf//+nRwYGJi4dOkSuLGx0ZlAIIhpa2tbJCQkJAIAAExMTGj6+/uHKSkpNZmbm8PBYLBO VlaW0M2bN3d0dHRmHz58uM3n8x0zMjJKX716VYHFYmXgcLhcY2NjuYKCwj4kEmkAAABw7969+nfv 3iGSk5MxZ8+ePUogEIwpFAr9+/fvYkVFRXJWVlaxGAzGCQKBGGdkZLSurKxAkpKS5u3s7KoePXrU UlBQsHr8+PG9ly5dWlldXU3f3NzkIhCIAAQCoSslJaX169evosTERK34+Hjk9vb2AIvFYtnZ2e3/ 77//eCAQSAUGg01gsVivzc3Nb8nJyVrT09MT8fHx+ZOTk486Ojqu8fl84M2bN5FRUVHOXl5eJC6X KwCDwTqBgYGzycnJLTIyMj1VVVU1PT096mQyGXBzc+tJSkriQyAQUHNz84mampqSiooKI1tb21Fj Y2NDYWHhwc7OzlV/f3/J9vb2ip6eni+Dg4PODg4OWy9fvtSNjo62bWhoeB8ZGVnT0dExFRISkpOU lLTa1tamaGhoaGdmZjadlZWVHRMTs7Vv3z7vgYGBvtXV1fKtrS1We3u7mp2dnfzc3Nywj48P1dbW diAlJUWeTqeD2Wy26tjYmF15eXnH48ePB75+/YqorKxsHR8fv5eXl3dNTU2tB4vFIgEAAKSlpcEe Hh44gUAA2Nvb9x0/fvzA7Ozs6Pz8/PrW1lYYk8kEfH19q/r7+wUmJibzISEhyJGRkQp9fX3hzMzM sdLSUqv9+/fDBgYGnLa3tw+NjIy4oNHoiN3d3Qoej6fZ3t5Ow2Kx0MHBQcOlpSX2jx8/1lVVVfmB gYEDvb295JaWFlFpaWmlp0+fvoiJidl89uxZF4FAaMrIyEAjEIg/P3/+LPf29k788uXLDovFAhcV FbmsrKzgAQAAjI2Nd8PDw/EqKiq0qqoqy87OTsW6urpENptNCgwM9Hjw4IFDfHz8kKamJgqFQhE0 NTU3ioqKBrhcLvLVq1e5N27ccJ2enpZzdnZmSEpKaqqpqam8ePGiIygoyGxyctL03bt3GyIiIgJl ZeVPNjY28xcuXJDg8/nW7u7uCzIyMimOjo5Ow8PDpQkJCXgcDidBo9E+5OTk7H79+vVeZWXlQEFB wfbnz5+LFhcXx0xMTNwMDQ3denp6ph0cHDohnp6ex37+/PlCT09PdWNjo7GwsPAvh8MBKSsrQ548 eVJ+69atUIFAIAICgaBHjx4FdHV1lzAYzKC0tLQzGo0GLl++3OPp6Tnh7OysERwc/Gd1dVVJT09v qaSkRCUrKyvpypUrH+7evasaHx9/QkdH50BcXNxTEok0RSQS6ZKSkmIQCARHIBAwAwMDa3A4HCQj I3NMQ0PDIDMzs1lcXFxYSkpqXUJCYmF3d5etr6+PSklJgUKhUI0zZ84Ya2pq1p04ceKvra0tJT4+ XpNKpY4QCARoa2vrIpfLVXN0dPRubGzMPHfu3KUDBw7EnTp1CisjI+OmpaXVJysrm+3r6yuHxWK1 jY2NxcLDw43CwsLMxsfHV6FQaK+EhMTq+Ph4bVVV1WxQUJAYl8tF2tvbH9HW1hbT1dUVU1VV9bW0 tDzMZrNxf/78YWCx2F0AABZcXFy8aDRaLw6Hk8FisfM4HE5vamqKgcfjcbq6ukt9fX0TbW1tUltb WwVgMFhlcXFxo7y8HLuxsSHi7e0tyeVyW0tLSys9PT1Nm5qaWqhUKmh1dXVmdHS0a35+fgYOh2se PXp0a3V11fDt27fyioqKawgEYoVGo3UbGRlto1Ao5rdv39T19PT6z50755qQkOAzOTmZ7ePjgxQV FUURiUQTMBi8MjMzA7KwsKgTFhY2DwgIAF28eFH3+/fvvqdOnVpDoVAkCwsLVFRU1Dk4HC5y9OjR 76GhoY4gEEhoe3ubR6fThZydnVlZWVnSbm5u83Q6XbqkpGQkKytLOCUlRfvLly//1tbWZldWVhQd HR2ZGRkZxYuLiyA9PT3pvr4+WH19/ayMjMxITk5OpIyMTBkej9/p7Oxc4PP56LW1NVBoaGhcbW1t b1tbW9/Pnz8J+/bt43A4nLfl5eVaEAhkZGZmRtXMzGz42LFjEpmZmY3v3r3z//XrV1VERETL3bt3 nzQ0NOSfOXPmeHd3dxKNRvs3MTGxfvnyZTkfH5/t0tJSwtLSkjgIBFq4e/eulJqamlpxcfFEV1fX 1tjY2MjY2BhAIpFkXr9+Hcnn82vS09OVYmJirAYGBv5MT08LhoeHIRQKZeb8+fOFWCyW9vDhwxvy 8vJytra2gvj4+PHCwsK5sbGxvLy8PPXx8XF+Y2MjcmJiYoRKpcoNDAxMAgAAIZFIFDk5Odrw8DCD SqUiysrK3mtqak6eO3cuMjw8/L2Xl1f+x48fSaqqqhpsNpvz+vVr7NWrVylubm7YnZ2d9cXFxdWy srLNra0tgZiYGC8gIIBOpVL94+Liprq6ukSam5u3VFVVeYaGhsjKyso/7u7ul1ks1jIIBJJEo9Ew DocD19XV1TQ2NtaHsFgsm7GxMVkej9eTlZWFQiKRHBqNtgKBQLqamprQRkZG7Xg8XndxcbHuzZs3 XG9vb7S6uvoWk8nsl5KSOunm5mYIBoNJ9vb21dPT0+vW1tZye/bsgfX19e3Y2NiUyMjIgLOzswkO Dg66U1NTP93d3cPCwsLq4uPjmUJCQodAIBDawsLi961bt4iXL19+iMPh1sTFxQeUlZW5u7u7EGNj 41AGg7GgrKzszePx6q5cuQJFoVA/XF1do5BIJMLMzEytsLBwTSAQwL28vJZJJJKgq6tL6MmTJ7eU lZW/3759W3xhYWGERCLNGRkZ+XO53G4hISFMbm4ulU6nT/78+bNRVlZ2DYfD6aSkpFy+evXqlZyc nCIoFApRUVFRfv/+/ZiZmRlFTk4OBIPBpDEYzF4DA4MGdXV1gb6+viyNRiszNDQ8gUajFYSEhIxY LBbj8uXLG+3t7dwjR44c4vF4PWg0mhwREfGHTqd3UygU6Z8/f06cP3/+VUhIyEcZGZnNEydOTG5t bYkNDAwMWVpaGhoaGiq2tLRMDg0NidTU1JSWl5ebWFhYSHA4HAyVSkWfOnVKiUwmv9fS0gIbGxsL v3jxwsTf3/8mAABTOByOZGBgMGBhYXHg1q1bdsvLyyk4HI749+/fTX9/f9D4+Pg8AoHAOjk5SXI4 nKa7d+8qEYlECB6Pr1ZRUVGj0+kMJpM5NjU19VtJSYl59erV7idPnrBbW1vXjh49Gsbj8Xpqa2uh KSkpsunp6QpxcXG7paWl6LNnz/L19PSg4+PjwLlz566i0WgInU6vsbGxITo5Oe2Fw+ECBwcHsp6e XpOpqSlIIBCsKCgobA8ODnbBYLClBw8e8NTU1ORcXV05WVlZTUFBQc4XL15cMTExYdjb2yv8/PkT VVxcfKSxsRF74sQJXHl5+XZkZKSliIhIVXBwcDCHwxny9vZOZzKZmRMTE7/y8vK65ufn18+fP6/+ 4MEDclhYGHtoaCj38OHDhlNTUxlIJFLGzs5OmEKheKqqqgptb2/Px8XFWbu7u68GBQXFz8/PB5mb mx9YW1srNzAw2HB2drbKz8+fW1tb2/7z5w/HyspqNy8vj/v48eOpubm5b9bW1quysrKIgIAAmYWF hYmurq75mZkZ6a6uLvrz58/Fvb29hYyNjXUWFhYW8Xg8vKmp6Q+NRlOqrq5ufPjwoZKqqqr4p0+f Zu7evbu9vr4eYGhoSC0vL2+OiIhYMTY2XtPW1oanpaUt7uzsgKKjo1s5HI7KjRs3ljIyMuYiIyMB KBSafe/evS4rK6vNra0tmaCgIHEhISFtExMTVxAIhD9+/PhkVFTU0ZcvX9YrKCiwvnz5Qu/o6FgB Ozs7byCRSGB0dFSZQCBw/v85BhQVFZGYTCaCzWaDREREZoaGhmosLS3pfD4fwuVyQcXFxesAAABO Tk6RHh4e6cePH1+sra1d9/f3L0pMTFzS0tJirKysCPX19bHr6+uXW1tbfz969Kh7fHw8x8PDA/L5 8+d1Op3+mMfjzSsoKKS6u7tPUanUA/r6+mh9ff0lCwsLRR8fn1MrKyuv8/PzazgcTuf8/DwLiUQ6 ODo6UgEA2J2dnW1bXFxcgkAgQtHR0YCOjo4inU4XGh0d7Wtubn7m5eVFr6ioqL958yYjPj6eWFpa 2gEAAHDlypXszc1NaFxcHAiHw+0qKSlFLy0ttbx9+1YkNTU1RVhYWPzr168CFxeXsvj4eDCRSKzG 4XChQkJCptXV1Sc+ffqUde7cuVd8Pp+wsbExtH///vzZ2dlfhw4d+g2Hw6XT09P179+/rxIfH/9a IBDI7+7u0mg0mtDk5KTCyZMnUSEhIWoaGhqf8/Pz73V2dtZIS0vzHz9+jB0eHlaOiYlpev36dbmb m5uPl5eXqIKCggWDwYAbGxtjBwYGOFpaWrDExMTKly9f+l26dMlWXl6+fWNjY62xsfG9l5fXEpPJ hDY3N/PT09MbFhcXz4BAILHi4uL5xsZGellZmXZKSsrVkpKSnaWlJaHi4uIId3f3wv7+/tzQ0NA7 IiIi/MbGxrm8vLzhgICAyzweT6erqwtjaGgIl5GR2Ziamnpub28PP3nypG9jY+P6jx8/eu3t7cnX r1/Hf//+XaSzs5P18ePH9YGBgSppaWnww4cPbyORSJGFhYUOCwsLvaSkpEkVFRUZMBgs7OjoqLu4 uChEp9PlSCSS38ePH81v3LhhOzg4yC0sLNzkcrlr586dg0VHRzu+f/++XUNDg/z27dteGAy2qaqq aurp6YmpqampO336dMj6+noBnU7vfv/+vR+DwZgTERHBZmdnc7e3t/+2trbSrl27Vu3s7LwrKSmJ MjMz44qLizt+/frV4dmzZ3LGxsbtcDicb2hoKMNms2u4XC5IR0fnPJPJ1Ozq6mqJiorySktLW75/ /37O3NycTF9fH+natWsTwcHBkSkpKdIKCgoTlZWVVGtraykXF5ejXV1dLcvLy8qGhoYzKBRq5/bt 25uamppz/v7+iOTk5OShoaExPp+PRqPR4teuXWvKyckRTUlJgUtISIwxmczVlpYW8QcPHuQJCwu7 S0tLI48cOQJua2tTcXR0FDCZzFEkEjk2ODiod+LEib1EIjEwICCAvr29jTpy5IhYbW2tN4FAQFRU VOxKSUnthIeHJ/L5fOD+/fuvGhsbVblc7mBERATYxsZm+8iRIzA/Pz8kRE1NzTs1NdXUxcVFEY/H F87NzaFCQ0MP+Pn5uYaHhy/Nzc0plpWVtbq6uqpZWFgI8Hg81MPDQ/zbt2/no6Oj71ZUVOhtbW2N LS4ueiclJa1nZGQcMTAwGPj79+9YQEDAurm5uYyTk9OUiorKvpmZmRFHR8dzxsbGtXv27NlpbW2V RKPRw87OzlIUCgXU1ta2RaVS5ba2tr6trKx0+vn5DfH5/E1zc3Pd6enpWWlpaYyGhkbNnTt3bMBg MPHr16+V+vr6PDKZLM3lcgEWi6Xw4MGDT4WFhT+vXr36eGlpSefMmTN98vLyYiQSqdbf3z+woKDg iY+PTxAcDh8IDw9Hb2xsmN68ebPB3t4eIxAIhvF4PIFMJjN1dHSW79y5c14gEAzv7OwsiYuLH8zI yLhsZmYm4ubmhuFyuV1MJnPTysrqyrFjx3SnpqaG09PThV6/fj0LBoO3KisrJ7q7u0nu7u6ot2/f fhsdHZXV1NRcVVRUnFBWVsb5+Pjs+Pr6/vPw8OBgsVi5jY0NcV9fX8jZs2d3Jicnhfz8/EDS0tLm zc3NyxcuXJgZHR3l6unpTSQlJY3k5uaq/v79ewMKha42NjaCg4KCOJ8+fdoSFhZG/fv3bzsoKEhX QkJCVkhIiCwmJqZRUFCwER0dHY3BYNSHhoa+vHv3TrS+vp6RmJh4em5urlVBQcHo4sWL2fn5+W0/ fvxASEpKytrb2zPu3r3bbGpqiqRSqWIiIiIQgUCADQgIaBQIBFNEIhEqJSWlZ2trOzg4OLh+9OjR LlNT04tlZWVzVCp15e3btwN2dnbmXC4X4uvry7lw4YJRSkpKtrW1tTwej0cqKir+/vDhQ2VPTw/5 +vXrpzY3N1ePHj1aJSEhMcVkMrfDwsKE3717p3Xy5MncBw8e+DCZzFkhISEEiUSSFwgEPD09PdnQ 0NDSX79+bTx//nzPhw8fBDo6OoR3795x7O3tFRwdHQm5ubnyLBaLQKVSUT09PYLh4eHG/fv3a+vr 64vR6fQ5LS0tbmJiIkhVVXXDw8NDd3d3tyMkJMS0pqbGfW1tbdjPz49x7Ngx6fT09OXHjx9ToVDo bHd3NyEiIiLs4sWL2Z2dnTJEIhG6ubkp1drayuLz+V/27NljSKFQEA0NDQpPnz5VRCAQf06dOmXl 4+PD4HK57YqKirCmpiaanZ2d5eLiYsuNGzcMQ0NDU4eGhpzfvHmD6+/vX/rz5w90cXGxcnR0dPf6 9etREAikNDMz01pcXLzX39/fOzAwsG15eTkTBoOBbWxsFFxdXVevXr2aUlhYmOPu7n4FDAaP9vb2 srS0tGBmZmaiq6urbZKSkpXOzs4n+Hx+a0dHx4/9+/frZ2Vl9UEUFBQOOTs7i58+fbrQ3d1do6Sk ZPQJBRsAACAASURBVNHOzo4wNTXFuHz5MjwzMzPRzc3teHR0tIqCgkKnpaWlxtWrV/Hz8/NdDx8+ 3LG2tm46duwYUktLa1RWVnZ7ZGRkJyQkRHZpaYknKysLpdFoyPb2dmRnZ+dwUFCQBxQKlRIREbGE QCDOioqKxpWVleXa2trWdDr9N4vFmhYWFt6wt7c3UlZWlnF1dUVaWFiYJCUlrQIAQN/Y2Bi6fv26 po6OTr+qqmphSkoKWkJCAsxgMMZiYmJ2//37N3PmzBlubW1tNwAAhktLS+9VVVWt9uzZQ83Kyppq bGyskpWV3Xz58uXs5cuXQ5BI5EJJSUnyixcvzgYHB/+dmZlBq6ioEKWlpbcAAABtbW292rNnD9rD w0O4ra2tCYFA0A8dOqQ0NDR0bX19fUJWVnZNVFRUKycnp7K6unr49u3bGF9fXyKFQmlraWnhJScn U8BgMAuPx2ucOHGik8fj1WZkZGhmZWVR3dzcunV1dSvj4+MVqFSqmImJCSI7O3vZz8/v7YkTJ9zA YDBfXV29qbCwUC8rK2v+xYsXMCcnJzU9PT2Mi4sLMiEhoX3//v1HP378uNTX10c5evRoGwAA/Hfv 3qmIi4sfEhMTU5+fn+8eHh6egMFga9ra2qZ37tx5VVlZOSElJTXV0tJCjYiI0Ozu7qZVVVX1DgwM sCIiImBNTU3bKioqzV1dXTBZWdltKpVKhUKhO2JiYvBz587lIJFIGT09PfLi4mJbTk5Os6GhoWpm ZibT09Pz7MWLF9+kpaXdJZFIGCMjI0p5eXkIEoncUFZWZq6srKwEBAQQ5+fnUSQSSRcOh08XFRWV mpubtxKJRCkMBqMvJyf3u6ysbGlxcXHt5MmTop8/f6708/PDq6qqBkhKSkI3NjZmoVDoeGtr6z9F RUU5DQ2NtdOnT2sXFBTQ1NXV0SkpKWNzc3Oo169f97e0tMykpqbKGBoa6paUlHSpq6sXpaen21Eo FLmbN2/uqqqqti8sLKgmJibupKWljbi5uW18/fpV9dmzZ0ZCQkLXYmJivD59+jQUGBg46+/vb3r1 6tXe1tZW9du3b69KSUlRHBwchOzs7IxFRUUXXFxcpJubm1cGBwe3nZ2dpSAQiKCysjLH29v7AggE EpmcnMzo7OycRqPRpng8XkClUq0GBwcLxcTElKSlpduXl5fF7e3tE4KCgvYcPHhwH4lEqrt16xYv NTUVzGAwqjU1NZWYTOYMFApdkpaWpu3s7ACKioqic3NzTe3t7bjk5GSX3t7etqqqKpqlpSW8sLCw 4NChQ6vh4eGH+vv7n75+/Zrw4sULt7S0tLsUCkWgra29Iycnp0Imk0mQjY0NGwUFhREbG5tBCoVy sK+vj6akpAQFAGDTzs6uobOz82dlZWUqBoORGB8f38zNzf1vfX0dMDQ0PH/06NGthoYGRn5+vpaV lRVnfHycaW1trd7R0dFz/fp10dXV1RUMBqMgEAjobm5u+9BotPn/hYl6e3vT7O3tGxISEqxgMJgB GAyuAIPBFBEREVZbW9sUmUy2EBcXp9y/f7/P3Nx8fmlpCXzkyJFDGRkZLYGBgStcLlcQGxtrpKio KK2goCCDxWJ7ampqqNevXzf4+/dvi4uLC09fX183NjZ228rKSuDl5eVcXl4+c+zYMRV5eXnE1NRU Hx6Px5qZmdlyudzlra0t8OHDh5Xt7Oy0FxYWmFgslpOSkiIdFha2RiQSkV1dXfjZ2VkZKysr7p49 e+R+/foVD4fDTeTk5OTLy8vHGhsbEaKiogs2NjYWFhYWg+/fv4dqampyLl26ZKaurr564cIFiVu3 bkmh0Wjh5eVlgri4eJmampr806dPU3V1dU1FRESo2tra/3Z2dlyUlZVx379/n1hYWPi7sbEhevTo 0dbXr1+PhIWFXRIVFaWkpKT8Njc3B+Xn569sb28DJSUlOmQyWfzw4cPEJ0+e1AYFBQ2pqamVqqmp yfv6+vLPnz+/gsPhpDU0NDZFREQQXV1d6zk5OVqvXr1KmpychKHR6IWXL1/69vX1DSkoKDBu374d u7S01C4lJSVoamoav3fvngKbzeZZWVktDg4OSmtoaCCePn26evr0aTMikahgYmJCLCkpqVtYWKgm k8k7z58/r37z5g0TBoMhjI2NPTU0NL4LBAJ5RUXFiLW1tQYpKSkvc3PzA9ra2vdMTExQDQ0NQ7q6 uqYgEGjwyJEj4W1tbXX79+8XGx4exv/69Qt24MABqJCQkIGoqChHSEgINT09PWpra7tx8eJFDIfD 2T158iReTU1NMDo6Kti/f/9uYGAgVFtbG3Py5EmIk5MTC4/HA6Ojo+qurq6oyclJPofDEREVFYVT qdSJ7e1tWQsLCzAAAKjQ0NCSc+fO2aysrGAyMjK22tvbzbq6un7Y29vj37x5U5WcnEyuqalBNjU1 VWVlZa24uLiQW1paFgkEgnBGRgYMAoGsu7i4yBMIBId9+/a5yMvLFz58+JChqKj428jICLy1taUM AMBOQUFBM5PJhKampoo3NTXJHjx4UHp4eLhFTk7OZHZ2NhGBQIieP3+e9OnTJ7CHh8fVW7du/UEg EGOVlZWI0dHReRgMtvX8+XONsLAwnKamJhyHww0/e/asp6ysjHf37l21goICKy0tLUMFBYWeqKgo m7i4uBZpaemWwsJCdQ8Pj1/5+fl2Wlpa3I8fP+6CAQAA8vLyEAcPHvRpbm6uv3Hjxv6ZmRlWdXX1 8s2bN9EHDx48GhoaajE2NtbHYrFoXl5ex5SUlEBVVVWZUVFR2YWFhfxjx479s7e33w0ICJAjkUgb TU1NkkJCQs16enp2e/bsYQYEBCyeP3++7n/ThM+ePWP5+/sv83g8EJfL7YZAIHrGxsbGY2NjUHl5 +e3V1dWFpaWlanNzc3hBQQHT0tISCYfDdR48eCACg8G07ezs5I4cOVKPQCAgeXl5Ve/evTPt6uqS aGtr275+/fqVlJQURUdHR1slJSVpFosFKS0tbX3w4IEKAACAqKjoprS0NE9cXPzC2toaNCYmZsHd 3R24f//+uLCwsAqFQjEikUioz58/D75+/VoxNzd3hUwm9+jo6IA1NDQ2bt269W15edknNzd3SldX N/vs2bMGxcXFFlNTU9zz58//jI6O/iUmJnZi//79OXw+v6W/v78GgUD0vXz58q+np2djVlZW4cjI iIKSkpLc/2pia2srwmKxlvB4vLKlpSUyNjbWcnBwkFFfXy/u4uLiWl9fH9vR0XFhc3MTGxMTY720 tMRISEiwqaqqSp2enmbQ6XT62NjY2K9fvypWV1dZdDqd0dHR4TU4OIhis9lfFxYW/mtubh69e/eu 6ebm5rq9vT05Nze358uXL1OWlpbv6XQ6u7e3V+z8+fPJERERS8XFxZTq6urtK1euVEZERAzt27eP vXfvXq1jx47hz5w5AxQWFpa6u7u3LC8vM/T19XlWVlYuCARCvqamRn1iYqL/zZs3a05OTjPfv383 UFBQ6JCRkclXVFTE8/n8yfLy8pPOzs51ZDK5BYVCcY4fPx4fHR3dJiMjU/r06dM4KSkphTt37sgf OHDgDwQC0eTxeE0sFouBw+FcRkdH10kkUuffv39F+/v7kSkpKRUjIyOInJwcBBwOnyspKZmfm5sT +fv3b4aMjMy2qakpPygoaIZOp08aGRmx8/LyplZXV4UxGIxheHh4OwgEwkdGRv798+ePg7Cw8GJW Vpb6379/lTkcDgIAAIDNZsOSk5NtRUVFle3t7QU2NjZcSUlJkd7e3iIsFru9ubm5dvfuXUhRUVFs TU3NyNzcXB4IBEK2tLTwmEymX2VlpQyVSv1uaGg4q6GhsTk1NWVbVlaGmJycnK+trZXt6enBKioq brJYrC5paenwurq6ldnZWXhTUxM6Jyfn1cuXLyMpFAoMBAIJREVFa8fGxiIAAAByc3MFRkZGIDwe L1NRUQHEx8eLzM7OEhEIhBKfz+dISEgMIxAIkpGREZbBYBDy8/Ohfn5+pr6+vnJXr15d//fvHwE8 NjZ2sLe3dyQ6Orp6fn6eaW5uXj8+Pr707ds3DIlEop08eXLHw8Ojvre3t09LS8uQRqPNffz4kaSh odERFRXl3NLSYkUkEnEAAADZ2dllVCqVtLGxMYpCoS5zOBywkJDQdRgMxiguLq7432UvKSlpvnTp kuvS0lLp6OhoxdTU1Mrk5OQIEonkQKFQZwKBwBEVFbWBQqG7AQEBYiIiIquurq4PlpeX90Oh0NXU 1NRNAwMDrIWFRf/k5OTa8+fPZycmJubodPry8PDwyzNnzvQePny4o7y8fNHb23vazc1tc3l5Gba2 tga7efPmlLKysufY2FiWnJyc5+PHj8MnJydFioqKzgAAgBkYGBgvKCgYHhoa8hIVFV23tbUlVVZW bkIgENrY2NiGj48PydbWFtPd3S0AgUDqhYWFYTExMWU3b9486+3tDT1w4MDxtLS0+oCAAGsNDY0f UChU7b///puXl5d/jcFgEHZ2dteqq6vRy8vLQv+rSW5ubpampmbhysrKqpiYGB0GgwmgUCjx1atX 8rm5uWsmJia3Pn/+DGxubgL+/v7tly9f3mtra/tQVlZW0djY2EhFRSU0JSWFPD4+juByudPnzp0b DA4OjnFxcfEEAIC9uLjIjImJsZeRkUFLSkpilJWVt0NDQ1ccHR2V6uvrgyYmJkT8/f33JSYmPqfR aNGdnZ0jZmZmqOvXr0PZbLbZy5cvTfT19ZkvXrwA8/l87tTUFPr69essPz+/slu3bmG0tLT6ZmZm +oaGhmZmZ2cpRCLRcXBwUNXb29t2cHBQ89atW+ssFmu1vr4+3dbW9iKVSrVHo9EWBw8evJqRkXHj +fPnAWJiYmV8Pn+DxWKBOzs7q+fn53f8/f2zJyYmGnA4nD0AAMC5c+eupKen++/duxc3NDT0BYfD 7QsNDZ3V1dVdrqurgxw6dMjh79+/TAAANAAASAMA4BuXy7WDQqEELBaL5PF4wlVVVRV2dnbd7u7u S0gkEu7r62tBIBCsvn//XshisXC2trajHA4HdfnyZRU2mw3G4XCw0dHRnv/++6+rublZ9dy5cwIq lXoBhUK1kMnkrcLCwrm0tLQUDw8POyQSqd/T0/NZTExsHxgMFv/69Ws8AABAampqlaio6KPx8fGZ rKysgNjYWOmuri6YoaEhD41G4/v6+pI4HE55WFjYDQMDA/bHjx/JVlZWy5cuXYre3NxUDg8PV/n6 9as5j8cDpqamus3MzGzLysraUShUeUBAwGpVVdUaDofTAQBA/s6dO+8MDQ1H3rx5U0QmkzccHBxM wGCwbX5+vp+YmJjO+vo6MisrSxMsKSn5Jy8vz0pSUlJLT09PEgqFcslksqa3t/fctWvXKNHR0dIO Dg4YKSmpnX///q2XlZUxe3p6Bp2dnckiIiIYBAJh6uHhEU8gEIyHh4d3b9++nTA2NmYIAoEqxcXF ddfX1799+fJFa21t7dLOzs67paWl0LS0NG81NbXJb9++FVZVVbU6OztrUKnUfdLS0lqNjY2wN2/e VGhqapLm5uaaXV1dQzQ0NGBtbW2zr1+/5re0tOSqqKjAsVgs5MePH8IZGRl0CwsLETk5uV1jY+Pl kpKS2qioKH0CgSCVnJwsfvHixbHKykoaHA43FBMTU4LD4bDCwsJfUCjUUllZ+RiBQHi0u7vbQ6FQ NLa3t3MAAAA2Nze/YLFYqdra2rHAwEDs06dPKYcOHZp1dHRUXFpaQpaXl+9WVVUNcrlcZmlpKe/+ /fs3mUymREZGxnsqlbq+sbEBPXXqlI65ufk5LpcLIRKJWlAolHf69On3kpKSLH19/UQ3NzemnJzc XHV1ddbOzk5jcnLyXTs7u726uroWFRUV3ePj4zJ5eXktJ06caGxra2sNDg6uFhUVzbS3tzdcXFxE 9vf3E6WkpHbU1NSWdXR07AQCwfjAwMDj27dvyy8tLe2qqamZBgYGIp2dndF+fn73JyYmRBwdHX9v bGxg19fXu0VERHRWVlZY/f39onJychtZWVnpSUlJwXl5ea0VFRVp9fX1n0ZHR40NDAwABwcHYl5e XuPVq1dFJyYmsHV1dQxpaWkpVVVVs4KCAvz8/LxhRETE5JMnT/YqKCiQGxsbpVtaWpTb2tpcAgMD v6LRaAsKhXILj8f3iomJ/cPhcBOLi4sde/fulX3//v328+fPHyQnJz9ycnJqaGlpOXXr1q3Ptra2 GxQKxf/ChQs5ERERAiUlpQM8Hm9aUlLyMZvNFggLC/OTk5P7dXR0jMLCwny/ffs2ZWFhATp9+nQ4 GAymJiQk+AEAgAQAoB0AAMH4+HghHo8HDQ4OLl29ehVaUFCg1t/f76ehoaF/7969Jg0NjWklJaWR Y8eOufT09BRnZWXROzo6fk9MTKAYDAZbIBBg2Ww2trS0dN/x48cDYTCYsaamZtzp06dtFxYWRiUl JYUOHTqkKy8v39vW1vZHV1c3b2Ji4t+lS5euR0VF/aqurs4hk8kX4+LijpeWll6g0WjDMBiMD4fD +RISEup8Pn93amrKFAwG/x8MRjgcTrWWltbiiRMn5DQ1Na1ZLNaIjIyM6c7OzioGg+EAAAAoKysz jx07xgEAABgeHjbi8/mAkJBQ1aVLl/aRSKR1DocDMTY2piorKxNYLBZoe3sb5Orq+tDGxgb29+/f PvD8/LxNd3d3qZmZmQwGg1FUU1Ob/v79+/LExATryJEjq8HBwTw+n49samqS6O/v75OTkzPA4XDU M2fO/GYymRAAAID5+flKPp8PXLt2jWRhYWF74sQJGpFIRPz69ev38+fP/9XV1YEWFxefbWxsZHR0 dEycOnVqpra29mtsbKyqp6fnclRUVBaXy30Ag8H4Tk5OsJcvXx6qq6ujKysre1ZUVPjn5+cjs7Ky zIWEhERXV1eHCwoKthwcHCbfv38vV1BQwLW1tX1aX1+/Ky4u3urm5qbw9+9f0a6urlEREZEODQ0N nJiY2H4IBGK0tbW1ISsrGyYvL//p9+/fn/h8/piPj8/nubm5BhQKpQYCgaivXr16DoVCrVEoFAuL xXJYLBbv/v37Q0+ePFFLSkrqGBwchIuKirIuXLggmpmZCRCJRBkEAsF8+PChkZaWFhmNRqvMzs5i CgsLn7HZ7PHJycnrXV1dv/39/U1cXFy2Hz58uLehoeFZWFjY3sHBQYOdnR0+g8H4qa2tDW9ubj46 MTHhCQAAoKmpuTk9PU14+/atfVtbm0RkZGQig8E4kZ+f/y8/P3/fu3fv3LlcLuTDhw+/6HT6yODg 4ICMjAzl5s2b676+voYIBEJ8//79kt7e3m6fPn26U1JSsggGg/G/fv0aJBKJVjwerxeFQvEeP358 2tnZWf/gwYPhEAiEdfjwYQU2m82dnp6Wamlpafr169fM379/11paWjBYLNasv79/fv/+/bIIBEI/ Pz9/c3t7m37lypV+Hx8fDSsrqy0MBnNQIBCsrq6u9vH5/A0hISE+AACAu7u7ob29vUdjY6Orjo7O XhKJpFdZWZn748ePodjYWLX+/n7E0tISiMPhCPX29u7ExcU1fv78OX93d7enoaEBqqGh8QoEAvFH R0dl79y5ky8nJ0d6+vTpeQcHh9t8Ph9AoVDh5ubmalNTU51cLnd7cXGxKjs7GzIzM/NOIBC0vHr1 Sv3IkSOibm5uOBAIJBQeHj5hYWHxsa2tDcxisYS/fPmiGBISUnH9+vXRP3/+iAsEgl01NTXRhYWF v1paWnNYLFaZTCbLnj17Nm9nZ+eZl5dXb0NDg521tfXWrVu3dK5du+YWGxs7WltbO0Kn0//V1taG QyCQhdu3b8OePXt22dra+uipU6em5eTkBAwGIzYzM7OXRCJxp6amJufn55mbm5soHA73Y2pqqlBV VTW/rq5OeWtra11YWJiBwWBGwGAwsLW1Bd3d3UXB4fBpCoWizOPxGCEhITBFRUX5q1evQiQkJOib m5tds7OzLQQCweDu3bt/IyMjo+zs7MLZbDZoeHg4PyoqKrqoqOh6SEjIIUtLSzRoYWGh2tvbO6es rMw5Ojo65+zZs/a7u7swJSUlubW1tXEDAwPW/fv314ODgw92d3eXKigoKMzOztYqKSmZb29vDxGJ xPOzs7NZEhIScmNjY+lIJBIZGRm5+erVKzIcDleHQCC4paWlgbCwMCArKwvB4/FQNBptwM3NTbev r+/+oUOHnHx9fXdOnTp1nUwmP+7p6QlJS0t7Z2Njw1VVVb3B5XIHLl68WH7kyBFFdXX1rb6+vj5T U9MjcDjcsrS0NE5KSkrz/v37NAQC0WJiYiKCRqM5MBgMPzIyUvPw4UNbNpttKScnxwsKCmpmsViC 6urqzfT0dGphYWEhiUQ68Pv371oMBqMQGxvrkJmZWd/a2sqTkZFhxsXF3S8vL7/V29uLNzIyWnNz c4OkpaUJa2trK0Gh0O25ubm1f//+9fb29g7/+fPHore31x4CgbTSaDQ8HA7fkpSUlMzIyPijqakJ lpCQQAIAAAQFBeHr6+v9m5ubn6mrq++bmppiqKmp4el0Om1sbAwtISGxCIFApnt7e7X379+vubq6 Op6RkTHq7OwM1tHRCQKDwSLV1dVPAAAArK2tb09PT2fLysoGjo+P/zh+/PhITEwMsa2tbfjChQu3 u7u7w3R1ddP5fD6NRqNVwGAwISwWC+rv7/+rr68fBgKBdkAgkHZ/f3/lzMzMZmJi4ub29jYoLS1N g8VirUpJSaHb29sTjY2Nj3d0dFSeO3fOvqOj4/Da2lq1gYHBQnh4+IqPj48iEonkLywszH3//v15 cHDwq5mZmebt7e0lAAAASUlJwubmpry1tTVBXl7+57Vr17bKy8vhnp6elm1tbX/Cw8PndXV1Zclk su7jx4+Jpqam4nNzc2MoFEoVCoUupqSkMAEAAKqqqgaDg4NFb9++PRIfH88XFRVF8/n8dRQKJaKl pfVge3v7/IEDBywWFhaEnj59WiMuLm76+/fv5Xv37sFmZ2cNAAAAsFjsPgAAAB6P931jYwPW2tra YWdnh6yvr8dRqVTtFy9evMrJybEJDQ3dQiAQyKysLM6lS5c2wGAw6M6dO4Nfv36V7u/vl9q3bx9C VlZ2pr+/3yg1NbWbwWCwZ2dnhWJiYhRgMJhgfHx8AAQCgX/8+LF+6dIl5M7ODkRVVfXC3bt3T6uq qm7U1NTIaGhoYCMiIk6BQCCguLg4XUFBQejt27fDT58+9efz+UBXV1fG2tqaQWJiIjcqKkrM1NT0 BIfDmeTz+YuFhYU/bG1tpXZ3dyHZ2dkVISEhYbm5ucl1dXXMd+/eJcFgMOn19fUXmpqaw7Ozs+n/ 917Oz8//5vP5v6enp8XDwsJoqampir9///4NWlhYqA4KCpq8ceMGQk1NbR2JRIqXlZVVmZiY6D54 8KDby8tr4tWrV4a5ubl+k5OTfWtra5MwGAyipaWlLCQkZFdYWBjL4/Ek7OzsZCYmJt7RaDQkgUAw Ghsbm9u/f78BEonE0ul0SHd394Samtra5OTkgqioqBmZTBbw+fzN4ODgqR8/fphTqdTJ2NjYdisr q7sAAHABAAC6u7u/S0tLQz58+DBMIpEYIBAI3dzczBUTE9s4cOCA96FDh9ba2tpMhoeHu93d3Zkc DmexublZdXV1NQ8Oh2vMzMxsmpubh3348OFBYmKivpycHFtPT48mLCzMXl1dRVGp1BFnZ2fboaGh f1lZWaYJCQmrQkJCXuPj4y337t2ji4iIcPfu3StMoVAYw8PDol+/fmV++/btqLCwcPPbt28XOzs7 m11dXSUHBwfho6OjxCdPnriDwWDFnZ2d6AMHDrSnpaUFrqysdGGxWKCnpwc+PDzcWVZWptXd3b1n ZmbGGAAAAAQCfQAAIPDatWtfQ0NDq/F4vLSDg4NURkaGgpSUlFR2dnZnWFhYWHx8/C0UCtVHIBCI nz9/XszOzg7GYDAeHR0d5/X09F5sbm7+OnXqVBEMBsNFR0eri4mJyQkLCwu+fv1a4O3trcbhcLQY DMZfExMTxZCQkInJyUmkmZkZlkgkQthsNhgEAq09e/YMjUQiF+3s7OA/f/4UPH/+vIxKpXru7Oys 4XC428nJycEhISH+3d3drXZ2dlgOh6PT19fH3N3dpamoqBhzudwGMzOz2R8/fihISkrKg0Ag6s7O TreiouLYkydPquTk5GAxMTFOTCaTX1xcnG5ra6sdHx9vBIPBRs3MzFwnJiYmsVjsTkNDw8yRI0eu JCYm3ikuLl6AQCCC4OBgaV1dXZU/f/6M19fXyxw/frx3z549ZVeuXPHX0tLaOnbsWAAGg0EpKSnF jI6Oxly9evW8oqIiZXp6ejw2NvZtc3Pz6wsXLqzV19f7AgBA5nA4nXw+f4fD4YB0dHQaJyYmguLj 48/w+XzCgwcP6ohE4oXa2looAABAU1PTkpGR0aqwsDCKSqVyZ2dnTfl8vjIEAgGuX7/+OS0tTWNu bg4Fh8N1xMXFs+l0uv/AwMBPcXFx9szMzDiDwRAtLy/nP3/+3PbZs2f/UChUdnx8PKWzs/NedXW1 lZWVVSkEAtH4/32XCC6XK66qqnqrvLz8sL29fU5tba3P3r17H/N4vGWBQACkpaXFEYlEy7q6uuFj x45JGRgY+NBotC5bW9uR8fHxyw0NDUkYDIaupaX18P8MoLOz89qrV6+QN2/eBEGhUIG0tPSJx48f h0AiIyNPpKSk9FhYWLCJRKIwHo/XUlFRMQCBQAhVVVW4hoaGq5aWVqmoqCh+7969s2fPnpVQU1Mj bG9vT//+/fuXs7PzXjU1NXxBQcHTa9euHTIw+H9MvWdbkwnXtn2mVxJKINQQepdepINUQVCKBRkB Fb1QREXFAoJdR2VEHAsqKiIgCiggCtK79N47gYROQhLSk+fDO/e2vetfHGvtx74sSTo6Omwm16+k YgAAIABJREFUk7mpqanpsLW1NUMkEgO0tLTMpKWld/758+fb/fv3F11cXLDz8/ObOByuKi8v78ro 6Gi5vLy8FIfDKcfj8eru7u7l9vb2y3V1db9jYmKSjI2NHWg02tjU1BS3sLBwNSUl5XpcXJwgIyOj JykpSTc+Pt66tLS0NyQkRDYxMZERERFxoqioiILBYIolEgnawcFBNikpKaCnpydbSUlpnc1m4ygU CsHR0VEGgUBoGhsbb8nLy8vT6XSasrKyjZ+fH8be3n4LDofTg4ODh9+8efPo+vXrDy5cuGBWU1ND 09fXXzY2NlY6fvy4ytra2uq9e/fUhELhDBwOl4bD4fu0tbV7WSwWeHBwcG3nzp0e1dXV4y0tLeiD Bw8SampqkNra2j+0tLRKExISVg0MDK4FBwenNTY2Ao8fPxbHxsY2Ghsb76ZSqRuzs7MMGxsbGycn JztFRcU1TU1NExQKBdve3p5SVFRE8Xg8BVNT06Ffv3513L9/Hx4dHR3HZrO5WVlZczAYjFNUVLSi pKSkoa2tHeDm5tY7Pj5+cseOHWwDA4NGKpWq6u/vz9qxY4cVEomEeHh4zFOp1DkSicRls9kDZDJ5 TVpa2pJOp+N7enp+HThw4Epvb+9vHR0dqaampgkSibTq7++vKJFIGKOjo0MkEsktKipKGQqFEtbW 1noFAoEoJyfnw+PHj92NjY0Z+vr6J/F4/Nf4+Hi7tLQ0ZmVlpfbPnz9Vnj9/bkqn05cxGMyKSCSC PXv2DIDBYFXT09M/z507FyQlJQWBQqFiMzOzHdLS0rCIiAhPGRkZwdWrV9l8Pl+BTqdDyGQy5/fv 31skEomYm5u7EhUVday0tNTLwMCgfWBgoLWjo0MpJSUFc/LkyQIHBwcUHA7fSk9P/0Mmkzfs7e1h WlpajjgcjlZbWysMCAhAZWZmwj59+tTq6+ubwOfzG/r6+jAGBgY2TU1N8wEBATNIJFJzc3PzXxUV lc7Q0NB5BwcH6crKypu9vb2XqVRqPZlMduZyuZMaGhrXyGSyJYPBuC6RSOB1dXXihIQEYkJCQlpH R0caGo22b2pqGuBwOLXr6+vVsrKybBKJ9DcAAAAcDme/f//+bFlZGTY4OPgIhUIZNDY2/icsLMxN R0eH4+3tTYDBYE00Gg00Pj4+fvPmTQMIBDKIxWLF8vLyrgKBgFJYWPixpKQkSyKRsFVVVXWmp6cx rq6uF/Ly8tJfvXrFBru6unbb29sjS0tLqxcXF7vOnDlzjU6nXxeLxaUoFEqcnJxc9uPHD9mHDx/W NTU1ycNgsBmhULg6OTlJ8/f3P87lckGnT59+XFNTAykpKel8/fr1DJVKJezZs+fRy5cvK9rb26sA AAAePXr0v9+/fx93c3Pz2717N3F7e3vD2NhYPjw8vAwAACArK4soFosBc3Pze58+fXqRmpq6hEKh RAcOHAi1sbFpd3Fxybt9+7b6vn37BHg8fgMAADqJRGru7e2FJyQkVK2urv5wd3dvlZKS2rx9+zas u7v7RFFREeDk5GTn6+t7f8+ePf5xcXFphYWFviEhIfcTEhKOtrS0QCAQiIROp29ub29zv3///vPe vXsVk5OTmU5OTn2ysrIm9vb2zlevXnVrbGx8V1FR4dbW1lYHAMCstrZ2LJVK5f3vf//rT09PJ5WX l8++evWq6sOHD7ceP35828LC4hSNRpN9+fKlhlAoBIWGhvKioqK6PDw8qGFhYV/JZLJWR0cHkJmZ eURdXb29p6fn3crKigCHwy14eXn9LZFIuvX09PBkMvmXUCjsAwAAzePxxvbt29f/77//8p2dnc8h kUgngUAgdnV1bczOzlacnZ01AIPBSvn5+fMODg7MmpqaBRqNJmdiYqIDBoP7yGTyXEpKSoJQKAQt LS0Ze3p6LtXX14PLy8tH0Gh0v5mZ2Z6nT5+eAQAAkJaWxt65cyfo8+fPnQkJCXOWlpayIyMjP6Kj o6dv3rxZLSsrC9BotNXQ0NCqxsbGDTMzM0MoFGr67t27qdTU1CYCgWAgLy9vu7q6KhcbG9uPw+EO jYyMPECj0SIikShwdXVdpFKpqJmZGfCdO3duBwYGDtPpdOTa2hovJyfHz8jISNHW1tbBy8sLjkQi ZeLi4lSvXLmy8PTpU7GKikr3nTt3OPHx8RHPnz8/2NfXt2RkZOSZkJDwNSMjo57NZldmZGR8HB0d PY3FYlHm5uZKkZGRkwQCwVJJSclISUnJSyAQgBISEq4WFhYy0Gj02MLCwj+mpqaxQUFBFE9PT29j Y+MVS0tLhUePHp0zNzeP//DhA6Guru7H1atX5aBQqEQikQBwOBxnYmKS8vXrVwUZGZlJHo/nCgAA B4FAiGtqajKkpaV9xGLxxMjIyMONjQ1YYmJiJ5PJxCspKd0Ti8X0vLy8nn379m2srKxwra2tbywu LpKIRKIuAoEwunv37i1TU1P2r1+/3P78+SPNYDA+43C44urq6l2rq6tIDAYjt7m5CVtdXXVpbW2t ffjwoWxMTEzH8PDwHxwOZ/z/O7fP9fT0cJycnJwUFRVppqamdAAAlhcXF7mXL182gNBotMiBgYF2 JpNpOTMzM+nv769WU1ODZbFYxOfPn6MrKys337x5Y+7s7OxSXl5OCwgI0JdIJOsHDx6MFYlEIz09 Pb0WFhY67u7uMsvLyzg5OTliQEDANpPJfCmRSNR8fHyuLCwsFO7cuVP1/v372CNHjoRJJJIaFxcX VxwON2tjYyMtkUg2NDU1O2k0WsezZ89aX716ZXLv3j05RUVFfF9fX4u5ufkwCARau3z5Mjg0NNQO i8VKoFBobnJysv7Y2NjYr1+/VLW1tcd8fHwIbDZ7MzMzU7e0tFSgqqpKX1lZmTp8+LCYy+VOf//+ fevIkSPTXV1d1WZmZg6RkZEu4+PjVQYGBnuGh4fnnz9/Pqyjo0NAIpEEHo/X7+joiNi/f/9CZmZm /4EDBwhEIlESGRnJuHbt2vm7d+9+unLliuLp06cVDQ0NPaysrDwbGxt/nD179qO1tTUdiUTK5+fn E5eWlsB4PH7G0dHRam5urtnY2PjW8vLyjLq6OgsEAmlERUUt29raThQXFxN+/vy5FBsbC+VyuZth YWGI8PBwrb6+vgZTU9OzAAAASCSSt7W1NUyj0Ujt7e0vTExM5shksj6dTp+zsrKyNjExCaTT6VWu rq4OIyMjY8rKyvDTp09LqampgSMiIkrpdLrY0dGRZmZmZvj27duJ4OBgLzweD7WwsNAQCoUiKBS6 sLm5OeHo6BgkLS0tGxERQTAyMtI+fvy4JQQCGZeWll5xcnIihIeHX3dxcRnx8PAQGxoaYuh0OsLC wkKPw+HM9PX1UaOioiwePHjQ5eHhYaWjo7MaHh5uxmazp169eiU6efJkkpGR0fXy8nLAz88PGxkZ 2WBiYmKblpYm6+joCF5YWFjC4XDfra2tD+Tl5TFv3LixPDY2hs/Nzd0VGxs7lJKSsj04ODi0tLQ0 +fLlS1RMTIzAw8NDiMfjd6irq692dXWtOzo6YjEYjEZlZaVYR0dHFQQCgf/3v/8N2NnZEQICAsxh MJgyGAwGIBCIrL29vdO5c+fa8Xg8WFNTs9fJyQl57tw5qfj4eOOamppv3d3dshAIpI1EIslZWVkh VFRUNPl8vgoajWbCYDAzGAxmL5FImmk02h+JRIJLSUnpUVJSYubn5297eXldEQqFKh0dHePBwcH7 aTTa6I0bN6JBIJCCRCLhubq67vj+/ft6a2vruouLy7yTk9NsdHQ0zd3dHbC2ttYnEomdfn5+5PDw cExjYyPFzs7uzJs3b9q9vb2heDxeR1NT0xsOhzcfOnQI6O3tjfLz86Nsbm4qKSsr2+bm5pYTCISF ubm5loyMjL/FYjG/t7d30tPT8zQYDAYsLS05urq6ViAWi/WZw+HI7d69u0dFRaU5MTHRuKKiQj00 NBSMRCIntre3GR0dHeMikciqpKTEICgoCPzXX3/t37179/uSkhKTtra2XjKZDBUKhUyhUAhaWVnh W1hYgAcHB8UcDgeBw+GocDhcDoVCqSsoKJiBQCCWRCIBFBUVt+h0+q6VlZX7CgoKiVQq9RUajSZV V1f/ys/PR1laWlJmZmY4165d2/P8+fOv3759C21ra0PjcDhH8f836ywWq10oFErX1tZ+PXjwYOHo 6OhHCoUybGJiYlVUVPQhJCQk3NXVtfI/y04IGo32ZTAYWSwWa3NsbKz/yZMn+hsbG9INDQ02Fy9e TJOSkjKXlZUdCQwMNM3KymKBweB6GxsbNRkZGQ8LC4t2iUTiR6fTNx4/fvzGycnJWl5enqugoGCk rq5ur6+v3//mzRv+ixcvHpSWlt6QkpJqvnfvnvrg4KAQg8EI/Pz81m7evAkqKys7CgKBNkpKShqH hoYqiUSinra2tqFIJAJ5eHicZLPZjTAYTKWurq7058+f/S0tLbwTJ07IHT9+/ElZWVkiAACAi4uL W1dXV76Zmdnx9+/fv/bx8VG1trbeNT09LYHBYMKurq5ONBoNl5aWniWRSEEwGExCp9OZjY2NPUtL S9Px8fGKc3Nz81+/fnU5c+ZMzL///pt0/PhxbyMjo4YdO3ZsJCcng319fXctLi6ayMrKTjU0NJQa GRmZVVVV1bFYLCkrKyslJyen7rm5uac8Hq8RBoMpcrncKSQSqeXj41P1zz//LOrq6p4Wi8UgHo83 hcfjZcFgsMu5c+duFxcXD1pYWEBv376t39zcLMHhcNLe3t6SEydO9Hh6etooKSmx4XD48NraGpzF Yq1sb2/7WlhYzK6srGBWV1e/9fb2noqKitqiUCjdVlZWvidPnhwpLS315nK5K2AweLO+vr6TyWRC 9+7dq9vf3y/FZDJrSCSSc1NT08q1a9cMlpaWPAAAQD58+PCxn5+ftJGRURibze7r7+8frK+vnzEy MtocGxuDh4aG2mRnZ+ciEAh1Ly8vrbm5OSkdHR1WUFAQqqenR00sFjMRCITcP//8MxYaGkrYtWvX 8NraGtjNzQ39999/a1VVVaVFRUWJgoODAyIjIzv8/f29KRQKQl9f/7hIJGqDQCC2QqFwoLe39/3H jx91ExIS2Dt27NBfXV21Wl9fD8Lj8S4wGCx+3759RQMDA7iYmJgv165dCxCLxW6lpaXVt2/frjc3 N4fs379/gMvlHjQzMyMoKCjoVVZW9mpra09raGjE8Pn8ntra2m4MBgO3s7MzcnJyaj9z5gxPSUlp WkFBwZZMJnMgd+/efRgUFFRUX19/ISEhoaeoqGgFgUCwHB0dKaqqqrY5OTnSe/fuxeTk5ECzs7Mv DAwM9FVWVnJ4PB7r9OnTcnw+f+7AgQN5w8PDFqGhoVrKysrEI0eOiEJDQzUdHR1pR48e5S0uLkrk 5eVB0tLSGkNDQzU9PT1Ta2trk3FxcemJiYlnIRAIoaGhITcoKOjH0aNHPcrKyrAJCQmWFRUVvXQ6 nZ+YmBgZHh4ui0ajtVZXV3szMjJ+zs7ODtvY2AQBALBoaGhoJRQKR5ubmxe3t7c37Ozs4q2trcMS EhJSb9++rZGQkOA3Pj4+urq6urS0tNT058+f9uLiYrKxsfHA+fPnTdfW1pbW19dpZDJZRCAQ4LW1 tUgqlYo9e/asydraGvTmzZt/srOzuTt27ABpa2v7LywsrIyNjW2GhYVdx2KxUq9fv879559/Op2c nOx9fX25DAbjV1ZWFmdmZkano6MDAQAALDIy0jssLMwwIyPjIZPJ5HO53PHdu3d7u7u7J0pJSU0Z GxtHAAAABAYGPuzu7v5IIBBM/Pz8ltlsdi+TyTSRlpYucnZ2TlJVVR1aWloq2bFjx/61tTX+x48f kXv27IG9f/+eHhMTQ52YmBjF4XDyDQ0NUkNDQ0JTU1NpJBIJ+/3792xgYKC1QCDoTkhIsOTz+Zqb m5uDJiYmu21sbNwFAsFwVlbWYnFxsd6jR4+A2traCDAYjKPRaFWPHz/WRKFQrVgslra9vS0HgUCk Q0NDVVRVVXfU1dW1qaurK01MTHT/+PFjeWVlBfnhwwfF48eP4ycmJr4ODAx0t7a2zq2urjYODAxA jx49SsRgMJocDkdgZWWlcOTIEQqXy8UEBARQbGxsgKNHjxIrKipU4+PjZUtLS5nR0dEqy8vLDD8/ v1NWVlaHd+/ejd7a2po1NTU1pFAoiMLCQvGRI0dUgoKCmtBoNEQgEDAoFAp7ZGRE09PTEzY+Pj5r Z2d3IDc398P+/ftVKBTKmL6+vpmnp2ceAoGQ9fT0dH7y5EmlqqqqRFZWVvznzx/J6uoqE4PBsAwN DU0fPnxocOTIEYGOjo4GGAzmIpHIPz9+/JhdXV3tk5GRIQmFwo2enh5hdnZ2orW1dZOSktJifn6+ 6MqVKxGfP3/mpKamqoWHhws4HA5LQUFBTU1NbUdFRUVcU1PTvKKi4oqmpmaQrKxsuVgstoqKihIr Kiqqzs/Pb8FgME+RSFTn5OS0UFVVxRYIBCI0Gg1zdnaeUFVVnUUikfozMzPbiYmJl/X09AYzMjL6 u7q6qP/73//2t7S0jPn6+gpmZ2fLKioqMDExMcZfvnyhp6Wlab99+3YOj8cTlZSUJhUVFRPAIpEI KCsrOx4ZGflUVlZWYmhoOLSysrKcl5enOzEx0RoXF+ejoKAQPTIyMg4AANDQ0DD97du3pomJib8C AgIy8Xi8irKycjgSiVwICgr6YW9v/2ViYqLx27dvzfHx8fMqKioKRCJxAQAA5dLS0qdQKLQLBoPV vHz5cjk3N5d1+/btYgAAAAcHB7OZmZk3fn5+f75//96dmpq6+eLFiwNjY2OipaWlXA6HM7+6ujpk ZWU13tfXB97Y2NCUSCRAeXn55H87hrH379//CA4OVmKxWKUtLS1nQ0JCNEkkEllVVVUUGRk5h8fj J65du2aTlJTkHRQUNN7Z2alPJpM5cDgcHhAQ4KKurm7B4XDU4uPjIYGBgeypqal1Dw+PgL///luv trb2rYGBgbZYLKYdOXIk0MvLCyYSiRZv375d+uLFi1/p6elaq6urb9zd3YU6Ojqw9vZ2Eh6Pr+jp 6RHx+fytEydOFMBgMOD58+d6rq6uTt+/f19GoVBQkUg0FRoa2qqqqhp/+fLla3v37oUcPnxYwcfH R/nt27ezYWFhBgAAAJWVlVoikWgKiUSe0NDQyNzc3ITIy8tjs7Oz1Wg0WmVKSgq3vr5+287O7rZY LG4NDw+fJZPJE1evXm14+/ZtGwaDaQWDwchPnz6paGlpmb99+5apoKCgKBKJaAgEIg+FQnmXlJTA PT09Oe/fv7fg8/kTP378SHZycloLCgraMjMzo7u7uzPevXtH3b17N9ve3v58Y2NjlqWlpUxra+uA n5/fWHl5Ob+hoYGUk5NDXlhYYEAgEKSxsTFWTk4OmZWVxba3txd+//4dq6Ojw9i9e7fKxYsXl4uL i0XOzs5Sb968sTA0NAwODw+Hz83NjQwNDeHu37+vm5GRUXX48GFXCwuL+wAAAMPDw0WlpaXTeDze VFtbW9na2hq8tLQ0HRMTsz01NdVobm4uPzw8rOLq6iqXm5tbqqCggOZwOAPXrl3T8/HxwTEYDA6b zc7Nz89X09HRGSMSiV/u3bunmZWVlRsYGLintLSUef78+Z22tramjY2NUu3t7abGxsYaeDxe7fz5 81sSiURy5coVT2trazoAAMNQKLQnJibmzJMnT+4gEAixqqqqXEREBBOLxVpHR0dfj42N3drc3NxV Xl6ucuzYMYS/v/9zAwMDPwsLCx0AAICUlJRGLBbroqioyP/+/fuX/8vur1+/vs3j8ZgYDAaPQqGU ysrKNK2srMYiIyMHkUjkoJqa2uzTp09Vx8bG0g8ePGhSWFiYMDAwsL65uTmwvLyMSk1NXbx06RJJ KBRSDhw48DssLExqenq6anFxUfbjx4/DlpaWiQEBAQ2g8vLy6J07d/pgsVj3kJCQLz09PZ3Z2dkW eDx+5MaNG1r5+fl7qFRqGxwOx8nJyamvrKzk4fF4TS0tLUxzc/OytrZ2+OfPn99XVFS0HT582Dk8 PFyUnp4+bWFhIVlfX1dhs9ntHA7HSU1NDY9GoxfOnDmzBIFAJK9fv4aKRCKiWCwGNjY2Ft3c3EQw GExSUlLiPTg4OBQdHZ0MAAAwOzv7nE6nMxQUFJRkZWXNIRAIcOfOnfJ3795pu7u7Fx89epQ0PDxc Eh0dXbS6ulr2/Pnzlrdv3x6dn58Xbmxs0KurqztOnjwpfvToUfOxY8eusdns7sTExPXOzk59JBIp yc3NVf7z588zMpkcoa6ujqDRaFRPT0+YRCIB+fr6btvb2/PZbDYvLi4uEgwGE3bt2vW6srJyNwgE QtLp9DcLCwu8hYUFsru7+78wGMz87t276mpqaqzh4WFMcnKy/8GDB2e1tbW3Hj16tCstLS2bTCYv dnZ2Gk5MTEx4eHiwjI2Nw1AolMjc3NxGQ0Oj48iRI+1qampwKpWKTUhIsN/a2pqHw+GI7u5u2qlT pwgZGRmStra2mTNnzpjxeDwwHA6Xk5aWdhQIBCPW1tZZNBrN4sqVK0tlZWUyz549G2axWOopKSkz 3759CxoZGelSV1dnq6ioNIPB4K3l5eUQVVVVIo/Hm2AymRG7d+8ura6udsvKymoMDQ116ujoyLlx 44aQSCQCdnZ2nbq6ujt1dHQUFhcXsY6Ojn/l5+ff0tTU1JeTk5NISUlxqVQqvbu7u3V5edk5KipK CAAAIC8v7zEwMNDT09PTKRKJwCoqKqssFkt7Y2Ojf319He7t7e0/PDxMNTAwwEgkEv7U1BTo9OnT tfHx8TbV1dVCNze3ppCQEJVDhw6RUlJS8Jqamuvr6+t4S0tL98nJyeb5+XnwnTt3uKdPn+b8+PGj LycnJ8nb27uptLRUHgQCKaDRaJm+vr5fOByO+e3bN9GePXvUysvLF/bv36+urq6u7+HhkWVkZKQY Gxtrb25uzobBYI1OTk667u7usNOnT5/Oy8t7+vr169r29va4lZUV1sDAAMXMzMxqc3Nzrq+vb2Zm ZoYSExPzb05Ozp6ysjKLFy9eMOfm5vocHBwIERERFjMzMxIEArERHBw8GRUVZQAGg6EcDidSIpEA a2trXwgEwv6KioqPTCazi8ViydfX18Pn5uY0y8vLd1EolIasrKyqtra2kNzcXBllZWXDsbGxrzwe b3psbAymoqKyQKPR2Kampr4bGxvaz549oz9+/Fju9OnTTTk5OadBIBAQEBCQnJmZ6U8gEKzOnDlz 9tixY8Hh4eErOjo629++fQsHeXl5BdNoNDVvb2/orVu3dhkZGfVPTEwE9/T0/KHT6QvT09Nsf3// ncrKyjsrKireqaqqcqSlpekFBQVqlZWVXffv31chkUj6eDzev6Cg4Ky6urq1QCCgqKmp6QQFBfVX VlYewmKx4oqKii4SibRkZWWl29nZOW5oaHhgeHj40969e0ezs7O18/LydB8/fmxGJBKFHR0dox4e Hl9nZmY+i8XioqtXr/Y+evToH4FAMPrhw4evDg4O6nl5eUIAAAAUCoWKj483zMvL+6WkpLQ9Nzdn CAAAEB0dvXd7e/t1WlraLzab7eni4kJVVVWVdnV1LdDW1j4Jh8MlBAJhJSEhYUBRUfHIhQsXyi0t LWWuXbv2DwAAgK+v7200Gr3i5OS0Gh0dbYvBYM7T6fTKtLS0QWlpafCpU6e8wGAwsqenJ6uiogIx NTU1pqWlNWFiYqLf1tY2c+fOnZyHDx8mHTlyxIbFYkHxeLwiCAQCvnz58vrZs2eaycnJBHV1dba8 vLydgoLCyuvXr7+IRCLz5uZmpQMHDsBoNBoNh8ONGhsb79TT0wOKi4vxsrKy/IMHD8q7urqWdnV1 hS4vL+sDAADAYDCdoaGhxz09PXgPD4/VqampCSMjI8vGxsbVM2fOmBgYGHQpKiry7969q8JiseT1 9fXlb926RQ0ICFjAYDDKVlZWsv/+++9PGRkZo8LCQsy1a9dIaDRaNDk5OVpQUDB54sQJ64qKig0A AIDg4GAWAAAAlUqdKC4udgIAALh37553aGhoDAAAQGtra3RlZWXnlStX0D4+PiPfv393+vXrl8up U6deDw0NiaOiohStrKw0zczM/CsrK0POnj278+bNmzixWIxTVVVldnR0DMBgMBaNRkPU1dXVBwYG qjk5ORmyWCy+s7PzfiqV2kEmk1P+Q7bPXbp0SVtTU5MzNDRUMTk5ufPgwYPQ2NjYSwKBYMLS0vJr ZmamKoPBYKNQKGFRURGvqKhIu7S0dJNIJEo4HE6Jrq6uCpfLfS8Wi5fBYDCRQqHEysjIHNnc3Lyv pKT0kE6n5yGRSJvQ0NDxX79+xdFotFI4HD4qIyNzLCYm5ntSUpIUHA5nYTAY/uzsLPL379/1Tk5O cidPnhwsLCw8JhAIQMrKysP19fXFX7580fj+/TuioaHBKicnp+j8+fOxDAYDmp+f/53BYChaWVmN AgAgQyaT3fB4PMPAwGDXf/5Nxvz8/ByZTFbp7Oy8b2VllSsvL3+pvr6eYWxsXAAAgLi5ufmFUCiU pKambn348MEEhUIpczicERsbm00EAoG2tLSsqq6u3mNiYpINBoMdRSIReGlpiQRKTk6+fvPmzQSx WCwEg8EAn8+fHB8f/wkAALC4uLhaWVkpfeXKFXmxWAzIyspaQqFQByaT2fLu3bvOmJgYbwgEIgkP D3975coVzIMHD5j19fUeBQUFnbq6uhwZGZldWVlZSUePHv3z4sWLCG1t7c2AgAD1x48fqxkZGfHd 3NySOBxOkZub25pQKFyvq6tzsbW1nRoaGvIFAIAgFovXOjo6qvX09EAikQjAYDBq09PT9V+/fsXa 2dlJ/e9//+s+evSo0okTJ2YBAHD78ePH72PHjmUCAABMT0+nDQ0Nfe/p6ZHmcDjEHTvIwWjxAAAg AElEQVR2CDEYzLqvr6+GhobGOp1O92QwGJYsFuvu1taWjpSUlDufzwfNz8+v/vjxY+TixYsuKBRK BQKByAsEgjWJREIZGRkZxuPxgp07d6KysrLGvby8/jc7O1tAoVDgcDh8UVZWFnf06NH5ixcvStXW 1oqDgoKgtra2e9bX10cYDAYNh8PpUKlU2OPHj2vOnDkju3v37t0bGxsyqampT+fm5tZPnjwZQKfT +xsbGxWam5vF6enpBDwerzU5Odmvqqo6XlNTQzx37hylpKREWUdHhxwVFTV27do1opycnNjT09Mg Nze3mUKhED58+DAQEhJi0djYOHXr1i3Mly9f6jEYjJqNjY2zp6dn4/fv36WRSKSqhobGtpKSEnF1 dfUtDAY7OT8/T+fxeHo7duyAXb9+fTo3N1fGwcGhTEZGRhYGg/HOnz9vi0KhaN7e3rM5OTkK+vr6 HtevX/9+//79K+/evbvK4/H4ioqKKG9vb/+YmJjfly5dstm3bx/K19e36/nz508/fPjwLjc3t/L3 799vuFzuy+Hh4T/Xr193fvr0qYKBgQGuvr5+/NChQ8vnzp1T0NLSWhGJRNz19XVcbW2tho6Ozpfk 5OS/q6qq0m1sbKwXFxc/6ejo7LO2tqa+fPlSfXt7e+bKlSvmfD4fUVVVxadSqX8eP35M/fTpUxEA AEBVVVVEeHi4Vm9vrwIMBoNMT0/3ysvLb0KhUHcUCiWWk5Pby+Px7sFgsOOBgYEVGhoaW//8888h KBSqOzw8HD01NaVmbm5uqKys7BEcHOxrbGzs4unpCUxNTa2MjIwIXVxcjJqamqCNjY3Kjx496rK1 tb0UFRX1LDU1VZnD4bB4PN4ij8dTHx0dnQ4ODr4lFouB9vb2Aj09PXkZGZlgsVi8WF9ff3lkZAR/ 6tSpZyKRqO/Nmzdvb9++7bdnz56ypKQkaxqNhoDD4WJZWVkiAACAjIyMcHl5mamlpRX6H+W4+Ndf f73w8vLSPXjwoBGDwVg7fPjwgq2t7aS8vPyEtrb27r///hvQ1dUdxuPx2o8ePbIBS0tLS/P5/E4u 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 0ul0eS6Xq9/e3s4KDAws4HK5U2fOnEnLyso6p6SkRPX29ladmJgQsra21h0ZGdmanZ2VKCoqYmxs bICxWCxUSkoK0t7e3l1TU9MPhUK3a2pqaGw2W+rhw4e9N2/ebFdUVPytra0tmpWV5XD//v1vZmZm G2pqam1bW1vZ4+PjSCEhIRU6nT6FxWIJ29vbtX5+ft81NTUpVlZWNAMDAzEAAFb+obujIBAI+H/j uV5eXpSIiIj8/Pz8hrm5uY6/f/8az83NaauoqMifPXtWWkhIiBQdHb3c2Nh4ks/nO5NIJHxDQ4P+ 8vKyyr59+6zAYHCAubk5ZGtrS8vPz+9vfHy8upubG9XX13e2vr5+KTIy0vfgwYPpdXV1OqdOnTJS UFAIYzKZLBgMJrq+vh5mbm6+ZmlpKU2hUDiGhoYEa2truJ+fX9Dhw4eP7Ozs0J88eTLu4eFhee3a NYSnp2eWlZXVIQkJCcnGxkaRsbGxLhwOJ7W2tjbd3t7+QUtLK/jNmzdRMBiMb2pqKunq6jrBYDBA RUVFm1NTU+8gEAglOztbwcLCghAaGtr+9u1b3P3796d//vxZEBwcnPnr16/PCATi2MWLF1mlpaV7 t7a2hBMSEpwPHDgg0dHRYfLhw4dADw+PfRcvXuxWUVGJLC0tjQ0JCWl//Pix0ePHj8UNDAxEsFgs g0wmjwMAAKBQKCcmk1mVnJx8fteuXWIEAuEnGAwWXLx40fHLly99UCi0X0pKat3R0XE4LCzMgsVi WQgLC681NDTs7uvrQ+Xl5Y1AoVDIz58/Z728vC74+fn9JJFINFFRUbaQkJDko0eP/uBwOPyTJ084 SUlJ+C9fvuyIiYlN37t3zwUMBgPFxcVDk5OTTZqamhh/f/9vQ0NDeqmpqddiY2N3rK2tNRobG+XP nz+/PjExsXjixAldKSkpOovFmv3H9JOAwWCGSCTSAAKBAD09Pb1WVlaeCASC7+DgoOTv70+ora0l u7q6GomLi8/+i9J9ExISgN7e3hUkEtk7PT294Ozs3FdZWdmdn58fBAKB+KKioth79+6F3b9/32Zm ZoaJw+GU/uHQbRMTEyF6enp/bW1tk2ZmZq6vra3taGhoqO/evXtWTEwMyuPx1mpra4du3LjRuLq6 iklOTvb/+/evXmNjY//Y2NhCYWHhaTU1Nea7d+/uUiiUaxQK5Y6jo+NqUlKSlImJSXhubm6bjo6O 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 LB4/foxcX19nGBsb9+vo6ITS6fRZAwODvp6eHmNpaWnPrq6uD8HBwZ2rq6vE8+fPkw4ePGhYWVnJ sLKyYnR0dNC3trZgy8vLovfv3/dcXl5emp2dpaLR6CpJSUm5Hz9+9PT19RnGxcWZuLq6zmVnZ086 ODikgMFgMQAARO/du/cwNjZWhkwmI3Jzc8eDg4Nn19fXYfb29vshEIjw0aNHr548eZJAIpFUzczM WCIiIrJoNHp6bW1NXEVFRX1paYn84MGDqaCgIA0ikai5trb2+vbt279///6tNj4+fkRfX3+hsbFx kMfjTdHp9D0SEhKztbW1cpcvX2a2t7f7Z2dn50hKSsIwGEy9uLi4mYmJya7W1tYbVCrVdnl5WUlH Rwfh7u4OoFCowa6uLr309PRlDw8PkJ6eHvPjx4+wqqqqLRcXl2FtbW07CQmJKhMTk6/Ly8tpTCYT Iikpif9flVxTU9P2yspKt5+fn7Wnp+fz2tpa56qqKqkTJ06IXr9+vauzs3P72bNn8VpaWn8+fvw4 /+PHj/GoqCiPurq6Im9v70QoFEoAAIDv4uJS+PXrVwUUCoWNjY297urqKiEjI+OekZFBy8nJwTo7 Ow91dHRc5HK5o2lpaV/t7OwQOzs7QuBLly6tioiINBkYGPjCYLDQ/v5+TllZ2Y2+vj6csrLy1NDQ 0Lu4uLj61NTUr9nZ2XWysrIHbGxsfO7cuZOenZ1NunHjBnv37t3bPB5vrqKi4mRhYaHW/v37vcLD w9/SaDQql8ud6unpeXX9+vW+3NxcnZKSEvj8/PwdAADWAABYo1Ao99LT05tDQkKGwGCwrkAg2GAy meD09HTlwMBADxsbG+uXL19uDgwM3AGBQAqWlpZAfHy8qoeHx7ShoaH16OgoY319fRsMBnM3NjZq 4XB4DxwOl7t+/fqStrY26vbt25fodHpVU1NTroODA4vD4Uxzudypo0ePhh88eFB/Y2NjRVNT8w6d ThfS0dGRDAsLUzI3N1fJycmRn52dHSgtLU35/ft3dnJy8u+2tjZxZ2dnx6WlJcb79++nFxcXHfbu 3esvJCQk+/v3b+fOzs6d2tpaelRU1Fc+nw/e2dnhbG9v183OzrbweDzpvr4+6ObmpnBjY2NwZGRk FRgMvr22tpbO4XAmmEwm4ufPn+3t7e0yeXl53TY2NuIWFhaI3bt3W1dXVxdevXp1FgwGQ8FgsGZB QQGkt7f3Q3BwsENWVtZWenq6aHR0dE9gYGC+k5OT7pcvXxYVFRW7oFComYKCgrK4uLgXBoPRcHd3 TxAIBMoIBOJIf3+/rKWlJbW2tvZTXl4epru726GyspJ/4MCByIWFBaMbN26Ap6enGVpaWlQIBCJ4 +PBheXZ29l84HL6BwWCWBgYGGqSlpQU6OjrQzc3NCwcPHvRISEiot7KyYlRUVKwHBgZq8Pl8YHFx saW3t7dpdnZ2ua+vj6uurm7T2NhIdXNzCzA1NcU9evSou7u7W0VcXLydRqMlzc3NJdfX1585fPiw jKGh4S1jY+MaU1NToVevXmleuHBh4+HDh28lJSV7P336FKempqbm4OAgHBISQm5ra0vv7OyEtba2 TlMolOWZmZmVsLAwBolEoktISAikpKR0srOzy5WVlSELCwtsGxub4rS0tBEAAPgoFEpsZWUFtbS0 1IZAIBi/f//+qKqqyhsaGuJ0dnb6mZiYhF27du2NtbX1vaioKNP79++ji4qKxsPCwsaZTKYVj8eT TkpK0ispKVlPS0tjl5eXf+/q6kKcOnXqrI2Njfnq6qpnd3d3hqSk5GFFRUXXsrKyHj6fD+PxeDg7 OzsFPT09ZQ8Pj4n+/n73/Px8yoULFzC3bt2qz83NpQn+/wDDw8NEJBK5feHChczs7OzfUlJSODAY jMHj8ceLi4uv1NTUtBQVFZWAwWCqv7+/iouLy553795l5ObmgtbX17cLCwvxJ06ciMLhcKMeHh5z 0tLSyKqqKg5IIBAIXFxc3pibmw8YGRmJtrW10VkslmZHRwcyLy+PYmBgYMjlcneamprKHBwcIlks FpnFYoHExcX1+Xz+9pcvX64UFRVtvX79Oq61tbXcyckpgMlkcgcGBkpWVlbEIRAIaG1tba25ubm3 oKDgLZvNFi8sLMwJCQmJHh8fb8jMzLz1+PHjJgAAkP9+5iBHR0dnBoOxQiKRBGg0WtTS0lLRw8Nj 6vv37/iKiopWISEh0LFjx8LAYLCiu7t73ocPH7QcHR3byGTy5J49e6AWFhaYa9eugRYWFjIBALgF AAAVAIDm7e3txzAYTIxGoy1MTU31KCoqKmZmZl5oaGiI/f79OwqJRAb/EyX8gYGB6oWFhRUkErmm pKS0TSKRlkEgEKi2tlbRzs4OKS0tjbC2toYCAMAAAKD55s2bimfPnj3y5s2blF27dhmePHnyWVZW 1qXbt2/veHh4IPh8Pqyuro6hpaW1Ojk5STEzMzO2sbFZFwgEiOLi4md+fn5EPT292xsbGx8JBIJA X1+/6tKlS2G9vb1NTCYTqKur0wkICFjW0NBQ9vb2DtfS0nqMw+GEcnNz3/z+/dsLCoVW9ff3a1Gp VL2qqipRKSmpqpcvX2ro6+sntba23re2to63tbW9lZqaumFqamr95s2b9ZCQEGswGAzR1NRclJeX J3V2dl7z8fG5S6FQQGQyeSogIECur6+Ptbq6KobD4VazsrKEvn37NnHmzBk7JpO5QaFQoBAIBDI1 NYVEoVBwAoHAiImJWS4oKGC1trZqmJmZuXR3d9c5OTmVTE1N7fr165eIkpLSalBQkNHk5KQvAAD8 xMTEMy9evHCZmJjoW15eZjAYDDqfz8eOjY2JGhkZbZSVlXHt7e2t8vLyKAMDA50UCsVobm6OkJ6e XpiVlaVTVVUl/fbt246Kigqmp6enxNTU1EJPT49eRUWFColE2mSxWBBZWVnkhQsXZqurq92pVCr5 +vXrdRkZGa5kMjlrZmYGYWFhQdXS0rLl8Xj4gwcPrsrLy7fFxMQkg0AgwZMnT26fPXs2paCg4Pqx Y8eKKyoqThYXF+P6+/sNbGxsxi0sLHZWV1dV7t69q3D37t3+mZmZtYKCAv7S0lKAlJTUvLq6+sLr 169lIyIiSAUFBaC1tTVRLS0tPQqF0tnf3w9MTk5uzMzMiIaGhqLi4+MbHB0dkS9evNiOj4+3IxKJ pffu3TN+//792ZSUlNupqam5v379egEAABmBQKjOzc3Na2trS+vq6vrzeLxLLBbLfn19fcHDw0Mw MDBwnslktlZWVrYsLi6KPXv2bIrFYplevXr1z7dv31qPHj2qsGvXrkSQQCAQUCiUnyUlJePZ2dlj r169kqusrBzH4/FWCgoKdCgUKiASiUba2tpfKyoqOBoaGufDw8NfysvLC5WVlSE9PT17r1y5suvG jRvVbDZbMDIyslZeXn4aAACgoaGhGIPBIDQ0NCw8PT3f43A4m69fv4YSicSYDx8+7N63bx/o/fv3 Ev9y02UOhyMNAoGQPT093SgUalRXV9eMwWBo/5tznlpeXm7R1dVFBwUFHVxZWRkaGhriCAsL83k8 Hg0Gg4FTUlKyfvz4cdPMzKy+p6cnTFVV9dX8/PyuiYmJdW9v7/HZ2VmD6elpPAQC6R8fH0fZ2dnB QkJCFoyMjISxWGw7lUo18/X1FWOxWODt7e3V8fHxHT09PWpvby/f29tbv7q6+md6evro9evXjRUU FFBqamry/x6MY+np6Reio6OD4HA4cWhoqExERITMYDA28Hj8HoFAAIyOjtZjMBjIiRMnfhOJRI2e nh5BYGAg09DQUITJZIq4uLic7+npKbW3t5edn58XKCgozG5tbcllZ2c3DQ0Nbdnb26PKysroEAhE 8OLFCwM1NTVQa2vrhpWVlaq5ufnvT58+ufwznaj29vb1zc3NRjIyMppDQ0PdV65caQOBQIKysrKH XC73XVZWFk1DQ4Oira1N/PjxYyOHw5GSl5ffDA0NPRgQEJADg8EkDx06NEgmk5UcHR2ZysrKB5hM ZqePjw9l//79wuPj4xJnz57lR0RECLe2tjLYbPbuhw8fvvn58+diXV0dDg6Hz5w7d86yvLxcys7O rjsgIMDUyckprLm5+XVGRkbz06dP3ZFIpJampmZ/d3d3u6ys7GM3N7drnz59kpqdnZ0fHR1FWVhY yAsLC8vHx8d3XrlyRbWgoODvzZs3j6mpqX26fv365r8aLaOtra1yAABspqam5t6/fz9qampqJiYm NopGo7lgMNgIi8WKOjo6GvL5fEBbW7tjYmLCns1m5x89ehRZVFTUoKur65SWltbr6el5vaamJguD wUgEBwermZmZjXd0dDiTyWR3AACgAAAAr1+/PiciImJEJBJnsrOzNxQUFCS+fPkijkaj+9+9eycL g8GUp6amSuLi4hjR0dGOioqKTH19/ZCgoKA8NTW1lWPHjumLiYmZS0hI2N2/f/+Bra0tFw6H87a2 tgQJCQlTT548USsuLp5dWVnBu7m5dd25c4f948ePvbGxsfO1tbU24uLiPZqamn0cDsf2xo0bW+vr 6ywCgSDZ3d1NX19fh4mJiQ0MDw8rT05Ozq+treGqq6u9EAgEb2xsbMTBwQEYGxtzpFKpvTAYbC40 NJRTW1tLhDY2Np6Zm5tjx8bG+o2PjxNu3LiRdv/+ffP29vYmIyOjcDAYDExPT38jk8mY0dFRlpaW lrC9vT2jurpa2cLCokZRUXHl8uXLvIWFBWkJCQlKTU1NSVdXlxuZTA59+/Yt+dWrVyHFxcUd4+Pj rrm5uV8DAgLGqVSqRGZmZheDwdj9+fNn0sLCAh+DwVBNTU0HqFQqAIVCjYuKiv5++fIFuHnz5qtr 166FhoSESFdWViIxGIzE9PR0Ip1O34bD4cfa2trowcHBaoqKimYlJSWyAAAIbty4wedyucDk5GTs 2NhYGZVKBZ86dQoRGxs7zmAwusTExPai0ejR9vb2nYSEBKaxsTHzzZs3JuHh4UI8Hm8WAABlTU1N WQ0NDdz6+vqErq6u1MTERJuDg4Pp7OzsZkhIiAkIBOICALAIAAACAABnFotlzOVyQY8ePToHhUJH OByOTGxs7PWDBw/e0NPTW05MTLxmZ2fXA4fDESwWi3zo0CGNycnJ5du3b4MbGhpA29vbl5qbm/nq 6uoIAoGg3dHRMVhaWsoIDw+XnpmZQWIwGDV9ff2vPB6Pn5KSsp6Wljbs7u7u/PfvX7GIiAiAzWaj +vv7a37//j02Ojp6UlhYmE+lUie1tbXpLBYLnpCQIMLhcHq4XK5hbGyszM7OztL4+PjIs2fPDGdm ZiJDQkL2j42NVcNgMG5AQAAHBAKBoqKivMhk8vSpU6eepqWlEYqKilwJBIILl8vt5XK5gKqqaguV SjWGw+HciIgIu7Nnzyro6elVvn//HlddXc1VUVHpjomJYREIhJNMJvO+qampXWhoKG9gYOC1k5PT p4WFBZPW1tbhrKysIzU1NW84HM7Q8vLyDzs7O/TU1BRVT09PWk5OjqKgoIBRUFCAP3jw4PHQ0JDD yZMnF16+fLm/qqrqhJeXV3ZhYWH18ePH/fbv3z/Y399fFRISAp+cnFTc3Nys1dbW9p6dnf31bwV7 Ky0t7SUEApGNj49fiYmJcWppaSGCQCANKpU64O7uHislJTV35cqVTH9//yOqqqquGRkZ8aqqqip5 eXlFOByOdeTIEQGNRlNwcXFBu7u7h5PJ5Hf379+PA4FAYmAwmF9RUZHe0tJy9+HDh5X37t3Tu3Hj xnxKSopdYmJiZ2Nj46/du3cjVlZWtk6dOqW6trYGxWKx4jk5Oc1dXV15//ygdFtbW1koFOpDJpOz X79+/SMjI8NSIBD8gcFgEjQazcPOzq7n5cuXKpcuXUJwuVx+fX39oq2tLWBra2tfX18/vrCwQHj/ /v0QAABy8/PzD8TFxcOZTObfT58+PXV3d7dgs9kKhYWFaGFhYV1Ifn7+t4CAgN9qamo/7e3taVtb Wxw6nd6hpKSki8PhtAEA4MfHx9/u6ekpLCgo6HB2djbt6emZz8/Pl3ZwcBgikUiYy5cvu7q5uUl2 dnayqFRqk4ODQzwWi915/vw5Jjs7G3r06FGpo0ePQhsaGlbFxMSQhw8fFnN2draenp6uRyKRIB0d Hd6uXbu2W1paSN+/fwft3r1b/vjx45Dm5ub2mzdvWvL5/KqNjQ1IWFhYWG9vLyktLY0YFxeHLyoq Kl5YWOCOjIz0WFpaotFotK2QkBCRQCAguFwuAgwGoyQlJS1evHjR+ObNm4mvX78uo1Ao9Nzc3C9Z WVnn1tbWJ2pqaoSFhYWd4eFhqcHBQWZoaKgKDAaDweFwv3/tsYLm5uZtCATColAoMnQ6fdzNza33 2bNnYSkpKYS2trbfdDrdiEAgAOXl5evfv3/vs7GxQR87dixKR0enNS4uThAVFZXD4/GWkEjkz4iI CMqLFy8IaWlpu4ODg2mHDx/G+Pn5uXA4HL6NjY0rAoEY+++//4alpaUN9fT0xAUCASUrK2sADoe/ NTIySpmenhZ0d3cvp6am+g0NDTHi4+P709LS1OBwOM7b27uKQqGAnZycNqBQ6GZZWVkbHo/fo6io uLZr164wHo+HffDgwXcHBwctgUDAmJycJKelpXnMzc1179u3j+Pk5GTOYDDgBAJheXx8fNvS0jIa h8PpI5HIrzs7O/JGRkYneDxeLxQKNYNCoUoCgeBhVlbWpo2NjQgAANtfvnz5dfXqVf2EhIT6kJCQ YUlJSUF2drZrcXFxd3V19aqiomIFBAIRkpGRseNwOC3Ly8s/yGQyBI/Hi6ioqMgTCISSiIgIBVFR Ub6FhcXEz58/2Y8fPzbj8/mg3t7eOVVVVWV1dXXRlJSUb93d3bTBwUH8xsbGx/Pnz5sNDAxwf/78 STl69CgSh8Nx3d3dha2srJzW19dBEAhELiYmphMOh6ONjIywYWFh7h4eHqg9e/ZsEAiECSkpqQsm Jib97u7ujQcOHJAwNjbWkZaWxgsLC8tOT08/Ly8vF09OTt4nLS2taGRkNLixsTFlb2+fkpub+z0p KSmAz+fv0Gi0kYyMjCAoFAq5cOECUV5eXoZIJMKVlZV1u7q6yry8vGScnZ3dqFTqEhaLZZeVlf2w srIKgsFgejQarRGPx4NYLNYYBAKZrKur+8lkMsU3Nze1jx8/bpSTk9NjZmam3dLS0iIqKjpw5coV NYFAgKTRaMgfP36Mh4eH452cnA4ePnx4AIlENkxOThISExMvCQSC1b179w6Pjo7e2NjYkDhy5EiX oqLicWlp6Z0TJ070MplMEqi8vPyAkZGRDwaD4c7OzlZFRUX5nD9/foFAIEipqKhok0ikCzQaTb+m puZbcXGx6dOnT22cnJz2/+s3r3FxcalvbGy0fvbsGRcAAAAMBn/n8XiAkZHR8e3tbTQGgwGPj48P VlRUzJSXlyuw2ewmNBptGBMTs5Wfn4/++vXryXv37l0FAEAGBoPNlJSUbG9sbKAxGAzV3NwcVlhY qLe0tBTj4eFxm8lkShAIhFozMzMTLBb729/f/xYUClX8h5VuQqFQPBKJtG1iYrLGZDLpMBiMODk5 SdbQ0PCdnZ09TyKR0AwGg4FGo41FRUW5V65cyQ8MDESura1FSUpK9nh6ei6ZmpraDQwMcAAA0NPR 0RGZmZkRotPp9WAwGEAikZIhISELkZGRaA8PDy8AAICbN28+ZDAYWx0dHetdXV0xeDx+3MTEpK+z s9MiLS1tfmlpCZmWlib76tWrV9LS0mg8Hv8IAABlLpc72NfXR9LX1zcYHR39IyMjU4VEIhP4fH7r 5uYmaWJiAqKmpiY8MzODMDc39wOBQKjKysoOb29vs56enqaFhQWKu7u7EpfLhS8tLQlfvHixjEaj idTV1UX6+vo+SklJcV1dXd3W0NBg1dbWblZUVEi8fv16DYFA+ILBYP7y8nLd9vY2DQwGQy9dugSA QCDBnj17hpWVlcUzMzOHZ2dnpbOysoyLioq2yWQy093dHc3lctesra11f//+XTk/P48gk8lsMBjM f/z4cUpiYuKVuLi4ABaLtdPS0tKDx+PlHz16xC4pKUnCYrG1S0tLqMTExDIUCkXx9PTU6evrE4ZA IICGhgbl2rVr7K6uLvfc3Nw/JiYmslNTU9+IRKJjQ0PDWldX15yhoeGUiYkJQVVV1RAOh7sPDQ09 Wl9fV8bhcJyxsbGhiIgIx1evXq0eOnRIoba29iOHw9HJyMgQtrS0bCQQCG6enp6BXC53FQqFSnp5 eWV//PjRBQqFPkpKSkIEBATgMjMzFT5+/Bj5+fPnt4GBgcFpaWkvY2JiVISFhcUpFMpkS0tLn4WF xaaMjEwGg8FIfPnypVhUVFQ4AAAgIyOjhmfPnk1mZmZ2enh4+HR0dPAuXLiAU1RUNFhaWqqprq4e 2bt3724EAqEKgUAEa2trn5aWlqZVVVXN3N3dkfX19dYgEGgeAADW+vo6eW5urr+lpaULAAB8TExM 6o8fP9IsLS3d7ty58z08PFxLSUnJhMfjbS0vL0+FhoYOLC8vK1laWq76+vpyPnz4ICUQCMBpaWnK YmJi3PT0dH5vb2+xkpKSpoiIyDKfz6cnJiZq4PF40vr6+jU1NbU7YDKZLPLy5csiMBgsNDg4OPv5 8+dNKysrDB6PN1xYWJjD4/FnuVwuyNnZ2Ts0NJSdnJzcmpOT8+bQoUP3Tp8+zWYwGLjKykr6sWPH RGRkZNjfv3+f29zc5AYEBAw7OTlNcblcqqampnZ4eDh7bm4O3dDQEHHq1KkxPz+/BCQS+ePFixfR eDweefbs2X2jo6Pqjo6OQ/Pz83Y1NTWH7ty5Ez8yMmL49+/f1zExMSuvX79GXr161S4wMFAIBoM5 gkAgXklJyREulzvzL2P9JisrywYAwKy+vr5mYmJiNjY2diYjI+PRq1evWHV1dYIXL17gjxw5ogMA AFBWVvZweXnZyNjYePjBgweibm5uanQ6XRmJROp/+fLl9+jo6CCFQiGNj48vy8rKxj558mSVx+OB CAQCubi4uOjbt29vS0tLRS9duuT78uXLyObmZhqPxyNFRkb2p6Wl8dzd3X0xGEyNiIgIp7OzUwSP x395+vRpypkzZ1LLy8u/fvnyhQEAABgKhW5CIJAogUAAdHZ2CkdFRWHs7e2Py8vLh5HJZClhYWHT 5ubmmu7u7ratra1LCASCl52dvQwCgRQFAgE3KChoeWJiQojBYGxub29znj59aqKnp2dhZWUlt7i4 iDA3N5fQ1taev3r1qvj8/PxbKpX6V0xMTJFCoSgeO3aMQqPR3hcUFEzs3bs338zM7N7+/futR0dH HQwNDf26urpAurq6m9ra2hRTU1PIzs7OjImJie6BAwfUzp49q5uenn5IIBAATU1Nu+Xk5IhYLFbU 3Nxcp7q6egoAANDHjx+jIyMjW4lE4veoqCjJ1dVVlqmpqUzI/9F01n9NN14b/ywZY0nDYIwezaRT ukM6DMRCRUUB49ZbsRVbQEQwsJXbAAFRSrpGl3QPRrOxsd6eX77PH3Gu13Ve7+s6Z/fuDS8vrxYf Hx9faWlpTkRERKFAIBAgEAgxAADWSUlJc0FBQVpnz5510dLSInI4HFZWVtZHAAAALS0tfxsbG2Nd XV1KY2Mjf3BwkLVr1y7l+fl53MLCAmPXrl2MgoKC/UpKSk5zc3P9oaGhn7Zt29a8vr5ede3atYHP nz9XQyCQ41AoVNjX1weWlpaeAACAZWNjA/33339f7t+/XxEAABYMBtPOz88vCA4OvgSHw12mpqZS Ojs7kevr64j+/v6W/v7+ZgAAAGtr69D09PQIY2NjGvUeVQAAIABJREFUdE9Pzzifz+ctLS0VFRcX 8w0NDYlLS0s9m5ubBQAAiFdWViaePn1qdOnSpRkCgbDY0NDwg8PhjAuFwjkcDqePw+G8ent7ZQ8e POjNYrEaioqKJpFIJKG+vh7E5/PB6enp2f39/fMNDQ1jN2/eNHNwcKA9fvwYmJ2dlcdgMNzOzk7U jx8/erBYbLi1tfXqx48fY21tbaezs7OTbt++fUFOTi5ibW3tn927d+cZGRmRQJOTk7d7enrGra2t ORkZGWvPnz8fS01N1bW3t9eytbW15/P5Cjwej/nq1as+CwuLFRqNZjQwMFBOpVLd1dTUllJTU5WU lZUJ7u7utMTExL+urq5aU1NTo93d3TxPT08tDoeD3NzchHV3d2/NzMz0ZmZmvv1fs6mltrb2LQQC ET98+NDmzp07a1wut/Pbt2+q2tracAqFokkmk216enpaDQwMtJaWlnq7urrGbW1tTWVlZU2/f/9+ PSIi4rZYLBZcv359z+XLl3uuXLly4uLFi7ECgWAoPDy8NyIiQrJt2zYiCoWSweFwJhcuXHg9MzOj kJmZaUYikcIhEAj1ypUr33bu3LnK4XCs3NzcmHQ6PaWnp+fohw8fuElJSaEKCgoIMBiM7+/vf/Hj xw+1nz9/8h0cHCD29vZsOp0OPnr0aOri4uInMBisEBER8SY/Pz+SRCLt7u/v/5CcnJwxPDxssrq6 6tzR0dHc0tIiZ2ho2AuHw/3n5+dXZmdnh9zd3TWwWKzC6Ojo376+PpvIyMhZiUSiiEKh8GKxGGAy mbIvXryonJiYkMvOzg7k8/mZKysrI4mJiYYkEmnZxMQErqamhtbX12cDALCoqqp6befOnbnv3r2L QiKRehwOp3R0dHSzubkZtW3btq3GxsZFe3t79YqKCl5cXNyWmppacmBgoNOTJ0/O9/X1ffD39/+q o6Nzl06nO62srNAQCIT11NTUJx8fH0lPT481m82eweFwfmAwWH5zc/Plz58/O3g8noyWltY4kUj0 3traYvH5/D4EAiGlqKhob2NjM5OVlbV69+7d9bS0NMzQ0BA9MzOT8Pr1axKJRFqvrq6WvXbtWntG RoYlAACAvb39nrGxsVIIBIICAECgoaFBEQqFrNra2lI1NTVlNBotIhKJOw8dOpTu7u4+FRUV9Wxl ZaVjdXV1/c6dO53Z2dnBu3fvLpqZmcHj8Xi4vb396KFDh7T++++/+Xv37omnpqZu/j/pEQqF0yAQ CPDw8HgWFRXVOTQ05D08PCwGAGC4pKTkIggEAkZHRzP09fWvNDc33wsMDMTfu3ePam1tLRcZGanc 29u7V1VVNaOiokJWUVFxA4vFkh0dHafu37/fvX379q8AAADt7e0pm5ub0KWlJR09Pb3WxsZGLQaD IYyMjNTA4/E0sVgstbCwMMbhcPTIZLIuCoVa7uzsHPj06ZOGh4cHLzc3F8tisdpv3bpFTE5OHq6s rLRDIpE+k5OTNVJSUpL9+/e3x8XFyUZERFyfmJg4mJKSovPw4UOZtLQ0fl5enm9RUdEFPz+/oxAI RNbPz+/+58+ffX///j1gaWmp7e/v3wE5efJkBJ1OrxgZGQkNDQ1dDA4O9mUwGPMeHh5xMTExP6Oi osgIBIJIJpNh8fHxKxEREajS0tLVmJgYzYSEBImqqqotEomU2b17dzkYDG75+/fvX29v7x329vZe 2dnZVREREQ4AAMyrqaktxMfHh2xtbf1cXFzsRCKRqltbW/ICgWCCRCItjI+PbywvL0NPnDhxhc/n V2lpaaEFAsE0mUy2TEpKGhcKhVsUCsUfCoViuFwurbu7ey4oKKgai8UOuLq6OkxMTDRFRkYGicVi CY/HG4yNjQ3o6emBKigo8KBQqOTXr19FYDCYK5FIjDs6OupxOBz71KlTbEdHR5anp6cCi8WiP3r0 SFhdXd21urq6ODc3J9na2lrIyMiYq6+v73BxcbFIS0vjnjt3Try2toacm5tDeXh4/Jqbm3vPZDIx jo6Oyl1dXSqWlpYz169fn923b5/Yw8PDmkwmQx8/fix6//69Qn9/P5tKpcqpqqoqent7++Tk5Kyd PXtW/vTp02ZCoZDFZrOh27ZtOxAaGnqeQCDsDQkJ+bFjxw69lJSUBTweD6+vr++am5tTKCwshCYk JIwZGxvr6OnpmbBYrGUajQYIhcJNNBrdOT4+DkOhUErNzc3dAwMDoO3bt+tYWlq6cjicCTKZrBAV FfXL0tJSwmaz1Q0NDS0tLCym2Wx2l1gsNhAKheUdHR2Lp0+fnqZQKI5v3759hsFgaObm5sNPnz6l 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 MplZWlqKzM7O5sJgsF9ycnI7XV1dIQUFBTNRUVHG7969W0Wj0a8PHjyYikAgqBAIxHl7eztjeXlZ BgAAAIVCKaJQKIPu7u6LCAQCmJmZsZCSktri8/mr1tbWMY6OjlGNjY0vAACgg8Fg1OLi4ueEhISl Fy9eeLNYrOZ79+69j42NTRQTExM4ODj8dXJy6vn48aNjdHR02ZkzZ17JyMjkZmRkVMrKyroXFxez 5+bmBl++fBklLy+vDoVC11xdXa9LSUlp5ObmhvN4PFB+fn59Xl4eDIvFUmVlZUWdnJwkg4KCjjQ2 NoYTiUTC379/e5hMJjg2Njb43r17s21tbT2amprIb9++0X7+/Gm8srJie+3atdz4+Hi3rq6uKQAA gB07dtgeO3bs1/PnzzEbGxtYaWlpbktLy5q9vb3d6urqLQKBcKa/v3+oqqpqU09PjxgeHr755MkT KJfLFbq7u68UFRWBDQ0NRwkEAsfMzOxeQUHBGygUKoyMjHRXVlbuAYPBQHt7e2hAQMApPp+v9/Hj R/KePXuUaTSawrt37wYHBwfNfv/+Tb937573gwcPislkcr2pqakHDoebiY2NJdvb2+u9evUqvLu7 u9DExMSRzWbft7a29ty9ezc/KSlp19TUVNbMzMzq8vIyR1lZ2QqHw7WVl5fT/1leteTl5bfYbLb2 wsLCqqqqqoqUlJQFDAaDPH/+/EtLSwtkYWEBTSAQKu7eveslKSmJJhAI4jweT1BZWTnk5eVlQqVS qQoKCvv7+/sTaDQalEwmi+7Zs2fnkSNHBvPz8x3n5+dHFBUVVcfHx/vl5eWxAoFgC4VCEWtqauqO Hz8ujsFgpmZnZw39/Pxy9u7dK1NcXCxZVlamTafTjZSVld/Mz8/HX7hw4SKfzwc/fvz4yOLiIkVD QyMEAADg5s2bl3x8fExVVVVZEhISWlAoVI7NZg+Pjo4OqKqq4pBIpKZAIOAzmUwwCoUSjY6OfonD 4XQSEhIu/vz5083X1/dmc3Nzm7W1Na+6uloEiUSqqKurE1AolP4/tgTAYrEW6HT6PBqNVrS3t/9Z VlZWY2xsHAv+/PmzR0lJycnz58+LS0pKLq+vrytjsVh0YmLi9O/fv83CwsJ+rKysUK2srN78+vVL rqSkJPHhw4fq8fHxnyIiInQyMzNLampq5ufm5hq/f/9elpmZ2cPlcpWlpaUvT0xMNF2/fn2TwWCA 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 t8uXL+vKy8sbPXr06M/9+/d1QkJCnlpYWByEQCBAQkLCLgwG0zh27BhteHh4+vTp00KGhoZCIBAI YWZmNhEREREnKSnJFRER8R4YGKgQEhLi3rt3b0pSUlKSx+MtYTAYYXd3d3kajda2tLTE/vDhg5ZA IJhcWVn5KScnd2b//v1LkOjo6KNjY2PDVVVVetLS0tSZmRny48ePT+jp6c1NTU2xYTDY+smTJ8P3 7dunl5+f3+rq6mooISEhOHXqFHR9fV2dTqcLSUlJocPDw6f6+/urZ2dnJa5evUqRkJDYk5aW5kZF RUU5OzvnSEhIiGZkZNzV09Nr6Ovrk09LS7OMiYmZlpGRkVRXVxdfWlrizszM7JSVlWkbGxtT2tvb dxwcHOx0dXUV7t69u5eYmKjh4eExjUKh4CwWi/z8+XNsSUnJHp/P5+bn59Pu3r3LCwkJEcnNzZ17 +/YtZ3d3F5GZmWlKoVDWYTAYcOjQoYNsNlsagUCgYDCYsYKCwmp0dPS/jx490isuLqaoqalBDA0N M86fP28ZFRX1TE5OzhCFQjlZWVllLywsCFlaWrZmZmbOX758ORSHw/XfvXtXobq6euvUqVMBAAAA cDgcx+PxJqWlpTGampoYIpG47/79+3L29va8qampqubmZrCTk5MGiUTakZSUnJGXl4c/fPjQ2tPT Ez8yMsIRFhamcDgcITAYPG1paakwODgIu3XrltWVK1fwHz58EB0dHR0MCgraBwKB5ng83vbY2Jj0 /v37laBQqHx7e/uIiIhInby8/N6VK1d8WlpaYNnZ2epTU1NYeXl5WTk5ubH+/v6poKAgx7S0tNLS 0tJTLS0tK7m5uWYQCGR0cXFx6q+//mptaWnR9fX1RW5vb7Pn5+cJrq6uszExMb4gEKg8MzPTW1VV dVNaWvrdoUOHxNFotGpoaOj0iRMnFCwsLO4zmcxJYWFhqo6OzvWxsbG0hIQEGgqF2rG2ttYfGxub k5eX10tLS+OoqqrOJyYmyuvp6U1HRESoubi4cEdGRsy5XG5/aGio2djY2Pa+ffs2sVissqGhIU5L S+tgX1/fKwkJCQlJSUk1cXFxXn19/QAcDgcdOXIErqCgIOjr60NtbW2N29nZPY6NjV0wNDScLiws 7FZVVTU3NjYWY7FYHGtr69MQCGQtKSkJIyYmhlRQUNhmsViQyclJYyQSyTx58qSZqKjo/s7OzkYj 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 dEtLy+2EhIT7YDBYCQAA4MuXL5KfP3++amdn50Amky0vXLjAd3Fx0Z2dnd1VU1Ojk5SU5KelpVWG wWBWnj9/PnHt2jUDFxcXmb///psdGxurMD8/z0Aikfz6+noKBoMx6uzsxHR3d0+ePn36kI2NjSYM BqO3tLQkdXZ2HqLT6Yy+vj4ABAIB7e3tap8/f2aurq5q2NjYWHh4eLA+f/784+3btzxXV9fPdDrd PzIycurixYvShw4dAnt4eKwIBAIeAABAVlZW2M6dO+l5eXlfhULhfGtr6w8CgQCm0+k6FAplIDQ0 1CsuLo6zvb0twGAw8P7+/go+n29w8+bNU0pKSukcDucGnU6/NTMzIyUhIeFvZWW1tW/fvm0KhdJB JBL9o6KixDdv3iR4enpKDQ0Nnbl3757ElStXpNfX1/sdHBzcu7q60ufm5iCvXr3Sraqq2kMikT4o KChIo9FoNBwOx8bExEQKBIIqUE1NzSlVVVVeYWEhMTo6WqGtra3k7du30o8fPybhcLjA+fl5DzQa bcpisXbHxsZ2ZmZmmv78+bMzPDw8QEZGZjcAAICPj8/Zf/75x3h+fr4uLy/PsaioyPfZs2e5fzTj Rr29vdOZmZk9JiYmuPfv3z8EAAD8/fv3F7du3eLOz88jCgsLZ4hEopOMjIx7YWHhtfDw8PT/9c9j Y2PHZ2Zm1Gpra2vFYrFJW1ubTnt7O1FCQgL06NGjx2Aw2JzBYAwtLy+LhoeHlaKjoy0OHTok5eXl taSrq7vA5/Ph58+f98RgMJZ/ilTGy5cv95w7d+6tvr5+r4ODg0Z3dzfdxMTETU9PT7+oqOhBSEiI 19DQ0ISZmZmrnp5e1a9fv0BQKFS8srIiCAkJwWZnZ3ebmZlZlpWVleBwOGJTU5OMm5ubg7q6OsfX 13fZwcGhZ2ZmxltOTm59c3MTjcFg6r9+/fo2IiLivL29fZu9vb3PH296n7Kycgyfz597+PDhyMWL F30gEIhJcXHx2507dwpbW1ul/Pz83MBgMDAwMPBFS0tL99evXz0oFEqorq7O0dDQOCAUCnkAAABg MBjr6Oj4paGhoY3H443B4XD52dlZVwcHh6Xx8fGN+Ph4aRQKxTl27BgJg8EIHj58OOPn58fQ19fn SkpKJn348OHx9+/fmX19fQafPn1if/r0SWVgYGA6MzNzZ39/PwUEAsGsrKxcDh06lP/3339rotFo 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 7+fPn3lGRkaM4eHhgLm5OeXQ0FAsiUTyMTY2lj537px4bGxsoLGxcXFgYIA9NzdHEQqF2JGREYml pSXJtrY2ZTc3N6yXl1fsz58/JwUCwZaMjIysWCyek5OTU15bW2tXUlJi6OrqblVWVm5oaGgw9u3b J1NQUPD9+fPnr69cuZLHZrO/0en0HhgMJrO1tbXs4ODgoaGhIREfH9/v7e1tNDAwQOZyudtBQUET kZGRhiQSSaG+vr63pqaG5efnJ2hubh40MjKyFQgEC319fR93796tAYFAjHR1dc17enpK/vvvvwQA AIB37949v3Hjxgc3Nze5b9++Sbu5ua3q6emp8vn8nywWa6u3t/cjiUTyaW1tvV9VVbXZ19eHNTc3 by0rK7M8dOgQamxsbOD06dMYS0tLMwkJCa3/Wzq3bt0adnJyMpaXlzdZX1+/KRaL5aqrq39mZ2fv olKpm729vZRr167N8fl8eRUVlZ9VVVXxQUFBG3A4nDM/P/+7qamJsrW1xYPD4ZJPnjz5b2trqz4l JcVCTU2N6ePjM0Ymk3UdHR1Zm5ubUlZWVkMHDhww4/P5M/Ly8uZUKnXMz89vIy0tTRcEAnEwGIzs 6urqxMzMjIqmpmZ3dHS0gkgkGoiOjn4aERHBnp2dNayvrydevXp1BAwGK4vFYoDNZv/68eOHioGB wUBRUdFsV1cX5/379+jy8nIFBAJBFAgEGyKRSHt1dZWmra29IisrqykhIfFHSkrKSigUzl66dOlX WFjYnrKysq8kEmmAzWYj8/PzA2AwGLGysvLXzZs3iXV1dYOJiYnOSUlJtMXFxe87duzwnJqaKgSB QGsIBEI2NzcXdeLECeuampoXTk5O58LCwtjOzs76LBYLJC0tza+tre1aW1vbrK2tRd67d4/233// 2VVWVoq9vb2fycrKKpqYmEDs7e1HOjs7qS0tLepBQUG1qamp6tbW1oC5uTlDV1eXbGJiIuvq6mpJ IBD+Nzc314HFYncTCARhR0dHq4eHBy4iIkIJgUDoQyAQIQwGmz1z5kwDhUJZkJGR2aipqdn95csX CQkJCSAhIaHjn3/+waytrS2ZmZlh8vPzcf7+/v5QKBTBZDJfnjhxotfDw8MyJCQESaVSn3h7e/tQ qdTWysrKvLKysnv+/v6aaDSap6Cg4M3hcOa+ffvWV1xcfA4CgeAjIyMlgoODBXv37nVaW1tTu3// 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 L6RfvHhB2rt3ryAyMjLg6dOnzjo6OrX19fUrTU1N7NLS0lO2trYnvb29n7S2tl6jUCjNAwMDZfn5 +XwfH5+O0NBQ9/z8fGRUVJRgampK3d/ff2llZaVrcHBQtby8HDk9PS3l5eU1eOnSJRk+nz8uIyOT CIfD0aGhoYekpaX7AABotbW1VVJUVITp6uq64nA4YP/+/VPr6+urCARC6Obm1nr16lUEkUiUb2lp MamqqvKrrq72OXPmjEZgYCAKh8Op7Nq1K66np+ePUChcNzAwABsbG4tzc3PJ7969m4+OjrbB4/Fl x48fz52bm8vH4XAN8fHx/gMDA2/V1dWNZWVltxkaGnrp6emp2drahuFwuFEpKSlET09Pi5ycHNfS 0lKdTCaL09LSank8npmLi0tJbm6upo2Njayuri4eDofTFhcXqS4uLhQOhyNhsVjQuLi4k1QqtWpj Y6OdSqWOlJeXF9y6detgRkZGZWJioguJRBp59OiRYnR0NKazsxNJpVKXOzo6ahEIhACJRA7fvn3b FwQCPdLX11fS19dfefLkyRqJRBqPioqyX19fX8nLy4M8evRI2NPTY3b69Onfi4uLK2g0micWi9Wt ra23MpnMGRQKNX/jxo0sV1dXyerqakVzc7PWlStXGnR1dSMuX76sUlJSAg8NDe1VVFRci4mJcdLT 0zPR09ObePz4sTQMBpMKCgryb2trq6PT6bbh4eHI0tLSucDAwMClpSUOHo/HKSoqNigpKXF+/vyJ NTIyKi0qKuKpqakxyWQyOCsry+Pp06fDwcHBqqA/f/5k0el06tOnT403bdrUn5KSkiwSiZY2NjZ6 USiUg7+/f761tTUFiUTK2dra0goKCkzOnj0729vbywwKCronEAgag4ODK758+XLjn70X3tLScio/ P995x44dHH19/Q8kEsnl8ePHY3w+fyMyMtISh8N5Q6FQ2ODgYB0AACA9PT1XFArlsLi4mA0Gg41C QkJKAADQHh0dRfv7+w/fvHnT9MmTJ33m5uZSxsbGBAAAAC8vL5knT560fP36VcPMzEzO09NToKWl daK8vDzH3d1d6siRI5SoqCihq6urk4qKSjGdTn8kIyNzsrOzc5OOjo7z8vLy2O3btzt0dXXlo6Oj LVtbW8MCAwPTnz592p+Xlzf+8OFDMovFOgmFQpm3b9+mEIlE8PPnz/WkpaWp+vr6DKFQCHn48KFq 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 zPbt2/coKyvbnzlz5ktISIgsISFhs4KCwlRSUlL5wMDAptraWp0rV644oNHoeXl5eY2VlZXvpqam 1hwOZ2X79u1kNBpNSEhIaLOysurG4XAkExOT1cjISERWVha9pqbGKzAwULBlyxZFKyurPVAodFlF RUXf1NRUa3l5Wezk5HRxamqqpKioaN7KysocjUZbtLa2vjY3N7/w48eP3k+fPoFAIFCvj4+PdH5+ HlNXVzfT3d2N9fT01Dx//vy++fl5dRcXF/D27dtnORzOZ3V1devu7u74uro6vJeXF/7ChQsBPB6P amlpaYpGo8V4PJ7t5eX1T25u7qy7uzteIpHMcjgc2tzcnCA8PNwhMzOzcWFhYT02NlaByWR+ZbFY S0+ePLH18vKiWFlZKXZ1dbX5+Pis2NvbK66vr8NaWlpQPT09QqlUipicnOTPzMwgIRCInK6ubiuY QCBQXF1dUXfv3u0eHR2V3bhxA3Bxcem8f//+y5s3b3Z4eHi4JCQkBDGZzOKIiIjm+Pj44bCwsBqR SARqa2t7CgAAoKqqKpTJZPMEAkGgoKAwHxsbm7K2tpZHoVAEN27cUFtZWcnKzMx0q6mpMY2Jifl7 69atLaqqqjsfPXq08f37934ulztuY2NT293dbbq4uPi7tbU1hEAgQOPi4qxhMJiZsbGx/cOHDw0M DAwEf/780QaDwTIymWybl5e318HBgT4+Pv7X1NQ078mTJz/Onz9P+/nz55ynpyd7enrazNnZmd/c 3IyYnp5GAwAAXLt2jRgcHDx84cKFsdbW1oMkEkmIRqPlnZ2dlbS0tGhKSkrEqqqqGldXVxUOhwML DAw0+/Lli2FaWtqsUChkv337lsnj8Y4NDw9XJyUliYlEIjU7O1tOTU3NkEQi6VpZWZHy8/MbyWSy bHZ2VhIbG4ujUCgmampqZjQaDXfw4EEHHo/XraysfAmHw2Xo6OhUCgSCMDKZPHXhwoW26OhoTSUl JVJ6ejqMwWC0CYXCjzo6OnVsNnvh4MGDp+vq6r6AwWCguLj4OZVKvW1lZfWPQCDgfv36Vchms+Gx sbFaPB6PQSKRlmUyGainp0dPJpNxNjY2QMrKyiHW1tamXV1drtPT0/Xl5eWdNBqt1dvb+/bNmzdn v337hnZxcUHW1NTU6+npzQEAANjb23/q6uqKKioqypubm9OIjY01SU5OLvr58+fCmTNngvLy8oZR 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 "
- height="256"
- width="256"
- y="0"
- x="0" />
- </pattern>
- <filter
- id="filter4375-19"
- height="1.7122"
- width="1.0248"
- color-interpolation-filters="sRGB"
- y="-.35609"
- x="-.012418">
- <feGaussianBlur
- id="feGaussianBlur4377-5"
- stdDeviation="1.0664062" />
- </filter>
- <filter
- id="filter4379-0"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur4381-6"
- stdDeviation="0.90031864" />
- </filter>
- <clipPath
- id="clipPath10943"
- clipPathUnits="userSpaceOnUse">
- <path
- id="path10945"
- style="enable-background:new"
- d="m122.25 334.01h128.41c3.1968 0 5.3404 2.0241 5.3438 5.0625l0.125 121.72c0 16.5-3.6622 25.219-10.469 25.219h-197.25c-6.6058 0.59601-7.3649-12.59-7.5-27.219l-0.90625-99.469c-0.01871-2.0256 2.1157-5.0625 5.3125-5.0625l52.281-0.0313c4.1684-0.002 7.5572-1.9403 9.4688-4.7812l7.6562-11.344c1.6157-2.4013 4.3332-4.0938 7.5312-4.0938v0.00005z"
- fill="#808080" />
- </clipPath>
- <filter
- id="filter11355"
- color-interpolation-filters="sRGB">
- <feGaussianBlur
- id="feGaussianBlur11357"
- stdDeviation="0.93036145" />
- </filter>
- <linearGradient
- id="linearGradient10672"
- y2="15.929"
- xlink:href="#linearGradient4908"
- gradientUnits="userSpaceOnUse"
- y1="31.315"
- gradientTransform="matrix(.30890 0 0 .27375 302.94 177.48)"
- x2="24.866"
- x1="24.866" />
- <linearGradient
- id="linearGradient10674"
- y2="181.8"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="193.61"
- x2="314.99"
- x1="311.83" />
- <radialGradient
- id="radialGradient10676"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient3423"
- cx="306.1"
- cy="179.01"
- r="8.6094"
- gradientTransform="matrix(2.5489 0 0 .51730 -475.41 88.05)" />
- <linearGradient
- id="linearGradient10678"
- y2="3.2953"
- xlink:href="#linearGradient4989"
- gradientUnits="userSpaceOnUse"
- y1="71.491"
- gradientTransform="matrix(.28968 0 0 .17690 302.87 183.04)"
- x2="25.054"
- x1="25.054" />
- <linearGradient
- id="linearGradient10680"
- y2="185.05"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="195"
- x2="306.41"
- x1="306.25" />
- <radialGradient
- id="radialGradient10682"
- gradientUnits="userSpaceOnUse"
- cx="147.02"
- cy="525.86"
- r="103.05"
- gradientTransform="matrix(.95029 .0060304 -.094604 .28670 57.057 330.17)">
- <stop
- id="stop4349-3"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop16444"
- stop-color="#fff"
- stop-opacity=".49804"
- offset=".5" />
- <stop
- id="stop4351-6"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <linearGradient
- id="linearGradient10684"
- y2="202.06"
- gradientUnits="userSpaceOnUse"
- y1="184.76"
- x2="315.7"
- x1="311.83">
- <stop
- id="stop4777"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4779"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient10740"
- y2="9.8486"
- xlink:href="#linearGradient4908"
- gradientUnits="userSpaceOnUse"
- y1="24.754"
- gradientTransform="matrix(5.3662 0 0 5.0874 24.876 281.35)"
- x2="14.956"
- x1="14.956" />
- <radialGradient
- id="radialGradient10742"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient4156"
- cx="70.156"
- cy="220.5"
- r="100"
- gradientTransform="matrix(1.9941 0 0 .72285 -59.399 163.61)" />
- <linearGradient
- id="linearGradient10744"
- y2="253.57"
- gradientUnits="userSpaceOnUse"
- y1="357"
- x2="107.5"
- x1="107.5">
- <stop
- id="stop4174"
- offset="0" />
- <stop
- id="stop4176"
- stop-color="#90937c"
- offset="1" />
- </linearGradient>
- <radialGradient
- id="radialGradient10746"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient3423"
- cx="50.125"
- cy="82.962"
- r=".875"
- gradientTransform="matrix(16.008 0 .000034745 43.857 -752.27 -3567.8)" />
- <linearGradient
- id="linearGradient10748"
- y2="-145.75"
- xlink:href="#linearGradient4989"
- gradientUnits="userSpaceOnUse"
- y1="25.019"
- gradientTransform="translate(0,210)"
- x2="-132"
- x1="-132" />
- <radialGradient
- id="radialGradient10750"
- gradientUnits="userSpaceOnUse"
- cx="101.7"
- cy="315.19"
- r="108"
- gradientTransform="matrix(1.4307 0 0 .42130 -49.751 212.95)">
- <stop
- id="stop4103-5"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4109-6"
- stop-color="#fff"
- stop-opacity=".80588"
- offset="0.6" />
- <stop
- id="stop4105-2"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <radialGradient
- id="radialGradient10752"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient3423"
- cx="147.02"
- cy="525.86"
- r="103.05"
- gradientTransform="matrix(1.5869 1.2599e-7 -5.9773e-8 .75290 -86.287 85.9)" />
- <radialGradient
- id="radialGradient10754"
- gradientUnits="userSpaceOnUse"
- cx="44.937"
- cy="410.12"
- r="3.4688"
- gradientTransform="matrix(39.807 0 0 18.279 -1744.9 -7086.7)">
- <stop
- id="stop4326-9"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4328-6"
- stop-color="#fff"
- stop-opacity=".65294"
- offset=".71110" />
- <stop
- id="stop4330-3"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <radialGradient
- id="radialGradient10756"
- gradientUnits="userSpaceOnUse"
- cx="250.09"
- cy="400"
- r="4.4387"
- gradientTransform="matrix(19.019 -.38976 .33942 16.562 -4640.3 -6129.5)">
- <stop
- id="stop4316-3"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4318-1"
- stop-color="#fff"
- stop-opacity=".44706"
- offset=".59645" />
- <stop
- id="stop4320-4"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <linearGradient
- id="linearGradient10758"
- y2="262.26"
- gradientUnits="userSpaceOnUse"
- y1="-46.176"
- x2="-103.86"
- x1="-103.86">
- <stop
- id="stop11581"
- stop-color="#a1a184"
- offset="0" />
- <stop
- id="stop11583"
- stop-color="#4a4a3e"
- offset=".85274" />
- <stop
- id="stop11585"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient11558"
- y2="68.858"
- xlink:href="#linearGradient4989"
- gradientUnits="userSpaceOnUse"
- y1="236"
- gradientTransform="translate(3.3065e-8 250)"
- x2="174"
- x1="174" />
- <radialGradient
- id="radialGradient11560"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient4101"
- cx="101.7"
- cy="315.19"
- r="108"
- gradientTransform="matrix(1.4307 0 0 .42130 -49.751 212.95)" />
- <radialGradient
- id="radialGradient11564"
- gradientUnits="userSpaceOnUse"
- cx="319.98"
- cy="76"
- r="21.978"
- gradientTransform="matrix(3.4068 -.031444 .0078362 .82648 -770.72 23.249)">
- <stop
- id="stop5402"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4610"
- stop-color="#fff"
- stop-opacity=".49804"
- offset=".5" />
- <stop
- id="stop5404"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <linearGradient
- id="linearGradient11566"
- y2="58.425"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="88.129"
- x2="322.32"
- x1="322.32" />
- <linearGradient
- id="linearGradient11604"
- y2="52.626"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="69.892"
- x2="318"
- x1="318" />
- <linearGradient
- id="linearGradient11665"
- y2="131.51"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="146.76"
- x2="320.88"
- x1="320.88" />
- <linearGradient
- id="linearGradient11667"
- y2="68.858"
- xlink:href="#linearGradient4989"
- gradientUnits="userSpaceOnUse"
- y1="232.98"
- gradientTransform="translate(3.308e-8 250)"
- x2="174"
- x1="174" />
- <radialGradient
- id="radialGradient11673"
- gradientUnits="userSpaceOnUse"
- cx="44.937"
- cy="410.12"
- r="3.4688"
- gradientTransform="matrix(39.807 0 0 18.279 -1743.9 -7086.7)">
- <stop
- id="stop4326"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4328"
- stop-color="#fff"
- stop-opacity=".65294"
- offset=".71110" />
- <stop
- id="stop4330"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <radialGradient
- id="radialGradient11675"
- gradientUnits="userSpaceOnUse"
- cx="250.09"
- cy="400"
- r="4.4387"
- gradientTransform="matrix(19.023 0 0 16.566 -4507.5 -6226.3)">
- <stop
- id="stop4316"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4318"
- stop-color="#fff"
- stop-opacity=".44706"
- offset=".59645" />
- <stop
- id="stop4320"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <linearGradient
- id="linearGradient11677"
- y2="135.5"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="154.3"
- x2="319"
- x1="319" />
- <linearGradient
- id="linearGradient11679"
- y2="155.22"
- gradientUnits="userSpaceOnUse"
- y1="149.19"
- x2="305.5"
- x1="305.5">
- <stop
- id="stop4735"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4737"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <linearGradient
- id="linearGradient11723"
- y2="18.848"
- xlink:href="#linearGradient4908"
- gradientUnits="userSpaceOnUse"
- y1="30.385"
- gradientTransform="matrix(.30890 0 0 .27375 301.94 218.48)"
- x2="24.866"
- x1="24.866" />
- <linearGradient
- id="linearGradient11725"
- y2="221.38"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="232.34"
- gradientTransform="translate(0,1)"
- x2="315.29"
- x1="315.05" />
- <radialGradient
- id="radialGradient11727"
- gradientUnits="userSpaceOnUse"
- xlink:href="#linearGradient3423"
- cx="306.1"
- cy="179.01"
- r="8.6094"
- gradientTransform="matrix(2.5489 0 0 .51730 -476.41 129.05)" />
- <linearGradient
- id="linearGradient11729"
- y2="-9.4962"
- xlink:href="#linearGradient4989"
- gradientUnits="userSpaceOnUse"
- y1="50.897"
- gradientTransform="matrix(.28968 0 0 .17690 301.87 224.04)"
- x2="25.188"
- x1="25.188" />
- <linearGradient
- id="linearGradient11731"
- y2="223.68"
- xlink:href="#linearGradient11481"
- gradientUnits="userSpaceOnUse"
- y1="233.24"
- x2="314.47"
- x1="314.49" />
- <linearGradient
- id="linearGradient11733"
- y2="208.75"
- gradientUnits="userSpaceOnUse"
- y1="184.62"
- x2="320.56"
- x1="312.44">
- <stop
- id="stop4631"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop4633"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </linearGradient>
- <radialGradient
- id="radialGradient11735"
- gradientUnits="userSpaceOnUse"
- cx="147.02"
- cy="525.86"
- r="103.05"
- gradientTransform="matrix(1.5869 1.2599e-7 -5.9773e-8 .75290 -86.287 85.9)">
- <stop
- id="stop4349-3-4"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop16502"
- stop-color="#fff"
- stop-opacity=".49804"
- offset=".5" />
- <stop
- id="stop4351-6-4"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <radialGradient
- id="radialGradient7892-7"
- cx="239"
- xlink:href="#linearGradient3423"
- gradientUnits="userSpaceOnUse"
- cy="51"
- r="5" />
- <radialGradient
- id="radialGradient7894-2"
- gradientUnits="userSpaceOnUse"
- cx="179.52"
- cy="178.16"
- r="68.868"
- gradientTransform="matrix(1.3088 .77845 -.34302 .57647 -3.4812 -69.984)">
- <stop
- id="stop15764-4"
- stop-color="#fff"
- offset="0" />
- <stop
- id="stop15766-7"
- stop-color="#fff"
- stop-opacity="0"
- offset="1" />
- </radialGradient>
- <filter
- id="filter15758-4"
- height="1.2122"
- width="1.2028"
- color-interpolation-filters="sRGB"
- y="-.10611"
- x="-.10140">
- <feGaussianBlur
- id="feGaussianBlur15760-4"
- stdDeviation="4.6353635" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4908"
- id="linearGradient7681"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(5.3662,0,0,5.0874,24.876,281.35)"
- x1="14.956"
- y1="24.754"
- x2="14.956"
- y2="9.8486" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4156"
- id="radialGradient7683"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.9941,0,0,0.72285,-59.399,163.61)"
- cx="70.156"
- cy="220.5"
- r="100" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7685"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(16.008,0,3.4745e-5,43.857,-752.27,-3567.8)"
- cx="50.125"
- cy="82.962"
- r=".875" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7687"
- gradientUnits="userSpaceOnUse"
- x1="318"
- y1="69.892"
- x2="318"
- y2="52.626" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4989"
- id="linearGradient7689"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(3.3065e-8,250)"
- x1="174"
- y1="236"
- x2="174"
- y2="68.858" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4101"
- id="radialGradient7691"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.4307,0,0,0.4213,-49.751,212.95)"
- cx="101.7"
- cy="315.19"
- r="108" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7693"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.5869,1.2599e-7,-5.9773e-8,0.7529,-86.287,85.9)"
- cx="147.02"
- cy="525.86"
- r="103.05" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#radialGradient11564"
- id="radialGradient7695"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4068,-0.031444,0.0078362,0.82648,-770.72,23.249)"
- cx="319.98"
- cy="76"
- r="21.978" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7697"
- gradientUnits="userSpaceOnUse"
- x1="322.32"
- y1="88.129"
- x2="322.32"
- y2="58.425" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4908"
- id="linearGradient7745"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(5.3662,0,0,5.0874,24.876,281.35)"
- x1="14.956"
- y1="24.754"
- x2="14.956"
- y2="9.8486" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4156"
- id="radialGradient7747"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.9941,0,0,0.72285,-59.399,163.61)"
- cx="70.156"
- cy="220.5"
- r="100" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7749"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(16.008,0,3.4745e-5,43.857,-752.27,-3567.8)"
- cx="50.125"
- cy="82.962"
- r=".875" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7751"
- gradientUnits="userSpaceOnUse"
- x1="318"
- y1="69.892"
- x2="318"
- y2="52.626" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4989"
- id="linearGradient7753"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(3.3065e-8,250)"
- x1="174"
- y1="236"
- x2="174"
- y2="68.858" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4101"
- id="radialGradient7755"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.4307,0,0,0.4213,-49.751,212.95)"
- cx="101.7"
- cy="315.19"
- r="108" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7757"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.5869,1.2599e-7,-5.9773e-8,0.7529,-86.287,85.9)"
- cx="147.02"
- cy="525.86"
- r="103.05" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#radialGradient11564"
- id="radialGradient7759"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4068,-0.031444,0.0078362,0.82648,-770.72,23.249)"
- cx="319.98"
- cy="76"
- r="21.978" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7761"
- gradientUnits="userSpaceOnUse"
- x1="322.32"
- y1="88.129"
- x2="322.32"
- y2="58.425" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4908"
- id="linearGradient7809"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(5.3662,0,0,5.0874,24.876,281.35)"
- x1="14.956"
- y1="24.754"
- x2="14.956"
- y2="9.8486" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4156"
- id="radialGradient7811"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.9941,0,0,0.72285,-59.399,163.61)"
- cx="70.156"
- cy="220.5"
- r="100" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7813"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(16.008,0,3.4745e-5,43.857,-752.27,-3567.8)"
- cx="50.125"
- cy="82.962"
- r=".875" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7815"
- gradientUnits="userSpaceOnUse"
- x1="318"
- y1="69.892"
- x2="318"
- y2="52.626" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4989"
- id="linearGradient7817"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(3.3065e-8,250)"
- x1="174"
- y1="236"
- x2="174"
- y2="68.858" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4101"
- id="radialGradient7819"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.4307,0,0,0.4213,-49.751,212.95)"
- cx="101.7"
- cy="315.19"
- r="108" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3423"
- id="radialGradient7821"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.5869,1.2599e-7,-5.9773e-8,0.7529,-86.287,85.9)"
- cx="147.02"
- cy="525.86"
- r="103.05" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#radialGradient11564"
- id="radialGradient7823"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4068,-0.031444,0.0078362,0.82648,-770.72,23.249)"
- cx="319.98"
- cy="76"
- r="21.978" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11481"
- id="linearGradient7825"
- gradientUnits="userSpaceOnUse"
- x1="322.32"
- y1="88.129"
- x2="322.32"
- y2="58.425" />
- </defs>
- <g
- id="layer17"
- transform="translate(0,300)">
- <g
- id="layer18"
- display="none">
- <rect
- id="rect3589"
- style="enable-background:accumulate"
- height="24"
- width="120"
- display="inline"
- y="16"
- x="331"
- fill="#eeeeec" />
- <rect
- id="rect4698"
- style="enable-background:accumulate"
- height="48"
- width="48"
- display="inline"
- y="-200"
- x="321"
- fill="#eeeeec" />
- <rect
- id="rect4700"
- style="enable-background:accumulate"
- height="32"
- width="32"
- display="inline"
- y="-124"
- x="328"
- fill="#eeeeec" />
- <rect
- id="rect4702"
- style="enable-background:accumulate"
- height="22"
- width="22"
- display="inline"
- y="-73"
- x="328"
- fill="#eeeeec" />
- <rect
- id="rect4704"
- style="enable-background:accumulate"
- height="16"
- width="16"
- display="inline"
- y="-31"
- x="328"
- fill="#eeeeec" />
- <rect
- id="rect4706"
- style="enable-background:accumulate"
- height="24"
- width="24"
- display="inline"
- y="-74"
- x="327"
- fill="#eeeeec" />
- <rect
- id="rect4708"
- style="enable-background:accumulate"
- height="256"
- width="256"
- display="inline"
- y="-222"
- x="45"
- fill="#eeeeec" />
- <text
- id="text4710"
- style="enable-background:new"
- xml:space="preserve"
- font-size="18.301px"
- display="inline"
- y="-228.48639"
- x="45.970734"
- font-family="Bitstream Vera Sans"
- fill="#000000"><tspan
- id="tspan4712"
- x="45.970734"
- y="-228.48639">places</tspan></text>
- <text
- id="text4714"
- style="enable-background:new"
- line-height="125%"
- font-weight="bold"
- xml:space="preserve"
- font-size="18.301px"
- y="-228.48639"
- x="166.9707"
- font-family="Droid Sans"
- display="inline"
- fill="#000000"><tspan
- id="tspan4716"
- x="166.9707"
- y="-228.48639">sparkleshare</tspan></text>
- <rect
- id="rect22378"
- style="enable-background:accumulate"
- height="22"
- width="22"
- display="inline"
- y="-73"
- x="358"
- fill="#ededed" />
- <rect
- id="rect22380"
- style="enable-background:accumulate"
- height="24"
- width="24"
- display="inline"
- y="-74"
- x="357"
- fill="#ededed" />
- </g>
- <g
- id="layer20">
- <g
- id="g10370"
- style="enable-background:new"
- transform="translate(55,-250)">
- <path
- id="path10372"
- style="enable-background:new"
- d="m304.53 220.5c-0.57203 0.064-1.0035 0.54941-1 1.125v10.344c0.00006 0.62129 0.50371 1.1249 1.125 1.125h12.719c0.62129-0.00006 1.1249-0.50371 1.125-1.125v-8.3125c-0.00006-0.62129-0.50371-1.1249-1.125-1.125h-5.8438c-0.3334 0-0.20853 0.0527-0.40625-0.21875l-0.96875-1.3438c-0.2098-0.29211-0.54661-0.46632-0.90625-0.46875h-4.5938c-0.0416-0.002-0.0834-0.002-0.125 0z"
- fill-rule="evenodd"
- stroke="url(#linearGradient11725)"
- fill="url(#linearGradient11723)" />
- <path
- id="path10374"
- opacity=".4"
- style="enable-background:new"
- d="m304.62 221.44c-0.10325 0.0115-0.15688 0.0836-0.15625 0.1875v10.344c0.00001 0.11468 0.0728 0.18749 0.1875 0.1875h12.719c0.11468-0.00001 0.18749-0.0728 0.1875-0.1875v-8.3125c-0.00001-0.11468-0.0728-0.18749-0.1875-0.1875h-5.8438c-0.0587 0-0.0805-0.001-0.15625 0-0.0757 0.001-0.29559 0.0325-0.5625-0.125-0.26691-0.15754-0.34468-0.32772-0.375-0.375-0.0303-0.0473-0.0322-0.0522-0.0625-0.0937l-0.96875-1.3438c-0.0355-0.0494-0.0954-0.0933-0.15625-0.0937h-4.5938c-0.0104 0.00017-0.0208 0.00017-0.0313 0l0.00005-0.0001z"
- stroke="url(#radialGradient11727)"
- fill="none" />
- <path
- id="path10377"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m309.78 222.5c-0.2554 0-0.45965 0.13987-0.59375 0.34375-0.43264 0.54853-1.1235 1.6562-1.6562 1.6562h-2.6875c-0.83807 0-1.3437 0.5428-1.3438 1.4688v6.125c0 1.3376 0.65057 2.4062 1.4688 2.4062h12.062c0.81819 0 1.4688-1.0687 1.4688-2.4062v-8.9062c0-0.37505-0.29595-0.6875-0.65625-0.6875h-8.0625z"
- fill-rule="evenodd"
- stroke="url(#linearGradient11731)"
- fill="url(#linearGradient11729)" />
- <path
- id="path10379"
- opacity=".40639"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m310.94 183.5c-0.74659 0.74659-1.6086 2-2.4062 2h-2.6875c-0.20314 0-0.22418 0.0344-0.25 0.0625-0.0258 0.0281-0.0937 0.12531-0.0937 0.40625v7.5312h13v-10h-7.5625-0.00005z"
- transform="translate(-1,40)"
- stroke="url(#linearGradient11733)"
- fill="none" />
- <path
- id="path10381"
- opacity=".71595"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- fill-rule="evenodd"
- transform="matrix(.065331 0 0 .29412 301.15 90.449)"
- filter="url(#filter4375-3-0)"
- fill="url(#radialGradient11735)" />
- </g>
- <g
- id="g10383"
- opacity=".7"
- style="enable-background:new"
- fill-rule="evenodd"
- transform="matrix(1.0414 0 0 .92475 41.225 -241.97)">
- <rect
- id="rect10385"
- opacity=".5"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- rx="8.1534"
- ry="10"
- height="20"
- filter="url(#filter4496)"
- width="230"
- y="201"
- x="15" />
- <rect
- id="rect10387"
- opacity=".3"
- style="enable-background:new"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- rx="8.1534"
- ry="10"
- height="20"
- filter="url(#filter4508)"
- width="230"
- y="201"
- x="15" />
- </g>
- <g
- id="g10389"
- style="enable-background:new"
- transform="translate(55,-250)">
- <g
- id="g10391"
- style="enable-background:new"
- clip-path="url(#clipPath4061)"
- transform="matrix(.20370 0 0 .20794 289.85 -11.138)">
- <path
- id="path10393"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-147.52c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-4.4338-0.2055-6.493-2.5614l-13.071-14.954c-1.7575-2.0107-4.2252-2.5106-6.0898-2.5106h-71.746z"
- fill-rule="evenodd"
- fill="url(#linearGradient10740)" />
- <path
- id="path10396"
- opacity=".4"
- style="enable-background:new"
- d="m122.25 348.81c-3.1981 0-5.9155 1.7237-7.5312 4.125l-7.6562 11.344c-1.9116 2.841-5.3003 4.7797-9.4688 4.7812h-52.25c-3.1968 0-5.3924 3.0374-5.3438 5.0625l0.40625 16.688h214.31l1.28-36.94c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-128.41z"
- fill-rule="evenodd"
- filter="url(#filter4123)" />
- <path
- id="path10398"
- opacity=".53881"
- style="enable-background:new"
- d="m52.094 313c-2.336 0-4.094 1.27-4.094 3.94v2c0-2.67 1.758-3.94 4.094-3.94h70.75c1.8646 0 4.3363 0.48933 6.0938 2.5l13.07 14.97c2.0592 2.3559 4.8072 2.5625 6.5 2.5625h94.969c2.5054 0 4.5312 1.5803 4.5312 4.5312v-2c0-2.951-2.0259-4.5312-4.5312-4.5312h-94.969c-1.6928-0.00001-4.4408-0.2066-6.5-2.5625l-13.06-14.97c-1.7575-2.0107-4.2292-2.5-6.0938-2.5h-70.75z"
- fill-rule="evenodd"
- fill="url(#radialGradient10742)" />
- <rect
- id="rect10400"
- opacity=".45"
- style="enable-background:new"
- transform="matrix(.77346 0 0 1 10.907 260)"
- rx=".875"
- ry=".875"
- height="52.75"
- filter="url(#filter3458)"
- width="1.75"
- y="57"
- x="49.25"
- fill="url(#radialGradient10746)" />
- </g>
- <path
- id="path10402"
- opacity=".1"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m300.53 53.531v34.844c0 0.20329 0.0697 0.28522 0.0937 0.3125s-0.002 0.03125 0.0625 0.03125h38.75c0.009-0.02998 0.0312-0.0363 0.0312-0.1875v-31.031h-19.156c-0.45375 0.000001-1.3862-0.10695-2.0938-0.875l-2.6875-2.9062c-0.16068-0.17442-0.30923-0.1875-0.46875-0.1875h-14.531z"
- transform="translate(-.000017 1)"
- stroke="#fff"
- fill="none" />
- <path
- id="path10404"
- style="enable-background:new"
- d="m300.34 53.5c-0.4788 0-0.83934 0.26755-0.83934 0.8266v34.048c0 0.82708 0.50158 1.3781 1.1832 1.3781h38.859c0.6856 0 0.95797-0.51499 0.95797-1.2359v-30.095c0-0.61758-0.41219-0.95153-0.92579-0.95153h-19.267c-0.34703 0-0.89129-0.05868-1.3311-0.53606l-2.6796-2.9087c-0.37533-0.40742-0.86615-0.52542-1.2484-0.52542h-14.7z"
- stroke="url(#linearGradient11604)"
- fill="none" />
- </g>
- <g
- id="g10406"
- style="enable-background:new"
- transform="matrix(.95581 0 0 .96875 69.14 -247.12)">
- <g
- id="g10408"
- fill-rule="evenodd"
- style="enable-background:new"
- transform="matrix(.20370 0 0 .19480 289.85 -4.0923)">
- <path
- id="path10410"
- d="m42.874 352.72 52.267-0.0193c4.1684-0.002 7.2209-2.2103 9.4817-4.7828l11.312-12.872c1.9108-2.1744 4.3437-4.1154 7.5418-4.1154h128.42c3.1968 0 5.3068 2.0258 5.3281 5.0642l0.95575 136.27c0.0219 3.1253-2.1672 15.872-10.687 15.872h-200.93c-3.2882 0-8.7273-8.8895-8.7346-12.015l-0.279-118.33c-0.0048-2.0257 2.1312-5.0642 5.3281-5.0642z"
- fill="url(#linearGradient11558)" />
- <path
- id="path10412"
- style="enable-background:new"
- d="m123.25 335c-3.1981 0-5.9155 1.7237-7.5312 4.125l-7.6562 11.344c-1.9116 2.841-5.3003 4.7797-9.4688 4.7812h-53.25c-3.1968 0-5.3924 2.0374-5.3438 4.0625l0.03125 1.6562c0.18147-2.0076 2.2909-3.7188 5.3125-3.7188h53.25c4.1684-0.002 7.5572-1.9403 9.4688-4.7812l7.66-11.34c1.61-2.4 4.33-4.12 7.53-4.12h127.41c2.8797 0.00001 5.0005 1.6414 5.3125 4.1875l0.03-1.13c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-127.41z"
- fill="url(#radialGradient11560)" />
- <path
- id="path10414"
- opacity=".71984"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- transform="matrix(1 0 0 3.7326 0 -1328.7)"
- filter="url(#filter4375)"
- fill="url(#radialGradient10752)" />
- </g>
- <path
- id="path10418"
- opacity=".82101"
- style="enable-background:new"
- d="m314.62 61.562c-0.27285 0-0.50707 0.15801-0.71875 0.4375l-1.5938 2.0938c-0.60305 0.79616-1.6115 1.3746-2.8125 1.375h-10.875c-0.004 0 0.002-0.0034-0.0312 0.03125-0.0333 0.03464-0.0317 0.12302-0.0312-0.0625l-0.0312 5.3125c-0.0122 3.8367-0.0453 9.007 0.15625 13.188 0.1008 2.0902 0.25866 3.9401 0.5 5.1875 0.11807 0.61023 0.26774 1.0867 0.375 1.3125h40.875c0.0692-0.12036 0.17803-0.37231 0.28125-0.78125 0.22371-0.8863 0.38957-2.3178 0.5-4.0938 0.22087-3.5518 0.22025-8.5147 0.21875-13.969v-10.031c-0.003-0.0017 0.0133 0-0.0625 0h-26.75z"
- xlink:href="#path9590"
- stroke="url(#radialGradient11564)"
- stroke-width="1.0392"
- fill="none" />
- <path
- id="path10420"
- style="enable-background:new"
- d="m298.61 64.417 10.889-0.0039c0.86843-0.000314 1.5502-0.41422 1.9754-0.97545l1.5896-2.0986c0.35-0.474 0.9-0.839 1.57-0.839h26.754c0.66601 0 1.1098 0.41315 1.11 1.0328l0.003 10.065c0.003 10.907 0.0259 19.902-1.8046 19.902h-41.448c-1.9551 0-1.7911-13.079-1.7667-20.743l0.0169-5.3071c0.001-0.41313 0.44401-1.0328 1.11-1.0328h-0.00002z"
- stroke="url(#linearGradient11566)"
- stroke-width="1.0392"
- fill="none" />
- </g>
- <g
- id="g11614"
- style="enable-background:new"
- transform="translate(-395,-550)">
- <g
- id="g10422"
- opacity=".7"
- style="enable-background:new"
- fill-rule="evenodd"
- transform="matrix(.70690 0 0 .59614 542.32 400.81)">
- <rect
- id="rect10424"
- opacity=".5"
- ry="10"
- rx="8.1534"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- height="20"
- filter="url(#filter4496)"
- width="230"
- y="201"
- x="15" />
- <rect
- id="rect10426"
- opacity=".3"
- ry="10"
- style="enable-background:new"
- rx="8.1534"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- height="20"
- filter="url(#filter4508)"
- width="230"
- y="201"
- x="15" />
- </g>
- <g
- id="g10428"
- style="enable-background:new"
- transform="translate(450,300)">
- <g
- id="g10430"
- style="enable-background:new"
- clip-path="url(#clipPath6238)"
- transform="matrix(.13127 0 0 .13405 299.57 88.831)">
- <path
- id="path10432"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-153.46c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-3.9044-0.77514-6.493-2.5614l-13.071-9.0198c-2.2092-1.5245-4.2252-2.5106-6.0898-2.5106l-71.746 0.01z"
- fill-rule="evenodd"
- fill="url(#linearGradient10740)" />
- <path
- id="path10434"
- opacity=".4"
- style="enable-background:new"
- d="m122.25 325.65c-3.1981 0-5.9155 1.7237-7.5312 4.125l-7.6562 5.2824c-1.9116 2.841-5.3003 4.7797-9.4688 4.7812h-52.25c-3.1968 0-5.3924 3.0374-5.3438 5.0625l0.40625 16.688 214.31 6.0613 1.28-36.94c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-128.41z"
- fill-rule="evenodd"
- transform="translate(0,20)"
- filter="url(#filter4123)" />
- <path
- id="path10436"
- opacity=".53881"
- style="enable-background:new"
- d="m52.094 315.1c-2.3356 0-4.0938 1.2663-4.0938 3.9375v2c0-2.6712 1.7581-3.9375 4.0938-3.9375h70.75c1.8646 0 4.3363 0.48933 6.0938 2.5l13.07 9.6c2.0592 2.3559 4.8072 2.5625 6.5 2.5625h94.969c2.5054 0 4.5312 1.5803 4.5312 4.5312v-2c0-2.951-2.0259-4.5312-4.5312-4.5312h-94.969c-1.6928-0.00001-4.4408-0.2066-6.5-2.5625l-13.062-9.6068c-1.7575-2.0107-4.2292-2.5-6.0938-2.5h-70.75z"
- fill-rule="evenodd"
- fill="url(#radialGradient10742)" />
- <rect
- id="rect10438"
- opacity=".45"
- ry=".875"
- style="enable-background:new"
- rx=".875"
- transform="matrix(.77346 0 0 1 10.907 260)"
- height="52.75"
- filter="url(#filter3458)"
- width="1.75"
- y="57"
- x="49.25"
- fill="url(#radialGradient10746)" />
- </g>
- <path
- id="path10440"
- opacity=".1"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m306.5 131.5v22h25v-19.969h-12.312c-0.48404-0.00002-0.98403-0.19311-1.4688-0.5625l-1.75-1.3438c-0.19-0.15-0.3-0.13-0.22-0.13h-9.25z"
- stroke="#fff"
- fill="none" />
- <path
- id="path10442"
- style="enable-background:new"
- d="m306.05 130.5c-0.31529 0-0.55273 0.17248-0.55273 0.53286v22.593c0 0.53317 0.33031 0.88836 0.7792 0.88836h25.59c0.45149 0 0.63086-0.33199 0.63086-0.79671v-20.575c0-0.39812-0.27144-0.61339-0.60966-0.61339h-12.688c-0.22853 0-0.54045-0.0894-0.87656-0.34557l-1.7646-1.3447c-0.28685-0.21859-0.57039-0.33871-0.8221-0.33871l-9.686-0.00001z"
- stroke="url(#linearGradient11665)"
- fill="none" />
- </g>
- <g
- id="g10444"
- style="enable-background:new"
- transform="translate(450,300)">
- <g
- id="g10446"
- fill-rule="evenodd"
- style="enable-background:new"
- transform="matrix(.13127 0 0 .11708 299.57 96.848)">
- <path
- id="path10448"
- fill="url(#linearGradient11667)"
- d="m42.874 349.71 52.267-0.0193c4.1684-0.002 6.9379-2.5673 9.4817-4.7828l11.312-9.8521c2.15-1.8726 4.3437-4.1154 7.5418-4.1154h128.42c3.1968 0 5.416 2.0271 5.3281 5.0642l-4.2511 146.94c-0.0904 3.1239-2.1921 5.209-5.4803 5.209h-200.93c-3.2882 0-5.3942-2.0848-5.4803-5.209l-3.534-128.17c-0.05581-2.0249 2.1312-5.0642 5.3281-5.0642z" />
- <path
- id="path10450"
- style="enable-background:new"
- d="m123.25 335c-3.1981 0-5.9155 1.7237-7.5312 4.125l-9.6762 7.9465c-1.9116 2.841-5.3003 4.7797-9.4687 4.7812h-51.23c-3.1968 0-5.3924 2.0374-5.3438 4.0625l0.03125 1.6562c0.18147-2.0076 2.2909-3.7188 5.3125-3.7188h51.23c4.1684-0.002 7.5572-1.9403 9.4687-4.7812l9.6762-7.9465c1.61-2.4 4.33-4.12 7.53-4.12h127.41c2.8797 0.00001 5.0005 1.6414 5.3125 4.1875l0.03-1.13c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-127.41z"
- fill="url(#radialGradient11560)" />
- <path
- id="path10452"
- opacity=".71595"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- transform="matrix(1.017 0 0 4.334 -2.4994 -1619.3)"
- filter="url(#filter4375)"
- fill="url(#radialGradient10752)" />
- <g
- id="g10454"
- style="enable-background:new"
- transform="translate(0,10)"
- filter="url(#filter4379)">
- <path
- id="path10456"
- style="enable-background:new"
- d="m44.344 346.72c-0.81378 0-1.502 0.39781-2.0625 1-0.56052 0.60219-0.81462 1.443-0.8125 1.5312l2.906 121.47c0.0243 1.0112 0.33196 1.6322 0.78125 2.0625 0.44929 0.43025 1.1319 0.75 2.25 0.75h1c-1.1181 0-1.8007-0.31975-2.25-0.75-0.44929-0.43025-0.75695-1.0513-0.78125-2.0625l-2.906-121.47c-0.0021-0.0882 0.25198-0.92906 0.8125-1.5312 0.56052-0.60219 1.2487-1 2.0625-1h-1z"
- fill="url(#radialGradient11673)" />
- <path
- id="path10458"
- style="enable-background:new"
- d="m250.66 326.47c1.0751 0 1.7892 0.34909 2.2188 0.75 0.42956 0.40091 0.68674 0.86171 0.65625 1.75l-4.875 141.72c-0.0355 1.0334-0.3727 1.6672-0.8125 2.0938-0.4398 0.42651-1.0697 0.75-2.1875 0.75h1c1.1178 0 1.7477-0.32349 2.1875-0.75s0.77703-1.0603 0.8125-2.0938l4.875-141.72c0.0305-0.88829-0.22669-1.3491-0.65625-1.75-0.42956-0.40091-1.1437-0.75-2.2188-0.75h-1z"
- fill="url(#radialGradient11675)" />
- </g>
- </g>
- <path
- id="path10460"
- style="enable-background:new"
- fill="none"
- stroke="url(#linearGradient11677)"
- d="m305.22 137.52 7.0174-0.002c0.55965-0.00019 0.94333-0.30684 1.273-0.59786l1.0244-0.9043c0.27864-0.24597 0.58319-0.51443 1.0126-0.51443h17.241c0.42921 0 0.71564 0.2532 0.71535 0.63304l-0.0123 15.882c-0.002 2.0258-0.93512 2.4852-1.3766 2.4852h-26.483c-0.44148 0-1.1441-0.47913-1.142-2.4636l0.0144-13.884c0.00026-0.25321 0.28614-0.63303 0.71534-0.63303l-0.00006-0.00041z" />
- <path
- id="path10462"
- opacity=".3"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m315.53 136.5c-0.0349 0-0.0689 0.007-0.34375 0.25l-1.0312 0.90625c-0.34006 0.3002-0.98039 0.87468-1.9375 0.875h-6.7188v13.5c-0.00091 0.87701 0.16607 1.3319 0.25 1.4688h26.375c-0.27462 0 0.37365 0.21923 0.375-1.5v-15.5h-16.969z"
- stroke="url(#linearGradient11679)"
- fill="none" />
- </g>
- </g>
- <g
- id="g10348"
- opacity=".9"
- style="enable-background:new"
- fill-rule="evenodd"
- transform="matrix(.46656 0 0 .79230 218.99 -125)">
- <path
- id="path10352"
- opacity=".5"
- d="m42.556 201h186.56c8.79 0 15.88 4.46 15.88 10s-7.0862 10-15.888 10h-186.56c-8.8021 0-15.888-4.46-15.888-10s7.0862-10 15.888-10z"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- filter="url(#filter4496)" />
- <path
- id="path10354"
- opacity=".3"
- style="enable-background:new"
- d="m30.157 201h211.35c8.3967 0 15.157 4.46 15.157 10s-6.7598 10-15.157 10h-211.35c-8.4 0-15.16-4.46-15.16-10s6.7598-10 15.157-10z"
- transform="matrix(.18370 0 0 .15777 296.62 56.633)"
- filter="url(#filter4508)" />
- </g>
- <g
- id="g10356"
- style="enable-background:new"
- transform="translate(55,-250)">
- <path
- id="path10358"
- style="enable-background:new"
- d="m306.53 179.5c-0.57203 0.064-1.0035 0.54941-1 1.125v13.344c0.00006 0.62129 0.50371 1.1249 1.125 1.125h14.719c0.62129-0.00006 1.1249-0.50371 1.125-1.125v-11.312c-0.00006-0.62129-0.50371-1.1249-1.125-1.125h-6.8438c-0.3334 0-0.20853 0.0527-0.40625-0.21875l-0.96875-1.3438c-0.2098-0.29211-0.54661-0.46632-0.90625-0.46875h-5.5938c-0.0416-0.002-0.0834-0.002-0.125 0z"
- fill-rule="evenodd"
- stroke="url(#linearGradient10674)"
- fill="url(#linearGradient10672)" />
- <path
- id="path10360"
- opacity=".4"
- style="enable-background:new"
- d="m306.62 180.44c-0.10325 0.0115-0.15688 0.0836-0.15625 0.1875v13.344c0.00001 0.11468 0.0728 0.18749 0.1875 0.1875h14.719c0.11468-0.00001 0.18749-0.0728 0.1875-0.1875v-11.312c-0.00001-0.11468-0.0728-0.18749-0.1875-0.1875h-6.8438c-0.0587 0-0.0805-0.001-0.15625 0-0.0757 0.001-0.29559 0.0325-0.5625-0.125-0.26691-0.15754-0.34468-0.32772-0.375-0.375-0.0303-0.0473-0.0322-0.0522-0.0625-0.0937l-0.96875-1.3438c-0.0355-0.0494-0.0954-0.0933-0.15625-0.0937h-5.5938c-0.0104 0.00017-0.0208 0.00017-0.0313 0l0.00005-0.0001z"
- stroke="url(#radialGradient10676)"
- fill="none" />
- <path
- id="path10363"
- stroke-linejoin="round"
- style="enable-background:new"
- fill="url(#linearGradient10678)"
- fill-rule="evenodd"
- stroke="url(#linearGradient10680)"
- d="m305.85 185.49h4.6897c0.5327 0 1.2151-1.0847 1.6478-1.6332 0.1341-0.20388 0.34688-0.35593 0.60228-0.35593 3.5701 0.006 7.1406-0.0156 10.71 0.0141v9.309c0 3.2028-1.2901 3.677-1.6504 3.677h-15.699c-0.36031 0-1.6504-0.40781-1.6504-3.677v-7.3424s1.3498 0.009 1.3498 0.009v-0.00003z" />
- <path
- id="path10366"
- opacity=".71595"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- fill-rule="evenodd"
- transform="matrix(.086612 0 0 .26364 301.19 67.064)"
- filter="url(#filter4375-3)"
- fill="url(#radialGradient10682)" />
- <path
- id="path10368"
- opacity=".4"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m312.94 184.5c-0.17581 0.22664-0.44781 0.6386-0.78125 1.0312-0.17236 0.20297-0.35508 0.41053-0.59375 0.59375s-0.5515 0.375-1.0312 0.375h-4.6875c-0.20314 0-0.22418 0.0344-0.25 0.0625-0.0258 0.0281-0.0937 0.12531-0.0937 0.40625v5.8438c0 3.0049 1.0699 2.6875 0.65625 2.6875h15.688c-0.53644 0 0.65626 0.24559 0.65625-2.6875v-8.3125h-9.5625-0.00005z"
- stroke="url(#linearGradient10684)"
- fill="none" />
- </g>
- <path
- id="path5717-2"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m366.38-23.985c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z"
- stroke="#c66f11"
- stroke-linecap="round"
- fill="none" />
- <path
- id="path5717"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m366.38-24.985c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z"
- stroke="#fde8d0"
- stroke-linecap="round"
- fill="none" />
- <g
- id="g5833-3"
- stroke-linejoin="round"
- style="enable-background:new"
- transform="translate(-1541.7 -889.1)"
- stroke-linecap="round"
- fill="none">
- <path
- id="path5717-2-7"
- style="enable-background:new"
- d="m1911 825.96c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z"
- stroke="#c56b0c" />
- <path
- id="path5717-0"
- style="enable-background:new"
- d="m1911 824.96c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z"
- stroke="#fde8d0" />
- </g>
- <g
- id="g5833-3-4-4"
- style="enable-background:new"
- transform="matrix(2.2594 0 0 2.2594 -3942.3 -2045.7)"
- stroke="#c36e11"
- stroke-width="2">
- <path
- id="path5717-0-9-7"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m1911 824.96c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494-0.1586 0.0802h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264l-0.1586-0.0802-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001v0z"
- stroke="#c36e11"
- stroke-linecap="round"
- stroke-width=".88521"
- fill="none" />
- </g>
- <g
- id="g5833-3-4"
- style="enable-background:new"
- transform="matrix(2.2594 0 0 2.2594 -3942.3 -2046.7)"
- stroke="#fde2c0"
- stroke-width="2">
- <path
- id="path5717-0-9"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m1911 824.96c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494-0.1586 0.0802h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264l-0.1586-0.0802-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001v0z"
- stroke="#fde2c0"
- stroke-linecap="round"
- stroke-width=".88521"
- fill="none" />
- </g>
- <path
- id="path5717-0-9-4-5"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m374.29-110.21c-0.2567 0.0331-0.4832 0.23499-0.5466 0.48632l-1.0927 3.2827s-0.1467 0.0739-0.2423 0.12249h-3.3395c-0.1867 0-0.3689 0.0973-0.4859 0.24315-0.2462 0.27585-0.1844 0.76528 0.1207 0.97266l2.7325 2.0062 0.058 0.2918-1.032 3.2218c-0.1435 0.50286 0.5294 1.0082 0.9715 0.72947l2.7322-2.006h0.3497l2.7325 2.006c0.2376 0.15564 0.5781 0.12845 0.7891-0.0603 0.1789-0.16536 0.2534-0.43555 0.1827-0.66879l-1.0323-3.2218c-0.098-0.0194 0.038-0.19453 0.058-0.29178l2.7321-2.0062c0.3061-0.20736 0.3667-0.6968 0.1207-0.97264-0.1161-0.14585-0.2991-0.23713-0.4857-0.24316h-3.4004s-0.153-0.0774-0.2422-0.12249l-1.0323-3.2826c-0.031-0.11485-0.095-0.22216-0.1826-0.30405-0.1283-0.12447-0.3079-0.19259-0.4857-0.18286l0.021 0.0002-0.0009 0.00001 0.0004-0.00003z"
- stroke="#bb660b"
- stroke-linecap="round"
- stroke-width="1.5"
- fill="none" />
- <g
- id="g5833-3-4-9"
- style="enable-background:new"
- transform="matrix(1.5273 0 0 1.5273 -2544.3 -1370.2)"
- stroke="#fde8d0"
- stroke-width=".98214">
- <path
- id="path5717-0-9-4"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m1911 824.3c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494s-0.096 0.0484-0.1586 0.0802h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264s-0.1002-0.0507-0.1586-0.0802l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001v0z"
- stroke="#fde8d0"
- stroke-linecap="round"
- stroke-width=".98214"
- fill="none" />
- </g>
- <rect
- id="rect12657-5"
- style="color:#000000;enable-background:new"
- rx="0"
- ry="0"
- height="0"
- width="2"
- y="-60"
- x="701"
- fill="#888a85" />
- </g>
- <g
- id="layer21">
- <g
- id="g10464"
- opacity=".8"
- style="enable-background:new"
- fill-rule="evenodd"
- transform="translate(45,-251)">
- <rect
- id="rect10466"
- opacity=".8"
- transform="matrix(.91304 0 0 0.3 28.304 171.7)"
- rx="8.1534"
- ry="10"
- height="20"
- filter="url(#filter4458)"
- width="230"
- y="201"
- x="15" />
- <rect
- id="rect10468"
- style="enable-background:new"
- transform="matrix(.91304 0 0 0.3 28.304 171.7)"
- rx="8.1534"
- ry="10"
- height="20"
- filter="url(#filter4454)"
- width="230"
- y="201"
- x="15" />
- </g>
- <g
- id="g10470"
- style="enable-background:new"
- transform="matrix(1 0 0 1.0054 45 -491.56)">
- <g
- id="g10472"
- style="enable-background:new"
- transform="translate(0,-20)"
- clip-path="url(#clipPath4061)">
- <path
- id="path10474"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-147.52c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-4.4338-0.2055-6.493-2.5614l-13.071-14.954c-1.7575-2.0107-4.2252-2.5106-6.0898-2.5106h-71.746z"
- fill-rule="evenodd"
- fill="url(#linearGradient10740)" />
- <path
- id="path10476"
- opacity=".71233"
- style="enable-background:new"
- d="m122.25 324c-3.1981 0-5.9155 1.7237-7.5312 4.125l-7.6562 11.344c-1.9116 2.841-5.3003 4.7797-9.4688 4.7812h-52.25c-3.1968 0-5.3924 3.0374-5.3438 5.0625l0.409 16.7h214.31l1.28-36.94c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-128.41z"
- fill-rule="evenodd"
- transform="translate(0,20)"
- filter="url(#filter4123)" />
- <path
- id="path10478"
- opacity=".53881"
- style="enable-background:new"
- d="m52.094 313c-2.336 0-4.094 1.27-4.094 3.94v2c0-2.67 1.758-3.94 4.094-3.94h70.75c1.8646 0 4.3363 0.48933 6.0938 2.5l13.07 14.97c2.0592 2.3559 4.8072 2.5625 6.5 2.5625h94.969c2.5054 0 4.5312 1.5803 4.5312 4.5312v-2c0-2.951-2.0259-4.5312-4.5312-4.5312h-94.969c-1.6928-0.00001-4.4408-0.2066-6.5-2.5625l-13.06-14.97c-1.7575-2.0107-4.2292-2.5-6.0938-2.5h-70.75z"
- fill-rule="evenodd"
- fill="url(#radialGradient10742)" />
- <path
- id="path10480"
- style="enable-background:new"
- d="m51.094 311c-2.335 0-4.094 1.28-4.094 3.95v168.47c0 3.95 2.447 6.58 5.772 6.58h191.56c3.3444 0 4.673-2.4607 4.673-5.9054v-148.52c0-2.951-2.0107-4.5466-4.516-4.5466h-94.987c-1.6928 0-4.4338-0.2055-6.493-2.5614l-13.071-14.954c-1.7575-2.0107-4.2252-2.5106-6.0898-2.5106h-72.746z"
- filter="url(#filter4065)"
- stroke="url(#linearGradient10744)"
- stroke-width="1.9947"
- fill="none" />
- <rect
- id="rect10482"
- opacity=".45"
- style="enable-background:new"
- transform="matrix(.77346 0 0 1 10.907 260)"
- rx=".875"
- ry=".875"
- height="52.75"
- filter="url(#filter3458)"
- width="1.75"
- y="57"
- x="49.25"
- fill="url(#radialGradient10746)" />
- </g>
- <path
- id="path10484"
- opacity="0.03"
- style="enable-background:new"
- d="m52.094 312c-2.335 0-4.094 1.28-4.094 3.95v167.47c0 3.95 2.447 6.58 5.772 6.58h189.56c3.3444 0 4.673-2.4607 4.673-5.9054v-147.52c0-2.951-2.0107-4.5466-4.516-4.5466h-93.987c-1.6928 0-4.4338-0.2055-6.493-2.5614l-13.071-14.954c-1.7575-2.0107-4.2252-2.5106-6.0898-2.5106h-71.746z"
- fill-rule="evenodd"
- transform="translate(0,-20)"
- fill="url(#pattern2719)" />
- <g
- id="g10486"
- style="enable-background:new"
- clip-path="url(#clipPath10943)"
- transform="translate(-.06621 -11.01)">
- <path
- id="path10488"
- style="enable-background:new"
- d="m-157.81 83h128.41c3.1968 0 5.3404 2.0241 5.3438 5.0625l0.125 121.72c0.000001 16.5-3.6622 25.219-10.469 25.219h-197.25c-6.6058 0.59601-7.3649-12.59-7.5-27.219l-0.90625-99.469c-0.0187-2.0256 2.1157-5.0625 5.3125-5.0625l52.281-0.0313c4.1684-0.002 7.5572-1.9403 9.4688-4.7812l7.6562-11.344c1.61-2.403 4.33-4.095 7.53-4.095z"
- transform="translate(280.07 251.01)"
- fill="url(#linearGradient10748)" />
- <path
- id="path10490"
- opacity="0.03"
- style="enable-background:new"
- d="m45.329 104.26 52.267-0.0193c4.1684-0.002 7.5701-1.9418 9.4817-4.7828l7.63-11.34c1.6157-2.4013 4.3437-4.1154 7.5418-4.1154h128.42c3.1968 0 5.4323 2.0276 5.3281 5.0642l-4.8648 141.73c-0.12 3.11-2.2 5.2-5.49 5.2h-197.25c-3.2882 0-5.4052-2.0846-5.4803-5.209l-2.919-121.47c-0.04866-2.0251 2.1312-5.0642 5.3281-5.0642z"
- fill-rule="evenodd"
- transform="translate(0,250)"
- fill="url(#pattern4229-8)" />
- <path
- id="path10492"
- style="enable-background:new"
- d="m123.25 335c-3.1981 0-5.9155 1.7237-7.5312 4.125l-7.6562 11.344c-1.9116 2.841-5.3003 4.7797-9.4688 4.7812h-53.25c-3.1968 0-5.3924 2.0374-5.3438 4.0625l0.03125 1.6562c0.18147-2.0076 2.2909-3.7188 5.3125-3.7188h53.25c4.1684-0.002 7.5572-1.9403 9.4688-4.7812l7.66-11.34c1.61-2.4 4.33-4.12 7.53-4.12h127.41c2.8797 0.00001 5.0005 1.6414 5.3125 4.1875l0.03-1.13c0.10424-3.0366-2.1469-5.0625-5.3438-5.0625h-127.41z"
- fill-rule="evenodd"
- fill="url(#radialGradient10750)" />
- <path
- id="path10494"
- opacity=".34188"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- fill-rule="evenodd"
- transform="matrix(1 0 0 2.3217 0 -646.64)"
- filter="url(#filter4375-19)"
- fill="url(#radialGradient10752)" />
- <g
- id="g10496"
- style="enable-background:new"
- fill-rule="evenodd"
- transform="translate(0 10)"
- filter="url(#filter4379-0)">
- <path
- id="path10498"
- style="enable-background:new"
- d="m43.344 346.72c-0.81378 0-1.502 0.39781-2.0625 1-0.56052 0.60219-0.81462 1.443-0.8125 1.5312l2.906 121.47c0.0243 1.0112 0.33196 1.6322 0.78125 2.0625 0.44929 0.43025 1.1319 0.75 2.25 0.75h1c-1.1181 0-1.8007-0.31975-2.25-0.75-0.44929-0.43025-0.75695-1.0513-0.78125-2.0625l-2.906-121.47c-0.0021-0.0882 0.25198-0.92906 0.8125-1.5312 0.56052-0.60219 1.2487-1 2.0625-1h-1z"
- fill="url(#radialGradient10754)" />
- <path
- id="path10500"
- style="enable-background:new"
- d="m251.15 324.47c1.0749-0.022 1.796 0.31235 2.2336 0.70438 0.43769 0.39202 0.70426 0.84746 0.69197 1.7362l-1.9703 141.79c-0.0143 1.034-0.33847 1.6745-0.76943 2.11-0.43097 0.43543-1.0541 0.77176-2.1717 0.79466l0.99979-0.0205c1.1176-0.0229 1.7407-0.35923 2.1717-0.79466 0.43096-0.43543 0.75514-1.076 0.76943-2.11l1.9703-141.79c0.0123-0.88873-0.25428-1.3442-0.69197-1.7362-0.43768-0.39202-1.1588-0.72641-2.2336-0.70438l-0.99979 0.0205z"
- fill="url(#radialGradient10756)" />
- </g>
- <path
- id="path10502"
- stroke-linejoin="round"
- style="enable-background:new"
- d="m-157.81 83h128.41c3.1968 0 5.3404 2.0241 5.3438 5.0625l0.125 121.72c0.000001 16.5-3.6622 25.219-10.469 25.219h-197.25c-6.6058 0.59601-7.3649-12.59-7.5-27.219l-0.90625-99.469c-0.0187-2.0256 2.1157-5.0625 5.3125-5.0625l52.281-0.0313c4.1684-0.002 7.5572-1.9403 9.4688-4.7812l7.6562-11.344c1.61-2.403 4.33-4.095 7.53-4.095z"
- transform="translate(280.07 251.01)"
- filter="url(#filter11355)"
- stroke="url(#linearGradient10758)"
- stroke-linecap="round"
- stroke-width="1.9947"
- fill="none" />
- </g>
- <path
- id="path10504"
- opacity=".3"
- style="enable-background:new"
- d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z"
- fill-rule="evenodd"
- transform="matrix(1 0 0 .72174 -.06621 122.65)"
- filter="url(#filter4375-19)"
- fill="url(#radialGradient10752)" />
- </g>
- <g
- id="g7670"
- stroke-linejoin="round"
- transform="translate(-377 -265.9)"
- stroke-linecap="round"
- stroke-width="8"
- fill="none">
- <path
- id="path5717-0-9-5-0"
- style="enable-background:new"
- d="m569.63 136.6c-1.8678 0.24167-3.5157 1.7145-3.9769 3.5482l-7.9492 23.95-1.7625 0.89368h-24.294c-1.3579 0-2.6831 0.70979-3.5342 1.7741-1.7911 2.0126-1.342 5.5835 0.8777 7.0965l19.878 14.637 0.4228 2.129-7.5075 23.506c-1.044 3.6688 3.8509 7.3561 7.0675 5.3223l19.876-14.636h2.5444l19.878 14.636c1.7284 1.1354 4.2055 0.93713 5.7406-0.43994 1.3013-1.2065 1.8432-3.1778 1.3288-4.8796l-7.5094-23.506c-0.7113-0.14154 0.2801-1.4192 0.4228-2.1289l19.875-14.637c2.2268-1.5129 2.6678-5.0838 0.8779-7.0964-0.8444-1.0642-2.1756-1.7301-3.5328-1.7741h-24.737l-1.7619-0.89367-7.5096-23.95c-0.2213-0.83794-0.689-1.6208-1.3288-2.2184-0.9333-0.90818-2.2399-1.4052-3.5332-1.3341l0.1573 0.00086v0.00011l-0.009 0.00034z"
- stroke="#d77711" />
- <path
- id="path5717-0-9-5"
- style="enable-background:new"
- d="m569.63 135.6c-1.8678 0.24167-3.5157 1.7145-3.9769 3.5482l-7.9492 23.95-1.7625 0.89368h-24.294c-1.3579 0-2.6831 0.70979-3.5342 1.7741-1.7911 2.0126-1.342 5.5835 0.8777 7.0965l19.878 14.637 0.4228 2.129-7.5075 23.506c-1.044 3.6688 3.8509 7.3561 7.0675 5.3223l19.876-14.636h2.5444l19.878 14.636c1.7284 1.1354 4.2055 0.93713 5.7406-0.43994 1.3013-1.2065 1.8432-3.1778 1.3288-4.8796l-7.5094-23.506c-0.7113-0.14154 0.2801-1.4192 0.4228-2.1289l19.875-14.637c2.2268-1.5129 2.6678-5.0838 0.8779-7.0964-0.8444-1.0642-2.1756-1.7301-3.5328-1.7741h-24.737l-1.7619-0.89367-7.5096-23.95c-0.2213-0.83794-0.689-1.6208-1.3288-2.2184-0.9333-0.90818-2.2399-1.4052-3.5332-1.3341l0.1573 0.00086v0.00011l-0.009 0.00034z"
- stroke="#fbc98d" />
- </g>
- </g>
- <g
- id="g4864"
- transform="translate(44.913 -32.613)">
- <path
- id="path14841-3"
- opacity=".45783"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- fill-rule="evenodd"
- transform="matrix(2.7092 0 0 2.7092 -468.22 -205.68)"
- fill="url(#radialGradient7892-7)" />
- <path
- id="path14843-0"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- fill-rule="evenodd"
- transform="matrix(.50798 0 0 .50798 58.548 -92.739)"
- fill="#fff" />
- <path
- id="path14849-7"
- opacity=".45783"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- fill-rule="evenodd"
- transform="matrix(3.8092 0 0 3.8092 -726.5 -264.78)"
- fill="url(#radialGradient7892-7)" />
- <path
- id="path14851-8"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- fill-rule="evenodd"
- transform="matrix(.71422 0 0 .71422 14.155 -105.98)"
- fill="#fff" />
- <path
- id="path14984-6"
- stroke-linejoin="round"
- transform="matrix(.79552 .35130 -.35138 .79570 88.379 -256.93)"
- stroke="url(#radialGradient7894-2)"
- stroke-linecap="round"
- stroke-width="11.498"
- fill="none"
- d="m206.67 217.35-40.254-8.0108-22.183 34.465-4.8204-40.759-39.633-10.447 37.275-17.18-2.3117-40.921 27.858 30.142 38.204-14.844-20.058 35.808z"
- filter="url(#filter15758-4)" />
- <path
- id="path11982-8"
- opacity=".56223"
- style="color:#000000"
- d="m135.06-25.261s6.625-3.125 12.625 0.125l21 15.25c3.875 2.125 9.5-1.25 10.375-4.875 0 0-6.25 0.75-8.5-2.75l-19.5-14.75c-1.625-1.25-4.25-1.25-6.25-0.25z"
- fill="#fdeddd" />
- <path
- id="path11986-8"
- opacity=".56223"
- style="color:#000000"
- d="m126.76-10.228c-3.125-1-4.4428-3.0273-2.8894-8.8172l3.9266-12.827c0.46212-4.3952 0.2966-7.8518-5.2599-11.008 0 0-0.75133 6.0816-2.2258 10.04l-4.3167 13.436c-0.30418 5.8002 4.7754 9.8299 10.765 9.176z"
- fill="#fde6cf" />
- <path
- id="path12005-4"
- opacity=".56223"
- style="color:#000000"
- d="m143.09-80.305s-3.5993 6.3798-10.374 7.1964l-23.701 0.19632c-5.8903 0.006-9.4041 7.3868-7.2725 12.851 0 0 0.66626-4.725 7.7755-4.7948l24.563-0.48717c2.0486 0.0806 4.1905-1.4369 5.2444-3.4091z"
- fill="#fff" />
- <path
- id="path12007-3"
- opacity=".56223"
- style="color:#000000"
- d="m143-99.122s2.26 1.3429 5.6317 7.2754l3.7079 12.163c2.1637 3.8535 4.1 7.2989 10.458 6.6619 0 0-4.8166-15.45-7.5324-23.085-3.1048-4.9086-7.9683-4.7165-12.265-3.0153z"
- fill="#fff" />
- <g
- id="g12056-1"
- fill-rule="evenodd"
- transform="translate(307.14 -213.37)">
- <path
- id="path12058-4"
- opacity=".45783"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- transform="matrix(3.8092 0 0 3.8092 -1042.5 .95285)"
- fill="url(#radialGradient7892-7)" />
- <path
- id="path12060-9"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- transform="matrix(.71422 0 0 .71422 -301.85 159.75)"
- fill="#fff" />
- <path
- id="path12062-2"
- opacity=".45783"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- transform="matrix(1.8092 0 0 1.8092 -568.58 103.68)"
- fill="url(#radialGradient7892-7)" />
- <path
- id="path12064-0"
- d="m244 51c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5z"
- transform="matrix(.33922 0 0 .33922 -216.81 179.1)"
- fill="#fff" />
- </g>
- </g>
- <use
- id="use3340"
- style="enable-background:new"
- xlink:href="#g3326"
- transform="translate(30.005 -.00021074)"
- height="400"
- width="500"
- y="0"
- x="0" />
- </g>
-</svg>
diff --git a/SparkleShare/Common/Pixmaps/Sources/gitorious.svg b/SparkleShare/Common/Pixmaps/Sources/gitorious.svg
deleted file mode 100644
index e1c011d..0000000
--- a/SparkleShare/Common/Pixmaps/Sources/gitorious.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg id="svg9662" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="24" width="24" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <defs id="defs3">
- <filter id="filter10824" height="1.2825" width="1.209" color-interpolation-filters="sRGB" y="-.14123" x="-.10449">
- <feGaussianBlur id="feGaussianBlur10826" stdDeviation="0.95917508"/>
- </filter>
- <linearGradient id="linearGradient4333" y2="34.607" gradientUnits="userSpaceOnUse" x2="-545.52" gradientTransform="translate(569,1013)" y1="28.408" x1="-557.06">
- <stop id="stop10743" stop-color="#f46e6e" offset="0"/>
- <stop id="stop10749" stop-color="#f7d478" offset=".5"/>
- <stop id="stop10745" stop-color="#f46e6e" offset="1"/>
- </linearGradient>
- <linearGradient id="linearGradient4335" y2="36.362" gradientUnits="userSpaceOnUse" x2="-551" gradientTransform="translate(569,1013)" y1="27.362" x1="-551">
- <stop id="stop10755" stop-color="#e50000" offset="0"/>
- <stop id="stop10757" stop-color="#ab0000" offset="1"/>
- </linearGradient>
- <linearGradient id="linearGradient4337" y2="28.079" gradientUnits="userSpaceOnUse" x2="-557.01" gradientTransform="translate(569,1013)" y1="34.767" x1="-568.52">
- <stop id="stop10729" stop-color="#73d216" offset="0"/>
- <stop id="stop10735" stop-color="#efff20" offset=".5"/>
- <stop id="stop10731" stop-color="#89d216" offset="1"/>
- </linearGradient>
- <linearGradient id="linearGradient4339" y2="35.858" gradientUnits="userSpaceOnUse" x2="-563.29" gradientTransform="translate(569,1013)" y1="25.486" x1="-563.29">
- <stop id="stop10719" stop-color="#4e9a06" offset="0"/>
- <stop id="stop10721" stop-color="#346704" offset="1"/>
- </linearGradient>
- <linearGradient id="linearGradient4341" y2="40.663" gradientUnits="userSpaceOnUse" x2="-549.62" gradientTransform="translate(569,1013)" y1="15.384" x1="-562.87">
- <stop id="stop10836" stop-color="#fff" offset="0"/>
- <stop id="stop10838" stop-color="#fff" stop-opacity="0" offset="1"/>
- </linearGradient>
- </defs>
- <metadata id="metadata4">
- <rdf:RDF>
- <cc:Work rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
- <dc:title/>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g id="layer1" transform="translate(0 -1028.4)">
- <rect id="rect10657" fill-opacity="0" height="24" width="24" y="1029.4" x=".088379"/>
- <path id="path10769" d="m-555.82 22.937-11.801 3.1974v9.6581l11.801 3.4441 10.23-3.1316v-9.9706z" transform="matrix(1.0124 0 0 1 575.75 1011.2)" filter="url(#filter10824)" fill="#2e3436"/>
- <path id="path10705" stroke-linejoin="round" d="m23.514 1034.8-10.55-3.9367-1.4805 0.054 0.007 19.914 1.509 0.017 10.514-3.1427z" stroke="url(#linearGradient4335)" fill="url(#linearGradient4333)"/>
- <path id="path10691" stroke-linejoin="round" d="m0.55806 1034.8 10.471-3.9459h1.4422l0.0365 19.989-1.4631-0.031-10.487-3.1115z" stroke="url(#linearGradient4339)" fill="url(#linearGradient4337)"/>
- <path id="path10693" d="m2 1036.4 9.0165-3.0054-0.0442 15.034l-8.972-2z" fill="#fff"/>
- <path id="rect10668" d="m5 1037 2-0.3728v8.6465l-1.9844-0.3518z" fill="#539710"/>
- <path id="rect10672" d="m3 1040.1 6.5938-0.9381v3.3314l-6.5938-0.9z" fill="#539710"/>
- <path id="path10737" d="m22.016 1036.4-9.016-3l0.0442 15.034 8.9723-2.0281z" fill="#fff"/>
- <rect id="rect10798" rx="0" ry="0" height="2" width="2" y="1030.4" x="11" fill="#85680e"/>
- <rect id="rect10800" rx="0" ry="0" height="2" width="2" y="1049.4" x="11" fill="#85680e"/>
- <rect id="rect10767" rx="0" ry="0" height="19" width="2" y="1031.4" x="11" fill="#eabe35"/>
- <rect id="rect10842" rx="0" ry="0" height="1" width="2" y="1031.4" x="11" fill="#a78312"/>
- <path id="path10810" opacity=".75" d="m12.816 1031.9-1.6843 0.01-9.6106 3.6209-0.0183 11.457 9.5022 2.8463 1.9639 0.031 9.5057-2.8861 0.0335-11.455z" stroke="url(#linearGradient4341)" stroke-width="1px" fill="none"/>
- <path id="path10830" d="m21.062 1040.1-6.5938-0.9381v3.3314l6.5938-0.8463z" fill="#dc0000"/>
- <g id="layer9" stroke-linejoin="round" transform="translate(-1687.8 -118.06)" stroke="#000" stroke-linecap="round" display="none" fill="#fff">
- <path id="path11071" opacity=".5" style="enable-background:new" d="m729.88 60.625a14.688 5.9375 0 1 1 -29.375 0 14.688 5.9375 0 1 1 29.375 0z" transform="matrix(1.2596 0 0 1.0947 -22.831 -6.3684)" display="inline" stroke-width=".85160"/>
- <path id="path11073" opacity=".5" style="enable-background:new" d="m729.88 60.625a14.688 5.9375 0 1 1 -29.375 0 14.688 5.9375 0 1 1 29.375 0z" transform="matrix(1.2596 0 0 1.0947 -22.831 -3.3684)" display="inline" stroke-width=".85160"/>
- <path id="path11075" opacity=".5" style="enable-background:new" d="m729.88 60.625a14.688 5.9375 0 1 1 -29.375 0 14.688 5.9375 0 1 1 29.375 0z" transform="matrix(1.0553 0 0 .90859 173.25 35.022)" display="inline" stroke-width="1.0212"/>
- <path id="path11084" opacity=".5" style="enable-background:new" d="m729.88 60.625a14.688 5.9375 0 1 1 -29.375 0 14.688 5.9375 0 1 1 29.375 0z" transform="matrix(1.0553 0 0 .97833 123.25 30.38)" display="inline" stroke-width=".98416"/>
- <path id="path11086" opacity=".5" style="enable-background:new" d="m729.88 60.625a14.688 5.9375 0 1 1 -29.375 0 14.688 5.9375 0 1 1 29.375 0z" transform="matrix(1.0894 0 0 .97833 98.901 27.38)" display="inline" stroke-width=".96866"/>
- </g>
- </g>
-</svg>
diff --git a/SparkleShare/Common/Plugins/gitorious.png b/SparkleShare/Common/Plugins/gitorious.png
deleted file mode 100644
index 731835b..0000000
--- a/SparkleShare/Common/Plugins/gitorious.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/gitorious.xml b/SparkleShare/Common/Plugins/gitorious.xml
deleted file mode 100644
index d0cee9e..0000000
--- a/SparkleShare/Common/Plugins/gitorious.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sparkleshare>
- <plugin>
- <info>
- <name>Gitorious</name>
- <description>Open source infrastructure for hosting open source projects</description>
- <icon>gitorious.png</icon>
- <backend>Git</backend>
- <fingerprint>7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d</fingerprint>
- </info>
- <address>
- <value>ssh://git@gitorious.org/</value>
- <example/>
- </address>
- <path>
- <value/>
- <example>/project/repository</example>
- </path>
- </plugin>
-</sparkleshare>
diff --git a/SparkleShare/Common/Plugins/gitorious@2x.png b/SparkleShare/Common/Plugins/gitorious@2x.png
deleted file mode 100644
index 806f113..0000000
--- a/SparkleShare/Common/Plugins/gitorious@2x.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/planio.png b/SparkleShare/Common/Plugins/planio.png
deleted file mode 100644
index d11e070..0000000
--- a/SparkleShare/Common/Plugins/planio.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/planio@2x.png b/SparkleShare/Common/Plugins/planio@2x.png
deleted file mode 100644
index 97ec2a3..0000000
--- a/SparkleShare/Common/Plugins/planio@2x.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/ssnet.png b/SparkleShare/Common/Plugins/ssnet.png
deleted file mode 100644
index 8aac460..0000000
--- a/SparkleShare/Common/Plugins/ssnet.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/ssnet.xml b/SparkleShare/Common/Plugins/ssnet.xml
deleted file mode 100644
index 718e6f3..0000000
--- a/SparkleShare/Common/Plugins/ssnet.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sparkleshare>
- <plugin>
- <info>
- <name>SparkleShare.Net</name>
- <description>The easiest way to share projects with SparkleShare</description>
- <icon>ssnet.png</icon>
- <backend>Git</backend>
- </info>
- <address>
- <value>ssh://storage@sparkleshare.net/</value>
- <example/>
- </address>
- <path>
- <value/>
- <example>/username/project</example>
- </path>
- </plugin>
-</sparkleshare>
diff --git a/SparkleShare/Common/Plugins/ssnet@2x.png b/SparkleShare/Common/Plugins/ssnet@2x.png
deleted file mode 100644
index 3449b9e..0000000
--- a/SparkleShare/Common/Plugins/ssnet@2x.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Common/Plugins/Makefile.am b/SparkleShare/Common/Presets/Makefile.am
index dc0a049..40efbe9 100644
--- a/SparkleShare/Common/Plugins/Makefile.am
+++ b/SparkleShare/Common/Presets/Makefile.am
@@ -1,18 +1,17 @@
-dist_plugins_DATA = \
+dist_presets_DATA = \
bitbucket.xml \
github.xml \
- gitorious.xml \
- ssnet.xml \
+ gitlab.xml \
own-server.xml \
planio.xml \
github.png \
- gitorious.png \
+ gitlab.png \
bitbucket.png \
- ssnet.png \
planio.png \
own-server.png
-pluginsdir = $(pkgdatadir)/plugins/
+presetsdir = $(pkgdatadir)/presets/
MAINTAINERCLEANFILES = \
Makefile.in
+
diff --git a/SparkleShare/Common/Plugins/bitbucket.png b/SparkleShare/Common/Presets/bitbucket.png
index c2de052..c2de052 100644
--- a/SparkleShare/Common/Plugins/bitbucket.png
+++ b/SparkleShare/Common/Presets/bitbucket.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/bitbucket.xml b/SparkleShare/Common/Presets/bitbucket.xml
index 1737448..c1690ee 100644
--- a/SparkleShare/Common/Plugins/bitbucket.xml
+++ b/SparkleShare/Common/Presets/bitbucket.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
- <plugin>
+ <preset>
<info>
<name>Bitbucket</name>
<description>Free code hosting for Git and Mercurial</description>
<icon>bitbucket.png</icon>
<backend>Git</backend>
- <fingerprint>97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40</fingerprint>
+ <fingerprint>cf:35:d0:39:74:91:04:48:94:b6:e1:3c:02:29:09:60:ac:1b:1d:ac:6f:49:cd:28:8d:ec:fd:61:76:86:a7:50</fingerprint>
</info>
<address>
<value>ssh://git@bitbucket.org/</value>
@@ -17,5 +17,6 @@
<example>/username/project</example>
<uses_lower_case>True</uses_lower_case>
</path>
- </plugin>
+ </preset>
</sparkleshare>
+
diff --git a/SparkleShare/Common/Plugins/bitbucket@2x.png b/SparkleShare/Common/Presets/bitbucket@2x.png
index 01ecba8..01ecba8 100644
--- a/SparkleShare/Common/Plugins/bitbucket@2x.png
+++ b/SparkleShare/Common/Presets/bitbucket@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/github.png b/SparkleShare/Common/Presets/github.png
index 62bb35b..62bb35b 100644
--- a/SparkleShare/Common/Plugins/github.png
+++ b/SparkleShare/Common/Presets/github.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/github.xml b/SparkleShare/Common/Presets/github.xml
index bf24fd0..2916ed4 100644
--- a/SparkleShare/Common/Plugins/github.xml
+++ b/SparkleShare/Common/Presets/github.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
- <plugin>
+ <preset>
<info>
<name>GitHub</name>
- <description>Collaborate on projects hosted on GitHub</description>
+ <description>The biggest collection of Open Source projects</description>
<icon>github.png</icon>
<backend>Git</backend>
- <fingerprint>16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48</fingerprint>
+ <storage_type>LargeFiles</storage_type>
+ <fingerprint>9d:38:5b:83:a9:17:52:92:56:1a:5e:c4:d4:81:8e:0a:ca:51:a2:64:f1:74:20:11:2e:f8:8a:c3:a1:39:49:8f</fingerprint>
</info>
<address>
<value>ssh://git@github.com/</value>
@@ -16,5 +17,5 @@
<value/>
<example>/username/project</example>
</path>
- </plugin>
+ </preset>
</sparkleshare>
diff --git a/SparkleShare/Common/Plugins/github@2x.png b/SparkleShare/Common/Presets/github@2x.png
index fd32047..fd32047 100644
--- a/SparkleShare/Common/Plugins/github@2x.png
+++ b/SparkleShare/Common/Presets/github@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Presets/gitlab.png b/SparkleShare/Common/Presets/gitlab.png
new file mode 100644
index 0000000..fef79da
--- /dev/null
+++ b/SparkleShare/Common/Presets/gitlab.png
Binary files differ
diff --git a/SparkleShare/Common/Presets/gitlab.xml b/SparkleShare/Common/Presets/gitlab.xml
new file mode 100644
index 0000000..b6db2ed
--- /dev/null
+++ b/SparkleShare/Common/Presets/gitlab.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+ <preset>
+ <info>
+ <name>GitLab</name>
+ <description>Open Source alternative to GitHub</description>
+ <icon>gitlab.png</icon>
+ <backend>Git</backend>
+ <fingerprint>44:e4:05:bc:f4:e1:1a:b5:b8:46:e5:8b:a0:bf:6d:ab:d2:3d:cc:9e:36:7c:ae:17:cb:0c:91:b5:b3:b3:fc:44</fingerprint>
+ </info>
+ <address>
+ <value>ssh://git@gitlab.com/</value>
+ <example/>
+ </address>
+ <path>
+ <value/>
+ <example>/username/project</example>
+ </path>
+ </preset>
+</sparkleshare>
+
diff --git a/SparkleShare/Common/Presets/gitlab@2x.png b/SparkleShare/Common/Presets/gitlab@2x.png
new file mode 100644
index 0000000..68cd1bd
--- /dev/null
+++ b/SparkleShare/Common/Presets/gitlab@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/own-server.png b/SparkleShare/Common/Presets/own-server.png
index c5d0a08..c5d0a08 100644
--- a/SparkleShare/Common/Plugins/own-server.png
+++ b/SparkleShare/Common/Presets/own-server.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/own-server.xml b/SparkleShare/Common/Presets/own-server.xml
index eb9b401..d6ceab6 100644
--- a/SparkleShare/Common/Plugins/own-server.xml
+++ b/SparkleShare/Common/Presets/own-server.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
- <plugin>
+ <preset>
<info>
- <name>On my own server</name>
+ <name>Own server</name>
<description>Everything under my control</description>
<icon>own-server.png</icon>
<backend>Git</backend>
@@ -15,5 +15,6 @@
<value/>
<example>/path/to/project</example>
</path>
- </plugin>
+ </preset>
</sparkleshare>
+
diff --git a/SparkleShare/Common/Plugins/own-server@2x.png b/SparkleShare/Common/Presets/own-server@2x.png
index 4312338..4312338 100644
--- a/SparkleShare/Common/Plugins/own-server@2x.png
+++ b/SparkleShare/Common/Presets/own-server@2x.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/parse_plugins.xsl b/SparkleShare/Common/Presets/parse_plugins.xsl
index bded3cc..bded3cc 100644
--- a/SparkleShare/Common/Plugins/parse_plugins.xsl
+++ b/SparkleShare/Common/Presets/parse_plugins.xsl
diff --git a/SparkleShare/Common/Presets/planio.png b/SparkleShare/Common/Presets/planio.png
new file mode 100644
index 0000000..d6ad0c4
--- /dev/null
+++ b/SparkleShare/Common/Presets/planio.png
Binary files differ
diff --git a/SparkleShare/Common/Plugins/planio.xml b/SparkleShare/Common/Presets/planio.xml
index 1e91c90..730094a 100644
--- a/SparkleShare/Common/Plugins/planio.xml
+++ b/SparkleShare/Common/Presets/planio.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
- <plugin>
+ <preset>
<info>
<name>Planio</name>
- <description>500MB of unlimited free hosted Git repos and project management</description>
+ <description>Online project management</description>
<icon>planio.png</icon>
<backend>Git</backend>
- <fingerprint>77:d1:54:d7:33:7e:38:43:40:70:ca:2d:3a:24:05:22</fingerprint>
+ <fingerprint>38:29:13:0f:7c:74:67:22:c5:a6:a6:95:b4:b8:e0:ef:3d:e0:9e:87:02:58:ff:37:2c:8b:34:5a:ed:73:5d:81</fingerprint>
<announcements_url>tcp://sparkleshare-notifications.plan.io:443</announcements_url>
</info>
<address>
@@ -17,5 +17,6 @@
<value/>
<example>/[account]-[project].git</example>
</path>
- </plugin>
+ </preset>
</sparkleshare>
+
diff --git a/SparkleShare/Common/Presets/planio@2x.png b/SparkleShare/Common/Presets/planio@2x.png
new file mode 100644
index 0000000..5bbad90
--- /dev/null
+++ b/SparkleShare/Common/Presets/planio@2x.png
Binary files differ
diff --git a/SparkleShare/SparkleSetupController.cs b/SparkleShare/Common/SetupController.cs
index 574da27..289bf1c 100755..100644
--- a/SparkleShare/SparkleSetupController.cs
+++ b/SparkleShare/Common/SetupController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -21,7 +21,7 @@ using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
@@ -33,7 +33,7 @@ namespace SparkleShare {
Syncing,
Error,
Finished,
- Tutorial,
+ StorageSetup,
CryptoSetup,
CryptoPassword
}
@@ -44,7 +44,7 @@ namespace SparkleShare {
}
- public class SparkleSetupController {
+ public class SetupController {
public event Action ShowWindowEvent = delegate { };
public event Action HideWindowEvent = delegate { };
@@ -53,7 +53,7 @@ namespace SparkleShare {
public delegate void ChangePageEventHandler (PageType page, string [] warnings);
public event UpdateProgressBarEventHandler UpdateProgressBarEvent = delegate { };
- public delegate void UpdateProgressBarEventHandler (double percentage, string speed);
+ public delegate void UpdateProgressBarEventHandler (double percentage, string information);
public event UpdateSetupContinueButtonEventHandler UpdateSetupContinueButtonEvent = delegate { };
public delegate void UpdateSetupContinueButtonEventHandler (bool button_enabled);
@@ -73,12 +73,11 @@ namespace SparkleShare {
public event ChangePathFieldEventHandler ChangePathFieldEvent = delegate { };
public delegate void ChangePathFieldEventHandler (string text, string example_text, FieldState state);
- public readonly List<SparklePlugin> Plugins = new List<SparklePlugin> ();
- public SparklePlugin SelectedPlugin;
+ public readonly List<Preset> Presets = new List<Preset> ();
+ public Preset SelectedPreset;
public bool WindowIsOpen { get; private set; }
public SparkleInvite PendingInvite { get; private set; }
- public int TutorialPageNumber { get; private set; }
public string PreviousUrl { get; private set; }
public string PreviousAddress { get; private set; }
public string PreviousPath { get; private set; }
@@ -86,9 +85,9 @@ namespace SparkleShare {
public double ProgressBarPercentage { get; private set; }
- public int SelectedPluginIndex {
+ public int SelectedPresetIndex {
get {
- return Plugins.IndexOf (SelectedPlugin);
+ return Presets.IndexOf (SelectedPreset);
}
}
@@ -101,61 +100,56 @@ namespace SparkleShare {
private PageType current_page;
private string saved_address = "";
private string saved_remote_path = "";
- private bool create_startup_item = true;
private bool fetch_prior_history = false;
- public SparkleSetupController ()
+ public SetupController ()
{
ChangePageEvent += delegate (PageType page_type, string [] warnings) {
this.current_page = page_type;
};
- TutorialPageNumber = 0;
PreviousAddress = "";
PreviousPath = "";
PreviousUrl = "";
SyncingFolder = "";
- string local_plugins_path = SparklePlugin.LocalPluginsPath;
- int local_plugins_count = 0;
+ string local_presets_path = Preset.LocalPresetsPath;
+ int local_presets_count = 0;
- // Import all of the plugins
- if (Directory.Exists (local_plugins_path))
- // Local plugins go first...
- foreach (string xml_file_path in Directory.GetFiles (local_plugins_path, "*.xml")) {
- Plugins.Add (new SparklePlugin (xml_file_path));
- local_plugins_count++;
+ // Import all of the presets
+ if (Directory.Exists (local_presets_path))
+ // Local presets go first...
+ foreach (string xml_file_path in Directory.GetFiles (local_presets_path, "*.xml")) {
+ Presets.Add (new Preset (xml_file_path));
+ local_presets_count++;
}
- // ...system plugins after that...
- if (Directory.Exists (Program.Controller.PluginsPath)) {
- foreach (string xml_file_path in Directory.GetFiles (Program.Controller.PluginsPath, "*.xml")) {
+ // ...system presets after that...
+ if (Directory.Exists (SparkleShare.Controller.PresetsPath)) {
+ foreach (string xml_file_path in Directory.GetFiles (SparkleShare.Controller.PresetsPath, "*.xml")) {
// ...and "Own server" at the very top
- if (xml_file_path.EndsWith ("own-server.xml")) {
- Plugins.Insert (0, new SparklePlugin (xml_file_path));
-
- } else if (xml_file_path.EndsWith ("ssnet.xml")) {
- // Plugins.Insert ((local_plugins_count + 1), new SparklePlugin (xml_file_path));
- // TODO: Skip this plugin for now
-
- } else {
- Plugins.Add (new SparklePlugin (xml_file_path));
- }
+ if (xml_file_path.EndsWith ("own-server.xml"))
+ Presets.Insert (0, new Preset (xml_file_path));
+ else
+ Presets.Add (new Preset (xml_file_path));
}
}
- SelectedPlugin = Plugins [0];
+ SelectedPreset = Presets [0];
- Program.Controller.InviteReceived += delegate (SparkleInvite invite) {
+ SparkleShare.Controller.InviteReceived += delegate (SparkleInvite invite) {
PendingInvite = invite;
ChangePageEvent (PageType.Invite, null);
ShowWindowEvent ();
};
- Program.Controller.ShowSetupWindowEvent += delegate (PageType page_type) {
- if (page_type == PageType.CryptoSetup || page_type == PageType.CryptoPassword) {
+ SparkleShare.Controller.ShowSetupWindowEvent += delegate (PageType page_type) {
+ if (page_type == PageType.StorageSetup ||
+ page_type == PageType.CryptoSetup ||
+ page_type == PageType.CryptoPassword) {
+
ChangePageEvent (page_type, null);
return;
}
@@ -184,7 +178,7 @@ namespace SparkleShare {
ChangePageEvent (PageType.Add, null);
}
- } else if (!Program.Controller.FirstRun && TutorialPageNumber == 0) {
+ } else if (!SparkleShare.Controller.FirstRun) {
WindowIsOpen = true;
ChangePageEvent (PageType.Add, null);
}
@@ -203,7 +197,7 @@ namespace SparkleShare {
public void PageCancelled ()
{
PendingInvite = null;
- SelectedPlugin = Plugins [0];
+ SelectedPreset = Presets [0];
PreviousAddress = "";
PreviousPath = "";
@@ -230,70 +224,44 @@ namespace SparkleShare {
public void SetupPageCancelled ()
{
- Program.Controller.Quit ();
+ SparkleShare.Controller.Quit ();
}
public void SetupPageCompleted (string full_name, string email)
{
- Program.Controller.CurrentUser = new SparkleUser (full_name, email);
-
- TutorialPageNumber = 1;
- ChangePageEvent (PageType.Tutorial, null);
- }
-
+ SparkleShare.Controller.CurrentUser = new User (full_name, email);
+ new Thread (() => SparkleShare.Controller.CreateStartupItem ()).Start ();
- public void TutorialSkipped ()
- {
- TutorialPageNumber = 4;
- ChangePageEvent (PageType.Tutorial, null);
+ ChangePageEvent (PageType.Add, null);
}
-
+
public void HistoryItemChanged (bool fetch_prior_history)
{
this.fetch_prior_history = fetch_prior_history;
}
- public void TutorialPageCompleted ()
- {
- TutorialPageNumber++;
-
- if (TutorialPageNumber == 5) {
- TutorialPageNumber = 0;
-
- WindowIsOpen = false;
- HideWindowEvent ();
-
- if (this.create_startup_item)
- new Thread (() => Program.Controller.CreateStartupItem ()).Start ();
-
- } else {
- ChangePageEvent (PageType.Tutorial, null);
- }
- }
-
-
- public void SelectedPluginChanged (int plugin_index)
+ public void SelectedPresetChanged (int preset_index)
{
- SelectedPlugin = Plugins [plugin_index];
+ SelectedPreset = Presets [preset_index];
- if (SelectedPlugin.Address != null) {
- ChangeAddressFieldEvent (SelectedPlugin.Address, "", FieldState.Disabled);
+ if (SelectedPreset.Address != null) {
+ ChangeAddressFieldEvent (SelectedPreset.Address, "", FieldState.Disabled);
- } else if (SelectedPlugin.AddressExample != null) {
- ChangeAddressFieldEvent (this.saved_address, SelectedPlugin.AddressExample, FieldState.Enabled);
+ } else if (SelectedPreset.AddressExample != null) {
+ ChangeAddressFieldEvent (this.saved_address, SelectedPreset.AddressExample, FieldState.Enabled);
} else {
ChangeAddressFieldEvent (this.saved_address, "", FieldState.Enabled);
}
- if (SelectedPlugin.Path != null) {
- ChangePathFieldEvent (SelectedPlugin.Path, "", FieldState.Disabled);
+ if (SelectedPreset.Path != null) {
+ ChangePathFieldEvent (SelectedPreset.Path, "", FieldState.Disabled);
- } else if (SelectedPlugin.PathExample != null) {
- ChangePathFieldEvent (this.saved_remote_path, SelectedPlugin.PathExample, FieldState.Enabled);
+ } else if (SelectedPreset.PathExample != null) {
+ ChangePathFieldEvent (this.saved_remote_path, SelectedPreset.PathExample, FieldState.Enabled);
} else {
ChangePathFieldEvent (this.saved_remote_path, "", FieldState.Enabled);
@@ -301,18 +269,12 @@ namespace SparkleShare {
}
- public void StartupItemChanged (bool create_startup_item)
- {
- this.create_startup_item = create_startup_item;
- }
-
-
- public void CheckAddPage (string address, string remote_path, int selected_plugin)
+ public void CheckAddPage (string address, string remote_path, int selected_preset)
{
address = address.Trim ();
remote_path = remote_path.Trim ();
- if (selected_plugin == 0)
+ if (selected_preset == 0)
this.saved_address = address;
this.saved_remote_path = remote_path;
@@ -331,8 +293,7 @@ namespace SparkleShare {
if (remote_path.EndsWith (".git"))
SyncingFolder = remote_path.Substring (0, remote_path.Length - 4);
- SyncingFolder = SyncingFolder.Replace ("-crypto", "");
- SyncingFolder = SyncingFolder.ReplaceUnderscoreWithSpace ();
+ SyncingFolder = SyncingFolder.ReplaceUnderscoreWithSpace ();
ProgressBarPercentage = 1.0;
ChangePageEvent (PageType.Syncing, null);
@@ -341,26 +302,26 @@ namespace SparkleShare {
remote_path = remote_path.Trim ();
remote_path = remote_path.TrimEnd ("/".ToCharArray ());
- if (SelectedPlugin.PathUsesLowerCase)
+ if (SelectedPreset.PathUsesLowerCase)
remote_path = remote_path.ToLower ();
PreviousAddress = address;
PreviousPath = remote_path;
- Program.Controller.FolderFetched += AddPageFetchedDelegate;
- Program.Controller.FolderFetchError += AddPageFetchErrorDelegate;
- Program.Controller.FolderFetching += SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched += AddPageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError += AddPageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching += SyncingPageFetchingDelegate;
SparkleFetcherInfo info = new SparkleFetcherInfo {
Address = address,
- Fingerprint = SelectedPlugin.Fingerprint,
+ Fingerprint = SelectedPreset.Fingerprint,
RemotePath = remote_path,
FetchPriorHistory = this.fetch_prior_history,
- AnnouncementsUrl = SelectedPlugin.AnnouncementsUrl,
- Backend = SelectedPlugin.Backend
+ AnnouncementsUrl = SelectedPreset.AnnouncementsUrl,
+ Backend = SelectedPreset.Backend
};
- new Thread (() => { Program.Controller.StartFetcher (info); }).Start ();
+ new Thread (() => { SparkleShare.Controller.StartFetcher (info); }).Start ();
}
// The following private methods are
@@ -370,31 +331,31 @@ namespace SparkleShare {
{
SyncingFolder = "";
- // Create a local plugin for succesfully added projects, so
+ // Create a local preset for succesfully added projects, so
// so the user can easily use the same host again
- if (SelectedPluginIndex == 0) {
- SparklePlugin new_plugin;
+ if (SelectedPresetIndex == 0) {
+ Preset new_preset;
Uri uri = new Uri (remote_url);
try {
string address = remote_url.Replace (uri.AbsolutePath, "");
- new_plugin = SparklePlugin.Create (uri.Host, address, address, "", "", "/path/to/project");
+ new_preset = Preset.Create (uri.Host, address, address, "", "", "/path/to/project");
- if (new_plugin != null) {
- Plugins.Insert (1, new_plugin);
- SparkleLogger.LogInfo ("Controller", "Added plugin for " + uri.Host);
+ if (new_preset != null) {
+ Presets.Insert (1, new_preset);
+ Logger.LogInfo ("Controller", "Added preset for " + uri.Host);
}
} catch {
- SparkleLogger.LogInfo ("Controller", "Failed adding plugin for " + uri.Host);
+ Logger.LogInfo ("Controller", "Failed adding preset for " + uri.Host);
}
}
ChangePageEvent (PageType.Finished, warnings);
- Program.Controller.FolderFetched -= AddPageFetchedDelegate;
- Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
- Program.Controller.FolderFetching -= SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched -= AddPageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching -= SyncingPageFetchingDelegate;
}
private void AddPageFetchErrorDelegate (string remote_url, string [] errors)
@@ -404,19 +365,19 @@ namespace SparkleShare {
ChangePageEvent (PageType.Error, errors);
- Program.Controller.FolderFetched -= AddPageFetchedDelegate;
- Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
- Program.Controller.FolderFetching -= SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched -= AddPageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching -= SyncingPageFetchingDelegate;
}
- private void SyncingPageFetchingDelegate (double percentage, double speed)
+ private void SyncingPageFetchingDelegate (double percentage, double speed ,string information)
{
ProgressBarPercentage = percentage;
- if (speed == 0.0)
- UpdateProgressBarEvent (ProgressBarPercentage, "");
- else
- UpdateProgressBarEvent (ProgressBarPercentage, "Fetching files… " + speed.ToSize () + "/s");
+ if (speed > 0)
+ information = speed.ToSize () + " – " + information;
+
+ UpdateProgressBarEvent (ProgressBarPercentage, information);
}
@@ -427,7 +388,6 @@ namespace SparkleShare {
if (PendingInvite.RemotePath.EndsWith (".git"))
SyncingFolder = PendingInvite.RemotePath.Substring (0, PendingInvite.RemotePath.Length - 4);
- SyncingFolder = SyncingFolder.Replace ("-crypto", "");
SyncingFolder = SyncingFolder.ReplaceUnderscoreWithSpace ();
PreviousAddress = PendingInvite.Address;
PreviousPath = PendingInvite.RemotePath;
@@ -435,15 +395,15 @@ namespace SparkleShare {
ChangePageEvent (PageType.Syncing, null);
new Thread (() => {
- if (!PendingInvite.Accept (Program.Controller.CurrentUser.PublicKey)) {
+ if (!PendingInvite.Accept (SparkleShare.Controller.UserAuthenticationInfo.PublicKey)) {
PreviousUrl = PendingInvite.Address + PendingInvite.RemotePath.TrimStart ("/".ToCharArray ());
ChangePageEvent (PageType.Error, new string [] { "error: Failed to upload the public key" });
return;
}
- Program.Controller.FolderFetched += InvitePageFetchedDelegate;
- Program.Controller.FolderFetchError += InvitePageFetchErrorDelegate;
- Program.Controller.FolderFetching += SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched += InvitePageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError += InvitePageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching += SyncingPageFetchingDelegate;
SparkleFetcherInfo info = new SparkleFetcherInfo {
Address = PendingInvite.Address,
@@ -453,7 +413,7 @@ namespace SparkleShare {
AnnouncementsUrl = PendingInvite.AnnouncementsUrl
};
- Program.Controller.StartFetcher (info);
+ SparkleShare.Controller.StartFetcher (info);
}).Start ();
}
@@ -468,9 +428,9 @@ namespace SparkleShare {
ChangePageEvent (PageType.Finished, warnings);
- Program.Controller.FolderFetched -= AddPageFetchedDelegate;
- Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
- Program.Controller.FolderFetching -= SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched -= AddPageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching -= SyncingPageFetchingDelegate;
}
private void InvitePageFetchErrorDelegate (string remote_url, string [] errors)
@@ -480,15 +440,15 @@ namespace SparkleShare {
ChangePageEvent (PageType.Error, errors);
- Program.Controller.FolderFetched -= AddPageFetchedDelegate;
- Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
- Program.Controller.FolderFetching -= SyncingPageFetchingDelegate;
+ SparkleShare.Controller.FolderFetched -= AddPageFetchedDelegate;
+ SparkleShare.Controller.FolderFetchError -= AddPageFetchErrorDelegate;
+ SparkleShare.Controller.FolderFetching -= SyncingPageFetchingDelegate;
}
public void SyncingCancelled ()
{
- Program.Controller.StopFetcher ();
+ SparkleShare.Controller.StopFetcher ();
if (PendingInvite != null)
ChangePageEvent (PageType.Invite, null);
@@ -506,6 +466,24 @@ namespace SparkleShare {
}
+ public void StoragePageCompleted (StorageType storage_type)
+ {
+ if (storage_type == StorageType.Encrypted) {
+ ChangePageEvent (PageType.CryptoSetup, null);
+ return;
+ }
+
+ ProgressBarPercentage = 100.0;
+ ChangePageEvent (PageType.Syncing, null);
+
+ new Thread (() => {
+ Thread.Sleep (1000);
+ SparkleShare.Controller.FinishFetcher (storage_type);
+
+ }).Start ();
+ }
+
+
public void CheckCryptoSetupPage (string password)
{
new Thread (() => {
@@ -517,7 +495,7 @@ namespace SparkleShare {
public void CheckCryptoPasswordPage (string password)
{
- bool is_password_correct = Program.Controller.CheckPassword (password);
+ bool is_password_correct = SparkleShare.Controller.CheckPassword (password);
UpdateCryptoPasswordContinueButtonEvent (is_password_correct);
}
@@ -541,7 +519,7 @@ namespace SparkleShare {
new Thread (() => {
Thread.Sleep (1000);
- Program.Controller.FinishFetcher (password);
+ SparkleShare.Controller.FinishFetcher (StorageType.Encrypted, password);
}).Start ();
}
@@ -549,29 +527,24 @@ namespace SparkleShare {
public void CopyToClipboardClicked ()
{
- Program.Controller.CopyToClipboard (Program.Controller.CurrentUser.PublicKey);
+ SparkleShare.Controller.CopyToClipboard (SparkleShare.Controller.UserAuthenticationInfo.PublicKey);
}
public void ShowFilesClicked ()
{
string folder_name = Path.GetFileName (PreviousPath);
- folder_name = folder_name.ReplaceUnderscoreWithSpace ();
-
- if (PreviousPath.EndsWith ("-crypto"))
- folder_name = folder_name.Replace ("-crypto", "");
-
- if (PreviousPath.EndsWith ("-crypto.git"))
- folder_name = folder_name.Replace ("-crypto.git", "");
+ folder_name = folder_name.ReplaceUnderscoreWithSpace ();
- Program.Controller.OpenSparkleShareFolder (folder_name);
+ // TODO: Open SparkleShare/$HOST
+ SparkleShare.Controller.OpenSparkleShareFolder (folder_name);
FinishPageCompleted ();
}
public void FinishPageCompleted ()
{
- SelectedPlugin = Plugins [0];
+ SelectedPreset = Presets [0];
PreviousUrl = "";
PreviousAddress = "";
PreviousPath = "";
diff --git a/SparkleShare/Program.cs b/SparkleShare/Common/SparkleShare.cs
index db3431b..73f0c2f 100644
--- a/SparkleShare/Program.cs
+++ b/SparkleShare/Common/SparkleShare.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -18,18 +18,16 @@
using System;
using System.Threading;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- // This is SparkleShare!
- public class Program {
+ public class SparkleShare {
- public static SparkleController Controller;
- public static SparkleUI UI;
- public static string [] Arguments;
+ public static Controller Controller;
+ public static UserInterface UI;
- private static Mutex program_mutex = new Mutex (false, "SparkleShare");
+ static Mutex program_mutex = new Mutex (false, "SparkleShare");
#if !__MonoCS__
@@ -37,28 +35,23 @@ namespace SparkleShare {
#endif
public static void Main (string [] args)
{
- Arguments = args;
-
- if (args.Length != 0 && !args [0].Equals ("help") &&
- SparkleBackend.Platform != PlatformID.MacOSX &&
- SparkleBackend.Platform != PlatformID.Win32NT) {
+ if (args.Length != 0 && (args [0].Equals ("help") || args [0].Equals ("version")) &&
+ InstallationInfo.OperatingSystem != OS.Mac &&
+ InstallationInfo.OperatingSystem != OS.Windows) {
string n = Environment.NewLine;
Console.WriteLine (n +
- "SparkleShare is a collaboration and sharing tool that is" + n +
- "designed to keep things simple and to stay out of your way." + n +
+ "Share and collaborate by syncing with any Git repository instantly." + n +
n +
- "Version: " + SparkleLib.SparkleBackend.Version + n +
+ "Version: " + InstallationInfo.Version + n +
"Copyright (C) 2010 Hylke Bons and others" + n +
"This program comes with ABSOLUTELY NO WARRANTY." + n +
n +
"This is free software, and you are welcome to redistribute it" + n +
- "under certain conditions. Please read the GNU GPLv3 for details." + n +
- n +
- "Usage: sparkleshare [start|open]");
+ "under certain conditions. Please read the GNU GPLv3 for details." + n);
- Environment.Exit (-1);
+ Environment.Exit (0);
}
// Only allow one instance of SparkleShare (on Windows)
@@ -69,11 +62,11 @@ namespace SparkleShare {
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
- Controller = new SparkleController ();
+ Controller = new Controller (Configuration.DefaultConfiguration);
Controller.Initialize ();
- UI = new SparkleUI ();
- UI.Run ();
+ UI = new UserInterface ();
+ UI.Run (args);
#if !__MonoCS__
// Suppress assertion messages in debug mode
@@ -82,15 +75,11 @@ namespace SparkleShare {
#endif
}
- private static void OnUnhandledException (object sender, UnhandledExceptionEventArgs exception_args)
+
+ static void OnUnhandledException (object sender, UnhandledExceptionEventArgs exception_args)
{
- try {
- Exception e = (Exception) exception_args.ExceptionObject;
- SparkleLogger.WriteCrashReport (e);
-
- } finally {
- Environment.Exit (-1);
- }
+ var exception = (Exception) exception_args.ExceptionObject;
+ Logger.WriteCrashReport (exception);
}
}
}
diff --git a/SparkleShare/Common/SparkleShare.projitems b/SparkleShare/Common/SparkleShare.projitems
new file mode 100644
index 0000000..9b4eac3
--- /dev/null
+++ b/SparkleShare/Common/SparkleShare.projitems
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ <HasSharedItems>true</HasSharedItems>
+ <SharedGUID>{F16E3683-B622-4654-B799-99C8D68AA963}</SharedGUID>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration">
+ <Import_RootNamespace>SparkleShare</Import_RootNamespace>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="$(MSBuildThisFileDirectory)AboutController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Avatars.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)BaseController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)BubblesController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)EventLogController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)NoteController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)SetupController.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)SparkleShare.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)StatusIconController.cs" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/SparkleShare/Common/SparkleShare.shproj b/SparkleShare/Common/SparkleShare.shproj
new file mode 100644
index 0000000..0495fd2
--- /dev/null
+++ b/SparkleShare/Common/SparkleShare.shproj
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{F16E3683-B622-4654-B799-99C8D68AA963}</ProjectGuid>
+ <ReleaseVersion></ReleaseVersion>
+ </PropertyGroup>
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
+ <Import Project="SparkleShare.projitems" Label="Shared" />
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
+</Project>
diff --git a/SparkleShare/SparkleStatusIconController.cs b/SparkleShare/Common/StatusIconController.cs
index 486104f..40bb6ed 100755..100644
--- a/SparkleShare/SparkleStatusIconController.cs
+++ b/SparkleShare/Common/StatusIconController.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -20,7 +20,7 @@ using System.Collections.Generic;
using System.Threading;
using Timers = System.Timers;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
@@ -35,38 +35,41 @@ namespace SparkleShare {
public class ProjectInfo {
- private SparkleRepoBase repo;
+ readonly BaseRepository repo;
- public string Name { get { return this.repo.Name; }}
- public string Path { get { return this.repo.LocalPath; }}
+ public string Name { get { return repo.Name; }}
+ public string Path { get { return repo.LocalPath; }}
- public bool IsPaused { get { return this.repo.Status == SyncStatus.Paused; }}
- public bool HasError { get { return this.repo.Status == SyncStatus.Error; }}
+ public bool IsPaused { get { return repo.Status == SyncStatus.Paused; }}
+ public bool HasError { get { return repo.Status == SyncStatus.Error; }}
public string StatusMessage {
get {
string status_message = "Waiting to sync";
- if (!this.repo.LastSync.Equals (DateTime.MinValue))
- status_message = string.Format ("Synced {0}", this.repo.LastSync.ToPrettyDate ());
+ if (!repo.LastSync.Equals (DateTime.MinValue))
+ status_message = string.Format ("✓ Synced – Last change {0}", repo.LastSync.ToPrettyDate ());
- if (this.repo.Status == SyncStatus.SyncUp)
- status_message = "Sending changes… " + this.repo.ProgressPercentage + "%";
+ if (repo.Status == SyncStatus.SyncUp)
+ status_message = "Sending… " + (int) repo.ProgressPercentage + "%";
- if (this.repo.Status == SyncStatus.SyncDown)
- status_message = "Receiving changes… " + this.repo.ProgressPercentage + "%";
+ if (repo.Status == SyncStatus.SyncDown)
+ status_message = "Receiving… " + (int) repo.ProgressPercentage + "%";
- if (this.repo.Status == SyncStatus.SyncUp || this.repo.Status == SyncStatus.SyncDown) {
- if (this.repo.ProgressSpeed > 0)
- status_message += " " + this.repo.ProgressSpeed.ToSize () + "/s";
+ if (!string.IsNullOrWhiteSpace (repo.ProgressInformation))
+ status_message += " – " + SparkleShare.Controller.ProgressInformation;
+
+ if (repo.Status == SyncStatus.SyncUp || repo.Status == SyncStatus.SyncDown) {
+ if (repo.ProgressSpeed > 0)
+ status_message += " " + repo.ProgressSpeed.ToSize () + "/s";
}
- if (IsPaused) {
- return "Paused";
+ if (IsPaused)
+ return "Syncing Paused";
- } else if (HasError) {
- switch (this.repo.Error) {
+ if (HasError) {
+ switch (repo.Error) {
case ErrorStatus.HostUnreachable: return "Can’t reach the host";
case ErrorStatus.HostIdentityChanged: return "The host’s identity has changed";
case ErrorStatus.AuthenticationFailed: return "Authentication failed";
@@ -86,20 +89,20 @@ namespace SparkleShare {
public Dictionary<string, string> UnsyncedChangesInfo {
get {
- Dictionary<string, string> changes_info = new Dictionary<string, string> ();
+ var changes_info = new Dictionary<string, string> ();
int changes_count = 0;
- foreach (SparkleChange change in repo.UnsyncedChanges) {
+ foreach (Change change in repo.UnsyncedChanges) {
changes_count++;
if (changes_count > 10)
continue;
switch (change.Type) {
- case SparkleChangeType.Added: changes_info [change.Path] = "document-added-12.png"; break;
- case SparkleChangeType.Edited: changes_info [change.Path] = "document-edited-12.png"; break;
- case SparkleChangeType.Deleted: changes_info [change.Path] = "document-deleted-12.png"; break;
- case SparkleChangeType.Moved: changes_info [change.MovedToPath] = "document-moved-12.png"; break;
+ case ChangeType.Added: changes_info [change.Path] = "document-added-12.png"; break;
+ case ChangeType.Edited: changes_info [change.Path] = "document-edited-12.png"; break;
+ case ChangeType.Deleted: changes_info [change.Path] = "document-deleted-12.png"; break;
+ case ChangeType.Moved: changes_info [change.MovedToPath] = "document-moved-12.png"; break;
}
}
@@ -111,14 +114,14 @@ namespace SparkleShare {
}
- public ProjectInfo (SparkleRepoBase repo)
+ public ProjectInfo (BaseRepository repo)
{
this.repo = repo;
}
}
- public class SparkleStatusIconController {
+ public class StatusIconController {
public event UpdateIconEventHandler UpdateIconEvent = delegate { };
public delegate void UpdateIconEventHandler (IconState state);
@@ -133,47 +136,20 @@ namespace SparkleShare {
public delegate void UpdateQuitItemEventHandler (bool quit_item_enabled);
public IconState CurrentState = IconState.Idle;
- public string StateText = "Welcome to SparkleShare!";
+ public string StateText = "Welcome to SparkleShare!";
public ProjectInfo [] Projects = new ProjectInfo [0];
- public int ProgressPercentage {
- get {
- return (int) Program.Controller.ProgressPercentage;
- }
- }
-
- public string ProgressSpeed {
- get {
- string progress_speed = "";
-
- if (Program.Controller.ProgressSpeedDown == 0 && Program.Controller.ProgressSpeedUp > 0) {
- progress_speed = Program.Controller.ProgressSpeedUp.ToSize () + "/s ";
-
- } else if (Program.Controller.ProgressSpeedUp == 0 && Program.Controller.ProgressSpeedDown > 0) {
- progress_speed = Program.Controller.ProgressSpeedDown.ToSize () + "/s ";
-
- } else if (Program.Controller.ProgressSpeedUp > 0 &&
- Program.Controller.ProgressSpeedDown > 0) {
-
- progress_speed = "Up: " + Program.Controller.ProgressSpeedUp.ToSize () + "/s " +
- "Down: " + Program.Controller.ProgressSpeedDown.ToSize () + "/s";
- }
-
- return progress_speed;
- }
- }
-
public bool RecentEventsItemEnabled {
get {
- return (Program.Controller.Repositories.Length > 0);
+ return (SparkleShare.Controller.Repositories.Length > 0);
}
}
public bool LinkCodeItemEnabled {
get {
- return !string.IsNullOrEmpty (Program.Controller.CurrentUser.PublicKey);
+ return !string.IsNullOrEmpty (SparkleShare.Controller.UserAuthenticationInfo.PublicKey);
}
}
@@ -184,11 +160,11 @@ namespace SparkleShare {
}
- public SparkleStatusIconController ()
+ public StatusIconController ()
{
UpdateFolders ();
- Program.Controller.FolderListChanged += delegate {
+ SparkleShare.Controller.FolderListChanged += delegate {
if (CurrentState != IconState.Error) {
CurrentState = IconState.Idle;
@@ -201,10 +177,9 @@ namespace SparkleShare {
UpdateMenuEvent (CurrentState);
};
- Program.Controller.OnIdle += delegate {
+ SparkleShare.Controller.OnIdle += delegate {
if (CurrentState != IconState.Error) {
CurrentState = IconState.Idle;
-
UpdateStateText ();
}
@@ -216,44 +191,61 @@ namespace SparkleShare {
UpdateMenuEvent (CurrentState);
};
- Program.Controller.OnSyncing += delegate {
- int repos_syncing_up = 0;
- int repos_syncing_down = 0;
-
- foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
- if (repo.Status == SyncStatus.SyncUp)
- repos_syncing_up++;
-
- if (repo.Status == SyncStatus.SyncDown)
- repos_syncing_down++;
- }
-
- if (repos_syncing_up > 0 &&
- repos_syncing_down > 0) {
-
- CurrentState = IconState.Syncing;
- StateText = "Syncing changes…";
-
- } else if (repos_syncing_down == 0) {
- CurrentState = IconState.SyncingUp;
- StateText = "Sending changes…";
-
- } else {
- CurrentState = IconState.SyncingDown;
- StateText = "Receiving changes…";
- }
-
- if (ProgressPercentage > 0)
- StateText += " " + ProgressPercentage + "% " + ProgressSpeed;
+ SparkleShare.Controller.OnSyncing += delegate {
+ int repos_syncing_up = 0;
+ int repos_syncing_down = 0;
+
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories) {
+ if (repo.Status == SyncStatus.SyncUp)
+ repos_syncing_up++;
+
+ if (repo.Status == SyncStatus.SyncDown)
+ repos_syncing_down++;
+ }
+
+ if (repos_syncing_up > 0 &&
+ repos_syncing_down > 0) {
+
+ CurrentState = IconState.Syncing;
+ StateText = "Syncing…";
+
+ } else if (repos_syncing_down == 0) {
+ CurrentState = IconState.SyncingUp;
+ StateText = "Sending…";
+
+ } else {
+ CurrentState = IconState.SyncingDown;
+ StateText = "Receiving…";
+ }
+
+ int progress_percentage = (int) SparkleShare.Controller.ProgressPercentage;
+ string progress_speed = "";
+
+ if (SparkleShare.Controller.ProgressSpeedUp > 0.0 && SparkleShare.Controller.ProgressSpeedDown > 0.0) {
+ progress_speed = "Up: " + SparkleShare.Controller.ProgressSpeedUp.ToSize () + "/s " +
+ "Down: " + SparkleShare.Controller.ProgressSpeedDown.ToSize () + "/s";
+ }
+
+ if (SparkleShare.Controller.ProgressSpeedUp > 0.0)
+ progress_speed = SparkleShare.Controller.ProgressSpeedUp.ToSize () + "/s ";
+
+ if (SparkleShare.Controller.ProgressSpeedDown > 0.0)
+ progress_speed = SparkleShare.Controller.ProgressSpeedDown.ToSize () + "/s ";
+
+ if (progress_percentage > 0)
+ StateText += string.Format (" {0}% {1}", progress_percentage, progress_speed);
+
+ if (!string.IsNullOrEmpty (SparkleShare.Controller.ProgressInformation))
+ StateText += " – " + SparkleShare.Controller.ProgressInformation;
UpdateIconEvent (CurrentState);
UpdateStatusItemEvent (StateText);
UpdateQuitItemEvent (QuitItemEnabled);
};
- Program.Controller.OnError += delegate {
+ SparkleShare.Controller.OnError += delegate {
CurrentState = IconState.Error;
- StateText = "Some changes weren’t synced";
+ StateText = "Not everything synced";
UpdateFolders ();
@@ -266,7 +258,7 @@ namespace SparkleShare {
// FIXME: Work around a race condition causing
// the icon to not always show the right state
- Timers.Timer timer = new Timers.Timer () { Interval = 30 * 1000 };
+ var timer = new Timers.Timer { Interval = 30 * 1000 };
timer.Elapsed += delegate {
UpdateIconEvent (CurrentState);
@@ -282,7 +274,7 @@ namespace SparkleShare {
if (Projects.Length == 0)
return StateText = "Welcome to SparkleShare!";
else
- return StateText = "Projects up to date " + GetPausedCount ();
+ return StateText = "✓ Synced " + GetPausedCount ();
}
@@ -305,56 +297,56 @@ namespace SparkleShare {
public void RecentEventsClicked ()
{
new Thread (() => {
- while (!Program.Controller.RepositoriesLoaded)
+ while (!SparkleShare.Controller.RepositoriesLoaded)
Thread.Sleep (100);
- Program.Controller.ShowEventLogWindow ();
+ SparkleShare.Controller.ShowEventLogWindow ();
}).Start ();
}
public void AddHostedProjectClicked ()
{
- new Thread (() => Program.Controller.ShowSetupWindow (PageType.Add)).Start ();
+ new Thread (() => SparkleShare.Controller.ShowSetupWindow (PageType.Add)).Start ();
}
public void CopyToClipboardClicked ()
{
- Program.Controller.CopyToClipboard (Program.Controller.CurrentUser.PublicKey);
+ SparkleShare.Controller.CopyToClipboard (SparkleShare.Controller.UserAuthenticationInfo.PublicKey);
}
public void AboutClicked ()
{
- Program.Controller.ShowAboutWindow ();
+ SparkleShare.Controller.ShowAboutWindow ();
}
public void QuitClicked ()
{
- Program.Controller.Quit ();
+ SparkleShare.Controller.Quit ();
}
// Project items
public void ProjectClicked (string project)
{
- Program.Controller.OpenSparkleShareFolder (project);
+ SparkleShare.Controller.OpenSparkleShareFolder (project);
}
public void PauseClicked (string project)
{
- Program.Controller.GetRepoByName (project).Pause ();
+ SparkleShare.Controller.GetRepoByName (project).Pause ();
UpdateStateText ();
UpdateMenuEvent (CurrentState);
}
public void ResumeClicked (string project)
{
- if (Program.Controller.GetRepoByName (project).UnsyncedChanges.Count > 0) {
- Program.Controller.ShowNoteWindow (project);
+ if (SparkleShare.Controller.GetRepoByName (project).UnsyncedChanges.Count > 0) {
+ SparkleShare.Controller.ShowNoteWindow (project);
} else {
new Thread (() => {
- Program.Controller.GetRepoByName (project).Resume ("");
+ SparkleShare.Controller.GetRepoByName (project).Resume ("");
UpdateStateText ();
UpdateMenuEvent (CurrentState);
@@ -365,7 +357,7 @@ namespace SparkleShare {
public void TryAgainClicked (string project)
{
- new Thread (() => Program.Controller.GetRepoByName (project).ForceRetry ()).Start ();
+ new Thread (() => SparkleShare.Controller.GetRepoByName (project).ForceRetry ()).Start ();
}
@@ -391,18 +383,18 @@ namespace SparkleShare {
}
- private Object projects_lock = new Object ();
+ readonly object projects_lock = new object ();
- private void UpdateFolders ()
+ void UpdateFolders ()
{
- lock (this.projects_lock) {
- List<ProjectInfo> projects = new List<ProjectInfo> ();
+ var projects = new List<ProjectInfo> ();
- foreach (SparkleRepoBase repo in Program.Controller.Repositories)
+ lock (projects_lock) {
+ foreach (BaseRepository repo in SparkleShare.Controller.Repositories)
projects.Add (new ProjectInfo (repo));
-
- Projects = projects.ToArray ();
}
+
+ Projects = projects.ToArray ();
}
}
}
diff --git a/SparkleShare/Common/Translations/nl.po b/SparkleShare/Common/Translations/nl.po
index 6aa7dd2..9735dd6 100755
--- a/SparkleShare/Common/Translations/nl.po
+++ b/SparkleShare/Common/Translations/nl.po
@@ -2,7 +2,7 @@
#
# Translators:
# <benjamincottyn@gmail.com>, 2011.
-# <hylkebons@gmail.com>, 2011.
+# <hi@planetpeanut.uk>, 2011.
# <inxidious@gmail.com>, 2011.
# Łukasz Jernaś <deejay1@srem.org>, 2011.
# <m.manshanden@gmail.com>, 2011.
diff --git a/SparkleShare/Linux/About.cs b/SparkleShare/Linux/About.cs
new file mode 100755
index 0000000..f29b5bf
--- /dev/null
+++ b/SparkleShare/Linux/About.cs
@@ -0,0 +1,168 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk)
+//
+// 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 3 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, see (http://www.gnu.org/licenses/).
+
+
+using System;
+
+using Sparkles;
+using Gtk;
+
+namespace SparkleShare {
+
+ public class About : Window {
+
+ public AboutController Controller = new AboutController ();
+
+ Label updates;
+
+
+ public About () : base ("About SparkleShare")
+ {
+ SetWmclass ("SparkleShare", "SparkleShare");
+
+ IconName = "org.sparkleshare.SparkleShare";
+ Resizable = false;
+ WindowPosition = WindowPosition.CenterAlways;
+ TypeHint = Gdk.WindowTypeHint.Dialog;
+
+ SetSizeRequest (640, 260);
+
+
+ DeleteEvent += delegate (object o, DeleteEventArgs args) {
+ Controller.WindowClosed ();
+ args.RetVal = true;
+ };
+
+ KeyPressEvent += delegate (object o, KeyPressEventArgs args) {
+ if (args.Event.Key == Gdk.Key.Escape ||
+ (args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) {
+
+ Controller.WindowClosed ();
+ }
+ };
+
+ Controller.HideWindowEvent += delegate {
+ Application.Invoke (delegate { Hide (); });
+ };
+
+ Controller.ShowWindowEvent += delegate {
+ Application.Invoke (delegate {
+ ShowAll ();
+ Present ();
+ });
+ };
+
+ Controller.UpdateLabelEvent += delegate (string text) {
+ Application.Invoke (delegate {
+ updates.Text = text;
+ updates.ShowAll();
+ });
+ };
+
+
+ CreateAbout ();
+ }
+
+
+ void CreateAbout ()
+ {
+ CssProvider window_css_provider = new CssProvider ();
+ Image image = UserInterfaceHelpers.GetImage ("about.png");
+
+ window_css_provider.LoadFromData ("window, GtkWindow {" +
+ " background-image: url(\"/app/share/sparkleshare/pixmaps/about.png\");" +
+ " background-repeat: no-repeat;" +
+ " background-position: left bottom;" +
+ "}");
+
+ StyleContext.AddProvider (window_css_provider, 800);
+
+ var layout_vertical = new VBox (false, 0);
+ var links_layout = new HBox (false, 16);
+
+ CssProvider label_css_provider = new CssProvider ();
+ label_css_provider.LoadFromData ("label { color: #fff; font-size: 14pt; background-color: rgba(0, 0, 0, 0); }");
+
+ CssProvider label_highlight_css_provider = new CssProvider ();
+ label_highlight_css_provider.LoadFromData ("label { color: #a8bbcf; font-size: 12pt; }");
+
+ var version = new Label {
+ Text = "version " + Controller.RunningVersion,
+ Xalign = 0, Xpad = 0
+ };
+
+ if (InstallationInfo.Directory.StartsWith ("/app", StringComparison.InvariantCulture))
+ version.Text += " (Flatpak)";
+
+ updates = new Label ("Checking for updates…") {
+ Xalign = 0, Xpad = 0
+ };
+
+ var copyright = new Label {
+ Markup = string.Format ("Copyright © 2010–{0} Hylke Bons and others", DateTime.Now.Year),
+ Xalign = 0, Xpad = 0
+ };
+
+ var license = new Label ("SparkleShare is Open Source and you’re free to use,\n" +
+ "change, and share it under the GNU GPLv3") {
+
+ Xalign = 0, Xpad = 0
+ };
+
+ license.StyleContext.AddProvider (label_css_provider, 800);
+ updates.StyleContext.AddProvider (label_highlight_css_provider, 800);
+ version.StyleContext.AddProvider (label_css_provider, 800);
+ copyright.StyleContext.AddProvider (label_css_provider, 800);
+
+ var website_link = new Link ("Website", Controller.WebsiteLinkAddress);
+ var credits_link = new Link ("Credits", Controller.CreditsLinkAddress);
+ var report_problem_link = new Link ("Report a problem", Controller.ReportProblemLinkAddress);
+ var debug_log_link = new Link ("Debug log", Controller.DebugLogLinkAddress);
+
+ layout_vertical.PackStart (new Label (""), true, true, 0);
+ layout_vertical.PackStart (version, false, false, 0);
+ layout_vertical.PackStart (updates, false, false, 0);
+ layout_vertical.PackStart (copyright, false, false, 6);
+ layout_vertical.PackStart (license, false, false, 6);
+ layout_vertical.PackStart (links_layout, false, false, 16);
+
+ links_layout.PackStart (website_link, false, false, 0);
+ links_layout.PackStart (credits_link, false, false, 0);
+ links_layout.PackStart (report_problem_link, false, false, 0);
+ links_layout.PackStart (debug_log_link, false, false, 0);
+
+ var layout_horizontal = new HBox (false, 0);
+ layout_horizontal.PackStart (new Label (""), false, false, 149);
+ layout_horizontal.PackStart (layout_vertical, false, false, 0);
+
+ Add (layout_horizontal);
+ }
+ }
+
+
+ class Link : Label {
+
+ public Link (string label, string url)
+ {
+ Markup = string.Format ("<a href=\"{0}\">{1}</a>", url, label);
+ CanFocus = false;
+
+ CssProvider css_provider = new CssProvider ();
+ css_provider.LoadFromData ("label a { color: #729fcf; font-size: 14pt; }");
+ StyleContext.AddProvider (css_provider, 800);
+ }
+ }
+}
diff --git a/SparkleShare/Linux/SparkleBubbles.cs b/SparkleShare/Linux/Bubbles.cs
index 8ec6dfb..1269f27 100755
--- a/SparkleShare/Linux/SparkleBubbles.cs
+++ b/SparkleShare/Linux/Bubbles.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -19,27 +19,28 @@ using System;
using Gtk;
using Notifications;
-using SparkleLib;
+
+using Sparkles;
namespace SparkleShare {
- public class SparkleBubbles {
+ public class Bubbles {
- public SparkleBubblesController Controller = new SparkleBubblesController ();
+ public BubblesController Controller = new BubblesController ();
- public SparkleBubbles ()
+ public Bubbles ()
{
Controller.ShowBubbleEvent += ShowBubbleEvent;
}
- private void ShowBubbleEvent (string title, string subtext, string image_path)
+ void ShowBubbleEvent (string title, string subtext, string image_path)
{
- if (!Program.Controller.NotificationsEnabled)
+ if (!SparkleShare.Controller.NotificationsEnabled)
return;
- Application.Invoke (delegate {
+ Application.Invoke (delegate {
Notification notification = new Notification () {
Summary = title,
Body = subtext,
@@ -50,16 +51,15 @@ namespace SparkleShare {
if (image_path != null)
notification.Icon = new Gdk.Pixbuf (image_path);
else
- notification.IconName = "folder-sparkleshare";
+ notification.IconName = "org.sparkleshare.SparkleShare";
try {
notification.Show ();
} catch (Exception e) {
- SparkleLogger.LogInfo ("Notification", "Error showing notification: ", e);
+ Logger.LogInfo ("Notification", "Could not show notification: ", e);
}
});
}
}
}
-
diff --git a/SparkleShare/Linux/Controller.cs b/SparkleShare/Linux/Controller.cs
new file mode 100644
index 0000000..5156a1b
--- /dev/null
+++ b/SparkleShare/Linux/Controller.cs
@@ -0,0 +1,140 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+using System.Diagnostics;
+using System.IO;
+
+using Gtk;
+using Mono.Unix.Native;
+
+using Sparkles;
+
+namespace SparkleShare {
+
+ public class Controller : BaseController {
+
+ public Controller (Configuration config)
+ : base (config)
+ {
+ }
+
+
+ public override void CreateSparkleShareFolder ()
+ {
+ if (!Directory.Exists (Configuration.DefaultConfiguration.FoldersPath)) {
+ Directory.CreateDirectory (Configuration.DefaultConfiguration.FoldersPath);
+ Syscall.chmod (Configuration.DefaultConfiguration.FoldersPath, (FilePermissions) 448); // 448 -> 700
+ }
+ }
+
+
+ public override void SetFolderIcon ()
+ {
+ var gvfs_set_attribute = new Command ("gvfs-set-attribute", "\"" + Configuration.DefaultConfiguration.FoldersPath + "\" " +
+ "metadata::custom-icon-name org.sparkleshare.SparkleShare");
+
+ gvfs_set_attribute.StartInfo.EnvironmentVariables ["XDG_DATA_HOME"] =
+ Path.Combine (Config.HomePath, ".local", "share");
+
+ gvfs_set_attribute.StartAndWaitForExit ();
+ }
+
+
+ public override void CreateStartupItem ()
+ {
+ string autostart_file_path = Path.Combine (Path.GetDirectoryName (InstallationInfo.Directory),
+ "applications", "SparkleShare.Autostart.desktop");
+
+ string autostart_file_dest = Path.Combine (Config.HomePath, ".config", "autostart", "SparkleShare.Autostart.desktop");
+ string autostart_path = Path.GetDirectoryName (autostart_file_dest);
+
+ if (!Directory.Exists (autostart_path))
+ Directory.CreateDirectory (autostart_path);
+
+ if (File.Exists (autostart_file_dest))
+ return;
+
+ try {
+ File.Copy (autostart_file_path, autostart_file_dest);
+ Logger.LogInfo ("Controller", "Added SparkleShare to startup items");
+
+ } catch (Exception e) {
+ Logger.LogInfo ("Controller", "Failed to add SparkleShare to startup items", e);
+ }
+ }
+
+
+ public override void InstallProtocolHandler ()
+ {
+ }
+
+
+ public override void CopyToClipboard (string text)
+ {
+ Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)).Text = text;
+ }
+
+
+ public override void OpenFolder (string path)
+ {
+ OpenFile (path);
+ }
+
+
+ public override void OpenFile (string path)
+ {
+ Global.ShowUri (Gdk.Screen.Default, path);
+ }
+
+
+ public override string EventLogHTML {
+ get {
+ string html_path = Path.Combine (InstallationInfo.Directory, "html", "event-log.html");
+ string jquery_file_path = Path.Combine (InstallationInfo.Directory, "html", "jquery.js");
+
+ string html = File.ReadAllText (html_path);
+ string jquery = File.ReadAllText (jquery_file_path);
+
+ return html.Replace ("<!-- $jquery -->", jquery);
+ }
+ }
+
+
+ public override string DayEntryHTML {
+ get {
+ string path = Path.Combine (InstallationInfo.Directory, "html", "day-entry.html");
+ return File.ReadAllText (path);
+ }
+ }
+
+
+ public override string EventEntryHTML {
+ get {
+ string path = Path.Combine (InstallationInfo.Directory, "html", "event-entry.html");
+ return File.ReadAllText (path);
+ }
+ }
+
+
+ public override string PresetsPath {
+ get {
+ return Path.Combine (InstallationInfo.Directory, "presets");
+ }
+ }
+ }
+}
diff --git a/SparkleShare/Linux/SparkleEventLog.cs b/SparkleShare/Linux/EventLog.cs
index db6ff3f..b0c8b02 100755
--- a/SparkleShare/Linux/SparkleEventLog.cs
+++ b/SparkleShare/Linux/EventLog.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,41 +16,43 @@
using System;
+using IO = System.IO;
using Gtk;
-using WebKit;
+using WebKit2;
namespace SparkleShare {
- public class SparkleEventLog : Window {
+ public class EventLog : Window {
- public SparkleEventLogController Controller = new SparkleEventLogController ();
+ public EventLogController Controller = new EventLogController ();
private Label size_label;
private Label history_label;
- private ComboBox combo_box;
private EventBox content_wrapper;
- private HBox combo_box_wrapper;
- private HBox layout_horizontal;
private ScrolledWindow scrolled_window;
private VBox spinner_wrapper;
private Spinner spinner;
private WebView web_view;
- private int pos_x, pos_y;
+ int pos_x, pos_y;
- public SparkleEventLog () : base ("Recent Changes")
+ public EventLog () : base ("Recent Changes")
{
SetWmclass ("SparkleShare", "SparkleShare");
+ TypeHint = Gdk.WindowTypeHint.Dialog;
+ IconName = "org.sparkleshare.SparkleShare";
+
+ SetSizeRequest (480, 640);
+
Gdk.Rectangle monitor_0_rect = Gdk.Screen.Default.GetMonitorGeometry (0);
- SetSizeRequest (480, (int) (monitor_0_rect.Height * 0.8));
+ pos_x = (int) (monitor_0_rect.Width * 0.61);
+ pos_y = (int) (monitor_0_rect.Height * 0.5 - (HeightRequest * 0.5));
+
+ Resize (480, (int) (monitor_0_rect.Height * 0.8));
- IconName = "sparkleshare";
- this.pos_x = (int) (monitor_0_rect.Width * 0.61);
- this.pos_y = (int) (monitor_0_rect.Height * 0.5 - (HeightRequest * 0.5));
-
this.size_label = new Label () { Xalign = 0, Markup = "<b>Size:</b> …" };
this.history_label = new Label () { Xalign = 0, Markup = "<b>History:</b> …" };
@@ -66,12 +68,11 @@ namespace SparkleShare {
this.content_wrapper = new EventBox ();
this.scrolled_window = new ScrolledWindow ();
- this.content_wrapper.OverrideBackgroundColor (StateFlags.Normal,
- new Gdk.RGBA () { Red = 1, Green = 1, Blue=1, Alpha = 1 });
-
- this.web_view = new WebView () { Editable = false };
- this.web_view.NavigationRequested += WebViewNavigationRequested;
+ CssProvider css_provider = new CssProvider ();
+ css_provider.LoadFromData ("GtkEventBox { background-color: #ffffff; }");
+ this.content_wrapper.StyleContext.AddProvider (css_provider, 800);
+ this.web_view = CreateWebView ();
this.scrolled_window.Add (this.web_view);
this.spinner_wrapper = new VBox (false, 0);
@@ -83,11 +84,6 @@ namespace SparkleShare {
this.content_wrapper.Add (this.spinner_wrapper);
- this.layout_horizontal = new HBox (false, 0);
- this.layout_horizontal.PackStart (layout_sizes, true, true, 12);
-
- layout_vertical.PackStart (this.layout_horizontal, false, false, 0);
- layout_vertical.PackStart (new HSeparator (), false, false, 0);
layout_vertical.PackStart (this.content_wrapper, true, true, 0);
Add (layout_vertical);
@@ -104,7 +100,7 @@ namespace SparkleShare {
Controller.ShowWindowEvent += delegate {
Application.Invoke (delegate {
- Move (this.pos_x, this.pos_y);
+ Move (pos_x, pos_y);
ShowAll ();
Present ();
});
@@ -128,14 +124,6 @@ namespace SparkleShare {
});
};
- Controller.UpdateChooserEvent += delegate (string [] folders) {
- Application.Invoke (delegate { UpdateChooser (folders); });
- };
-
- Controller.UpdateChooserEnablementEvent += delegate (bool enabled) {
- Application.Invoke (delegate { this.combo_box.Sensitive = enabled; });
- };
-
Controller.UpdateContentEvent += delegate (string html) {
Application.Invoke (delegate { UpdateContent (html); });
};
@@ -170,120 +158,90 @@ namespace SparkleShare {
}
};
}
-
-
- public void UpdateChooser (string [] folders)
- {
- if (folders == null)
- folders = Controller.Folders;
-
- if (this.combo_box_wrapper != null && this.combo_box_wrapper.Parent != null) {
- this.layout_horizontal.Remove (this.combo_box_wrapper);
- this.combo_box_wrapper.Remove (this.combo_box);
- }
-
- this.combo_box_wrapper = new HBox (false, 0);
- this.combo_box = new ComboBox ();
-
- CellRendererText cell = new CellRendererText();
- this.combo_box.PackStart (cell, false);
- this.combo_box.AddAttribute (cell, "text", 0);
-
- ListStore store = new ListStore (typeof (string));
-
- store.AppendValues ("Summary");
- store.AppendValues ("---");
-
- this.combo_box.Model = store;
- this.combo_box.Active = 0;
-
- int row = 2;
- foreach (string folder in folders) {
- store.AppendValues (folder);
-
- if (folder.Equals (Controller.SelectedFolder))
- this.combo_box.Active = row;
-
- row++;
- }
-
- this.combo_box.RowSeparatorFunc = delegate (ITreeModel model, TreeIter iter) {
- string item = (string) this.combo_box.Model.GetValue (iter, 0);
- return (item == "---");
- };
-
- this.combo_box.Changed += delegate {
- TreeIter iter;
- this.combo_box.GetActiveIter (out iter);
- string selection = (string) this.combo_box.Model.GetValue (iter, 0);
- TreePath path = this.combo_box.Model.GetPath (iter);
-
- if (path.Indices [0] == 0)
- Controller.SelectedFolder = null;
- else
- Controller.SelectedFolder = selection;
- };
-
- this.combo_box_wrapper.Add (this.combo_box);
- this.combo_box.GrabFocus ();
-
- this.layout_horizontal.BorderWidth = 6;
- this.layout_horizontal.PackStart (this.combo_box_wrapper, false, false, 0);
- this.layout_horizontal.ShowAll ();
- }
public void UpdateContent (string html)
{
- string pixmaps_path = new string [] {SparkleUI.AssetsPath, "pixmaps"}.Combine ();
- string icons_path = new string [] {SparkleUI.AssetsPath, "icons", "hicolor", "12x12", "status"}.Combine ();
+ string pixmaps_path = IO.Path.Combine (UserInterface.AssetsPath, "pixmaps");
+ string icons_path = IO.Path.Combine (UserInterface.AssetsPath, "icons", "hicolor", "12x12", "status");
html = html.Replace ("<!-- $a-hover-color -->", "#009ff8");
html = html.Replace ("<!-- $a-color -->", "#0085cf");
html = html.Replace ("<!-- $body-font-family -->", StyleContext.GetFont (StateFlags.Normal).Family);
html = html.Replace ("<!-- $body-font-size -->", (double) (StyleContext.GetFont (StateFlags.Normal).Size / 1024 + 3) + "px");
- html = html.Replace ("<!-- $body-color -->", SparkleUIHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Normal)));
- html = html.Replace ("<!-- $body-background-color -->",
- SparkleUIHelpers.RGBAToHex (new TreeView ().StyleContext.GetBackgroundColor (StateFlags.Normal)));
+ html = html.Replace ("<!-- $body-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Normal)));
+
+ // TODO
+ // html = html.Replace ("<!-- $body-background-color -->",
+ // UserInterfaceHelpers.RGBAToHex (new TreeView ().StyleContext.GetStyleProperty ("background-color")));
html = html.Replace ("<!-- $day-entry-header-font-size -->", (StyleContext.GetFont (StateFlags.Normal).Size / 1024 + 3) + "px");
html = html.Replace ("<!-- $day-entry-header-background-color -->",
- SparkleUIHelpers.RGBAToHex (StyleContext.GetBackgroundColor (StateFlags.Normal)));
+ UserInterfaceHelpers.RGBAToHex (StyleContext.GetBackgroundColor (StateFlags.Normal)));
- html = html.Replace ("<!-- $secondary-font-color -->", SparkleUIHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
+ html = html.Replace ("<!-- $secondary-font-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
- html = html.Replace ("<!-- $small-color -->", SparkleUIHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
+ html = html.Replace ("<!-- $small-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
html = html.Replace ("<!-- $small-font-size -->", "90%");
html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path);
- html = html.Replace ("<!-- $document-added-background-image -->", "file://" + new string [] {icons_path, "document-added.png"}.Combine ());
- html = html.Replace ("<!-- $document-edited-background-image -->", "file://" + new string [] {icons_path, "document-edited.png"}.Combine ());
- html = html.Replace ("<!-- $document-deleted-background-image -->", "file://" + new string [] {icons_path, "document-deleted.png"}.Combine ());
- html = html.Replace ("<!-- $document-moved-background-image -->", "file://" + new string [] {icons_path, "document-moved.png"}.Combine ());
+ html = html.Replace ("<!-- $document-added-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-added.png"));
+ html = html.Replace ("<!-- $document-edited-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-edited.png"));
+ html = html.Replace ("<!-- $document-deleted-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-deleted.png"));
+ html = html.Replace ("<!-- $document-moved-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-moved.png"));
this.spinner.Stop ();
- this.scrolled_window.Remove (this.web_view);
+ this.scrolled_window.Remove (this.scrolled_window.Child);
this.web_view.Dispose ();
- this.web_view = new WebView () { Editable = false };
- this.web_view.LoadString (html, "text/html", "UTF-8", "file://");
- this.web_view.NavigationRequested += WebViewNavigationRequested;
+ this.web_view = CreateWebView ();
+ this.web_view.LoadHtml (html, "file:///");
+
this.scrolled_window.Add (this.web_view);
this.content_wrapper.Remove (this.content_wrapper.Child);
this.content_wrapper.Add (this.scrolled_window);
this.scrolled_window.ShowAll ();
}
+
+ WebView CreateWebView ()
+ {
+ var web_view = new SparkleWebView { Editable = false };
+ web_view.Settings.EnablePlugins = false;
+
+ web_view.LinkClicked += Controller.LinkClicked;
+
+ return web_view;
+ }
- private void WebViewNavigationRequested (object o, WebKit.NavigationRequestedArgs args) {
- Controller.LinkClicked (args.Request.Uri);
- // Don't follow HREFs (as this would cause a page refresh)
- if (!args.Request.Uri.Equals ("file:"))
- args.RetVal = 1;
+ class SparkleWebView : WebView {
+
+ public event LinkClickedHandler LinkClicked = delegate { };
+ public delegate void LinkClickedHandler (string href);
+
+
+ protected override bool OnDecidePolicy (PolicyDecision decision, PolicyDecisionType decision_type)
+ {
+ if (decision_type != PolicyDecisionType.NavigationAction) {
+ decision.Use ();
+ return false;
+ }
+
+ string uri = (decision as NavigationPolicyDecision).Request.Uri;
+
+ if (uri.Equals ("file:///")) {
+ decision.Use ();
+ return false;
+ }
+
+ LinkClicked (uri);
+ decision.Ignore ();
+
+ return true;
+ }
}
}
}
-
diff --git a/SparkleShare/Linux/Pixmaps/Makefile.am b/SparkleShare/Linux/Images/Makefile.am
index 91e7038..ebbcebc 100755
--- a/SparkleShare/Linux/Pixmaps/Makefile.am
+++ b/SparkleShare/Linux/Images/Makefile.am
@@ -7,3 +7,4 @@ pixmapsdir = $(pkgdatadir)/pixmaps/
MAINTAINERCLEANFILES = \
Makefile.in
+
diff --git a/SparkleShare/Linux/Images/icons/Makefile.am b/SparkleShare/Linux/Images/icons/Makefile.am
new file mode 100755
index 0000000..7fccd42
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/Makefile.am
@@ -0,0 +1,4 @@
+SUBDIRS = hicolor \
+ ubuntu-mono-dark \
+ ubuntu-mono-light
+
diff --git a/SparkleShare/Linux/Pixmaps/icons/Makefile.am b/SparkleShare/Linux/Images/icons/hicolor/Makefile.am
index 9d4fca7..aa9e46e 100755..100644
--- a/SparkleShare/Linux/Pixmaps/icons/Makefile.am
+++ b/SparkleShare/Linux/Images/icons/hicolor/Makefile.am
@@ -1,33 +1,31 @@
-SUBDIRS = ubuntu-mono-dark \
- ubuntu-mono-light\
- gnome
-
theme = hicolor
-system_themedir = $(datadir)/icons/$(theme)
app_themedir = $(pkgdatadir)/icons/$(theme)
+system_themedir = $(datadir)/icons/$(theme)
system_theme_icons = \
- apps,sparkleshare-16.png \
- apps,sparkleshare-22.png \
- apps,sparkleshare-24.png \
- apps,sparkleshare-256.png \
- apps,sparkleshare-32.png \
- apps,sparkleshare-48.png \
- status,process-syncing-up-24.png \
- status,process-syncing-down-24.png \
- status,process-syncing-24.png \
- status,process-syncing-error-24.png \
- status,process-syncing-up-48.png \
- status,process-syncing-down-48.png \
- status,process-syncing-48.png \
- status,process-syncing-error-48.png
+ apps,org.sparkleshare.SparkleShare-16.png \
+ apps,org.sparkleshare.SparkleShare-symbolic.svg \
+ apps,org.sparkleshare.SparkleShare-22.png \
+ apps,org.sparkleshare.SparkleShare-24.png \
+ apps,org.sparkleshare.SparkleShare-32.png \
+ apps,org.sparkleshare.SparkleShare-48.png \
+ apps,org.sparkleshare.SparkleShare-256.png \
+ apps,org.sparkleshare.SparkleShare-512.png
app_theme_icons = \
status,document-added-12.png \
status,document-edited-12.png \
status,document-deleted-12.png \
status,document-moved-12.png \
- status,list-point-16.png
+ status,list-point-16.png \
+ status,process-syncing-up-24.png \
+ status,process-syncing-down-24.png \
+ status,process-syncing-24.png \
+ status,process-syncing-error-24.png \
+ status,process-syncing-up-48.png \
+ status,process-syncing-down-48.png \
+ status,process-syncing-48.png \
+ status,process-syncing-error-48.png
install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
-t "$(theme)" \
@@ -46,3 +44,4 @@ uninstall-hook:
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(wildcard *.png *.svg)
+
diff --git a/SparkleShare/Linux/Pixmaps/icons/document-added-12.png b/SparkleShare/Linux/Images/icons/hicolor/document-added-12.png
index 7c4c1bd..7c4c1bd 100755
--- a/SparkleShare/Linux/Pixmaps/icons/document-added-12.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/document-added-12.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/document-deleted-12.png b/SparkleShare/Linux/Images/icons/hicolor/document-deleted-12.png
index 06f4291..06f4291 100755
--- a/SparkleShare/Linux/Pixmaps/icons/document-deleted-12.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/document-deleted-12.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/document-edited-12.png b/SparkleShare/Linux/Images/icons/hicolor/document-edited-12.png
index c8b8f66..c8b8f66 100755
--- a/SparkleShare/Linux/Pixmaps/icons/document-edited-12.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/document-edited-12.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/document-moved-12.png b/SparkleShare/Linux/Images/icons/hicolor/document-moved-12.png
index 9306514..9306514 100755
--- a/SparkleShare/Linux/Pixmaps/icons/document-moved-12.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/document-moved-12.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/list-point-16.png b/SparkleShare/Linux/Images/icons/hicolor/list-point-16.png
index fa89d31..fa89d31 100755
--- a/SparkleShare/Linux/Pixmaps/icons/list-point-16.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/list-point-16.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-16.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-16.png
new file mode 100644
index 0000000..da499b9
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-16.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-22.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-22.png
new file mode 100644
index 0000000..a7445bd
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-22.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-24.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-24.png
new file mode 100644
index 0000000..7c57122
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-256.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-256.png
new file mode 100755
index 0000000..b79a223
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-256.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-32.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-32.png
new file mode 100644
index 0000000..7c57122
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-32.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-48.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-48.png
new file mode 100644
index 0000000..ed5013f
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-48.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-512.png b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-512.png
new file mode 100644
index 0000000..7f100e7
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-512.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/gnome/sparkleshare-symbolic.svg b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-symbolic.svg
index cf8b194..cf8b194 100644
--- a/SparkleShare/Linux/Pixmaps/icons/gnome/sparkleshare-symbolic.svg
+++ b/SparkleShare/Linux/Images/icons/hicolor/org.sparkleshare.SparkleShare-symbolic.svg
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-24.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-24.png
index 55b836b..55b836b 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-24.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-48.png
index 46aef6a..46aef6a 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-48.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-24.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-24.png
index 384e259..384e259 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-24.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-48.png
index 8edbea1..8edbea1 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-down-48.png
Binary files differ
diff --git a/SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-24.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-24.png
new file mode 100755
index 0000000..be9137e
--- /dev/null
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-48.png
index 95e6b5a..95e6b5a 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-48.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-error-48.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-24.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-24.png
index 955cd6c..955cd6c 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-24.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-48.png
index 95eeb03..95eeb03 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-syncing-up-48.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-working-22.png b/SparkleShare/Linux/Images/icons/hicolor/process-working-22.png
index 1b90a03..1b90a03 100644
--- a/SparkleShare/Linux/Pixmaps/icons/process-working-22.png
+++ b/SparkleShare/Linux/Images/icons/hicolor/process-working-22.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile.am b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/Makefile.am
index 48bc9ee..42b3e74 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile.am
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/Makefile.am
@@ -23,3 +23,4 @@ uninstall-hook:
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(wildcard *.png *.svg)
+
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-24.png
index 3cb78b5..3cb78b5 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-down-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-down-24.png
index 6a00865..6a00865 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-down-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-down-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-error-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-error-24.png
index cfe5261..cfe5261 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-error-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-error-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-idle-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-idle-24.png
index 32da58b..32da58b 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-idle-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-idle-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-up-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-up-24.png
index 6f129a6..6f129a6 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-up-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-dark/process-syncing-up-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile.am b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/Makefile.am
index a4e77c8..a4e77c8 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile.am
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/Makefile.am
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-24.png
index 59df796..59df796 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-down-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-down-24.png
index 141243b..141243b 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-down-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-down-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-error-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-error-24.png
index 1f2dab5..1f2dab5 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-error-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-error-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-idle-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-idle-24.png
index b0fa246..b0fa246 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-idle-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-idle-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-up-24.png b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-up-24.png
index 79d5084..79d5084 100644
--- a/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-up-24.png
+++ b/SparkleShare/Linux/Images/icons/ubuntu-mono-light/process-syncing-up-24.png
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/tutorial-slide-3.png b/SparkleShare/Linux/Images/tutorial-slide-3.png
index f3206ee..f3206ee 100755
--- a/SparkleShare/Linux/Pixmaps/tutorial-slide-3.png
+++ b/SparkleShare/Linux/Images/tutorial-slide-3.png
Binary files differ
diff --git a/SparkleShare/Linux/Makefile.am b/SparkleShare/Linux/Makefile.am
index b54a392..f56def6 100644
--- a/SparkleShare/Linux/Makefile.am
+++ b/SparkleShare/Linux/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = Pixmaps
+SUBDIRS = Images
ASSEMBLY = SparkleShare
TARGET = exe
@@ -6,42 +6,41 @@ TARGET = exe
LINK = $(REF_SPARKLESHARE) $(NOTIFY_SHARP_LIBS) $(WEBKITGTK_SHARP_LIBS)
if HAVE_APP_INDICATOR
-BUILD_DEFINES="-define:HAVE_APP_INDICATOR"
+BUILD_DEFINES = "-define:HAVE_APP_INDICATOR"
endif
SOURCES = \
- ../Program.cs \
- ../SparkleAboutController.cs \
- ../SparkleAvatars.cs \
- ../SparkleBubblesController.cs \
- ../SparkleControllerBase.cs \
- ../SparkleEventLogController.cs \
- ../SparkleExtensions.cs \
- ../SparkleInvite.cs \
- ../SparkleKeys.cs \
- ../SparkleNoteController.cs \
- ../SparklePlugin.cs \
- ../SparkleSetupController.cs \
- ../SparkleStatusIconController.cs \
- SparkleAbout.cs \
- SparkleBubbles.cs \
- SparkleController.cs \
- SparkleEventLog.cs \
- SparkleNote.cs \
- SparkleSetup.cs \
- SparkleSetupWindow.cs \
- SparkleStatusIcon.cs \
- SparkleUI.cs \
- SparkleUIHelpers.cs
+ ../Common/SparkleShare.cs \
+ ../Common/AboutController.cs \
+ ../Common/Avatars.cs \
+ ../Common/BubblesController.cs \
+ ../Common/BaseController.cs \
+ ../Common/EventLogController.cs \
+ ../Common/NoteController.cs \
+ ../Common/SetupController.cs \
+ ../Common/StatusIconController.cs \
+ About.cs \
+ Bubbles.cs \
+ EventLog.cs \
+ Note.cs \
+ Setup.cs \
+ SetupWindow.cs \
+ StatusIcon.cs \
+ UserInterface.cs \
+ UserInterfaceHelpers.cs \
+ Controller.cs
include $(top_srcdir)/build/build.mk
bin_SCRIPTS = sparkleshare
Applicationsdir = $(datadir)/applications
-dist_Applications_DATA = sparkleshare.desktop \
- sparkleshare-invite-opener.desktop
+dist_Applications_DATA = \
+ org.sparkleshare.SparkleShare.desktop \
+ org.sparkleshare.SparkleShare.Invites.desktop \
+ SparkleShare.Autostart.desktop
install-data-hook:
test -f $(datadir)/applications/defaults.list && \
test -z $(DESTDIR) && update-desktop-database $(datadir)/applications || :
+
diff --git a/SparkleShare/Linux/SparkleNote.cs b/SparkleShare/Linux/Note.cs
index 410998b..e4ccd29 100755..100644
--- a/SparkleShare/Linux/SparkleNote.cs
+++ b/SparkleShare/Linux/Note.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
+// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk)
//
// 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
@@ -15,23 +15,22 @@
// along with this program. If not, see (http://www.gnu.org/licenses/).
-using System;
using Gtk;
namespace SparkleShare {
- public class SparkleNote : Window {
+ public class Note : Window {
- public SparkleNoteController Controller = new SparkleNoteController ();
+ public NoteController Controller = new NoteController ();
- public SparkleNote () : base ("Add Note")
+ public Note () : base ("Add Note")
{
SetWmclass ("SparkleShare", "SparkleShare");
- IconName = "sparkleshare";
+ IconName = "org.sparkleshare.SparkleShare";
Resizable = false;
- WindowPosition = WindowPosition.Center;
+ WindowPosition = WindowPosition.CenterAlways;
BorderWidth = 16;
SetSizeRequest (480, 120);
@@ -72,10 +71,10 @@ namespace SparkleShare {
private void CreateNote ()
{
- Image user_image = new Image (Controller.AvatarFilePath);
+ var user_image = new Image (Controller.AvatarFilePath);
/* TODO: Style the entry neatly, multiple lines, and add placeholder text
- string balloon_image_path = new string [] { SparkleUI.AssetsPath, "pixmaps", "text-balloon.png" }.Combine ();
+ string balloon_image_path = new string [] { UserInterface.AssetsPath, "pixmaps", "text-balloon.png" }.Combine ();
Image balloon_image = new Image (balloon_image_path);
CssProvider balloon_css_provider = new CssProvider ();
@@ -88,32 +87,33 @@ namespace SparkleShare {
balloon.StyleContext.AddProvider (balloon_css_provider, 800);
*/
- Label balloon_label = new Label ("<b>Anything to add?</b>") {
+ var balloon_label = new Label ("<b>Anything to add?</b>") {
Xalign = 0,
UseMarkup = true
};
- Entry balloon = new Entry () { MaxLength = 144 };
+ var balloon = new Entry { MaxLength = 144 };
- Button cancel_button = new Button ("Cancel");
- Button sync_button = new Button ("Sync"); // TODO: Make default button
+ var cancel_button = new Button ("Cancel");
+ var sync_button = new Button ("Sync"); // TODO: Make default button
+ sync_button.CanDefault = true;
cancel_button.Clicked += delegate { Controller.CancelClicked (); };
sync_button.Clicked += delegate { Controller.SyncClicked (balloon.Buffer.Text); };
- VBox layout_vertical = new VBox (false, 16);
- HBox layout_horizontal = new HBox (false, 16);
+ var layout_vertical = new VBox (false, 16);
+ var layout_horizontal = new HBox (false, 16);
- HBox buttons = new HBox () {
+ var buttons = new HBox {
Homogeneous = false,
Spacing = 6
};
- Label user_label = new Label () {
- Markup = "<b>" + Program.Controller.CurrentUser.Name + "</b>\n" +
- "<span fgcolor=\"" + Program.UI.SecondaryTextColor + "\">" + Program.Controller.CurrentUser.Email +
+ var user_label = new Label {
+ Markup = "<b>" + SparkleShare.Controller.CurrentUser.Name + "</b>\n" +
+ "<span fgcolor=\"" + SparkleShare.UI.SecondaryTextColor + "\">" + SparkleShare.Controller.CurrentUser.Email +
"</span>"
};
@@ -130,8 +130,6 @@ namespace SparkleShare {
layout_vertical.PackStart (balloon, false, false, 0);
layout_vertical.PackStart (buttons, false, false, 0);
- // FIXME: Doesn't work
- CanDefault = true;
Default = sync_button;
Add (layout_vertical);
diff --git a/SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.am b/SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.am
deleted file mode 100644
index 89edffb..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-gnome_theme = gnome
-gnome_themedir = /usr/share/icons/$(gnome_theme)
-
-gnome_theme_icons = apps,sparkleshare-symbolic.svg
-
-install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
- -t "$(gnome_theme)" \
- -s "$(srcdir)" \
- -d "x$(DESTDIR)" \
- -m "$(mkinstalldirs)" \
- -x "$(INSTALL_DATA)"
-
-install-data-local:
- @-$(install_icon_exec) -i -b "$(gnome_themedir)" $(gnome_theme_icons)
-
-uninstall-hook:
- @-$(install_icon_exec) -u -b "$(gnome_themedir)" $(gnome_theme_icons)
-
-MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = $(wildcard *.png *.svg)
diff --git a/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-24.png b/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-24.png
deleted file mode 100755
index 6e54ce4..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-24.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png
deleted file mode 100755
index b344e26..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png
deleted file mode 100755
index a8264ed..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-24.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-24.png
deleted file mode 100755
index b8d8c34..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-24.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png
deleted file mode 100755
index 5f400dc..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png
deleted file mode 100755
index 9280fd8..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png
deleted file mode 100755
index 28a3d41..0000000
--- a/SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png
+++ /dev/null
Binary files differ
diff --git a/SparkleShare/Linux/README.md b/SparkleShare/Linux/README.md
index f98459c..197fec0 100644
--- a/SparkleShare/Linux/README.md
+++ b/SparkleShare/Linux/README.md
@@ -1,46 +1,56 @@
-## Building on Linux distributions
+# SparkleShare for Linux
-You can choose to build SparkleShare from source or to get the package through your distribution's repositories.
-To run SparkleShare, you'll need the following packages:
-
-**Note:** Git 1.9 changed the way local projects without a history are handled, and may cause protocol errors. Until a solution is found, it's recommended to use Git 1.8.
+To run SparkleShare, you'll need these packages:
```
-git 1.8.x
+curl
+git >= 2.3
+git-lfs >= 1.3.0
gtk-sharp3
-mono-core >= 2.8
+gvfs
+mono-core >= 4.0
notify-sharp
-webkitgtk-sharp
+webkit2gtk-sharp
```
-**Note:** These packages may not overlap with the packages required to perform a build, so please make sure that at least the above packages are installed.
-
-Optional packages:
+On Ubuntu you'll also need:
```
-gvfs (to change file/folder icons)
-libappindicator (for Ubuntu integration)
-curl (to make the "sparkleshare://" protocol handler work)
+libappindicator-sharp
```
-### Installing common build requirements
+## Building on Linux
+### Common build requirements
+
+Make sure to have the `git` package installed when you're building on Linux.
You will need the packages listed below for the most used Linux distributions:
-```
-desktop-file-utils
-intltool
-libtool
-mono-devel
-mono-gmcs
-mono-mcs
-monodevelop
-nant
+```shell
+# On Ubuntu 16.04:
+sudo apt-get install \
+ desktop-file-utils \
+ git \
+ gtk-sharp3-gapi \
+ intltool \
+ libappindicator3-0.1-cil-dev \
+ libdbus-glib2.0-cil-dev \
+ libgtk3.0-cil-dev \
+ libsoup2.4-dev \
+ libtool-bin \
+ libwebkit2gtk-4.0 \
+ mono-devel \
+ mono-mcs \
+ nant \
+ xsltproc
+
+# On Fedora 25:
+sudo dnf install # TODO
```
-### Installing additional source build requirements
+### Additional source build requirements
Install the `gtk-sharp3` bindings from:
https://github.com/mono/gtk-sharp
@@ -50,24 +60,23 @@ https://launchpad.net/~meebey/+archive/mono-preview
Install the `notify-sharp` bindings from:
https://download.gnome.org/sources/notify-sharp/3.0/
-Install the `soup-sharp` and `webkitgtk-sharp` bindings from:
-https://github.com/xDarkice/soup-sharp
-https://github.com/xDarkice/webkitgtk-sharp
+Install the `soup-sharp` and `webkit2gtk-sharp` bindings from:
+https://github.com/hbons/soup-sharp
+https://github.com/hbons/webkit2gtk-sharp
All with the usual:
-```
+```bash
./autogen.sh
make
sudo make install
```
If you're using Ubuntu, also install the `appindicator-sharp` bindings from:
-https://github.com/xDarkice/appindicator-sharp
+https://github.com/hbons/appindicator-sharp
-
-### Starting the build
+### Start the build
You can build and install SparkleShare like this:
@@ -78,16 +87,17 @@ $ sudo make install
```
-### Resetting SparkleShare settings
+### Uninstall
-```
-rm -Rf ~/SparkleShare
-rm -Rf ~/.config/sparkleshare
+```bash
+sudo make uninstall
```
-### Uninstalling
+### Reset SparkleShare settings
+```bash
+rm -Rf ~/SparkleShare
+rm -Rf ~/.config/org.sparkleshare.SparkleShare
```
-sudo make uninstall
-```
+
diff --git a/SparkleShare/Linux/SparkleSetup.cs b/SparkleShare/Linux/Setup.cs
index ad698c4..dd1aa4e 100755
--- a/SparkleShare/Linux/SparkleSetup.cs
+++ b/SparkleShare/Linux/Setup.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General private License as published by
@@ -20,14 +20,16 @@ using System;
using Gtk;
using Mono.Unix;
+using Sparkles;
+
namespace SparkleShare {
- public class SparkleSetup : SparkleSetupWindow {
+ public class Setup : SetupWindow {
- public SparkleSetupController Controller = new SparkleSetupController ();
+ public SetupController Controller = new SetupController ();
- public SparkleSetup () : base ()
+ public Setup ()
{
Controller.HideWindowEvent += delegate {
Application.Invoke (delegate { Hide (); });
@@ -61,7 +63,7 @@ namespace SparkleShare {
ColumnSpacing = 6
};
- Label name_label = new Label ("<b>" + "Full Name:" + "</b>") {
+ Label name_label = new Label ("<b>" + "Your Name:" + "</b>") {
UseMarkup = true,
Xalign = 1
};
@@ -71,11 +73,11 @@ namespace SparkleShare {
ActivatesDefault = true
};
- try {
+ try {
UnixUserInfo user_info = UnixUserInfo.GetRealUser ();
if (user_info != null && user_info.RealName != null)
- // Some systems append a series of "," for some reason
+ // Some systems append a series of "," for some reason, TODO: Report upstream
name_entry.Text = user_info.RealName.TrimEnd (",".ToCharArray ());
} catch (ArgumentException) {
@@ -137,9 +139,14 @@ namespace SparkleShare {
VBox layout_address = new VBox (true, 0);
VBox layout_path = new VBox (true, 0);
- ListStore store = new ListStore (typeof (string), typeof (Gdk.Pixbuf), typeof (string), typeof (SparklePlugin));
+ ListStore store = new ListStore (typeof (string), typeof (Gdk.Pixbuf), typeof (string), typeof (Preset));
+
+ SparkleTreeView tree_view = new SparkleTreeView (store) {
+ HeadersVisible = false,
+ SearchColumn = -1,
+ EnableSearch = false
+ };
- SparkleTreeView tree_view = new SparkleTreeView (store) { HeadersVisible = false };
ScrolledWindow scrolled_window = new ScrolledWindow () { ShadowType = ShadowType.In };
scrolled_window.SetPolicy (PolicyType.Never, PolicyType.Automatic);
@@ -157,11 +164,11 @@ namespace SparkleShare {
service_column.PackStart (service_cell, true);
service_column.SetCellDataFunc (service_cell, new TreeCellDataFunc (RenderServiceColumn));
- foreach (SparklePlugin plugin in Controller.Plugins) {
- store.AppendValues ("", new Gdk.Pixbuf (plugin.ImagePath),
- "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
- "<span fgcolor=\"" + Program.UI.SecondaryTextColor + "\">" + plugin.Description + "</span>" +
- "</span>", plugin);
+ foreach (Preset preset in Controller.Presets) {
+ store.AppendValues ("", new Gdk.Pixbuf (preset.ImagePath),
+ "<span size=\"small\"><b>" + preset.Name + "</b>\n" +
+ "<span fgcolor=\"" + SparkleShare.UI.SecondaryTextColor + "\">" + preset.Description + "</span>" +
+ "</span>", preset);
}
tree_view.AppendColumn (service_column);
@@ -169,33 +176,37 @@ namespace SparkleShare {
Entry address_entry = new Entry () {
Text = Controller.PreviousAddress,
- Sensitive = (Controller.SelectedPlugin.Address == null),
+ Sensitive = (Controller.SelectedPreset.Address == null),
ActivatesDefault = true
};
Entry path_entry = new Entry () {
Text = Controller.PreviousPath,
- Sensitive = (Controller.SelectedPlugin.Path == null),
+ Sensitive = (Controller.SelectedPreset.Path == null),
ActivatesDefault = true
};
-
+
+ tree_view.ButtonReleaseEvent += delegate {
+ path_entry.GrabFocus ();
+ };
+
Label address_example = new Label () {
Xalign = 0,
UseMarkup = true,
Markup = "<span size=\"small\" fgcolor=\"" +
- Program.UI.SecondaryTextColor + "\">" + Controller.SelectedPlugin.AddressExample + "</span>"
+ SparkleShare.UI.SecondaryTextColor + "\">" + Controller.SelectedPreset.AddressExample + "</span>"
};
Label path_example = new Label () {
Xalign = 0,
UseMarkup = true,
Markup = "<span size=\"small\" fgcolor=\"" +
- Program.UI.SecondaryTextColor + "\">" + Controller.SelectedPlugin.PathExample + "</span>"
+ SparkleShare.UI.SecondaryTextColor + "\">" + Controller.SelectedPreset.PathExample + "</span>"
};
TreeSelection default_selection = tree_view.Selection;
- TreePath default_path = new TreePath ("" + Controller.SelectedPluginIndex);
+ TreePath default_path = new TreePath ("" + Controller.SelectedPresetIndex);
default_selection.SelectPath (default_path);
tree_view.Model.Foreach (new TreeModelForeachFunc (
@@ -203,7 +214,7 @@ namespace SparkleShare {
string address;
try {
- address = (model.GetValue (iter, 2) as SparklePlugin).Address;
+ address = (model.GetValue (iter, 2) as Preset).Address;
} catch (NullReferenceException) {
address = "";
@@ -213,12 +224,12 @@ namespace SparkleShare {
address.Equals (Controller.PreviousAddress)) {
tree_view.SetCursor (path, service_column, false);
- SparklePlugin plugin = (SparklePlugin) model.GetValue (iter, 2);
+ Preset preset = (Preset) model.GetValue (iter, 2);
- if (plugin.Address != null)
+ if (preset.Address != null)
address_entry.Sensitive = false;
- if (plugin.Path != null)
+ if (preset.Path != null)
path_entry.Sensitive = false;
return true;
@@ -252,11 +263,10 @@ namespace SparkleShare {
layout_fields.PackStart (layout_address, true, true, 0);
layout_fields.PackStart (layout_path, true, true, 0);
- layout_vertical.PackStart (new Label (""), false, false, 0);
layout_vertical.PackStart (scrolled_window, true, true, 0);
layout_vertical.PackStart (layout_fields, false, false, 0);
- tree_view.ScrollToCell (new TreePath ("" + Controller.SelectedPluginIndex), null, true, 0, 0);
+ tree_view.ScrollToCell (new TreePath ("" + Controller.SelectedPresetIndex), null, true, 0, 0);
Add (layout_vertical);
@@ -280,7 +290,7 @@ namespace SparkleShare {
address_entry.Text = text;
address_entry.Sensitive = (state == FieldState.Enabled);
address_example.Markup = "<span size=\"small\" fgcolor=\"" +
- Program.UI.SecondaryTextColor + "\">" + example_text + "</span>";
+ SparkleShare.UI.SecondaryTextColor + "\">" + example_text + "</span>";
});
};
@@ -291,7 +301,7 @@ namespace SparkleShare {
path_entry.Text = text;
path_entry.Sensitive = (state == FieldState.Enabled);
path_example.Markup = "<span size=\"small\" fgcolor=\""
- + Program.UI.SecondaryTextColor + "\">" + example_text + "</span>";
+ + SparkleShare.UI.SecondaryTextColor + "\">" + example_text + "</span>";
});
};
@@ -301,7 +311,7 @@ namespace SparkleShare {
tree_view.CursorChanged += delegate (object sender, EventArgs e) {
- Controller.SelectedPluginChanged (tree_view.SelectedRow);
+ Controller.SelectedPresetChanged (tree_view.SelectedRow);
};
address_entry.Changed += delegate {
@@ -312,7 +322,7 @@ namespace SparkleShare {
add_button.Clicked += delegate { Controller.AddPageCompleted (address_entry.Text, path_entry.Text); };
- CheckButton check_button = new CheckButton ("Fetch prior revisions") { Active = true };
+ CheckButton check_button = new CheckButton ("Fetch prior revisions") { Active = false };
check_button.Toggled += delegate { Controller.HistoryItemChanged (check_button.Active); };
AddOption (check_button);
@@ -405,9 +415,9 @@ namespace SparkleShare {
Header = "Oops! Something went wrong" + "…";
VBox points = new VBox (false, 0);
- Image list_point_one = new Image (SparkleUIHelpers.GetIcon ("list-point", 16));
- Image list_point_two = new Image (SparkleUIHelpers.GetIcon ("list-point", 16));
- Image list_point_three = new Image (SparkleUIHelpers.GetIcon ("list-point", 16));
+ Image list_point_one = new Image (UserInterfaceHelpers.GetIcon ("list-point", 16));
+ Image list_point_two = new Image (UserInterfaceHelpers.GetIcon ("list-point", 16));
+ Image list_point_three = new Image (UserInterfaceHelpers.GetIcon ("list-point", 16));
Label label_one = new Label () {
Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we’ve compiled. " +
@@ -455,7 +465,7 @@ namespace SparkleShare {
points.PackStart (new Label (""), true, true, 0);
Button cancel_button = new Button ("Cancel");
- Button try_again_button = new Button ("Try Again…") { Sensitive = true };
+ Button try_again_button = new Button ("Retry") { Sensitive = true };
cancel_button.Clicked += delegate { Controller.PageCancelled (); };
@@ -467,13 +477,63 @@ namespace SparkleShare {
Add (points);
}
+ if (type == PageType.StorageSetup) {
+ Header = string.Format ("Storage type for ‘{0}’", Controller.SyncingFolder);
+ Description = "What type of storage would you like to use?";
+
+ VBox layout_vertical = new VBox (false, 0);
+ VBox layout_radio_buttons = new VBox (false, 0) { BorderWidth = 12 };
+
+ foreach (StorageTypeInfo storage_type in SparkleShare.Controller.FetcherAvailableStorageTypes) {
+ RadioButton radio_button = new RadioButton (null,
+ storage_type.Name + "\n" + storage_type.Description);
+
+ (radio_button.Child as Label).Markup = string.Format(
+ "<b>{0}</b>\n<span fgcolor=\"{1}\">{2}</span>",
+ storage_type.Name, SparkleShare.UI.SecondaryTextColor, storage_type.Description);
+
+ (radio_button.Child as Label).Xpad = 9;
+
+ layout_radio_buttons.PackStart (radio_button, false, false, 9);
+ radio_button.Group = (layout_radio_buttons.Children [0] as RadioButton).Group;
+ }
+
+ layout_vertical.PackStart (new Label (""), true, true, 0);
+ layout_vertical.PackStart (layout_radio_buttons, false, false, 0);
+ layout_vertical.PackStart (new Label (""), true, true, 0);
+ Add (layout_vertical);
+
+ Button cancel_button = new Button ("Cancel");
+ Button continue_button = new Button ("Continue");
+
+ continue_button.Clicked += delegate {
+ int checkbox_index= 0;
+ foreach (RadioButton radio_button in layout_radio_buttons.Children) {
+ if (radio_button.Active) {
+ StorageTypeInfo selected_storage_type = SparkleShare.Controller.FetcherAvailableStorageTypes [checkbox_index];
+ Controller.StoragePageCompleted (selected_storage_type.Type);
+ return;
+ }
+
+ checkbox_index++;
+ }
+ };
+
+ cancel_button.Clicked += delegate {
+ Controller.SyncingCancelled ();
+ };
+
+ AddButton (cancel_button);
+ AddButton (continue_button);
+ }
+
if (type == PageType.CryptoSetup || type == PageType.CryptoPassword) {
if (type == PageType.CryptoSetup) {
- Header = "Set up file encryption";
+ Header = string.Format ("Encryption password for ‘{0}’", Controller.SyncingFolder);
Description = "Please a provide a strong password that you don’t use elsewhere.";
} else {
- Header = "This project contains encrypted files";
+ Header = string.Format ("‘{0}’ contains encrypted files", Controller.SyncingFolder);
Description = "Please enter the password to see their contents.";
}
@@ -488,7 +548,7 @@ namespace SparkleShare {
ActivatesDefault = true
};
- CheckButton show_password_check_button = new CheckButton ("Show password") {
+ CheckButton show_password_check_button = new CheckButton ("Make visible") {
Active = false,
Xalign = 0,
};
@@ -507,7 +567,7 @@ namespace SparkleShare {
wrapper.PackStart (table, true, false, 0);
Image warning_image = new Image (
- SparkleUIHelpers.GetIcon ("dialog-information", 24));
+ UserInterfaceHelpers.GetIcon ("dialog-information", 24));
Label warning_label = new Label () {
Xalign = 0,
@@ -572,7 +632,7 @@ namespace SparkleShare {
UrgencyHint = true;
- Button show_files_button = new Button ("Show Files…");
+ Button show_files_button = new Button ("Show Files");
Button finish_button = new Button ("Finish");
@@ -581,7 +641,7 @@ namespace SparkleShare {
if (warnings.Length > 0) {
- Image warning_image = new Image (SparkleUIHelpers.GetIcon ("dialog-information", 24));
+ Image warning_image = new Image (UserInterfaceHelpers.GetIcon ("dialog-information", 24));
Label warning_label = new Label (warnings [0]) {
Xalign = 0,
@@ -604,96 +664,6 @@ namespace SparkleShare {
AddButton (show_files_button);
AddButton (finish_button);
}
-
- if (type == PageType.Tutorial) {
- switch (Controller.TutorialPageNumber) {
- case 1: {
- Header = "What’s happening next?";
- Description = "SparkleShare creates a special folder on your computer " +
- "that will keep track of your projects.";
-
- Button skip_tutorial_button = new Button ("Skip Tutorial");
- Button continue_button = new Button ("Continue");
-
- skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped (); };
- continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); };
-
- AddButton (skip_tutorial_button);
- AddButton (continue_button);
-
- break;
- }
-
- case 2: {
- Header = "Sharing files with others";
- Description = "All files added to your project folders are synced automatically with " +
- "the host and your team members.";
-
- Button continue_button = new Button ("Continue");
- continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); };
- AddButton (continue_button);
-
- break;
- }
-
- case 3: {
- Header = "The status icon helps you";
- Description = "It shows the syncing progress, provides easy access to " +
- "your projects, and lets you view recent changes.";
-
- Button continue_button = new Button ("Continue");
- continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); };
- AddButton (continue_button);
-
- break;
- }
-
- case 4: {
- Header = "Here’s your unique Client ID";
- Description = "You’ll need it whenever you want to link this computer to a host. " +
- "You can also find it in the status icon menu.";
-
- Button finish_button = new Button ("Finish");
- VBox layout_vertical = new VBox (false, 0) { BorderWidth = 48 };
- HBox layout_horizontal = new HBox (false, 6);
-
- Entry link_code_entry = new Entry () {
- Text = Program.Controller.CurrentUser.PublicKey,
- Sensitive = false
- };
-
- Button copy_button = new Button (" Copy ");
-
- CheckButton check_button = new CheckButton ("Add SparkleShare to startup items");
- check_button.Active = true;
-
-
- copy_button.Clicked += delegate { Controller.CopyToClipboardClicked (); };
- check_button.Toggled += delegate { Controller.StartupItemChanged (check_button.Active); };
- finish_button.Clicked += delegate { Controller.TutorialPageCompleted (); };
-
-
- layout_horizontal.PackStart (link_code_entry, true, true, 0);
- layout_horizontal.PackStart (copy_button, false, false, 0);
-
- layout_vertical.PackStart (new Label (""), true, true, 0);
- layout_vertical.PackStart (layout_horizontal, false, false, 0);
- layout_vertical.PackStart (new Label (""), true, true, 18);
-
- Add (layout_vertical);
-
- AddOption (check_button);
- AddButton (finish_button);
-
- break;
- }
- }
-
- if (Controller.TutorialPageNumber < 4) {
- Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-" + Controller.TutorialPageNumber + ".png");
- Add (slide);
- }
- }
}
@@ -704,9 +674,9 @@ namespace SparkleShare {
TreeSelection selection = (column.TreeView as TreeView).Selection;
if (selection.IterIsSelected (iter))
- markup = markup.Replace (Program.UI.SecondaryTextColor, Program.UI.SecondaryTextColorSelected);
+ markup = markup.Replace (SparkleShare.UI.SecondaryTextColor, SparkleShare.UI.SecondaryTextColorSelected);
else
- markup = markup.Replace (Program.UI.SecondaryTextColorSelected, Program.UI.SecondaryTextColor);
+ markup = markup.Replace (SparkleShare.UI.SecondaryTextColorSelected, SparkleShare.UI.SecondaryTextColor);
(cell as CellRendererText).Markup = markup;
}
diff --git a/SparkleShare/Linux/SparkleSetupWindow.cs b/SparkleShare/Linux/SetupWindow.cs
index 77b69f8..7320788 100755..100644
--- a/SparkleShare/Linux/SparkleSetupWindow.cs
+++ b/SparkleShare/Linux/SetupWindow.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -20,7 +20,7 @@ using Gtk;
namespace SparkleShare {
- public class SparkleSetupWindow : Window {
+ public class SetupWindow : Window {
private EventBox content_area;
private EventBox option_area;
@@ -30,45 +30,37 @@ namespace SparkleShare {
public string Description;
- public SparkleSetupWindow () : base ("SparkleShare Setup")
+ public SetupWindow () : base ("SparkleShare Setup")
{
SetWmclass ("SparkleShare", "SparkleShare");
- IconName = "sparkleshare";
+ IconName = "org.sparkleshare.SparkleShare";
Resizable = false;
- WindowPosition = WindowPosition.Center;
+ WindowPosition = WindowPosition.CenterAlways;
Deletable = false;
TypeHint = Gdk.WindowTypeHint.Dialog;
- SetSizeRequest (680, 400);
-
+ SetSizeRequest (400, 400);
DeleteEvent += delegate (object sender, DeleteEventArgs args) { args.RetVal = true; };
- HBox layout_horizontal = new HBox (false, 0);
-
- VBox layout_vertical = new VBox (false, 0);
-
- this.content_area = new EventBox ();
- this.option_area = new EventBox ();
-
- this.buttons = CreateButtonBox ();
+ VBox layout_vertical = new VBox (false, 16);
+ layout_vertical.BorderWidth = 16;
- HBox layout_actions = new HBox (false , 48);
+ this.content_area = new EventBox ();
+ this.option_area = new EventBox ();
- layout_actions.PackStart (this.option_area, true, true, 0);
- layout_actions.PackStart (this.buttons, false, false, 0);
+ this.buttons = CreateButtonBox ();
- layout_vertical.PackStart (this.content_area, true, true, 0);
- layout_vertical.PackStart (layout_actions, false, false, 15);
+ HBox layout_actions = new HBox (false , 16);
- Image side_splash = SparkleUIHelpers.GetImage ("side-splash.png");
- side_splash.Yalign = 1;
+ layout_actions.PackStart (this.option_area, true, true, 0);
+ layout_actions.PackStart (this.buttons, false, false, 0);
- layout_horizontal.PackStart (side_splash, false, false, 0);
- layout_horizontal.PackStart (layout_vertical, true, true, 30);
+ layout_vertical.PackStart (this.content_area, true, true, 0);
+ layout_vertical.PackStart (layout_actions, false, false, 0);
- base.Add (layout_horizontal);
+ base.Add (layout_vertical);
}
@@ -97,14 +89,9 @@ namespace SparkleShare {
new public void Add (Widget widget)
{
- Label header = new Label ("<span size='large'><b>" + Header + "</b></span>") {
- UseMarkup = true,
- Xalign = 0,
- };
+ Title = Header;
VBox layout_vertical = new VBox (false, 0);
- layout_vertical.PackStart (new Label (""), false, false, 6);
- layout_vertical.PackStart (header, false, false, 0);
if (!string.IsNullOrEmpty (Description)) {
Label description = new Label (Description) {
@@ -113,7 +100,7 @@ namespace SparkleShare {
LineWrapMode = Pango.WrapMode.WordChar
};
- layout_vertical.PackStart (description, false, false, 21);
+ layout_vertical.PackStart (description, false, false, 0);
}
if (widget != null)
@@ -146,10 +133,12 @@ namespace SparkleShare {
default_button.CanDefault = true;
Default = default_button;
+ default_button.StyleContext.AddClass ("suggested-action");
}
-
+
Present ();
base.ShowAll ();
}
}
}
+
diff --git a/SparkleShare/Linux/SparkleAbout.cs b/SparkleShare/Linux/SparkleAbout.cs
deleted file mode 100755
index cc15b4d..0000000
--- a/SparkleShare/Linux/SparkleAbout.cs
+++ /dev/null
@@ -1,182 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using Gtk;
-
-namespace SparkleShare {
-
- public class SparkleAbout : Window {
-
- public SparkleAboutController Controller = new SparkleAboutController ();
-
- private Label updates;
-
-
- public SparkleAbout () : base ("About SparkleShare")
- {
- SetWmclass ("SparkleShare", "SparkleShare");
-
- IconName = "sparkleshare";
- Resizable = false;
- WindowPosition = WindowPosition.Center;
-
- SetSizeRequest (600, 260);
-
-
- DeleteEvent += delegate (object o, DeleteEventArgs args) {
- Controller.WindowClosed ();
- args.RetVal = true;
- };
-
- KeyPressEvent += delegate (object o, KeyPressEventArgs args) {
- if (args.Event.Key == Gdk.Key.Escape ||
- (args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) {
-
- Controller.WindowClosed ();
- }
- };
-
- Controller.HideWindowEvent += delegate {
- Application.Invoke (delegate { Hide (); });
- };
-
- Controller.ShowWindowEvent += delegate {
- Application.Invoke (delegate {
- ShowAll ();
- Present ();
- });
- };
-
- Controller.UpdateLabelEvent += delegate (string text) {
- Application.Invoke (delegate {
- this.updates.Text = text;
- this.updates.ShowAll();
- });
- };
-
-
- CreateAbout ();
- }
-
-
- private void CreateAbout ()
- {
- Gdk.RGBA white = new Gdk.RGBA ();
- white.Parse ("#ffffff");
-
- Gdk.RGBA highlight = new Gdk.RGBA ();
- highlight.Parse ("#a8bbcf");
-
- Pango.FontDescription font = StyleContext.GetFont (StateFlags.Normal);
- font.Size = 9 * 1024;
-
- CssProvider css_provider = new CssProvider ();
- string image_path = new string [] { SparkleUI.AssetsPath, "pixmaps", "about.png" }.Combine ();
-
- css_provider.LoadFromData ("GtkWindow {" +
- "background-image: url('" + image_path + "');" +
- "background-repeat: no-repeat;" +
- "background-position: left bottom;" +
- "}");
-
- StyleContext.AddProvider (css_provider, 800);
-
- VBox layout_vertical = new VBox (false, 0);
- HBox links_layout = new HBox (false, 16);
-
-
- Label version = new Label () {
- Text = "version " + Controller.RunningVersion,
- Xalign = 0, Xpad = 0
- };
-
- version.OverrideFont (font);
- version.OverrideColor (StateFlags.Normal, white);
-
-
- this.updates = new Label ("Checking for updates…") {
- Xalign = 0, Xpad = 0
- };
-
- this.updates.OverrideFont (font);
- this.updates.OverrideColor (StateFlags.Normal, highlight);
-
-
- Label copyright = new Label () {
- Markup = string.Format ("Copyright © 2010–{0} Hylke Bons and others.", DateTime.Now.Year),
- Xalign = 0, Xpad = 0
- };
-
- copyright.OverrideFont (font);
- copyright.OverrideColor (StateFlags.Normal, white);
-
-
- TextView license = new TextView ();
- TextBuffer license_buffer = license.Buffer;
- license.WrapMode = WrapMode.Word;
- license.Sensitive = false;
-
- license_buffer.Text = "SparkleShare is Open Source and you’re free to use, change, " +
- "and share it under the GNU GPLv3.";
-
- license.OverrideBackgroundColor (StateFlags.Normal, new Gdk.RGBA () { Alpha = 0 });
- license.OverrideFont (font);
- license.OverrideColor (StateFlags.Normal, white);
-
-
- SparkleLink website_link = new SparkleLink ("Website", Controller.WebsiteLinkAddress);
- SparkleLink credits_link = new SparkleLink ("Credits", Controller.CreditsLinkAddress);
- SparkleLink report_problem_link = new SparkleLink ("Report a problem", Controller.ReportProblemLinkAddress);
- SparkleLink debug_log_link = new SparkleLink ("Debug log", Controller.DebugLogLinkAddress);
-
-
- layout_vertical.PackStart (new Label (""), true, true, 0);
- layout_vertical.PackStart (version, false, false, 0);
- layout_vertical.PackStart (this.updates, false, false, 0);
- layout_vertical.PackStart (copyright, false, false, 6);
- layout_vertical.PackStart (license, false, false, 6);
- layout_vertical.PackStart (links_layout, false, false, 16);
-
- links_layout.PackStart (website_link, false, false, 0);
- links_layout.PackStart (credits_link, false, false, 0);
- links_layout.PackStart (report_problem_link, false, false, 0);
- links_layout.PackStart (debug_log_link, false, false, 0);
-
- HBox layout_horizontal = new HBox (false, 0);
- layout_horizontal.PackStart (new Label (""), false, false, 149);
- layout_horizontal.PackStart (layout_vertical, false, false, 0);
-
- Add (layout_horizontal);
- }
- }
-
-
- public class SparkleLink : Label {
-
- public SparkleLink (string text, string url)
- {
- Markup = string.Format ("<a href=\"{0}\"><span fgcolor=\"#729fcf\">{1}</span></a>", url, text);
- CanFocus = false;
-
- Pango.FontDescription font = StyleContext.GetFont (StateFlags.Normal);
- font.Size = 9 * 1024;
-
- OverrideFont (font);
- }
- }
-}
diff --git a/SparkleShare/Linux/SparkleController.cs b/SparkleShare/Linux/SparkleController.cs
deleted file mode 100755
index 3a68e39..0000000
--- a/SparkleShare/Linux/SparkleController.cs
+++ /dev/null
@@ -1,205 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Diagnostics;
-using System.IO;
-
-using Gtk;
-using Mono.Unix.Native;
-using SparkleLib;
-
-namespace SparkleShare {
-
- public class SparkleController : SparkleControllerBase {
-
- public SparkleController () : base ()
- {
- }
-
-
- public override string PluginsPath {
- get {
- return new string [] { Defines.INSTALL_DIR, "plugins" }.Combine ();
- }
- }
-
-
- // Creates a .desktop entry in autostart folder to
- // start SparkleShare automatically at login
- public override void CreateStartupItem ()
- {
- string autostart_path = Path.Combine (
- Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "autostart");
-
- string desktopfile_path = Path.Combine (autostart_path, "sparkleshare.desktop");
-
- if (!Directory.Exists (autostart_path))
- Directory.CreateDirectory (autostart_path);
-
- if (!File.Exists (desktopfile_path)) {
- try {
- File.WriteAllText (desktopfile_path,
- "[Desktop Entry]\n" +
- "Type=Application\n" +
- "Name=SparkleShare\n" +
- "Exec=sparkleshare start\n" +
- "Icon=folder-sparkleshare\n" +
- "Terminal=false\n" +
- "X-GNOME-Autostart-enabled=true\n" +
- "Categories=Network");
-
- SparkleLogger.LogInfo ("Controller", "Added SparkleShare to login items");
-
- } catch (Exception e) {
- SparkleLogger.LogInfo ("Controller", "Failed adding SparkleShare to login items: " + e.Message);
- }
- }
- }
-
-
- public override void InstallProtocolHandler ()
- {
- // sparkleshare-invite-opener.desktop launches the handler on newer
- // systems (like GNOME 3) that implement the last freedesktop.org specs.
- // For GNOME 2 however we need to tell gconf about the protocol manually
-
- try {
- // Add the handler to gconf...
- Process process = new Process ();
- process.StartInfo.FileName = "gconftool-2";
- process.StartInfo.Arguments =
- "-s /desktop/gnome/url-handlers/sparkleshare/command 'sparkleshare open %s' --type String";
-
- process.Start ();
- process.WaitForExit ();
-
- // ...and enable it
- process.StartInfo.Arguments = "-s /desktop/gnome/url-handlers/sparkleshare/enabled --type Boolean true";
-
- process.Start ();
- process.WaitForExit ();
-
- } catch {
- // Pity...
- }
- }
-
-
- // Adds the SparkleShare folder to the user's
- // list of bookmarked places
- public override void AddToBookmarks ()
- {
- string bookmarks_file_path = Path.Combine (SparkleConfig.DefaultConfig.HomePath, ".gtk-bookmarks");
- string sparkleshare_bookmark = "file://" + FoldersPath + " SparkleShare";
-
- if (File.Exists (bookmarks_file_path)) {
- string bookmarks = File.ReadAllText (bookmarks_file_path);
-
- if (!bookmarks.Contains (sparkleshare_bookmark))
- File.AppendAllText (bookmarks_file_path, "file://" + FoldersPath + " SparkleShare");
-
- } else {
- File.WriteAllText (bookmarks_file_path, "file://" + FoldersPath + " SparkleShare");
- }
- }
-
-
- // Creates the SparkleShare folder in the user's home folder
- public override bool CreateSparkleShareFolder ()
- {
- bool folder_created = false;
-
- if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) {
- Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath);
- Syscall.chmod (SparkleConfig.DefaultConfig.FoldersPath, (FilePermissions) 448); // 448 -> 700
-
- SparkleLogger.LogInfo ("Controller", "Created '" + SparkleConfig.DefaultConfig.FoldersPath + "'");
- folder_created = true;
- }
-
- string gvfs_command_path = new string [] { Path.VolumeSeparatorChar.ToString (),
- "usr", "bin", "gvfs-set-attribute" }.Combine ();
-
- // Add a special icon to the SparkleShare folder
- if (File.Exists (gvfs_command_path)) {
- Process process = new Process ();
- process.StartInfo.FileName = "gvfs-set-attribute";
-
- // Give the SparkleShare folder an icon name, so that it scales
- process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath +
- " metadata::custom-icon-name 'sparkleshare'";
-
- process.Start ();
- process.WaitForExit ();
- }
-
- return folder_created;
- }
-
-
- public override string EventLogHTML {
- get {
- string html_path = new string [] { Defines.INSTALL_DIR, "html", "event-log.html" }.Combine ();
- string jquery_file_path = new string [] { Defines.INSTALL_DIR, "html", "jquery.js" }.Combine ();
-
- string html = File.ReadAllText (html_path);
- string jquery = File.ReadAllText (jquery_file_path);
-
- return html.Replace ("<!-- $jquery -->", jquery);
- }
- }
-
-
- public override string DayEntryHTML {
- get {
- string path = new string [] { Defines.INSTALL_DIR, "html", "day-entry.html" }.Combine ();
- return File.ReadAllText (path);
- }
- }
-
-
- public override string EventEntryHTML {
- get {
- string path = new string [] { Defines.INSTALL_DIR, "html", "event-entry.html" }.Combine ();
- return File.ReadAllText (path);
- }
- }
-
-
- public override void OpenFolder (string path)
- {
- OpenFile (path);
- }
-
-
- public override void OpenFile (string path)
- {
- Process process = new Process ();
- process.StartInfo.FileName = "xdg-open";
- process.StartInfo.Arguments = "\"" + path + "\"";
- process.Start ();
- }
-
-
- public override void CopyToClipboard (string text)
- {
- Clipboard clipboard = Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
- clipboard.Text = text;
- }
- }
-}
diff --git a/SparkleShare/Linux/SparkleShare.Autostart.desktop b/SparkleShare/Linux/SparkleShare.Autostart.desktop
new file mode 100755
index 0000000..29ef7e0
--- /dev/null
+++ b/SparkleShare/Linux/SparkleShare.Autostart.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=SparkleShare
+Type=Application
+Exec=sh -c "type -P sparkleshare &>/dev/null && sparkleshare || flatpak run org.sparkleshare.SparkleShare"
+Icon=org.sparkleshare.SparkleShare
+Terminal=false
+X-GNOME-Autostart-enabled=true
diff --git a/SparkleShare/Linux/SparkleShare.Linux.csproj b/SparkleShare/Linux/SparkleShare.Linux.csproj
new file mode 100644
index 0000000..3c048d4
--- /dev/null
+++ b/SparkleShare/Linux/SparkleShare.Linux.csproj
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{5714D3CA-88A6-4330-A29D-4CA90D1D193C}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>SparkleShare.Linux</RootNamespace>
+ <AssemblyName>SparkleShare.Linux</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <ReleaseVersion>
+ </ReleaseVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ExternalConsole>true</ExternalConsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ExternalConsole>true</ExternalConsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseMac|AnyCPU' ">
+ <Optimize>true</Optimize>
+ <OutputPath>bin\ReleaseMac</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ExternalConsole>true</ExternalConsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMac|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\DebugMac</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ExternalConsole>true</ExternalConsole>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Net" />
+ <Reference Include="Mono.Posix" />
+ <Reference Include="System.Xml" />
+ <Reference Include="atk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="gdk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="glib-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="gtk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="pango-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="notify-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=2df29c54e245917a" />
+ <Reference Include="webkit2-sharp, Version=2.10.9.0, Culture=neutral, PublicKeyToken=bac11f94b446c2eb" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Sparkles\Git\Sparkles.Git.csproj">
+ <Project>{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}</Project>
+ <Name>Sparkles.Git</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Sparkles\Sparkles.csproj">
+ <Project>{2C914413-B31C-4362-93C7-1AE34F09112A}</Project>
+ <Name>Sparkles</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Presets\" />
+ <Folder Include="UserInterface\" />
+ <Folder Include="UserInterface\" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\Common\HTML\day-entry.html">
+ <Link>HTML\day-entry.html</Link>
+ </None>
+ <None Include="..\Common\HTML\event-entry.html">
+ <Link>HTML\event-entry.html</Link>
+ </None>
+ <None Include="..\Common\HTML\event-log.html">
+ <Link>HTML\event-log.html</Link>
+ </None>
+ <None Include="..\Common\HTML\jquery.js">
+ <Link>HTML\jquery.js</Link>
+ </None>
+ <None Include="..\Common\Presets\bitbucket.png">
+ <Link>Presets\bitbucket.png</Link>
+ </None>
+ <None Include="..\Common\Presets\bitbucket.xml">
+ <Link>Presets\bitbucket.xml</Link>
+ </None>
+ <None Include="..\Common\Presets\bitbucket%402x.png">
+ <Link>Presets\bitbucket%402x.png</Link>
+ </None>
+ <None Include="..\Common\Presets\github.png">
+ <Link>Presets\github.png</Link>
+ </None>
+ <None Include="..\Common\Presets\github.xml">
+ <Link>Presets\github.xml</Link>
+ </None>
+ <None Include="..\Common\Presets\github%402x.png">
+ <Link>Presets\github%402x.png</Link>
+ </None>
+ <None Include="..\Common\Presets\gitlab.png">
+ <Link>Presets\gitlab.png</Link>
+ </None>
+ <None Include="..\Common\Presets\gitlab.xml">
+ <Link>Presets\gitlab.xml</Link>
+ </None>
+ <None Include="..\Common\Presets\gitlab%402x.png">
+ <Link>Presets\gitlab%402x.png</Link>
+ </None>
+ <None Include="..\Common\Presets\own-server.png">
+ <Link>Presets\own-server.png</Link>
+ </None>
+ <None Include="..\Common\Presets\own-server.xml">
+ <Link>Presets\own-server.xml</Link>
+ </None>
+ <None Include="..\Common\Presets\own-server%402x.png">
+ <Link>Presets\own-server%402x.png</Link>
+ </None>
+ <None Include="..\Common\Presets\planio.png">
+ <Link>Presets\planio.png</Link>
+ </None>
+ <None Include="..\Common\Presets\planio.xml">
+ <Link>Presets\planio.xml</Link>
+ </None>
+ <None Include="..\Common\Presets\planio%402x.png">
+ <Link>Presets\planio%402x.png</Link>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Controller.cs" />
+ <Compile Include="About.cs">
+ <Link>UserInterface\About.cs</Link>
+ </Compile>
+ <Compile Include="Bubbles.cs">
+ <Link>UserInterface\Bubbles.cs</Link>
+ </Compile>
+ <Compile Include="Controller.cs">
+ <Link>UserInterface\Controller.cs</Link>
+ </Compile>
+ <Compile Include="EventLog.cs">
+ <Link>UserInterface\EventLog.cs</Link>
+ </Compile>
+ <Compile Include="Note.cs">
+ <Link>UserInterface\Note.cs</Link>
+ </Compile>
+ <Compile Include="Setup.cs">
+ <Link>UserInterface\Setup.cs</Link>
+ </Compile>
+ <Compile Include="SetupWindow.cs">
+ <Link>UserInterface\SetupWindow.cs</Link>
+ </Compile>
+ <Compile Include="StatusIcon.cs">
+ <Link>UserInterface\StatusIcon.cs</Link>
+ </Compile>
+ <Compile Include="UserInterface.cs">
+ <Link>UserInterface\UserInterface.cs</Link>
+ </Compile>
+ <Compile Include="UserInterfaceHelpers.cs">
+ <Link>UserInterface\UserInterfaceHelpers.cs</Link>
+ </Compile>
+ </ItemGroup>
+ <Import Project="..\Common\SparkleShare.projitems" Label="Shared" Condition="Exists('..\Common\SparkleShare.projitems')" />
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project> \ No newline at end of file
diff --git a/SparkleShare/Linux/SparkleUI.cs b/SparkleShare/Linux/SparkleUI.cs
deleted file mode 100644
index 4c5b27b..0000000
--- a/SparkleShare/Linux/SparkleUI.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-
-using GLib;
-using Gtk;
-using SparkleLib;
-
-namespace SparkleShare {
-
- public class SparkleUI {
-
- public static string AssetsPath = Defines.INSTALL_DIR;
-
- public SparkleStatusIcon StatusIcon;
- public SparkleEventLog EventLog;
- public SparkleBubbles Bubbles;
- public SparkleSetup Setup;
- public SparkleAbout About;
- public SparkleNote Note;
-
- public readonly string SecondaryTextColor;
- public readonly string SecondaryTextColorSelected;
-
- private Gtk.Application application;
-
-
- public SparkleUI ()
- {
- this.application = new Gtk.Application ("org.sparkleshare.sparkleshare", 0);
-
- this.application.Register (null);
- this.application.Activated += ApplicationActivatedDelegate;
-
- Gdk.Color color = SparkleUIHelpers.RGBAToColor (new Label().StyleContext.GetColor (StateFlags.Insensitive));
- SecondaryTextColor = SparkleUIHelpers.ColorToHex (color);
-
- color = SparkleUIHelpers.MixColors (
- SparkleUIHelpers.RGBAToColor (new TreeView ().StyleContext.GetColor (StateFlags.Selected)),
- SparkleUIHelpers.RGBAToColor (new TreeView ().StyleContext.GetBackgroundColor (StateFlags.Selected)),
- 0.39);
-
- SecondaryTextColorSelected = SparkleUIHelpers.ColorToHex (color);
- }
-
-
- public void Run ()
- {
- (this.application as GLib.Application).Run (null, null);
- }
-
-
- private void ApplicationActivatedDelegate (object sender, EventArgs args)
- {
- if (this.application.Windows.Length > 0) {
- bool has_visible_windows = false;
-
- foreach (Window window in this.application.Windows) {
- if (window.Visible) {
- window.Present ();
- has_visible_windows = true;
- }
- }
-
- if (!has_visible_windows)
- Program.Controller.HandleReopen ();
-
- } else {
- Setup = new SparkleSetup ();
- EventLog = new SparkleEventLog ();
- About = new SparkleAbout ();
- Bubbles = new SparkleBubbles ();
- StatusIcon = new SparkleStatusIcon ();
- Note = new SparkleNote ();
-
- Setup.Application = this.application;
- EventLog.Application = this.application;
- About.Application = this.application;
-
- Program.Controller.UIHasLoaded ();
- }
- }
- }
-}
diff --git a/SparkleShare/Linux/SparkleStatusIcon.cs b/SparkleShare/Linux/StatusIcon.cs
index 1b7f2dd..c3384eb 100644
--- a/SparkleShare/Linux/SparkleStatusIcon.cs
+++ b/SparkleShare/Linux/StatusIcon.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -17,54 +17,59 @@
using System;
using System.Collections.Generic;
+using System.IO;
+using Sparkles;
using Gtk;
+
#if HAVE_APP_INDICATOR
using AppIndicator3;
#endif
namespace SparkleShare {
- public class SparkleStatusIcon {
+ public class StatusIcon {
+
+ public StatusIconController Controller = new StatusIconController ();
- public SparkleStatusIconController Controller = new SparkleStatusIconController ();
+ Gtk.StatusIcon status_icon;
- private Menu menu;
- private MenuItem recent_events_item;
- private MenuItem quit_item;
- private MenuItem state_item;
- private SparkleMenuItem [] state_menu_items;
+ Menu menu;
+ MenuItem recent_events_item;
+ MenuItem quit_item;
+ MenuItem state_item;
+ SparkleMenuItem [] state_menu_items;
#if HAVE_APP_INDICATOR
- private Indicator indicator;
- #else
- private StatusIcon status_icon;
+ Indicator indicator;
#endif
- public SparkleStatusIcon ()
+ public StatusIcon ()
{
- #if HAVE_APP_INDICATOR
- this.indicator = new Indicator ("sparkleshare", "sparkleshare", (int) IndicatorCategory.ApplicationStatus);
- this.indicator.IconName = "process-syncing-idle";
- this.indicator.Status = (int) IndicatorStatus.Active;
- #else
- this.status_icon = new StatusIcon ();
- this.status_icon.IconName = "sparkleshare";
-
- this.status_icon.Activate += ShowMenu; // Primary mouse button click
- this.status_icon.PopupMenu += ShowMenu; // Secondary mouse button click
- #endif
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ #if HAVE_APP_INDICATOR
+ indicator = new Indicator ("sparkleshare", "sparkleshare", (int) IndicatorCategory.ApplicationStatus) {
+ IconName = "process-syncing-idle",
+ Status = (int) IndicatorStatus.Active
+ };
+ #endif
+
+ } else {
+ this.status_icon = new Gtk.StatusIcon { IconName = "org.sparkleshare.SparkleShare" };
+ this.status_icon.Activate += ShowMenu; // Primary mouse button click
+ this.status_icon.PopupMenu += ShowMenu; // Secondary mouse button click
+ }
CreateMenu ();
Controller.UpdateIconEvent += delegate (IconState state) {
Application.Invoke (delegate {
- #if HAVE_APP_INDICATOR
- string icon_name = "process-syncing-idle";
- #else
- string icon_name = "sparkleshare";
- #endif
+ string icon_name = "org.sparkleshare.SparkleShare";
+
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ icon_name = "process-syncing-idle";
+ }
if (state == IconState.SyncingUp)
icon_name = "process-syncing-up";
@@ -75,15 +80,18 @@ namespace SparkleShare {
else if (state == IconState.Error)
icon_name = "process-syncing-error";
- #if HAVE_APP_INDICATOR
- this.indicator.IconName = icon_name;
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ #if HAVE_APP_INDICATOR
+ indicator.IconName = icon_name;
- // Force update of the status icon
- this.indicator.Status = (int) IndicatorStatus.Attention;
- this.indicator.Status = (int) IndicatorStatus.Active;
- #else
- this.status_icon.IconName = icon_name;
- #endif
+ // Force update of the status icon
+ indicator.Status = (int) IndicatorStatus.Attention;
+ indicator.Status = (int) IndicatorStatus.Active;
+ #endif
+
+ } else {
+ this.status_icon.IconName = icon_name;
+ }
});
};
@@ -120,7 +128,7 @@ namespace SparkleShare {
this.state_item = new MenuItem (Controller.StateText) { Sensitive = false };
ImageMenuItem folder_item = new SparkleMenuItem ("SparkleShare");
- folder_item.Image = new Image (SparkleUIHelpers.GetIcon ("sparkleshare", 16));
+ folder_item.Image = new Image (UserInterfaceHelpers.GetIcon ("org.sparkleshare.SparkleShare", 16));
this.menu.Add (this.state_item);
this.menu.Add (new SeparatorMenuItem ());
@@ -133,9 +141,7 @@ namespace SparkleShare {
int i = 0;
foreach (ProjectInfo project in Controller.Projects) {
SparkleMenuItem item = new SparkleMenuItem (project.Name);
-
- Gdk.Pixbuf folder_icon;
- folder_icon = IconTheme.Default.LoadIcon ("folder", 16, IconLookupFlags.GenericFallback);
+ Gdk.Pixbuf folder_icon = UserInterfaceHelpers.GetIcon ("folder", 16);
item.Submenu = new Menu ();
@@ -148,12 +154,10 @@ namespace SparkleShare {
MenuItem resume_item;
if (project.UnsyncedChangesInfo.Count > 0) {
- string icons_path = new string [] {
- SparkleUI.AssetsPath, "icons", "hicolor", "12x12", "status"}.Combine ();
+ string icons_path = Path.Combine (UserInterface.AssetsPath, "icons", "hicolor", "12x12", "status");
foreach (KeyValuePair<string, string> pair in project.UnsyncedChangesInfo) {
- string icon_path = new string [] {
- icons_path, pair.Value.Replace ("-12", "")}.Combine ();
+ string icon_path = Path.Combine (icons_path, pair.Value.Replace ("-12", ""));
(item.Submenu as Menu).Add (new SparkleMenuItem (pair.Key) {
Image = new Image (icon_path),
@@ -181,7 +185,7 @@ namespace SparkleShare {
if (Controller.Projects [i].HasError) {
folder_icon = IconTheme.Default.LoadIcon ("dialog-warning", 16, IconLookupFlags.GenericFallback);
- MenuItem try_again_item = new MenuItem ("Try Again");
+ MenuItem try_again_item = new MenuItem ("Retry Sync");
try_again_item.Activated += Controller.TryAgainDelegate (project.Name);
(item.Submenu as Menu).Add (try_again_item);
@@ -200,37 +204,17 @@ namespace SparkleShare {
};
}
- this.recent_events_item = new MenuItem ("Recent Changes…");
+ this.recent_events_item = new MenuItem ("History…");
this.recent_events_item.Sensitive = Controller.RecentEventsItemEnabled;
this.quit_item = new MenuItem ("Quit") { Sensitive = Controller.QuitItemEnabled };
- MenuItem add_item = new MenuItem ("Add Hosted Project…");
-
- #if HAVE_APP_INDICATOR
- MenuItem notify_item;
-
- if (Program.Controller.NotificationsEnabled)
- notify_item = new MenuItem ("Turn Notifications Off");
- else
- notify_item = new MenuItem ("Turn Notifications On");
-
- notify_item.Activated += delegate {
- Program.Controller.ToggleNotifications ();
-
- Application.Invoke (delegate {
- if (Program.Controller.NotificationsEnabled)
- (notify_item.Child as Label).Text = "Turn Notifications Off";
- else
- (notify_item.Child as Label).Text = "Turn Notifications On";
- });
- };
- #endif
+ MenuItem add_item = new MenuItem ("Sync Remote Project…");
+
+ MenuItem link_code_item = new MenuItem ("Computer ID");
- MenuItem link_code_item = new MenuItem ("Client ID");
-
if (Controller.LinkCodeItemEnabled) {
link_code_item.Submenu = new Menu ();
- string link_code = Program.Controller.CurrentUser.PublicKey.Substring (0, 20) + "...";
+ string link_code = SparkleShare.Controller.UserAuthenticationInfo.PublicKey.Substring (0, 20) + "...";
MenuItem code_item = new MenuItem (link_code) { Sensitive = false };
MenuItem copy_item = new MenuItem ("Copy to Clipboard");
@@ -250,40 +234,61 @@ namespace SparkleShare {
folder_item.Submenu = new Menu ();
(folder_item.Submenu as Menu).Add (this.recent_events_item);
- (folder_item.Submenu as Menu).Add (add_item);
- #if HAVE_APP_INDICATOR
- (folder_item.Submenu as Menu).Add (new SeparatorMenuItem ());
- (folder_item.Submenu as Menu).Add (notify_item);
- #endif
+
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ MenuItem notify_item;
+
+ if (SparkleShare.Controller.NotificationsEnabled)
+ notify_item = new MenuItem ("Turn Notifications Off");
+ else
+ notify_item = new MenuItem ("Turn Notifications On");
+
+ notify_item.Activated += delegate {
+ SparkleShare.Controller.ToggleNotifications ();
+
+ Application.Invoke (delegate {
+ if (SparkleShare.Controller.NotificationsEnabled)
+ (notify_item.Child as Label).Text = "Turn Notifications Off";
+ else
+ (notify_item.Child as Label).Text = "Turn Notifications On";
+ });
+ };
+
+ (folder_item.Submenu as Menu).Add (new SeparatorMenuItem ());
+ (folder_item.Submenu as Menu).Add (notify_item);
+ }
+
(folder_item.Submenu as Menu).Add (new SeparatorMenuItem ());
(folder_item.Submenu as Menu).Add (link_code_item);
(folder_item.Submenu as Menu).Add (new SeparatorMenuItem ());
(folder_item.Submenu as Menu).Add (about_item);
+ this.menu.Add (new SeparatorMenuItem ());
+ this.menu.Add (add_item);
this.menu.Add (new SeparatorMenuItem ());
this.menu.Add (this.quit_item);
this.menu.ShowAll ();
- #if HAVE_APP_INDICATOR
- this.indicator.Menu = this.menu;
- #endif
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ #if HAVE_APP_INDICATOR
+ indicator.Menu = this.menu;
+ #endif
+ }
}
- #if !HAVE_APP_INDICATOR
// Makes the menu visible
- private void ShowMenu (object o, EventArgs args)
+ void ShowMenu (object o, EventArgs args)
{
- this.menu.Popup (null, null, SetPosition, 0, Global.CurrentEventTime);
+ this.menu.Popup (null, null, SetPosition, 0, Gtk.Global.CurrentEventTime);
}
// Makes sure the menu pops up in the right position
- private void SetPosition (Menu menu, out int x, out int y, out bool push_in)
+ void SetPosition (Menu menu, out int x, out int y, out bool push_in)
{
- StatusIcon.PositionMenu (menu, out x, out y, out push_in, this.status_icon.Handle);
+ Gtk.StatusIcon.PositionMenu (menu, out x, out y, out push_in, this.status_icon.Handle);
}
- #endif
}
diff --git a/SparkleShare/Linux/UserInterface.cs b/SparkleShare/Linux/UserInterface.cs
new file mode 100644
index 0000000..b6d687b
--- /dev/null
+++ b/SparkleShare/Linux/UserInterface.cs
@@ -0,0 +1,114 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+
+using Gtk;
+using Sparkles;
+
+namespace SparkleShare
+{
+
+ public class UserInterface
+ {
+
+ public static string AssetsPath = InstallationInfo.Directory;
+
+ public StatusIcon StatusIcon;
+ public EventLog EventLog;
+ public Bubbles Bubbles;
+ public Setup Setup;
+ public About About;
+ public Note Note;
+
+ public readonly string SecondaryTextColor;
+ public readonly string SecondaryTextColorSelected;
+
+ Application application;
+
+
+ public UserInterface ()
+ {
+ application = new Application ("org.sparkleshare.SparkleShare", GLib.ApplicationFlags.None);
+
+ application.Register (null);
+ application.Activated += ApplicationActivatedDelegate;
+
+ var label = new Label ();
+ Gdk.Color color = UserInterfaceHelpers.RGBAToColor (label.StyleContext.GetColor (StateFlags.Insensitive));
+ SecondaryTextColor = UserInterfaceHelpers.ColorToHex (color);
+
+ var tree_view = new TreeView ();
+
+ color = UserInterfaceHelpers.MixColors (
+ UserInterfaceHelpers.RGBAToColor (tree_view.StyleContext.GetColor (StateFlags.Selected)),
+ UserInterfaceHelpers.RGBAToColor (tree_view.StyleContext.GetBackgroundColor (StateFlags.Selected)),
+ 0.39);
+
+ SecondaryTextColorSelected = UserInterfaceHelpers.ColorToHex (color);
+ }
+
+
+ public void Run (string [] args)
+ {
+ // FIXME: Hack to cover API differences between Ubuntu and latest GNOME
+ if (InstallationInfo.OperatingSystem == OS.Ubuntu) {
+ #if HAVE_APP_INDICATOR
+ (application as GLib.Application).Run (0, null);
+ #endif
+ } else {
+ #if HAVE_APP_INDICATOR
+ #else
+ (application as GLib.Application).Run ("org.sparkleshare.SparkleShare", new string [0]);
+ #endif
+ }
+ }
+
+
+ void ApplicationActivatedDelegate (object sender, EventArgs args)
+ {
+ if (application.Windows.Length > 0) {
+ bool has_visible_windows = false;
+
+ foreach (Window window in application.Windows) {
+ if (window.Visible) {
+ window.Present ();
+ has_visible_windows = true;
+ }
+ }
+
+ if (!has_visible_windows)
+ SparkleShare.Controller.HandleReopen ();
+
+ return;
+ }
+
+ Setup = new Setup ();
+ EventLog = new EventLog ();
+ About = new About ();
+ Bubbles = new Bubbles ();
+ StatusIcon = new StatusIcon ();
+ Note = new Note ();
+
+ Setup.Application = application;
+ EventLog.Application = application;
+ About.Application = application;
+
+ SparkleShare.Controller.UIHasLoaded ();
+ }
+ }
+}
diff --git a/SparkleShare/Linux/SparkleUIHelpers.cs b/SparkleShare/Linux/UserInterfaceHelpers.cs
index d147b00..aa08fa5 100755
--- a/SparkleShare/Linux/SparkleUIHelpers.cs
+++ b/SparkleShare/Linux/UserInterfaceHelpers.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,16 +16,18 @@
using System;
+using System.IO;
+
using Gtk;
namespace SparkleShare {
- public static class SparkleUIHelpers {
+ public static class UserInterfaceHelpers {
public static Gdk.Pixbuf GetIcon (string name, int size)
{
IconTheme icon_theme = new IconTheme ();
- icon_theme.AppendSearchPath (new string [] {SparkleUI.AssetsPath, "icons"}.Combine ());
+ icon_theme.AppendSearchPath (Path.Combine (UserInterface.AssetsPath, "icons"));
foreach (string search_path in IconTheme.Default.SearchPath)
icon_theme.AppendSearchPath (search_path);
@@ -46,7 +48,7 @@ namespace SparkleShare {
public static Image GetImage (string name)
{
- string image_path = new string [] { SparkleUI.AssetsPath, "pixmaps", name }.Combine ();
+ string image_path = Path.Combine (UserInterface.AssetsPath, "pixmaps", name);
return new Image (image_path);
}
@@ -55,7 +57,7 @@ namespace SparkleShare {
// Example: from "rgb:0,0,0" to "#000000"
public static string ColorToHex (Gdk.Color color)
{
- return String.Format ("#{0:X2}{1:X2}{2:X2}",
+ return string.Format ("#{0:X2}{1:X2}{2:X2}",
(int) Math.Truncate (color.Red / 256.00),
(int) Math.Truncate (color.Green / 256.00),
(int) Math.Truncate (color.Blue / 256.00));
@@ -90,4 +92,3 @@ namespace SparkleShare {
}
}
}
-
diff --git a/SparkleShare/Linux/sparkleshare-invite-opener.desktop b/SparkleShare/Linux/org.sparkleshare.SparkleShare.Invites.desktop
index b2cc168..c34d1f1 100644
--- a/SparkleShare/Linux/sparkleshare-invite-opener.desktop
+++ b/SparkleShare/Linux/org.sparkleshare.SparkleShare.Invites.desktop
@@ -1,7 +1,8 @@
[Desktop Entry]
Type=Application
-Name=SparkleShareInviteOpener
+Name=SparkleShare
Exec=sparkleshare open %U
Terminal=false
MimeType=application/x-sparkleshare;x-scheme-handler/sparkleshare;
NoDisplay=true
+
diff --git a/SparkleShare/Linux/sparkleshare.appdata.xml b/SparkleShare/Linux/org.sparkleshare.SparkleShare.appdata.xml
index 3a451f1..a1f51d6 100644
--- a/SparkleShare/Linux/sparkleshare.appdata.xml
+++ b/SparkleShare/Linux/org.sparkleshare.SparkleShare.appdata.xml
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<application>
- <id type="desktop">sparkleshare.desktop</id>
- <licence>CC0</licence>
+<component type="desktop">
+ <id type="desktop">org.sparkleshare.SparkleShare.desktop</id>
+ <metadata_licence>CC0-1.0</metadata_licence>
+ <project_license>GPL-3.0</project_license>
<name>SparkleShare</name>
<summary>Self hosted, instant, secure file sync</summary>
<description>
@@ -23,4 +24,5 @@
<p>Have fun!</p>
</description>
<url type="homepage">http://www.sparkleshare.org/</url>
-</application>
+</component>
+
diff --git a/SparkleShare/Linux/org.sparkleshare.SparkleShare.desktop b/SparkleShare/Linux/org.sparkleshare.SparkleShare.desktop
new file mode 100755
index 0000000..e458729
--- /dev/null
+++ b/SparkleShare/Linux/org.sparkleshare.SparkleShare.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=SparkleShare
+Exec=sparkleshare
+Icon=org.sparkleshare.SparkleShare
+Terminal=false
+Categories=Network;FileTransfer;GNOME;GTK;
+X-GNOME-UsesNotifications=true
diff --git a/SparkleShare/Linux/sparkleshare.desktop b/SparkleShare/Linux/sparkleshare.desktop
deleted file mode 100755
index a8cf52c..0000000
--- a/SparkleShare/Linux/sparkleshare.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=SparkleShare
-Comment=Self hosted, instant, secure file sync
-Exec=sparkleshare start
-Icon=sparkleshare
-Terminal=false
-X-GNOME-Autostart-enabled=true
-Categories=Network;
diff --git a/SparkleShare/Linux/sparkleshare.in b/SparkleShare/Linux/sparkleshare.in
index 5af417c..fed7aec 100755
--- a/SparkleShare/Linux/sparkleshare.in
+++ b/SparkleShare/Linux/sparkleshare.in
@@ -1,29 +1,21 @@
#!/usr/bin/env bash
if [[ $UID -eq 0 ]]; then
- echo "SparkleShare can't be run as root. Things would go utterly wrong."
+ echo "Please don't run SparkleShare as root. Things would go utterly wrong."
exit 1
fi
-start() {
- if [ -n "${SSH_AGENT_PID}" -o -n "${SSH_AUTH_SOCK}" ] ; then
- mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" $2 &
- else
- ssh-agent mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" $2 &
- fi
-}
-
case $1 in
- start|--start)
- start
- ;;
open|--open)
invite=`date -u +%N`
open=`echo $2 | sed 's/sparkleshare:\/\/addProject\///'`
curl --insecure --output ~/SparkleShare/.$invite.xml $open
- start
+ mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe"
+ ;;
+ help|--help|version|--version)
+ mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" help
;;
*)
- mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" --help
+ mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" $2
;;
esac
diff --git a/SparkleShare/Mac/AppDelegate.cs b/SparkleShare/Mac/AppDelegate.cs
index 9e246c1..f68c695 100755
--- a/SparkleShare/Mac/AppDelegate.cs
+++ b/SparkleShare/Mac/AppDelegate.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -15,17 +15,11 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-using System;
-using System.Drawing;
-
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-using MonoMac.ObjCRuntime;
+using AppKit;
namespace SparkleShare
{
public partial class AppDelegate : NSApplicationDelegate
{
-
}
}
diff --git a/SparkleShare/Mac/Assets.xcassets/Contents.json b/SparkleShare/Mac/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..2d92bd5
--- /dev/null
+++ b/SparkleShare/Mac/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/SparkleShare/Mac/SparkleController.cs b/SparkleShare/Mac/Controller.cs
index 8f7a79e..67eae50 100755..100644
--- a/SparkleShare/Mac/SparkleController.cs
+++ b/SparkleShare/Mac/Controller.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,142 +16,107 @@
using System;
-using System.Diagnostics;
+using System.Collections.Generic;
using System.IO;
using System.Threading;
-using MonoMac.Foundation;
-using MonoMac.AppKit;
+using Foundation;
+using AppKit;
-using Mono.Unix.Native;
-using SparkleLib;
-using System.Collections.Generic;
+using Sparkles;
+using Sparkles.Git;
namespace SparkleShare {
- public class SparkleController : SparkleControllerBase {
+ public class Controller : BaseController {
- public override string PluginsPath {
+ public override string PresetsPath {
get {
- return Path.Combine (NSBundle.MainBundle.ResourcePath, "Plugins");
+ return Path.Combine (NSBundle.MainBundle.ResourcePath, "Presets");
}
}
- // We have to use our own custom made folder watcher, as
- // System.IO.FileSystemWatcher fails watching subfolders on Mac
- private SparkleMacWatcher watcher;
-
- public SparkleController () : base ()
+ public Controller (Configuration config)
+ : base (config)
{
NSApplication.Init ();
- // Let's use the bundled git first
- SparkleLib.Git.SparkleGit.GitPath = Path.Combine (NSBundle.MainBundle.ResourcePath, "git", "libexec", "git-core", "git");
- SparkleLib.Git.SparkleGit.ExecPath = Path.Combine (NSBundle.MainBundle.ResourcePath, "git", "libexec", "git-core");
+ GitCommand.GitPath = Path.Combine (NSBundle.MainBundle.ResourcePath, "git", "libexec", "git-core", "git");
+ GitCommand.ExecPath = Path.Combine (NSBundle.MainBundle.ResourcePath, "git", "libexec", "git-core");
+
+ bool overwite = true;
+
+ File.Copy (
+ Path.Combine (GitCommand.ExecPath, "git-lfs"),
+ Path.Combine (Config.BinPath, "git-lfs"),
+ overwite);
}
-
+
public override void Initialize ()
{
base.Initialize ();
- SparkleRepoBase.UseCustomWatcher = true;
- this.watcher = new SparkleMacWatcher (Program.Controller.FoldersPath);
+ BaseRepository.UseCustomWatcher = true;
+ this.watcher = new SparkleMacWatcher (SparkleShare.Controller.FoldersPath);
this.watcher.Changed += OnFilesChanged;
}
- private void OnFilesChanged (List<string> changed_files_in_basedir)
+ public override void CreateSparkleShareFolder ()
{
- List<string> triggered_repos = new List<string> ();
-
- foreach (string file in changed_files_in_basedir) {
- string repo_name;
- int path_sep_index = file.IndexOf (Path.DirectorySeparatorChar);
-
- if (path_sep_index >= 0)
- repo_name = file.Substring (0, path_sep_index);
- else
- repo_name = file;
-
- repo_name = Path.GetFileNameWithoutExtension (repo_name);
- SparkleRepoBase repo = GetRepoByName (repo_name);
+ if (Directory.Exists (SparkleShare.Controller.FoldersPath))
+ return;
- if (repo == null)
- continue;
-
- if (!triggered_repos.Contains (repo_name)) {
- triggered_repos.Add (repo_name);
-
- FileActivityTask task = MacActivityTask (repo,
- new FileSystemEventArgs (WatcherChangeTypes.Changed, file, "Unknown"));
-
- task ();
- }
+ Directory.CreateDirectory (SparkleShare.Controller.FoldersPath);
- }
+ // TODO: Use proper API
+ var chmod = new Command ("chmod", "700 " + SparkleShare.Controller.FoldersPath);
+ chmod.StartAndWaitForExit ();
}
- private delegate void FileActivityTask ();
- private FileActivityTask MacActivityTask (SparkleRepoBase repo, FileSystemEventArgs fse_args) {
- return delegate { new Thread (() => { repo.OnFileActivity (fse_args); }).Start (); };
+ public override void SetFolderIcon ()
+ {
+ if (Environment.OSVersion.Version.Major >= 14) {
+ NSWorkspace.SharedWorkspace.SetIconforFile (
+ NSImage.ImageNamed ("sparkleshare-folder-yosemite.icns"),
+ SparkleShare.Controller.FoldersPath, 0);
+
+ } else {
+ NSWorkspace.SharedWorkspace.SetIconforFile (
+ NSImage.ImageNamed ("sparkleshare-folder.icns"),
+ SparkleShare.Controller.FoldersPath, 0);
+ }
}
+ // There aren't any bindings in Xamarin.Mac to support this yet, so
+ // we call out to an applescript to do the job
public override void CreateStartupItem ()
{
- // There aren't any bindings in MonoMac to support this yet, so
- // we call out to an applescript to do the job
- Process process = new Process ();
- process.StartInfo.FileName = "osascript";
- process.StartInfo.UseShellExecute = false;
- process.StartInfo.Arguments = "-e 'tell application \"System Events\" to " +
- "make login item at end with properties {path:\"" + NSBundle.MainBundle.BundlePath + "\", hidden:false}'";
+ string args = "-e 'tell application \"System Events\" to " +
+ "make login item at end with properties " +
+ "{path:\"" + NSBundle.MainBundle.BundlePath + "\", hidden:false}'";
- process.Start ();
- process.WaitForExit ();
+ var process = new Command ("osascript", args);
+ process.StartAndWaitForExit ();
- SparkleLogger.LogInfo ("Controller", "Added " + NSBundle.MainBundle.BundlePath + " to login items");
+ Logger.LogInfo ("Controller", "Added " + NSBundle.MainBundle.BundlePath + " to login items");
}
public override void InstallProtocolHandler ()
{
- // We ship SparkleShareInviteHandler.app in the bundle
- }
-
-
- public override void AddToBookmarks ()
- {
- // TODO
}
- public override bool CreateSparkleShareFolder ()
+ public override void CopyToClipboard (string text)
{
- if (!Directory.Exists (Program.Controller.FoldersPath)) {
- Directory.CreateDirectory (Program.Controller.FoldersPath);
-
- if (Environment.OSVersion.Version.Major >= 14) {
- NSWorkspace.SharedWorkspace.SetIconforFile (
- NSImage.ImageNamed ("sparkleshare-folder-yosemite.icns"),
- Program.Controller.FoldersPath, 0);
-
- } else {
- NSWorkspace.SharedWorkspace.SetIconforFile (
- NSImage.ImageNamed ("sparkleshare-folder.icns"),
- Program.Controller.FoldersPath, 0);
- }
-
- Syscall.chmod (Program.Controller.FoldersPath, (FilePermissions) 448); // 448 -> 700
-
- return true;
- }
-
- return false;
+ NSPasteboard.GeneralPasteboard.ClearContents ();
+ NSPasteboard.GeneralPasteboard.SetStringForType (text, "NSStringPboardType");
}
@@ -175,14 +140,7 @@ namespace SparkleShare {
}
- public override void CopyToClipboard (string text)
- {
- NSPasteboard.GeneralPasteboard.ClearContents ();
- NSPasteboard.GeneralPasteboard.SetStringForType (text, "NSStringPboardType");
- }
-
-
- private string event_log_html;
+ string event_log_html;
public override string EventLogHTML
{
get {
@@ -199,7 +157,7 @@ namespace SparkleShare {
}
- private string day_entry_html;
+ string day_entry_html;
public override string DayEntryHTML
{
get {
@@ -213,7 +171,7 @@ namespace SparkleShare {
}
- private string event_entry_html;
+ string event_entry_html;
public override string EventEntryHTML
{
get {
@@ -227,14 +185,47 @@ namespace SparkleShare {
}
+ // We have to use our own custom made folder watcher, as
+ // System.IO.FileSystemWatcher fails watching subfolders on Mac
+
+ SparkleMacWatcher watcher;
+ delegate void FileActivityTask ();
+
+ FileActivityTask MacFileActivityTask (BaseRepository repo, FileSystemEventArgs fse_args)
+ {
+ return delegate { new Thread (() => { repo.OnFileActivity (fse_args); }).Start (); };
+ }
+
+ void OnFilesChanged (List<string> changed_files_in_basedir)
+ {
+ var triggered_repos = new List<string> ();
+
+ foreach (string file_path in changed_files_in_basedir) {
+ string [] paths = file_path.Split (Path.DirectorySeparatorChar);
+
+ if (paths.Length < 2)
+ continue;
+
+ BaseRepository repo = GetRepoByName (paths [1]);
+
+ if (repo != null && !triggered_repos.Contains (repo.Name)) {
+ FileActivityTask task = MacFileActivityTask (repo,
+ new FileSystemEventArgs (WatcherChangeTypes.Changed, file_path, "Unknown"));
+
+ task ();
+ triggered_repos.Add (repo.Name);
+ }
+ }
+ }
+
+
public delegate void Code ();
- private NSObject obj = new NSObject ();
public void Invoke (Code code)
{
using (var a = new NSAutoreleasePool ())
{
- obj.InvokeOnMainThread (() => code ());
+ new NSObject ().InvokeOnMainThread (() => code ());
}
}
}
diff --git a/SparkleShare/Mac/Info.plist b/SparkleShare/Mac/Info.plist
index 73f9a12..3df3ed2 100755
--- a/SparkleShare/Mac/Info.plist
+++ b/SparkleShare/Mac/Info.plist
@@ -5,17 +5,17 @@
<key>CFBundleIconFile</key>
<string>sparkleshare-app</string>
<key>CFBundleIdentifier</key>
- <string>org.sparkleshare.sparkleshare</string>
+ <string>org.sparkleshare.SparkleShare</string>
<key>CFBundleName</key>
<string>SparkleShare</string>
<key>CFBundleShortVersionString</key>
- <string>1.5.0</string>
+ <string>2.0.1</string>
<key>CFBundleVersion</key>
- <string>1.5.0</string>
+ <string>2.0.1</string>
<key>LSApplicationCategoryType</key>
- <string>public.app-category.productivity</string>
+ <string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
- <string>10.6</string>
+ <string>10.7</string>
<key>LSUIElement</key>
<string>1</string>
<key>NSMainNibFile</key>
diff --git a/SparkleShare/Mac/MainMenu.xib.designer.cs b/SparkleShare/Mac/MainMenu.xib.designer.cs
index 1ce6227..90e749c 100755
--- a/SparkleShare/Mac/MainMenu.xib.designer.cs
+++ b/SparkleShare/Mac/MainMenu.xib.designer.cs
@@ -11,8 +11,8 @@
namespace SparkleShare {
- // Should subclass MonoMac.AppKit.NSResponder
- [MonoMac.Foundation.Register("AppDelegate")]
+ // Should subclass AppKit.NSResponder
+ [Foundation.Register("AppDelegate")]
public partial class AppDelegate {
}
}
diff --git a/SparkleShare/Mac/README.md b/SparkleShare/Mac/README.md
index 60fea68..2ab5bb9 100644
--- a/SparkleShare/Mac/README.md
+++ b/SparkleShare/Mac/README.md
@@ -1,12 +1,12 @@
-## Building on Mac
+## Building on macOS
You can build SparkleShare from source or download the SparkleShare bundle.
### Installing build requirements
- Install [Xcode](https://itunes.apple.com/gb/app/xcode/id497799835?mt=12) from the Mac App Store, or [download](https://developer.apple.com/xcode/) it manually.
- Install [Xamarin Studio](http://monodevelop.com/download/).
+ Install [Xcode](https://itunes.apple.com/gb/app/xcode/id497799835?mt=12) from the macOS App Store, or [download](https://developer.apple.com/xcode/) it manually.
+ Install [Visual Studio](https://www.visualstudio.com/vs/visual-studio-mac/).
The required `git` binaries are now built automatically. For doing this and for building the distribution release, where Mono libraries are merged into SparkleShare, we need
the packes <tt>autoconf</tt> and <tt>pkg-config</tt>. You can install these in several ways, here's how it's done using [Homebrew](http://brew.sh/):
@@ -19,7 +19,7 @@ brew install autoconf automake libtool pkg-config
There are three build configurations available:
-* Debug
+* DebugMac
with debug symbols and having the Symbol DEBUG defined. Requires an installed Mono framework.
@@ -27,20 +27,21 @@ There are three build configurations available:
without debug symbols. Requires an installed Mono framework.
-* ReleaseDist
+* ReleaseMac
without debug symbols, the Mono framework is linked statically into the binary, so it does not require an installed Mono framework.
To build any of these configurations,
-* open `./SparkleShare/Mac/SparkleShare.sln`
+* open `./SparkleShare.sln` in Visual Studio
+* select the SparkleShare.Mac project in the Solution view
* select the required configuration
-* select `Build`, then `"Build SparkleShare"` from the menu
+* select `Build`, then `"Build SparkleShare.Mac"` from the menu
To build SparkleShare from a command line (e.g. for using a CI system), use this command:
```bash
-/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool -v build "--configuration:ReleaseDist" "./SparkleShare/Mac/SparkleShare.sln"
+ /Applications/Visual\ Studio.app/Contents/MacOS/vstool build "--configuration:ReleaseMac" "SparkleShare.sln"
```
@@ -48,7 +49,7 @@ To build SparkleShare from a command line (e.g. for using a CI system), use this
```
rm -Rf ~/SparkleShare
-rm -Rf ~/.config/sparkleshare
+rm -Rf ~/.config/org.sparkleshare.SparkleShare
```
diff --git a/SparkleShare/Mac/Resources/sparkleshare-app.icns b/SparkleShare/Mac/Resources/sparkleshare-app.icns
index c550166..c75b4f8 100755..100644
--- a/SparkleShare/Mac/Resources/sparkleshare-app.icns
+++ b/SparkleShare/Mac/Resources/sparkleshare-app.icns
Binary files differ
diff --git a/SparkleShare/Mac/SparkleShare.Mac.csproj b/SparkleShare/Mac/SparkleShare.Mac.csproj
new file mode 100644
index 0000000..6c46443
--- /dev/null
+++ b/SparkleShare/Mac/SparkleShare.Mac.csproj
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{8FCDF699-E2C3-4CB3-AF98-44198972AFC0}</ProjectGuid>
+ <ProjectTypeGuids>{A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>SparkleShare</RootNamespace>
+ <AssemblyName>SparkleShare</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <MonoMacResourcePrefix>Resources</MonoMacResourcePrefix>
+ <ReleaseVersion></ReleaseVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>none</DebugType>
+ <Optimize>False</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CustomCommands>
+ <CustomCommands>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ </CustomCommands>
+ </CustomCommands>
+ <EnableCodeSigning>False</EnableCodeSigning>
+ <CreatePackage>False</CreatePackage>
+ <EnablePackageSigning>False</EnablePackageSigning>
+ <IncludeMonoRuntime>false</IncludeMonoRuntime>
+ <ConsolePause>False</ConsolePause>
+ <UseSGen>false</UseSGen>
+ <UseRefCounting>false</UseRefCounting>
+ <Profiling>false</Profiling>
+ <HttpClientHandler>HttpClientHandler</HttpClientHandler>
+ <TlsProvider>Default</TlsProvider>
+ <LinkMode>None</LinkMode>
+ <UseMSBuildEngine>True</UseMSBuildEngine>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <Optimize>False</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <DefineConstants>DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CustomCommands>
+ <CustomCommands>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ </CustomCommands>
+ </CustomCommands>
+ <EnableCodeSigning>False</EnableCodeSigning>
+ <CreatePackage>False</CreatePackage>
+ <EnablePackageSigning>False</EnablePackageSigning>
+ <IncludeMonoRuntime>false</IncludeMonoRuntime>
+ <ConsolePause>False</ConsolePause>
+ <DebugSymbols>true</DebugSymbols>
+ <UseSGen>false</UseSGen>
+ <UseRefCounting>false</UseRefCounting>
+ <Profiling>false</Profiling>
+ <LinkMode>None</LinkMode>
+ <HttpClientHandler>HttpClientHandler</HttpClientHandler>
+ <TlsProvider>Default</TlsProvider>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseDist|AnyCPU' ">
+ <Optimize>false</Optimize>
+ <OutputPath>bin\ReleaseDist</OutputPath>
+ <WarningLevel>4</WarningLevel>
+ <UseSGen>false</UseSGen>
+ <IncludeMonoRuntime>false</IncludeMonoRuntime>
+ <EnablePackageSigning>false</EnablePackageSigning>
+ <CustomCommands>
+ <CustomCommands>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/packReleaseDist.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ </CustomCommands>
+ </CustomCommands>
+ <EnableCodeSigning>false</EnableCodeSigning>
+ <CreatePackage>false</CreatePackage>
+ <UseRefCounting>false</UseRefCounting>
+ <Profiling>false</Profiling>
+ <HttpClientHandler>HttpClientHandler</HttpClientHandler>
+ <TlsProvider>Default</TlsProvider>
+ <LinkMode>None</LinkMode>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseMac|AnyCPU' ">
+ <DebugType>none</DebugType>
+ <Optimize>False</Optimize>
+ <OutputPath>bin\ReleaseMac</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CustomCommands>
+ <CustomCommands>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ </CustomCommands>
+ </CustomCommands>
+ <EnableCodeSigning>False</EnableCodeSigning>
+ <CreatePackage>False</CreatePackage>
+ <EnablePackageSigning>False</EnablePackageSigning>
+ <IncludeMonoRuntime>false</IncludeMonoRuntime>
+ <ConsolePause>False</ConsolePause>
+ <UseSGen>false</UseSGen>
+ <UseRefCounting>false</UseRefCounting>
+ <Profiling>false</Profiling>
+ <HttpClientHandler>HttpClientHandler</HttpClientHandler>
+ <TlsProvider>Default</TlsProvider>
+ <LinkMode>None</LinkMode>
+ <CodeSigningKey>Mac Developer</CodeSigningKey>
+ <PackageSigningKey>3rd Party Mac Developer Installer</PackageSigningKey>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMac|AnyCPU' ">
+ <Optimize>False</Optimize>
+ <OutputPath>bin\DebugMac</OutputPath>
+ <DefineConstants>DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CustomCommands>
+ <CustomCommands>
+ <Command>
+ <type>AfterBuild</type>
+ <command>${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app</command>
+ </Command>
+ </CustomCommands>
+ </CustomCommands>
+ <EnableCodeSigning>False</EnableCodeSigning>
+ <CreatePackage>False</CreatePackage>
+ <EnablePackageSigning>False</EnablePackageSigning>
+ <IncludeMonoRuntime>false</IncludeMonoRuntime>
+ <ConsolePause>False</ConsolePause>
+ <DebugSymbols>true</DebugSymbols>
+ <UseSGen>false</UseSGen>
+ <UseRefCounting>false</UseRefCounting>
+ <Profiling>false</Profiling>
+ <LinkMode>None</LinkMode>
+ <HttpClientHandler>HttpClientHandler</HttpClientHandler>
+ <TlsProvider>Default</TlsProvider>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="Xamarin.Mac" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-128.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-128%402x.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-16.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-16%402x.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-256.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-256%402x.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-32.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-32%402x.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-512.png" />
+ <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-512%402x.png" />
+ <ImageAsset Include="Assets.xcassets\Contents.json" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Info.plist" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="UserInterface\About.cs" />
+ <Compile Include="UserInterface\Bubbles.cs" />
+ <Compile Include="UserInterface\EventLog.cs" />
+ <Compile Include="UserInterface\Note.cs" />
+ <Compile Include="UserInterface\Setup.cs" />
+ <Compile Include="UserInterface\SetupWindow.cs" />
+ <Compile Include="UserInterface\StatusIcon.cs" />
+ <Compile Include="UserInterface\UserInterface.cs" />
+ <Compile Include="AppDelegate.cs">
+ <DependentUpon>MainMenu.xib</DependentUpon>
+ </Compile>
+ <Compile Include="MainMenu.xib.designer.cs">
+ <DependentUpon>MainMenu.xib</DependentUpon>
+ </Compile>
+ <Compile Include="Watcher.cs" />
+ <Compile Include="Controller.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Sparkles\Sparkles.csproj">
+ <Project>{2C914413-B31C-4362-93C7-1AE34F09112A}</Project>
+ <Name>Sparkles</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Sparkles\Git\Sparkles.Git.csproj">
+ <Project>{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}</Project>
+ <Name>Sparkles.Git</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <BundleResource Include="..\Common\Images\about.png">
+ <Link>Resources\about.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\about%402x.png">
+ <Link>Resources\about%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Linux\Images\icons\hicolor\document-added-12.png">
+ <Link>Resources\document-added-12.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Linux\Images\icons\hicolor\document-deleted-12.png">
+ <Link>Resources\document-deleted-12.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Linux\Images\icons\hicolor\document-edited-12.png">
+ <Link>Resources\document-edited-12.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Linux\Images\icons\hicolor\document-moved-12.png">
+ <Link>Resources\document-moved-12.png</Link>
+ </BundleResource>
+ <BundleResource Include="Resources\process-syncing.png" />
+ <BundleResource Include="Resources\process-syncing%402x.png" />
+ <BundleResource Include="Resources\process-syncing-down.png" />
+ <BundleResource Include="Resources\process-syncing-down%402x.png" />
+ <BundleResource Include="Resources\process-syncing-error.png" />
+ <BundleResource Include="Resources\process-syncing-error%402x.png" />
+ <BundleResource Include="Resources\process-syncing-idle.png" />
+ <BundleResource Include="Resources\process-syncing-idle%402x.png" />
+ <BundleResource Include="Resources\process-syncing-up.png" />
+ <BundleResource Include="Resources\process-syncing-up%402x.png" />
+ <BundleResource Include="..\Common\Images\side-splash.png">
+ <Link>Resources\side-splash.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\side-splash%402x.png">
+ <Link>Resources\side-splash%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Mac\Resources\sparkleshare-app.icns">
+ <Link>Resources\sparkleshare-app.icns</Link>
+ </BundleResource>
+ <BundleResource Include="..\Mac\Resources\sparkleshare-folder.icns">
+ <Link>Resources\sparkleshare-folder.icns</Link>
+ </BundleResource>
+ <BundleResource Include="..\Mac\Resources\sparkleshare-folder-yosemite.icns">
+ <Link>Resources\sparkleshare-folder-yosemite.icns</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\text-balloon.png">
+ <Link>Resources\text-balloon.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\text-balloon%402x.png">
+ <Link>Resources\text-balloon%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\tutorial-slide-1.png">
+ <Link>Resources\tutorial-slide-1.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\tutorial-slide-1%402x.png">
+ <Link>Resources\tutorial-slide-1%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\tutorial-slide-2.png">
+ <Link>Resources\tutorial-slide-2.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Images\tutorial-slide-2%402x.png">
+ <Link>Resources\tutorial-slide-2%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Mac\Resources\tutorial-slide-3.png">
+ <Link>Resources\tutorial-slide-3.png</Link>
+ </BundleResource>
+ <BundleResource Include="Resources\tutorial-slide-3%402x.png" />
+ <BundleResource Include="..\Common\Images\user-icon-default.png">
+ <Link>Resources\user-icon-default.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\bitbucket.png">
+ <Link>Presets\bitbucket.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\bitbucket%402x.png">
+ <Link>Presets\bitbucket%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\github.png">
+ <Link>Presets\github.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\github%402x.png">
+ <Link>Presets\github%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\gitlab.png">
+ <Link>Presets\gitlab.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\gitlab%402x.png">
+ <Link>Presets\gitlab%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\own-server.png">
+ <Link>Presets\own-server.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\own-server%402x.png">
+ <Link>Presets\own-server%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\planio.png">
+ <Link>Presets\planio.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\planio%402x.png">
+ <Link>Presets\planio%402x.png</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\bitbucket.xml">
+ <Link>Presets\bitbucket.xml</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\github.xml">
+ <Link>Presets\github.xml</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\gitlab.xml">
+ <Link>Presets\gitlab.xml</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\own-server.xml">
+ <Link>Presets\own-server.xml</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\Presets\planio.xml">
+ <Link>Presets\planio.xml</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\HTML\day-entry.html">
+ <Link>HTML\day-entry.html</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\HTML\event-entry.html">
+ <Link>HTML\event-entry.html</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\HTML\event-log.html">
+ <Link>HTML\event-log.html</Link>
+ </BundleResource>
+ <BundleResource Include="..\Common\HTML\jquery.js">
+ <Link>HTML\jquery.js</Link>
+ </BundleResource>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Resources\" />
+ <Folder Include="UserInterface\" />
+ </ItemGroup>
+ <ItemGroup>
+ <InterfaceDefinition Include="MainMenu.xib" />
+ </ItemGroup>
+ <Import Project="..\Common\SparkleShare.projitems" Label="Shared" Condition="Exists('..\Common\SparkleShare.projitems')" />
+ <Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
+</Project>
diff --git a/SparkleShare/Mac/SparkleShare.csproj b/SparkleShare/Mac/SparkleShare.csproj
deleted file mode 100644
index 04b8cbb..0000000
--- a/SparkleShare/Mac/SparkleShare.csproj
+++ /dev/null
@@ -1,296 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>8.0.30703</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}</ProjectGuid>
- <ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <OutputType>Exe</OutputType>
- <RootNamespace>SparkleShare</RootNamespace>
- <AssemblyName>SparkleShare</AssemblyName>
- <ReleaseVersion>
- </ReleaseVersion>
- <SuppressXamMacMigration>True</SuppressXamMacMigration>
- <SuppressXamMacUpsell>True</SuppressXamMacUpsell>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>none</DebugType>
- <Optimize>False</Optimize>
- <OutputPath>bin\Release</OutputPath>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CustomCommands>
- <CustomCommands>
- <Command type="AfterBuild" command="${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app" />
- </CustomCommands>
- </CustomCommands>
- <EnableCodeSigning>False</EnableCodeSigning>
- <CreatePackage>False</CreatePackage>
- <EnablePackageSigning>False</EnablePackageSigning>
- <IncludeMonoRuntime>false</IncludeMonoRuntime>
- <ConsolePause>False</ConsolePause>
- <UseSGen>false</UseSGen>
- <UseRefCounting>false</UseRefCounting>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <Optimize>False</Optimize>
- <OutputPath>bin\Debug</OutputPath>
- <DefineConstants>DEBUG</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CustomCommands>
- <CustomCommands>
- <Command type="AfterBuild" command="${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app" />
- </CustomCommands>
- </CustomCommands>
- <EnableCodeSigning>False</EnableCodeSigning>
- <CreatePackage>False</CreatePackage>
- <EnablePackageSigning>False</EnablePackageSigning>
- <IncludeMonoRuntime>false</IncludeMonoRuntime>
- <ConsolePause>False</ConsolePause>
- <DebugSymbols>true</DebugSymbols>
- <UseSGen>false</UseSGen>
- <UseRefCounting>false</UseRefCounting>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseDist|AnyCPU' ">
- <Optimize>false</Optimize>
- <OutputPath>bin\ReleaseDist</OutputPath>
- <WarningLevel>4</WarningLevel>
- <UseSGen>false</UseSGen>
- <IncludeMonoRuntime>false</IncludeMonoRuntime>
- <EnablePackageSigning>false</EnablePackageSigning>
- <CustomCommands>
- <CustomCommands>
- <Command type="AfterBuild" command="${ProjectDir}/postBuild.sh ${TargetDir}/${SolutionName}.app" />
- <Command type="AfterBuild" command="${ProjectDir}/packReleaseDist.sh ${TargetDir}/${SolutionName}.app" />
- </CustomCommands>
- </CustomCommands>
- <EnableCodeSigning>false</EnableCodeSigning>
- <CreatePackage>false</CreatePackage>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Xml" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Net" />
- <Reference Include="Mono.Posix" />
- <Reference Include="MonoMac">
- <HintPath>..\..\..\monomac\src\MonoMac.dll</HintPath>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="AppDelegate.cs">
- <DependentUpon>MainMenu.xib</DependentUpon>
- </Compile>
- <Compile Include="MainMenu.xib.designer.cs">
- <DependentUpon>MainMenu.xib</DependentUpon>
- </Compile>
- <Compile Include="..\SparkleControllerBase.cs">
- <Link>SparkleControllerBase.cs</Link>
- </Compile>
- <Compile Include="SparkleStatusIcon.cs" />
- <Compile Include="SparkleUI.cs" />
- <Compile Include="..\Program.cs">
- <Link>Program.cs</Link>
- </Compile>
- <Compile Include="SparkleMacWatcher.cs" />
- <Compile Include="SparkleEventLog.cs" />
- <Compile Include="SparkleBubbles.cs" />
- <Compile Include="SparkleSetup.cs" />
- <Compile Include="SparkleSetupWindow.cs" />
- <Compile Include="..\SparkleBubblesController.cs">
- <Link>SparkleBubblesController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleEventLogController.cs">
- <Link>SparkleEventLogController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleSetupController.cs">
- <Link>SparkleSetupController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleStatusIconController.cs">
- <Link>SparkleStatusIconController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleAboutController.cs">
- <Link>SparkleAboutController.cs</Link>
- </Compile>
- <Compile Include="SparkleController.cs" />
- <Compile Include="..\SparklePlugin.cs">
- <Link>SparklePlugin.cs</Link>
- </Compile>
- <Compile Include="SparkleAbout.cs" />
- <Compile Include="..\SparkleInvite.cs">
- <Link>SparkleInvite.cs</Link>
- </Compile>
- <Compile Include="..\SparkleKeys.cs">
- <Link>SparkleKeys.cs</Link>
- </Compile>
- <Compile Include="..\SparkleAvatars.cs" />
- <Compile Include="..\SparkleNoteController.cs">
- <Link>SparkleNoteController.cs</Link>
- </Compile>
- <Compile Include="SparkleNote.cs" />
- </ItemGroup>
- <ItemGroup>
- <InterfaceDefinition Include="MainMenu.xib" xmlns="" />
- </ItemGroup>
- <ItemGroup>
- <None Include="Info.plist" />
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
- <ItemGroup>
- <Content Include="..\Common\HTML\day-entry.html">
- <Link>HTML\day-entry.html</Link>
- </Content>
- <Content Include="..\Common\HTML\event-entry.html">
- <Link>HTML\event-entry.html</Link>
- </Content>
- <Content Include="..\Common\HTML\event-log.html">
- <Link>HTML\event-log.html</Link>
- </Content>
- <Content Include="Resources\sparkleshare-folder.icns">
- <Link>sparkleshare-folder.icns</Link>
- </Content>
- <Content Include="Resources\sparkleshare-app.icns">
- <Link>sparkleshare-app.icns</Link>
- </Content>
- <Content Include="..\Common\HTML\jquery.js">
- <Link>HTML\jquery.js</Link>
- </Content>
- <Content Include="Resources\sparkleshare-folder-yosemite.icns">
- <Link>sparkleshare-folder-yosemite.icns</Link>
- </Content>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Resources\" />
- <Folder Include="HTML\" />
- <Folder Include="Plugins\" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\SparkleLib\SparkleLib.csproj">
- <Project>{2C914413-B31C-4362-93C7-1AE34F09112A}</Project>
- <Name>SparkleLib</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\SparkleLib\Git\SparkleLib.Git.csproj">
- <Project>{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}</Project>
- <Name>SparkleLib.Git</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <BundleResource Include="..\Common\Pixmaps\side-splash.png">
- <Link>Resources\side-splash.png</Link>
- </BundleResource>
- <BundleResource Include="..\Linux\Pixmaps\icons\document-added-12.png">
- <Link>Resources\document-added-12.png</Link>
- </BundleResource>
- <BundleResource Include="..\Linux\Pixmaps\icons\document-edited-12.png">
- <Link>Resources\document-edited-12.png</Link>
- </BundleResource>
- <BundleResource Include="..\Linux\Pixmaps\icons\document-deleted-12.png">
- <Link>Resources\document-deleted-12.png</Link>
- </BundleResource>
- <BundleResource Include="..\Linux\Pixmaps\icons\document-moved-12.png">
- <Link>Resources\document-moved-12.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\about.png">
- <Link>Resources\about.png</Link>
- </BundleResource>
- <BundleResource Include="Resources\tutorial-slide-3.png">
- <Link>Resources\tutorial-slide-3.png</Link>
- </BundleResource>
- <BundleResource Include="Resources\process-syncing-down.png" />
- <BundleResource Include="Resources\process-syncing-error.png" />
- <BundleResource Include="Resources\process-syncing-idle.png" />
- <BundleResource Include="Resources\process-syncing-up.png" />
- <BundleResource Include="Resources\process-syncing.png" />
- <BundleResource Include="..\Common\Pixmaps\user-icon-default.png">
- <Link>Resources\user-icon-default.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\side-splash%402x.png">
- <Link>Resources\side-splash%402x.png</Link>
- </BundleResource>
- <BundleResource Include="Resources\process-syncing-down%402x.png" />
- <BundleResource Include="Resources\process-syncing-error%402x.png" />
- <BundleResource Include="Resources\process-syncing-idle%402x.png" />
- <BundleResource Include="Resources\process-syncing-up%402x.png" />
- <BundleResource Include="Resources\process-syncing%402x.png" />
- <BundleResource Include="..\Common\Pixmaps\about%402x.png">
- <Link>Resources\about%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\tutorial-slide-1.png">
- <Link>Resources\tutorial-slide-1.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\tutorial-slide-1%402x.png">
- <Link>Resources\tutorial-slide-1%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\tutorial-slide-2.png">
- <Link>Resources\tutorial-slide-2.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\tutorial-slide-2%402x.png">
- <Link>Resources\tutorial-slide-2%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\bitbucket%402x.png">
- <Link>Plugins\bitbucket%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\github%402x.png">
- <Link>Plugins\github%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\gitorious%402x.png">
- <Link>Plugins\gitorious%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\own-server%402x.png">
- <Link>Plugins\own-server%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\ssnet%402x.png">
- <Link>Plugins\ssnet%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\bitbucket.xml">
- <Link>Plugins\bitbucket.xml</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\github.xml">
- <Link>Plugins\github.xml</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\gitorious.xml">
- <Link>Plugins\gitorious.xml</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\own-server.xml">
- <Link>Plugins\own-server.xml</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\bitbucket.png">
- <Link>Plugins\bitbucket.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\github.png">
- <Link>Plugins\github.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\gitorious.png">
- <Link>Plugins\gitorious.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\own-server.png">
- <Link>Plugins\own-server.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\ssnet.png">
- <Link>Plugins\ssnet.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\ssnet.xml">
- <Link>Plugins\ssnet.xml</Link>
- </BundleResource>
- <BundleResource Include="Resources\tutorial-slide-3%402x.png" />
- <BundleResource Include="..\Common\Plugins\planio.png">
- <Link>Plugins\planio.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\planio.xml">
- <Link>Plugins\planio.xml</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Plugins\planio%402x.png">
- <Link>Plugins\planio%402x.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\text-balloon.png">
- <Link>Resources\text-balloon.png</Link>
- </BundleResource>
- <BundleResource Include="..\Common\Pixmaps\text-balloon%402x.png">
- <Link>Resources\text-balloon%402x.png</Link>
- </BundleResource>
- </ItemGroup>
-</Project>
diff --git a/SparkleShare/Mac/SparkleShare.sln b/SparkleShare/Mac/SparkleShare.sln
deleted file mode 100644
index 8920b7f..0000000
--- a/SparkleShare/Mac/SparkleShare.sln
+++ /dev/null
@@ -1,56 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShare", "SparkleShare.csproj", "{CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib", "..\..\SparkleLib\SparkleLib.csproj", "{2C914413-B31C-4362-93C7-1AE34F09112A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib.Git", "..\..\SparkleLib\Git\SparkleLib.Git.csproj", "{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Release|Any CPU = Release|Any CPU
- Debug|Any CPU = Debug|Any CPU
- ReleaseDist|Any CPU = ReleaseDist|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.Build.0 = Release|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.ReleaseDist|Any CPU.ActiveCfg = Release|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.ReleaseDist|Any CPU.Build.0 = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.ReleaseDist|Any CPU.ActiveCfg = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.ReleaseDist|Any CPU.Build.0 = Release|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Release|Any CPU.Build.0 = Release|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.ReleaseDist|Any CPU.ActiveCfg = ReleaseDist|Any CPU
- {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.ReleaseDist|Any CPU.Build.0 = ReleaseDist|Any CPU
- EndGlobalSection
- GlobalSection(MonoDevelopProperties) = preSolution
- StartupItem = SparkleShare.csproj
- Policies = $0
- $0.DotNetNamingPolicy = $1
- $1.DirectoryNamespaceAssociation = None
- $1.ResourceNamePolicy = FileFormatDefault
- $0.TextStylePolicy = $2
- $2.inheritsSet = null
- $2.scope = text/x-csharp
- $0.CSharpFormattingPolicy = $3
- $3.inheritsSet = Mono
- $3.inheritsScope = text/x-csharp
- $3.scope = text/x-csharp
- $0.TextStylePolicy = $4
- $4.FileWidth = 120
- $4.inheritsSet = VisualStudio
- $4.inheritsScope = text/plain
- $4.scope = text/plain
- version =
- EndGlobalSection
-EndGlobal
diff --git a/SparkleShare/Mac/SparkleUI.cs b/SparkleShare/Mac/SparkleUI.cs
deleted file mode 100755
index 508055a..0000000
--- a/SparkleShare/Mac/SparkleUI.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-
-namespace SparkleShare {
-
- public class SparkleUI : AppDelegate {
-
- public SparkleStatusIcon StatusIcon;
- public SparkleEventLog EventLog;
- public SparkleSetup Setup;
- public SparkleBubbles Bubbles;
- public SparkleAbout About;
- public SparkleNote Note;
-
- public static string FontName = "Helvetica Neue";
-
- public SparkleUI ()
- {
- if (Environment.OSVersion.Version.Major < 14)
- FontName = "Lucida Grande";
-
- Program.Controller.Invoke (() => {
- if (Environment.OSVersion.Version.Major >= 14) {
- NSWorkspace.SharedWorkspace.SetIconforFile (
- NSImage.ImageNamed ("sparkleshare-folder-yosemite.icns"),
- Program.Controller.FoldersPath, 0);
-
- } else {
- NSWorkspace.SharedWorkspace.SetIconforFile (
- NSImage.ImageNamed ("sparkleshare-folder.icns"),
- Program.Controller.FoldersPath, 0);
- }
-
- NSApplication.SharedApplication.ApplicationIconImage = NSImage.ImageNamed ("sparkleshare-app.icns");
-
- Setup = new SparkleSetup ();
- EventLog = new SparkleEventLog ();
- About = new SparkleAbout ();
- Note = new SparkleNote ();
- Bubbles = new SparkleBubbles ();
- StatusIcon = new SparkleStatusIcon ();
- });
-
- Program.Controller.UIHasLoaded ();
- }
-
-
- public void Run ()
- {
- NSApplication.Main (Program.Arguments);
- }
-
-
- public void UpdateDockIconVisibility ()
- {
-// if (Setup.IsVisible || EventLog.IsVisible || About.IsVisible)
-// NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Regular;
- }
- }
-
-
- public partial class AppDelegate : NSApplicationDelegate {
-
- public override void WillTerminate (NSNotification notification)
- {
- Program.Controller.Quit ();
- }
-
-
- public override bool ApplicationShouldHandleReopen (NSApplication sender, bool has_visible_windows)
- {
- if (!has_visible_windows)
- Program.Controller.HandleReopen ();
-
- return true;
- }
- }
-}
diff --git a/SparkleShare/Mac/SparkleAbout.cs b/SparkleShare/Mac/UserInterface/About.cs
index 448f7a1..b9393ff 100755..100644
--- a/SparkleShare/Mac/SparkleAbout.cs
+++ b/SparkleShare/Mac/UserInterface/About.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,17 +16,16 @@
using System;
-using System.Drawing;
-using System.IO;
-using MonoMac.AppKit;
-using MonoMac.Foundation;
+using AppKit;
+using CoreGraphics;
+using Foundation;
namespace SparkleShare {
- public class SparkleAbout : NSWindow {
+ public class About : NSWindow {
- public SparkleAboutController Controller = new SparkleAboutController ();
+ public AboutController Controller = new AboutController ();
private NSTextField version_text_field, updates_text_field, credits_text_field;
private SparkleLink website_link, credits_link, report_problem_link, debug_log_link;
@@ -35,24 +34,25 @@ namespace SparkleShare {
private NSButton hidden_close_button;
- public SparkleAbout (IntPtr handle) : base (handle) { }
+ public About (IntPtr handle) : base (handle) { }
- public SparkleAbout () : base ()
+ public About () : base ()
{
- SetFrame (new RectangleF (0, 0, 640, 281), true);
+ SetFrame (new CGRect (0, 0, 640, 281), true);
Center ();
Delegate = new SparkleAboutDelegate ();
StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Titled);
Title = "About SparkleShare";
- MaxSize = new SizeF (640, 281);
- MinSize = new SizeF (640, 281);
+ MaxSize = new CGSize (640, 281);
+ MinSize = new CGSize (640, 281);
HasShadow = true;
+ IsOpaque = false;
BackingType = NSBackingStore.Buffered;
Level = NSWindowLevel.Floating;
this.hidden_close_button = new NSButton () {
- Frame = new RectangleF (0, 0, 0, 0),
+ Frame = new CGRect (0, 0, 0, 0),
KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask,
KeyEquivalent = "w"
};
@@ -63,15 +63,15 @@ namespace SparkleShare {
this.hidden_close_button.Activated += delegate { Controller.WindowClosed (); };
Controller.HideWindowEvent += delegate {
- Program.Controller.Invoke (() => PerformClose (this));
+ SparkleShare.Controller.Invoke (() => PerformClose (this));
};
Controller.ShowWindowEvent += delegate {
- Program.Controller.Invoke (() => OrderFrontRegardless ());
+ SparkleShare.Controller.Invoke (() => OrderFrontRegardless ());
};
Controller.UpdateLabelEvent += delegate (string text) {
- Program.Controller.Invoke (() => { this.updates_text_field.StringValue = text; });
+ SparkleShare.Controller.Invoke (() => { this.updates_text_field.StringValue = text; });
};
@@ -82,52 +82,52 @@ namespace SparkleShare {
private void CreateAbout ()
{
this.about_image = NSImage.ImageNamed ("about");
- this.about_image.Size = new SizeF (720, 260);
+ this.about_image.Size = new CGSize (720, 260);
this.about_image_view = new NSImageView () {
Image = this.about_image,
- Frame = new RectangleF (0, 0, 720, 260)
+ Frame = new CGRect (0, 0, 720, 260)
};
this.version_text_field = new SparkleLabel ("version " + Controller.RunningVersion, NSTextAlignment.Left) {
DrawsBackground = false,
- Frame = new RectangleF (295, 140, 318, 22),
+ Frame = new CGRect (295, 140, 318, 22),
TextColor = NSColor.White
};
- this.updates_text_field = new SparkleLabel ("Checking for updates...", NSTextAlignment.Left) {
+ this.updates_text_field = new SparkleLabel ("Checking for updates…", NSTextAlignment.Left) {
DrawsBackground = false,
- Frame = new RectangleF (295, Frame.Height - 232, 318, 98),
+ Frame = new CGRect (295, Frame.Height - 232, 318, 98),
TextColor = NSColor.FromCalibratedRgba (1.0f, 1.0f, 1.0f, 0.5f)
};
this.credits_text_field = new SparkleLabel (
- @"Copyright © 2010–" + DateTime.Now.Year + " Hylke Bons and others." +
+ @"Copyright © 2010–" + DateTime.Now.Year + " Hylke Bons and others" +
"\n\n" +
"SparkleShare is Open Source. You are free to use, modify, and redistribute it " +
- "under the GNU GPLv3.", NSTextAlignment.Left) {
+ "under the GNU GPLv3", NSTextAlignment.Left) {
DrawsBackground = false,
- Frame = new RectangleF (295, Frame.Height - 260, 318, 98),
+ Frame = new CGRect (295, Frame.Height - 260, 318, 98),
TextColor = NSColor.White
};
this.website_link = new SparkleLink ("Website", Controller.WebsiteLinkAddress);
- this.website_link.Frame = new RectangleF (new PointF (295, 25), this.website_link.Frame.Size);
+ this.website_link.Frame = new CGRect (new CGPoint (295, 25), this.website_link.Frame.Size);
this.credits_link = new SparkleLink ("Credits", Controller.CreditsLinkAddress);
- this.credits_link.Frame = new RectangleF (
- new PointF (this.website_link.Frame.X + this.website_link.Frame.Width + 10, 25),
+ this.credits_link.Frame = new CGRect (
+ new CGPoint (this.website_link.Frame.X + this.website_link.Frame.Width + 10, 25),
this.credits_link.Frame.Size);
this.report_problem_link = new SparkleLink ("Report a problem", Controller.ReportProblemLinkAddress);
- this.report_problem_link.Frame = new RectangleF (
- new PointF (this.credits_link.Frame.X + this.credits_link.Frame.Width + 10, 25),
+ this.report_problem_link.Frame = new CGRect (
+ new CGPoint (this.credits_link.Frame.X + this.credits_link.Frame.Width + 10, 25),
this.report_problem_link.Frame.Size);
this.debug_log_link = new SparkleLink ("Debug log", Controller.DebugLogLinkAddress);
- this.debug_log_link.Frame = new RectangleF (
- new PointF (this.report_problem_link.Frame.X + this.report_problem_link.Frame.Width + 10, 25),
+ this.debug_log_link.Frame = new CGRect (
+ new CGPoint (this.report_problem_link.Frame.X + this.report_problem_link.Frame.Width + 10, 25),
this.debug_log_link.Frame.Size);
ContentView.AddSubview (this.about_image_view);
@@ -145,10 +145,6 @@ namespace SparkleShare {
{
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
MakeKeyAndOrderFront (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
base.OrderFrontRegardless ();
}
@@ -156,10 +152,6 @@ namespace SparkleShare {
public override void PerformClose (NSObject sender)
{
base.OrderOut (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
return;
}
@@ -168,7 +160,7 @@ namespace SparkleShare {
public override bool WindowShouldClose (NSObject sender)
{
- (sender as SparkleAbout).Controller.WindowClosed ();
+ (sender as About).Controller.WindowClosed ();
return false;
}
}
@@ -181,32 +173,27 @@ namespace SparkleShare {
public SparkleLink (string text, string address) : base ()
{
+ StringValue = text;
this.url = new NSUrl (address);
- AllowsEditingTextAttributes = true;
+ Font = NSFont.SystemFontOfSize (11);
+
+ TextColor = NSColor.FromCalibratedRgba (1.0f, 1.0f, 1.0f, 0.5f);
BackgroundColor = NSColor.White;
+
+ AllowsEditingTextAttributes = true;
Bordered = false;
DrawsBackground = false;
Editable = false;
Selectable = false;
-
- NSData name_data = NSData.FromString ("<a href='" + this.url +
- "' style='font-size: 9pt; font-family: \"Helvetica Neue\"; color: #739ECF'>" + text + "</a></font>");
-
- NSDictionary name_dictionary = new NSDictionary();
- NSAttributedString name_attributes = new NSAttributedString (name_data, new NSUrl ("file://"), out name_dictionary);
-
- NSMutableAttributedString s = new NSMutableAttributedString ();
- s.Append (name_attributes);
-
- Cell.AttributedStringValue = s;
- SizeToFit ();
+
+ SizeToFit ();
}
public override void MouseUp (NSEvent e)
{
- Program.Controller.OpenWebsite (this.url.ToString ());
+ SparkleShare.Controller.OpenWebsite (this.url.ToString ());
}
diff --git a/SparkleShare/Mac/SparkleBubbles.cs b/SparkleShare/Mac/UserInterface/Bubbles.cs
index 1ac44e4..d00fba7 100755
--- a/SparkleShare/Mac/SparkleBubbles.cs
+++ b/SparkleShare/Mac/UserInterface/Bubbles.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,18 +16,16 @@
using System;
-
-using MonoMac.AppKit;
-using MonoMac.Foundation;
+using Foundation;
namespace SparkleShare {
- public class SparkleBubbles : NSObject {
+ public class Bubbles : NSObject {
- public SparkleBubblesController Controller = new SparkleBubblesController ();
+ public BubblesController Controller = new BubblesController ();
- public SparkleBubbles ()
+ public Bubbles ()
{
// The notification center was introduced in Mountain Lion
if (Environment.OSVersion.Version.Major >= 12)
@@ -35,18 +33,18 @@ namespace SparkleShare {
}
- private void ShowBubbleEvent (string title, string subtext, string image_path) {
+ void ShowBubbleEvent (string title, string subtext, string image_path) {
InvokeOnMainThread (() => {
- NSUserNotification notification = new NSUserNotification () {
+ var notification = new NSUserNotification {
Title = title,
InformativeText = subtext,
- DeliveryDate = DateTime.Now
+ DeliveryDate = (NSDate) DateTime.Now
};
NSUserNotificationCenter center = NSUserNotificationCenter.DefaultUserNotificationCenter;
center.ShouldPresentNotification = delegate { return true; };
- center.DidActivateNotification += delegate { Controller.BubbleClicked (); };
+ center.DidActivateNotification += delegate { Controller.BubbleClicked (); };
center.ScheduleNotification (notification);
});
}
diff --git a/SparkleShare/Mac/SparkleEventLog.cs b/SparkleShare/Mac/UserInterface/EventLog.cs
index 6ea3c73..52aa690 100755..100644
--- a/SparkleShare/Mac/SparkleEventLog.cs
+++ b/SparkleShare/Mac/UserInterface/EventLog.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,34 +16,34 @@
using System;
-using System.Drawing;
using System.IO;
-using System.Threading;
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-using MonoMac.ObjCRuntime;
-using MonoMac.WebKit;
+using AppKit;
+using CoreGraphics;
+using Foundation;
+using WebKit;
namespace SparkleShare {
- public class SparkleEventLog : NSWindow {
+ public class EventLog : NSWindow {
- public SparkleEventLogController Controller = new SparkleEventLogController ();
+ public EventLogController Controller = new EventLogController ();
public float TitlebarHeight;
- private WebView web_view;
- private NSBox background;
- private NSBox cover;
- private NSPopUpButton popup_button;
- private NSProgressIndicator progress_indicator;
- private NSTextField size_label, size_label_value, history_label, history_label_value;
- private NSButton hidden_close_button;
+ WebView web_view;
+ NSBox background;
+ NSBox cover;
+ NSPopUpButton popup_button;
+ NSProgressIndicator progress_indicator;
+ NSTextField size_label, size_label_value, history_label, history_label_value;
+ NSButton hidden_close_button;
- public SparkleEventLog (IntPtr handle) : base (handle) { }
+ public EventLog (IntPtr handle) : base (handle)
+ {
+ }
- public SparkleEventLog () : base ()
+ public EventLog ()
{
Title = "Recent Changes";
Delegate = new SparkleEventsDelegate ();
@@ -56,30 +56,33 @@ namespace SparkleShare {
float y = (float) (NSScreen.MainScreen.Frame.Height * 0.5 - (height * 0.5));
SetFrame (
- new RectangleF (
- new PointF (x, y),
- new SizeF (min_width, height)),
+ new CGRect (
+ new CGPoint (x, y),
+ new CGSize (min_width, height)),
true);
StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Miniaturizable |
NSWindowStyle.Titled | NSWindowStyle.Resizable);
- MinSize = new SizeF (min_width, min_height);
+ MinSize = new CGSize (min_width, min_height);
HasShadow = true;
+ IsOpaque = false;
BackingType = NSBackingStore.Buffered;
- TitlebarHeight = Frame.Height - ContentView.Frame.Height;
+ TitlebarHeight = (float) (Frame.Height - ContentView.Frame.Height);
Level = NSWindowLevel.Floating;
- this.web_view = new WebView (new RectangleF (0, 0, 481, 579), "", "") {
- Frame = new RectangleF (new PointF (0, 0),
- new SizeF (ContentView.Frame.Width, ContentView.Frame.Height - 39))
+ this.web_view = new WebView (new CGRect (0, 0, 481, 579), "", "") {
+ Frame = new CGRect (new CGPoint (0, 0),
+ new CGSize (ContentView.Frame.Width, ContentView.Frame.Height - 39))
};
+ this.web_view.Preferences.PlugInsEnabled = false;
+
this.cover = new NSBox () {
- Frame = new RectangleF (
- new PointF (-1, -1),
- new SizeF (Frame.Width + 2, this.web_view.Frame.Height + 1)),
+ Frame = new CGRect (
+ new CGPoint (-1, -1),
+ new CGSize (Frame.Width + 2, this.web_view.Frame.Height + 1)),
FillColor = NSColor.White,
BorderType = NSBorderType.NoBorder,
BoxType = NSBoxType.NSBoxCustom
@@ -100,9 +103,9 @@ namespace SparkleShare {
BackgroundColor = NSColor.WindowBackground,
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (0, ContentView.Frame.Height - 31),
- new SizeF (60, 20)),
+ Frame = new CGRect (
+ new CGPoint (0, ContentView.Frame.Height - 31),
+ new CGSize (60, 20)),
StringValue = "Size:"
};
@@ -111,11 +114,11 @@ namespace SparkleShare {
BackgroundColor = NSColor.WindowBackground,
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (60, ContentView.Frame.Height - 27),
- new SizeF (60, 20)),
+ Frame = new CGRect (
+ new CGPoint (60, ContentView.Frame.Height - 31),
+ new CGSize (60, 20)),
StringValue = "…",
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Font = NSFont.BoldSystemFontOfSize (12)
};
@@ -124,9 +127,9 @@ namespace SparkleShare {
BackgroundColor = NSColor.WindowBackground,
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (130, ContentView.Frame.Height - 31),
- new SizeF (60, 20)),
+ Frame = new CGRect (
+ new CGPoint (130, ContentView.Frame.Height - 31),
+ new CGSize (60, 20)),
StringValue = "History:"
};
@@ -135,34 +138,34 @@ namespace SparkleShare {
BackgroundColor = NSColor.WindowBackground,
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (190, ContentView.Frame.Height - 27),
- new SizeF (60, 20)
+ Frame = new CGRect (
+ new CGPoint (190, ContentView.Frame.Height - 31),
+ new CGSize (60, 20)
),
StringValue = "…",
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Font = NSFont.BoldSystemFontOfSize (12)
};
this.popup_button = new NSPopUpButton () {
- Frame = new RectangleF (
- new PointF (ContentView.Frame.Width - 156 - 12, ContentView.Frame.Height - 33),
- new SizeF (156, 26)),
+ Frame = new CGRect (
+ new CGPoint (ContentView.Frame.Width - 156 - 12, ContentView.Frame.Height - 33),
+ new CGSize (156, 26)),
PullsDown = false
};
this.background = new NSBox () {
- Frame = new RectangleF (
- new PointF (-1, -1),
- new SizeF (Frame.Width + 2, this.web_view.Frame.Height + 2)),
+ Frame = new CGRect (
+ new CGPoint (-1, -1),
+ new CGSize (Frame.Width + 2, this.web_view.Frame.Height + 2)),
FillColor = NSColor.White,
BorderColor = NSColor.LightGray,
BoxType = NSBoxType.NSBoxCustom
};
this.progress_indicator = new NSProgressIndicator () {
- Frame = new RectangleF (
- new PointF (Frame.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
- new SizeF (20, 20)),
+ Frame = new CGRect (
+ new CGPoint (Frame.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
+ new CGSize (20, 20)),
Style = NSProgressIndicatorStyle.Spinning
};
@@ -177,33 +180,33 @@ namespace SparkleShare {
ContentView.AddSubview (this.background);
ContentView.AddSubview (this.hidden_close_button);
- (Delegate as SparkleEventsDelegate).WindowResized += delegate (SizeF new_window_size) {
- Program.Controller.Invoke (() => Relayout (new_window_size));
+ (Delegate as SparkleEventsDelegate).WindowResized += delegate (CGSize new_window_size) {
+ SparkleShare.Controller.Invoke (() => Relayout (new_window_size));
};
// Hook up the controller events
Controller.HideWindowEvent += delegate {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
this.progress_indicator.Hidden = true;
PerformClose (this);
});
};
Controller.ShowWindowEvent += delegate {
- Program.Controller.Invoke (() => OrderFrontRegardless ());
+ SparkleShare.Controller.Invoke (() => OrderFrontRegardless ());
};
Controller.UpdateChooserEvent += delegate (string [] folders) {
- Program.Controller.Invoke (() => UpdateChooser (folders));
+ SparkleShare.Controller.Invoke (() => UpdateChooser (folders));
};
Controller.UpdateChooserEnablementEvent += delegate (bool enabled) {
- Program.Controller.Invoke (() => { this.popup_button.Enabled = enabled; });
+ SparkleShare.Controller.Invoke (() => { this.popup_button.Enabled = enabled; });
};
Controller.UpdateContentEvent += delegate (string html) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
this.cover.RemoveFromSuperview ();
this.progress_indicator.Hidden = true;
UpdateContent (html);
@@ -211,7 +214,7 @@ namespace SparkleShare {
};
Controller.ContentLoadingEvent += delegate {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
this.web_view.RemoveFromSuperview ();
// FIXME: Hack to hide that the WebView sometimes doesn't disappear
ContentView.AddSubview (this.cover);
@@ -221,14 +224,14 @@ namespace SparkleShare {
};
Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
this.size_label_value.StringValue = size;
this.history_label_value.StringValue = history_size;
});
};
Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
NSSavePanel panel = new NSSavePanel () {
DirectoryUrl = new NSUrl (target_folder_path, true),
NameFieldStringValue = file_name,
@@ -237,7 +240,7 @@ namespace SparkleShare {
PreventsApplicationTerminationWhenModal = false
};
- if ((NSPanelButtonType) panel.RunModal () == NSPanelButtonType.Ok) {
+ if ((NSPanelButtonType) (int) panel.RunModal () == NSPanelButtonType.Ok) {
string target_file_path = Path.Combine (panel.DirectoryUrl.RelativePath, panel.NameFieldStringValue);
Controller.SaveDialogCompleted (target_file_path);
@@ -249,41 +252,41 @@ namespace SparkleShare {
}
- public void Relayout (SizeF new_window_size)
+ public void Relayout (CGSize new_window_size)
{
- this.web_view.Frame = new RectangleF (this.web_view.Frame.Location,
- new SizeF (new_window_size.Width, new_window_size.Height - TitlebarHeight - 39));
+ this.web_view.Frame = new CGRect (this.web_view.Frame.Location,
+ new CGSize (new_window_size.Width, new_window_size.Height - TitlebarHeight - 39));
- this.cover.Frame = new RectangleF (this.cover.Frame.Location,
- new SizeF (new_window_size.Width, new_window_size.Height - TitlebarHeight - 39));
+ this.cover.Frame = new CGRect (this.cover.Frame.Location,
+ new CGSize (new_window_size.Width, new_window_size.Height - TitlebarHeight - 39));
- this.background.Frame = new RectangleF (this.background.Frame.Location,
- new SizeF (new_window_size.Width, new_window_size.Height - TitlebarHeight - 37));
+ this.background.Frame = new CGRect (this.background.Frame.Location,
+ new CGSize (new_window_size.Width, new_window_size.Height - TitlebarHeight - 37));
- this.size_label.Frame = new RectangleF (
- new PointF (this.size_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
+ this.size_label.Frame = new CGRect (
+ new CGPoint (this.size_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.size_label.Frame.Size);
- this.size_label_value.Frame = new RectangleF (
- new PointF (this.size_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 27),
+ this.size_label_value.Frame = new CGRect (
+ new CGPoint (this.size_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 27),
this.size_label_value.Frame.Size);
- this.history_label.Frame = new RectangleF (
- new PointF (this.history_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
+ this.history_label.Frame = new CGRect (
+ new CGPoint (this.history_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.history_label.Frame.Size);
- this.history_label_value.Frame = new RectangleF (
- new PointF (this.history_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 27),
+ this.history_label_value.Frame = new CGRect (
+ new CGPoint (this.history_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 27),
this.history_label_value.Frame.Size);
- this.progress_indicator.Frame = new RectangleF (
- new PointF (new_window_size.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
+ this.progress_indicator.Frame = new CGRect (
+ new CGPoint (new_window_size.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
this.progress_indicator.Frame.Size);
this.popup_button.RemoveFromSuperview (); // Needed to prevent redraw glitches
- this.popup_button.Frame = new RectangleF (
- new PointF (new_window_size.Width - this.popup_button.Frame.Width - 12, new_window_size.Height - TitlebarHeight - 33),
+ this.popup_button.Frame = new CGRect (
+ new CGPoint (new_window_size.Width - this.popup_button.Frame.Width - 12, new_window_size.Height - TitlebarHeight - 33),
this.popup_button.Frame.Size);
ContentView.AddSubview (this.popup_button);
@@ -299,21 +302,21 @@ namespace SparkleShare {
this.popup_button.AddItem ("Summary");
this.popup_button.Menu.AddItem (NSMenuItem.SeparatorItem);
-
- int row = 2;
- foreach (string folder in folders) {
+
+ int row = 2;
+ foreach (string folder in folders) {
this.popup_button.AddItem (folder);
-
- if (folder.Equals (Controller.SelectedFolder))
- this.popup_button.SelectItem (row);
-
- row++;
- }
-
+
+ if (folder.Equals (Controller.SelectedFolder))
+ this.popup_button.SelectItem (row);
+
+ row++;
+ }
+
this.popup_button.AddItems (folders);
this.popup_button.Activated += delegate {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
if (this.popup_button.IndexOfSelectedItem == 0)
Controller.SelectedFolder = null;
else
@@ -325,9 +328,9 @@ namespace SparkleShare {
public void UpdateContent (string html)
{
- string pixmaps_path = "file://" + NSBundle.MainBundle.ResourcePath;
-
- html = html.Replace ("<!-- $body-font-family -->", "Helvetica Neue");
+ string pixmaps_path = "file://" + NSBundle.MainBundle.ResourcePath;
+
+ html = html.Replace ("<!-- $body-font-family -->", UserInterface.FontName);
html = html.Replace ("<!-- $day-entry-header-font-size -->", "13.6px");
html = html.Replace ("<!-- $body-font-size -->", "13.4px");
html = html.Replace ("<!-- $secondary-font-color -->", "#bbb");
@@ -341,9 +344,9 @@ namespace SparkleShare {
html = html.Replace ("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png");
html = html.Replace ("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png");
html = html.Replace ("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png");
-
- this.web_view = new WebView (new RectangleF (0, 0, 481, 579), "", "") {
- Frame = new RectangleF (new PointF (0, 0), new SizeF (ContentView.Frame.Width, ContentView.Frame.Height - 39))
+
+ this.web_view = new WebView (new CGRect (0, 0, 481, 579), "", "") {
+ Frame = new CGRect (new CGPoint (0, 0), new CGSize (ContentView.Frame.Width, ContentView.Frame.Height - 39))
};
this.web_view.MainFrame.LoadHtmlString (html, new NSUrl (""));
@@ -351,12 +354,7 @@ namespace SparkleShare {
this.web_view.PolicyDelegate = new SparkleWebPolicyDelegate ();
ContentView.AddSubview (this.web_view);
- (this.web_view.PolicyDelegate as SparkleWebPolicyDelegate).LinkClicked += delegate (string href) {
- if (href.StartsWith ("file:///"))
- href = href.Substring (7);
-
- Controller.LinkClicked (href);
- };
+ (this.web_view.PolicyDelegate as SparkleWebPolicyDelegate).LinkClicked += Controller.LinkClicked;
this.progress_indicator.Hidden = true;
}
@@ -366,10 +364,6 @@ namespace SparkleShare {
{
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
MakeKeyAndOrderFront (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
base.OrderFrontRegardless ();
}
@@ -377,10 +371,6 @@ namespace SparkleShare {
public override void PerformClose (NSObject sender)
{
base.OrderOut (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
return;
}
}
@@ -389,9 +379,9 @@ namespace SparkleShare {
public class SparkleEventsDelegate : NSWindowDelegate {
public event WindowResizedHandler WindowResized = delegate { };
- public delegate void WindowResizedHandler (SizeF new_window_size);
+ public delegate void WindowResizedHandler (CGSize new_window_size);
- public override SizeF WillResize (NSWindow sender, SizeF to_frame_size)
+ public override CGSize WillResize (NSWindow sender, CGSize to_frame_size)
{
WindowResized (to_frame_size);
return to_frame_size;
@@ -399,7 +389,7 @@ namespace SparkleShare {
public override bool WindowShouldClose (NSObject sender)
{
- (sender as SparkleEventLog).Controller.WindowClosed ();
+ (sender as EventLog).Controller.WindowClosed ();
return false;
}
}
diff --git a/SparkleShare/Mac/SparkleNote.cs b/SparkleShare/Mac/UserInterface/Note.cs
index 9b9cbf2..9e5c247 100755..100644
--- a/SparkleShare/Mac/SparkleNote.cs
+++ b/SparkleShare/Mac/UserInterface/Note.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,16 +16,16 @@
using System;
-using System.Drawing;
-using MonoMac.AppKit;
-using MonoMac.Foundation;
+using AppKit;
+using CoreGraphics;
+using Foundation;
namespace SparkleShare {
- public class SparkleNote : NSWindow {
+ public class Note : NSWindow {
- public SparkleNoteController Controller = new SparkleNoteController ();
+ public NoteController Controller = new NoteController ();
private NSImage user_image, balloon_image;
private NSImageView user_image_view, balloon_image_view;
@@ -34,24 +34,25 @@ namespace SparkleShare {
private NSTextField user_name_text_field, user_email_text_field, balloon_text_field;
- public SparkleNote (IntPtr handle) : base (handle) { }
+ public Note (IntPtr handle) : base (handle) { }
- public SparkleNote () : base ()
+ public Note () : base ()
{
- SetFrame (new RectangleF (0, 0, 480, 240), true);
+ SetFrame (new CGRect (0, 0, 480, 240), true);
Center ();
Delegate = new SparkleNoteDelegate ();
StyleMask = (NSWindowStyle.Closable | NSWindowStyle.Titled);
Title = "Add Note";
- MaxSize = new SizeF (480, 240);
- MinSize = new SizeF (480, 240);
+ MaxSize = new CGSize (480, 240);
+ MinSize = new CGSize (480, 240);
HasShadow = true;
+ IsOpaque = false;
BackingType = NSBackingStore.Buffered;
Level = NSWindowLevel.Floating;
this.hidden_close_button = new NSButton () {
- Frame = new RectangleF (0, 0, 0, 0),
+ Frame = new CGRect (0, 0, 0, 0),
KeyEquivalentModifierMask = NSEventModifierMask.CommandKeyMask,
KeyEquivalent = "w"
};
@@ -62,16 +63,16 @@ namespace SparkleShare {
this.hidden_close_button.Activated += delegate { Controller.WindowClosed (); };
Controller.HideWindowEvent += delegate {
- Program.Controller.Invoke (() => PerformClose (this));
+ SparkleShare.Controller.Invoke (() => PerformClose (this));
};
Controller.ShowWindowEvent += delegate {
- Program.Controller.Invoke (() => OrderFrontRegardless ());
+ SparkleShare.Controller.Invoke (() => OrderFrontRegardless ());
CreateNote ();
};
Controller.UpdateTitleEvent += delegate (string title) {
- Program.Controller.Invoke (() => { Title = title; });
+ SparkleShare.Controller.Invoke (() => { Title = title; });
};
@@ -82,9 +83,9 @@ namespace SparkleShare {
private void CreateNote ()
{
this.cover = new NSBox () {
- Frame = new RectangleF (
- new PointF (-1, 58),
- new SizeF (Frame.Width + 2, this.ContentView.Frame.Height + 1)),
+ Frame = new CGRect (
+ new CGPoint (-1, 58),
+ new CGSize (Frame.Width + 2, this.ContentView.Frame.Height + 1)),
FillColor = NSColor.FromCalibratedRgba (0.77f, 0.77f, 0.75f, 1.0f),
BorderColor = NSColor.LightGray,
BoxType = NSBoxType.NSBoxCustom
@@ -96,11 +97,11 @@ namespace SparkleShare {
BackgroundColor = NSColor.FromCalibratedRgba (0.77f, 0.77f, 0.75f, 1.0f),
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (85, ContentView.Frame.Height - 41),
- new SizeF (320, 22)),
- StringValue = Program.Controller.CurrentUser.Name,
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Frame = new CGRect (
+ new CGPoint (85, ContentView.Frame.Height - 41),
+ new CGSize (320, 22)),
+ StringValue = SparkleShare.Controller.CurrentUser.Name,
+ Font = NSFont.BoldSystemFontOfSize (12)
};
this.user_email_text_field = new NSTextField () {
@@ -109,10 +110,10 @@ namespace SparkleShare {
TextColor = NSColor.DisabledControlText,
Bordered = false,
Editable = false,
- Frame = new RectangleF (
- new PointF (85, ContentView.Frame.Height - 60),
- new SizeF (320, 20)),
- StringValue = Program.Controller.CurrentUser.Email,
+ Frame = new CGRect (
+ new CGPoint (85, ContentView.Frame.Height - 60),
+ new CGSize (320, 20)),
+ StringValue = SparkleShare.Controller.CurrentUser.Email,
};
@@ -121,9 +122,9 @@ namespace SparkleShare {
BackgroundColor = NSColor.White,
Bordered = false,
Editable = true,
- Frame = new RectangleF (
- new PointF (30, ContentView.Frame.Height - 137),
- new SizeF (418, 48))
+ Frame = new CGRect (
+ new CGPoint (30, ContentView.Frame.Height - 137),
+ new CGSize (418, 48))
};
(this.balloon_text_field.Cell as NSTextFieldCell).PlaceholderString = "Anything to add?";
@@ -136,13 +137,13 @@ namespace SparkleShare {
this.cancel_button = new NSButton () {
Title = "Cancel",
BezelStyle = NSBezelStyle.Rounded,
- Frame = new RectangleF (Frame.Width - 15 - 105 * 2, 12, 105, 32),
+ Frame = new CGRect (Frame.Width - 15 - 105 * 2, 12, 105, 32),
};
this.sync_button = new NSButton () {
Title = "Sync",
BezelStyle = NSBezelStyle.Rounded,
- Frame = new RectangleF (Frame.Width - 15 - 105, 12, 105, 32),
+ Frame = new CGRect (Frame.Width - 15 - 105, 12, 105, 32),
};
this.cancel_button.Activated += delegate { Controller.CancelClicked (); };
@@ -156,10 +157,10 @@ namespace SparkleShare {
else
this.balloon_image = NSImage.ImageNamed ("text-balloon");
- this.balloon_image.Size = new SizeF (438, 72);
+ this.balloon_image.Size = new CGSize (438, 72);
this.balloon_image_view = new NSImageView () {
Image = this.balloon_image,
- Frame = new RectangleF (21, ContentView.Frame.Height - 145, 438, 72)
+ Frame = new CGRect (21, ContentView.Frame.Height - 145, 438, 72)
};
@@ -168,10 +169,10 @@ namespace SparkleShare {
else
this.user_image = NSImage.ImageNamed ("user-icon-default");
- this.user_image.Size = new SizeF (48, 48);
+ this.user_image.Size = new CGSize (48, 48);
this.user_image_view = new NSImageView () {
Image = this.user_image,
- Frame = new RectangleF (21, ContentView.Frame.Height - 65, 48, 48)
+ Frame = new CGRect (21, ContentView.Frame.Height - 65, 48, 48)
};
this.user_image_view.WantsLayer = true;
@@ -197,10 +198,6 @@ namespace SparkleShare {
{
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
MakeKeyAndOrderFront (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
base.OrderFrontRegardless ();
}
@@ -208,24 +205,21 @@ namespace SparkleShare {
public override void PerformClose (NSObject sender)
{
base.OrderOut (this);
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
return;
}
+
public override bool AcceptsFirstResponder ()
{
return true;
}
- private class SparkleNoteDelegate : NSWindowDelegate {
+ class SparkleNoteDelegate : NSWindowDelegate {
public override bool WindowShouldClose (NSObject sender)
{
- (sender as SparkleNote).Controller.WindowClosed ();
+ (sender as Note).Controller.WindowClosed ();
return false;
}
}
diff --git a/SparkleShare/Mac/SparkleSetup.cs b/SparkleShare/Mac/UserInterface/Setup.cs
index d544627..75aca2a 100755..100644
--- a/SparkleShare/Mac/SparkleSetup.cs
+++ b/SparkleShare/Mac/UserInterface/Setup.cs
@@ -1,5 +1,5 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -17,55 +17,63 @@
using System;
using System.Collections.Generic;
-using System.Drawing;
using System.IO;
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-using MonoMac.WebKit;
+using AppKit;
+using CoreGraphics;
+using Foundation;
+using WebKit;
-using Mono.Unix;
+using Sparkles;
namespace SparkleShare {
- public class SparkleSetup : SparkleSetupWindow {
+ public class Setup : SetupWindow {
- public SparkleSetupController Controller = new SparkleSetupController ();
+ public SetupController Controller = new SetupController ();
- private NSButton ContinueButton, AddButton, CopyButton, TryAgainButton, CancelButton,
- SkipTutorialButton, FinishButton, ShowFilesButton;
+ private NSButton ContinueButton, AddButton, TryAgainButton, CancelButton, FinishButton, ShowFilesButton;
- private NSTextField FullNameTextField, FullNameLabel, EmailLabel, EmailTextField,
- LinkCodeTextField, AddressTextField, AddressLabel, AddressHelpLabel, PathTextField, PathLabel,
- PathHelpLabel, ProgressLabel, PasswordTextField, VisiblePasswordTextField, PasswordLabel, WarningTextField;
+ private NSTextField FullNameTextField, FullNameLabel, EmailLabel, EmailTextField;
- private NSButton StartupCheckButton, HistoryCheckButton, ShowPasswordCheckButton;
+ private NSTextField AddressTextField, AddressLabel, AddressHelpLabel;
+ private NSTextField PathLabel, PathTextField, PathHelpLabel;
+
+ private NSTextField ProgressLabel, PasswordTextField, VisiblePasswordTextField, PasswordLabel, WarningTextField;
+
+ private NSImage WarningImage;
+ private NSImageView WarningImageView;
+
+ private NSButton HistoryCheckButton, ShowPasswordCheckButton;
private NSProgressIndicator ProgressIndicator;
- private NSImage WarningImage, SlideImage;
- private NSImageView WarningImageView, SlideImageView;
private NSTableColumn IconColumn, DescriptionColumn;
private NSTableView TableView;
private NSScrollView ScrollView;
private SparkleDataSource DataSource;
+ private NSButtonCell ButtonCellProto;
+ private NSMatrix Matrix;
+ List<NSTextField> storage_type_descriptions;
- public SparkleSetup () : base ()
+
+ public Setup () : base ()
{
Controller.HideWindowEvent += delegate {
- Program.Controller.Invoke (() => PerformClose (this));
+ SparkleShare.Controller.Invoke (() => PerformClose (this));
};
Controller.ShowWindowEvent += delegate {
- Program.Controller.Invoke (() => OrderFrontRegardless ());
+ SparkleShare.Controller.Invoke (() => OrderFrontRegardless ());
};
Controller.ChangePageEvent += delegate (PageType type, string [] warnings) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
Reset ();
ShowPage (type, warnings);
ShowAll ();
});
};
+
}
@@ -76,19 +84,19 @@ namespace SparkleShare {
Description = "First off, what’s your name and email?\n(visible only to team members)";
FullNameLabel = new SparkleLabel ("Full Name:", NSTextAlignment.Right);
- FullNameLabel.Frame = new RectangleF (165, Frame.Height - 234, 160, 17);
+ FullNameLabel.Frame = new CGRect (165, Frame.Height - 234, 160, 17);
FullNameTextField = new NSTextField () {
- Frame = new RectangleF (330, Frame.Height - 238, 196, 22),
- StringValue = UnixUserInfo.GetRealUser ().RealName,
+ Frame = new CGRect (330, Frame.Height - 238, 196, 22),
+ StringValue = new NSProcessInfo ().GetFullUserName (),
Delegate = new SparkleTextFieldDelegate ()
};
EmailLabel = new SparkleLabel ("Email:", NSTextAlignment.Right);
- EmailLabel.Frame = new RectangleF (165, Frame.Height - 264, 160, 17);
+ EmailLabel.Frame = new CGRect (165, Frame.Height - 264, 160, 17);
EmailTextField = new NSTextField () {
- Frame = new RectangleF (330, Frame.Height - 268, 196, 22),
+ Frame = new CGRect (330, Frame.Height - 268, 196, 22),
Delegate = new SparkleTextFieldDelegate ()
};
@@ -118,7 +126,7 @@ namespace SparkleShare {
CancelButton.Activated += delegate { Controller.SetupPageCancelled (); };
Controller.UpdateSetupContinueButtonEvent += delegate (bool button_enabled) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
ContinueButton.Enabled = button_enabled;
});
};
@@ -145,20 +153,19 @@ namespace SparkleShare {
Description = "Do you want to add this project to SparkleShare?";
AddressLabel = new SparkleLabel ("Address:", NSTextAlignment.Right);
- AddressLabel.Frame = new RectangleF (165, Frame.Height - 238, 160, 17);
- AddressLabel.Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize);
-
+ AddressLabel.Frame = new CGRect (165, Frame.Height - 238, 160, 17);
+ AddressLabel.Font = NSFont.BoldSystemFontOfSize (12);
+
AddressTextField = new SparkleLabel (Controller.PendingInvite.Address, NSTextAlignment.Left) {
- Frame = new RectangleF (330, Frame.Height - 240, 260, 17)
+ Frame = new CGRect (330, Frame.Height - 240, 260, 17)
};
PathLabel = new SparkleLabel ("Remote Path:", NSTextAlignment.Right);
- PathLabel.Frame = new RectangleF (165, Frame.Height - 262, 160, 17);
- PathLabel.Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize);
-
+ PathLabel.Frame = new CGRect (165, Frame.Height - 262, 160, 17);
+ PathLabel.Font = NSFont.BoldSystemFontOfSize (12);
PathTextField = new SparkleLabel (Controller.PendingInvite.RemotePath, NSTextAlignment.Left) {
- Frame = new RectangleF (330, Frame.Height - 264, 260, 17)
+ Frame = new CGRect (330, Frame.Height - 264, 260, 17)
};
CancelButton = new NSButton () { Title = "Cancel" };
@@ -183,13 +190,13 @@ namespace SparkleShare {
Description = "";
AddressLabel = new SparkleLabel ("Address:", NSTextAlignment.Left) {
- Frame = new RectangleF (190, Frame.Height - 308, 160, 17),
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Frame = new CGRect (190, Frame.Height - 310, 160, 17),
+ Font = NSFont.BoldSystemFontOfSize (12)
};
AddressTextField = new NSTextField () {
- Frame = new RectangleF (190, Frame.Height - 336, 196, 22),
- Enabled = (Controller.SelectedPlugin.Address == null),
+ Frame = new CGRect (190, Frame.Height - 336, 196, 22),
+ Enabled = (Controller.SelectedPreset.Address == null),
Delegate = new SparkleTextFieldDelegate (),
StringValue = "" + Controller.PreviousAddress
};
@@ -197,40 +204,40 @@ namespace SparkleShare {
AddressTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
PathLabel = new SparkleLabel ("Remote Path:", NSTextAlignment.Left) {
- Frame = new RectangleF (190 + 196 + 16, Frame.Height - 308, 160, 17),
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Frame = new CGRect (190 + 196 + 16, Frame.Height - 310, 160, 17),
+ Font = NSFont.BoldSystemFontOfSize (12)
};
PathTextField = new NSTextField () {
- Frame = new RectangleF (190 + 196 + 16, Frame.Height - 336, 196, 22),
- Enabled = (Controller.SelectedPlugin.Path == null),
+ Frame = new CGRect (190 + 196 + 16, Frame.Height - 336, 196, 22),
+ Enabled = (Controller.SelectedPreset.Path == null),
Delegate = new SparkleTextFieldDelegate (),
StringValue = "" + Controller.PreviousPath
};
PathTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
- PathHelpLabel = new SparkleLabel (Controller.SelectedPlugin.PathExample, NSTextAlignment.Left) {
- TextColor = NSColor.DisabledControlText,
- Frame = new RectangleF (190 + 196 + 16, Frame.Height - 358, 204, 19)
+ PathHelpLabel = new SparkleLabel (Controller.SelectedPreset.PathExample, NSTextAlignment.Left) {
+ TextColor = NSColor.DisabledControlText,
+ Frame = new CGRect (190 + 196 + 16, Frame.Height - 358, 204, 19)
};
- AddressHelpLabel = new SparkleLabel (Controller.SelectedPlugin.AddressExample, NSTextAlignment.Left) {
- TextColor = NSColor.DisabledControlText,
- Frame = new RectangleF (190, Frame.Height - 358, 204, 19)
+ AddressHelpLabel = new SparkleLabel (Controller.SelectedPreset.AddressExample, NSTextAlignment.Left) {
+ TextColor = NSColor.DisabledControlText,
+ Frame = new CGRect (190, Frame.Height - 358, 204, 19)
};
- if (TableView == null || TableView.RowCount != Controller.Plugins.Count) {
+ if (TableView == null || TableView.RowCount != Controller.Presets.Count) {
TableView = new NSTableView () {
- Frame = new RectangleF (0, 0, 0, 0),
+ Frame = new CGRect (0, 0, 0, 0),
RowHeight = 38,
- IntercellSpacing = new SizeF (8, 12),
+ IntercellSpacing = new CGSize (8, 12),
HeaderView = null,
Delegate = new SparkleTableViewDelegate ()
};
ScrollView = new NSScrollView () {
- Frame = new RectangleF (190, Frame.Height - 280, 408, 185),
+ Frame = new CGRect (190, Frame.Height - 280, 408, 185),
DocumentView = TableView,
HasVerticalScroller = true,
BorderType = NSBorderType.BezelBorder
@@ -248,33 +255,30 @@ namespace SparkleShare {
Editable = false
};
- DescriptionColumn.DataCell.Font = NSFontManager.SharedFontManager.FontWithFamily (
- SparkleUI.FontName, NSFontTraitMask.Condensed, 0, 11);
-
TableView.AddColumn (IconColumn);
TableView.AddColumn (DescriptionColumn);
// Hi-res display support was added after Snow Leopard
if (Environment.OSVersion.Version.Major < 11)
- DataSource = new SparkleDataSource (1, Controller.Plugins);
+ DataSource = new SparkleDataSource (1, Controller.Presets);
else
- DataSource = new SparkleDataSource (BackingScaleFactor, Controller.Plugins);
+ DataSource = new SparkleDataSource ((float) BackingScaleFactor, Controller.Presets);
TableView.DataSource = DataSource;
TableView.ReloadData ();
(TableView.Delegate as SparkleTableViewDelegate).SelectionChanged += delegate {
- Controller.SelectedPluginChanged (TableView.SelectedRow);
- Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
+ Controller.SelectedPresetChanged ((int) TableView.SelectedRow);
+ Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, (int) TableView.SelectedRow);
};
}
- TableView.SelectRow (Controller.SelectedPluginIndex, false);
- TableView.ScrollRowToVisible (Controller.SelectedPluginIndex);
+ TableView.SelectRow (Controller.SelectedPresetIndex, false);
+ TableView.ScrollRowToVisible (Controller.SelectedPresetIndex);
MakeFirstResponder ((NSResponder) TableView);
HistoryCheckButton = new NSButton () {
- Frame = new RectangleF (190, Frame.Height - 400, 300, 18),
+ Frame = new CGRect (190, Frame.Height - 400, 300, 18),
Title = "Fetch prior revisions"
};
@@ -292,7 +296,7 @@ namespace SparkleShare {
Controller.ChangeAddressFieldEvent += delegate (string text, string example_text, FieldState state) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
AddressTextField.StringValue = text;
AddressTextField.Enabled = (state == FieldState.Enabled);
AddressHelpLabel.StringValue = example_text;
@@ -300,7 +304,7 @@ namespace SparkleShare {
};
Controller.ChangePathFieldEvent += delegate (string text, string example_text, FieldState state) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
PathTextField.StringValue = text;
PathTextField.Enabled = (state == FieldState.Enabled);
PathHelpLabel.StringValue = example_text;
@@ -309,11 +313,11 @@ namespace SparkleShare {
(AddressTextField.Delegate as SparkleTextFieldDelegate).StringValueChanged += delegate {
- Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
+ Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, (int) TableView.SelectedRow);
};
(PathTextField.Delegate as SparkleTextFieldDelegate).StringValueChanged += delegate {
- Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
+ Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, (int) TableView.SelectedRow);
};
@@ -328,7 +332,7 @@ namespace SparkleShare {
CancelButton.Activated += delegate { Controller.PageCancelled (); };
Controller.UpdateAddProjectButtonEvent += delegate (bool button_enabled) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
AddButton.Enabled = button_enabled;
});
};
@@ -345,7 +349,7 @@ namespace SparkleShare {
Buttons.Add (AddButton);
Buttons.Add (CancelButton);
- Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, TableView.SelectedRow);
+ Controller.CheckAddPage (AddressTextField.StringValue, PathTextField.StringValue, (int) TableView.SelectedRow);
}
if (type == PageType.Syncing) {
@@ -353,7 +357,7 @@ namespace SparkleShare {
Description = "This may take a while for large projects.\nIsn’t it coffee-o’clock?";
ProgressIndicator = new NSProgressIndicator () {
- Frame = new RectangleF (190, Frame.Height - 200, 640 - 150 - 80, 20),
+ Frame = new CGRect (190, Frame.Height - 200, 640 - 150 - 80, 20),
Style = NSProgressIndicatorStyle.Bar,
MinValue = 0.0,
MaxValue = 100.0,
@@ -371,11 +375,11 @@ namespace SparkleShare {
};
ProgressLabel = new SparkleLabel ("Preparing to fetch files…", NSTextAlignment.Right);
- ProgressLabel.Frame = new RectangleF (Frame.Width - 40 - 250, 185, 250, 25);
+ ProgressLabel.Frame = new CGRect (Frame.Width - 40 - 250, 185, 250, 25);
Controller.UpdateProgressBarEvent += delegate (double percentage, string speed) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
ProgressIndicator.DoubleValue = percentage;
ProgressLabel.StringValue = speed;
});
@@ -399,11 +403,11 @@ namespace SparkleShare {
// Displaying marked up text with Cocoa is
// a pain, so we just use a webview instead
WebView web_view = new WebView ();
- web_view.Frame = new RectangleF (190, Frame.Height - 525, 375, 400);
+ web_view.Frame = new CGRect (190, Frame.Height - 525, 375, 400);
string html = "<style>" +
"* {" +
- " font-family: '" + SparkleUI.FontName + "';" +
+ " font-family: -apple-system, '" + UserInterface.FontName + "';" +
" font-size: 12px; cursor: default;" +
"}" +
"body {" +
@@ -440,7 +444,7 @@ namespace SparkleShare {
web_view.DrawsBackground = false;
CancelButton = new NSButton () { Title = "Cancel" };
- TryAgainButton = new NSButton () { Title = "Try Again…" };
+ TryAgainButton = new NSButton () { Title = "Retry" };
CancelButton.Activated += delegate { Controller.PageCancelled (); };
@@ -453,6 +457,58 @@ namespace SparkleShare {
Buttons.Add (CancelButton);
}
+ if (type == PageType.StorageSetup) {
+ Header = string.Format ("Storage type for ‘{0}’", Controller.SyncingFolder);
+ Description = "What type of storage would you like to use?";
+
+
+ storage_type_descriptions = new List<NSTextField> ();
+
+ ButtonCellProto = new NSButtonCell ();
+ ButtonCellProto.SetButtonType (NSButtonType.Radio);
+ ButtonCellProto.Font = NSFont.BoldSystemFontOfSize (12);
+
+ Matrix = new NSMatrix (new CGRect (202, Frame.Height - 256 - 128, 256, 256), NSMatrixMode.Radio,
+ ButtonCellProto, SparkleShare.Controller.FetcherAvailableStorageTypes.Count, 1);
+
+ Matrix.CellSize = new CGSize (256, 36);
+ Matrix.IntercellSpacing = new CGSize (32, 32);
+
+ int i = 0;
+ foreach (StorageTypeInfo storage_type in SparkleShare.Controller.FetcherAvailableStorageTypes) {
+ Matrix.Cells [i].Title = " " + storage_type.Name;
+
+ NSTextField storage_type_description = new SparkleLabel (storage_type.Description, NSTextAlignment.Left) {
+ TextColor = NSColor.DisabledControlText,
+ Frame = new CGRect (223, Frame.Height - 190 - (68 * i), 256, 32)
+ };
+
+ storage_type_descriptions.Add (storage_type_description);
+ ContentView.AddSubview (storage_type_description);
+
+ i++;
+ }
+
+ ContentView.AddSubview (Matrix);
+
+
+ CancelButton = new NSButton () { Title = "Cancel" };
+ ContinueButton = new NSButton () { Title = "Continue" };
+
+ ContinueButton.Activated += delegate {
+ StorageTypeInfo selected_storage_type = SparkleShare.Controller.FetcherAvailableStorageTypes [(int) Matrix.SelectedRow];
+ Controller.StoragePageCompleted (selected_storage_type.Type);
+ };
+
+ CancelButton.Activated += delegate { Controller.SyncingCancelled (); };
+
+ Buttons.Add (ContinueButton);
+ Buttons.Add (CancelButton);
+
+
+ NSApplication.SharedApplication.RequestUserAttention (NSRequestUserAttentionType.CriticalRequest);
+ }
+
if (type == PageType.CryptoSetup || type == PageType.CryptoPassword) {
if (type == PageType.CryptoSetup) {
Header = "Set up file encryption";
@@ -469,22 +525,22 @@ namespace SparkleShare {
extra_pos_y = 20;
PasswordLabel = new SparkleLabel ("Password:", NSTextAlignment.Right) {
- Frame = new RectangleF (155, Frame.Height - 202 - extra_pos_y, 160, 17),
- Font = NSFont.FromFontName (SparkleUI.FontName + " Bold", NSFont.SystemFontSize)
+ Frame = new CGRect (155, Frame.Height - 204 - extra_pos_y, 160, 17),
+ Font = NSFont.BoldSystemFontOfSize (12)
};
PasswordTextField = new NSSecureTextField () {
- Frame = new RectangleF (320, Frame.Height - 208 - extra_pos_y, 196, 22),
+ Frame = new CGRect (320, Frame.Height - 208 - extra_pos_y, 196, 22),
Delegate = new SparkleTextFieldDelegate ()
};
VisiblePasswordTextField = new NSTextField () {
- Frame = new RectangleF (320, Frame.Height - 208 - extra_pos_y, 196, 22),
+ Frame = new CGRect (320, Frame.Height - 208 - extra_pos_y, 196, 22),
Delegate = new SparkleTextFieldDelegate ()
};
ShowPasswordCheckButton = new NSButton () {
- Frame = new RectangleF (318, Frame.Height - 235 - extra_pos_y, 300, 18),
+ Frame = new CGRect (318, Frame.Height - 235 - extra_pos_y, 300, 18),
Title = "Show password",
State = NSCellStateValue.Off
};
@@ -492,15 +548,15 @@ namespace SparkleShare {
ShowPasswordCheckButton.SetButtonType (NSButtonType.Switch);
WarningImage = NSImage.ImageNamed ("NSInfo");
- WarningImage.Size = new SizeF (24, 24);
+ WarningImage.Size = new CGSize (24, 24);
WarningImageView = new NSImageView () {
Image = WarningImage,
- Frame = new RectangleF (200, Frame.Height - 320, 24, 24)
+ Frame = new CGRect (200, Frame.Height - 320, 24, 24)
};
WarningTextField = new SparkleLabel ("This password can’t be changed later, and your files can’t be recovered if it’s forgotten.", NSTextAlignment.Left) {
- Frame = new RectangleF (235, Frame.Height - 390, 325, 100),
+ Frame = new CGRect (235, Frame.Height - 390, 325, 100),
};
CancelButton = new NSButton () { Title = "Cancel" };
@@ -512,11 +568,11 @@ namespace SparkleShare {
Controller.UpdateCryptoPasswordContinueButtonEvent += delegate (bool button_enabled) {
- Program.Controller.Invoke (() => { ContinueButton.Enabled = button_enabled; });
+ SparkleShare.Controller.Invoke (() => { ContinueButton.Enabled = button_enabled; });
};
Controller.UpdateCryptoSetupContinueButtonEvent += delegate (bool button_enabled) {
- Program.Controller.Invoke (() => { ContinueButton.Enabled = button_enabled; });
+ SparkleShare.Controller.Invoke (() => { ContinueButton.Enabled = button_enabled; });
};
ShowPasswordCheckButton.Activated += delegate {
@@ -581,21 +637,21 @@ namespace SparkleShare {
if (warnings.Length > 0) {
WarningImage = NSImage.ImageNamed ("NSInfo");
- WarningImage.Size = new SizeF (24, 24);
+ WarningImage.Size = new CGSize (24, 24);
WarningImageView = new NSImageView () {
Image = WarningImage,
- Frame = new RectangleF (200, Frame.Height - 175, 24, 24)
+ Frame = new CGRect (200, Frame.Height - 175, 24, 24)
};
WarningTextField = new SparkleLabel (warnings [0], NSTextAlignment.Left);
- WarningTextField.Frame = new RectangleF (235, Frame.Height - 245, 325, 100);
+ WarningTextField.Frame = new CGRect (235, Frame.Height - 245, 325, 100);
ContentView.AddSubview (WarningImageView);
ContentView.AddSubview (WarningTextField);
}
- ShowFilesButton = new NSButton () { Title = "Show Files…" };
+ ShowFilesButton = new NSButton () { Title = "Show Files" };
FinishButton = new NSButton () { Title = "Finish" };
@@ -608,116 +664,6 @@ namespace SparkleShare {
NSApplication.SharedApplication.RequestUserAttention (NSRequestUserAttentionType.CriticalRequest);
}
-
- if (type == PageType.Tutorial) {
- SlideImage = NSImage.ImageNamed ("tutorial-slide-" + Controller.TutorialPageNumber);
- if (SlideImage != null) {
- SlideImage.Size = new SizeF (324, 200);
-
- SlideImageView = new NSImageView () {
- Image = SlideImage,
- Frame = new RectangleF (228, Frame.Height - 350, 324, 200)
- };
-
- ContentView.AddSubview (SlideImageView);
- }
-
- switch (Controller.TutorialPageNumber) {
- case 1: {
- Header = "What’s happening next?";
- Description = "SparkleShare creates a special folder on your computer " +
- "that will keep track of your projects.";
-
- SkipTutorialButton = new NSButton () { Title = "Skip Tutorial" };
- ContinueButton = new NSButton () { Title = "Continue" };
-
-
- SkipTutorialButton.Activated += delegate { Controller.TutorialSkipped (); };
- ContinueButton.Activated += delegate { Controller.TutorialPageCompleted (); };
-
-
- ContentView.AddSubview (SlideImageView);
-
- Buttons.Add (ContinueButton);
- Buttons.Add (SkipTutorialButton);
-
- break;
- }
-
- case 2: {
- Header = "Sharing files with others";
- Description = "All files added to your project folders are synced automatically with " +
- "the host and your team members.";
-
- ContinueButton = new NSButton () { Title = "Continue" };
- ContinueButton.Activated += delegate { Controller.TutorialPageCompleted (); };
- Buttons.Add (ContinueButton);
-
- break;
- }
-
- case 3: {
- Header = "The status icon helps you";
- Description = "It shows the syncing progress, provides easy access to " +
- "your projects, and lets you view recent changes.";
-
- ContinueButton = new NSButton () { Title = "Continue" };
- ContinueButton.Activated += delegate { Controller.TutorialPageCompleted (); };
- Buttons.Add (ContinueButton);
-
- break;
- }
-
- case 4: {
- Header = "Here’s your unique Client ID";
- Description = "You’ll need it whenever you want to link this computer to a host. " +
- "You can also find it in the status icon menu.";
-
- LinkCodeTextField = new NSTextField () {
- StringValue = Program.Controller.CurrentUser.PublicKey,
- Enabled = false,
- Selectable = false,
- Frame = new RectangleF (230, Frame.Height - 238, 246, 22)
- };
-
- LinkCodeTextField.Cell.UsesSingleLineMode = true;
- LinkCodeTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
-
- CopyButton = new NSButton () {
- Title = "Copy",
- BezelStyle = NSBezelStyle.RoundRect,
- Frame = new RectangleF (480, Frame.Height - 238, 60, 22)
- };
-
- StartupCheckButton = new NSButton () {
- Frame = new RectangleF (190, Frame.Height - 400, 300, 18),
- Title = "Add SparkleShare to startup items",
- State = NSCellStateValue.On
- };
-
- StartupCheckButton.SetButtonType (NSButtonType.Switch);
-
- FinishButton = new NSButton () { Title = "Finish" };
-
-
- StartupCheckButton.Activated += delegate {
- Controller.StartupItemChanged (StartupCheckButton.State == NSCellStateValue.On);
- };
-
- CopyButton.Activated += delegate { Controller.CopyToClipboardClicked (); };
- FinishButton.Activated += delegate { Controller.TutorialPageCompleted (); };
-
-
- ContentView.AddSubview (LinkCodeTextField);
- ContentView.AddSubview (CopyButton);
- ContentView.AddSubview (StartupCheckButton);
-
- Buttons.Add (FinishButton);
-
- break;
- }
- }
- }
}
}
@@ -730,28 +676,29 @@ namespace SparkleShare {
int backing_scale_factor;
- public SparkleDataSource (float backing_scale_factor, List<SparklePlugin> plugins)
+ public SparkleDataSource (float backing_scale_factor, List<Preset> presets)
{
Items = new List <object> ();
- Cells = new NSAttributedString [plugins.Count];
- SelectedCells = new NSAttributedString [plugins.Count];
+ Cells = new NSAttributedString [presets.Count];
+ SelectedCells = new NSAttributedString [presets.Count];
this.backing_scale_factor = (int) backing_scale_factor;
int i = 0;
- foreach (SparklePlugin plugin in plugins) {
- Items.Add (plugin);
+ foreach (Preset preset in presets) {
+ Items.Add (preset);
NSTextFieldCell cell = new NSTextFieldCell ();
- NSData name_data = NSData.FromString ("<font face='" + SparkleUI.FontName + "'><b>" + plugin.Name + "</b></font>");
+ NSData name_data = NSData.FromString (
+ "<font face='-apple-system, sans-serif' style='line-height: 140%'><b>" + preset.Name + "</b></font>");
NSDictionary name_dictionary = new NSDictionary();
NSAttributedString name_attributes = new NSAttributedString (
name_data, new NSUrl ("file://"), out name_dictionary);
NSData description_data = NSData.FromString (
- "<small><font style='line-height: 150%' color='#aaa' face='" + SparkleUI.FontName + "'>" + plugin.Description + "</font></small>");
+ "<small><font style='line-height: 150%' color='#aaa' face='-apple-system, sans-serif'>" + preset.Description + "</font></small>");
NSDictionary description_dictionary = new NSDictionary();
NSAttributedString description_attributes = new NSAttributedString (
@@ -767,15 +714,14 @@ namespace SparkleShare {
NSTextFieldCell selected_cell = new NSTextFieldCell ();
NSData selected_name_data = NSData.FromString (
- "<font color='white' face='" + SparkleUI.FontName +"'><b>" + plugin.Name + "</b></font>");
+ "<font color='white' face='-apple-system, sans-serif' style='line-height: 140%'><b>" + preset.Name + "</b></font>");
NSDictionary selected_name_dictionary = new NSDictionary ();
NSAttributedString selected_name_attributes = new NSAttributedString (
selected_name_data, new NSUrl ("file://"), out selected_name_dictionary);
NSData selected_description_data = NSData.FromString (
- "<small><font style='line-height: 150%' color='#9bbaeb' face='" + SparkleUI.FontName + "'>" +
- plugin.Description + "</font></small>");
+ "<small><font style='line-height: 150%' color='#9bbaeb' face='-apple-system, sans-serif'>" + preset.Description + "</font></small>");
NSDictionary selected_description_dictionary = new NSDictionary ();
NSAttributedString selected_description_attributes = new NSAttributedString (
@@ -811,31 +757,28 @@ namespace SparkleShare {
{
if (table_column.HeaderToolTip.Equals ("Description")) {
if (table_view.SelectedRow == row_index &&
- Program.UI.Setup.IsKeyWindow &&
- Program.UI.Setup.FirstResponder == table_view) {
+ SparkleShare.UI.Setup.IsKeyWindow &&
+ SparkleShare.UI.Setup.FirstResponder == table_view) {
return SelectedCells [row_index];
-
- } else {
- return Cells [row_index];
}
- } else {
- SparklePlugin plugin = (SparklePlugin) Items [row_index];
- string path = plugin.ImagePath;
+ return Cells [row_index];
+ }
- if (backing_scale_factor >= 2) {
- string hi_path = String.Format ("{0}@{1}x{2}",
- Path.Combine (Path.GetDirectoryName (path), Path.GetFileNameWithoutExtension (path)),
- backing_scale_factor, Path.GetExtension (path)
- );
+ string image_path = (Items [row_index] as Preset).ImagePath;
- if (File.Exists (hi_path))
- path = hi_path;
- }
+ if (backing_scale_factor >= 2) {
+ string hi_path = String.Format ("{0}@{1}x{2}",
+ Path.Combine (Path.GetDirectoryName (image_path), Path.GetFileNameWithoutExtension (image_path)),
+ backing_scale_factor, Path.GetExtension (image_path)
+ );
- return new NSImage (path) { Size = new SizeF (24, 24) };
+ if (File.Exists (hi_path))
+ image_path = hi_path;
}
+
+ return new NSImage (image_path) { Size = new CGSize (24, 24) };
}
}
diff --git a/SparkleShare/Mac/SparkleSetupWindow.cs b/SparkleShare/Mac/UserInterface/SetupWindow.cs
index a0dcb8a..83ffa54 100755..100644
--- a/SparkleShare/Mac/SparkleSetupWindow.cs
+++ b/SparkleShare/Mac/UserInterface/SetupWindow.cs
@@ -1,5 +1,5 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, an instant update workflow to Git.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -15,64 +15,59 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-using System;
using System.Collections.Generic;
-using System.Drawing;
-using System.IO;
-using MonoMac.Foundation;
-using MonoMac.AppKit;
+using CoreGraphics;
+using Foundation;
+using AppKit;
namespace SparkleShare {
- public class SparkleSetupWindow : NSWindow {
+ public class SetupWindow : NSWindow {
public List <NSButton> Buttons = new List <NSButton> ();
public string Header;
new public string Description;
- private NSImage side_splash;
- private NSImageView side_splash_view;
- private NSTextField header_text_field, description_text_field;
+ NSImage side_splash;
+ NSImageView side_splash_view;
+ NSTextField header_text_field;
+ NSTextField description_text_field;
- public SparkleSetupWindow (IntPtr handle) : base (handle) { }
- public SparkleSetupWindow () : base ()
+ public SetupWindow ()
{
- SetFrame (new RectangleF (0, 0, 640, 420), true);
+ SetFrame (new CGRect (0, 0, 640, 420), true);
StyleMask = NSWindowStyle.Titled;
- MaxSize = new SizeF (640, 420);
- MinSize = new SizeF (640, 420);
+ MaxSize = new CGSize (640, 420);
+ MinSize = new CGSize (640, 420);
HasShadow = true;
+ IsOpaque = false;
BackingType = NSBackingStore.Buffered;
Level = NSWindowLevel.Floating;
Center ();
this.side_splash = NSImage.ImageNamed ("side-splash");
- this.side_splash.Size = new SizeF (150, 482);
+ this.side_splash.Size = new CGSize (150, 482);
this.side_splash_view = new NSImageView () {
Image = this.side_splash,
- Frame = new RectangleF (0, 0, 150, 482)
+ Frame = new CGRect (0, 0, 150, 482)
};
this.header_text_field = new SparkleLabel ("", NSTextAlignment.Left) {
- Frame = new RectangleF (190, Frame.Height - 80, Frame.Width, 24),
- Font = NSFontManager.SharedFontManager.FontWithFamily (
- SparkleUI.FontName, NSFontTraitMask.Bold, 0, 16)
+ Frame = new CGRect (190, Frame.Height - 80, Frame.Width, 24),
+ Font = NSFont.BoldSystemFontOfSize (16)
};
this.description_text_field = new SparkleLabel ("", NSTextAlignment.Left) {
- Frame = new RectangleF (190, Frame.Height - 130, 640 - 240, 44)
+ Frame = new CGRect (190, Frame.Height - 130, 640 - 240, 44)
};
this.header_text_field.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
-
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
}
@@ -103,12 +98,12 @@ namespace SparkleShare {
foreach (NSButton button in Buttons) {
button.BezelStyle = NSBezelStyle.Rounded;
- button.Frame = new RectangleF (Frame.Width - 15 - x - (105 * i), 12, 105, 32);
+ button.Frame = new CGRect (Frame.Width - 15 - x - (105 * i), 12, 105, 32);
// Make the button a bit wider if the text is likely to be longer
if (button.Title.Contains (" ")) {
button.SizeToFit ();
- button.Frame = new RectangleF (Frame.Width - 30 - 15 - (105 * (i - 1)) - button.Frame.Width,
+ button.Frame = new CGRect (Frame.Width - 30 - 15 - (105 * (i - 1)) - button.Frame.Width,
12, button.Frame.Width + 30, 32);
x += 22;
@@ -129,21 +124,15 @@ namespace SparkleShare {
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
MakeKeyAndOrderFront (this);
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
base.OrderFrontRegardless ();
}
public override void PerformClose (NSObject sender)
{
- base.OrderOut (this);
+ OrderOut (this);
NSApplication.SharedApplication.RemoveWindowsItem (this);
- if (Program.UI != null)
- Program.UI.UpdateDockIconVisibility ();
-
return;
}
diff --git a/SparkleShare/Mac/SparkleStatusIcon.cs b/SparkleShare/Mac/UserInterface/StatusIcon.cs
index a925366..2e857b3 100755..100644
--- a/SparkleShare/Mac/SparkleStatusIcon.cs
+++ b/SparkleShare/Mac/UserInterface/StatusIcon.cs
@@ -1,5 +1,5 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// SparkleShare, an instant update workflow to Git.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -17,17 +17,15 @@
using System;
using System.Collections.Generic;
-using System.Drawing;
-using System.IO;
-using MonoMac.Foundation;
-using MonoMac.AppKit;
+using AppKit;
+using CoreGraphics;
namespace SparkleShare {
- public class SparkleStatusIcon {
+ public class StatusIcon {
- public SparkleStatusIconController Controller = new SparkleStatusIconController ();
+ public StatusIconController Controller = new StatusIconController ();
private NSStatusItem status_item = NSStatusBar.SystemStatusBar.CreateStatusItem (28);
private NSMenu menu, submenu, link_code_submenu;
@@ -45,12 +43,12 @@ namespace SparkleShare {
private NSImage syncing_image = NSImage.ImageNamed ("process-syncing");
private NSImage syncing_error_image = NSImage.ImageNamed ("process-syncing-error");
- private NSImage folder_image = NSImage.ImageNamed ("NSFolder");
- private NSImage caution_image = NSImage.ImageNamed ("NSCaution");
+ private NSImage folder_image = NSImage.ImageNamed ("NSFolder");
+ private NSImage caution_image = NSImage.ImageNamed ("NSCaution");
private NSImage sparkleshare_image;
- public SparkleStatusIcon ()
+ public StatusIcon ()
{
this.status_item.HighlightMode = true;
this.status_item.Image = this.syncing_idle_image;
@@ -64,7 +62,7 @@ namespace SparkleShare {
CreateMenu ();
Controller.UpdateIconEvent += delegate (IconState state) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
switch (state) {
case IconState.Idle: { this.status_item.Image = this.syncing_idle_image; break; }
case IconState.SyncingUp: { this.status_item.Image = this.syncing_up_image; break; }
@@ -78,7 +76,7 @@ namespace SparkleShare {
};
Controller.UpdateStatusItemEvent += delegate (string state_text) {
- Program.Controller.Invoke (() => {
+ SparkleShare.Controller.Invoke (() => {
this.state_item.Title = state_text;
if (Controller.Projects.Length == this.state_menu_items.Length) {
@@ -92,11 +90,11 @@ namespace SparkleShare {
while (this.menu_delegate.MenuIsOpen)
System.Threading.Thread.Sleep (100);
- Program.Controller.Invoke (() => CreateMenu ());
+ SparkleShare.Controller.Invoke (() => CreateMenu ());
};
Controller.UpdateQuitItemEvent += delegate (bool quit_item_enabled) {
- Program.Controller.Invoke (() => { this.quit_item.Enabled = quit_item_enabled; });
+ SparkleShare.Controller.Invoke (() => { this.quit_item.Enabled = quit_item_enabled; });
};
}
@@ -116,10 +114,10 @@ namespace SparkleShare {
};
this.folder_item.Image = this.sparkleshare_image;
- this.folder_item.Image.Size = new SizeF (16, 16);
+ this.folder_item.Image.Size = new CGSize (16, 16);
this.add_item = new NSMenuItem () {
- Title = "Add Hosted Project…",
+ Title = "Sync Remote Project…",
Enabled = true
};
@@ -129,13 +127,13 @@ namespace SparkleShare {
};
this.link_code_item = new NSMenuItem ();
- this.link_code_item.Title = "Client ID";
+ this.link_code_item.Title = "Computer ID";
if (Controller.LinkCodeItemEnabled) {
this.link_code_submenu = new NSMenu ();
this.code_item = new NSMenuItem ();
- this.code_item.Title = Program.Controller.CurrentUser.PublicKey.Substring (0, 20) + "...";
+ this.code_item.Title = SparkleShare.Controller.UserAuthenticationInfo.PublicKey.Substring (0, 20) + "...";
this.copy_item = new NSMenuItem ();
this.copy_item.Title = "Copy to Clipboard";
@@ -203,7 +201,7 @@ namespace SparkleShare {
item.Image = this.caution_image;
this.try_again_menu_items [i] = new NSMenuItem ();
- this.try_again_menu_items [i].Title = "Try Again";
+ this.try_again_menu_items [i].Title = "Retry Sync";
this.try_again_menu_items [i].Activated += Controller.TryAgainDelegate (project.Name);
item.Submenu.AddItem (this.try_again_menu_items [i]);
@@ -219,7 +217,7 @@ namespace SparkleShare {
if (!Controller.Projects [i].HasError)
this.folder_menu_items [i].Activated += Controller.OpenFolderDelegate (project.Name);
- item.Image.Size = new SizeF (16, 16);
+ item.Image.Size = new CGSize (16, 16);
i++;
};
}
diff --git a/SparkleShare/Mac/UserInterface/UserInterface.cs b/SparkleShare/Mac/UserInterface/UserInterface.cs
new file mode 100755
index 0000000..876a178
--- /dev/null
+++ b/SparkleShare/Mac/UserInterface/UserInterface.cs
@@ -0,0 +1,89 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+
+using AppKit;
+using Foundation;
+
+namespace SparkleShare {
+
+ public class UserInterface : AppDelegate {
+
+ public StatusIcon StatusIcon;
+ public EventLog EventLog;
+ public Setup Setup;
+ public Bubbles Bubbles;
+ public About About;
+ public Note Note;
+
+
+ public UserInterface ()
+ {
+ SparkleShare.Controller.Invoke (() => {
+ NSApplication.SharedApplication.ApplicationIconImage = NSImage.ImageNamed ("sparkleshare-app.icns");
+
+ Setup = new Setup ();
+ EventLog = new EventLog ();
+ About = new About ();
+ Note = new Note ();
+ Bubbles = new Bubbles ();
+ StatusIcon = new StatusIcon ();
+ });
+
+ SparkleShare.Controller.UIHasLoaded ();
+ }
+
+
+ public void Run (string [] args)
+ {
+ NSApplication.Main (args);
+ }
+
+
+ // To provide the right font in web views
+ public static string FontName {
+ get {
+ if (Environment.OSVersion.Version.Major < 14)
+ return "Lucida Grande";
+
+ if (Environment.OSVersion.Version.Major <= 15)
+ return "Helvetica Neue";
+
+ return "SF UI Text";
+ }
+ }
+ }
+
+
+ public partial class AppDelegate : NSApplicationDelegate {
+
+ public override void WillTerminate (NSNotification notification)
+ {
+ SparkleShare.Controller.Quit ();
+ }
+
+
+ public override bool ApplicationShouldHandleReopen (NSApplication sender, bool has_visible_windows)
+ {
+ if (!has_visible_windows)
+ SparkleShare.Controller.HandleReopen ();
+
+ return true;
+ }
+ }
+}
diff --git a/SparkleShare/Mac/SparkleMacWatcher.cs b/SparkleShare/Mac/Watcher.cs
index 0046cb3..e8de3ae 100755
--- a/SparkleShare/Mac/SparkleMacWatcher.cs
+++ b/SparkleShare/Mac/Watcher.cs
@@ -1,6 +1,6 @@
-// Originally taken from:
+// Originally taken from:
// https://github.com/jesse99/Continuum/blob/master/source/shared/DirectoryWatcher.cs
-// Modified to use MonoMac and integrate into SparkleShare
+// Modified to use Xamarin.Mac and integrate into SparkleShare
//
// Copyright (C) 2008 Jesse Jones
// Copyright (C) 2012 Hylke Bons
@@ -27,14 +27,10 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Runtime.InteropServices;
using System.IO;
-using System.Threading;
-using System.Timers;
-using MonoMac.AppKit;
-using MonoMac.Foundation;
+using Foundation;
namespace SparkleShare {
diff --git a/SparkleShare/Mac/checkGit.sh b/SparkleShare/Mac/checkGit.sh
index d64a083..c882fbe 100755
--- a/SparkleShare/Mac/checkGit.sh
+++ b/SparkleShare/Mac/checkGit.sh
@@ -13,25 +13,17 @@ function abspath()
export projectFolder=$(dirname $0)
export projectFolder=$(abspath ${projectFolder})
-
-export gitVersion=$(cat ${projectFolder}/git.version)
+export gitDownload=$(cat ${projectFolder}/git.download)
set -e
-if [ ! -f ${projectFolder}/git-${gitVersion}.tar.gz ]
+if [ ! -f ${projectFolder}/git.tar.gz ]
then
- curl -s https://codeload.github.com/git/git/zip/v${gitVersion} > git.zip
- unzip -q git.zip
-
- cd git-${gitVersion}
-
- make configure
- ./configure --prefix=${projectFolder}/git
- make install
- cd ..
+ curl -s -L ${gitDownload} > git.tar.gz
+ test -e git.tar.gz || { echo "Failed to download git"; exit 1; }
- tar cfz git-${gitVersion}.tar.gz git
- rm -rf git
- rm -rf git-${gitVersion}
- rm git.zip
+ mkdir git/
+ tar xzf git.tar.gz --directory git/
+ tar czf git.tar.gz git/
+ rm -rf git/
fi
diff --git a/SparkleShare/Mac/config b/SparkleShare/Mac/config
index e15ba99..8313843 100644
--- a/SparkleShare/Mac/config
+++ b/SparkleShare/Mac/config
@@ -1,30 +1,2 @@
<configuration>
- <dllmap dll="i:cygwin1.dll" target="libc.dylib" os="!windows" />
- <dllmap dll="libc" target="libc.dylib" os="!windows"/>
- <dllmap dll="intl" target="libintl.dylib" os="!windows"/>
- <dllmap dll="intl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
- <dllmap dll="libintl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
- <dllmap dll="libintl" target="libintl.dylib" os="!windows"/>
- <dllmap dll="i:libxslt.dll" target="libxslt.dylib" os="!windows"/>
- <dllmap dll="i:odbc32.dll" target="libodbc.dylib" os="!windows"/>
- <dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
- <dllmap dll="oci" target="libclntsh.dylib" os="!windows"/>
- <dllmap dll="db2cli" target="libdb2_36.dylib" os="!windows"/>
- <dllmap dll="MonoPosixHelper" target="libMonoPosixHelper.dylib" os="!windows" />
- <dllmap dll="i:msvcrt" target="libc.dylib" os="!windows"/>
- <dllmap dll="i:msvcrt.dll" target="libc.dylib" os="!windows"/>
- <dllmap dll="sqlite" target="libsqlite.0.dylib" os="!windows"/>
- <dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="!windows"/>
- <dllmap dll="libX11" target="/usr/X11R6/lib/libX11.dylib" os="!windows" />
- <dllmap dll="libcairo-2.dll" target="libcairo.2.dylib" os="!windows"/>
- <dllmap dll="libcups" target="libcups.so.2" os="!windows"/>
- <dllmap dll="i:kernel32.dll">
- <dllentry dll="__Internal" name="CopyMemory" target="mono_win32_compat_CopyMemory"/>
- <dllentry dll="__Internal" name="FillMemory" target="mono_win32_compat_FillMemory"/>
- <dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
- <dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
- </dllmap>
- <dllmap dll="gdiplus.dll" target="libgdiplus.dylib" />
- <dllmap dll="gdiplus" target="libgdiplus.dylib" />
</configuration>
-
diff --git a/SparkleShare/Mac/git.download b/SparkleShare/Mac/git.download
new file mode 100644
index 0000000..556ff9a
--- /dev/null
+++ b/SparkleShare/Mac/git.download
@@ -0,0 +1 @@
+https://github.com/desktop/dugite-native/releases/download/v2.15.1-rc2/dugite-native-v2.15.1-macOS-56.tar.gz
diff --git a/SparkleShare/Mac/git.version b/SparkleShare/Mac/git.version
deleted file mode 100644
index 05fc3da..0000000
--- a/SparkleShare/Mac/git.version
+++ /dev/null
@@ -1 +0,0 @@
-1.8.5.5
diff --git a/SparkleShare/Mac/packReleaseDist.sh b/SparkleShare/Mac/packReleaseDist.sh
index 171811d..6305f7b 100755
--- a/SparkleShare/Mac/packReleaseDist.sh
+++ b/SparkleShare/Mac/packReleaseDist.sh
@@ -14,11 +14,6 @@ export PATH=/usr/local/bin:/opt/local/bin:/Library/Frameworks/Mono.framework/Ver
cd ${bundle}/Contents/MonoBundle/
-# add / fix dependency libMonoPosixHelper
-cp ${MONO_PATH}/lib/libMonoPosixHelper.dylib ../MacOS/
-sed -i .bak 's/libMonoPosixHelper.dylib/@executable_path\/libMonoPosixHelper.dylib/' ./config
-
# merge all Assemblies into one Mac binary
-mkbundle --static --deps --config ./config -o ../MacOS/SparkleShare SparkleShare.exe SparkleLib.dll MonoMac.dll SparkleLib.Git.dll
+mkbundle --static --deps --config ./config -o ../MacOS/SparkleShare SparkleShare.exe Sparkles.dll Xamarin.Mac.dll Sparkles.Git.dll
rm *.dll *.exe
-
diff --git a/SparkleShare/Mac/postBuild.sh b/SparkleShare/Mac/postBuild.sh
index 643f33a..6fe1222 100755
--- a/SparkleShare/Mac/postBuild.sh
+++ b/SparkleShare/Mac/postBuild.sh
@@ -1,15 +1,14 @@
#!/bin/sh
-# expect path to app bundle argument
+# Expect path to app bundle argument
export bundle=$1
export projectFolder=$(dirname $0)
-export gitVersion=$(cat ${projectFolder}/git.version)
-echo postprocessing ${bundle}
+echo Postprocessing ${bundle}...
export PATH=/usr/local/bin:/opt/local/bin:/Library/Frameworks/Mono.framework/Versions/Current/bin:/usr/bin:/bin
${projectFolder}/checkGit.sh
-tar -x -f ${projectFolder}/git-${gitVersion}.tar.gz -C ${bundle}/Contents/Resources
+tar -x -f ${projectFolder}/git.tar.gz --directory ${bundle}/Contents/Resources
cp -R SparkleShareInviteOpener.app ${bundle}/Contents/Resources
cp config ${bundle}/Contents/MonoBundle
diff --git a/SparkleShare/SparkleExtensions.cs b/SparkleShare/SparkleExtensions.cs
deleted file mode 100644
index 2ae8660..0000000
--- a/SparkleShare/SparkleExtensions.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using System.IO;
-
-namespace SparkleShare {
-
- public static class Extensions {
-
- public static string Combine (this string [] parts)
- {
- string new_path = "";
-
- foreach (string part in parts)
- new_path = Path.Combine (new_path, part);
-
- return new_path;
- }
- }
-}
diff --git a/SparkleShare/SparkleInvite.cs b/SparkleShare/SparkleInvite.cs
deleted file mode 100644
index 7ce67eb..0000000
--- a/SparkleShare/SparkleInvite.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using System.IO;
-using System.Net;
-using System.Text;
-using System.Xml;
-
-using SparkleLib;
-
-namespace SparkleShare {
-
- public class SparkleInvite : XmlDocument {
-
- public string Address { get; private set; }
- public string RemotePath { get; private set; }
- public string Fingerprint { get; private set; }
- public string AcceptUrl { get; private set; }
- public string AnnouncementsUrl { get; private set; }
-
- public bool IsValid {
- get {
- return (!string.IsNullOrEmpty (Address) && !string.IsNullOrEmpty (RemotePath));
- }
- }
-
-
- public SparkleInvite (string xml_file_path) : base ()
- {
- try {
- Load (xml_file_path);
-
- } catch (XmlException e) {
- SparkleLogger.LogInfo ("Invite", "Error parsing XML", e);
- return;
- }
-
- Address = ReadField ("address");
- RemotePath = ReadField ("remote_path");
- AcceptUrl = ReadField ("accept_url");
- AnnouncementsUrl = ReadField ("announcements_url");
- Fingerprint = ReadField ("fingerprint");
- }
-
-
- public bool Accept (string public_key)
- {
- #if __MonoCS__
- ServicePointManager.ServerCertificateValidationCallback = delegate {
- return true;
- };
- #endif
-
- if (string.IsNullOrEmpty (AcceptUrl))
- return true;
-
- string post_data = "public_key=" + Uri.EscapeDataString (public_key);
- byte [] post_bytes = Encoding.UTF8.GetBytes (post_data);
-
- WebRequest request = WebRequest.Create (AcceptUrl);
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.ContentLength = post_bytes.Length;
-
- Stream data_stream = request.GetRequestStream ();
- data_stream.Write (post_bytes, 0, post_bytes.Length);
- data_stream.Close ();
-
- HttpWebResponse response = null;
-
- try {
- response = (HttpWebResponse) request.GetResponse ();
- response.Close ();
-
- } catch (WebException e) {
- SparkleLogger.LogInfo ("Invite", "Failed uploading public key to " + AcceptUrl + "", e);
- return false;
- }
-
- if (response != null && response.StatusCode == HttpStatusCode.OK) {
- SparkleLogger.LogInfo ("Invite", "Uploaded public key to " + AcceptUrl);
- return true;
- }
-
- return false;
- }
-
-
- private string ReadField (string name)
- {
- try {
- XmlNode node = SelectSingleNode ("/sparkleshare/invite/" + name + "/text()");
-
- if (node != null)
- return node.Value;
- else
- return "";
-
- } catch (XmlException e) {
- SparkleLogger.LogInfo ("Invite", "Error reading field '" + name + "'", e);
- return "";
- }
- }
- }
-} \ No newline at end of file
diff --git a/SparkleShare/SparkleKeys.cs b/SparkleShare/SparkleKeys.cs
deleted file mode 100644
index c30b575..0000000
--- a/SparkleShare/SparkleKeys.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Diagnostics;
-using System.IO;
-
-using SparkleLib;
-
-namespace SparkleShare {
-
- public static class SparkleKeys {
-
- public static string [] GenerateKeyPair (string output_path, string key_name)
- {
- key_name += ".key";
- string key_file_path = Path.Combine (output_path, key_name);
-
- if (File.Exists (key_file_path)) {
- SparkleLogger.LogInfo ("Auth", "A key pair exists ('" + key_name + "'), leaving it untouched");
- return new string [] { key_file_path, key_file_path + ".pub" };
- }
-
- string computer_name = System.Net.Dns.GetHostName ();
-
- if (computer_name.EndsWith (".local"))
- computer_name = computer_name.Substring (0, computer_name.Length - 6);
-
- string arguments = "-t rsa " + // crypto type
- "-b 4096 " + // key size
- "-P \"\" " + // empty password
- "-C \"" + computer_name + " (SparkleShare)\" " + // key comment
- "-f \"" + key_name + "\""; // file name
-
- SparkleKeyProcess process = new SparkleKeyProcess ("ssh-keygen", arguments);
- process.StartInfo.WorkingDirectory = output_path;
- process.Start ();
- process.WaitForExit ();
-
- if (process.ExitCode == 0)
- SparkleLogger.LogInfo ("Auth", "Created keypair '" + key_file_path + "'");
- else
- SparkleLogger.LogInfo ("Auth", "Could not create key pair '" + key_file_path + "'");
-
- return new string [] { key_file_path, key_file_path + ".pub" };
- }
-
-
- public static void ImportPrivateKey (string key_file_path)
- {
- // Use forward slashes when dealing with Windows domain accounts
- if (key_file_path.StartsWith ("\\\\"))
- key_file_path = key_file_path.Replace ("\\", "/");
-
- SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "\"" + key_file_path + "\"");
- process.Start ();
- process.WaitForExit ();
-
- if (process.ExitCode == 0)
- SparkleLogger.LogInfo ("Auth", "Imported key '" + key_file_path + "'");
- else
- SparkleLogger.LogInfo ("Auth", "Could not import key '" + key_file_path + "', " +
- process.StandardError.ReadToEnd ());
- }
-
-
- public static void ListPrivateKeys ()
- {
- SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "-l");
- process.Start ();
- string keys_in_use = process.StandardOutput.ReadToEnd ();
- process.WaitForExit ();
-
- SparkleLogger.LogInfo ("Auth", "The following keys may be used:\n" + keys_in_use.Trim ());
- }
-
-
- private class SparkleKeyProcess : Process {
-
- public SparkleKeyProcess (string command, string arguments) : base ()
- {
- StartInfo.FileName = command;
- StartInfo.Arguments = arguments;
- StartInfo.UseShellExecute = false;
- StartInfo.RedirectStandardOutput = true;
- StartInfo.RedirectStandardError = true;
- StartInfo.CreateNoWindow = true;
- }
- }
- }
-}
diff --git a/SparkleShare/SparklePlugin.cs b/SparkleShare/SparklePlugin.cs
deleted file mode 100644
index c80d2d8..0000000
--- a/SparkleShare/SparklePlugin.cs
+++ /dev/null
@@ -1,123 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using System.Xml;
-
-using IO = System.IO;
-
-namespace SparkleShare {
-
- public class SparklePlugin : XmlDocument {
-
- public static string PluginsPath = "";
-
- public static string LocalPluginsPath = IO.Path.Combine (
- Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "sparkleshare", "plugins");
-
- new public string Name { get { return GetValue ("info", "name"); } }
- public string Description { get { return GetValue ("info", "description"); } }
- public string Backend { get { return GetValue ("info", "backend"); } }
- public string Fingerprint { get { return GetValue ("info", "fingerprint"); } }
- public string AnnouncementsUrl { get { return GetValue ("info", "announcements_url"); } }
- public string Address { get { return GetValue ("address", "value"); } }
- public string AddressExample { get { return GetValue ("address", "example"); } }
- public string Path { get { return GetValue ("path", "value"); } }
- public string PathExample { get { return GetValue ("path", "example"); } }
-
- public string ImagePath {
- get {
- string image_file_name = GetValue ("info", "icon");
- string image_path = IO.Path.Combine (this.plugin_directory, image_file_name);
-
- if (IO.File.Exists (image_path))
- return image_path;
- else
- return IO.Path.Combine (PluginsPath, image_file_name);
- }
- }
-
- public bool PathUsesLowerCase {
- get {
- string uses_lower_case = GetValue ("path", "uses_lower_case");
-
- if (!string.IsNullOrEmpty (uses_lower_case))
- return uses_lower_case.Equals (bool.TrueString);
- else
- return false;
- }
- }
-
- private string plugin_directory;
-
-
- public SparklePlugin (string plugin_path)
- {
- this.plugin_directory = System.IO.Path.GetDirectoryName (plugin_path);
- Load (plugin_path);
- }
-
-
- public static SparklePlugin Create (string name, string description, string address_value,
- string address_example, string path_value, string path_example)
- {
- string plugin_path = System.IO.Path.Combine (LocalPluginsPath, name + ".xml");
-
- if (IO.File.Exists (plugin_path))
- return null;
-
- string plugin_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
- "<sparkleshare>" +
- " <plugin>" +
- " <info>" +
- " <name>" + name + "</name>" +
- " <description>" + description + "</description>" +
- " <icon>own-server.png</icon>" +
- " </info>" +
- " <address>" +
- " <value>" + address_value + "</value>" +
- " <example>" + address_example + "</example>" +
- " </address>" +
- " <path>" +
- " <value>" + path_value + "</value>" +
- " <example>" + path_example + "</example>" +
- " </path>" +
- " </plugin>" +
- "</sparkleshare>";
-
- plugin_xml = plugin_xml.Replace ("<value></value>", "<value/>");
- plugin_xml = plugin_xml.Replace ("<example></example>", "<example/>");
-
- if (!IO.Directory.Exists (LocalPluginsPath))
- IO.Directory.CreateDirectory (LocalPluginsPath);
-
- IO.File.WriteAllText (plugin_path, plugin_xml);
- return new SparklePlugin (plugin_path);
- }
-
-
- private string GetValue (string a, string b)
- {
- XmlNode node = SelectSingleNode ("/sparkleshare/plugin/" + a + "/" + b + "/text()");
-
- if (node != null && !string.IsNullOrEmpty (node.Value))
- return node.Value;
- else
- return null;
- }
- }
-} \ No newline at end of file
diff --git a/SparkleShare/Windows/Pixmaps/folder.png b/SparkleShare/Windows/Images/folder.png
index 46fa475..46fa475 100644
--- a/SparkleShare/Windows/Pixmaps/folder.png
+++ b/SparkleShare/Windows/Images/folder.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-down.png b/SparkleShare/Windows/Images/process-syncing-down.png
index f5bd436..f5bd436 100644
--- a/SparkleShare/Windows/Pixmaps/process-syncing-down.png
+++ b/SparkleShare/Windows/Images/process-syncing-down.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-error.png b/SparkleShare/Windows/Images/process-syncing-error.png
index ee81060..ee81060 100644
--- a/SparkleShare/Windows/Pixmaps/process-syncing-error.png
+++ b/SparkleShare/Windows/Images/process-syncing-error.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-idle.png b/SparkleShare/Windows/Images/process-syncing-idle.png
index 7856e12..7856e12 100644
--- a/SparkleShare/Windows/Pixmaps/process-syncing-idle.png
+++ b/SparkleShare/Windows/Images/process-syncing-idle.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-up.png b/SparkleShare/Windows/Images/process-syncing-up.png
index 56b8f23..56b8f23 100644
--- a/SparkleShare/Windows/Pixmaps/process-syncing-up.png
+++ b/SparkleShare/Windows/Images/process-syncing-up.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/process-syncing.png b/SparkleShare/Windows/Images/process-syncing.png
index 9f9df04..9f9df04 100644
--- a/SparkleShare/Windows/Pixmaps/process-syncing.png
+++ b/SparkleShare/Windows/Images/process-syncing.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-app.ico b/SparkleShare/Windows/Images/sparkleshare-app.ico
index 73917b1..73917b1 100644
--- a/SparkleShare/Windows/Pixmaps/sparkleshare-app.ico
+++ b/SparkleShare/Windows/Images/sparkleshare-app.ico
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico b/SparkleShare/Windows/Images/sparkleshare-folder.ico
index e00ebf4..e00ebf4 100644
--- a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico
+++ b/SparkleShare/Windows/Images/sparkleshare-folder.ico
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.png b/SparkleShare/Windows/Images/sparkleshare-folder.png
index f44e363..f44e363 100644
--- a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.png
+++ b/SparkleShare/Windows/Images/sparkleshare-folder.png
Binary files differ
diff --git a/SparkleShare/Windows/Pixmaps/tutorial-slide-3.png b/SparkleShare/Windows/Images/tutorial-slide-3.png
index be651b0..be651b0 100644
--- a/SparkleShare/Windows/Pixmaps/tutorial-slide-3.png
+++ b/SparkleShare/Windows/Images/tutorial-slide-3.png
Binary files differ
diff --git a/SparkleShare/Windows/README.md b/SparkleShare/Windows/README.md
index 17ff4a6..c85784e 100644
--- a/SparkleShare/Windows/README.md
+++ b/SparkleShare/Windows/README.md
@@ -6,7 +6,7 @@ You can choose to build SparkleShare from source or to run the Windows installer
Install version 4.0 of the [.NET Framework](http://www.microsoft.com/download/en/details.aspx?id=17851) if you haven't already.
-Install [msysGit](http://msysgit.github.io/) and copy the contents of the install folder
+Install [msysGit](https://github.com/msysgit/msysgit/releases) and copy the contents of the install folder
(`C:\Program Files (x86)\Git` by default) to `C:\path\to\SparkleShare-sources\bin\msysgit\` (create the "bin"-folder in the SparkleShare source directory).
Open a command prompt and execute the following:
@@ -34,7 +34,7 @@ This will create `SparkleShare.msi` in the same directory.
### Resetting SparkleShare settings
-Remove `My Documents\SparkleShare` and `AppData\Roaming\sparkleshare` (`AppData` is hidden by default).
+Remove `My Documents\SparkleShare` and `AppData\Roaming\org.sparkleshare.SparkleShare` (`AppData` is hidden by default).
### Uninstalling
diff --git a/SparkleShare/Windows/SparkleController.cs b/SparkleShare/Windows/SparkleController.cs
deleted file mode 100644
index ed9a65f..0000000
--- a/SparkleShare/Windows/SparkleController.cs
+++ /dev/null
@@ -1,270 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading;
-using Forms = System.Windows.Forms;
-
-using Microsoft.Win32;
-using SparkleLib;
-using System.Windows;
-
-
-namespace SparkleShare {
-
- public class SparkleController : SparkleControllerBase {
-
- private int ssh_agent_pid;
-
-
- public SparkleController () : base ()
- {
- }
-
-
- public override string PluginsPath
- {
- get {
- return Path.Combine (Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location), "plugins");
- }
- }
-
-
- public override void Initialize ()
- {
- // Add msysgit to path, as we cannot asume it is added to the path
- // Asume it is installed in @"<exec dir>\msysgit\bin"
- string executable_path = Path.GetDirectoryName (Forms.Application.ExecutablePath);
- string msysgit_path = Path.Combine (executable_path, "msysgit");
-
-
- string new_PATH = msysgit_path + @"\bin" + ";" +
- msysgit_path + @"\mingw\bin" + ";" +
- msysgit_path + @"\cmd" + ";" +
- Environment.ExpandEnvironmentVariables ("%PATH%");
-
- Environment.SetEnvironmentVariable ("PATH", new_PATH);
- Environment.SetEnvironmentVariable ("HOME", Environment.GetFolderPath (Environment.SpecialFolder.UserProfile));
-
- StartSSH ();
- SparkleLib.Git.SparkleGit.SSHPath = Path.Combine (msysgit_path, "bin", "ssh.exe");
-
- base.Initialize ();
- }
-
-
- public override string EventLogHTML {
- get {
- string html = SparkleUIHelpers.GetHTML ("event-log.html");
- return html.Replace ("<!-- $jquery -->", SparkleUIHelpers.GetHTML ("jquery.js"));
- }
- }
-
-
- public override string DayEntryHTML {
- get {
- return SparkleUIHelpers.GetHTML ("day-entry.html");
- }
- }
-
-
- public override string EventEntryHTML {
- get {
- return SparkleUIHelpers.GetHTML ("event-entry.html");
- }
- }
-
-
- public override void CreateStartupItem ()
- {
- string startup_folder_path = Environment.GetFolderPath (Environment.SpecialFolder.Startup);
- string shortcut_path = Path.Combine (startup_folder_path, "SparkleShare.lnk");
-
- if (File.Exists (shortcut_path))
- File.Delete (shortcut_path);
-
- string shortcut_target = Forms.Application.ExecutablePath;
-
- Shortcut shortcut = new Shortcut ();
- shortcut.Create (shortcut_path, shortcut_target);
- }
-
-
- public override void InstallProtocolHandler ()
- {
- // We ship a separate .exe for this
- }
-
-
- public override void AddToBookmarks ()
- {
- string user_profile_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile);
- string shortcut_path = Path.Combine (user_profile_path, "Links", "SparkleShare.lnk");
-
- if (File.Exists (shortcut_path))
- File.Delete (shortcut_path);
-
- Shortcut shortcut = new Shortcut ();
- shortcut.Create (FoldersPath, shortcut_path);
- }
-
-
- public override bool CreateSparkleShareFolder ()
- {
- if (Directory.Exists (FoldersPath))
- return false;
-
- Directory.CreateDirectory (FoldersPath);
-
- File.SetAttributes (FoldersPath, File.GetAttributes (FoldersPath) | FileAttributes.System);
- SparkleLogger.LogInfo ("Config", "Created '" + FoldersPath + "'");
-
- string app_path = Path.GetDirectoryName (Forms.Application.ExecutablePath);
- string icon_file_path = Path.Combine (app_path, "Pixmaps", "sparkleshare-folder.ico");
-
- if (!File.Exists (icon_file_path)) {
- string ini_file_path = Path.Combine (FoldersPath, "desktop.ini");
- string n = Environment.NewLine;
-
- string ini_file = "[.ShellClassInfo]" + n +
- "IconFile=" + icon_file_path + n +
- "IconIndex=0" + n +
- "InfoTip=SparkleShare";
-
- try {
- File.Create (ini_file_path).Close ();
- File.WriteAllText (ini_file_path, ini_file);
-
- File.SetAttributes (ini_file_path,
- File.GetAttributes (ini_file_path) | FileAttributes.Hidden | FileAttributes.System);
-
- } catch (IOException e) {
- SparkleLogger.LogInfo ("Config", "Failed setting icon for '" + FoldersPath + "': " + e.Message);
- }
-
- return true;
- }
-
- return false;
- }
-
-
- public override void OpenFile (string path)
- {
- Process.Start (path);
- }
-
-
- public override void OpenFolder (string path)
- {
- Process.Start (path);
- }
-
-
- public override void OpenWebsite (string url)
- {
- Process.Start (new ProcessStartInfo (url));
- }
-
-
- public override void CopyToClipboard (string text)
- {
- try {
- Clipboard.SetData (DataFormats.Text, text);
-
- } catch (COMException e) {
- SparkleLogger.LogInfo ("Controller", "Copy to clipboard failed", e);
- }
- }
-
-
- public override void Quit ()
- {
- StopSSH ();
- base.Quit ();
- }
-
-
- private void StartSSH ()
- {
- string auth_agent_pid = Environment.GetEnvironmentVariable ("SSH_AGENT_PID");
-
- if (!string.IsNullOrEmpty (auth_agent_pid)) {
- SparkleLogger.LogInfo ("Controller", "Trying to use existing ssh-agent with PID=" + auth_agent_pid + "...");
- this.ssh_agent_pid = Convert.ToInt32 (auth_agent_pid);
-
- try {
- Process ssh_agent = Process.GetProcessById (this.ssh_agent_pid);
- SparkleLogger.LogInfo ("Controller", "Using existing ssh-agent with PID=" + this.ssh_agent_pid);
-
- return;
-
- } catch (ArgumentException) {
- SparkleLogger.LogInfo ("Controller", "ssh-agent with PID=" + auth_agent_pid + " does not exist. Starting a new one...");
- }
- }
-
- Process process = new Process ();
- process.StartInfo.FileName = "ssh-agent";
- process.StartInfo.UseShellExecute = false;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.CreateNoWindow = true;
-
- process.Start ();
-
- string output = process.StandardOutput.ReadToEnd ();
- process.WaitForExit ();
-
- Match auth_sock_match = new Regex (@"SSH_AUTH_SOCK=([^;\n\r]*)").Match (output);
- Match ssh_pid_match = new Regex (@"SSH_AGENT_PID=([^;\n\r]*)").Match (output);
-
- if (auth_sock_match.Success)
- Environment.SetEnvironmentVariable ("SSH_AUTH_SOCK", auth_sock_match.Groups [1].Value);
-
- if (ssh_pid_match.Success) {
- Int32.TryParse (ssh_pid_match.Groups [1].Value, out this.ssh_agent_pid);
- Environment.SetEnvironmentVariable ("SSH_AGENT_PID", "" + this.ssh_agent_pid);
-
- SparkleLogger.LogInfo ("Controller", "ssh-agent started, PID=" + this.ssh_agent_pid);
-
- } else {
- SparkleLogger.LogInfo ("Controller", "Could not start ssh-agent:" + output);
- }
- }
-
-
- private void StopSSH ()
- {
- if (this.ssh_agent_pid == 0)
- return;
-
- try {
- Process.GetProcessById (this.ssh_agent_pid).Kill ();
-
- } catch (ArgumentException e) {
- SparkleLogger.LogInfo ("SSH", "Could not stop ssh-agent: " + e.Message);
- }
- }
- }
-}
diff --git a/SparkleShare/Windows/SparkleEventLog.cs b/SparkleShare/Windows/SparkleEventLog.cs
deleted file mode 100644
index 7938d77..0000000
--- a/SparkleShare/Windows/SparkleEventLog.cs
+++ /dev/null
@@ -1,372 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-using System;
-using System.ComponentModel;
-using System.IO;
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-using System.Threading;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-
-using Microsoft.Win32;
-using Shapes = System.Windows.Shapes;
-
-using SparkleLib;
-
-namespace SparkleShare {
-
- public class SparkleEventLog : Window {
-
- public SparkleEventLogController Controller = new SparkleEventLogController ();
-
- private Canvas canvas;
- private Label size_label_value;
- private Label history_label_value;
- private ComboBox combo_box;
- private WebBrowser web_browser;
- private SparkleSpinner spinner;
-
-
- public SparkleEventLog ()
- {
- Title = "Recent Changes";
- Height = 640;
- Width = 480;
- ResizeMode = ResizeMode.NoResize; // TODO
- Background = new SolidColorBrush (Color.FromRgb (240, 240, 240));
- AllowsTransparency = false;
- Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico");
-
- int x = (int) (SystemParameters.PrimaryScreenWidth * 0.61);
- int y = (int) (SystemParameters.PrimaryScreenHeight * 0.5 - (Height * 0.5));
-
- WindowStartupLocation = WindowStartupLocation.Manual;
- Left = x;
- Top = y;
-
- WriteOutImages ();
-
- Label size_label = new Label () {
- Content = "Size:",
- FontWeight = FontWeights.Bold
- };
-
- this.size_label_value = new Label () {
- Content = Controller.Size
- };
-
- size_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
- Rect size_label_rect = new Rect (size_label.DesiredSize);
-
- Label history_label = new Label () {
- Content = "History:",
- FontWeight = FontWeights.Bold
- };
-
- this.history_label_value = new Label () {
- Content = Controller.HistorySize,
- };
-
- history_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
- Rect history_label_rect = new Rect (history_label.DesiredSize);
-
- Shapes.Rectangle line = new Shapes.Rectangle () {
- Width = Width,
- Height = 1,
- Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223))
- };
-
- Shapes.Rectangle background = new Shapes.Rectangle () {
- Width = Width,
- Height = Height,
- Fill = new SolidColorBrush (Color.FromRgb (250, 250, 250))
- };
-
- this.web_browser = new WebBrowser () {
- Width = Width - 6,
- Height = Height - 64
- };
-
- this.web_browser.ObjectForScripting = new SparkleScriptingObject ();
-
-
- spinner = new SparkleSpinner (22);
-
- // Disable annoying IE clicking sound
- CoInternetSetFeatureEnabled (21, 0x00000002, true);
-
-
- this.canvas = new Canvas ();
- Content = this.canvas;
-
- this.canvas.Children.Add (size_label);
- Canvas.SetLeft (size_label, 24);
- Canvas.SetTop (size_label, 4);
-
- this.canvas.Children.Add (this.size_label_value);
- Canvas.SetLeft (this.size_label_value, 22 + size_label_rect.Width);
- Canvas.SetTop (this.size_label_value, 4);
-
- this.canvas.Children.Add (history_label);
- Canvas.SetLeft (history_label, 130);
- Canvas.SetTop (history_label, 4);
-
- this.canvas.Children.Add (this.history_label_value);
- Canvas.SetLeft (this.history_label_value, 130 + history_label_rect.Width);
- Canvas.SetTop (this.history_label_value, 4);
-
- this.canvas.Children.Add (background);
- Canvas.SetLeft (background, 0);
- Canvas.SetTop (background, 36);
-
- this.canvas.Children.Add (spinner);
- Canvas.SetLeft (spinner, (Width / 2) - 15);
- Canvas.SetTop (spinner, (Height / 2) - 22);
-
- this.canvas.Children.Add (line);
- Canvas.SetLeft (line, 0);
- Canvas.SetTop (line, 35);
-
-
- Closing += Close;
-
- Controller.ShowWindowEvent += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- Show ();
- Activate ();
- BringIntoView ();
- });
- };
-
- Controller.HideWindowEvent += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- Hide ();
-
- if (this.canvas.Children.Contains (this.web_browser))
- this.canvas.Children.Remove (this.web_browser);
- });
- };
-
- Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) {
- Dispatcher.BeginInvoke ((Action) delegate {
- this.size_label_value.Content = size;
- this.size_label_value.UpdateLayout ();
-
- this.history_label_value.Content = history_size;
- this.history_label_value.UpdateLayout ();
- });
- };
-
- Controller.UpdateChooserEvent += delegate (string [] folders) {
- Dispatcher.BeginInvoke ((Action) delegate {
- UpdateChooser (folders);
- });
- };
-
- Controller.UpdateChooserEnablementEvent += delegate (bool enabled) {
- Dispatcher.BeginInvoke ((Action) delegate {
- this.combo_box.IsEnabled = enabled;
- });
- };
-
- Controller.UpdateContentEvent += delegate (string html) {
- Dispatcher.BeginInvoke ((Action) delegate {
- UpdateContent (html);
- });
- };
-
- Controller.ContentLoadingEvent += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- this.spinner.Start ();
-
- if (this.canvas.Children.Contains (this.web_browser))
- this.canvas.Children.Remove (this.web_browser);
- });
- };
-
- Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) {
- Dispatcher.BeginInvoke ((Action) delegate {
- SaveFileDialog dialog = new SaveFileDialog () {
- FileName = file_name,
- InitialDirectory = target_folder_path,
- Title = "Restore from History",
- DefaultExt = "." + Path.GetExtension (file_name),
- Filter = "All Files|*.*"
- };
-
- Nullable<bool> result = dialog.ShowDialog (this);
-
- if (result == true)
- Controller.SaveDialogCompleted (dialog.FileName);
- else
- Controller.SaveDialogCancelled ();
- });
- };
- }
-
-
- public void UpdateChooser (string [] folders)
- {
- if (folders == null)
- folders = Controller.Folders;
-
- if (this.combo_box != null)
- this.canvas.Children.Remove (this.combo_box);
-
- this.combo_box = new ComboBox () {
- Width = 160
- };
-
- ComboBoxItem item = new ComboBoxItem () {
- Content = "Summary"
- };
-
- this.combo_box.Items.Add (item);
- this.combo_box.Items.Add (new Separator ());
-
- this.combo_box.SelectedItem = combo_box.Items [0];
-
- int row = 2;
- foreach (string folder in folders) {
- this.combo_box.Items.Add (
- new ComboBoxItem () { Content = folder }
- );
-
- if (folder.Equals (Controller.SelectedFolder))
- this.combo_box.SelectedItem = combo_box.Items [row];
-
- row++;
- }
-
- this.combo_box.SelectionChanged += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- int index = this.combo_box.SelectedIndex;
-
- if (index == 0)
- Controller.SelectedFolder = null;
- else
- Controller.SelectedFolder = (string)
- (this.combo_box.Items [index] as ComboBoxItem).Content;
- });
- };
-
- this.canvas.Children.Add (combo_box);
- Canvas.SetLeft (this.combo_box, Width - 24 - this.combo_box.Width);
- Canvas.SetTop (this.combo_box, 6);
- }
-
-
- public void UpdateContent (string html)
- {
- string pixmaps_path = Path.Combine (SparkleLib.SparkleConfig.DefaultConfig.TmpPath, "Pixmaps".SHA1 ());
- pixmaps_path = pixmaps_path.Replace ("\\", "/");
-
- html = html.Replace ("<a href=", "<a class='windows' href=");
- html = html.Replace ("<!-- $body-font-family -->", "'Segoe UI', sans-serif");
- html = html.Replace ("<!-- $day-entry-header-font-size -->", "13px");
- html = html.Replace ("<!-- $body-font-size -->", "12px");
- html = html.Replace ("<!-- $secondary-font-color -->", "#bbb");
- html = html.Replace ("<!-- $small-color -->", "#ddd");
- html = html.Replace ("<!-- $small-font-size -->", "90%");
- html = html.Replace ("<!-- $day-entry-header-background-color -->", "#f5f5f5");
- html = html.Replace ("<!-- $a-color -->", "#0085cf");
- html = html.Replace ("<!-- $a-hover-color -->", "#009ff8");
- html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path);
- html = html.Replace ("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png");
- html = html.Replace ("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png");
- html = html.Replace ("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png");
- html = html.Replace ("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png");
-
- this.spinner.Stop ();
-
- this.web_browser.ObjectForScripting = new SparkleScriptingObject ();
- this.web_browser.NavigateToString (html);
-
- if (!this.canvas.Children.Contains (this.web_browser)) {
- this.canvas.Children.Add (this.web_browser);
- Canvas.SetLeft (this.web_browser, 0);
- Canvas.SetTop (this.web_browser, 36);
- }
- }
-
-
- private void WriteOutImages ()
- {
- string tmp_path = SparkleLib.SparkleConfig.DefaultConfig.TmpPath;
- string pixmaps_path = Path.Combine (tmp_path, "Pixmaps".SHA1 ());
-
- if (!Directory.Exists (pixmaps_path)) {
- Directory.CreateDirectory (pixmaps_path);
-
- File.SetAttributes (tmp_path,
- File.GetAttributes (tmp_path) | FileAttributes.Hidden);
- }
-
- BitmapSource image = SparkleUIHelpers.GetImageSource ("user-icon-default");
- string file_path = Path.Combine (pixmaps_path, "user-icon-default.png");
-
- using (FileStream stream = new FileStream (file_path, FileMode.Create))
- {
- BitmapEncoder encoder = new PngBitmapEncoder ();
- encoder.Frames.Add (BitmapFrame.Create (image));
- encoder.Save (stream);
- }
-
- string [] actions = new string [] {"added", "deleted", "edited", "moved"};
-
- foreach (string action in actions) {
- image = SparkleUIHelpers.GetImageSource ("document-" + action + "-12");
- file_path = Path.Combine (pixmaps_path, "document-" + action + "-12.png");
-
- using (FileStream stream = new FileStream (file_path, FileMode.Create))
- {
- BitmapEncoder encoder = new PngBitmapEncoder ();
- encoder.Frames.Add (BitmapFrame.Create (image));
- encoder.Save (stream);
- }
- }
- }
-
-
- private void Close (object sender, CancelEventArgs args)
- {
- Controller.WindowClosed ();
- args.Cancel = true;
- }
-
-
- [DllImport ("urlmon.dll")]
- [PreserveSig]
- [return:MarshalAs (UnmanagedType.Error)]
- static extern int CoInternetSetFeatureEnabled (int feature,
- [MarshalAs (UnmanagedType.U4)] int flags, bool enable);
- }
-
-
- [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
- [ComVisible(true)]
- public class SparkleScriptingObject {
-
- public void LinkClicked (string url)
- {
- Program.UI.EventLog.Controller.LinkClicked (url);
- }
- }
-}
diff --git a/SparkleShare/Windows/SparkleEventLogWindow.xaml b/SparkleShare/Windows/SparkleEventLogWindow.xaml
deleted file mode 100644
index a43d38f..0000000
--- a/SparkleShare/Windows/SparkleEventLogWindow.xaml
+++ /dev/null
@@ -1,38 +0,0 @@
-<Window x:Class="SparkleShare.SparkleEventLogWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:sparkleShare="clr-namespace:SparkleShare"
- mc:Ignorable="d"
- Height="640" SizeToContent="WidthAndHeight" Title="Recent Changes" MinHeight="640" MinWidth="490">
- <Grid x:Name="grid_Base" Background="White">
- <Border VerticalAlignment="Top" Height="35" Background="#FFF0F0F0" BorderBrush="#FFDFDFDF" BorderThickness="0,0,0,1">
- <Grid>
- <Label Content="Size: ?" Height="28" Name="label_Size" HorizontalAlignment="Left" Margin="20,0,0,0" FontWeight="Bold" />
- <Label Content="History: ?" Height="28" Name="label_History" HorizontalAlignment="Left" Margin="100,0,0,0" FontWeight="Bold" />
- <ComboBox HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,6,0" MinWidth="120" x:Name="combobox" />
- </Grid>
- </Border>
-
- <Grid Margin="0, 35, 0, 0">
- <Grid.RowDefinitions>
- <RowDefinition Height="*"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*"></ColumnDefinition>
- <ColumnDefinition Width="Auto"></ColumnDefinition>
- </Grid.ColumnDefinitions>
-
- <sparkleShare:SparkleSpinner x:Name="spinner" />
- <WebBrowser x:Name="webbrowser" Height="{Binding ElementName=sizingControlHeight, Path=ActualHeight}" Width="{Binding ElementName=sizingControlWidth, Path=ActualWidth}" />
-
- <!-- WPF always resizes from child to parent. Unfortunately the webbrowser takes all space it gets.
- To correct this "feature" we use a dummy control in a different column to bind the height to.
- See: http://stackoverflow.com/questions/7300975/prevent-parent-from-being-resized-by-child -->
- <Rectangle Name="sizingControlHeight" Grid.Column="1" Visibility="Hidden" />
- <Rectangle Name="sizingControlWidth" Grid.Column="0" Grid.Row="1" Visibility="Hidden" />
- </Grid>
- </Grid>
-</Window> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs b/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs
deleted file mode 100644
index ac6b581..0000000
--- a/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs
+++ /dev/null
@@ -1,262 +0,0 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.IO;
-using System.Linq;
-using System.Security.Permissions;
-using System.Text;
-using System.Runtime.InteropServices;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-
-using Microsoft.Win32;
-
-namespace SparkleShare
-{
- public partial class SparkleEventLogWindow : Window
- {
- public SparkleEventLogController Controller = new SparkleEventLogController ();
-
- [DllImport("urlmon.dll")]
- [PreserveSig]
- [return: MarshalAs(UnmanagedType.Error)]
- static extern int CoInternetSetFeatureEnabled (int feature, [MarshalAs(UnmanagedType.U4)] int flags, bool enable);
-
-
- public SparkleEventLogWindow ()
- {
- InitializeComponent ();
-
-
- Background = new SolidColorBrush (Color.FromRgb(240, 240, 240));
- AllowsTransparency = false;
- Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico");
- WindowStartupLocation = WindowStartupLocation.CenterScreen;
-
- WriteOutImages ();
-
- this.label_Size.Content = "Size: " + Controller.Size;
- this.label_History.Content = "History: " + Controller.HistorySize;
-
- this.webbrowser.ObjectForScripting = new SparkleScriptingObject ();
-
- // Disable annoying IE clicking sound
- CoInternetSetFeatureEnabled (21, 0x00000002, true);
-
- Closing += this.OnClosing;
-
- Controller.ShowWindowEvent += delegate {
- Dispatcher.BeginInvoke ((Action) (() => {
- Show ();
- Activate ();
- BringIntoView ();
- }));
- };
-
- Controller.HideWindowEvent += delegate {
- Dispatcher.BeginInvoke ((Action) (() => {
- Hide ();
- this.spinner.Visibility = Visibility.Visible;
- this.webbrowser.Visibility = Visibility.Collapsed;
- }));
- };
-
- Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) {
- Dispatcher.BeginInvoke ((Action) (() => {
- this.label_Size.Content = "Size: " + size;
- this.label_History.Content = "History: " + history_size;
- }));
- };
-
- Controller.UpdateChooserEvent += delegate (string [] folders) {
- Dispatcher.BeginInvoke ((Action) (() =>
- UpdateChooser (folders))
- );
- };
-
- Controller.UpdateChooserEnablementEvent += delegate (bool enabled) {
- Dispatcher.BeginInvoke ((Action) (() =>
- this.combobox.IsEnabled = enabled
- ));
- };
-
- Controller.UpdateContentEvent += delegate (string html) {
- Dispatcher.BeginInvoke ((Action) (() => {
- UpdateContent (html);
-
- this.spinner.Visibility = Visibility.Collapsed;
- this.webbrowser.Visibility = Visibility.Visible;
- }));
- };
-
- Controller.ContentLoadingEvent += () => this.Dispatcher.BeginInvoke (
- (Action)(() => {
- this.spinner.Visibility = Visibility.Visible;
- this.spinner.Start ();
- this.webbrowser.Visibility = Visibility.Collapsed;
- }));
-
- Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) {
- Dispatcher.BeginInvoke ((Action) (() => {
- SaveFileDialog dialog = new SaveFileDialog () {
- FileName = file_name,
- InitialDirectory = target_folder_path,
- Title = "Restore from History",
- DefaultExt = "." + Path.GetExtension (file_name),
- Filter = "All Files|*.*"
- };
-
- bool? result = dialog.ShowDialog (this);
-
- if (result == true)
- Controller.SaveDialogCompleted (dialog.FileName);
- else
- Controller.SaveDialogCancelled ();
- }));
- };
- }
-
-
- private void OnClosing (object sender, CancelEventArgs cancel_event_args)
- {
- Controller.WindowClosed ();
- cancel_event_args.Cancel = true;
- }
-
-
- private void UpdateContent (string html)
- {
- string pixmaps_path = Path.Combine (SparkleLib.SparkleConfig.DefaultConfig.TmpPath, "Pixmaps");
- pixmaps_path = pixmaps_path.Replace ("\\", "/");
-
- html = html.Replace ("<a href=", "<a class='windows' href=");
- html = html.Replace ("<!-- $body-font-family -->", "Segoe UI");
- html = html.Replace ("<!-- $day-entry-header-font-size -->", "13px");
- html = html.Replace ("<!-- $body-font-size -->", "12px");
- html = html.Replace ("<!-- $secondary-font-color -->", "#bbb");
- html = html.Replace ("<!-- $small-color -->", "#ddd");
- html = html.Replace ("<!-- $small-font-size -->", "90%");
- html = html.Replace ("<!-- $day-entry-header-background-color -->", "#f5f5f5");
- html = html.Replace ("<!-- $a-color -->", "#0085cf");
- html = html.Replace ("<!-- $a-hover-color -->", "#009ff8");
- html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path);
- html = html.Replace ("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png");
- html = html.Replace ("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png");
- html = html.Replace ("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png");
- html = html.Replace ("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png");
-
- this.spinner.Stop ();
-
- this.webbrowser.ObjectForScripting = new SparkleScriptingObject ();
- this.webbrowser.NavigateToString (html);
- }
-
-
- public void UpdateChooser (string [] folders)
- {
- if (folders == null) {
- folders = Controller.Folders;
- }
-
- this.combobox.Items.Clear ();
- this.combobox.Items.Add (new ComboBoxItem () { Content = "Summary" });
- this.combobox.Items.Add (new Separator ());
- this.combobox.SelectedItem = combobox.Items [0];
-
- int row = 2;
- foreach (string folder in folders) {
- this.combobox.Items.Add (new ComboBoxItem () { Content = folder } );
-
- if (folder.Equals (Controller.SelectedFolder))
- this.combobox.SelectedItem = this.combobox.Items [row];
-
- row++;
- }
-
- this.combobox.SelectionChanged += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- int index = this.combobox.SelectedIndex;
-
- if (index == 0)
- Controller.SelectedFolder = null;
- else
- Controller.SelectedFolder = (string) ((ComboBoxItem) this.combobox.Items [index]).Content;
- });
- };
- }
-
-
- private void WriteOutImages ()
- {
- string tmp_path = SparkleLib.SparkleConfig.DefaultConfig.TmpPath;
- string pixmaps_path = Path.Combine (tmp_path, "Pixmaps");
-
- if (!Directory.Exists (pixmaps_path))
- {
- Directory.CreateDirectory (pixmaps_path);
-
- File.SetAttributes (tmp_path, File.GetAttributes (tmp_path) | FileAttributes.Hidden);
- }
-
- BitmapSource image = SparkleUIHelpers.GetImageSource ("user-icon-default");
- string file_path = Path.Combine (pixmaps_path, "user-icon-default.png");
-
- using (FileStream stream = new FileStream (file_path, FileMode.Create))
- {
- BitmapEncoder encoder = new PngBitmapEncoder ();
- encoder.Frames.Add (BitmapFrame.Create (image));
- encoder.Save (stream);
- }
-
- string[] actions = new string [] { "added", "deleted", "edited", "moved" };
-
- foreach (string action in actions)
- {
- image = SparkleUIHelpers.GetImageSource ("document-" + action + "-12");
- file_path = Path.Combine (pixmaps_path, "document-" + action + "-12.png");
-
- using (FileStream stream = new FileStream (file_path, FileMode.Create))
- {
- BitmapEncoder encoder = new PngBitmapEncoder ();
- encoder.Frames.Add (BitmapFrame.Create(image));
- encoder.Save (stream);
- }
- }
- }
- }
-
-
-
-
-
- [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
- [ComVisible(true)]
- public class SparkleScriptingObject
- {
- public void LinkClicked(string url)
- {
- Program.UI.EventLog.Controller.LinkClicked(url);
- }
- }
-
-
-}
diff --git a/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj b/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj
deleted file mode 100644
index 473b4dc..0000000
--- a/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{7F0DB8D0-E278-4955-8204-FC391B99F7C1}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>SparkleLib.Git</RootNamespace>
- <AssemblyName>SparkleLib.Git</AssemblyName>
- <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <TargetFrameworkProfile />
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\..\..\bin\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\..\..\bin\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\..\..\SparkleLib\Git\SparkleFetcherGit.cs">
- <Link>SparkleFetcherGit.cs</Link>
- </Compile>
- <Compile Include="..\..\..\..\SparkleLib\Git\SparkleGit.cs">
- <Link>SparkleGit.cs</Link>
- <SubType>Component</SubType>
- </Compile>
- <Compile Include="..\..\..\..\SparkleLib\Git\SparkleRepoGit.cs">
- <Link>SparkleRepoGit.cs</Link>
- </Compile>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\SparkleLib.csproj">
- <Project>{748f6316-37b4-46fd-a011-af073bc7c02d}</Project>
- <Name>SparkleLib</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleLib/SparkleLib.csproj b/SparkleShare/Windows/SparkleLib/SparkleLib.csproj
deleted file mode 100644
index 4c5eaff..0000000
--- a/SparkleShare/Windows/SparkleLib/SparkleLib.csproj
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{748F6316-37B4-46FD-A011-AF073BC7C02D}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>SparkleLib</RootNamespace>
- <AssemblyName>SparkleLib</AssemblyName>
- <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <TargetFrameworkProfile />
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\..\bin\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\..\bin\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Properties\" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\..\SparkleLib\Defines.cs">
- <Link>Defines.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleBackend.cs">
- <Link>SparkleBackend.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleConfig.cs">
- <Link>SparkleConfig.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleExtensions.cs">
- <Link>SparkleExtensions.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleFetcherBase.cs">
- <Link>SparkleFetcherBase.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleFetcherSSH.cs">
- <Link>SparkleFetcherSSH.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleListenerBase.cs">
- <Link>SparkleListenerBase.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleListenerFactory.cs">
- <Link>SparkleListenerFactory.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleListenerTcp.cs">
- <Link>SparkleListenerTcp.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleLogger.cs">
- <Link>SparkleLogger.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleRepoBase.cs">
- <Link>SparkleRepoBase.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleUser.cs">
- <Link>SparkleUser.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleWatcher.cs">
- <Link>SparkleWatcher.cs</Link>
- </Compile>
- <Compile Include="..\..\..\SparkleLib\SparkleWrappers.cs">
- <Link>SparkleWrappers.cs</Link>
- </Compile>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.Windows.csproj b/SparkleShare/Windows/SparkleShare.Windows.csproj
new file mode 100644
index 0000000..a3c32c1
--- /dev/null
+++ b/SparkleShare/Windows/SparkleShare.Windows.csproj
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <ProjectGuid>{728483AA-E34B-4441-BF2C-C8BC2901E4E0}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AssemblyName>SparkleShare.Windows</AssemblyName>
+ <SchemaVersion>2.0</SchemaVersion>
+ <RootNamespace>SparkleShare.Windows</RootNamespace>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
+ <ApplicationIcon>Images\sparkleshare-app.ico</ApplicationIcon>
+ <ReleaseVersion>
+ </ReleaseVersion>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\bin</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <PlatformTarget>x86</PlatformTarget>
+ <DefineConstants>TRACE</DefineConstants>
+ <DebugSymbols>true</DebugSymbols>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+ <OutputPath>..\..\bin\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <DebugType>full</DebugType>
+ <DebugSymbols>true</DebugSymbols>
+ <WarningLevel>4</WarningLevel>
+ <Optimize>false</Optimize>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Windows-Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>..\..\bin\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWindows|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>..\..\bin\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x86</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMac|AnyCPU' ">
+ <OutputPath>..\..\bin\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <DebugType>full</DebugType>
+ <DebugSymbols>true</DebugSymbols>
+ <WarningLevel>4</WarningLevel>
+ <Optimize>false</Optimize>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWindows|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>..\..\bin\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <Import Project="..\Common\SparkleShare.projitems" Label="Shared" Condition="Exists('..\Common\SparkleShare.projitems')" />
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ItemGroup>
+ <Reference Include="DeltaCompressionDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll</HintPath>
+ </Reference>
+ <Reference Include="DeltaCompressionDotNet.MsDelta, Version=1.0.0.0, Culture=neutral, PublicKeyToken=46b2138a390abf55, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.MsDelta.dll</HintPath>
+ </Reference>
+ <Reference Include="DeltaCompressionDotNet.PatchApi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e8888ee913ed789, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.PatchApi.dll</HintPath>
+ </Reference>
+ <Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\ICSharpCode.SharpZipLib.dll</HintPath>
+ </Reference>
+ <Reference Include="Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.dll</HintPath>
+ </Reference>
+ <Reference Include="Mono.Cecil.Mdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Mdb.dll</HintPath>
+ </Reference>
+ <Reference Include="Mono.Cecil.Pdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Pdb.dll</HintPath>
+ </Reference>
+ <Reference Include="Mono.Cecil.Rocks, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Rocks.dll</HintPath>
+ </Reference>
+ <Reference Include="NuGet.Squirrel, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\NuGet.Squirrel.dll</HintPath>
+ </Reference>
+ <Reference Include="Splat, Version=1.6.2.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
+ </Reference>
+ <Reference Include="Squirrel, Version=1.5.2.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\Squirrel.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Xml" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ <Reference Include="WindowsBase" />
+ <Reference Include="WindowsFormsIntegration" />
+ <Reference Include="System.Xaml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="UserInterface\About.cs" />
+ <Compile Include="UserInterface\Bubbles.cs" />
+ <Compile Include="UserInterface\EventLog.cs" />
+ <Compile Include="UserInterface\Controller.cs" />
+ <Compile Include="UserInterface\Note.xaml.cs">
+ <DependentUpon>Note.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="UserInterface\NotifyIcon.cs" />
+ <Compile Include="UserInterface\ProtocolHandler.cs" />
+ <Compile Include="UserInterface\Setup.cs" />
+ <Compile Include="UserInterface\SetupWindow.cs" />
+ <Compile Include="UserInterface\Shortcut.cs" />
+ <Compile Include="UserInterface\Spinner.cs" />
+ <Compile Include="UserInterface\StatusIcon.cs" />
+ <Compile Include="UserInterface\UserInterface.cs" />
+ <Compile Include="UserInterface\UserInterfaceHelpers.cs" />
+ </ItemGroup>
+ <ProjectExtensions>
+ <VisualStudio />
+ </ProjectExtensions>
+ <ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
+ <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="..\Common\Images\about.png">
+ <Link>Images\about.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\Images\side-splash.png">
+ <Link>Images\side-splash.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\HTML\day-entry.html">
+ <Link>HTML\day-entry.html</Link>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\HTML\event-entry.html">
+ <Link>HTML\event-entry.html</Link>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\HTML\event-log.html">
+ <Link>HTML\event-log.html</Link>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\HTML\jquery.js">
+ <Link>HTML\jquery.js</Link>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\Images\user-icon-default.png">
+ <Link>Images\user-icon-default.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-added-12.png">
+ <Link>Images\document-added-12.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-deleted-12.png">
+ <Link>Images\document-deleted-12.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-edited-12.png">
+ <Link>Images\document-edited-12.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-moved-12.png">
+ <Link>Images\document-moved-12.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Linux\Images\icons\hicolor\process-working-22.png">
+ <Link>Images\process-working-22.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\process-syncing-down.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\process-syncing-idle.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\process-syncing-up.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\process-syncing.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\Images\tutorial-slide-1.png">
+ <Link>Images\tutorial-slide-1.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="..\Common\Images\tutorial-slide-2.png">
+ <Link>Images\tutorial-slide-2.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\Common\Presets\github.png">
+ <Link>Presets\github.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\own-server.png">
+ <Link>Presets\own-server.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\bitbucket.png">
+ <Link>Presets\bitbucket.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\planio.png">
+ <Link>Presets\planio.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="app.config" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\Common\Presets\bitbucket.xml">
+ <Link>Presets\bitbucket.xml</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\github.xml">
+ <Link>Presets\github.xml</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\own-server.xml">
+ <Link>Presets\own-server.xml</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="..\Common\Presets\planio.xml">
+ <Link>Presets\planio.xml</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Images\folder.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\process-syncing-error.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\sparkleshare-app.ico">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Images\sparkleshare-folder.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Images\tutorial-slide-3.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="..\Common\Images\text-balloon.png">
+ <Link>Images\text-balloon.png</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Resource>
+ <Content Include="Images\sparkleshare-folder.ico">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ <ItemGroup>
+ <Page Include="UserInterface\Note.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Sparkles\Sparkles.csproj">
+ <Project>{2C914413-B31C-4362-93C7-1AE34F09112A}</Project>
+ <Name>Sparkles</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Sparkles\Git\Sparkles.Git.csproj">
+ <Project>{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}</Project>
+ <Name>Sparkles.Git</Name>
+ </ProjectReference>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.csproj b/SparkleShare/Windows/SparkleShare.csproj
deleted file mode 100644
index b437064..0000000
--- a/SparkleShare/Windows/SparkleShare.csproj
+++ /dev/null
@@ -1,294 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <ProjectGuid>{728483AA-E34B-4441-BF2C-C8BC2901E4E0}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <AssemblyName>SparkleShare</AssemblyName>
- <SchemaVersion>2.0</SchemaVersion>
- <RootNamespace>SparkleShare</RootNamespace>
- <FileUpgradeFlags>
- </FileUpgradeFlags>
- <OldToolsVersion>3.5</OldToolsVersion>
- <UpgradeBackupLocation>
- </UpgradeBackupLocation>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- <ApplicationIcon>Pixmaps\sparkleshare-app.ico</ApplicationIcon>
- <ReleaseVersion>
- </ReleaseVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\bin</OutputPath>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
- <PlatformTarget>x86</PlatformTarget>
- <DefineConstants>TRACE</DefineConstants>
- <DebugSymbols>true</DebugSymbols>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
- <OutputPath>..\..\bin\</OutputPath>
- <DefineConstants>TRACE;DEBUG</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <DebugType>full</DebugType>
- <DebugSymbols>true</DebugSymbols>
- </PropertyGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Data" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Configuration" />
- <Reference Include="System.Xml" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- <Reference Include="WindowsBase" />
- <Reference Include="WindowsFormsIntegration" />
- <Reference Include="System.Xaml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\SparkleBubblesController.cs">
- <Link>SparkleBubblesController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleControllerBase.cs">
- <Link>SparkleControllerBase.cs</Link>
- </Compile>
- <Compile Include="..\SparkleExtensions.cs">
- <Link>SparkleExtensions.cs</Link>
- </Compile>
- <Compile Include="..\SparkleInvite.cs">
- <Link>SparkleInvite.cs</Link>
- </Compile>
- <Compile Include="..\SparkleNoteController.cs">
- <Link>SparkleNoteController.cs</Link>
- </Compile>
- <Compile Include="..\SparklePlugin.cs">
- <Link>SparklePlugin.cs</Link>
- </Compile>
- <Compile Include="..\SparkleStatusIconController.cs">
- <Link>SparkleStatusIconController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleSetupController.cs" />
- <Compile Include="SparkleEventLogWindow.xaml.cs">
- <DependentUpon>SparkleEventLogWindow.xaml</DependentUpon>
- </Compile>
- <Compile Include="SparkleNote.xaml.cs">
- <DependentUpon>SparkleNote.xaml</DependentUpon>
- </Compile>
- <Compile Include="SparkleShortcut.cs" />
- <Compile Include="SparkleUI.cs" />
- <Compile Include="..\SparkleAboutController.cs" />
- <Compile Include="..\SparkleAvatars.cs" />
- <Compile Include="SparkleBubbles.cs" />
- <Compile Include="SparkleAbout.cs" />
- <Compile Include="SparkleController.cs" />
- <Compile Include="SparkleSetup.cs" />
- <Compile Include="SparkleStatusIcon.cs" />
- <Compile Include="SparkleUIHelpers.cs" />
- <Compile Include="..\SparkleEventLogController.cs">
- <Link>SparkleEventLogController.cs</Link>
- </Compile>
- <Compile Include="..\SparkleKeys.cs">
- <Link>SparkleKeys.cs</Link>
- </Compile>
- <Compile Include="SparkleSetupWindow.cs" />
- <Compile Include="..\Program.cs">
- <Link>Program.cs</Link>
- </Compile>
- <Compile Include="SparkleNotifyIcon.cs" />
- <Compile Include="SparkleSpinner.cs" />
- </ItemGroup>
- <ProjectExtensions>
- <MonoDevelop>
- <Properties>
- <MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="Makefile.am">
- <BuildFilesVar Sync="True" Name="SOURCES" />
- <DeployFilesVar />
- <ResourcesVar />
- <OthersVar />
- <GacRefVar />
- <AsmRefVar />
- <ProjectRefVar />
- </MonoDevelop.Autotools.MakefileInfo>
- </Properties>
- </MonoDevelop>
- <VisualStudio />
- </ProjectExtensions>
- <ItemGroup>
- <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
- <Visible>False</Visible>
- <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
- <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="..\Common\Pixmaps\about.png">
- <Link>Pixmaps\about.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\Pixmaps\side-splash.png">
- <Link>Pixmaps\side-splash.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\HTML\day-entry.html">
- <Link>HTML\day-entry.html</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\HTML\event-entry.html">
- <Link>HTML\event-entry.html</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\HTML\event-log.html">
- <Link>HTML\event-log.html</Link>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\HTML\jquery.js">
- <Link>HTML\jquery.js</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\Pixmaps\user-icon-default.png">
- <Link>Pixmaps\user-icon-default.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-added-12.png">
- <Link>Pixmaps\document-added-12.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-deleted-12.png">
- <Link>Pixmaps\document-deleted-12.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-edited-12.png">
- <Link>Pixmaps\document-edited-12.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-moved-12.png">
- <Link>Pixmaps\document-moved-12.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Linux\Pixmaps\icons\process-working-22.png">
- <Link>Pixmaps\process-working-22.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="Pixmaps\process-syncing-down.png" />
- <EmbeddedResource Include="Pixmaps\process-syncing-idle.png" />
- <EmbeddedResource Include="Pixmaps\process-syncing-up.png" />
- <EmbeddedResource Include="Pixmaps\process-syncing.png" />
- <EmbeddedResource Include="..\Common\Pixmaps\tutorial-slide-1.png">
- <Link>Pixmaps\tutorial-slide-1.png</Link>
- </EmbeddedResource>
- <EmbeddedResource Include="..\Common\Pixmaps\tutorial-slide-2.png">
- <Link>Pixmaps\tutorial-slide-2.png</Link>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\Common\Plugins\github.png">
- <Link>Plugins\github.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\gitorious.png">
- <Link>Plugins\gitorious.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\own-server.png">
- <Link>Plugins\own-server.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\bitbucket.png">
- <Link>Plugins\bitbucket.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\ssnet.png">
- <Link>Plugins\ssnet.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\planio.png">
- <Link>Plugins\planio.png</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\Common\Plugins\ssnet.xml">
- <Link>Plugins\ssnet.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\bitbucket.xml">
- <Link>Plugins\bitbucket.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\github.xml">
- <Link>Plugins\github.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\gitorious.xml">
- <Link>Plugins\gitorious.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\own-server.xml">
- <Link>Plugins\own-server.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- <None Include="..\Common\Plugins\planio.xml">
- <Link>Plugins\planio.xml</Link>
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </None>
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="Pixmaps\folder.png" />
- <EmbeddedResource Include="Pixmaps\process-syncing-error.png" />
- <EmbeddedResource Include="Pixmaps\sparkleshare-app.ico" />
- <EmbeddedResource Include="Pixmaps\sparkleshare-folder.png" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="Pixmaps\tutorial-slide-3.png" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="..\Common\Pixmaps\text-balloon.png">
- <Link>Pixmaps\text-balloon.png</Link>
- </Resource>
- <Content Include="Pixmaps\sparkleshare-folder.ico" />
- </ItemGroup>
- <ItemGroup>
- <Page Include="SparkleEventLogWindow.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="SparkleNote.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="SparkleLib\Git\SparkleLib.Git.csproj">
- <Project>{7f0db8d0-e278-4955-8204-fc391b99f7c1}</Project>
- <Name>SparkleLib.Git</Name>
- </ProjectReference>
- <ProjectReference Include="SparkleLib\SparkleLib.csproj">
- <Project>{748f6316-37b4-46fd-a011-af073bc7c02d}</Project>
- <Name>SparkleLib</Name>
- </ProjectReference>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.sln b/SparkleShare/Windows/SparkleShare.sln
deleted file mode 100644
index 03ee1fd..0000000
--- a/SparkleShare/Windows/SparkleShare.sln
+++ /dev/null
@@ -1,49 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30110.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShare", "SparkleShare.csproj", "{728483AA-E34B-4441-BF2C-C8BC2901E4E0}"
- ProjectSection(ProjectDependencies) = postProject
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2} = {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShareInviteOpener", "SparkleShareInviteOpener\SparkleShareInviteOpener.csproj", "{1DB5492D-B897-4A5E-8DD7-175EC65F52F2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib", "SparkleLib\SparkleLib.csproj", "{748F6316-37B4-46FD-A011-AF073BC7C02D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib.Git", "SparkleLib\Git\SparkleLib.Git.csproj", "{7F0DB8D0-E278-4955-8204-FC391B99F7C1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {748F6316-37B4-46FD-A011-AF073BC7C02D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {748F6316-37B4-46FD-A011-AF073BC7C02D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {748F6316-37B4-46FD-A011-AF073BC7C02D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {748F6316-37B4-46FD-A011-AF073BC7C02D}.Release|Any CPU.Build.0 = Release|Any CPU
- {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(MonoDevelopProperties) = preSolution
- StartupItem = SparkleShare.csproj
- version =
- outputpath = bin
- name = SparkleShare
- EndGlobalSection
-EndGlobal
diff --git a/SparkleShare/Windows/SparkleShare.vssettings b/SparkleShare/Windows/SparkleShare.vssettings
index 9651a51..240532e 100644
--- a/SparkleShare/Windows/SparkleShare.vssettings
+++ b/SparkleShare/Windows/SparkleShare.vssettings
@@ -91,7 +91,7 @@
<PropertyValue name="FilterURLs">True</PropertyValue>
<PropertyValue name="GlobalErrorPattern">\[{"Error":[^n];"SharepointError";"HasException":true</PropertyValue>
<PropertyValue name="ParameterizeSiteName">True</PropertyValue>
- <PropertyValue name="RulesFileName">C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\WebTestPlugins\DefaultSharePointRules.xml</PropertyValue>
+ <PropertyValue name="RulesFileName">C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\WebTestPresets\DefaultSharePointRules.xml</PropertyValue>
<PropertyValue name="URLPatterns">AAEAAAD/////AQAAAAAAAAAMAgAAAGxNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5Wc2lwLCBWZXJzaW9uPTEyLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EEAQAAAMMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4sIE1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUXVhbGl0eVRvb2xzLlZzaXAsIFZlcnNpb249MTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYV1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAyTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuVnNpcC5VUkxQYXR0ZXJuW10CAAAACAgJAwAAAAQAAAAEAAAABwMAAAAAAQAAAAQAAAAEME1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uVGVzdFRvb2xzLlZzaXAuVVJMUGF0dGVybgIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAwIAAAASVN5c3RlbSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFBAAAADBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4DAAAAD1Byb3BlcnR5Q2hhbmdlZAptX2NyaXRlcmlhCW1fcGF0dGVybgQBATFTeXN0ZW0uQ29tcG9uZW50TW9kZWwuUHJvcGVydHlDaGFuZ2VkRXZlbnRIYW5kbGVyCAAAAAIAAAAKBgkAAAAIRW5kc1dpdGgGCgAAAAlibGFuay5naWYBBQAAAAQAAAAKCQkAAAAGDAAAAAlibGFuay5odG0BBgAAAAQAAAAKCQkAAAAGDgAAAA9TY3JpcHRSZXN4LmFzaHgBBwAAAAQAAAAKCQkAAAAGEAAAAA5jb21tYW5kdWkuYXNoeAs=</PropertyValue>
<PropertyValue name="UseRegexForGlobalErrorPattern">True</PropertyValue>
</Category><Category name="Browser Link_BrowserLinkOptions" Category="{600fc5ef-ed38-3ecb-b7fa-e2fb3aa59ebb}" Package="{8c28e535-abc9-4f92-b5c9-6c16617c8884}" RegisteredName="Browser Link_BrowserLinkOptions" PackageName="EurekaPackage"><PropertyValue name="Enabled">True</PropertyValue></Category><Category name="CSS_Advanced" Category="{978df9f7-5f7c-46c1-afe6-3e4335e93514}" Package="{5330c67f-305c-4b17-a3dc-fbb7aee69c09}" RegisteredName="CSS_Advanced" PackageName="CssPackage"/><Category name="CoffeeScript_Advanced" Category="{9a5ed2f4-b737-4876-9b7f-7a94e634e74f}" Package="{52244c9d-db46-4905-bda0-b3406c46d2a4}" RegisteredName="CoffeeScript_Advanced" PackageName="CoffeeScriptPackage"/><Category name="Debugger" Category="{EEDBF29A-5C8B-4E01-827C-263382C18CFE}" Package="{C9DD4A57-47FB-11D2-83E7-00C04F9902C1}" RegisteredName="Debugger" PackageName="Visual Studio Debugger"><PropertyValue name="ConfirmDeleteAllBreakpoints">1</PropertyValue><PropertyValue name="StopAllProcesses">1</PropertyValue><PropertyValue name="StopOnExceptionCrossingManagedBoundary">0</PropertyValue><PropertyValue name="EnableAddressLevelDebugging">1</PropertyValue><PropertyValue name="ShowDisassemblyWhenNoSource">0</PropertyValue><PropertyValue name="EnableBreakpointConstraints">1</PropertyValue><PropertyValue name="UseExceptionHelper">1</PropertyValue><PropertyValue name="AutoUnwindOnException">1</PropertyValue><PropertyValue name="JustMyCode">1</PropertyValue><PropertyValue name="ShowNonPublicMembers">0</PropertyValue><PropertyValue name="WarnIfNoUserCodeOnLaunch">1</PropertyValue><PropertyValue name="FrameworkSourceStepping">0</PropertyValue><PropertyValue name="WarnAboutSymbolCacheDuringRemoteManagedDebugging">1</PropertyValue><PropertyValue name="EnableStepFiltering">1</PropertyValue><PropertyValue name="WarnOnStepFilter">1</PropertyValue><PropertyValue name="AllowImplicitFuncEval">1</PropertyValue><PropertyValue name="AllowToString">1</PropertyValue><PropertyValue name="UseSourceServer">0</PropertyValue><PropertyValue name="ShowSourceServerDiagnostics">0</PropertyValue><PropertyValue name="AlwaysColorMarkerText">0</PropertyValue><PropertyValue name="UseDocumentChecksum">1</PropertyValue><PropertyValue name="OutputToImmediate">0</PropertyValue><PropertyValue name="ShowRawStructures">0</PropertyValue><PropertyValue name="DisableJITOptimization">1</PropertyValue><PropertyValue name="ShowNoSymbolsDialog">1</PropertyValue><PropertyValue name="ShowScriptDebuggingDisabledDialog">1</PropertyValue><PropertyValue name="EnableILInterpreterMinidump">1</PropertyValue><PropertyValue name="EnableILInterpreterLive">0</PropertyValue><PropertyValue name="HexDisplay">0</PropertyValue><PropertyValue name="HexInput">0</PropertyValue><PropertyValue name="MapClientBreakpoints">1</PropertyValue><PropertyValue name="AddUnmappedBreakpointAtMappedLocation">0</PropertyValue><PropertyValue name="StepIntoOnRestart">0</PropertyValue><PropertyValue name="ENCEnable">1</PropertyValue><PropertyValue name="ENCApplyChangesOnContinue">1</PropertyValue><PropertyValue name="ENCWelcome">0</PropertyValue><PropertyValue name="ENCStaleCodeWarning">1</PropertyValue><PropertyValue name="ENCPrecompile">1</PropertyValue><PropertyValue name="ENCRelink">1</PropertyValue><PropertyValue name="NOENCAllowEdits">1</PropertyValue><PropertyValue name="NOENCIgnore">0</PropertyValue><PropertyValue name="NOENCRebuild">0</PropertyValue><PropertyValue name="ENCEnableWhenRemoteDebugging">0</PropertyValue><PropertyValue name="ConfirmFoundFiles">0</PropertyValue><PropertyValue name="DisasmLineNumbers">0</PropertyValue><PropertyValue name="ModulesShowAll">0</PropertyValue><PropertyValue name="UseCodeSense">1</PropertyValue><PropertyValue name="DisasmFields">67577</PropertyValue><PropertyValue name="CallStackViewOptions">3604736</PropertyValue><PropertyValue name="ShowExternalCode">0</PropertyValue><PropertyValue name="SourceStepUnit">0</PropertyValue><PropertyValue name="DisasmStepUnit">2</PropertyValue><PropertyValue name="CrossThreadCallStack">1</PropertyValue><PropertyValue name="ShowOnlyFlaggedThreads">0</PropertyValue><PropertyValue name="ConcurrencySupport">1</PropertyValue><PropertyValue name="GuessAtThreadNames">1</PropertyValue><PropertyValue name="ShowOtherThreadIpMarkers">0</PropertyValue><PropertyValue name="ShowThreadCategory">1</PropertyValue><PropertyValue name="SaveRemoteDumps">1</PropertyValue><PropertyValue name="LongEvalTimeout">10000</PropertyValue><PropertyValue name="NormalEvalTimeout">5000</PropertyValue><PropertyValue name="QuickwatchTimeout">15000</PropertyValue><PropertyValue name="DataTipTimeout">1500</PropertyValue><PropertyValue name="AutosReturnValsTimeout">1000</PropertyValue><PropertyValue name="AutosRegistersTimeout">1000</PropertyValue><PropertyValue name="LocalsTimeout">1000</PropertyValue><PropertyValue name="RegistersTimeout">2000</PropertyValue><PropertyValue name="AddressExpressionTimeout">2000</PropertyValue><PropertyValue name="ScriptDocsTimeout">5000</PropertyValue><PropertyValue name="ImmediateWindowTimeout">10000</PropertyValue><PropertyValue name="SetValueTimeout">10000</PropertyValue><PropertyValue name="TreeGridRePaintTimer">250</PropertyValue><PropertyValue name="TreeGridBusyPaintTimer">1000</PropertyValue><PropertyValue name="ModulesWindowUpdateTimer">500</PropertyValue><PropertyValue name="TreeGridDelayOnEnterTimer">125</PropertyValue><PropertyValue name="DelayTreeGridPaintOnBreak">1</PropertyValue><PropertyValue name="ShowNonprintableCharsAsGlyphs">0</PropertyValue><PropertyValue name="ShowSystemProcesses">0</PropertyValue><PropertyValue name="ShowProcessesFromAllSessions">0</PropertyValue><PropertyValue name="EnhancedDataTips">1</PropertyValue><PropertyValue name="DataTipDismissalSensitivity">1</PropertyValue><PropertyValue name="DataTipKeyboardDismissal">0</PropertyValue><PropertyValue name="UserSpecifiedEngines">0</PropertyValue><PropertyValue name="OutputOnException">1</PropertyValue><PropertyValue name="OutputOnStepFilter">1</PropertyValue><PropertyValue name="OutputOnModuleLoad">1</PropertyValue><PropertyValue name="OutputOnModuleUnload">1</PropertyValue><PropertyValue name="OutputOnModuleSymbolSearch">1</PropertyValue><PropertyValue name="OutputOnProcessDestroy">1</PropertyValue><PropertyValue name="OutputOnThreadDestroy">1</PropertyValue><PropertyValue name="OutputOnOutputDebugString">1</PropertyValue><PropertyValue name="OutputOnDebuggerMessage">1</PropertyValue><PropertyValue name="VariableWindowIcons">1</PropertyValue><PropertyValue name="DisableAttachSecurityWarning">0</PropertyValue><PropertyValue name="LoadDllExports">0</PropertyValue><PropertyValue name="NativeRPC">0</PropertyValue><PropertyValue name="AllowSideEffectEval">0</PropertyValue><PropertyValue name="LoadSymbolsWhenSettingsChanged">1</PropertyValue><PropertyValue name="SymbolUseExcludeList">1</PropertyValue><PropertyValue name="SymbolsAlwaysLoadAdjacent">1</PropertyValue><PropertyValue name="DontForceCacheOnManualLoad">0</PropertyValue><PropertyValue name="SymbolUseMSSymbolServers">0</PropertyValue><PropertyValue name="AutoLoadFromSymbolPath">1</PropertyValue><PropertyValue name="OneClickEdit">0</PropertyValue><PropertyValue name="OfferArrayExpansion">0</PropertyValue><PropertyValue name="VariableWindowPromptOnLargeExpansion">1</PropertyValue><PropertyValue name="VariableWindowMaxSupportedChildren">1000000</PropertyValue><PropertyValue name="PromptToAddSourceToIgnoreList">0</PropertyValue><PropertyValue name="OwnerDrawDebugLocationToolbar">0</PropertyValue><PropertyValue name="EnableSelectedBreakpointHighlight">1</PropertyValue><PropertyValue name="DisableUniscribe">0</PropertyValue><PropertyValue name="ShowParallelStacksBottomUp">1</PropertyValue><PropertyValue name="ThreadsWindowGroupingColumn">2048</PropertyValue><PropertyValue name="ThreadsWindowVisibleColumns">509</PropertyValue><PropertyValue name="ThreadsWindowShowTipWhenCallStackExpanded">0</PropertyValue><PropertyValue name="AllowDesignModePinning">0</PropertyValue><PropertyValue name="CallStackParamToString">0</PropertyValue><PropertyValue name="CheckRDTForFilesFirst">1</PropertyValue><PropertyValue name="AllowSourceServerInPartialTrust">0</PropertyValue><PropertyValue name="ENCEnableCrossUser">0</PropertyValue><PropertyValue name="ENCEnableNative">0</PropertyValue><PropertyValue name="OpenNewFilesProvisionally">1</PropertyValue><PropertyValue name="ForceRealFuncEval">1</PropertyValue><PropertyValue name="ShowOnlyCurrentProcess">0</PropertyValue><PropertyValue name="GpuRaceHazardsAllowSame">0</PropertyValue><PropertyValue name="DisasmToolbarIsExpanded">0</PropertyValue><PropertyValue name="AlwaysRunUntrustedSourceServerCommands">0</PropertyValue><PropertyValue name="DebugEngineCompatibilityMode">0</PropertyValue><PropertyValue name="CallStackViewOptionsEx">1</PropertyValue><PropertyValue name="ManagedDebugEngineCompatibilityMode_Normal">0</PropertyValue><PropertyValue name="ManagedDebugEngineCompatibilityMode_ProductInstalled">1</PropertyValue><PropertyValue name="ManagedMemoryViewCollapseSmallObjects">1</PropertyValue><PropertyValue name="SourceServerExtractToDirectory"/><PropertyValue name="FrameworkSourceServerName">http://referencesource.microsoft.com/symbols</PropertyValue><PropertyValue name="PublicSymbolServerName"/><PropertyValue name="PublicSymbolServerName2">http://msdl.microsoft.com/download/symbols</PropertyValue><PropertyValue name="DefaultTracepointMessage">Function: $FUNCTION, Thread: $TID $TNAME</PropertyValue><PropertyValue name="ProgramToDebugPath"/><PropertyValue name="AttachToProcessDefaultEngineList"/><PropertyValue name="SecureSourceLocalDirectory"/><PropertyValue name="SymbolPath"/><PropertyValue name="SymbolPathState"/><PropertyValue name="SymbolCacheDir"/><PropertyValue name="SymbolIncludeList"/><PropertyValue name="SymbolIncludeListState"/><PropertyValue name="SymbolExcludeList"/><PropertyValue name="SymbolExcludeListState"/></Category><Category name="Git Version Control_GitSccProvider" Category="{33a4cda9-b7a6-3f4f-9e1f-e4d71f0a9cfa}" Package="{7fe30a77-37f9-4cf2-83dd-96b207028e1b}" RegisteredName="Git Version Control_GitSccProvider" PackageName="SccProviderPackage"/><Category name="HTML Tag Specific" Category="{7583bb73-a453-40e8-8951-b6986ddb1d9b}" Package="{1B437D20-F8FE-11D2-A6AE-00104BCC7269}" RegisteredName="HTML Tag Specific" PackageName="Visual Studio HTM Editor Package"/><Category name="HTMLX_Advanced" Category="{3d9c2439-5c0a-4592-b9e8-42e26dfe636b}" Package="{cf49ec7d-92b1-4bbd-9254-9cc13978e82e}" RegisteredName="HTMLX_Advanced" PackageName="HtmlPackage"/><Category name="LESS_Advanced" Category="{1b200b66-f69e-452e-9c6f-d38f9cb0628b}" Package="{f4b61ec8-36d8-4155-b2a0-199587d8ddcc}" RegisteredName="LESS_Advanced" PackageName="LessPackage"/><Category name="Performance" Category="{7A697B67-8D8F-43c2-A11C-57568FE3F513}" Package="{f4a63b2a-49ab-4b2d-aa59-a10f01026c89}" RegisteredName="Performance" PackageName="PerformancePackage"><PropertyValue name="toolsoptions.numfunc">5</PropertyValue><PropertyValue name="toolsoptions.showtimetick">0</PropertyValue><PropertyValue name="toolsoptions.numbuffer">64</PropertyValue><PropertyValue name="toolsoptions.sizebuffer">64</PropertyValue><PropertyValue name="toolsoptions.serialize">1</PropertyValue><PropertyValue name="performancereport.showquery">0</PropertyValue><PropertyValue name="toolsoptions.formatcounters">1</PropertyValue><PropertyValue name="toolsoptions.exportpath"/><PropertyValue name="toolsoptions.exportformat">csv</PropertyValue><PropertyValue name="performancereport.hotpathcandidateratio">3.0</PropertyValue><PropertyValue name="performancereport.shownoisereductionwarning">1</PropertyValue><PropertyValue name="performancereport.noisereductiontrim">0</PropertyValue><PropertyValue name="performancereport.noisereductionfold">0</PropertyValue><PropertyValue name="performancereport.noisereductiontrimthreshold">2.0</PropertyValue><PropertyValue name="performancereport.noisereductionfoldthreshold">3.0</PropertyValue><PropertyValue name="tools.options.justmycode">1</PropertyValue><PropertyValue name="tools.options.justmycode.callee">1</PropertyValue><PropertyValue name="tools.options.justmycode.caller">0</PropertyValue><PropertyValue name="tools.options.kernelmodeanalysis">0</PropertyValue><PropertyValue name="tools.options.rules.actions"/></Category><Category name="Source Control_TeamFoundation" Category="{2A718788-A6D9-44C5-90EF-438BF5B06A74}" Package="{4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}" RegisteredName="Source Control_TeamFoundation" PackageName="Microsoft.VisualStudio.TeamFoundation.VersionControl.HatPackage, Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"><PropertyValue name="IsProxyEnabled">False</PropertyValue><PropertyValue name="ProxyUrl"/><PropertyValue name="GetLatestOnCheckOut">false</PropertyValue><PropertyValue name="AttemptToAutoResolveConflicts">true</PropertyValue><PropertyValue name="ShowDeletedItems">false</PropertyValue><PropertyValue name="OpenSceToMostRecentPath">false</PropertyValue><PropertyValue name="PromptToConfirmMergeResult">-1</PropertyValue></Category><Category name="Test Tools_Test Execution" Category="{48d11193-265d-1458-743e-2b88c655b377}" Package="{a9405ae6-9ac6-4f0e-a03f-7afe45f6fcb7}" RegisteredName="Test Tools_Test Execution" PackageName="Microsoft.VisualStudio.TestTools.TestCaseManagement.QualityToolsPackage, Microsoft.VisualStudio.QualityTools.TestCaseManagement, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"><PropertyValue name="IsCodeColoringEnabled">True</PropertyValue><PropertyValue name="IsInPlaceInstrumentationEnabled">True</PropertyValue><PropertyValue name="KeepHostProcessAlive">True</PropertyValue><PropertyValue name="MaxTestRunsPerSolution">25</PropertyValue><PropertyValue name="PathToWebRoot"/><PropertyValue name="UnitTestResultNavigatePointOfFailure">True</PropertyValue></Category><Category name="WebProjects" Category="{C78AFEEB-A722-4cf3-AD3F-8694126C2145}" Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" RegisteredName="WebProjects" PackageName="Visual Web Developer Project System Package"><PropertyValue name="WarnBeforeRunIfErrors">false</PropertyValue><PropertyValue name="Use64BitIISExpress">false</PropertyValue></Category><Category name="WindowsFormsDesigner_General" Category="{de03177c-918d-40af-8c17-c9d63670c175}" Package="{7b5d447b-0b12-41ea-a84e-c822034422d4}" RegisteredName="WindowsFormsDesigner_General" PackageName="Windows Forms Designer Resources Package"><PropertyValue name="AutoToolboxPopulate">True</PropertyValue><PropertyValue name="EnableInSituEditing">True</PropertyValue><PropertyValue name="EnableRefactoringOnRename">True</PropertyValue><PropertyValue name="GridSize">8, 8</PropertyValue><PropertyValue name="LayoutMode">SnapLines</PropertyValue><PropertyValue name="ObjectBoundSmartTagAutoShow">True</PropertyValue><PropertyValue name="ShowGrid">True</PropertyValue><PropertyValue name="SnapToGrid">True</PropertyValue><PropertyValue name="UseOptimizedCodeGeneration">True</PropertyValue></Category><Category name="XAML_Formatting" Category="{dac05320-0c3a-4ead-a332-8c23b0cfc130}" Package="{512be089-83ec-4cc6-8483-cf16565ae209}" RegisteredName="XAML_Formatting" PackageName="DesignerPackage"><PropertyValue name="AttributeFormat">Preserve</PropertyValue><PropertyValue name="AutoInsertAttributeQuotes">True</PropertyValue><PropertyValue name="AutoInsertCommas">True</PropertyValue><PropertyValue name="AutoInsertEndBraces">True</PropertyValue><PropertyValue name="AutoInsertEndTags">True</PropertyValue><PropertyValue name="AutoNameElements">False</PropertyValue><PropertyValue name="AutoOutlining">True</PropertyValue><PropertyValue name="AutoReformatOnEndTag">True</PropertyValue><PropertyValue name="AutoReformatOnPaste">True</PropertyValue><PropertyValue name="AutoReformatOnStartTag">True</PropertyValue><PropertyValue name="AutoToolboxPopulate">True</PropertyValue><PropertyValue name="BlankLineOption">Preserve</PropertyValue><PropertyValue name="KeepFirstAttributeOnSameLine">True</PropertyValue><PropertyValue name="MaximizeXamlEditor">False</PropertyValue><PropertyValue name="QuoteStyle">DoubleQuote</PropertyValue><PropertyValue name="WrapColumn">120</PropertyValue><PropertyValue name="WrapTags">False</PropertyValue></Category><Category name="XmlEditor" Category="{4E1CDE49-B840-4826-8CC6-8FB80D7EF455}" Package="{87569308-4813-40a0-9cd0-d7a30838ca3f}" RegisteredName="XmlEditor" PackageName="Visual Studio XML Editor Package"><PropertyValue name="AttributeFormatting">None</PropertyValue><PropertyValue name="AutoDownload">False</PropertyValue><PropertyValue name="AutoInsertAttributeQuotes">True</PropertyValue><PropertyValue name="AutoInsertEndTags">True</PropertyValue><PropertyValue name="AutoInsertNamespaceDeclarations">True</PropertyValue><PropertyValue name="AutoInsertOther">True</PropertyValue><PropertyValue name="AutoOutlining">True</PropertyValue><PropertyValue name="AutoReformatOnEndTag">True</PropertyValue><PropertyValue name="AutoReformatOnPaste">True</PropertyValue><PropertyValue name="FormatMixedContentByDefault">True</PropertyValue><PropertyValue name="SchemaCacheLocation">%VsInstallDir%\xml\Schemas</PropertyValue></Category></UserSettings> \ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.wxs b/SparkleShare/Windows/SparkleShare.wxs
index 99bf5fa..6ca687b 100644
--- a/SparkleShare/Windows/SparkleShare.wxs
+++ b/SparkleShare/Windows/SparkleShare.wxs
@@ -2,7 +2,7 @@
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Name='SparkleShare' Id='184950D5-67F6-4D06-9717-7E2F1607A7B0' UpgradeCode='D3DF1D99-87F5-47A7-A349-863DD6E4B73A'
- Language='1033' Codepage='1252' Version='1.5.0' Manufacturer='SparkleShare'>
+ Language='1033' Codepage='1252' Version='2.0.1' Manufacturer='SparkleShare'>
<Package Id='*' Keywords='Installer' Description="SparkleShare Setup" Manufacturer='SparkleShare'
InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
@@ -20,9 +20,9 @@
<File Id='SparkleShareInviteOpener.exe' Name='SparkleShareInviteOpener.exe' Source='!(wix.root)\bin\SparkleShareInviteOpener.exe' DiskId='1' />
</Component>
<Component Id='Libraries' Guid='0DA692D5-4DBE-4251-9F62-E7C1A76F10E1'>
- <File Id='SparkleLib.Git.dll' Name='SparkleLib.Git.dll' Source='!(wix.root)\bin\SparkleLib.Git.dll' DiskId='1' />
- <File Id='SparkleLib.dll' Name='SparkleLib.dll' Source='!(wix.root)\bin\SparkleLib.dll' DiskId='1' />
- <File Id='sparkleshare_app.ico' Name='sparkleshare.ico' Source='!(wix.root)\SparkleShare\Windows\Pixmaps\sparkleshare-app.ico' DiskId='1' />
+ <File Id='Sparkles.Git.dll' Name='Sparkles.Git.dll' Source='!(wix.root)\bin\Sparkles.Git.dll' DiskId='1' />
+ <File Id='Sparkles.dll' Name='Sparkles.dll' Source='!(wix.root)\bin\Sparkles.dll' DiskId='1' />
+ <File Id='sparkleshare_app.ico' Name='sparkleshare.ico' Source='!(wix.root)\SparkleShare\Windows\Images\sparkleshare-app.ico' DiskId='1' />
</Component>
<Directory Id='MSYSGIT_DIR' Name='msysgit'>
</Directory>
diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
index 379d780..bbccc79 100644
--- a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
+++ b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
@@ -11,7 +11,7 @@
<RootNamespace>SparkleShareInviteOpener</RootNamespace>
<AssemblyName>SparkleShareInviteOpener</AssemblyName>
<FileAlignment>512</FileAlignment>
- <ApplicationIcon>..\Pixmaps\sparkleshare-app.ico</ApplicationIcon>
+ <ApplicationIcon>..\Images\sparkleshare-app.ico</ApplicationIcon>
<ReleaseVersion />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -29,6 +29,24 @@
<DebugType>full</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWindows|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>..\..\..\bin\</OutputPath>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWindows|AnyCPU'">
+ <OutputPath>..\..\..\bin\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs
index 98d9128..9f79ab8 100644
--- a/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs
+++ b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
diff --git a/SparkleShare/Windows/SparkleAbout.cs b/SparkleShare/Windows/UserInterface/About.cs
index 1e19fc9..85f6cf0 100644
--- a/SparkleShare/Windows/SparkleAbout.cs
+++ b/SparkleShare/Windows/UserInterface/About.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
+// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk)
//
// 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
@@ -17,30 +17,27 @@
using System;
using System.ComponentModel;
-using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Xaml;
namespace SparkleShare {
- public class SparkleAbout : Window {
+ public class About : Window {
- public SparkleAboutController Controller = new SparkleAboutController ();
+ public AboutController Controller = new AboutController ();
private Label updates;
- public SparkleAbout ()
+ public About ()
{
Title = "About SparkleShare";
ResizeMode = ResizeMode.NoResize;
Height = 288;
Width = 720;
- Icon = SparkleUIHelpers.GetImageSource("sparkleshare-app", "ico");
+ Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico");
WindowStartupLocation = WindowStartupLocation.CenterScreen;
Closing += Close;
@@ -77,7 +74,7 @@ namespace SparkleShare {
Height = 260
};
- image.Source = SparkleUIHelpers.GetImageSource ("about");
+ image.Source = UserInterfaceHelpers.GetImageSource ("about");
Label version = new Label () {
@@ -179,7 +176,7 @@ namespace SparkleShare {
Content = text_block;
MouseUp += delegate {
- Program.Controller.OpenWebsite (url);
+ SparkleShare.Controller.OpenWebsite (url);
};
}
}
diff --git a/SparkleShare/Windows/SparkleBubbles.cs b/SparkleShare/Windows/UserInterface/Bubbles.cs
index cbae16d..79e672c 100644
--- a/SparkleShare/Windows/SparkleBubbles.cs
+++ b/SparkleShare/Windows/UserInterface/Bubbles.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -15,22 +15,20 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-using System;
-
namespace SparkleShare {
- public class SparkleBubbles {
+ public class Bubbles {
- public SparkleBubblesController Controller = new SparkleBubblesController ();
+ public BubblesController Controller = new BubblesController ();
- public SparkleBubbles ()
+ public Bubbles ()
{
Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) {
- if (!Program.Controller.NotificationsEnabled)
+ if (!SparkleShare.Controller.NotificationsEnabled)
return;
- Program.UI.StatusIcon.ShowBalloon (title, subtext, image_path);
+ SparkleShare.UI.StatusIcon.ShowBalloon (title, subtext, image_path);
};
}
}
diff --git a/SparkleShare/Windows/UserInterface/Controller.cs b/SparkleShare/Windows/UserInterface/Controller.cs
new file mode 100644
index 0000000..7ba2f3b
--- /dev/null
+++ b/SparkleShare/Windows/UserInterface/Controller.cs
@@ -0,0 +1,199 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+using System.Windows;
+using Forms = System.Windows.Forms;
+
+using Sparkles;
+using Sparkles.Git;
+
+namespace SparkleShare {
+
+ public class Controller : BaseController {
+
+ public Controller (Configuration config)
+ : base (config)
+ {
+ }
+
+
+ public override string PresetsPath
+ {
+ get {
+ return Path.Combine (Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location), "Presets");
+ }
+ }
+
+
+ public override void Initialize ()
+ {
+ // Add msysgit to path, as we cannot asume it is added to the path
+ // Asume it is installed in @"<exec dir>\msysgit\bin"
+ string executable_path = Path.GetDirectoryName (Forms.Application.ExecutablePath);
+ string msysgit_path = Path.Combine (executable_path, "msysgit");
+
+ Environment.SetEnvironmentVariable ("HOME", Environment.GetFolderPath (Environment.SpecialFolder.UserProfile));
+
+ SSHCommand.SSHPath = Path.Combine (msysgit_path, "usr", "bin");
+ SSHFetcher.SSHKeyScan = Path.Combine (msysgit_path, "usr", "bin", "ssh-keyscan.exe");
+ GitCommand.GitPath = Path.Combine (msysgit_path, "bin", "git.exe");
+
+ base.Initialize ();
+ }
+
+
+ public override string EventLogHTML {
+ get {
+ string html = UserInterfaceHelpers.GetHTML ("event-log.html");
+ return html.Replace ("<!-- $jquery -->", UserInterfaceHelpers.GetHTML ("jquery.js"));
+ }
+ }
+
+
+ public override string DayEntryHTML {
+ get {
+ return UserInterfaceHelpers.GetHTML ("day-entry.html");
+ }
+ }
+
+
+ public override string EventEntryHTML {
+ get {
+ return UserInterfaceHelpers.GetHTML ("event-entry.html");
+ }
+ }
+
+
+ public override void SetFolderIcon ()
+ {
+ string app_path = Path.GetDirectoryName (Forms.Application.ExecutablePath);
+ string icon_file_path = Path.Combine (app_path, "Images", "sparkleshare-folder.ico");
+
+ if (!File.Exists (icon_file_path))
+ {
+ string ini_file_path = Path.Combine (FoldersPath, "desktop.ini");
+ string n = Environment.NewLine;
+
+ string ini_file = "[.ShellClassInfo]" + n +
+ "IconFile=" + icon_file_path + n +
+ "IconIndex=0" + n +
+ "InfoTip=SparkleShare";
+
+ try
+ {
+ File.Create (ini_file_path).Close ();
+ File.WriteAllText (ini_file_path, ini_file);
+
+ File.SetAttributes (ini_file_path,
+ File.GetAttributes (ini_file_path) | FileAttributes.Hidden | FileAttributes.System);
+
+ }
+ catch (IOException e)
+ {
+ Logger.LogInfo ("Config", "Failed setting icon for '" + FoldersPath + "': " + e.Message);
+ }
+ }
+ }
+
+
+ public override void CreateStartupItem ()
+ {
+ string startup_folder_path = Environment.GetFolderPath (Environment.SpecialFolder.Startup);
+ string shortcut_path = Path.Combine (startup_folder_path, "SparkleShare.lnk");
+
+ if (File.Exists (shortcut_path))
+ File.Delete (shortcut_path);
+
+ string shortcut_target = Forms.Application.ExecutablePath;
+
+ Shortcut shortcut = new Shortcut ();
+ shortcut.Create (shortcut_path, shortcut_target);
+ }
+
+
+ public override void InstallProtocolHandler ()
+ {
+ // We ship a separate .exe for this
+ }
+
+
+ public void AddToBookmarks ()
+ {
+ string user_profile_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile);
+ string shortcut_path = Path.Combine (user_profile_path, "Links", "SparkleShare.lnk");
+
+ if (File.Exists (shortcut_path))
+ File.Delete (shortcut_path);
+
+ Shortcut shortcut = new Shortcut ();
+ shortcut.Create (FoldersPath, shortcut_path);
+ }
+
+
+ public override void CreateSparkleShareFolder ()
+ {
+ if (!Directory.Exists (FoldersPath))
+ {
+ Directory.CreateDirectory (FoldersPath);
+
+ File.SetAttributes (FoldersPath, File.GetAttributes(FoldersPath) | FileAttributes.System);
+ Logger.LogInfo ("Config", "Created '" + FoldersPath + "'");
+ }
+ }
+
+
+ public override void OpenFile (string path)
+ {
+ Process.Start (path);
+ }
+
+
+ public override void OpenFolder (string path)
+ {
+ Process.Start (path);
+ }
+
+
+ public override void OpenWebsite (string url)
+ {
+ Process.Start (new ProcessStartInfo (url));
+ }
+
+
+ public override void CopyToClipboard (string text)
+ {
+ try {
+ Clipboard.SetData (DataFormats.Text, text);
+
+ } catch (COMException e) {
+ Logger.LogInfo ("Controller", "Copy to clipboard failed", e);
+ }
+ }
+
+
+ public override void Quit ()
+ {
+ base.Quit ();
+ }
+ }
+}
diff --git a/SparkleShare/Windows/UserInterface/EventLog.cs b/SparkleShare/Windows/UserInterface/EventLog.cs
new file mode 100644
index 0000000..735648b
--- /dev/null
+++ b/SparkleShare/Windows/UserInterface/EventLog.cs
@@ -0,0 +1,347 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Security.Permissions;
+using System.Runtime.InteropServices;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+using Microsoft.Win32;
+using System.Windows.Data;
+
+namespace SparkleShare
+{
+ public class EventLog : Window {
+
+ public EventLogController Controller = new EventLogController ();
+
+ private Label label_Size;
+ private Label label_History;
+
+ private WebBrowser webbrowser;
+
+ private Spinner spinner;
+
+ private ComboBox combobox;
+
+ private Grid grid_Base;
+
+ [DllImport("urlmon.dll")]
+ [PreserveSig]
+ [return: MarshalAs(UnmanagedType.Error)]
+ static extern int CoInternetSetFeatureEnabled(int feature, [MarshalAs(UnmanagedType.U4)] int flags, bool enable);
+
+ public EventLog()
+ {
+ CreateEventLog();
+
+ Background = new SolidColorBrush(Color.FromRgb(240, 240, 240));
+ AllowsTransparency = false;
+ Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico");
+ WindowStartupLocation = WindowStartupLocation.CenterScreen;
+
+ WriteOutImages();
+
+ this.label_Size.Content = "Size: " + Controller.Size;
+ this.label_History.Content = "History: " + Controller.HistorySize;
+
+ this.webbrowser.ObjectForScripting = new SparkleScriptingObject();
+
+ // Disable annoying IE clicking sound
+ CoInternetSetFeatureEnabled(21, 0x00000002, true);
+
+ Closing += this.OnClosing;
+
+ Controller.ShowWindowEvent += delegate {
+ Dispatcher.BeginInvoke((Action)(() => {
+ Show();
+ Activate();
+ BringIntoView();
+ }));
+ };
+
+ Controller.HideWindowEvent += delegate {
+ Dispatcher.BeginInvoke((Action)(() => {
+ Hide();
+ this.spinner.Visibility = Visibility.Visible;
+ this.webbrowser.Visibility = Visibility.Collapsed;
+ }));
+ };
+
+ Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) {
+ Dispatcher.BeginInvoke((Action)(() => {
+ this.label_Size.Content = "Size: " + size;
+ this.label_History.Content = "History: " + history_size;
+ }));
+ };
+
+ Controller.UpdateChooserEvent += delegate (string[] folders) {
+ Dispatcher.BeginInvoke((Action)(() =>
+ UpdateChooser(folders))
+ );
+ };
+
+ Controller.UpdateChooserEnablementEvent += delegate (bool enabled) {
+ Dispatcher.BeginInvoke((Action)(() =>
+ this.combobox.IsEnabled = enabled
+ ));
+ };
+
+ Controller.UpdateContentEvent += delegate (string html) {
+ Dispatcher.BeginInvoke((Action)(() => {
+ UpdateContent(html);
+
+ this.spinner.Visibility = Visibility.Collapsed;
+ this.webbrowser.Visibility = Visibility.Visible;
+ }));
+ };
+
+ Controller.ContentLoadingEvent += () => this.Dispatcher.BeginInvoke(
+ (Action)(() => {
+ this.spinner.Visibility = Visibility.Visible;
+ this.spinner.Start();
+ this.webbrowser.Visibility = Visibility.Collapsed;
+ }));
+
+ Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) {
+ Dispatcher.BeginInvoke((Action)(() => {
+ SaveFileDialog dialog = new SaveFileDialog()
+ {
+ FileName = file_name,
+ InitialDirectory = target_folder_path,
+ Title = "Restore from History",
+ DefaultExt = "." + System.IO.Path.GetExtension(file_name),
+ Filter = "All Files|*.*"
+ };
+
+ bool? result = dialog.ShowDialog(this);
+
+ if (result == true)
+ Controller.SaveDialogCompleted(dialog.FileName);
+ else
+ Controller.SaveDialogCancelled();
+ }));
+ };
+ }
+
+
+ private void CreateEventLog () {
+ grid_Base = new Grid { Background = Brushes.White };
+
+ label_Size = new Label {
+ Content = "Size: ?",
+ Height = 28,
+ HorizontalAlignment = HorizontalAlignment.Left,
+ Margin = new Thickness(20, 0, 0, 0),
+ FontWeight = FontWeights.Bold
+ };
+
+ label_History = new Label {
+ Content = "History: ?",
+ Height = 28,
+ HorizontalAlignment = HorizontalAlignment.Left,
+ Margin = new Thickness(100, 0, 0, 0),
+ FontWeight = FontWeights.Bold
+ };
+
+ combobox = new ComboBox {
+ HorizontalAlignment = HorizontalAlignment.Right,
+ VerticalAlignment = VerticalAlignment.Center,
+ Margin = new Thickness(0, 0, 6, 0),
+ MinWidth = 120
+ };
+
+ spinner = new Spinner { Name = "spinner" };
+ webbrowser = new WebBrowser { Name = "webbrowser" };
+
+ Border border = new Border {
+ VerticalAlignment = VerticalAlignment.Top,
+ Height = 35,
+ Background = new SolidColorBrush(Color.FromArgb(255, 240, 240, 240)),
+ BorderBrush = new SolidColorBrush(Color.FromArgb(255, 223, 223, 223)),
+ BorderThickness = new Thickness(0, 0, 0, 1)
+ };
+
+ Grid borderGrid = new Grid();
+
+ borderGrid.Children.Add(this.label_Size);
+ borderGrid.Children.Add(this.label_History);
+ borderGrid.Children.Add(this.combobox);
+
+ border.Child = borderGrid;
+
+ Grid browserGrid = new Grid { Margin = new Thickness(0, 35, 0, 0) };
+
+ browserGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
+ browserGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
+
+ browserGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
+ browserGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
+
+ browserGrid.Children.Add(this.spinner);
+ browserGrid.Children.Add(this.webbrowser);
+
+ Rectangle sizingControlHeight = new Rectangle {
+ Name = "sizingControlHeight",
+ Visibility = Visibility.Hidden
+ };
+
+ Grid.SetColumn(sizingControlHeight, 1);
+
+ Rectangle sizingControlWidth = new Rectangle {
+ Name = "sizingControlHeight",
+ Visibility = Visibility.Hidden
+ };
+
+ Grid.SetColumn(sizingControlWidth, 0);
+ Grid.SetRow(sizingControlWidth, 0);
+
+ browserGrid.Children.Add(sizingControlHeight);
+ browserGrid.Children.Add(sizingControlWidth);
+
+ webbrowser.SetBinding(HeightProperty, new Binding("ActualHeightProperty") { ElementName = sizingControlHeight.Name });
+ webbrowser.SetBinding(WidthProperty, new Binding("ActualWidthProperty") { ElementName = sizingControlWidth.Name });
+
+ grid_Base.Children.Add(border);
+ }
+
+ private void OnClosing(object sender, CancelEventArgs cancel_event_args)
+ {
+ Controller.WindowClosed();
+ cancel_event_args.Cancel = true;
+ }
+
+
+ private void UpdateContent(string html)
+ {
+ string pixmaps_path = System.IO.Path.Combine(Sparkles.Configuration.DefaultConfiguration.TmpPath, "Images");
+ pixmaps_path = pixmaps_path.Replace("\\", "/");
+
+ html = html.Replace("<a href=", "<a class='windows' href=");
+ html = html.Replace("<!-- $body-font-family -->", "Segoe UI");
+ html = html.Replace("<!-- $day-entry-header-font-size -->", "13px");
+ html = html.Replace("<!-- $body-font-size -->", "12px");
+ html = html.Replace("<!-- $secondary-font-color -->", "#bbb");
+ html = html.Replace("<!-- $small-color -->", "#ddd");
+ html = html.Replace("<!-- $small-font-size -->", "90%");
+ html = html.Replace("<!-- $day-entry-header-background-color -->", "#f5f5f5");
+ html = html.Replace("<!-- $a-color -->", "#0085cf");
+ html = html.Replace("<!-- $a-hover-color -->", "#009ff8");
+ html = html.Replace("<!-- $pixmaps-path -->", pixmaps_path);
+ html = html.Replace("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png");
+ html = html.Replace("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png");
+ html = html.Replace("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png");
+ html = html.Replace("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png");
+
+ this.spinner.Stop();
+
+ this.webbrowser.ObjectForScripting = new SparkleScriptingObject();
+ this.webbrowser.NavigateToString(html);
+ }
+
+
+ public void UpdateChooser(string[] folders)
+ {
+ if (folders == null)
+ {
+ folders = Controller.Folders;
+ }
+
+ this.combobox.Items.Clear();
+ this.combobox.Items.Add(new ComboBoxItem() { Content = "Summary" });
+ this.combobox.Items.Add(new Separator());
+ this.combobox.SelectedItem = combobox.Items[0];
+
+ int row = 2;
+ foreach (string folder in folders)
+ {
+ this.combobox.Items.Add(new ComboBoxItem() { Content = folder });
+
+ if (folder.Equals(Controller.SelectedFolder))
+ this.combobox.SelectedItem = this.combobox.Items[row];
+
+ row++;
+ }
+
+ this.combobox.SelectionChanged += delegate {
+ Dispatcher.BeginInvoke((Action)delegate {
+ int index = this.combobox.SelectedIndex;
+
+ if (index == 0)
+ Controller.SelectedFolder = null;
+ else
+ Controller.SelectedFolder = (string)((ComboBoxItem)this.combobox.Items[index]).Content;
+ });
+ };
+ }
+
+
+ private void WriteOutImages()
+ {
+ string tmp_path = Sparkles.Configuration.DefaultConfiguration.TmpPath;
+ string pixmaps_path = System.IO.Path.Combine(tmp_path, "Images");
+
+ if (!Directory.Exists(pixmaps_path))
+ {
+ Directory.CreateDirectory(pixmaps_path);
+
+ File.SetAttributes(tmp_path, File.GetAttributes(tmp_path) | FileAttributes.Hidden);
+ }
+
+ BitmapSource image = UserInterfaceHelpers.GetImageSource("user-icon-default");
+ string file_path = System.IO.Path.Combine(pixmaps_path, "user-icon-default.png");
+
+ using (FileStream stream = new FileStream(file_path, FileMode.Create))
+ {
+ BitmapEncoder encoder = new PngBitmapEncoder();
+ encoder.Frames.Add(BitmapFrame.Create(image));
+ encoder.Save(stream);
+ }
+
+ string[] actions = new string[] { "added", "deleted", "edited", "moved" };
+
+ foreach (string action in actions)
+ {
+ image = UserInterfaceHelpers.GetImageSource("document-" + action + "-12");
+ file_path = System.IO.Path.Combine(pixmaps_path, "document-" + action + "-12.png");
+
+ using (FileStream stream = new FileStream(file_path, FileMode.Create))
+ {
+ BitmapEncoder encoder = new PngBitmapEncoder();
+ encoder.Frames.Add(BitmapFrame.Create(image));
+ encoder.Save(stream);
+ }
+ }
+ }
+ }
+
+ [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
+ [ComVisible(true)]
+ public class SparkleScriptingObject
+ {
+ public void LinkClicked(string url)
+ {
+ SparkleShare.UI.EventLog.Controller.LinkClicked(url);
+ }
+ }
+}
diff --git a/SparkleShare/Windows/SparkleNote.xaml b/SparkleShare/Windows/UserInterface/Note.xaml
index 22f2b24..2d39a24 100644
--- a/SparkleShare/Windows/SparkleNote.xaml
+++ b/SparkleShare/Windows/UserInterface/Note.xaml
@@ -1,4 +1,4 @@
-<Window x:Class="SparkleShare.SparkleNote"
+<Window x:Class="SparkleShare.Note"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@@ -26,7 +26,7 @@
</StackPanel>
<TextBox x:Name="balloon_text_field" Grid.Row="1" Grid.ColumnSpan="2" Width="438" Height="72" BorderBrush="{x:Null}" BorderThickness="0" Padding="8,12,8,8" TextWrapping="Wrap" AcceptsReturn="True" Text="Anything to add?" >
<TextBox.Background>
- <ImageBrush ImageSource="pack://application:,,,/SparkleShare;component/Pixmaps/text-balloon.png" Stretch="Uniform"></ImageBrush>
+ <ImageBrush ImageSource="pack://application:,,,/SparkleShare.Windows;component/Images/text-balloon.png" Stretch="Uniform"></ImageBrush>
</TextBox.Background>
</TextBox>
<StackPanel Grid.Column="1" Grid.Row="2" VerticalAlignment="Bottom" HorizontalAlignment="Right" Orientation="Horizontal">
diff --git a/SparkleShare/Windows/SparkleNote.xaml.cs b/SparkleShare/Windows/UserInterface/Note.xaml.cs
index a0ba4cc..3616dd7 100644
--- a/SparkleShare/Windows/SparkleNote.xaml.cs
+++ b/SparkleShare/Windows/UserInterface/Note.xaml.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -22,23 +22,23 @@ using System.Windows;
using System.Windows.Forms.Integration;
using System.Windows.Media;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- public partial class SparkleNote : Window {
+ public partial class Note : Window {
- public SparkleNoteController Controller = new SparkleNoteController ();
+ public NoteController Controller = new NoteController ();
private readonly string default_text = "Anything to add?";
- public SparkleNote()
+ public Note ()
{
InitializeComponent();
Background = new SolidColorBrush(Color.FromRgb(240, 240, 240));
AllowsTransparency = false;
- Icon = SparkleUIHelpers.GetImageSource("sparkleshare-app", "ico");
+ Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico");
WindowStartupLocation = WindowStartupLocation.CenterScreen;
Closing += this.OnClosing;
@@ -85,16 +85,16 @@ namespace SparkleShare {
private void CreateNote()
{
- ImageSource avatar = SparkleUIHelpers.GetImageSource("user-icon-default");
+ ImageSource avatar = UserInterfaceHelpers.GetImageSource("user-icon-default");
if (File.Exists (Controller.AvatarFilePath)) {
- avatar = SparkleUIHelpers.GetImage (Controller.AvatarFilePath);
+ avatar = UserInterfaceHelpers.GetImage (Controller.AvatarFilePath);
}
this.user_image.ImageSource = avatar;
this.Title = Controller.CurrentProject ?? "Add Note";
- this.user_name_text_block.Text = Program.Controller.CurrentUser.Name;
- this.user_email_text_field.Text = Program.Controller.CurrentUser.Email;
+ this.user_name_text_block.Text = SparkleShare.Controller.CurrentUser.Name;
+ this.user_email_text_field.Text = SparkleShare.Controller.CurrentUser.Email;
this.balloon_text_field.Text = default_text;
ElementHost.EnableModelessKeyboardInterop (this);
@@ -120,4 +120,4 @@ namespace SparkleShare {
}
}
}
-} \ No newline at end of file
+}
diff --git a/SparkleShare/Windows/SparkleNotifyIcon.cs b/SparkleShare/Windows/UserInterface/NotifyIcon.cs
index d873017..f123511 100644
--- a/SparkleShare/Windows/SparkleNotifyIcon.cs
+++ b/SparkleShare/Windows/UserInterface/NotifyIcon.cs
@@ -1,188 +1,188 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.ComponentModel;
-using System.Runtime.InteropServices;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Input;
-using System.Windows.Markup;
-
-using Drawing = System.Drawing;
-using Forms = System.Windows.Forms;
-
-namespace SparkleShare {
-
- [ContentProperty("Text")]
- [DefaultEvent("MouseDoubleClick")]
- public class SparkleNotifyIcon : UIElement, IAddChild {
-
- [DllImport("user32.dll", EntryPoint = "DestroyIcon")]
- static extern bool DestroyIcon(IntPtr h_icon);
-
- public Drawing.Bitmap Icon {
- set {
- NotifyIcon.Icon = GetIconFromBitmap(value);
- }
- }
-
- public string Text {
- get {
- return (string) GetValue(TextProperty);
- }
- set {
- var text = value;
-
- if(!string.IsNullOrEmpty(HeaderText))
- text = HeaderText + "\n" + text;
-
- SetValue(TextProperty, text);
- }
- }
-
- public ContextMenu ContextMenu {
- get;
- set;
- }
-
- public string HeaderText {
- get;
- set;
- }
-
- private Forms.NotifyIcon NotifyIcon {
- get;
- set;
- }
-
- public readonly RoutedEvent MouseClickEvent = EventManager.RegisterRoutedEvent(
- "MouseClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(SparkleNotifyIcon));
-
- public readonly RoutedEvent MouseDoubleClickEvent = EventManager.RegisterRoutedEvent(
- "MouseDoubleClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(SparkleNotifyIcon));
-
- public readonly DependencyProperty TextProperty = DependencyProperty.Register(
- "Text", typeof(string), typeof(SparkleNotifyIcon), new PropertyMetadata(OnTextChanged));
-
- public SparkleNotifyIcon() {
- VisibilityProperty.OverrideMetadata(typeof(SparkleNotifyIcon), new PropertyMetadata(OnVisibilityChanged));
-
- NotifyIcon = new Forms.NotifyIcon {
- Text = Text,
- Visible = true,
- ContextMenu = new Forms.ContextMenu()
- };
- NotifyIcon.MouseDown += OnMouseDown;
- NotifyIcon.MouseUp += OnMouseUp;
- NotifyIcon.MouseClick += OnMouseClick;
- NotifyIcon.MouseDoubleClick += OnMouseDoubleClick;
- }
-
- public void ShowBalloonTip(string title, string subtext, string image_path) {
- // TODO:
- // - Use the image pointed to by image_path
- // - Find a way to use the prettier (Win7?) balloons
- NotifyIcon.ShowBalloonTip(5 * 1000, title, subtext, Forms.ToolTipIcon.Info);
- }
-
- public void Dispose() {
- NotifyIcon.Dispose();
- }
-
-
- void IAddChild.AddChild(object value) {
- throw new InvalidOperationException();
- }
-
- void IAddChild.AddText(string text) {
- if(text == null)
- throw new ArgumentNullException();
-
- Text = text;
- }
-
- private static MouseButtonEventArgs CreateMouseButtonEventArgs(RoutedEvent handler, Forms.MouseButtons button) {
- MouseButton mouse_button;
-
- if(button == Forms.MouseButtons.Left) {
- mouse_button = MouseButton.Left;
-
- } else if(button == Forms.MouseButtons.Right) {
- mouse_button = MouseButton.Right;
-
- } else if(button == Forms.MouseButtons.Middle) {
- mouse_button = MouseButton.Middle;
-
- } else if(button == Forms.MouseButtons.XButton1) {
- mouse_button = MouseButton.XButton1;
-
- } else if(button == Forms.MouseButtons.XButton2) {
- mouse_button = MouseButton.XButton2;
-
- } else {
- throw new InvalidOperationException();
- }
-
- return new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, 0, mouse_button) {
- RoutedEvent = handler
- };
- }
-
- private void OnVisibilityChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
- SparkleNotifyIcon control = (SparkleNotifyIcon) target;
- control.NotifyIcon.Visible = (control.Visibility == Visibility.Visible);
- }
-
- private void OnMouseDown(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseDownEvent, args.Button));
- }
-
- private void OnMouseClick(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseClickEvent, args.Button));
- }
-
- private void OnMouseDoubleClick(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseDoubleClickEvent, args.Button));
- }
-
- private void OnMouseUp(object sender, Forms.MouseEventArgs args) {
-
- if(args.Button == Forms.MouseButtons.Right) {
-
- ContextMenu.IsOpen = true;
- ContextMenu.StaysOpen = false;
- }
-
- RaiseEvent(CreateMouseButtonEventArgs(MouseUpEvent, args.Button));
- }
-
- private static void OnTextChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
- SparkleNotifyIcon control = (SparkleNotifyIcon) target;
- control.NotifyIcon.Text = control.Text;
- }
-
-
- private static Drawing.Icon GetIconFromBitmap(Drawing.Bitmap bitmap) {
- IntPtr unmanaged_icon = bitmap.GetHicon();
- Drawing.Icon icon = (Drawing.Icon) Drawing.Icon.FromHandle(unmanaged_icon).Clone();
- DestroyIcon(unmanaged_icon);
-
- return icon;
- }
- }
-}
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Markup;
+
+using Drawing = System.Drawing;
+using Forms = System.Windows.Forms;
+
+namespace SparkleShare {
+
+ [ContentProperty("Text")]
+ [DefaultEvent("MouseDoubleClick")]
+ public class NotifyIcon : UIElement, IAddChild {
+
+ [DllImport("user32.dll", EntryPoint = "DestroyIcon")]
+ static extern bool DestroyIcon(IntPtr h_icon);
+
+ public Drawing.Bitmap Icon {
+ set {
+ Notification.Icon = GetIconFromBitmap(value);
+ }
+ }
+
+ public string Text {
+ get {
+ return (string) GetValue(TextProperty);
+ }
+ set {
+ var text = value;
+
+ if(!string.IsNullOrEmpty(HeaderText))
+ text = HeaderText + "\n" + text;
+
+ SetValue(TextProperty, text);
+ }
+ }
+
+ public ContextMenu ContextMenu {
+ get;
+ set;
+ }
+
+ public string HeaderText {
+ get;
+ set;
+ }
+
+ private Forms.NotifyIcon Notification {
+ get;
+ set;
+ }
+
+ public readonly RoutedEvent MouseClickEvent = EventManager.RegisterRoutedEvent(
+ "MouseClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(NotifyIcon));
+
+ public readonly RoutedEvent MouseDoubleClickEvent = EventManager.RegisterRoutedEvent(
+ "MouseDoubleClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(NotifyIcon));
+
+ public readonly DependencyProperty TextProperty = DependencyProperty.Register(
+ "Text", typeof(string), typeof(NotifyIcon), new PropertyMetadata(OnTextChanged));
+
+ public NotifyIcon() {
+ VisibilityProperty.OverrideMetadata(typeof(NotifyIcon), new PropertyMetadata(OnVisibilityChanged));
+
+ Notification = new Forms.NotifyIcon {
+ Text = Text,
+ Visible = true,
+ ContextMenu = new Forms.ContextMenu()
+ };
+ Notification.MouseDown += OnMouseDown;
+ Notification.MouseUp += OnMouseUp;
+ Notification.MouseClick += OnMouseClick;
+ Notification.MouseDoubleClick += OnMouseDoubleClick;
+ }
+
+ public void ShowBalloonTip(string title, string subtext, string image_path) {
+ // TODO:
+ // - Use the image pointed to by image_path
+ // - Find a way to use the prettier (Win7?) balloons
+ Notification.ShowBalloonTip(5 * 1000, title, subtext, Forms.ToolTipIcon.Info);
+ }
+
+ public void Dispose() {
+ Notification.Dispose();
+ }
+
+
+ void IAddChild.AddChild(object value) {
+ throw new InvalidOperationException();
+ }
+
+ void IAddChild.AddText(string text) {
+ if(text == null)
+ throw new ArgumentNullException();
+
+ Text = text;
+ }
+
+ private static MouseButtonEventArgs CreateMouseButtonEventArgs(RoutedEvent handler, Forms.MouseButtons button) {
+ MouseButton mouse_button;
+
+ if(button == Forms.MouseButtons.Left) {
+ mouse_button = MouseButton.Left;
+
+ } else if(button == Forms.MouseButtons.Right) {
+ mouse_button = MouseButton.Right;
+
+ } else if(button == Forms.MouseButtons.Middle) {
+ mouse_button = MouseButton.Middle;
+
+ } else if(button == Forms.MouseButtons.XButton1) {
+ mouse_button = MouseButton.XButton1;
+
+ } else if(button == Forms.MouseButtons.XButton2) {
+ mouse_button = MouseButton.XButton2;
+
+ } else {
+ throw new InvalidOperationException();
+ }
+
+ return new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, 0, mouse_button) {
+ RoutedEvent = handler
+ };
+ }
+
+ private void OnVisibilityChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
+ NotifyIcon control = (NotifyIcon) target;
+ control.Notification.Visible = (control.Visibility == Visibility.Visible);
+ }
+
+ private void OnMouseDown(object sender, Forms.MouseEventArgs args) {
+ RaiseEvent(CreateMouseButtonEventArgs(MouseDownEvent, args.Button));
+ }
+
+ private void OnMouseClick(object sender, Forms.MouseEventArgs args) {
+ RaiseEvent(CreateMouseButtonEventArgs(MouseClickEvent, args.Button));
+ }
+
+ private void OnMouseDoubleClick(object sender, Forms.MouseEventArgs args) {
+ RaiseEvent(CreateMouseButtonEventArgs(MouseDoubleClickEvent, args.Button));
+ }
+
+ private void OnMouseUp(object sender, Forms.MouseEventArgs args) {
+
+ if(args.Button == Forms.MouseButtons.Right) {
+
+ ContextMenu.IsOpen = true;
+ ContextMenu.StaysOpen = false;
+ }
+
+ RaiseEvent(CreateMouseButtonEventArgs(MouseUpEvent, args.Button));
+ }
+
+ private static void OnTextChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
+ NotifyIcon control = (NotifyIcon) target;
+ control.Notification.Text = control.Text;
+ }
+
+
+ private static Drawing.Icon GetIconFromBitmap(Drawing.Bitmap bitmap) {
+ IntPtr unmanaged_icon = bitmap.GetHicon();
+ Drawing.Icon icon = (Drawing.Icon) Drawing.Icon.FromHandle(unmanaged_icon).Clone();
+ DestroyIcon(unmanaged_icon);
+
+ return icon;
+ }
+ }
+}
diff --git a/SparkleShare/Windows/UserInterface/ProtocolHandler.cs b/SparkleShare/Windows/UserInterface/ProtocolHandler.cs
new file mode 100644
index 0000000..b08bd7e
--- /dev/null
+++ b/SparkleShare/Windows/UserInterface/ProtocolHandler.cs
@@ -0,0 +1,74 @@
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using Microsoft.Win32;
+using System.IO;
+
+namespace SparkleShare
+{
+
+ /// <summary>
+ /// Maintain Protocol Handlers created by SparkleShare
+ /// </summary>
+ static class SparkleProtocolHandler
+ {
+
+ /// <summary>
+ /// Add or Update protocol handler
+ /// </summary>
+ /// <param name="handleName">The name of the handler to add</param>
+ /// <param name="handleValue">Default value of the protocol handler</param>
+ /// <param name="handleCommand">The arguments passed to the Invite Opener</param>
+ internal static void AddProtocolHandler(string handleName, string handleValue, string handleCommand)
+ {
+ var inviteOpener = Path.Combine(Directory.GetCurrentDirectory(), "SparkleShareInviteOpener");
+
+ // test the handleName for third party protocols like GitHub
+ // if one exist and their default value doesn't match our custom Protocol, do not update
+ using (RegistryKey testKey = Registry.ClassesRoot.OpenSubKey(handleName))
+ {
+ if (testKey == null || handleValue.Equals(testKey.GetValue("")))
+ {
+ using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software").CreateSubKey("Classes").CreateSubKey(handleName))
+ {
+ key.SetValue("", handleValue);
+ key.SetValue("URL Protocol", "");
+ key.CreateSubKey("DefaultIcon").SetValue("", inviteOpener);
+ key.CreateSubKey("shell")
+ .CreateSubKey("open")
+ .CreateSubKey("command")
+ .SetValue("", inviteOpener + " " + handleCommand);
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Remove protocol handler
+ /// </summary>
+ /// <param name="handleName">The name of the handler to remove</param>
+ /// <param name="handleValue">Default value of the protocol handler</param>
+ internal static void RemoveProtocolHandler(string handleName, string handleValue)
+ {
+ var key = Registry.CurrentUser.OpenSubKey(handleName);
+
+ // if the the default value doesn't match our custom Protocol, do not remove
+ if (key != null && handleValue.Equals(key.GetValue("")))
+ Registry.CurrentUser.DeleteSubKeyTree(handleName);
+ }
+ }
+}
diff --git a/SparkleShare/Windows/SparkleSetup.cs b/SparkleShare/Windows/UserInterface/Setup.cs
index d51d69e..d6b523c 100644
--- a/SparkleShare/Windows/SparkleSetup.cs
+++ b/SparkleShare/Windows/UserInterface/Setup.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General private License as published by
@@ -15,33 +15,27 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using Sparkles;
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.IO;
-using System.Media;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
using System.Windows.Shell;
using Drawing = System.Drawing;
using Imaging = System.Windows.Interop.Imaging;
-using WPF = System.Windows.Controls;
namespace SparkleShare {
- public class SparkleSetup : SparkleSetupWindow {
+ public class Setup : SetupWindow {
- public SparkleSetupController Controller = new SparkleSetupController ();
+ public SetupController Controller = new SetupController ();
- public SparkleSetup ()
+ public Setup ()
{
Controller.ShowWindowEvent += delegate {
Dispatcher.BeginInvoke ((Action) delegate {
@@ -139,7 +133,7 @@ namespace SparkleShare {
cancel_button.Click += delegate {
Dispatcher.BeginInvoke ((Action) delegate {
- Program.UI.StatusIcon.Dispose ();
+ SparkleShare.UI.StatusIcon.Dispose ();
Controller.SetupPageCancelled ();
});
};
@@ -268,7 +262,7 @@ namespace SparkleShare {
header_style.Setters.Add (new Setter (GridViewColumnHeader.VisibilityProperty, Visibility.Collapsed));
grid_view.ColumnHeaderContainerStyle = header_style;
- foreach (SparklePlugin plugin in Controller.Plugins) {
+ foreach (Preset plugin in Controller.Presets) {
// FIXME: images are blurry
BitmapFrame image = BitmapFrame.Create (
new Uri (plugin.ImagePath)
@@ -284,7 +278,7 @@ namespace SparkleShare {
}
list_view.View = grid_view;
- list_view.SelectedIndex = Controller.SelectedPluginIndex;
+ list_view.SelectedIndex = Controller.SelectedPresetIndex;
TextBlock address_label = new TextBlock () {
Text = "Address:",
@@ -294,11 +288,11 @@ namespace SparkleShare {
TextBox address_box = new TextBox () {
Width = 200,
Text = Controller.PreviousAddress,
- IsEnabled = (Controller.SelectedPlugin.Address == null)
+ IsEnabled = (Controller.SelectedPreset.Address == null)
};
TextBlock address_help_label = new TextBlock () {
- Text = Controller.SelectedPlugin.AddressExample,
+ Text = Controller.SelectedPreset.AddressExample,
FontSize = 11,
Foreground = new SolidColorBrush (Color.FromRgb (128, 128, 128))
};
@@ -312,11 +306,11 @@ namespace SparkleShare {
TextBox path_box = new TextBox () {
Width = 200,
Text = Controller.PreviousPath,
- IsEnabled = (Controller.SelectedPlugin.Path == null)
+ IsEnabled = (Controller.SelectedPreset.Path == null)
};
TextBlock path_help_label = new TextBlock () {
- Text = Controller.SelectedPlugin.PathExample,
+ Text = Controller.SelectedPreset.PathExample,
FontSize = 11,
Width = 200,
Foreground = new SolidColorBrush (Color.FromRgb (128, 128, 128))
@@ -409,11 +403,11 @@ namespace SparkleShare {
};
list_view.SelectionChanged += delegate {
- Controller.SelectedPluginChanged (list_view.SelectedIndex);
+ Controller.SelectedPresetChanged (list_view.SelectedIndex);
};
list_view.KeyDown += delegate {
- Controller.SelectedPluginChanged (list_view.SelectedIndex);
+ Controller.SelectedPresetChanged (list_view.SelectedIndex);
};
Controller.CheckAddPage (address_box.Text, path_box.Text, list_view.SelectedIndex);
@@ -509,7 +503,7 @@ namespace SparkleShare {
help_block.Inlines.Add (new Bold (new Run (Controller.PreviousUrl)));
help_block.Inlines.Add (" is the address we’ve compiled. Does this look alright?\n\n");
- help_block.Inlines.Add ("Is this computer’s Client ID known by the host??");
+ help_block.Inlines.Add ("Is this computer’s Client ID known by the host?");
if (warnings.Length > 0) {
bullets_block.Text += "\n\n•";
@@ -773,7 +767,7 @@ namespace SparkleShare {
};
Button show_files_button = new Button () {
- Content = "Show files…"
+ Content = "Show files"
};
if (warnings.Length > 0) {
@@ -814,167 +808,6 @@ namespace SparkleShare {
break;
}
-
- case PageType.Tutorial: {
- switch (Controller.TutorialPageNumber) {
- case 1: {
- Header = "What’s happening next?";
- Description = "SparkleShare creates a special folder on your computer " +
- "that will keep track of your projects.";
-
-
- WPF.Image slide_image = new WPF.Image () {
- Width = 324,
- Height = 200
- };
-
- slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-1");
-
- Button skip_tutorial_button = new Button () {
- Content = "Skip tutorial"
- };
-
- Button continue_button = new Button () {
- Content = "Continue"
- };
-
-
- ContentCanvas.Children.Add (slide_image);
- Canvas.SetLeft (slide_image, 228);
- Canvas.SetTop (slide_image, 130);
-
- Buttons.Add (skip_tutorial_button);
- Buttons.Add (continue_button);
-
-
- skip_tutorial_button.Click += delegate {
- Controller.TutorialSkipped ();
- };
-
- continue_button.Click += delegate {
- Controller.TutorialPageCompleted ();
- };
-
- break;
- }
-
- case 2: {
- Header = "Sharing files with others";
- Description = "All files added to your project folders are synced automatically with " +
- "the host and your team members.";
-
-
- Button continue_button = new Button () {
- Content = "Continue"
- };
-
- WPF.Image slide_image = new WPF.Image () {
- Width = 324,
- Height = 200
- };
-
- slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-2");
-
-
- ContentCanvas.Children.Add (slide_image);
- Canvas.SetLeft (slide_image, 228);
- Canvas.SetTop (slide_image, 130);
-
- Buttons.Add (continue_button);
-
-
- continue_button.Click += delegate {
- Controller.TutorialPageCompleted ();
- };
-
- break;
- }
-
- case 3: {
- Header = "The status icon helps you";
- Description = "It shows the syncing progress, provides easy access to " +
- "your projects, and lets you view recent changes.";
-
- Button continue_button = new Button () {
- Content = "Continue"
- };
-
- WPF.Image slide_image = new WPF.Image () {
- Width = 324,
- Height = 200
- };
-
- slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-3");
-
-
- ContentCanvas.Children.Add (slide_image);
- Canvas.SetLeft (slide_image, 228);
- Canvas.SetTop (slide_image, 130);
-
- Buttons.Add (continue_button);
-
-
- continue_button.Click += delegate {
- Controller.TutorialPageCompleted ();
- };
-
- break;
- }
-
- case 4: {
- Header = "Here’s your unique Client ID";
- Description = "You’ll need it whenever you want to link this computer to a host. " +
- "You can also find it in the status icon menu.";
-
-
- TextBox link_code_text_box = new TextBox () {
- Text = Program.Controller.CurrentUser.PublicKey,
- Width = 250,
- MaxLines = 1,
- TextWrapping = TextWrapping.NoWrap,
- IsEnabled = false
- };
-
- Button copy_button = new Button () {
- Content = "Copy",
- Width = 60
- };
-
- Button finish_button = new Button () {
- Content = "Finish"
- };
-
- CheckBox check_box = new CheckBox () {
- Content = "Add SparkleShare to startup items",
- IsChecked = true
- };
-
-
- ContentCanvas.Children.Add (link_code_text_box);
- Canvas.SetLeft (link_code_text_box, 235);
- Canvas.SetTop (link_code_text_box, 190);
-
- ContentCanvas.Children.Add (copy_button);
- Canvas.SetLeft (copy_button, 490);
- Canvas.SetTop (copy_button, 190);
-
- ContentCanvas.Children.Add (check_box);
- Canvas.SetLeft (check_box, 185);
- Canvas.SetBottom (check_box, 12);
-
- Buttons.Add (finish_button);
-
-
- check_box.Click += delegate { Controller.StartupItemChanged (check_box.IsChecked.Value); };
- finish_button.Click += delegate { Controller.TutorialPageCompleted (); };
- copy_button.Click += delegate { Controller.CopyToClipboardClicked(); };
-
- break;
- }
- }
-
- break;
- }
}
ShowAll ();
diff --git a/SparkleShare/Windows/SparkleSetupWindow.cs b/SparkleShare/Windows/UserInterface/SetupWindow.cs
index 87607e2..6208906 100644
--- a/SparkleShare/Windows/SparkleSetupWindow.cs
+++ b/SparkleShare/Windows/UserInterface/SetupWindow.cs
@@ -1,193 +1,193 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// 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 3 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, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Forms.Integration;
-using System.Windows.Media;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-using System.Runtime.InteropServices;
-using System.Windows.Interop;
-
-namespace SparkleShare {
-
- public class SparkleSetupWindow : Window {
-
- public Canvas ContentCanvas = new Canvas ();
- public List <Button> Buttons = new List <Button> ();
- public string Header;
- public string Description;
-
- private Image side_splash;
- private Rectangle bar;
-
- private Rectangle line;
-
-
- public SparkleSetupWindow ()
- {
- Title = "SparkleShare Setup";
- Width = 640;
- Height = 440;
- ResizeMode = ResizeMode.NoResize;
- Background = new SolidColorBrush (Colors.WhiteSmoke);
- Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico");
-
- TaskbarItemInfo = new TaskbarItemInfo () {
- Description = "SparkleShare"
- };
-
- WindowStartupLocation = WindowStartupLocation.CenterScreen;
- Content = ContentCanvas;
-
- // Remove the close button
- Closing += Close;
- SourceInitialized += delegate {
- const int gwl_style = -16;
- const int ws_sysmenu = 0x00080000;
- WindowInteropHelper helper = new WindowInteropHelper (this);
- int style = GetWindowLong (helper.Handle, gwl_style);
- SetWindowLong (helper.Handle, gwl_style, style & ~ws_sysmenu);
- };
-
- this.bar = new Rectangle () {
- Width = Width,
- Height = 40,
- Fill = new SolidColorBrush (Color.FromRgb (240, 240, 240))
- };
-
- this.line = new Rectangle () {
- Width = Width,
- Height = 1,
- Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223))
- };
-
- this.side_splash = new Image () {
- Width = 150,
- Height = 482
- };
-
- this.side_splash.Source = SparkleUIHelpers.GetImageSource ("side-splash");
-
-
- ContentCanvas.Children.Add (this.bar);
- Canvas.SetRight (bar, 0);
- Canvas.SetBottom (bar, 0);
-
- ContentCanvas.Children.Add (this.line);
- Canvas.SetRight (this.line, 0);
- Canvas.SetBottom (this.line, 40);
-
- ContentCanvas.Children.Add (this.side_splash);
- Canvas.SetLeft (this.side_splash, 0);
- Canvas.SetBottom (this.side_splash, 0);
- }
-
-
- public void Reset ()
- {
- ContentCanvas.Children.Remove (this.bar);
-
- ContentCanvas.Children.Remove (this.line);
-
- ContentCanvas.Children.Remove (this.side_splash);
- ContentCanvas = new Canvas ();
- Content = ContentCanvas;
-
- ContentCanvas.Children.Add (this.bar);
- ContentCanvas.Children.Add (this.line);
- ContentCanvas.Children.Add (this.side_splash);
-
- Buttons = new List <Button> ();
- Header = "";
- Description = "";
- }
-
-
- public void ShowAll ()
- {
- Label header_label = new Label () {
- Content = Header,
- Foreground = new SolidColorBrush (Color.FromRgb (0, 51, 153)),
- FontSize = 16
- };
-
- TextBlock description_label = new TextBlock () {
- Text = Description,
- TextWrapping = TextWrapping.Wrap,
- Width = 375
- };
-
-
- ContentCanvas.Children.Add (header_label);
- Canvas.SetLeft (header_label, 180);
- Canvas.SetTop (header_label, 18);
-
- ContentCanvas.Children.Add (description_label);
- Canvas.SetLeft (description_label, 185);
- Canvas.SetTop (description_label, 60);
-
-
- if (Buttons.Count > 0) {
- Buttons [0].IsDefault = true;
- Buttons.Reverse ();
-
- int right = 9;
-
- foreach (Button button in Buttons) {
- button.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
- Rect rect = new Rect (button.DesiredSize);
-
- button.Width = rect.Width + 26;
-
- if (button.Width < 75)
- button.Width = 75;
-
- ContentCanvas.Children.Add (button);
- Canvas.SetRight (button, right);
- Canvas.SetBottom (button, 9);
-
- right += (int) button.Width + 9;
-
- if ((button.Content as string).Equals ("Continue")) {
- Buttons [Buttons.Count - 1].IsDefault = false;
- button.IsDefault = true;
- }
- }
- }
-
- ElementHost.EnableModelessKeyboardInterop (this);
- }
-
-
- private void Close (object sender, CancelEventArgs args)
- {
- args.Cancel = true;
- }
-
-
- [DllImport("user32.dll")]
- private extern static int SetWindowLong (IntPtr hwnd, int index, int value);
-
- [DllImport("user32.dll")]
- private extern static int GetWindowLong (IntPtr hwnd, int index);
- }
-}
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk)
+//
+// 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 3 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, see (http://www.gnu.org/licenses/).
+
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Forms.Integration;
+using System.Windows.Media;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using System.Runtime.InteropServices;
+using System.Windows.Interop;
+
+namespace SparkleShare {
+
+ public class SetupWindow : Window {
+
+ public Canvas ContentCanvas = new Canvas ();
+ public List <Button> Buttons = new List <Button> ();
+ public string Header;
+ public string Description;
+
+ private Image side_splash;
+ private Rectangle bar;
+
+ private Rectangle line;
+
+
+ public SetupWindow ()
+ {
+ Title = "SparkleShare Setup";
+ Width = 640;
+ Height = 440;
+ ResizeMode = ResizeMode.NoResize;
+ Background = new SolidColorBrush (Colors.WhiteSmoke);
+ Icon = UserInterfaceHelpers.GetImageSource ("sparkleshare-app", "ico");
+
+ TaskbarItemInfo = new TaskbarItemInfo () {
+ Description = "SparkleShare"
+ };
+
+ WindowStartupLocation = WindowStartupLocation.CenterScreen;
+ Content = ContentCanvas;
+
+ // Remove the close button
+ Closing += Close;
+ SourceInitialized += delegate {
+ const int gwl_style = -16;
+ const int ws_sysmenu = 0x00080000;
+ WindowInteropHelper helper = new WindowInteropHelper (this);
+ int style = GetWindowLong (helper.Handle, gwl_style);
+ SetWindowLong (helper.Handle, gwl_style, style & ~ws_sysmenu);
+ };
+
+ this.bar = new Rectangle () {
+ Width = Width,
+ Height = 40,
+ Fill = new SolidColorBrush (Color.FromRgb (240, 240, 240))
+ };
+
+ this.line = new Rectangle () {
+ Width = Width,
+ Height = 1,
+ Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223))
+ };
+
+ this.side_splash = new Image () {
+ Width = 150,
+ Height = 482
+ };
+
+ this.side_splash.Source = UserInterfaceHelpers.GetImageSource ("side-splash");
+
+
+ ContentCanvas.Children.Add (this.bar);
+ Canvas.SetRight (bar, 0);
+ Canvas.SetBottom (bar, 0);
+
+ ContentCanvas.Children.Add (this.line);
+ Canvas.SetRight (this.line, 0);
+ Canvas.SetBottom (this.line, 40);
+
+ ContentCanvas.Children.Add (this.side_splash);
+ Canvas.SetLeft (this.side_splash, 0);
+ Canvas.SetBottom (this.side_splash, 0);
+ }
+
+
+ public void Reset ()
+ {
+ ContentCanvas.Children.Remove (this.bar);
+
+ ContentCanvas.Children.Remove (this.line);
+
+ ContentCanvas.Children.Remove (this.side_splash);
+ ContentCanvas = new Canvas ();
+ Content = ContentCanvas;
+
+ ContentCanvas.Children.Add (this.bar);
+ ContentCanvas.Children.Add (this.line);
+ ContentCanvas.Children.Add (this.side_splash);
+
+ Buttons = new List <Button> ();
+ Header = "";
+ Description = "";
+ }
+
+
+ public void ShowAll ()
+ {
+ Label header_label = new Label () {
+ Content = Header,
+ Foreground = new SolidColorBrush (Color.FromRgb (0, 51, 153)),
+ FontSize = 16
+ };
+
+ TextBlock description_label = new TextBlock () {
+ Text = Description,
+ TextWrapping = TextWrapping.Wrap,
+ Width = 375
+ };
+
+
+ ContentCanvas.Children.Add (header_label);
+ Canvas.SetLeft (header_label, 180);
+ Canvas.SetTop (header_label, 18);
+
+ ContentCanvas.Children.Add (description_label);
+ Canvas.SetLeft (description_label, 185);
+ Canvas.SetTop (description_label, 60);
+
+
+ if (Buttons.Count > 0) {
+ Buttons [0].IsDefault = true;
+ Buttons.Reverse ();
+
+ int right = 9;
+
+ foreach (Button button in Buttons) {
+ button.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
+ Rect rect = new Rect (button.DesiredSize);
+
+ button.Width = rect.Width + 26;
+
+ if (button.Width < 75)
+ button.Width = 75;
+
+ ContentCanvas.Children.Add (button);
+ Canvas.SetRight (button, right);
+ Canvas.SetBottom (button, 9);
+
+ right += (int) button.Width + 9;
+
+ if ((button.Content as string).Equals ("Continue")) {
+ Buttons [Buttons.Count - 1].IsDefault = false;
+ button.IsDefault = true;
+ }
+ }
+ }
+
+ ElementHost.EnableModelessKeyboardInterop (this);
+ }
+
+
+ private void Close (object sender, CancelEventArgs args)
+ {
+ args.Cancel = true;
+ }
+
+
+ [DllImport("user32.dll")]
+ private extern static int SetWindowLong (IntPtr hwnd, int index, int value);
+
+ [DllImport("user32.dll")]
+ private extern static int GetWindowLong (IntPtr hwnd, int index);
+ }
+}
diff --git a/SparkleShare/Windows/SparkleShortcut.cs b/SparkleShare/Windows/UserInterface/Shortcut.cs
index 763a697..aded16e 100644
--- a/SparkleShare/Windows/SparkleShortcut.cs
+++ b/SparkleShare/Windows/UserInterface/Shortcut.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -16,11 +16,8 @@
using System;
-using System.ComponentModel;
-using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
-using System.Windows.Forms;
namespace SparkleShare {
diff --git a/SparkleShare/Windows/SparkleSpinner.cs b/SparkleShare/Windows/UserInterface/Spinner.cs
index e8a3885..6f5bcbd 100644
--- a/SparkleShare/Windows/SparkleSpinner.cs
+++ b/SparkleShare/Windows/UserInterface/Spinner.cs
@@ -1,91 +1,91 @@
-// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Timers;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media.Imaging;
-using System.ComponentModel;
-
-namespace SparkleShare {
- public class SparkleSpinner : Image {
-
- private Timer timer;
-
- public SparkleSpinner ()
- : this (22) {
- }
-
- public SparkleSpinner (int size) : base () {
- if (DesignerProperties.GetIsInDesignMode(this)) {
- return;
- }
-
- Width = size;
- Height = size;
-
- int current_frame = 0;
- BitmapSource spinner_gallery = SparkleUIHelpers.GetImageSource ("process-working-22");
- int frames_in_width = spinner_gallery.PixelWidth / size;
- int frames_in_height = spinner_gallery.PixelHeight / size;
- int frame_count = (frames_in_width * frames_in_height) - 1;
- Image [] frames = new Image [frame_count];
-
- int i = 0;
- for (int y = 0; y < frames_in_height; y++) {
- for (int x = 0; x < frames_in_width; x++) {
- if (!(y == 0 && x == 0)) {
- CroppedBitmap crop = new CroppedBitmap (spinner_gallery,
- new Int32Rect (size * x, size * y, size, size));
-
- frames [i] = new Image ();
- frames [i].Source = crop;
- i++;
- }
- }
- }
-
- this.timer = new Timer () {
- Interval = 400 / frame_count
- };
-
- this.timer.Elapsed += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- if (current_frame < frame_count - 1)
- current_frame++;
- else
- current_frame = 0;
-
- Source = frames [current_frame].Source;
- });
- };
- }
-
-
- public void Start ()
- {
- this.timer.Start ();
- }
-
-
- public void Stop ()
- {
- this.timer.Stop ();
- }
- }
-}
+// SparkleShare, a collaboration and sharing tool.
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
+//
+// 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+using System;
+using System.Timers;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media.Imaging;
+using System.ComponentModel;
+
+namespace SparkleShare {
+ public class Spinner : Image {
+
+ private Timer timer;
+
+ public Spinner ()
+ : this (22) {
+ }
+
+ public Spinner (int size) : base () {
+ if (DesignerProperties.GetIsInDesignMode(this)) {
+ return;
+ }
+
+ Width = size;
+ Height = size;
+
+ int current_frame = 0;
+ BitmapSource spinner_gallery = UserInterfaceHelpers.GetImageSource ("process-working-22");
+ int frames_in_width = spinner_gallery.PixelWidth / size;
+ int frames_in_height = spinner_gallery.PixelHeight / size;
+ int frame_count = (frames_in_width * frames_in_height) - 1;
+ Image [] frames = new Image [frame_count];
+
+ int i = 0;
+ for (int y = 0; y < frames_in_height; y++) {
+ for (int x = 0; x < frames_in_width; x++) {
+ if (!(y == 0 && x == 0)) {
+ CroppedBitmap crop = new CroppedBitmap (spinner_gallery,
+ new Int32Rect (size * x, size * y, size, size));
+
+ frames [i] = new Image ();
+ frames [i].Source = crop;
+ i++;
+ }
+ }
+ }
+
+ this.timer = new Timer () {
+ Interval = 400 / frame_count
+ };
+
+ this.timer.Elapsed += delegate {
+ Dispatcher.BeginInvoke ((Action) delegate {
+ if (current_frame < frame_count - 1)
+ current_frame++;
+ else
+ current_frame = 0;
+
+ Source = frames [current_frame].Source;
+ });
+ };
+ }
+
+
+ public void Start ()
+ {
+ this.timer.Start ();
+ }
+
+
+ public void Stop ()
+ {
+ this.timer.Stop ();
+ }
+ }
+}
diff --git a/SparkleShare/Windows/SparkleStatusIcon.cs b/SparkleShare/Windows/UserInterface/StatusIcon.cs
index a4a77ad..fb02f59 100644
--- a/SparkleShare/Windows/SparkleStatusIcon.cs
+++ b/SparkleShare/Windows/UserInterface/StatusIcon.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -26,15 +26,15 @@ using Drawing = System.Drawing;
namespace SparkleShare {
- public class SparkleStatusIcon : Control {
+ public class StatusIcon : Control {
- public SparkleStatusIconController Controller = new SparkleStatusIconController();
+ public StatusIconController Controller = new StatusIconController();
- private readonly Drawing.Bitmap syncing_idle_image = SparkleUIHelpers.GetBitmap("process-syncing-idle");
- private readonly Drawing.Bitmap syncing_up_image = SparkleUIHelpers.GetBitmap("process-syncing-up");
- private readonly Drawing.Bitmap syncing_down_image = SparkleUIHelpers.GetBitmap("process-syncing-down");
- private readonly Drawing.Bitmap syncing_image = SparkleUIHelpers.GetBitmap("process-syncing");
- private readonly Drawing.Bitmap syncing_error_image = SparkleUIHelpers.GetBitmap("process-syncing-error");
+ private readonly Drawing.Bitmap syncing_idle_image = UserInterfaceHelpers.GetBitmap("process-syncing-idle");
+ private readonly Drawing.Bitmap syncing_up_image = UserInterfaceHelpers.GetBitmap("process-syncing-up");
+ private readonly Drawing.Bitmap syncing_down_image = UserInterfaceHelpers.GetBitmap("process-syncing-down");
+ private readonly Drawing.Bitmap syncing_image = UserInterfaceHelpers.GetBitmap("process-syncing");
+ private readonly Drawing.Bitmap syncing_error_image = UserInterfaceHelpers.GetBitmap("process-syncing-error");
private ContextMenu context_menu;
@@ -43,10 +43,10 @@ namespace SparkleShare {
private SparkleMenuItem exit_item;
private SparkleMenuItem[] state_menu_items;
- private readonly SparkleNotifyIcon notify_icon = new SparkleNotifyIcon();
+ private readonly NotifyIcon notify_icon = new NotifyIcon();
- public SparkleStatusIcon() {
+ public StatusIcon() {
this.notify_icon.HeaderText = "SparkleShare";
this.notify_icon.Icon = this.syncing_idle_image;
@@ -117,7 +117,7 @@ namespace SparkleShare {
};
Image folder_image = new Image {
- Source = SparkleUIHelpers.GetImageSource("sparkleshare-folder"),
+ Source = UserInterfaceHelpers.GetImageSource("sparkleshare-folder"),
Width = 16,
Height = 16
};
@@ -142,7 +142,7 @@ namespace SparkleShare {
if(Controller.LinkCodeItemEnabled) {
SparkleMenuItem code_item = new SparkleMenuItem {
- Header = Program.Controller.CurrentUser.PublicKey.Substring(0, 20) + "..."
+ Header = SparkleShare.Controller.UserAuthenticationInfo.PublicKey.Substring(0, 20) + "..."
};
SparkleMenuItem copy_item = new SparkleMenuItem {
@@ -159,7 +159,7 @@ namespace SparkleShare {
CheckBox notify_check_box = new CheckBox {
Margin = new Thickness(6, 0, 0, 0),
- IsChecked = Program.Controller.NotificationsEnabled
+ IsChecked = SparkleShare.Controller.NotificationsEnabled
};
SparkleMenuItem notify_item = new SparkleMenuItem {
@@ -187,13 +187,13 @@ namespace SparkleShare {
notify_check_box.Click += delegate {
this.context_menu.IsOpen = false;
- Program.Controller.ToggleNotifications();
- notify_check_box.IsChecked = Program.Controller.NotificationsEnabled;
+ SparkleShare.Controller.ToggleNotifications();
+ notify_check_box.IsChecked = SparkleShare.Controller.NotificationsEnabled;
};
notify_item.Click += delegate {
- Program.Controller.ToggleNotifications();
- notify_check_box.IsChecked = Program.Controller.NotificationsEnabled;
+ SparkleShare.Controller.ToggleNotifications();
+ notify_check_box.IsChecked = SparkleShare.Controller.NotificationsEnabled;
};
this.exit_item.Click += delegate {
@@ -215,7 +215,7 @@ namespace SparkleShare {
SparkleMenuItem subfolder_item = new SparkleMenuItem {
Header = project.Name.Replace("_", "__"),
Icon = new Image {
- Source = SparkleUIHelpers.GetImageSource("folder"),
+ Source = UserInterfaceHelpers.GetImageSource("folder"),
Width = 16,
Height = 16
}
@@ -233,7 +233,7 @@ namespace SparkleShare {
Header = "Open folder",
Icon = new Image
{
- Source = SparkleUIHelpers.GetImageSource("folder"),
+ Source = UserInterfaceHelpers.GetImageSource("folder"),
Width = 16,
Height = 16
}
@@ -284,7 +284,7 @@ namespace SparkleShare {
};
SparkleMenuItem try_again_item = new SparkleMenuItem {
- Header = "Try Again"
+ Header = "Retry Sync"
};
try_again_item.Click += (sender, e) => Controller.TryAgainDelegate(project.Name)(sender, e);
subfolder_item.Items.Add(try_again_item);
diff --git a/SparkleShare/Windows/SparkleUI.cs b/SparkleShare/Windows/UserInterface/UserInterface.cs
index 31f5ebb..a897e60 100644
--- a/SparkleShare/Windows/SparkleUI.cs
+++ b/SparkleShare/Windows/UserInterface/UserInterface.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -19,43 +19,43 @@ using System;
using System.Threading;
using System.Windows.Forms;
-using SparkleLib;
+using Sparkles;
namespace SparkleShare {
- public class SparkleUI {
+ public class UserInterface {
- public SparkleSetup Setup;
- public SparkleEventLogWindow EventLog;
- public SparkleBubbles Bubbles;
- public SparkleStatusIcon StatusIcon;
- public SparkleAbout About;
- public SparkleNote Note;
+ public Setup Setup;
+ public EventLog EventLog;
+ public Bubbles Bubbles;
+ public StatusIcon StatusIcon;
+ public About About;
+ public Note Note;
- static SparkleUI ()
+ static UserInterface ()
{
Application.ThreadException += OnUnhandledException;
Application.SetUnhandledExceptionMode (UnhandledExceptionMode.CatchException);
}
- public SparkleUI ()
+ public UserInterface ()
{
// FIXME: The second time windows are shown, the windows
// don't have the smooth ease in animation, but appear abruptly.
// The ease out animation always seems to work
- Setup = new SparkleSetup ();
- EventLog = new SparkleEventLogWindow();
- About = new SparkleAbout ();
- Bubbles = new SparkleBubbles ();
- StatusIcon = new SparkleStatusIcon ();
- Note = new SparkleNote ();
+ Setup = new Setup ();
+ EventLog = new EventLog();
+ About = new About ();
+ Bubbles = new Bubbles ();
+ StatusIcon = new StatusIcon ();
+ Note = new Note ();
- Program.Controller.UIHasLoaded ();
+ SparkleShare.Controller.UIHasLoaded ();
}
- public void Run ()
+ public void Run (string [] args)
{
Application.Run ();
StatusIcon.Dispose ();
@@ -64,7 +64,7 @@ namespace SparkleShare {
private static void OnUnhandledException (object sender, ThreadExceptionEventArgs exception_args)
{
try {
- SparkleLogger.WriteCrashReport (exception_args.Exception);
+ Logger.WriteCrashReport (exception_args.Exception);
} finally {
Environment.Exit (-1);
}
diff --git a/SparkleShare/Windows/SparkleUIHelpers.cs b/SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs
index ff289c8..a76e4d5 100644
--- a/SparkleShare/Windows/SparkleUIHelpers.cs
+++ b/SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs
@@ -1,5 +1,5 @@
// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
+// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk>
//
// 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
@@ -18,8 +18,6 @@
using System;
using System.IO;
using System.Reflection;
-using System.Windows;
-using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
@@ -27,7 +25,7 @@ using Drawing = System.Drawing;
namespace SparkleShare {
- public static class SparkleUIHelpers {
+ public static class UserInterfaceHelpers {
public static string ToHex (this Drawing.Color color)
{
@@ -44,7 +42,7 @@ namespace SparkleShare {
public static BitmapFrame GetImageSource (string name, string type)
{
Assembly assembly = Assembly.GetExecutingAssembly();
- Stream image_stream = assembly.GetManifestResourceStream("SparkleShare.Pixmaps." + name + "." + type);
+ Stream image_stream = assembly.GetManifestResourceStream("SparkleShare.Windows.Images." + name + "." + type);
return BitmapFrame.Create(image_stream);
}
@@ -62,7 +60,7 @@ namespace SparkleShare {
public static Drawing.Bitmap GetBitmap (string name)
{
Assembly assembly = Assembly.GetExecutingAssembly ();
- Stream image_stream = assembly.GetManifestResourceStream ("SparkleShare.Pixmaps." + name + ".png");
+ Stream image_stream = assembly.GetManifestResourceStream ("SparkleShare.Windows.Images." + name + ".png");
return (Drawing.Bitmap) Drawing.Bitmap.FromStream (image_stream);
}
@@ -71,7 +69,7 @@ namespace SparkleShare {
{
Assembly assembly = Assembly.GetExecutingAssembly ();
StreamReader html_reader = new StreamReader (
- assembly.GetManifestResourceStream ("SparkleShare.HTML." + name));
+ assembly.GetManifestResourceStream ("SparkleShare.Windows.HTML." + name));
return html_reader.ReadToEnd ();
}
diff --git a/SparkleShare/Windows/app.config b/SparkleShare/Windows/app.config
new file mode 100644
index 0000000..51278a4
--- /dev/null
+++ b/SparkleShare/Windows/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
diff --git a/SparkleShare/Windows/build.cmd b/SparkleShare/Windows/build.cmd
index e01316c..2cae645 100644
--- a/SparkleShare/Windows/build.cmd
+++ b/SparkleShare/Windows/build.cmd
@@ -6,7 +6,7 @@ if not exist %msbuild% set msbuild="%WinDirNet%\v4.0.30319\msbuild.exe"
set wixBinDir=%WIX%\bin
if not exist ..\..\bin mkdir ..\..\bin
-copy Pixmaps\sparkleshare-app.ico ..\..\bin\
+copy Images\sparkleshare-app.ico ..\..\bin\
%msbuild% /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU" "%~dp0\SparkleShare.sln"
diff --git a/SparkleShare/Windows/packages.config b/SparkleShare/Windows/packages.config
new file mode 100644
index 0000000..6c3600d
--- /dev/null
+++ b/SparkleShare/Windows/packages.config
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="DeltaCompressionDotNet" version="1.0.0" targetFramework="net45" />
+ <package id="Mono.Cecil" version="0.9.6.1" targetFramework="net45" />
+ <package id="Splat" version="1.6.2" targetFramework="net45" />
+ <package id="squirrel.windows" version="1.5.2" targetFramework="net45" />
+</packages> \ No newline at end of file