From 992b938252396eb707fb8fb4b08ea5936b245bda Mon Sep 17 00:00:00 2001 From: Chris Klimas <1405578+klembot@users.noreply.github.com> Date: Tue, 26 May 2015 22:05:44 -0400 Subject: [PATCH] Fix output filenames for Windows installers --- .hgignore | 11 + CONTRIBUTING.md | 16 + LICENSE | 674 ++ README.md | 45 + app.html | 143 + css/app.css | 400 + css/storyeditview.css | 583 ++ css/storylistview.css | 321 + css/ui.css | 791 ++ css/welcomeview.css | 61 + fonts/nunito-light.eot | Bin 0 -> 27728 bytes fonts/nunito-light.svg | 712 ++ fonts/nunito-light.ttf | Bin 0 -> 58580 bytes fonts/nunito-light.woff | Bin 0 -> 31384 bytes fonts/sourcecodepro.eot | Bin 0 -> 24009 bytes fonts/sourcecodepro.svg | 241 + fonts/sourcecodepro.ttf | Bin 0 -> 52752 bytes fonts/sourcecodepro.woff | Bin 0 -> 27168 bytes fonts/sourcecodepro.woff2 | Bin 0 -> 20992 bytes fonts/sourcesanspro-bold.eot | Bin 0 -> 26749 bytes fonts/sourcesanspro-bold.svg | 957 ++ fonts/sourcesanspro-bold.ttf | Bin 0 -> 67368 bytes fonts/sourcesanspro-bold.woff | Bin 0 -> 29504 bytes fonts/sourcesanspro-bold.woff2 | Bin 0 -> 23460 bytes fonts/sourcesanspro-bolditalic.eot | Bin 0 -> 28156 bytes fonts/sourcesanspro-bolditalic.svg | 833 ++ fonts/sourcesanspro-bolditalic.ttf | Bin 0 -> 67660 bytes fonts/sourcesanspro-bolditalic.woff | Bin 0 -> 31208 bytes fonts/sourcesanspro-bolditalic.woff2 | Bin 0 -> 24796 bytes fonts/sourcesanspro-italic.eot | Bin 0 -> 28309 bytes fonts/sourcesanspro-italic.svg | 845 ++ fonts/sourcesanspro-italic.ttf | Bin 0 -> 66992 bytes fonts/sourcesanspro-italic.woff | Bin 0 -> 31332 bytes fonts/sourcesanspro-italic.woff2 | Bin 0 -> 25012 bytes fonts/sourcesanspro-regular.eot | Bin 0 -> 27090 bytes fonts/sourcesanspro-regular.svg | 980 ++ fonts/sourcesanspro-regular.ttf | Bin 0 -> 68452 bytes fonts/sourcesanspro-regular.woff | Bin 0 -> 29768 bytes fonts/sourcesanspro-regular.woff2 | Bin 0 -> 23772 bytes gulpfile.js | 258 + img/blueprint.xcf | Bin 0 -> 152353 bytes img/blueprint_large.png | Bin 0 -> 547 bytes img/blueprint_medium.png | Bin 0 -> 1770 bytes img/blueprint_small.png | Bin 0 -> 1112 bytes img/favicon.ico | Bin 0 -> 1150 bytes img/klimas.png | Bin 0 -> 26080 bytes img/logo-osx.svg | 137 + img/logo.icns | Bin 0 -> 113543 bytes img/logo.ico | Bin 0 -> 31076 bytes img/logo.svg | 133 + img/welcome_alpha.png | Bin 0 -> 4167 bytes img/welcome_help.png | Bin 0 -> 3545 bytes img/welcome_logo.png | Bin 0 -> 14745 bytes img/welcome_save.png | Bin 0 -> 5308 bytes img/welcome_thanks.png | Bin 0 -> 2377 bytes js/app.js | 390 + js/codemirror/prefixtrigger.js | 49 + js/collections/appprefcollection.js | 29 + js/collections/passagecollection.js | 29 + js/collections/storycollection.js | 54 + js/collections/storyformatcollection.js | 29 + js/eventedlocalstorage.js | 32 + js/models/apppref.js | 43 + js/models/passage.js | 412 + js/models/story.js | 200 + js/models/storyformat.js | 229 + js/nwui.js | 535 + js/router.js | 89 + js/transregion.js | 34 + js/ui.js | 578 ++ .../storyeditview/editors/passageeditor.js | 380 + .../storyeditview/editors/scripteditor.js | 87 + js/views/storyeditview/editors/styleeditor.js | 86 + js/views/storyeditview/linkmanager.js | 472 + js/views/storyeditview/marquee.js | 139 + .../storyeditview/modals/renamestorymodal.js | 62 + js/views/storyeditview/modals/searchmodal.js | 232 + js/views/storyeditview/modals/statsmodal.js | 141 + .../storyeditview/modals/storyformatmodal.js | 112 + js/views/storyeditview/passageitemview.js | 624 ++ js/views/storyeditview/search.js | 82 + js/views/storyeditview/storyeditview.js | 597 ++ js/views/storyeditview/toolbar.js | 162 + .../storylistview/modals/duplicatemodal.js | 0 js/views/storylistview/modals/formatsmodal.js | 254 + js/views/storylistview/storagequota.js | 69 + js/views/storylistview/storyitemview.js | 197 + js/views/storylistview/storylistview.js | 362 + js/views/storylistview/storypreview.js | 152 + js/views/welcomeview.js | 62 + lib/backbone/backbone.js | 1608 +++ lib/backbone/backbone.localstorage.js | 222 + lib/backbone/backbone.marionette.js | 3591 +++++++ lib/blob.js | 197 + lib/codemirror/css/codemirror.css | 313 + .../js/addon/display/placeholder.js | 58 + lib/codemirror/js/addon/hint/css-hint.js | 60 + .../js/addon/hint/javascript-hint.js | 146 + lib/codemirror/js/addon/hint/show-hint.css | 38 + lib/codemirror/js/addon/hint/show-hint.js | 394 + lib/codemirror/js/codemirror.js | 8045 +++++++++++++++ lib/codemirror/js/mode/css/css.js | 717 ++ lib/codemirror/js/mode/css/less_test.js | 51 + lib/codemirror/js/mode/css/scss_test.js | 110 + lib/codemirror/js/mode/css/test.js | 135 + .../js/mode/javascript/javascript.js | 684 ++ lib/codemirror/js/mode/javascript/test.js | 194 + lib/fastclick.js | 828 ++ lib/filesaver.js | 244 + lib/fontawesome/css/font-awesome.css | 1566 +++ lib/fontawesome/css/font-awesome.min.css | 4 + lib/fontawesome/fonts/FontAwesome.otf | Bin 0 -> 75188 bytes lib/fontawesome/fonts/fontawesome-webfont.eot | Bin 0 -> 72449 bytes lib/fontawesome/fonts/fontawesome-webfont.svg | 504 + lib/fontawesome/fonts/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 83760 bytes lib/jquery/jquery.js | 9190 +++++++++++++++++ lib/jquery/jquery.omniwindow.js | 148 + lib/jquery/jquery.powertip.js | 1166 +++ lib/jszip.js | 8982 ++++++++++++++++ lib/svg.js | 3892 +++++++ lib/underscore.js | 1344 +++ lib/uuid.js | 24 + lib/xdate.js | 19 + nsis/install32.nsi | 63 + nsis/install64.nsi | 63 + package.json | 37 + storyformats/Harlowe/format.js | 1 + storyformats/Harlowe/icon.svg | 78 + storyformats/Paperthin/format.js | 1 + storyformats/Paperthin/icon.svg | 5 + storyformats/Snowman/format.js | 1 + storyformats/Snowman/icon.svg | 436 + templates/storyeditview/passageeditmodal.html | 35 + templates/storyeditview/passageitemview.html | 19 + templates/storyeditview/renamestorymodal.html | 36 + templates/storyeditview/scripteditmodal.html | 23 + templates/storyeditview/searchmodal.html | 56 + .../storyeditview/searchmodalresult.html | 28 + .../storyeditview/singlestoryformatitem.html | 10 + templates/storyeditview/statsmodal.html | 63 + templates/storyeditview/storyeditview.html | 18 + templates/storyeditview/storyformatmodal.html | 22 + .../storyeditview/stylesheeteditmodal.html | 22 + templates/storyeditview/toolbar.html | 94 + templates/storyformatdetail.html | 36 + templates/storylistview/formatitem.html | 20 + .../storylistview/modals/aboutmodal.html | 88 + .../storylistview/modals/appupdatemodal.html | 16 + .../storylistview/modals/donatemodal.html | 29 + .../storylistview/modals/formatsmodal.html | 62 + templates/storylistview/storyitemview.html | 54 + templates/storylistview/storylistview.html | 135 + templates/welcomeview.html | 103 + templates/welcomeviewnw.html | 31 + tests/selenium/Create story.test | 63 + tests/selenium/Setup.test | 30 + tests/selenium/resetLocalStorage.html | 30 + .../Adds passages that are newly linked.test | 103 + tests/selenium/storyeditview/All.suite | 40 + .../storyeditview/Can duplicate a story.test | 87 + .../storyeditview/Can rename a story.test | 87 + .../storyeditview/Can test a story.test | 77 + .../Changes zoom levels with toolbar.test | 73 + ...assage with the Create Passage button.test | 113 + ...ng version of the story via menu item.test | 58 + ...blished version of the story via menu.test | 48 + ...assage immediately with the shift key.test | 123 + ...assages by clicking its delete button.test | 123 + ...oard shortcuts when editing a passage.test | 93 + .../storyeditview/Displays story title.test | 43 + ...Does not add passages for linked URLs.test | 93 + ...a passage by clicking its edit button.test | 73 + ...Edits a passage by double-clicking it.test | 73 + ... IFIDs meet Treaty of Babel standards.test | 100 + .../IFIDs remain stable for a story.test | 121 + ... new passages to avoid name conflicts.test | 78 + ...t button is clicked in the story list.test | 37 + .../Plays a story with the Play button.test | 53 + ...aving a passage with a duplicate name.test | 129 + .../Renames the story via a dialog.test | 83 + ...o the story list with the home button.test | 53 + .../Saves changes to passage text.test | 103 + .../Saves changes to story script.test | 93 + .../Saves changes to story stylesheet.test | 93 + .../Story statistics are accurate.test | 140 + .../Tests a story with the Test button.test | 58 + .../storyeditview/Try Publish to File.test | 72 + ...dates links when passages are renamed.test | 123 + ...vigating away while editing a passage.test | 78 + tests/selenium/storylistview/All.suite | 25 + .../storylistview/Can add a new story.test | 67 + .../Can cancel out of adding story.test | 50 + .../Can cancel out of deleting story.test | 40 + .../storylistview/Can delete a story.test | 93 + .../storylistview/Can play a story.test | 75 + .../Does not allow blank story names.test | 45 + .../storylistview/On stories route.test | 31 + .../storylistview/Shows an about modal.test | 51 + ...ial message when no stories are saved.test | 47 + .../storylistview/Try Archive button.test | 41 + tests/selenium/welcomeview/All.suite | 15 + tests/selenium/welcomeview/Walkthrough.test | 70 + 203 files changed, 64798 insertions(+) create mode 100644 .hgignore create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 app.html create mode 100644 css/app.css create mode 100644 css/storyeditview.css create mode 100644 css/storylistview.css create mode 100644 css/ui.css create mode 100644 css/welcomeview.css create mode 100755 fonts/nunito-light.eot create mode 100755 fonts/nunito-light.svg create mode 100755 fonts/nunito-light.ttf create mode 100755 fonts/nunito-light.woff create mode 100755 fonts/sourcecodepro.eot create mode 100755 fonts/sourcecodepro.svg create mode 100755 fonts/sourcecodepro.ttf create mode 100755 fonts/sourcecodepro.woff create mode 100755 fonts/sourcecodepro.woff2 create mode 100755 fonts/sourcesanspro-bold.eot create mode 100755 fonts/sourcesanspro-bold.svg create mode 100755 fonts/sourcesanspro-bold.ttf create mode 100755 fonts/sourcesanspro-bold.woff create mode 100755 fonts/sourcesanspro-bold.woff2 create mode 100755 fonts/sourcesanspro-bolditalic.eot create mode 100755 fonts/sourcesanspro-bolditalic.svg create mode 100755 fonts/sourcesanspro-bolditalic.ttf create mode 100755 fonts/sourcesanspro-bolditalic.woff create mode 100755 fonts/sourcesanspro-bolditalic.woff2 create mode 100755 fonts/sourcesanspro-italic.eot create mode 100755 fonts/sourcesanspro-italic.svg create mode 100755 fonts/sourcesanspro-italic.ttf create mode 100755 fonts/sourcesanspro-italic.woff create mode 100755 fonts/sourcesanspro-italic.woff2 create mode 100755 fonts/sourcesanspro-regular.eot create mode 100755 fonts/sourcesanspro-regular.svg create mode 100755 fonts/sourcesanspro-regular.ttf create mode 100755 fonts/sourcesanspro-regular.woff create mode 100755 fonts/sourcesanspro-regular.woff2 create mode 100644 gulpfile.js create mode 100644 img/blueprint.xcf create mode 100644 img/blueprint_large.png create mode 100644 img/blueprint_medium.png create mode 100644 img/blueprint_small.png create mode 100644 img/favicon.ico create mode 100644 img/klimas.png create mode 100644 img/logo-osx.svg create mode 100644 img/logo.icns create mode 100644 img/logo.ico create mode 100644 img/logo.svg create mode 100644 img/welcome_alpha.png create mode 100644 img/welcome_help.png create mode 100644 img/welcome_logo.png create mode 100644 img/welcome_save.png create mode 100644 img/welcome_thanks.png create mode 100644 js/app.js create mode 100644 js/codemirror/prefixtrigger.js create mode 100644 js/collections/appprefcollection.js create mode 100644 js/collections/passagecollection.js create mode 100644 js/collections/storycollection.js create mode 100644 js/collections/storyformatcollection.js create mode 100644 js/eventedlocalstorage.js create mode 100644 js/models/apppref.js create mode 100644 js/models/passage.js create mode 100644 js/models/story.js create mode 100644 js/models/storyformat.js create mode 100644 js/nwui.js create mode 100644 js/router.js create mode 100644 js/transregion.js create mode 100644 js/ui.js create mode 100644 js/views/storyeditview/editors/passageeditor.js create mode 100644 js/views/storyeditview/editors/scripteditor.js create mode 100644 js/views/storyeditview/editors/styleeditor.js create mode 100644 js/views/storyeditview/linkmanager.js create mode 100644 js/views/storyeditview/marquee.js create mode 100644 js/views/storyeditview/modals/renamestorymodal.js create mode 100644 js/views/storyeditview/modals/searchmodal.js create mode 100644 js/views/storyeditview/modals/statsmodal.js create mode 100644 js/views/storyeditview/modals/storyformatmodal.js create mode 100644 js/views/storyeditview/passageitemview.js create mode 100644 js/views/storyeditview/search.js create mode 100755 js/views/storyeditview/storyeditview.js create mode 100644 js/views/storyeditview/toolbar.js create mode 100644 js/views/storylistview/modals/duplicatemodal.js create mode 100644 js/views/storylistview/modals/formatsmodal.js create mode 100644 js/views/storylistview/storagequota.js create mode 100644 js/views/storylistview/storyitemview.js create mode 100644 js/views/storylistview/storylistview.js create mode 100644 js/views/storylistview/storypreview.js create mode 100644 js/views/welcomeview.js create mode 100644 lib/backbone/backbone.js create mode 100644 lib/backbone/backbone.localstorage.js create mode 100644 lib/backbone/backbone.marionette.js create mode 100644 lib/blob.js create mode 100644 lib/codemirror/css/codemirror.css create mode 100644 lib/codemirror/js/addon/display/placeholder.js create mode 100644 lib/codemirror/js/addon/hint/css-hint.js create mode 100644 lib/codemirror/js/addon/hint/javascript-hint.js create mode 100644 lib/codemirror/js/addon/hint/show-hint.css create mode 100644 lib/codemirror/js/addon/hint/show-hint.js create mode 100644 lib/codemirror/js/codemirror.js create mode 100644 lib/codemirror/js/mode/css/css.js create mode 100644 lib/codemirror/js/mode/css/less_test.js create mode 100644 lib/codemirror/js/mode/css/scss_test.js create mode 100644 lib/codemirror/js/mode/css/test.js create mode 100644 lib/codemirror/js/mode/javascript/javascript.js create mode 100644 lib/codemirror/js/mode/javascript/test.js create mode 100644 lib/fastclick.js create mode 100644 lib/filesaver.js create mode 100644 lib/fontawesome/css/font-awesome.css create mode 100644 lib/fontawesome/css/font-awesome.min.css create mode 100644 lib/fontawesome/fonts/FontAwesome.otf create mode 100755 lib/fontawesome/fonts/fontawesome-webfont.eot create mode 100755 lib/fontawesome/fonts/fontawesome-webfont.svg create mode 100755 lib/fontawesome/fonts/fontawesome-webfont.ttf create mode 100755 lib/fontawesome/fonts/fontawesome-webfont.woff create mode 100644 lib/jquery/jquery.js create mode 100644 lib/jquery/jquery.omniwindow.js create mode 100755 lib/jquery/jquery.powertip.js create mode 100755 lib/jszip.js create mode 100644 lib/svg.js create mode 100644 lib/underscore.js create mode 100644 lib/uuid.js create mode 100644 lib/xdate.js create mode 100644 nsis/install32.nsi create mode 100644 nsis/install64.nsi create mode 100644 package.json create mode 100644 storyformats/Harlowe/format.js create mode 100644 storyformats/Harlowe/icon.svg create mode 100644 storyformats/Paperthin/format.js create mode 100644 storyformats/Paperthin/icon.svg create mode 100644 storyformats/Snowman/format.js create mode 100644 storyformats/Snowman/icon.svg create mode 100644 templates/storyeditview/passageeditmodal.html create mode 100644 templates/storyeditview/passageitemview.html create mode 100644 templates/storyeditview/renamestorymodal.html create mode 100644 templates/storyeditview/scripteditmodal.html create mode 100644 templates/storyeditview/searchmodal.html create mode 100644 templates/storyeditview/searchmodalresult.html create mode 100644 templates/storyeditview/singlestoryformatitem.html create mode 100644 templates/storyeditview/statsmodal.html create mode 100644 templates/storyeditview/storyeditview.html create mode 100644 templates/storyeditview/storyformatmodal.html create mode 100644 templates/storyeditview/stylesheeteditmodal.html create mode 100644 templates/storyeditview/toolbar.html create mode 100644 templates/storyformatdetail.html create mode 100644 templates/storylistview/formatitem.html create mode 100644 templates/storylistview/modals/aboutmodal.html create mode 100644 templates/storylistview/modals/appupdatemodal.html create mode 100644 templates/storylistview/modals/donatemodal.html create mode 100644 templates/storylistview/modals/formatsmodal.html create mode 100644 templates/storylistview/storyitemview.html create mode 100644 templates/storylistview/storylistview.html create mode 100644 templates/welcomeview.html create mode 100644 templates/welcomeviewnw.html create mode 100644 tests/selenium/Create story.test create mode 100644 tests/selenium/Setup.test create mode 100644 tests/selenium/resetLocalStorage.html create mode 100644 tests/selenium/storyeditview/Adds passages that are newly linked.test create mode 100644 tests/selenium/storyeditview/All.suite create mode 100644 tests/selenium/storyeditview/Can duplicate a story.test create mode 100644 tests/selenium/storyeditview/Can rename a story.test create mode 100644 tests/selenium/storyeditview/Can test a story.test create mode 100644 tests/selenium/storyeditview/Changes zoom levels with toolbar.test create mode 100644 tests/selenium/storyeditview/Creates a passage with the Create Passage button.test create mode 100644 tests/selenium/storyeditview/Creates a proofing version of the story via menu item.test create mode 100644 tests/selenium/storyeditview/Creates a published version of the story via menu.test create mode 100644 tests/selenium/storyeditview/Deletes a passage immediately with the shift key.test create mode 100644 tests/selenium/storyeditview/Deletes a passages by clicking its delete button.test create mode 100644 tests/selenium/storyeditview/Disables keyboard shortcuts when editing a passage.test create mode 100644 tests/selenium/storyeditview/Displays story title.test create mode 100644 tests/selenium/storyeditview/Does not add passages for linked URLs.test create mode 100644 tests/selenium/storyeditview/Edits a passage by clicking its edit button.test create mode 100644 tests/selenium/storyeditview/Edits a passage by double-clicking it.test create mode 100644 tests/selenium/storyeditview/Generated IFIDs meet Treaty of Babel standards.test create mode 100644 tests/selenium/storyeditview/IFIDs remain stable for a story.test create mode 100644 tests/selenium/storyeditview/Numbers new passages to avoid name conflicts.test create mode 100644 tests/selenium/storyeditview/Opens when an edit button is clicked in the story list.test create mode 100644 tests/selenium/storyeditview/Plays a story with the Play button.test create mode 100644 tests/selenium/storyeditview/Prevents saving a passage with a duplicate name.test create mode 100644 tests/selenium/storyeditview/Renames the story via a dialog.test create mode 100644 tests/selenium/storyeditview/Returns to the story list with the home button.test create mode 100644 tests/selenium/storyeditview/Saves changes to passage text.test create mode 100644 tests/selenium/storyeditview/Saves changes to story script.test create mode 100644 tests/selenium/storyeditview/Saves changes to story stylesheet.test create mode 100644 tests/selenium/storyeditview/Story statistics are accurate.test create mode 100644 tests/selenium/storyeditview/Tests a story with the Test button.test create mode 100644 tests/selenium/storyeditview/Try Publish to File.test create mode 100644 tests/selenium/storyeditview/Updates links when passages are renamed.test create mode 100644 tests/selenium/storyeditview/Warns the user before navigating away while editing a passage.test create mode 100644 tests/selenium/storylistview/All.suite create mode 100644 tests/selenium/storylistview/Can add a new story.test create mode 100644 tests/selenium/storylistview/Can cancel out of adding story.test create mode 100644 tests/selenium/storylistview/Can cancel out of deleting story.test create mode 100644 tests/selenium/storylistview/Can delete a story.test create mode 100644 tests/selenium/storylistview/Can play a story.test create mode 100644 tests/selenium/storylistview/Does not allow blank story names.test create mode 100644 tests/selenium/storylistview/On stories route.test create mode 100644 tests/selenium/storylistview/Shows an about modal.test create mode 100644 tests/selenium/storylistview/Shows initial message when no stories are saved.test create mode 100644 tests/selenium/storylistview/Try Archive button.test create mode 100644 tests/selenium/welcomeview/All.suite create mode 100644 tests/selenium/welcomeview/Walkthrough.test diff --git a/.hgignore b/.hgignore new file mode 100644 index 000000000..6e6811a81 --- /dev/null +++ b/.hgignore @@ -0,0 +1,11 @@ +syntax: glob +*.swp +index.html +node_modules/* +dist/* +doc/* +.tmp/* +*.DS_Store +.idea +cache +dist-apps \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..9403c204a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,16 @@ +# Contributing + +Please give [Chris a holler on Bitbucket](https://bitbucket.org/klembot) if you +have a feature you would like to add or a change you'd like to make to existing +functionality, so we can come to agreement on the change itself before you +spend time writing code. Bugfixes don't require discussion, though -- we can +hash things out in the comments of your pull request as needed. + +Pull requests should be accompanied by [Selenium IDE +tests](http://docs.seleniumhq.org/projects/ide/) where possible; there are some +things related to uploaded or downloaded files that Selenium isn't able to +test. If you're adding a new JavaScript file, please make sure it has ["use +strict";]() at the top, and passes the `grunt jslint` task, and that methods +and classes are documented properly (we use +[YUIDoc](https://yui.github.io/yuidoc/syntax/) -- use `grunt doc` to regenerate +documentation). diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..818433ecc --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 000000000..e2862e45f --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +twinejs +------- + +by Chris Klimas, Leon Arnott, Daithi O Crualaoich, Ingrid Cheung, Thomas +Michael Edwards, Micah Fitch, Juhana Leinonen, and Ross Smith + +### SYNOPSIS + +This is a port of Twine to a local browser-based app. See +[twinery.org](http://twinery.org) for more info. + +The story formats in minified format under storyformats/ exist in separate +repositories: +* [Harlowe](https://bitbucket.org/_L_/harlowe) +* [Snowman](https://bitbucket.org/klembot/snowman-2) +* [Paperthin](https://bitbucket.org/klembot/paperthin) + +### INSTALL + +Run `npm install` at the top level of the directory to install all goodies. + +You'll need [Gulp](http://gulpjs.com) to continue. Run `npm install -g gulp` +(you will need to have administrator privileges to achieve this task). + +### BUILDING + +Run `gulp` to perform a basic build, including creating documentation in doc/; +`gulp watch` will perform the same tasks whenever you make changes to the +source code. `gulp release` will minify everything to as few files as possible +into dist/web (full HTML version), dist/web-cdn (HTML version, using CDN +resources), and dist/nw (native app versions). If you'd like to build only one +type of release, run `gulp release:web`, `gulp release:web-cdn`, or `gulp +release:nw`. + +In order to build Windows apps on OS X or Linux, you will need to have +[Wine](https://www.winehq.org/) installed. **nb. NW.js builds are currently +considered experimental, and have not been well-tested or documented.** + +### TESTING + +This uses [Selenium IDE](http://docs.seleniumhq.org/projects/ide/) for +automated browser testing. Unfortunately, Selenium IDE does not like running on +the file:// protocol because of JavaScript security restrictions. To facilitate +testing, run `gulp server`, which will spin up a basic web server on port +8000. diff --git a/app.html b/app.html new file mode 100644 index 000000000..5993adc88 --- /dev/null +++ b/app.html @@ -0,0 +1,143 @@ + + + +Twine + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/app.css b/css/app.css new file mode 100644 index 000000000..c815da40b --- /dev/null +++ b/css/app.css @@ -0,0 +1,400 @@ +/* fonts */ + +@font-face { + font-family: 'Source Sans Pro'; + src: url('../fonts/sourcesanspro-regular.eot'); + src: url('../fonts/sourcesanspro-regular.eot?#iefix') format('embedded-opentype'), + url('../fonts/sourcesanspro-regular.woff2') format('woff2'), + url('../fonts/sourcesanspro-regular.woff') format('woff'), + url('../fonts/sourcesanspro-regular.ttf') format('truetype'), + url('../fonts/sourcesanspro-regular.svg#source_sans_proregular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Source Sans Pro'; + src: url('../fonts/sourcesanspro-italic.eot'); + src: url('../fonts/sourcesanspro-italic.eot?#iefix') format('embedded-opentype'), + url('../fonts/sourcesanspro-italic.woff2') format('woff2'), + url('../fonts/sourcesanspro-italic.woff') format('woff'), + url('../fonts/sourcesanspro-italic.ttf') format('truetype'), + url('../fonts/sourcesanspro-italic.svg#source_sans_proitalic') format('svg'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'Source Sans Pro'; + src: url('../fonts/sourcesanspro-bold.eot'); + src: url('../fonts/sourcesanspro-bold.eot?#iefix') format('embedded-opentype'), + url('../fonts/sourcesanspro-bold.woff2') format('woff2'), + url('../fonts/sourcesanspro-bold.woff') format('woff'), + url('../fonts/sourcesanspro-bold.ttf') format('truetype'), + url('../fonts/sourcesanspro-bold.svg#source_sans_probold') format('svg'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Source Sans Pro'; + src: url('../fonts/sourcesanspro-bolditalic.eot'); + src: url('../fonts/sourcesanspro-bolditalic.eot?#iefix') format('embedded-opentype'), + url('../fonts/sourcesanspro-bolditalic.woff2') format('woff2'), + url('../fonts/sourcesanspro-bolditalic.woff') format('woff'), + url('../fonts/sourcesanspro-bolditalic.ttf') format('truetype'), + url('../fonts/sourcesanspro-bolditalic.svg#source_sans_probold_italic') format('svg'); + font-weight: bold; + font-style: italic; + +} + +@font-face { + font-family: 'Source Code Pro'; + src: url('../fonts/sourcecodepro.eot'); + src: url('../fonts/sourcecodepro.eot?#iefix') format('embedded-opentype'), + url('../fonts/sourcecodepro.woff2') format('woff2'), + url('../fonts/sourcecodepro.woff') format('woff'), + url('../fonts/sourcecodepro.ttf') format('truetype'), + url('../fonts/sourcecodepro.svg#sourcecodepro') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Nunito Light'; + src: url('../fonts/nunito-light.eot'); + src: url('../fonts/nunito-light.eot?#iefix') format('embedded-opentype'), + url('../fonts/nunito-light.woff') format('woff'), + url('../fonts/nunito-light.ttf') format('truetype'), + url('../fonts/nunito-light.svg#nunito_light') format('svg'); + font-weight: normal; + font-style: normal; +} + +h1 +{ + color: black; + font: 200% "Nunito Light", sans-serif; +} + +h1 .normal +{ + font: 50% "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif; + line-height: 200%; +} + +h2 +{ + color: black; + font: 150% "Nunito Light", sans-serif; +} + +h3 +{ + color: black; + font: 125% "Nunito Light", sans-serif; +} + +/* library customizations */ + +.simplemodal-overlay +{ + background: hsla(0, 0%, 0%, 0.75); +} + +/* animations */ + +@keyframes fadeIn +{ + from + { + opacity: 0; + } + + to + { + opacity: 1; + } +} + +@-webkit-keyframes fadeIn +{ + from + { + opacity: 0; + } + + to + { + opacity: 1; + } +} + +@keyframes fadeOut +{ + from + { + opacity: 1; + } + + to + { + opacity: 0; + } +} + +@-webkit-keyframes fadeOut +{ + from + { + opacity: 1; + } + + to + { + opacity: 0; + } +} + +@keyframes appear +{ + from + { + transform: scale(0.5, 0.5); + opacity: 0; + } + + to + { + transform: scale(1, 1); + opacity: 1; + } +} + +@-webkit-keyframes appear +{ + from + { + -webkit-transform: scale(0.5, 0.5); + opacity: 0; + } + + to + { + -webkit-transform: scale(1, 1); + opacity: 1; + } +} + +@keyframes disappear +{ + from + { + transform: scale(1, 1); + opacity: 1; + } + + to + { + transform: scale(0, 0); + opacity: 0; + } +} + +@-webkit-keyframes disappear +{ + from + { + -webkit-transform: scale(1, 1); + opacity: 1; + } + + to + { + -webkit-transform: scale(0, 0); + opacity: 0; + } +} + +@keyframes fallIn +{ + from + { + transform: scale(1.5, 1.5); + opacity: 0; + } + + to + { + transform: scale(1, 1); + opacity: 1; + } +} + +@-webkit-keyframes fallIn +{ + from + { + -webkit-transform: scale(1.5, 1.5); + opacity: 0; + } + + to + { + -webkit-transform: scale(1, 1); + opacity: 1; + } +} + +@keyframes slideDown +{ + from + { + transform: translate(0, -15px); + opacity: 0; + } + + to + { + transform: translate(0, 0); + opacity: 1; + } +} + +@-webkit-keyframes slideDown +{ + from + { + -webkit-transform: translate(0, -15px); + opacity: 0; + } + + to + { + -webkit-transform: translate(0, 0); + opacity: 1; + } +} + +@-webkit-keyframes fullSlideUp +{ + 0% + { + -webkit-transform: translate(0, 100%); + } + + 100% + { + -webkit-transform: translate(0, 0); + } +} + +@keyframes fullSlideUp +{ + 0% + { + transform: translate(0, 100%); + } + + 100% + { + transform: translate(0, 0); + } +} + +@-webkit-keyframes fullAppear +{ + 0% + { + -webkit-transform: scale(0); + opacity: 0; + } + + 100% + { + -webkit-transform: scale(1); + opacity: 1; + } +} + +@keyframes fullAppear +{ + 0% + { + transform: scale(0); + opacity: 0; + } + + 100% + { + transform: scale(1); + opacity: 1; + } +} + +.appear +{ + animation: 0.4s appear; + -webkit-animation: 0.4s appear; +} + +.disappear +{ + animation: 0.4s disappear; + -webkit-animation: 0.4s disappear; +} + +.fadeIn +{ + animation: 0.4s fadeIn; + -webkit-animation: 0.4s fadeIn; +} + +.fadeOut +{ + animation: 0.4s fadeOut; + -webkit-animation: 0.4s fadeOut; +} + +.fallIn +{ + animation: 0.4s fallIn; + -webkit-animation: 0.4s fallIn; +} + +.slideDown +{ + animation: 0.4s slideDown; + -webkit-animation: 0.4s slideDown; +} + +.fullSlideUp +{ + animation: 0.4s fullSlideUp; + -webkit-animation: 0.4s fullSlideUp; +} + +.fullAppear +{ + animation: 0.4s fullAppear forwards; + -webkit-animation: 0.4s fullAppear forwards; +} + +.fast +{ + animation-duration: 0.2s; + -webkit-animation-duration: 0.2s; +} + +.slow +{ + animation-duration: 0.8s; + -webkit-animation-duration: 0.8s; +} + +.reverse +{ + animation-direction: reverse; + -webkit-animation-direction: reverse; +} diff --git a/css/storyeditview.css b/css/storyeditview.css new file mode 100644 index 000000000..83dbef5a5 --- /dev/null +++ b/css/storyeditview.css @@ -0,0 +1,583 @@ +#storyEditView.scrolling +{ + cursor: all-scroll; + cursor: -webkit-grab; + cursor: -moz-grab; +} + +#storyEditView.draggingPassages *, +#storyEditView.marqueeing * +{ + cursor: default !important; +} + +#storyEditView.draggingPassages .popover, +#storyEditView.marqueeing .popover +{ + display: none !important; +} + +#storyEditView .toolbar.main +{ + z-index: 5; + position: fixed; + overflow: visible; + bottom: 0; + left: 0; + width: 100%; + height: 3.5em; + background-color: white; + box-shadow: 0 0 1em hsl(0, 0%, 15%); +} + +.fullSlideLeft #storyEditView .toolbar.main +{ + transform: translate(100%, 0); + -webkit-transform: translate(100%, 0); + animation: 0.5s fullSlideUp 0.6s forwards; + -webkit-animation: 0.5s fullSlideUp 0.6s forwards; +} + +#storyEditView .toolbar.main .right button +{ + height: 3.5em; + padding-left: 1em; + padding-right: 1em; +} + +#storyEditView .toolbar.main .left +{ + float: left; +} + +#storyEditView .toolbar.main .right +{ + float: right; +} + +#storyEditView .toolbar.main .home +{ + position: relative; + top: -1em; + font-size: 125%; + padding-left: 0.75em; + padding-right: 0.325em; +} + +#storyEditView .toolbar.main .storyName +{ + min-width: 8em; + max-width: 18em; + overflow: hidden; + text-overflow: ellipsis; + text-align: left; + font: 150% "Nunito Light", sans-serif; + height: 2.4em; + white-space: nowrap; + padding: 0em 0.325em; +} + +#storyEditView .toolbar.main .searchContainer +{ + float: left; + position: relative; + top: 0.5em; + margin-right: 1em; +} + +#storyEditView .toolbar.main .searchContainer input +{ + display: inline; + width: 11em; + padding-right: 2.25em; +} + +#storyEditView .toolbar.main .searchContainer button +{ + position: absolute; + top: 0; + right: 0; + padding: 0.7em; + height: 2.5em; +} + +#storyEditView .toolbar.main .searchContainer button:hover +{ + background: transparent; +} + +#storyEditView .marquee +{ + display: none; + z-index: 3; + position: absolute; + border: 2px dashed hsla(0, 0%, 100%, 0.5); +} + +#storyEditView .passages +{ + position: relative; + background: #24497e url("../img/blueprint_large.png") 10px -15px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +/* all passage CSS is in px because we need it to match + the blueprint background image */ + +.zoom-small #storyEditView .passages +{ + background-image: url('../img/blueprint_small.png'); + background-position: -15px 10px; +} + +.zoom-medium #storyEditView .passages +{ + background-image: url('../img/blueprint_medium.png'); + background-position: 10px 10px; +} + +#storyEditView .passages .content +{ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +#storyEditView .passage +{ + position: absolute; + padding: 5px; + color: hsla(0, 0%, 100%, 0.75); + cursor: default; +} + +#storyEditView .passage:hover +{ + z-index: 2; +} + +#storyEditView.scrolling .passage:hover, +#storyEditView.draggingPassages .passage:hover +{ + z-index: 0; +} + +#storyEditView .passage .frame +{ + border: 1px solid hsla(0, 0%, 100%, 0.75); + border-radius: 2px; + box-shadow: 0 0 2px hsla(0, 0%, 100%, 0.75), inset 0 0 2px hsla(0, 0%, 100%, 0.75); + + width: 100px; + height: 100px; + position: relative; + overflow: hidden; +} + +#storyEditView .passage.brokenLink .frame +{ + background-color: hsla(0, 100%, 60%, 0.5); +} + +#storyEditView .passage.start .frame +{ + border-width: 4px; +} + +#storyEditView .passage.start .frame:after +{ + height: 2px; +} + +#storyEditView .passage.start .setAsStart +{ + color: hsl(212, 88%, 40%); +} + +#storyEditView .passage.start .setAsStart:hover +{ + color: hsl(212, 88%, 50%); +} + +#storyEditView .passage.selected .frame +{ + color: hsla(0, 0%, 100%, 1); + background-color: hsla(0, 0%, 100%, 0.25); +} + +#storyEditView .passage.highlight .frame +{ + color: hsl(60, 100%, 50%); + border-color: hsla(60, 100%, 50%, 0.75); + box-shadow: 0 0 2px hsla(60, 100%, 50%, 0.75), inset 0 0 2px hsla(60, 100%, 50%, 0.75); +} + +#storyEditView .passage .frame:after +{ + content: ''; + display: block; + width: 100px; + height: 1px; + position: absolute; + top: 22px; + left: 0; + background-color: hsla(0, 0%, 100%, 0.75); + box-shadow: 0 0 1px hsla(0, 0%, 100%, 0.75), inset 0 0 1px hsla(0, 0%, 100%, 0.75); +} + +#storyEditView .passage.highlight .frame:after +{ + background-color: hsl(60, 100%, 50%); + box-shadow: 0 0 1px hsla(60, 100%, 50%, 0.75), inset 0 0 1px hsla(60, 100%, 50%, 0.75); +} + +#storyEditView .passage .title +{ + font-size: 11px; + line-height: 15px; + padding: 4px 4px 0 4px; + height: 24px; + margin: 0; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; +} + +#storyEditView .passage .excerpt +{ + font-size: 10px; + line-height: 14px; + padding: 4px; + margin: 0; + overflow: hidden; +} + +#storyEditView .passage .bubble +{ + font-size: 150%; + width: 10em; + margin-left: -5em; +} + +#storyEditView .passage .bubble button +{ + width: 2.55em; + box-sizing: border-box; +} + +#storyEditView.scrolling .passage:hover .bubble, +#storyEditView.draggingPassages .passage:hover .bubble +{ + display: none; +} + +.zoom-medium #storyEditView .passage .frame +{ + width: 60px; + height: 60px; +} + +.zoom-medium #storyEditView .passage .title +{ + border-bottom: none; + font-size: 0.8em; + font-weight: normal; + line-height: 120%; + text-align: center; + margin: 5px; + padding: 0; + height: 60px; + width: 60px; + display: table-cell; + vertical-align: middle; + white-space: normal; +} + +.zoom-medium #storyEditView .passage .excerpt +{ + display: none; +} + +.zoom-medium #storyEditView .passage .frame:after +{ + display: none; +} + +.zoom-small #storyEditView .passage .frame +{ + width: 25px; + height: 25px; +} + +.zoom-small #storyEditView .passage .title, .zoom-small #storyEditView .passage .excerpt, +.zoom-small #storyEditView .passage .frame:after +{ + display: none; +} + +#storyEditView svg polyline +{ + stroke: hsla(0, 0%, 100%, 0.75); + fill: none; + stroke-width: 2px; +} + +.editModal +{ + bottom: 0; + width: 50em; + padding-bottom: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +body.iOS .editModal +{ + bottom: auto; + height: 25em; + border-bottom-left-radius: 2em; + border-bottom-right-radius: 2em; +} + +@media screen and (orientation: portrait) +{ + body.iOS .editModal + { + height: 40em; + } +} + +.editModal input[type="text"], textarea, .CodeMirror +{ + font-family: "Source Code Pro", monospace; + line-height: 145%; + background: inherit; +} + +.CodeMirror-hints +{ + z-index: 1000; + font-family: "Source Code Pro", monospace; +} + +.editModal .fullEdit +{ + position: absolute; + top: 6.5em; + left: 0; + right: 0; + bottom: 0; +} + +.editModal .fullEdit textarea, +.editModal .fullEdit .CodeMirror +{ + padding: 0.75em 2em 0.25em 2em; + box-sizing: border-box; + width: 100%; + height: 100%; + border: none; + box-shadow: none; + background: linear-gradient(to bottom, hsl(0, 0%, 90%) 0, hsl(0, 0%, 97%) 0.5em); + resize: none; +} + +#passageEditModal .passageName +{ + display: block; + width: 100%; + padding-bottom: 0.1em; + font-size: 125%; +} + +#passageEditModal .error +{ + margin-bottom: 0.5em; +} + +#passageEditModal .passageTags +{ + margin-top: -0.5em; + font-size: 90%; +} + +#passageEditModal .passageTags p +{ + margin-top: 0; + padding-top: 0.5em; + float: left; +} + +#passageEditModal .passageTags .tag +{ + margin-right: 0.5em; +} + +#passageEditModal .passageTags button.link +{ + margin-left: 1em; +} + +#passageEditModal .fullEdit +{ + top: 6.5em; +} + +#passageEditModal.hasError .fullEdit +{ + top: 8.5em; +} + +#renameStoryModal input[type="text"] +{ + width: 100%; +} + +#searchModal textarea +{ + display: block; + width: 100%; + box-sizing: border-box; +} + +#searchModal label +{ + padding-right: 2em; +} + +#searchModal .passageName +{ + margin: 0.125em inherit; +} + +#searchModal .passageName .controls +{ + float: right; +} + +#searchModal pre +{ + font: 100% Cousine, monospace; + white-space: pre-wrap; + max-height: 5em; + overflow: auto; + background-color: hsl(0, 0%, 95%); + padding: 0.5em; + margin-top: 0; +} + +#searchModal .resultSummary .matches +{ + line-height: 250%; +} + +#searchModal .resultSummary .controls +{ + float: right; +} + +#searchModal .highlight +{ + background-color: hsl(60, 100%, 50%); +} + +#storyFormatModal .formats button.select +{ + float: left; + font-size: 2.5em; + padding: 0 0.5em 0 0; + margin: 0; +} + +#storyFormatModal .formats button.select:active, +#storyFormatModal .formats button.select.active +{ + box-shadow: none; + background: transparent; +} + +#storyFormatModal .formats .select .showActive +{ + display: none; +} + +#storyFormatModal .formats .select.active .showActive +{ + display: inline; +} + +#storyFormatModal .formats .select.active .hideActive +{ + display: none; +} + +.formatDetail img, +.formatDetail .placeholder +{ + width: 6em; + float: left; + margin-right: 1.5em; +} + +#storyEditView .formatDetail img, +#storyEditView .formatDetail .placeholder +{ + float: right; + margin-left: 1.5em; +} + +.formatDetail .placeholder +{ + height: 1.5em; /* 6em / 4 */ + width: 1.5em; + margin-right: 0.375em; /* 1.5em / 4 */ + padding-top: 0.125em; + line-height: 2.5em; + text-align: center; + background-color: hsl(0, 0%, 80%); + color: hsl(0, 0%, 90%); + font: 4em "Nunito Light", Helvetica, sans-serif; + border-radius: 0.25em; + box-sizing: border-box; + overflow: hidden; +} + +.formatDetail .text +{ + margin-left: 7.5em; +} + +#storyEditView .formatDetail .text +{ + margin-right: 7.5em; + margin-left: 3em; +} + +.formatDetail .description +{ + font-size: 90%; +} + +#statsModal table +{ + margin: 0 auto; + font-size: 120%; +} + +#statsModal td:first-child +{ + text-align: right; + font-weight: bold; +} + +.CodeMirror +{ + height: auto; +} diff --git a/css/storylistview.css b/css/storylistview.css new file mode 100644 index 000000000..8287c2399 --- /dev/null +++ b/css/storylistview.css @@ -0,0 +1,321 @@ +#storyListView .listControls +{ + text-align: center; + position: fixed; + z-index: 10; + top: 0; + right: 0; + bottom: 0; + width: 12em; + padding: 1.25em 1em 1em 1em; + background-color: hsl(212, 0%, 95%); + box-shadow: inset 0.25em 0 0.25em hsl(0, 0%, 85%); +} + +#storyListView .listControls h1 +{ + margin-top: 0; + padding-top: 3.25em; + background: center top no-repeat url(../img/logo.svg); + background-size: 50%; + font: normal 200% "Nunito Light", sans-serif; +} + +#storyListView .listControls button +{ + width: 100%; +} + +#storyListView .listControls button.link +{ + width: auto; +} + +#storyListView .listControls .bubble button +{ + width: 45%; +} + +#storyListView .listControls footer +{ + position: absolute; + bottom: 1em; + left: 1em; + right: 1em; + font-size: 90%; +} + +#storyListView .main +{ + padding: 0 2em; + margin-right: 15em; +} + +#storyListView .main h1 +{ + border-bottom: 0.05em solid hsl(0, 0%, 85%); + margin-bottom: 0; +} + +#storyListView .main h1 .normal +{ + color: hsl(0, 0%, 50%); + font-size: 45%; +} + +#storyListView .stories > div +{ + display: inline; +} + +#storyListView .story +{ + display: inline-block; + position: relative; + height: 13em; + width: 13em; + border-radius: 0.5em; + margin: 1em 1em 0 0; + text-align: center; +} + +#storyListView .story button.bg +{ + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +#storyListView .story button.bg:hover +{ + background: hsla(0, 0%, 0%, 0.025); +} + +#storyListView .story .preview +{ + position: absolute; + top: 0; + left: 0; + right: 0; +} + +#storyListView .story .preview svg +{ + box-sizing: border-box; + padding: 0.25em; +} + +#storyListView .story .label +{ + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 0 1em 0.25em 1em; +} + +#storyListView .story h2 +{ + font: normal 120% "Nunito Light", sans-serif; + margin: 0; + line-height: 110%; +} + +#storyListView .story .changeDate +{ + font-size: 90%; + color: hsla(0, 0%, 0%, 0.5); + margin: 0; +} + +#storyListView .story .bubbleContainer +{ + position: absolute; + top: 0; + right: 0; +} + +#storyListView .story .bubbleContainer > button +{ + position: relative; + z-index: 2; + background: hsla(0, 0%, 0%, 0.05); + border-top-left-radius: 0; + border-top-right-radius: 0.5em; + border-bottom-right-radius: 0; + padding: 1em 1em 0.6em 1em; +} + +#storyListView .story .bubbleContainer > button i +{ + font-size: 125%; +} + +#storyListView .story .bubbleContainer .bubble +{ + position: absolute; + z-index: 3; +} + +#storyListView .story .menu +{ + font-size: 120%; +} + +#storyListView .bubbleContainer .working +{ + text-align: center; +} + +#storyListView .quota .total +{ + display: inline-block; + position: relative; + width: 100%; + height: 1em; + overflow: hidden; + border-radius: 0.25em; + background-color: hsl(0, 0%, 90%); + box-shadow: inset 0 0.1em 0.1em hsl(0, 0%, 65%); +} + +#storyListView .quota .used +{ + position: absolute; + top: 0; + left: 0; + bottom: 0; + background-color: hsl(212, 50%, 50%); + border-top-left-radius: 0.25em; + border-bottom-left-radius: 0.25em; + box-shadow: 0 0 0.1em hsl(0, 0%, 65%); +} + +#storyEditProxy +{ + position: fixed; + z-index: 1000; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #24497e url("../img/blueprint_large.png") 10px -15px; + box-shadow 0 0 1em hsl(0, 0%, 15); + animation-timing-function: linear; + -webkit-animation-timing-function: linear; +} + +#storyEditProxy.zoom-small +{ + background-image: url('../img/blueprint_small.png'); + background-position: -15px 10px; +} + +#storyEditProxy.zoom-medium +{ + background-image: url('../img/blueprint_medium.png'); + background-position: 10px 10px; +} + +#aboutModal .credits +{ + max-height: 20em; + overflow-y: auto; + margin-bottom: 1em; +} + +#formatsModal .tabs button +{ + width: 33.3333%; +} + +#formatsModal .tabContent +{ + margin-top: 3em; +} + +#formatsModal .format +{ + overflow: auto; + clear: both; +} + +#formatsModal .format .buttons +{ + float: right; + margin-top: 0; +} + +#formatsModal .removeConfirm +{ + display: none; +} + +#formatsModal .addFormat input[type="text"] +{ + width: 81%; +} + +#donateModal +{ + width: 60%; + margin: 5% auto; + text-align: center; +} + +#donateModal h2:first-child .fa +{ + display: block; + font-size: 500%; +} + +#donateModal .message, +#donateModal .signature +{ + text-align: left; +} + +#donateModal .message +{ + font-size: 120%; + background: url('../img/klimas.png') no-repeat left center; + padding-left: 135px; + min-height: 125px; +} + +#donateModal .message p:first-child +{ + margin-top: 0; + padding-top: 0.3em; +} + +#donateModal .message p +{ + line-height: 150%; +} + +#donateModal .signature +{ + font-size: 75%; + margin-bottom: 0; +} + +#donateModal p.buttons +{ + font-size: 120%; + margin: 1.5em 0; + text-align: center; +} + +#donateModal p.buttons a:first-child +{ + margin-right: 1em; +} + +#donateModal .coda +{ + color: hsl(0, 0%, 65%); +} diff --git a/css/ui.css b/css/ui.css new file mode 100644 index 000000000..5a41c8553 --- /dev/null +++ b/css/ui.css @@ -0,0 +1,791 @@ +/* a lightweight replacement for Bootstrap styles */ + +body +{ + color: hsl(0, 0%, 30%); + background-color: white; + margin: 0; + font: 90% "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +body.modalOpen +{ + overflow: hidden; +} + +a +{ + color: hsl(212, 88%, 40%); + text-decoration: none; +} + +a.subtle +{ + color: hsl(0, 0%, 30%); +} + +a:hover +{ + color: hsl(212, 88%, 50%); + text-decoration: underline; +} + +input, button, textarea +{ + font: 100% "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif; + border: 1px solid hsl(0, 0%, 80%); + padding: 0.25em; + border-radius: 0.25em; +} + +input, textarea +{ + box-shadow: inset 0 0 0.25em hsl(0, 0%, 80%); + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +input[type="search"] +{ + border-radius: 1em; +} + +input[type="file"] +{ + border-color: transparent; + box-shadow: none; +} + +input.fillin +{ + box-shadow: none; + border-radius: 0; + border: none; + padding-left: 0; + padding-right: 0; + border-bottom: 0.1em dotted hsl(0, 0%, 20%); +} + +button, a.button +{ + color: white; + background-color: hsl(212, 88%, 40%); + border: none; + border-radius: 0.4em; + padding: 0.5em 0.75em; + box-shadow: inset 0 -0.1em 0.2em hsla(0, 0%, 0%, 0.2); +} + +button:hover, a.button:hover +{ + background-color: hsl(212, 88%, 45%); + text-decoration: none; + cursor: pointer; +} + +button:active, button.active, a.button.active, a.button:active +{ + background-color: hsl(212, 88%, 35%); + box-shadow: inset 0 0.1em 0.2em hsla(0, 0%, 0%, 0.5); + outline: none; +} + +button.create, a.button.create +{ + background-color: hsl(141, 88%, 40%); +} + +button.create:hover, a.button.create:hover +{ + background-color: hsl(141, 88%, 45%); +} + +button.create:active, button.create.active, +a.button.create:active, a.button.create.active +{ + box-shadow: inset 0 0.1em 0.2em hsla(0, 0%, 0%, 0.5); + background-color: hsl(141, 88%, 35%); +} + +button.danger, a.button.danger +{ + background-color: hsl(10, 88%, 40%); +} + +button.danger:hover, a.button.danger:hover +{ + background-color: hsl(10, 88%, 45%); +} + +button.danger:active, button.danger.active, +a.button.danger:active, a.button.danger.active +{ + background-color: hsl(10, 88%, 35%); +} + +button.link, button.subtle +{ + color: hsl(0, 0%, 25%); + background: none; + border-color: transparent; + box-shadow: none; + text-shadow: none; +} + +button.link +{ + color: hsl(212, 88%, 40%); + padding: 0; +} + +button.link.subtle +{ + color: hsl(0, 0%, 25%); +} + +button.link.danger +{ + color: hsl(0, 88%, 40%); +} + +button.link:hover, button.subtle:hover +{ + color: hsl(212, 88%, 50%); + text-decoration: underline; +} + +button.link.danger:hover +{ + background-color: transparent; + color: hsl(0, 88%, 50%); +} + +button.subtle:hover +{ + text-decoration: none; +} + +button.subtle.danger:hover +{ + color: hsl(10, 88%, 40%); + background-color: transparent; +} + +button.subtle.create:hover +{ + color: hsl(141, 88%, 40%); + background-color: transparent; +} + +button.subtle:active, button.subtle.danger:active, +button.subtle.create:active, +button.subtle.active, button.subtle.danger.active, +button.subtle.create.active +{ + color: hsl(212, 88%, 50%); + box-shadow: inset 0 0.1em 0.2em hsla(0, 0%, 0%, 0.5); + background-color: hsla(0, 0%, 0%, 0.025); +} + +button.link.subtle:active +{ + background-color: transparent; + box-shadow: none; +} + +button.block, input.block +{ + display: block; + width: 100%; +} + +p, li +{ + line-height: 130%; +} + +.hide +{ + display: none; +} + +.shadow +{ + box-shadow: 0 0 0.8em hsl(0, 0%, 75%); +} + +.small +{ + font-size: 80%; +} + +.bubbleContainer +{ + position: relative; +} + +.bubbleContainer.inline +{ + display: inline-block; +} + +.bubble +{ + position: absolute; + z-index: 10; + width: 20em; + display: none; + + text-align: left; + background-color: white; + border-radius: 0.5em; + box-shadow: 0 0.1em 0.25em hsla(0, 0%, 0%, 0.5); +} + +.bubble.alwaysVisible +{ + display: block; +} + +.bubble.smaller +{ + width: 15em; +} + +.bubble.up, .bubble.down +{ + left: 50%; + margin-left: -10em; +} + +.bubble.smaller.up, .bubble.smaller.down +{ + margin-left: -7.5em; +} + +.bubble.up +{ + margin-top: 0.75em; +} + +.bubble.down +{ + top: -100%; + margin-top: -0.75em; +} + +.bubble.left +{ + right: 100%; + top: 50%; + margin-right: 0.75em; +} + +.bubble:before +{ + content: '\25bc'; + position: absolute; + bottom: -0.8em; + width: 100%; + text-align: center; + + transform: scaleX(2.5); + -webkit-transform: scaleX(2.5); + color: white; + text-shadow: 0 0.1em 0.25em hsla(0, 0%, 0%, 0.5); + overflow: hidden; +} + +.bubble:after +{ + content: ''; + position: absolute; + width: 4em; + margin-left: -2em; + left: 50%; + height: 0.5em; + bottom: 0; + background-color: white; + z-index: 11; +} + +.bubble.up:before +{ + content: '\25b2'; + top: -0.9em; + bottom: auto; +} + +.bubble.up:after +{ + top: 0; + bottom: auto; +} + +.bubble.left:before +{ + content: '\25b6'; + transform: scaleY(2.5); + -webkit-transform: scaleY(2.5); + width: auto; + top: 50%; + right: -0.8em; + bottom: auto; + margin-top: -0.5em; +} + +.bubble.left:after +{ + width: 0.8em; + height: auto; + right: 0; + left: auto; + top: 2em; + bottom: 2em; +} + +.bubble p +{ + padding: 0 1.5em; +} + +.bubble p:first-child +{ + padding-top: 0.75em; +} + +.bubble p:last-child +{ + padding-bottom: 0.75em; +} + +.buttonGroup +{ + display: table; +} + +.buttonGroup button +{ + border-radius: 0; + display: table-cell; + margin: 0; +} + +.buttonGroup button:first-child +{ + margin-left: 0.5em; + border-top-left-radius: 0.4em; + border-bottom-left-radius: 0.4em; +} + +.buttonGroup button:last-child +{ + border-top-right-radius: 0.4em; + border-bottom-right-radius: 0.4em; +} + +.collapse +{ + display: none; +} + +.collapseContainer .showRevealed +{ + display: none; +} + +.collapseContainer.revealed .showRevealed +{ + display: inline-block; +} + +.collapseContainer.revealed .showCollapsed +{ + display: none; +} + +.dialogButtons +{ + text-align: right; +} + +.error +{ + background-color: hsl(0, 50%, 97%); + padding: 0.5em 0.5em 0.5em 2em; + position: relative; + border-radius: 0.25em; +} + +.error:before +{ + content: '\f071'; + font-family: FontAwesome; + color: hsl(0, 100%, 50%); + padding-right: 0.5em; + position: absolute; + top: 0.5em; + left: 0.5em; +} + +.hover +{ + visibility: hidden; +} + +.hoverContainer:hover .hover +{ + visibility: visible; +} + +ul.menu +{ + list-style: none; + padding: 0; + margin: 0; +} + +.bubble ul.menu +{ + position: relative; + z-index: 15; +} + +ul.menu li.divider +{ + height: 0.1em; + margin: 0.25em 0; + background-color: hsl(0, 0%, 85%); +} + +ul.menu button +{ + color: hsl(0, 0%, 30%); + text-decoration: none; + display: block; + width: 100%; + white-space: nowrap; + text-align: left; + height: auto; + padding: 0.75em 2em; + background-color: transparent; + box-shadow: none; +} + +ul.menu button:hover +{ + color: hsl(212, 88%, 50%); + background-color: hsl(212, 5%, 92%); +} + +ul.menu li.checked button:before +{ + content: '\f00c'; + font-family: FontAwesome; + margin-left: -1.5em; + padding-right: 0.5em; +} + +.bubble ul.menu li:first-child button +{ + border-top-left-radius: 0.5em; + border-top-right-radius: 0.5em; +} + +.bubble ul.menu li:last-child button +{ + border-bottom-left-radius: 0.5em; + border-bottom-right-radius: 0.5em; +} + +.modal +{ + position: fixed; + z-index: 101; + + top: 1em; + left: 50%; + + background: white; + width: 40em; + border-radius: 1em; + padding: 2em; +} + +.modal.wide +{ + width: 50em; +} + +.modal .close +{ + position: absolute; + top: 0; + right: 0; + border-radius: 0; + border-bottom-left-radius: 0.25em; + border-top-right-radius: 0.5em; + font-size: 150%; + padding: 0.5em 0.75em; + margin: 0; +} + +.modal .title +{ + position: absolute; + top: 0.5em; + left: 2em; + right: 4em; + margin: 0; +} + +.modal h2.title +{ + left: 1.25em; + text-align: left; +} + +.modal .title .tabs +{ + margin: 0; +} + +.modal .content +{ + margin-top: 2em; +} + +.modal .buttons +{ + text-align: right; + margin-bottom: 0; +} + +.modal.confirm .message, +.modal.prompt .message, +.modal.prompt .prompt +{ + font-size: 125%; + padding-left: 3.5em; +} + +.modal.confirm .message:before, +.modal.prompt .message:before +{ + content: '\f071'; + font: 250% FontAwesome; + float: left; + margin-left: -1.5em; + position: relative; + top: 0.1em; + color: hsl(0, 0%, 80%); +} + +.modal.prompt .message:before +{ + content: '\f059'; +} + +.modal.confirm.info .message:before +{ + content: '\f05a'; +} + +.modal.prompt .prompt input[type="text"] +{ + width: 100%; + box-sizing: border-box; + margin-right: 2em; +} + +.tabs +{ + display: table; + width: 100%; + border-bottom: 0.1em solid hsl(0, 0%, 90%); +} + +.tabs button +{ + color: hsl(0, 0%, 30%); + background: none; + box-shadow: none; + display: table-cell; + border-radius: 0; + margin: 0; +} + +.tabs button:hover +{ + color: hsl(212, 88%, 50%); +} + +.tabs button:active, .tabs button.active +{ + color: hsl(212, 88%, 50%); + border-bottom: 0.4em solid hsl(212, 88%, 50%); +} + +.tag +{ + background-color: hsl(212, 5%, 92%); + padding: 0.5em 2.25em 0.5em 0.75em; + border-radius: 1em; + border: 1px solid hsl(212, 5%, 82%); + position: relative; +} + +.tag button +{ + position: absolute; + right: -1px; + top: -1px; + bottom: -1px; + margin: 0; + border: none; + color: hsl(0, 0%, 30%); + background-color: transparent; + box-shadow: none; + padding-left: 0.4em; + padding-top: 0.5em; + text-shadow: 0 -0.05em 0 hsla(0, 0%, 0%, 0.3); + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 1em; + border-bottom-right-radius: 1em; +} + +.tag button:hover +{ + color: white; + background-color: hsl(10, 88%, 45%); + box-shadow: inset 0 0.05em 0.1em hsla(0, 0%, 100%, 0.75), + inset 0 -0.05em 0.1em hsla(0, 0%, 0%, 0.25); +} + +.tag button:active +{ + background-color: hsl(10, 88%, 35%); + box-shadow: inset 0 0.1em 0.2em hsla(0, 0%, 0%, 0.5); +} + +.toolbar +{ + overflow: auto; +} + +.toolbar button +{ + float: left; + margin: 0; + box-sizing: border-box; + border: none; + border-radius: 0; + height: 100%; +} + +.toolbar .bubble button +{ + float: none; +} + +.bubble .toolbar +{ + margin: 0 -0.1em -0.1em -0.1em; + position: relative; + z-index: 15; +} + +.bubble .toolbar button +{ + padding: 0.75em 0.6em; +} + +.bubble .toolbar button:first-child +{ + padding-left: 1em; + border-top-left-radius: 0.5em; + border-bottom-left-radius: 0.5em; +} + +.bubble .toolbar button:last-child +{ + padding-right: 1em; + border-top-right-radius: 0.5em; + border-bottom-right-radius: 0.5em; +} + +#modalOverlay +{ + position: fixed; + z-index: 100; + + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: hsla(0, 0%, 0%, 0.8); +} + +#notifications +{ + position: fixed; + top: 0; + left: 50%; + width: 50%; + margin-left: -25%; + text-align: center; + z-index: 9999; +} + +#notifications > div +{ + background-color: hsla(0, 0%, 0%, 0.8); + color: white; + padding: 0.5em; + font-size: 80%; + border-radius: 0.5em; + margin: 1em; +} + +#notifications button.close +{ + float: left; + background: none; + color: white; + border: none; + box-shadow: none; + margin-top: -0.5em; + margin-left: -0.5em; + border-top-left-radius: 0.5em; + border-bottom-left-radius: 0.5em; +} + +#notifications button.close:hover +{ + background-color: hsla(0, 0%, 0%, 0.2); +} + +#notifications button.close:active +{ + background-color: hsla(0, 0%, 0%, 0.5); +} + +#notifications .danger +{ + background-color: hsla(10, 88%, 40%, 0.8); +} + +#powerTip +{ + position: absolute; + z-index: 1000; + display: none; + background-color: black; + color: white; + padding: 0.5em; + opacity: 0.8; + font-size: 80%; + text-align: center; + border-radius: 0.5em; +} diff --git a/css/welcomeview.css b/css/welcomeview.css new file mode 100644 index 000000000..ae7424438 --- /dev/null +++ b/css/welcomeview.css @@ -0,0 +1,61 @@ +#welcomeView > div +{ + display: none; + padding: 20px 20px 20px 240px; + width: 60%; + margin: 5% auto; + min-height: 240px; + position: relative; +} + +#welcomeView > div:before +{ + content: ''; + display: block; + position: absolute; + top: 0; + left: 20px; + width: 200px; + bottom: 0; + background-position: center; + background-repeat: no-repeat; +} + +#welcomeView .hi:before +{ + background-image: url('../img/welcome_logo.png'); +} + +#welcomeView .alpha:before +{ + /* http://thenounproject.com/term/construction/5853/ */ + background-image: url('../img/welcome_alpha.png'); +} + +#welcomeView .save:before +{ + /* http://thenounproject.com/term/document/12036/ */ + background-image: url('../img/welcome_save.png'); +} + +#welcomeView .help:before +{ + /* http://thenounproject.com/term/question/2036/ */ + background-image: url('../img/welcome_help.png'); +} + +#welcomeView .thanks:before +{ + /* http://thenounproject.com/term/smile/10696/ */ + background-image: url('../img/welcome_thanks.png'); +} + +#welcomeView p +{ + font-size: 120%; +} + +#welcomeView .buttons .done +{ + padding-left: 1em; +} diff --git a/fonts/nunito-light.eot b/fonts/nunito-light.eot new file mode 100755 index 0000000000000000000000000000000000000000..1bf16814657d123b84fe36ddf24114c995767a2b GIT binary patch literal 27728 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/nunito-light.ttf b/fonts/nunito-light.ttf new file mode 100755 index 0000000000000000000000000000000000000000..7929c851522e38a7afe3c9658248acbe7a5d69e6 GIT binary patch literal 58580 zcmbrn2Y4LSy*E6wU0Y{+?^W6+?MhnpZWT+iWfe=Z2sME) zvoa;7#6S{4UQ#Ye3$o&A39*6FBzu3@snwF249a9A89HiuZa(#yXyx zf384L%28aeTt1S{{I>SaZ{zq19IxB3b7uDsTPD7Q;}7x7&o=D4z^9pD_ED7j1gZgz4dhJ%6(A_4p;`n_Whqms#;G+Myc})vNokX9-_wP7&!;HT0YZpbm^ANuO=FXXm zc8jF+X^MIm{il4pW_E7+;@nfOXBl2-0M_xuZf`TQ%(DC+(1qCfw!d(Wob0e|yt z6!pQqcs_mMruCZ--Z3&uQ6Ij6=g}{UK#zK(`N1EO{p){u`9iY);X5f4e?^M}8#zOX za7o!rGJ!BGMV&xnM+n7yFm5@>9p)l*-Nqy zWq+6Z`DXcH`6KcZ@{{uaREW^8(ERtP+`N;jpWj6_U~5AAt@(dYKbyagdT;(A zN=k`w^j6^|>g~ca)Xxf8>fJ)(GiUQSJA<<;F)||+rcCpDDK*95S6?VlM(j=V3CfIj zS+H5L*|6EMIp!~=ob%tLTxd%vUEv^}dInD a#9u@}%JUw2WF`MaqKY?=9YscLMs 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 irrf&T_WB(t&pCmm1 literal 0 HcmV?d00001 diff --git a/fonts/nunito-light.woff b/fonts/nunito-light.woff new file mode 100755 index 0000000000000000000000000000000000000000..8b3db65f17eeac36e4ec694c5b8d2eca226d1ecd GIT binary patch literal 31384 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ÏwBw6 zi77;BwP>jf#pEG!V&Zz|4_v%wcPf;-guzj+_`gwp2lnEO==X$0;?OykzA0L6!n2U5 zCvK$LWz70wdArb#)>GhY_vN}WyP4N<&%g1kU6|B zG@tm=>+gK}R$cGxoYBM&;k+r6C)qfF`Cvy`X|*_-GO;yNjk3BubgC$+?>eVXq&#Gh z70y{FU&z~?Z}PFBPrDv7`{i<-!-49Sq`q!0y;PpzUGZAOm}!+JDW5%mJ@EYl>15M? z;mA~byBR_oQdAPV#bNnF{fOHab)-&$*@QoX_p5b>EFVRy#QCEz1`$Z`Y!=dq3UVTL ztvD8V9m^Dq0nw_;E^cQ6T6e57^Ekwq_{k3EGoE5t=nr3-d@fR!%*|aWivv^gW;*cU z*3b-UHgwpK3{+3i`}_PSbT>T}Cg~)a2Xt=g#1PH6N@2Ube}!cs>uoRhuYXG|sf+H^ za8BZ+JAGDHVm2Duc(|3&kl}8QZ|Q7$MVo9N6$;b1?g1i8dDhpwACU~c#v75}9;W`y_Mf#?&~ZZK1yerF zW#+Su5pA~TmD*`w-W!e8N{P)HgGqf#)-~H{RpdD8JKt|J|1k2pjkWLN()}Fwhs4=p zwr0-wKMzN%`d&u_@61azoGF`)>Z`RY9!$0IUR?)km{=a`IQ+hcwO2~T^S`c|Xb3t? zZ!CnYqq!P~FAoD}w!Q7RyUAx?8~NI{u3aqHR6E+nO3>UzyS%a?_#4hr z_&txOGDWVAah1I4>XYS;E9n1TO}du-Okc#eip)F!!D+n#Xj&0MT5|8=@{2$loNQ4x zvK-MsqY|%y*nzzWayQZ^!YZ){)q^adK%%Qi0sZ4A_#;Ri;D?=@$-0XC2T7~?yo72& z930!^P#$(q;*XiMh_KjQesT5StmeT4%DpW|MG^XpwedKVmGa~Jk`o<82hHlWa@D78 zhjTb*%eJl3MvjU3W6WeFd&d~VBI}5xJrLhJQp|>UF%Z=iDK)(b??*tg1M51l9Z#}b zAtY;X*ba5tCIHXWsr)=lCJanL8ORdW>C6`L@jWqd7tuxbcR%bc< z+o5-zzum>`xW%aJh4fMEs=La!qte}tSG;KUj>AP|+E#LnR%EH^Ti9M8_w$nlT^^A2 z#!SQb)^u3*6&=od7&~grnj8VR&pq>QHuAi@%3TCHA7dfr0;Y;{ci<5gt14Je!d3&0 zqf|H|CIPg`Wdms?0wpY?Bijlk?@Hz{7mns4I@HYVDk^jpjwBxb`_N7P78AD>)2lA_ z;~LA>h1@m16i)0};TFZ}t9or-6crqF7ymYYkEis*qW{Z~)A>|S@%1;Z9QcyrZx$-Y zSDX=qO{d1+SBG>EBREUweX7)vYq}lnvqhW_vP#icdSE85*dBJ|z#=G$^S?E<&T$b6 zM1&D%r+_V{{}9_#S{Nh|v5p6Xc4dSjH*K2~nWL}$n5V39u}y*H<)~`%NYpt;q!IGyS4)s4S8qV3RBAB_H&-pxiC6~o($W@H zthZZJtvu)U)Ap7&v_CE}2oD%od=a+r6BO_T*Uswi^04E<;_ln%PVC933R8uX zu=&I1vZx`X6)rN`(ZpyUs7?S%%pG|O#DrrI&}eN1WTSJfG>N)qkdBfgIEEr^A**{KyEZ&7B)d1MD=UxJ zm9l=1-%gua_5)D55V2&fejk_1>}p)Pw0NJ}_Zo}va{l`VAHSzFA+p=`_i*bdgO4Hi z4b`qyGBMh?L7D#$a&gatj79L>49nggX76J;;uE^bC^c0Tndp=zr3^ihd#6Npiya zwLFK>jb4ic1M!#Q@V!lmycgR3CP%Y;2Ktk~{q%2kadjDG_{6?Fawi|g#r~|m|5qQ# z+mj@wIj*Zx=x`3T8fV^kvJY_l(kPJ`l%&ZZsUc?Ogf{)^0}O&$A!vb)ORtG<#17S~ z!f}??=nJQPu;Z701r$q+N*%)aaXfLZ@Uel;U6qFp-0$pfs+KI{ef(_SFNAxF9C-K~ z#IiEES%TVFf{~aHJO0*z@hmX4WgDDv?ep%c@_I65rUJtiX)x<~y&l!%;*ExqyTHt4 zS;?;&ayAsIG7>mM=-zwTpoCA{UKUwe3hHs}+r5fui##1=cwe{ZtRzi#eK4g&OgX~_I- zAVrw*)%k4f9@?GnPu9@$+aj~`#np|IPJYuF_N?qAaXr&Sk}Y2@o)6N^J6jXaOQ_t9 zb#MUs) zYTVOgrfCZ87BRs9CE>BY9h$05%6tPcc5UKnOJ#aPQB!a7+zv`=*#5{k+?XlOcI}+a zO|hw@(4S?CdM4eN{U?^Lhz6AJ1AKXBZIG^*SJ0M5Q9sXih@`>FC3axsAElTBaxQ}8 zqGVzV!p{1pMF({N&k?!lJe{VOh0ED+%yPo_I{vJu(R3X8{9`%iYu+F2x9Ist8$m7+o_&RPFt?cu(zS(Y*_%!bF`?y@Gnf>xuogv_FbG>lp z7s~)1zpoPT=SU>%jErisiwprJlxP}_v?;?9j6MWzzCA?jgj}vPqAJdWLZ}baghm{W zk>4`IrWXp~1L<(yJ^aUOT(K18OL2`=-AmKi2aSdGF@|<@mxdC&+=Pk%XSAMgx?*9CIW!1KP`mJ5impz809T9~$&kva~79-~pg-x;$f#k^p zg24D^&{5jCZ z>zPG4Fz#%j4|J~#+a6b5H_y=j6V_}^d->bP?BTDnIE-W$i(ut)SAadi2GO1EXs>9m zFW$=&+padqyr>N^wPi6Uy`pmny@4)!mRR-R@|4}Y5a6Pb(}Wc8Si}qw^r_}eAI|c5 zgegH-H5fWgnIw%)A-WU(W(xTbEMA{M*K!PTCaQyOo!47ujQYC&mM&l8`*1w~Ckr1c zM3Oi+T+k+2G@l8ayAf8EFRt^P3aXU0-tOiZy_0)^g%77DFK_TN>!Fs*P8UE_dzyQ9%1gjubu-{R6wCQ4Fum3NI)~X{k}Nasg4@x3q6uG4?*AR z^4Y*@&tTG)LA+|KXQ`pHMZ6lkNNW7~GLE`zc|D!n ztIddQ`yGc3v;%}2+V;C1#Zbv1OF#vgw}Wh9X1Rm3HFP(1_ylzKzv=>@=L)8MG1Cra zMJB7c3Z$dv%bUq-IwKbUH6-Zyx-j8Ag-7!Fte*oiv{-ls_3rlxIg*&v5Lv$L;4eLh zY{L=0GLtGX5HXW-Q6Eao#3ra+)OBLws)~*8`hadj=Obwx>*jGgck15Bf%ruqq4Gf3|GZ?`y?1qA zz|L2wQmWFHxpxdET5vgAUR>q-qo@yHRFtA7np|m6;KxRkRiiNB&U1t0uvHUgj~P!1 z(6WyuxhI2(PK6ngt9};!L6g&DscJvZU4~d=`};tt?W;>{%i=Mm)peoMb@(Or!s*^} z$X17PIw{H4=)5%(l59yW4WHXpwWec}<|7E_at+pdFK_~jR6Ea^QCEJEQAb2#f^@MA zWl~9ER3#!Q83uzPE0!|^%vd{3BKz2Qc(F_eOHG$S%ys8=$IfnIqH9*8qlib*2WkKE z=&0^0|0tz97BFNoWK`O!Y}%9QtlbQL|FMxWX)}k3%he*u>u>gTAckUKN-pI(>yLGv zol|rPKZvV0=oui$1h1L0g*am(e5u&rrP?CUx8G8v%s@2q5rl@8uPSANTvE$Vvkyx} zfpH0tcx60+KAl#idnFX*D~8KGms(8-#lHl#3PT}KD@pIMH_(#mjQ_OEMmr;yI|iyBDgZ&I`u=L>DqKmb zpUd7w=u3g>-goup;db-j)tjXWoO)bX?3GzFitK(y?G|HcC%8beN`4?9R0}P?YOK*{ z#-vPojFVutk>Qe21bb~Iwc`jyQ_WU+Yag|5>EkFiol|^+rkEJx%UGOz+H5+F3|>|D1+l=m8{akuTo-L@s{x>a(b?aNt`s{zOh%qm#|3 zA%vy(`OOz=Y4M5r)p|U3!8$=+>vU5uskg@Rql)>?joh@U4D*gXbHrj5yZijSX<5GF z!^=BK%F1==22ZZcSnu~Dqney4t8(4!vj%JnUn>j-<=dZ7k`Q#W@G8{>&WC94e=aTP zttG=$3unbQt^>2L!Ez_sX$oUT@SzGk3|J)JV5jyXp8=gy)ha^eiu?so&mfg8<=hI4 ztKG)3{O6jJ3RyOW1Fwwia22W2u{rZ9pVqNbUND%nYSSwI1qNu~ z4Cbd_sR%yrV%|TOOI(Swb(gk|&R*F&YhUYo70KE#CM!o%8E>VnClK~J`Y*+Op0s}( ztv$owN7$%Cc^2oI&3VMJR|#+)l@C=sJ=e=yyB?_fhK($2BV+P4IKFiVPhqO%pGs>I z=c~dNbtPFO!``3cWfVzeagqlk+}welrX+44=+Po28`2aS2-iacO(gVbv_u4S)EOfG z!a*({0R}t?qJgOd5%z3RaFzK8Q&)my^y#P0XuLvux-*^tf^}dQY?f?>hBYk&66c`Z zG&gSMc*Zzx$ItvtBpdZt6~5~E*M-$K$uVG~OW5mqwde57H5y%1TmGwg*R8qkQJr1zCP&x_siYFp zWKrbj0g+PkxSXt`DH)WZoF$2whqyU@YN8fBfh9FSDU@Yg~rxW?;9>!RaNg%)=d!lTuV~DP4COzqmN(UZDf?z^tOHWUblyZ zdVS)@ZS6Q9rK-=p@E@7rUx@wri1R|#81H;Ee4BbfBG~^R;(JK7DKkR;a`MsE+A0_R z>D8l9le(ltA$!~tp(6C#);pHogxyo);pp4p0~bo8#IA#oo})3alqW>emi&gvg~Vj_q@^Pa#PH?oL!jG z-@41mg{y>(`<9Y7Z=0?4JZIfiw6RiS0pp_oIX2X|;ojzY(l}FBCT0NMVSFf2 zP#8(tvBA8zw4IMh&%S$O}55U;)I>F!Tr^RQfRkOSd{U(#P}?{&qHkAS)UtmYBpDU zKz2oX2}3_^S)>&1D0cbTMlMF<0w-UJaP4pch6=Nz9oFV89?;~`geoysh%m9AN_a#; z>x~TP))?aBYh^W~eyfi5dmAg}ppV$SbD}GOwy_@&XJyE$w|9ZHFlRTl8S}5JoI$hI zVQ2W^XuTItrjvQj>8UF{hRHFzf!mPH$a z`}?#6NE#3O+^fY^Eu(?pr%k0xPrj^)tKi|Sk(!5P@Trn_kIMGyp}W72{^HCT6GEz6 z`vR}H{`z8Fx$>%o+wHB%I%nf?)Md-;)p%cuZcEvw)1%67^V2uB0|+nO z!@Am!3vY^;%)|x0e1d|-^DTmnBqLtQ^m!{NO3idpYwN$v4|T%>&8A0J`F&3BJva++ z*>bW7Ti&krleNkg(@=tQeZbm?;#F~pSNqeiWbEs~heA^V;R2M0oP0z3YSr*3exat%(_>8dXOA=~G+deNitjZgpyIwPTO4Ykms%B-q4sky=_ zd24Y#bswP>o@`*{+N?AV(=50v&;;pLU64*oiU7>iC+Ll)Q%uCZGQYVVZApmWY+Zv} zDwnH358QOPb@F11zRus8|{QH(z_vU4c3rIx?U*B3F;c5AFF1-l983~QPw znE!!BNJbRWO04$+gB>Rr7XDL@46!;KO^p!B+TqfS75=+n`uCXeqhXXc`xu;8>|YhC zll$rESD%hITVn+@T#K^rR`wY*9KJ?o3CR-HqeQ$aSrC(b&IBkR6JnV|k;w>VD;VZL zFMt&vj-bLOTmhV3EwQ8HDoR|pmF2^U$XlX*!>?S&)J`uH&Z-paX}J-*x~zMAb+?j3 zJja-O?7MO@8+C1!Wd`*PRdO_A2pOTgx>iE$-;cDQf5DBH3%dha^{T4tMwEd3Rbi?c zq%fTCD@4iZeYQB!KQ&*v;!#2_73(R2%URIfNndg91;9+?Tq68iyXVM-ZEr~VL;9*9 z7K3jFq&-7vbxemZ>mk7FVO^o00>Vxwe9{hLP5FvXYzx?JKO>w*N>ZGcyD0e-0_l7F zaA(ELFF{hN?ew>dVP$J~lJI^th^o}a{WDq2iyV3LeBVyZ>>kaIngHNCc{ntG@yj#9V#XXCfU{omKqZ%~=>8 zR9H@8>{#6C6n8iR;WqQlnGl|ZNK zX<&8L-Ukj(e`C$_hD}&_b#vpd9|6~PIFtJ$yCnDs9%)vjYY`smKBOH(eIew+`D}tu zbjBCN`lL`mJ1?zNA*7fo0UpmLP*kQ0X2C3usEuWCW)xv_`&F=S35RnJ)q{+1nkKA|O`F}IL2j+d3 zhYnpyfL3?ma44SKImh&EeXjyrj;92IxliFig$kW(3KbY-z5o#hncdG1slLy;ymP)s z6{aX#&LxIaknVXL%9hz>2t@UAIgpYOrp%^e}|r#kpZoYO-SMWS`pCQ(U!*7!9)p z|NM4dyu@wjqb?ltKpRt+{(zh+H-rb~Fd7+_F0y$#d7IYcT2%oC-V7jl8-_ji|Cr2{ zkH%6VnQSr-5nJr?SH4BR$)*~e;U`OV<~p21xfAU};6Q%&Uf z#xLJZMIU8rVh$ZEd&}+vJ`?qG5r(A8z{8|0l#b@1tF#=@7xDZ{p+Poh+rWkvRa#oP zI=zSP+S)+y59n>ssuK&ec`?c|r`AIdL&PBsRNj|qQ0q$&U5gZi8%WVd!5<|<%MeVx zYDWp$XxAU^y}q)<7U8G;N%nYBWom9AKDNo+ zbr(6CTrP)a5l;)x9VfSW$D#j7dTVZul|Ts}>TEH9=-tN@PR2+=G{$s7R&QcK@EO6m<%O@3QDo(Gl< zPY0IG;iH?>YeZ2zc-C7++BCOy3^t0zjC4h3V%x^0BZy9SC6A_)N4%TwO*swG@)^A6 z>%1?FF3q6DaElFu-ZY@e`=PNvD&D5Fh{&<#iDBU66V+#1fUYbW#NT%M5ICy#y?Y)0 zm&HIUAH|wA-z8f z8x8j)&w`ggwccOcx*J^8y@9-wl=P_Zp|gF+Vx8sra=@i>c0LLZTZokNJE5NKh<=U8 zY%t^2_vL*s9F9;*7i5wr!^Lkxs$@Cl)pog@MZ}XPT4*f=Hci!UvfkQ-bI0X=nqvMj zEjUYRqupt5{_s^32Ij7v_ZVE0M{-$9g^tZ2+g!j05a5OkyBna6O|oYuKwa%OoeytNcan%reUdP0I7C@tL$- zUg$lWz5bLittH~C+ZX!-j1dsUgiwK0@*vF|Ru7e=4yskYl0@aenKuiXynjin$fA!2 zVaqT`b~rayDxn~m?nykh=lDgqVlS(`cgMZu>i&*Av!ViD*=PRCuk8RCU&*G@N-f+4uE?zfhkf-C zKjuFFXYlpi_)IZ3y`(pK1(Up+i-2P%fE`RK^1zV6q(XI}4#{>%3^+BXD4T~x;QcRgqcdE3_Gf< zO96K{NRKFgh`D87JeN_t^kA;FvdO*az32yJeqX;MntggtxEg&g4Gidz z7oZTttG0Tv32by=7cnFQm%>7a&1+(o*jp3e1@45#Sz5LU|3E6@g?`vFBpfEzrHtyp zr8`#$&Je9P2Z6}zXjr_`81BZjhdtP$+UbB3jsn;dc{Q+*F?(pOl@lsqUPP=-yj3Vb zNUWy{PCGTrLhN`44%eAcPCH#AJi}hwMoFLs(bW!@xY@mnSVn$qi94y{r~N+x*f}T0 zt?dN**=<1cj;T`hZ}StaJ``V)yChH2FG$CU5LiAW&{FV}Y;Hy+bt@p?kfKSGd{`_o z8N|H`B1q=lHc{rKD%_XTkR|Jtfs2!jq?mxi>lni1E}4Bro4=={Y%_SYYP-hZpeWN= zx2vPQ#bFL{2Ajbt`Ho6cESsz**1$0?gH$OkbeL^sgUMn;`_tvB_fl%fYP>&PGXXAH z(A9RQGoD4;(#`nn#y_(W9mGTn(GdB*rGjSEQ%R$ya!}UX2W?45zjw)=bnks1?MX+! zDeg%}664i>r0h*g#qCdJaZ{B%-c+TM zFQdoudep?6PXX5G6agsnxi?=+IPn}M^b_ic1VFX_HtC=k?}@0V_OHQuuK z(G5|nH4<7kR&<(Wbm!jU;PDN`^wjYcrJMRBGJuV(YqmzwBRd}7Ss>rpQn_cn<_8E8 zeV^uB5vw^$LilyXL)+HfzoTSzl4RK8N_h43H_#*BR88MAE9&u07cNL%mVTCKL94bJ zke!awb9^y}LaVU2rHChomf~qao^7?ZY+O<(VeA*xp#_7LDBkES8bE30D2r$xO`=WD zqIlCYyca+TZH?4c?|XS)sySREi;H}JJG`jv2>#vV^PMbjzk9s<;a-Em;gl+*O;>iU z*p$l7!zv>4-wBuNQoBg+DhUe!51<@k9v+D%?Kt`Iarn9WoLzUkhFGI7(^Zc zbY&cl?J|h4X{8RKe}0gg(OYv(=rp9CarmQRb+8A#$4rtC-x%fKaeow@n)EXoz13Zd z8#*wUD3)ruXHN|l)z>uXYHRjtWRqoT;7GnCa$nHQhuFz?2Ja~2PqGu? zR4P2ddQ1v~VxoNKz|hI^q{5&ydP#0gI35p8u^#e?mV;}H#kB`p;8-fHJqU8&HZB00gkfuchHp5_mveYky3v`-Rl<1Xe;A8a z*at4enyWP6O${2bbTt&$0f#Vo+gPI9a;60frxi`U&vFg;wsF zq73;U`LH%(^fXB2)f_qOal1WLo?IawQ5!wyvFoZYxjk+VISxm+%R>%VTjZ!y!)4YO zE%WzM*H{c8m(r-3ABONGbPam>lF5zQvfZXH;ad@lIYd3LGKlLoFPsFwy^`<{5u&yy zC(7E|O~~D#1Kv!@jw&8faUVwu*H|i+!Vz)50_@P`GP&8Z;MvWrUeB43Z#P4{%bL+y zhT0L}v=UmY4^YeS-XdQJ=(RM>aDn;9MaNGO-@EWL@Oi%=R)f9xD8aAH2nsohjd&W_ zh6&(eBj8Oqq|tR0;eb786DVN{422inD{JN|WxQiUIRQMI!l?p&OHLTk%<+ysY(>N7nCHjJ3r@*hunag{AwQEnVtCUbMMj zy|)kfKBr0--_@U7H<(I~Y}v78BpvA(i$?kz-R-;XSk`i=WHI^d3W+4L zIT9M{P9z7WH%$*D!|kKd)QVPr&sFy?AAF$OV)|U7W5DI^E(II<$2{(qjH}-old_yK zInWp_#=L=e+eAxhv@^?E(@g`}(LFtG3oG~NZE;F%()yZ{;ign5oGcIL(#tz@oIc&Q zqH*Qn9sibSwbBad?1e&djp_d z=myj-b^~g~)gppahc*c`irYKTm!vx{-Gf%n*uyqk#Lh7Gh|LzZGvtx_S^XWUMenn- ztlg*A`_ZCTzy6YIwC?W|ag+3q(w7Jaks&q__YtU7#s_X@IwOpz=PD!9NWDi^f{=7) zgaX{@MhLRAyAAFnY71aD zW$=^27Gx#{z#f}?@&uNu?h#J^1;!a}XeK7=h3`u@Lb}MfS}v;jU+mM1i|gsAQ`za` zj|-bO@sAx}m(8v_{usY$v+(%w>Fjl@AN&5X8^8DH-BD{K_km= ze@OIucT=y^Qqb#0qMtZ`BBa@7HDLytc4cOz;u(_>+`t6JjhMjTZI1@9Ko!6c6o1V(%Z>XUIdU|KgL106v<*#eO$U#?$9+-xQM7aC^ZQTp!o z15a%>rp@+rS2WsQNLl2J%wQ+EhWn;__72C$pxG2;i#?;!rp^7aqxMvrKfR(YL@!TF zjdw)o=Lfd7IVq|;*%D+`dK)99?HtQxa_-J6`l=DT!)_l86vGB@>r_jq7}S%byJbzw zpqvXe1I^A5*U%5r--2ixpsQoiwa|uo?-;sS64xp(+&l9_CaAagDEirFr9O*3$b9aH zOo+4irEu-Ha3O~BlE-Xjk437LRXqtA$~4- zhBm+$8VJZOv>=N9+Slh2{w53`3J3;cczg$vc4exG!!EgrYo zV=<8XU38lImh>q0G5yHL;B9Q{d)Q(pGiwz2DVEn}RruSBcAO0LCgx+`z0vHX@H;K_nyY3C3_Ul)>z+`Nf58>}2&_ z?5NA^Vz(~pUO6?{6SK!luH=Lp%&IvvI3CPR_r+p8QyZqkyPUcf;JCq%71^((8yp;%$PrFU$@6Rk7}` z`0jk&Wl6-!e*7%onwvG@>DFYi636B+j)R9d3Qd=Zc>=cUO&iV=NYV^XoskONj&~Wp z?+j0|Gc+X;x7qIL>oz22deLhIZZ4@W!9A2Q=qVGk6y4L?S4$UAw4}R!Ro}C&Ap)4o zWAdY#WRa__QUZnO7dL7qE>Vjm`_@r~1;|_c^V`-v+0eh-(+J?zmT2)uIy3gv$hM+u zY#?hjsHDyfjbj_Ug}!jg2tUDKZ==VNYV~>B3t_pzA`KcnCbgq!bxWk9!K)yZ;iiFj z%j&X2YxWv-Hj1$i4a7Q=7MqT>k|e1Ql_UOQ(4f_694Ln)86)47{sY*D7{POySy`>e z*C?8tT9Yr@R#T913*B~Tiycd?&0mV-YFsKOwH7Dmwd+)x>R+3ToKbQ}&MC;0oz&Sp ztj4PR6KBSC92(bgGQ=9Oj)T@0gmEbc@JemJyOc7qSk-C3?k6sGL&fpVDfPk*UW=eb zJ^C?JOBD=0oQ3?L!cGmCgd?Ih9qHXI+iyqq<`wc;@)UI?_6NutK)CT2HdDRS z+`qy&V~d;X#GDMJSlAwFaj&Mn>hRl_!|gUri|izDn~G*U%)d8!yScq1lS zPU|^31!^_Y8uAr;{qa@ZvFe)|Bh8o+QKJ)tl+((Uw_Z&t-Q`TU6w<4W4sl-wszm;S zbUR@pd=Sf)O#tm+e!0NMh&pNXCGBS8B zu2xHrnT$@GR4se&BSxc>Y%u7_s@)O{R~2T4G2df_pL@Jf@@;~~G=IKE^J(HyqOuk! zKD$y>W<>bezNWQKEgWhPX8oV1GeDQwW#Svl@`$X5dZm!VB`oPB6PHEZzv_Xr+ZvfJ+m!ld^RKK_2fzhyGG zR<54xiQD5vR|;b(Q)XZZmI{$K)v%QRL$Ts&Ls;(wz_np@(4BVI09V9|09Q7>b^9XV zB9K0mfj3_V-V74!i0g@?we*&?p{J+J2c3=G zz@OY+JwzXn?7;gH{u);vvU$O;oa2MJiXZPC<(ikpR;5PmrAdyTcyije-1mWVMYGVl?svx(6l$qd@6%Ox> zNC>U{AYWa$ZjLtgqDzHF(OJ4lnTe5_>iD&IQIYx5O*C)+5E~*cY@SGNuWyN1-y+fW zp*BQx*7r}89Ib&oLv4pd@CSG=JGr=*UCRgVX4jg*RmK0=Zg%u#));>H9qzt*nbn9N zX4gBa+flAvIU$j7iXjt?nIN{-PYD( zH-|WllVL3%idxqxmCb`Dt0@pPaWa)N8#Lig79FFjE?2HQ1V^_Uj>a&GjlxEBmhqrn4M!;N0y?U_tD4VO*ml_q$!S+Bw9_M|g#XAx8oweCwG ze{F-LfX{H5Gt`t@<4BnF(Sb&pf_mGT&7`b!4&geFe|~6$YDTAC|NJ*6DXMn&(>k|} zqf7In-)7SmSBiX<8b3;Rs4N=E1KAdjQfG1LY~gB%!N>V?=-L{QXp9`Dw=F>aJpZ)-#OAq9yDgkXyt-b( zRVt?ysCCn_QfK7Xtky~0dh;RKB`)kA!kL-}Tq$9B*3?K2tf}p}vZjhrM#wU$zAuu+ zNwce}{w$KarP|ykZ*w>Ynz`{%XKY-4yjRu_3j|aJWoRV~r)J+zeIj0eh zJo}4*9+#+hMRD4K6F$yw#6xF&C>&l-gh=Nlvao$YJ{wshc)lo~gV1Oa|4`ys(&HSY znm@gqFw?@R=4uLy?O$XXn)$jSvzh-i)!>&ho4o3sjE4O2;~A!_p2=?N*nddiLARo2V7@0* zpSFB~nG4jfs+kHk&Io-$I8?!gFe)ucO-CSqZU`i7MAOl>0W=+LNlix}nT2W@jeY^n zvLlYEUOBQv=(EJA)5!@tYL!2IWtGroyGxu({Vto0I+Q}Eei3v~FVb%t-E?ynuey#7 zcou(^Bv)UeJO(4tp(nh#c<$@Q5q5VLb1u8d&-s*4lRg*lZNg6P!4LW|4%@^Cb%$07 zby>BRBdW(08MM0GrXF%|kMjlaGof&fM7#3SWLYX+$}B%S&W)~DHMG|JnBlp6Nnhng z9dN!;gw3~8jLo+zMOQjR65VwY`cfi&vOLKzRUy(%=fwQ0D9ujD((P}Tu)jmh{>~Kp zgSTdXR^Ok4`E>ShkdyTcC6=5e?SFyT-zQ;zRLuU3x9k5kMi+S;UY8ngas#7WGC$+- zC?$9dq9Y=B$n-NAFb$=^6i$bU3-H}bu5iiqD)OkkA>XUyhF||0or*%h&@05$5M;U8 zD7O09{vhYWBY1Bhsc9!*2SP0YJcI{$#laZ9jIAOHs&*X#K(x}X%s|u!>VpBY#gQwj zYp1#LnEp^c&&>_f@5raTh@xuHtfGoJ36;dKbxbkBez8HhLcv2NR}=gcQS72>)P+?3 zvc5=fE~(U`Wh%eiWCkXlzbvWqz12qj($Zh_CbRd|!b63l^yv|1os%H5y+5rV&7JELRL`)La!};P6^&_foGIOQ1B2Z zE^fpwZX_iRpvA*&ff|NJt?mcP(kiE}F4RsO+6i3ImO4`JHfKOV!WFI5arwG%>Y_<< zd8Cw_m?JKBC-uNvx~WEn6o6BNW{+CYe{vI_wofp#ymM~g>sL=X6zvA=-o-3Cfj zCOpkm`^lvmXpZ>mTr+MS1@=IIHS_$tx-y|S*AJUUx-_!2HAOmFYrqbwR92>AhvHAX zc+TBKsbhHiy?eWynx(%Z^LJ{ovTJ&12$VXYj`O+Y-znymEY2nGM+xj)?_5Q{rGyY6 z!A>>N59Jfbcqxdfb1gh2F00d!97y;P? zuCS9(V<4`fA78}7Y@c?%u+r|@%%6Ttkzyqq49PvSWQ}BUUqJx^iYo`K`1-ZyT24NH zw*N~fdhIQpE%u%Rrw{Z*rmk%L%#(HM22-iI&@$dRIn#S^=3uX*xx3j>zj0T?@N{=2 z1@wM{%vYyhJm2RTnjP@Oy4pe;jE%i*;lX2r!}sm<4Gfm)s$C_Trk1JCv~KH;#P;@h zV;#-S;aY#pSJ8Lu!M>Z<@h$S}L4>DS`L8I5HlaP}R8CCIeXC5(dnK8g_hm3OzYI*x zv5~(DSF@{x5nFw{CFW+|iJ7B20s~^h^DXi?tMm>1iVdQ?*y(uhUO(P@B=O!Wiud-v z9^P4<*=@irmLl8++KgSK?@MC+A;x+e+K=u@#d=f<>xosY4-l+}FxEo?*1H9)58?+y z80$ot5mF0`_A7vPBt8I1wOz;cYz*Hr>}#zMr+Q=^@PA8kW}o4g+?~L@CZ4j~d^XEF zDeZoowEJUF)xDl}&mQt~{mKP)G%z>Ze<LZ`I3?1RF5aQ!;{!mvD=Igxy6Lr2pCF!mEpDm=!Ep*gF^7#EcV@I+-IFY-%0h}pp^G^ zt#}Wo=hHzhj5E|bu+L5=N9MUu9QM_^ipdyFyf?yoZ*Iz7hhN!)U)kg5rivH1Q^4~P z#}VfbM?r@gH0kDy)ptz8AZ?$*&U0aZ?n?S|-65B;L6Pd$%tUt`Ui@Zemdj+i^;}lg zo3j@cTQgGKn`PO4eM_v)i1+6|2xHI*bYq>-xYIv>2VZNifNhGLBJ&hO#t zkoIV}Dg0=de>9vCrr_5-P&Vrivr}Zu>h0gja{{cy=JXx-YB(1DE948(g-f>)n}=j8 znQkjIUy-eF;``U%soI#EXgfNDPNL@#Y-~q^+?W!?+7e@f;K#8r(5d;^13_*IKhFf% zJD@rTTw3C1j|REwJVF+>>UD}eMcg`43cBc!(*Z|Y1J0kP0*QuwFiC3g;Jo=XcH_uO zZ@W)Br>q_>ZI$u9`&v#v|&z?T^)R6#FUAy=&RTDck?CjszVJs{!s4(k|0|(CZ zbWQKlclZ9N3w!tCkb|a1z`Ml;o37A~z1!KlYjXRc zfh#ZHY4G%4IT(hSUw)pYywXq|avOl%tZP?GW!<)!0e{SIpeXmi%)lg_U*0(I-G<=Jq8@ZkD%T1c&J^6|%dG(IP zcG)5-1|3-by+V(3bkMeluS?xxi-fwx)>~A!5S!&3ShwQENzt{(+*B|arPxF!9iz?b z!YD3*(Ux1rC~Ic2eu&1!)+}>Fi25jd@{z>nLxRt?b>TB4fzR-5;3F}gSU*mM((9bL zp+y%;RpKiI%w~l)wHG~@Gis1xj`1nxV1S%Y6oZg0(GZ7IMN$qFCYNYrjetpsq!_ z_A6B#!X?t_oJ*1Y$QBO!XtynM}jX8whoUYmx47uD%Rl!EeO}Hib z7lhKTRr>kN>B#Q(nP=|oI6XOFROrpW1R|jC8#Z|h)lD_dflU$pOCYj%)l?C@=OKhx(6hv{A1ddiL(9sd=bn=*=T;gTWJ-4HTP;to5-wFNEOn z>E9f>_=lH|$M1h}Z|vO8rr^%Iy0_fFFVs45o{u|T*JvEop&@hzCEUU}6e5ZMl-!&J zqq*77`SC=eEif1IZ^je$J|*A(@|#c&p5nuy0quGsc?LU94wxn=@Vt&SYF}0r`P=#i z0ZW~ZZ3nH0K4HmBAo*BZxI})*1*A=C@+E~$z97G>LbOkYN7ocSQ9Q9m?FPeZqL4l; ztsX2*6{S;56-A~VZ0#AXSRXAfmU541t|%j*!t4}1Q<-XayM)~xVs^{afyvpOH4ey| zeMBt(ld+oKEOD-qxBJ7)`mZ#*qhfY%ygh$QjxzH0*GT7eawzPT+`Hy+7|*QxO2I*{ z?kgRh9P7U1V3O-IL8G57d6%^WI3tG5 zlcbbOXXvBSL}j#Tj~=txn6JU0ee;;jMtz&u;W8D60)gh#YnnEBy(UwA{nBwQf4`v1 z!8{<)v+ID)obOMzDuRlq@IAMqI66*h!@5BIr;F5v+40P#l_WX|W$S8f7{3Pn!)2x1L}nu2nn^BJ_)s%sGv5J@c6>yeDZn~XT%0# zSrwZ1#Kz$qm1z|BimlnC;?T1O4!sgM^sVC1c8fS<4a~AI{6u72&JhLXWcKi!#Nb1s zJG4gn?a;uO?jM=i#T#+2Ia|P(KBq;(T;519x z$|$-|0x3w}hJ#!HccC#n0_{w~Hs{NStv#SOj4=b4oc-!fdFgIP%5{BQaMpf40woAc~!daSL6~EF!rRWCDPeS z<)^-Rq^aB+-FI%wsUP-jsIG1zQstw^yNs4iGb5wtw$?6vtQr!O$~QL|#~yj@aL>ha zhqrnU9a$Rics$I8(Z|k2x1Ik=G>kM*L3`WHEu9mF}a;^EWY(SP3_%$?g=1zy-(HUTs zuq)Y@zc62BcBqR9KSMH|X)0P^oA{Kr3Maa{K%$C}_f;8IS!7kG-`GJ28rm9JXCo+7 z*MZ!OQ^U2Ff6Uft=3I5oGOu#Z4Zr3*@bm9gjc*JRWy3bjT)3?rKOcdg34EQx5ETh0 z@MnP`YR(mowDYos1x}aSQ`aUuUL}d@XaY?LZx~nuIW>`{sd8w64x0#Xai}TvK*gFz zhXt+zBKF?Jv}$>6aK*XNZ@mBIz{MXX+0wx7)Q;PCFegmt(Pma(506 z581B&+f$=+hQ>|%&-V{q+`ECI8pkh<_J4MNtkFQf{T!uxbGo3QprOj_TXOiS%ngel z!%sz?Do=6rO-g%X+t;qnY;U9r3i2t%{rP!$zLC>czK-Kz=kjk=KVlY%Udujo89^qBU%o1;THyZ!P}LUH-W??mu+L7k&Ev?k~_ycBWDxm zqh}_znoXN`AL~B-^wDP6DZW6}ZaK5V5$}r_gq`9ocbx9-K03as(!6D2CVD<`HgcnO z>+JSzC*yXSvTnX>Wc%#aT6&qbD_xtW`nvaTbnzK&O~;N6fgK$+16Sv#)3=9>MoY+J zsO{Vt3XXQx;!>Y9`1-oKDu*_?gOeXTO*Ils}C zPsFoXryq{G&xOeo$&>D3KP>(hR734e6i&T&#Z#)Gx%$vbX-+Pc(Q>upxs*wleR#wBVx|xu!7xQH9RUn(fpMgc33X~u9;Wc*v zBu{xut@HEu^O52yI-(p$PMn{y)x7>$3Fx0yW3L(0_0O~^`e)U~RsA!rNXxI~%dLnM z$gg)Oezew^SPEIFAJZ-LEGNnyy^XqJt*^H(U9fuT5^G(ZwHoBe{vSU>Q$J=F z$!82mSPFpugr{GOoS&|>Gc%ycck^L;Ev+#%_)MmT29*4+yruPhSKeLlU4Qv<)^|OG z$GyK*K8ho~79}Vs+DAf@Q;;S{7o$?3@+4ntrh?2vk6)X_pSiI##_NjX>(|%w`M;TX z>xtCQFIP~nqc`y9ZHPtwc}n`zhBE%szo(vG+6B4cubBnr8u{CK$in}1Rv8p-fN;a- z`?-RZzZ}G$|Mg?nC*OYjixd1Ekh`GKAMy8mBlqvA!Qb=8iMJl7X#6APi%7ou!Ey!j z4Ps9ossf9E{**V0Ri=IuSOeem0ellR@z!I+EZ#JX%fr-RW=7F~%1|R=cUCG;p292q z5}3E=)y3pV{+9&x_QR2>tNnwYKOBi1{`_G7)u{;m_SVb$+uHVD-WtDjARIn$iOj`b zU0zmM(VN0rV4U!L+gthlJFe0f2&|m;N>dkt9Xw$fkY{Ox9lUw9-r@-e+D&Ws!kLd> z1**wPo+!K$s3z%nCix`2g}+KZV=g(Mh>YgJVF6%^5=R zB0_(CT_C%50ok=nYpA`U&LXz9;=jWz|4wmE`6Akb9z^VjpNldJi6|-3if+Lf(zu`P z3=$#FmH?~vvrR!xqk_#@kdUpw?{!qbdmUugaxaK`av?n_?aK?n7@h~T6U6~GPs3^< zd#=+jB#R0 z-@{m}F$JTFg8tfA<&h`<`SQ+h#mdX<)y2i(i?RKW9*vdJ$MI{H#rqUY0sT30`DA%) z`jLsgFLx^omDTPt!@zfUU;Nn`NBkVc{xotRhQMMO;zzrbH~V;&@TE*st1%4r~-AMSp*JNW1I^Y zII}$vNa#VWr$>(=N|e?I0uV`^epdG`S5&@`DAK`;MS1u|T@hUB0OTSKFvN4Mp zKZSLd^E-8|1}%_Xus$to4YO`o$4Kk$L04N~{;zdW{JhqXY{1Ev_*Ug+_{UuaBlU>^ z|9h>@X!N{pFw!4H+~%80g^%1MYZ*9j6(!0WI1}B79zmp(m~{mc9Wbry!#SuLT4hBZFJ}(Z z=Bgmqf?IfffN0l;2&qZ~o&lHxi3VuWs6m5)4-w__5CGr6mk!%O&=$|(?A;|eEycZD z*iR1=vu{t!(1}bpdn1)36!x^eRSx z%>Dl`&0vfD1K|*e0G-|N4qBl8Qd8E59!}<8vp9e6TFQbR!jS4EA|JYa z=cc%Y3qR(ZnK^Uj%y(B!qXGP>VG;)HRaTiw;Gpy&EHh{gEW!spg&1QKY9}(JO`4I` zwHTo9xY~u)v{|*oo93DQVjX=A%-JqIXjF%A$Mj4a=lzcao~J^nk>%JX=a8~rAR;NW$}vP$7FAsDWxb45 zK+<~Wy|O>zCf5UQ5Lb<#@jWC(BI+6UK)V`6(2v=ub{?Q!O89<_pgn{p-dk#oVUTvI zuC-#bv)?E#T68ncu+C-aN4d%2%*Iv7`{kU#MfTUtnorpCb@mG%>>bMZdF>Y(a>#@ABuq0PbyUGFtdL6hR%Lq=`60 zs14?H_#eJ+jc<(>Mfh4!Gi~9PKlcT2hG<=Ck;H*wIQvSn%qn-^h2y)6QFD%~{6cg`ED(x^biA3@RCD*ylhc-muNV9;;rFb#plMK!+$~`K;V#|m|&6M0U^$|TG79y@B zo+iFWf<B=bZzLiUVYhTI8xG5I3-6Y^ga zx)eSr`Y4`J@==MH6rKzL50O_NV^msW(hxjLsPg7@snkVfxMNlDUuh zF$*t?N0xn7R#p$JH`r*|EV0$Hy> zxz2F2a@*mq-hKDp0kDgoaN%Tg z00Qn9J19_!aRzyuDR%J^UleCi#--v1c#Lbs8`S?&yovWtQSn2Rom0g*;?Iin2%K}p z1$dba#aqsYOha)I4fjIvBNW_kinoz>zboEB+5MsT3Z?AoEniW|mava0U$n#wL-a8~ z1cN8&;wjG>DyVW9oY2Ey4xfG#MocJm(BuAy5FVvHjJZsLCltx&X`^gxkDjmbiP1ya zr)dB2O){@}n`B7(n?yu2kzbn6TVV|;#~D|7e??X@;&~z>jmZ#&@@7M6COP`du|qtf zZi>@?)+f!9rvKkvS;+Fp;PZ^g8<4LrFAW&Cq^(Ph$NG$LgjcMM!69wF+}e`cBdu9i zwDyK))ZEsEDz-S^$7GJ{x{g1RT1L#GBYCbWKfb}+qsDfsC)~Ct1M$6&%)GyHyLt0^ z66V}PT088+SS$;foPo|si`9Q4IG$Ep{fK!r@q#NPr|n80J@F)qG0!QrecBHh-@a4K z?SEL>WWQtPC#?9YO7TB(OmF+51D< z5Ww;Oz_JTV@7><(dvAFZ`!2Bd-n%GlQ3PCE6&o6RjmE^A#&%I-uhFOnHTD)u)PrYx zJg8S)c%L`t^27rN4o?)0E1z35FJ`l6v@;GzhVVoE5bjDGZI00SAs zV20qvLpc>x;$Uc(PnnDg99Arn8dK1_iSLF*u}vviDfId`5HGr7UAP zpIO05npnjeR&$lZG_#gXQxX2~$vW1h9!%c2UuH>;(@})ou?f%-PhJfw}*9A3AtFUxyN|k#IrAuil%UU!d zjY?f?B2Ac$?GA7O-1Pepa;0i9~gNe=;QUqDsQ#&1O}l0XCDl%k|Ee% rOGaS0l8nJjTrvfdndAUWvyKg=`~#1*RN4Rl00C38eU<7ixC2}OW&jHSDM0L>Xa3)o@;~hRKPECj^`CF`k7Exo`G*1i zHO+sB3&0g%^N->9Zx$PX8Nm9l{|4X(DF0LZKM3nTlpkRIkLC7H|36%h{~Kfe$No>$ z;h(DAKfV8OEdS})|5G&uu>Z5T{=4!1W3m2QmHGdZDe3={CjcO-CZ+tpHv8Wu1Ry>H zz&8Zon*i_*piiGgjrrPZja%C}*!w$?yPg{}dNL|G(#Kyz1g-E5#kzbK)=z>xkc~PU ztCyOB0pDb{&*~$lXQiu*<@>2)bF=a4Qr4ZL@7AB>a5pL?aT}mhVKow;hE?6qMy0Dd zbyXuqh(bt3tc#?9NO?6}ilwWvKgUX%K`CK(MJ1S|`0aNzng(18@vCfx6VI>>z~OeV z42>!(HW)!Rk{PJ1-M(=caFV?QT-`6zKFRSPmG;haY2>@;J%@w@T(!_l&_Wdp2uq{X ziye>)|6RnKVi6$!Xx<@NR^HDmL?aO-&eKL{njg`x(@cYrlNvESCMk%H7#+%r=0^J_acq1b1<;Vq6SfR;U2cZl5&Yzk!_dI74cg2jW2l&R9i|tvPM3P;#Wd@ z-p|Gv!Fpoh+QfpP&A&_AR}ra;Ch#=!HTiOF+{IX-Bi6-aon3zS)7mA(Mvn+oo>7>F z6WWn&9*&YIv?cCd3Io5xlN-#@?m|9sJI?E3a-Fl_;xHV}BS;ah=+IdJ5JZw;G<#T5 z_7DUYl^~nYPr%)^S1O@fqcdrH`7C9gcRQ^cW@|Y=BVohWK&Fm3-c_tAuA_;|US)F? z5>BdXoq)HZ$csRl6aCY7`G--AXBZ>#&A@|6W^jViNeQcd0YPp8lk4;#L&7Pk6{Ran zyuROENm4H)k>I4t{3Dh8A|^N^QQTpjYcWisid9=J3x4s+OQ~gLvGjEAhw~~{tzz7Z zht|o0({mSbmes4ZmY4yx&H6fBQ*I%V%M4Z;KQbbr78f!)jo(cKT00|yD|D4C!tXS= z2SEF1m(wMld_KjGZNfB%I6`|a2SN!(ngi7bUa;`eLHDZtZI*C}#l3xPih&b<$A-8D zMG5kpTBo|wW?X5V(0)i`NMrXOA7c<16*t!$Ey52bf6mbItqy7tB|a3AwcyA^dBTipkZSk zc^D3He~OCO1Fp~J@1~F)%fyb3KLC&n*bWIKaz8%jr5UFya0BGS$Yq-2&CiZml=~@U zu$);e6V#~qd2liS@|{%qTrHckk4#5%1%wKDQFUCvaCu6?0cPkKe`1jL&9k=`VT6`J-M76 zSw-LyI!22(&8liCr(no~s~0TiI}{wYCDQI%l)w~%{oo@KQA9XMJDy!>#Ex?S+KzO_ z+VAu+LT8{DIAs{4@Wdg@atlh7$EdA$nPLjm&0Dg2bTGzxA9TrzdzJb#m_?$GoA#bo zbj6HM1aaK~k1pKP_s-USQ=r2v9@8wC-!GC6O62g(TWmzK9rjzEt!oU{CK{~l~?*I zpdQ1j7~tX(?hY;{bx( zzgd8O<859t=E&>JM}AsSk`l!*ACJjq3*z7nwk_B=888>Ol^CP7Mi7)jezYX5ttPI} zu}WJ?&S|)I<&gh*_n|~yO+(o^Jm2-vd6SotHMB~Kj?eH)R~@ADi{ZK$JKxn*@HMI| zPM~%a`um@xSU$U-?{oY~QGr+9I(_HSSrh#a99A*ik6b597xp^WN12*`Vb)(=djnWe z*LGk`w0guGl=x9-#Nnm}=?)BcE|2D^1<7xCAE)as*ZpgfvB#~K({~s40W-L9xX_&M zUNZjU@X**FC30ZpuFYM!(I&SqH#Hik(vV?L8YUSN>j&T#St>tTb4Pg!Tgxb(!dW7P z&+f=6f?xsAtYFNsk*lUEq%R6E>d|?yYxI!gZtC=zW1&tM_3K088QWu!%XRO_TbYh} zsIo1}Y_N$YEExgaBI!qVlEp^?FU)fEGxf<|FJTc%oLKiZ&KQiN9mh&Ea{iVkjoW;E zV@RWbQVC88RSyYJ!f}OX&7m2hKH@=25(NDSy7jC8$RD_E0i$sF@84LZw~ zO;pdade>>+YU=Qh50PZD;SP8GYmO3poX}9h`hj=x^sXPAa-&aB3EBszqa*CjH@k|7 z>2&2w!rcfOhN?)cnQsjWDtvY0^fU$K1d3p_@yQ)i55DsRZ_Yb1W;n&O2#a5jr)58t zz#BGk)}E^t3~P#XiK|wy+FJxZuN+{-Vy!gNccKUZS!*+n%xxHeaJI#BQE9~~mi7To zojd%RI7x?nhH>Rs3iG*LMH#2E&_Ad|5_T<#zjmMjJL?jVV-E|y*-&ljBf_K-&JJKD zWSZ&ToN~)fSeW@0vPTpx5-sAazYrG$?D6P0NVl3AovfBe0z;p3*w`RWF*=ROqv2#M z-c(icy=;~y5I-&u;fW#SeN>+`!$>sY<7A8&g*kg&wkO6W#`+6PaRImNX06s^uaLH; zgK*inlaM7yTs^gpELM~a%|D8w4U_E!6~pzB;y!hiS&0n#wDeT7b;}L+i|v;sNjuQS z(wlWcVk(2yYHkU77tg`8E1KH8F(mE=A8-);kH5nSsX%vFuMrl{H$p$F#m^Nr@U5s~NLy{4{tgISu*;~V zk=IpokZ=XyK#erPkTXzb?{nMyx&(ED0lxMTB& z9+3xPVk_)Vu~Li-=QvNKkh>kc)VJEOA|Z8_F`LgE6o?z|Z<~Do=N?O)`XOATz!2}2-DtWuOTxOtZZltNO+-&U&yOc1pe}LtD8FOR`w!$K`O&% z+EecL-GsEDfZ2|G4}8q6Vf78j;qvIO;!_Sj6QZ~c52+U#V=cTaXvr2ABDr(Uqejsv ziNIc7N-Z5>Kr5|qtQ0JVwXYgL4qSR*G9=1ZNKl%A_?vC`*e+LnOo6(fET~I^-1YhV zJVuKeB#6C4vqg};QjwO(#(;gy9GZLF>LkN}o8Zz!g8MtxSd(u% z+|m*7Ey8&3Wq6@g=(Xi$YLcGqiZ#m0c2ufqf)9755hEOzK=VIQY?k&op5<^!(?^qN_fJGU%hjeMou=bdk4&50*0=(iW95S+JPjevo zVCSNx(ir0o$DRfh?CZbvZJ4dZqzCp~=ItiuQ%up1V)u^sY~YqgL`Z_k?(u%M&VOh{ z3^6BuAT)QKOzLq)&Pu(5wzpn{l7kQ^k zLh3!>vaw3O>iDO-RkYG7

l__ZlyR`jg{fb1dPMc*G(0WIR~>F7$5MoGs3W`YF_J zDAb7vA+cy=bFHqkB46ydFm{hk5ksRzq< zSW>%SxXcu$xUBR=G}W52b>6-31)b{Fqs6N;@X_r%#;Rw_VMSP@B4QGo}r?=4d4-kC=1(&Dx}Hs?im1ox`QrazSoIL#H9zDmp3@ z7{8-63??${*7SbC;V@ceuf~8syje4-36r^+!dEbUW^&=Z$E{`MVFYi(kd(P#48}AWm1?$8#@d6jueA7`JSR(Hr+wQ zhT}(o{=z6D_kFd^hId@=nqr&K(#v>I>jqiU7z5;^NiOat>LVH86#$A0je5Xwz(+@} zW4$e=p`*AWs1#5J%i4L32McN#AE;|r8lkgIe0m=h)EnKphSFC=m5mNi;vWU)0Usic zKqkK(+7_qfb5_~%?d;H#S}_oZCnZ3eJf&PcLD=k~%=gmQtJo=XP#%TPsVG?sOYS~d zvz&@Liy|6J?VEe3r)EAE2Wb`-Pz>`1{@l=N94RyEAAk#7TXo~yYwyT;2D`9T7wf}E z{bq`aj2;NrO{_aA=(uPpB#=11v4WbZ-lTo+ur39ghY`|+fIcsY^(4nBdZTJgFOqWpE-}6$KPUV_9N7W79hLy51s@S6tniJ0u;1Bbgz}5Iu0vv2&9nun z8{uMf*u&76FAkz8d{j@({p=ClU*CyEnH=$E?3GR7y+$!GK8_jN>sICQ%4-~#9tdE_ zKoAf*1J|5xVYlRR8i6`+Tm9XooUKQW@W(H7nB(YvwH?+mTkw$5^lk8}D^TPkR0&;G zPc(fDX-;cb1p>mSCauzg-%@Xd)cz6D?X3{Fiek^d_#MGE+E{T%LD7?HhUgAP-COW% z_Q9=ncHkA@DJ|0@AwuVDq#?CbCyNl%4yMr6gu7rz8OLzJmDP^O63vY|slEtCYzz0DNN2b;>( zUTCaIE(&I<6v3J~Skj!?w40`TY*Xa@0#10Dkea;KrDL@di>!kzd|tRIi2&w-)Mp>F z;Q$!N!+`@dIzv!p>E`0tXrfcaR3M~_yHi59I4kDva>6`$SQVoI59)&i?3zeY_WgNj zvS|kOBWN^AijlsIIj3LTJ$Th2;|(mR;{CjKR|)yJ0uLy*EY!^-Uo(o6#D>4I{=5Vt z1BR<;{K?i;QJIE0T~(Yei#84Q@h$Gw3B?P?pY6R!3%z&{?L>;Vt3S{s`qcI~pto2E zS=Tt9yt95f%|$^gBEtBmO_9sQ7DsBG?QO{uh3RX9_irQZNrl=XZi%BE2lV%unA{pa zp-6X@(75##$+#Uu5`RKkkB+ZRZ0U~TZXz6PgD7;xCJI^G6(pifRJKBb%0&+hM^KrG z=4G-e5$oR2RB~Rppb1mGFf=kh-$8YI2ClrF@fN2PC z`{FBlJc9#;kdEF&di;bKa@HDj*g$({bQXS|4p_C274(MMgJbADm(R^=3?xTKG+u25 zCM!-M3>H0lnTDnKTU_nuvi&_VqL`LpwDoZowqxh7_{70I#|4xyGZhIHAf*bMG-7Q` zjC|E^`5PG&!2M@NZOg0gS4{5IC-ZZGmwE>6i+p zi)}U}9ryrQ4}l!yoq&ej4`1pR&O`N|h_amcHxzIqjr@I60Uo$wk< zemj%B_Y1V5*9NWRiR&DT?&_mx4Gb<>Zg;LQoa|@y!Vmu)@RFVqG?(7nWsj4)4sG%(6mde=Ex)HXONiDXcK@^XRlWb5X{cZ%N zR$Ir`<2T|MNLhjaZ>!F{RHss~`Ex$VZ53k3(I8J9J3RrW|2-sQlP-1dD7)Onhfa_K z>?r%OkY?QTa9)m*JLIq^=d&E|YA$g)zp@l;SHFwZ&BK>;agXnpa3}#?b}|jwx{r9s zHfwHsW*yg#OIW`W`7ZHCG!t1qK628`pR3YzODqC-k3*9yzJ$ThAj#tseJ@|Ybvqx%*O@|H`q^h3uFHLHoRHT8UO=Ru{>!!;N1 z;tO+_P$o;Rsf2%@-89HZbc9OV%(HSiX8WSrpS1%)%8w<3?f#M68Q{5zbG8WRfxs?s z7G-m=fTJi5W+ks3L~?t^&(p_JRw-5fEv|Kdb%dstB2*?5)vKv1!nIytiyt3cKM7O3 z2!tyS#^oNx0B(sL#h0jF8{UuKW4e-lQGGNYlkjBL-riCALr+krUS`^AZ--NLk!|9@ zt_dbv`Yu@Z;9GW~NE;YhG6vpZj{G?FLI30lS7vEsVlZpHoBF1pozw-5epJU2ua6KKs{ zc1^hJ^B~~9)1INMh!@RmD(cJD;SaLJJZD5TM7|Q`&S_wIt5aZO{}|%n&AL^59Rz_Em(H>Ic3Et!I-B^3Za4O!Kh1i{nSvD;NX65Td3A@A zvb7;wRdu$Pz-dFYcnQM;s1Yn(@#Q8xSdZKmvp0(o2@U11^QQjAp&ekD6zg z6{D=Vy6Pe!tVno)`;Y@Gz;CB38AQ>>$Xy}y4QGNBB zKYM`7K(gV6+V_mO$nsbP8Xs|~ULJCwi5R^U8b0pY>$(}Z%hS-?v{p4u+5t-6TkO(N z+`&aq8zd{jk}o1$5HFJtf&<|q%Y4aEmmd6K9>&|PYqlY94m7bIJaH)QKIA(w zs8REBp#$=V!Nq#^m{hhA2sZOhY?;69zOdd4CqP@h0SsdYJdq!>4v+PiMy4vBDVXIEu~MiFu-L5m`9gY#qNEnsBo% z(|oJ!Lk8y5+|TJpa6~c_XgV%W2`gKarRWA2FE1} zQL#{3J5Vn!cnPOGj&Iu-N4D`3%$|U|AgJ%`IvPS|3t0lQ-!z$`64-W>CzzI3Q_w4w zVb3RB8m8;LWGuhO4W8V0hJDkai+IED21|q80EeCbFklCT`c=RCRTN%1qNzUs!t-_u z&382WFgtFR)*L8ejNLi4;Z+2Ak{Ur71qzMvQhejo%j?z!V7yh!5BL$8! z*e&rU!VeK;$bPaiSQ4aJVO1pc8CMaedsWa#IAPR$5>d{6`}{t`A#Vh*A zj36d>m_!##GKm0v@Y-J zgw>CdJUG3DWyqMX^hlpfqA}KWsG!+UKBI1MigJ?(Ii#z_Qc5wy*$T9tYXh6;yw4Dw zm0i7bSseP-p&AaEaK0hqTPZOjst!T1i$E@> zx}M_R@UXy}1Lc$wje@uketj>eO6Gq-M9F^}-?$ZG<_-6w=&PGrjo>ohptmU|CsVvL}XD<=(ed-iCcw3%9<-1Mg?!`Rn z#CqwOxIwU`Jq1~3M0#16nLhH$b>CGPUtx+xu^0 zCE7YX#__L6<$p(Z7>Z5;k8}Y_W7fV$y4k~q&$)n@|Cp#_sKr9gBMKheqfucXT;|1! zk78P8Vt6k7G!NGKW})~j^z21H{VjYIR$acaLKdX~CEnCpQ55X~+~(OY_0GP2{PpEa zpRp2BewAs2mop4+YN9y;TH^@OlzLGL4t+l33!J=OAi_^SpxC^pSFy@oFI;j?4l^K_ z!uC7*yt#jISbGNLlCX(fXi5Prvi>Rpl%(>>qm_qt7CmP=R&1gLDc_)P_U68mb46m( z5`bB&Of`ZUn%9&!!FUf=eRWBR+U?dbF6K_9L#~u?UqlTZ7*nr38bZ!J>G*cB&s_2? zxV39B7xdR(yT;TtxHfl!CAX`BFEdiq`uohXiC6h8PC`O=Q2X^n>^I0NU7mRaQlsQwPW-2@4zn%qwU<`R5N>}?+WBKdAoYSBSaf@_`B5ICZ5R;Mh%SS*gm zg?9_Qq8wP6q`5}41>%4}y0!#J!%aeI0oXiG6;Oea>D23z6fwJn$7@Zgxr~3xO(D7A zAva{c&TQlI5ySXV)_$TuBR@ThD-157c7Um8T|0Kow^RiWnui;g@@Z;|mtGtUB&#S> zMiY7TRo)Q+EWIZaXH@2=0;s{FqorU8B&kC!u3hc@z3Ft5Rn>BlB@ZXC5!@EcG8yhH z|5P;p4h_y$GxCw{2*6kAVAsbwim??q*;Oh3uYLAe_=Vj$S9ri80=$3aOuFq4bTOE+ zLzw(NxZTlf-S5voNfs;iUS`ba$^KYwN9y-oN=a!icKFh}v2{k>$=0?|>M}qDB`vGM z!k|k`!I_kr%r(K($;0Y26uE|mXz-LfoIv!{1Q0sblLa7e_-}6y_te|OUwTjdrjU<+ z7%kMGwgI!JpcV5>Eo^A8c6l&8?Q67_Lx@{CJOE0oc0)f}R6x^Yp3&{h!vQ#=UZYoDWOo z19ELh2<<=|F&)AWGaEP!SPw`Ao~2*;aDXhNJW-~c>gPXdz+foPCeMk@VcUsK&~)xZ zk!6p+>X!Lpu1%nERUwK6z#HVsm|3#`Y#B%sjSU83^)!DJ9nh+} zRRG~a_^m@l%~M3&&CP%4o3Go}cO>bxX_QG_kEjYaVTfv8o2%zA?dpxrJeQ^HuAfJ6 zgqlYz!SW=gvg$?Rv5gFX5hyp&2uM7sBY~;mzC*R+=yR6}fXZ$W#gaI1#I}r*46eROE!l29~INNXc~Q@|9zfA-(xw zj@ds^n2MfDQMd3hbHp~SZZWHbXJ$%RH8}$c*A;}()TuZ5(^9SctyN2e^6|9#ppEB%}2K@yR!bN6e5j`+;1%7 zpmfs86;ZV+@2Pou!+-!TWz%$LA#gzFi`YBQyag*Q5fx9Ct>cjCcP3f)ALWc(N7j;S zVOae%;RZlvffV`H`Cg53*n@l_Fm@FP9NeE0d$$;W{^D~vricdK#itUB11mV417z7+ zOJ|L1iqt)Rz%R(T6x*&M#ZLta(J3E zm_aOx912D<6$>HD>_9kcyXhw!krQo$3u@@kNxdDj&V>8!pst_YM38g%XSg|RTb81K zBw}x+1qUEYeWD~O3BHh7ZJ;kTDoWSqWp%YeiH&4}10R$kg;{!?10U3-e8aHK(A%UT zOsPspXx1d@gUQOnj=R{Zm?rXJMjqj$u81}fGT{ss)F5doygl%8CrlqRib6yr5GzX+ zitEe;36t8<_}NL+%kDHo)nd+FbJIEP5z+?0?Wu1quW2&f;(_~9Ec#^eB4r*LK$_fC zy2vq_B=4Z!p

nLX)c51!&OOUP0Y*AOZyvqJ6sobSh%1I9HkR>-?_S2$p*;X95G^ z=&NN`$?LKBg53n;ydiLZlIM`J!{Ds5%aOzrjpv)2|fw zL$Lyp`5TJ351ywaXIx~aR#RB7mK~&cI!JySFE#T8`HCIZ2@MS;C`+1p|28&}$d;ts z`r?Ny$>=6}*ce=Pw?*RNi3F9!9rP_D6fF|zvS4>Ur*&IGun?~p@`)3BMVS%B;*GsQ zAHCz!bN{C?^8`|1A~n4LGEP?5h4#pGmV7OHJID2*H+AsIgeE^RJc>xsvQ;(4jQ!Ys zc^(Rshf=Dc`CKym!JddKCACBLZ7WTC82n&AM zn6=7w`1w~Qxwf)v_#DH9V)Csd!jugBBIJMvM{HY&#=96*WZ-UI8@Ilu7~O!Byg; z_-e@9+->4B>6h`YkqFz7616e7stbj$Hy2Yio%_x&Ww6@nHZ?8fwPDB{YwNLaSE{6S z*U|4H3=KtAx%VFT6etwoDj{dYGA%K#M)9qa1v2uf{tUC5Upo_DlXi%}smWcjPHm2= zf@khlVm|LmN@?zr82t#j*Gy+E>ahC61g%-;dB9& zO{l*RXaoQp>mqxHQ~w;*R}9>JaiSkUFd`Bz_BNRurHrKvL%DRCe)3(W5w&H;h}kXA zyZCLVjjG7~D-e(2+1HcQwBcb3^_N}j!~D-UUC|W=zX)l%;}k-480oWED;iAp1I4It zQ=kB|EW-&PemxjoWh74{bAc;J_OQIjd$Uffv2c?zL>$)BK9KM;S+wlgodx<>9U};m zhzJACxyy1)Tf-Z+6cDO(Ji$36Rb+lcunZypSyz>rGjp8UbmyB88h)&T2A&0u6_DB} zI7&|{WA2KF%vYwj0hDz|jTfVf29YU|j1g>0Sb3vet)+3Jv?Z@$DdNu{N+E*d6I72<{L8bQjD z;X}moWdaH>DubO8im6UfM(J*DG>nQf$w>eGwp4C~Y-xRsV#giMDFSPG85^`vDybXzqAL zYrO!|*u?HlDk0IeRP6rYb%thdj{(j7=WiUUSJi--R>^1uI^5v3wlS4seRZb#=7d{< zd4kO}d?+Y1p6l0;L~0vR>4+9TTL_dsdwPG=X<&eorK&6(^BuToH$0Ri^5}J|L~*6I zR$w|-ALauq?-`&N_OT$7CA8C%049Ji48>cGNc|jz z@Mmi}NYG#B;P>@-_p&}XJvZ&eeNz}_zpd#v{7baF=2mXonIY|nX`EfnkJcAwRB^Wm zmZ`EIgEiIz3z*)J8GR+{bchh%AUzaB7EhI7Bx{YmjTfig*>6=kDgv?D2qp7u-&;{7 zI$}+jmn9z1-!q5N=niKn_iaw)hno+No%hAmq2u$>SsaI+DWMoW%a2cJvq88lIp!#3h+&AWinP^Y9#=MgJ0a7>K&vPXzKoGR#9V{VF~};p z9kH<^WoyHVn8c(o)wj{1YlJ)L(>z^`47yj+bH#*R;jOFQqibwueK9;UTr2 z#cR%_C?t~kS6B=*VV)!ABIcXxofbK}CH3~Z+?^rAnE8LwUxFi>M71sVM^VsnW8*&p zLQV45AwLKI>_}jqC}~U1*^FB$W`};aI%*b}35`JZb=!HX$m;>n8ow0~j1{n#VJS#a zngP|4mVx1Tixcz8N;slh-0zS z_Oem7BkK@?ewd34g~}Mo-_asgVU-D?Q$5k?_XQa-)e_tCtyn(oH#! zrv?)K#aK*_C=94K^PyEdxa7SE^p!U6C*MYwLE_}oYL7?T?WgQTFp)4qsKcUz;YGJh^7SX==@+>(q`dr!NN?X87CIw zEf|s9f6Q57CXoJJLm4CL-sI2E`!V{ELtkNY&t+EN>O`as_W0|8U&YoTQI7MX;fFO8 z9yjgL*fJ}%E_0?1CfX=s0U{;!>7S!Yrn3}m;!2|{NNgQ zFqZy%9*zIjb+HtXVtgY_I}WGWW*`DRP+Y8MR3KZgHM=!&z?e9jq_+3rwl2I*C<@K% zUGjr-P8-FNpQzlrun|Xo7rEktE3I|c(T||{W5VpjlJy*%A2%3{zbFI5U`I)P^aQu0 zODc`a(A4WUnE?PFT;Vfs9EUJ4F-P+BnBAq@A5U`hzeYuvUX`fkb^_^{v9143Kw;o2 zL~<`;RBH5piZs1mt3^I{rBGGJJD91q?!FwELrE5;D^zMRS7tO5PmzHpr7w4%`OU>Q z6}c1NRvjNF%ZWjeGCYGO*3LMU_G|1@e~{X0`dalXWFst534W;4H6n#|9w(nZwCgxC zweFo2K{5JCNRUsAhSSR8PW?$}t@hj!xlxFWJ#Zbar3xyAa6_KcM5c}O*3;9l>2^9% zzENM!CYvb|2@Pt0iywPjr>HF65&d*#PNm+Ehjr~rEJB>OEZpmoAPfOR#>_i2?|;@bG5GMamUwueumxzhlzIcTNA z0Bf8~4KkxZzQM=WgjKG&Q@`ROj5s#a&R7&AX}>v`2{AlldB#a-%7R(UXhu~Jrrja( zR1kHe=OOc(8n@H*7Ox7sjD2I5Nxuiq`bB>e z;e@Y)39REe%%%*yS6wA}{TQljHr*iv+P!8fQxCYoBSL@F@|(0N!FM9yhEX^Y`5xVt z3D6&ZsA0t(3kqT~L|D(ZfiqIX2HJW;VGMgLI0M@5^e#ffTNe#g%3Clou(x7zkx@}2 z>u8hs&1g)H9KxldkRB+qZ1{Gt{?e|^!xx&Iazo;`VsJZP=o7QahF!5q%TVJhy#-EZnPtNrNkZ-d0;M&0kvdIQVJGWtVW2&Qu?4Qcy{fwkE zTy8z=jG=!kBMs`_gEV)t_pbysWHuxhTtXDBAf_7_ee4TbqG<$VDJ|mkNe8qoU;)B= zkVqo*#?-#lGZM3G2s2j~_GY`%1xqv1s6Fk*=%#F^%rhLumvOdarc^(6M-!GptQ~Eb zmai;*sgEZ8tn?ZMuA-ma>ED#W__WMI%`8+Ehd+$eS(KY=?n~?w>`&Aow)L7my|X!} z=g)XhAx>Ez<((=8II8S_JB|)`*zOW(M9ie~@Py!_F}%c1HQSn1R9$ZG@FV9WXwj9! z#L8cg|Cz^F%7{>rQ}wyrgmub41~-|HIuxC2kM5J0n30VC23;G-UI9snGlWv9po;9gNUBt>&HwQ+&X#uX(7=acEXpy*WqPhh zXzYIS8!WrvE~meMkwQETPdr8dH3VjodMXU{Ru6cZV-_4}8#ie5DGJpC)#vGYi%Dg7 zEv}5CqM9`G(rn(?4B!(6m23$DlR}wk$-JF(kjM(|i1yWC`;FrQMW5>D?rbhM0H1d{oS%e$IKQ?gF{TXVgHGm|9r1-mCU6b%n=l~3#=0*~}R zUAE+5NcK`WB&s6jdc@bRJzRR)O$+IEjMO><(vi|`KDlvFnQjOJFxdGNc#Q2V*q1#i zKpHIz-e8~0aIynTk=U}!9g}$~KoNvz&2zo4J8tdw85>=+2;FIdt*-fW&QiV97@HP|=Iddh9 z6Mte6^p|fHq~3tF#m6XN6g?Kc_l7R2011XA4dV@8+;bnAGV9_Pd141M99kgmL3`hf#y4N~cv$6bwF6=cJlt%IGA2ZnpWsr!5rCwBoPttP4p~j*8gT z<6V7`#Qz@Igp#zy4mweBuT~8b+|;l|NzcLPAHbi%OVEGR4ePEHDb)Yj*rZfm*?5K! z_$DH(?;e}=k)(aH`{GPS%}%1PA@45XaNI%T(==^2?#(9Fm;qF<(XXF}LYhz+tsJ9! zkz=G!MEZda^R?pevaA1fG%n`>=T8D zgvUCzRTRTLuZk>vEXAbG<1%L`_-MP9s&-s!$^dDOQsB{@M--;2Js1Z{2;AvGA9EN+FsTi%Sc>V`I zDGoGfj{Aj3`)}`N@@O@Qg(uqIv~lAd(s81_vUJJer%P^T#oaA9C z+J2a}nk_cW!OFy*qGF4~QCr(?kX2NPyeQwbA0dJAxo>2#nI+63m$G)wU|i z+Dh91VlfP_>~bHue0L6HG-}BYbb+sOSOMhymwhO2Og00f5o2?7E%e$49k0knH<3%AW*E3bx%S!e?ii#>u>r*f2SI| z8EBiFu6=7jTJ=f(Qv;T|MHsr?8<;?(CXf=S(Qkj5#!&H*!Aq z2nr38YCkDxy#bH*wZ^iQ{9Dy`R~TeuDb#R%}Emx`|T|=aNjV1OEJSR!N`)9 z&W^O5Tvca}68OhMoBMaRzAni#Zkb|13m)pCVzOOV6H_9_=)@w$`JY`MO#O+!f#uLG ztI2lZURew1o_D_%q*ex^ft=Y4wA^HU=f3`AdVLLL8vuvCHHQ)m2KyVleB}=8V0rt7 zhjjbK;ixLaa1=t9Zd^`$q_&I8{S%>lBF8bdeer99^4Z`A z!)8AebPV9hjvmg8reE$jHvFyOVRT!lPuA8xr90gcgIN7lP4Vk;NYNNBnbnFW0Y+dI zNfJ^!sF{=M6qT;r3T!@H^^WKFPV8IXCp&jwV;AJaqN3_a#yQeTwV}Kj$6&|InnRAg zETI~dDa929R~F?6ZD2*kO)zZ$kqJ6FRuns>h%I{;0-V?9_DJ|yS#zc-y%qb1jEN&{X$!F6x6)hlc zR{5dn6GHf!-@G8knZSpYXLAFtehho5WQfd za>HF?jRb+wx$^hnDhjrDg-}sNf{f6z;W6xZ%We&KimVa!?pe@vg}G&%${~|_a(1!) z;_aT$A?lIT zoyKLUY`F$Q$-!d7Ij2QP3@bPkVV%kU#JVJpt&*FnGCZ>0DFjjBA_7X;1F8}RN14c^ zGE=;7L&gb{@;D~a_0Z%{kq8_!6vhB|W(W)jjnZn^sf&t0g+Fruw3_tte${q-gTTM1 zzUSpFu1;z&aw+OpYOS_XbY81wMj>o%@(ca!V}DrnJLBM5j8R0#M3EAKnAm<8P#u|v z21~<2B??A#bl~f;JSu%y88W4=Y+mFrBC!f9dEcKSyue2Lac*5FR{YWvq&x3W782$Rb$-B{ICw&VNL1V~DoXK} zXjBc2WP-?eHGU5@=G@vt;Hcx|ucQu|z)bS>sWNWTd&WvIO*U|WV00WoGNWPZ@^0A! z5sCrI6p0EVdN{MxoxAitzVR2i!l`n6orVrO1v{ZhPz8~AbvadPQIXzK2G~NN2k}`TxpvZ&XE?0Ard)Zn zGB#WG!KbvMq z$y`9c3fJWa|7OS$<^1=%yD@Z4Kz9>-(TBDo@Zo_w-;yG(Ez+^79=XHx}q0xxYF>N?L>~+dmHnI5?S*6gE*Zo@_>X20^iUBMJj+b8Ncy*P#7*{VcL!NCH}J{~CbK;jDR7ei>+ zdoc|-G*;0%cnkHskpnIxsV<|H67((mBmcII29b`lHWK6^e>e%H$ES;%1Y{V+lD?TdG= zwSmvE9m;7swHZhS6A@Gsf*0Z23#j$HS<{6Kq|4v`VFJ3P3{u@GJwk7Z8k{|$Zs)ml-mF7)^3-EIb zr2|{DFmu)u;|DmPlwyi^(j;G9`VN-h3TVT+e7)-<$(L$KP~6OZTQquiP9hG!OAGNt zuryaTV%Rm31>%e25-7+Bv;{dS|AhWDcVwA{DOxjU|HK0cVW5@JF!>HybY})x@dYE{ z;+T#(U$GpsngB<5)~ehnXx3Z_yHRdN_Y@5ya0&*awXRhJWVvV-==Zo7KYsDBu=?Of zMMAgH$4NJ4R_;3iJw7D~=9;2*F_%$HID%sWXkqfcjZr%SdEn3x#hFxY>9~dfoJ^BJ z4A=%2qh{w%D4&;lz#7bLF?kR_HcgJ(YBkv=kPL}Scr>`enn*4lK6t>B=$E5&*~+>* zVF|>sw#YzoHMhWuL`?!6ctCl~W4@LLx6E`1 zM}r(kzPQXyZIX!CG|BA?wDoA;W?bGAi2iV0_-z(>x;CwcrMT{3S~JW~9U`%0HO^*t zw$sSFhO~bU4OYx(_v$Jd`u79V%O=o-aZdngESSANEDClN199W5g}m?7XV;lx$C4IevQTh%QIk01H_X>2al{SL_S2`5G@29v22r*)aROepHIN7vh@J>~1Y-|q zzI}jZ4Gbi80=ploX?iHbZS}1R7B2bn!+cj@lL_MK$dOi+uGT@0L-61m)eos)s zm`Dzsy^F~SRE(EU@i|C@Q9Jtvy}*oC_ENC}H6Ddv#6%IXa9}MV0RWm2T?`hRp<{Ta za<{gb^g7tWWvDO>j3$YF*^LLu=pJU|hsU6}$=dmRDIto4uQYr@@ zPX>Uw^IOFU&cr+oXLq8W_Rwka1qqrh+(fbv%NWd;vTM4ZBzARS(eh&79i)H*2@wxM z1`1s`3N1E@0Ea9x?9{a=Flbr3nR@$cg|3E+$dVy%o>K{OXP{RT^+=-9SSSqyQ7IW> zPC^QF$s~R0o{PGq;RjO-Ktg??ev02zPPF3TTh?9gSdl-2djboZki}B3QvshgDY9ZK zaRB{yV`Kuba_WD9?n%-;v<}TeBPF8*M8{efR{dP4Eh9|!AR_>!fbzpYRsdGscT)8g z^%6?qlOc+@L<5FX^u0c=E|TIp?n81_-|Q?eltZvaMK02~$ok|}mU?|wRWCu5kRng<|@%j2H9P$fG zUx`Ij$Glt~p4vr241lXj7f~36*cTSy?QmgsamB_jq-Ew|VAa{%UxDn+gv_w4vu>+P zf2O@Co(Wf#aDPN-EmAfwl{*$PuBXYEdh-?YX8K_4;>rvqn^hD5%3fZhlZf9#1@y`D z-@i1(e%;8F1V`O~B<-Dpj=&O6e!yr=7iv2Dado<7x7JiaK1NOZ7Q=K! z*rxCkkn%RFXp=aV-8xm~mIg@Vt7y$+-1m3%BN}#KzBhzh{A7F7s(_DM7bqS?aylWAc&B}$++9J#A84MuFf*b8 zi-N5`lEBCWdvtFXWMRA#pcKU^5}#D)3A%YAjHG-u5%HmRr07qttcb8YvzZWQpjw&$ zo~x;4`AQp=IngeT_5l0aSnty;{36b*sRT9{cfIM25kA1wFm>gEuzn#IdZNJq6`NHv z({hE@0G?;O!)pZGzkrAYDvs(Rb;7rhdh~K|;nx2b zGkh`7ly#tN5jCtzIauJHEeuQU7JQEr>D;yuMvBZMd?tZz+!VqH)4~}wS{5nG&TE^6 zh+qts)*(>HvY8{WpD?RD$r%Bp3@anT0AcVQ!0iWMK?YfV0a^~6@#LAQ%77r*C}=Vc zm6C@-Wd?>AtpO<==Vlj`Ehs>`mVz`^bVd*wiQ$j4yp>VOSW=cO$rjnm04bOOozcL? zj*6hb%LVvU0qua(z<3-DO&TC%D74VTflh+c;G32aA~9_=5*T7Mk~P7U!qa3U?QgTT zJuse|=n*S`BO2g2g9zk!2ZtiH+F%80LK^S@W*P2AO-}S^p>XP>^icZ;=iF~>1H0=C zd`Zypt=B*p9j6=JNT9B)bBx8mu+gfWCVV1uDyP!YUW->-7o?wi;`BiGg2`*~95RJ) z6nvS(^cD!Cz_<#k^9#r{^ox<=*#Z9SN_VLluk1Yp$VW(Q-m%x&tnkPn!e^>u2vm5_1+ z!|3mf0cOR44)~aSLmZns>><90TG*edlW;%$lrgPR&!Qu1#0GxEy}5IS9HG=sm?~4M z#jtz|CQ;qu$L`>8(U-f~Y5Xel3ByXlV?;2G-j>bvxS;aX^bNBcaU>d10OZrjf|DW^ zKq|)rg2aHuD>%8yJtn%~SZxN>LM_57l$k5p24nW!H8N_{yEF)Z)i-S^Qy;oB=~W^* zufvweIEoHYx$khvz_tU}bc7#&zF{XX4@JLc+o70tb>OmfN=H)803?&_6N6<}8||-J zpq%pe;a{p<8v*f^3uHC9OY#mQaMQ9%x!9Ph2pD-`fRk{_;D3t^DUKr3jF6PzO0v8+a2p5Hs!iOk;{_F;w3jQm>5GjEQHjDKJC{mg^kQKQ2{!T5Udr5j!tD# zkOG~TN0s}u8feA*n;wB?_UYF*|#ufD#`r>TFs9!eXrjf_&MD3ey0}i&=$B5HCIc z%+Um&K}*tP7TncSb!`ROo=_sXsiJpbA+QR?s_8zZ>7@*r=q4(yBE(hr;nuD*mCSWx z1u0sXupn+7-4I9$=7Y8j2AoBiR2$PVIh48~&xDj2Q+Udp5HdFA#M=7X++=b( z0CutH?=gQ!x1sVc1z&I5S1*I$!O~e1mbuvbAfjRe-uRk{8L;Dn69+9wb?_h=X@;s- z<(zs$juHKf7(2P>wiNzHt3=T@?k8cioVrOV+=QfK6f-%Gx+WnZ@*!}{o3io1ce!Zb zHaXyL7HSi?7lT58%1EIrj6_dHx-HFAwl1{7*{UgylRfA$7z=B4gTp(9oCVrYg{uNA z90x#{rTaUL@&k*I!P>Av{p9Kof0Xh6U}Xggju6P&UrQV6;sAWvv&`vUU-Qw+!GLIk z$GtEaRpLvt4PXkdG9(m|q6}w-Kpcq?zf_2sRqi4T;fy3n-m{3Y!SVZq=85WbzaMT= zv^KEWp2IbaG!qQn-e(AbQ7`})F34`g!{tmuvV-lClDrT`4{!-9<|uClHA;@QrPTkJ zsAySQh*Rkm3nWJX%(ndG{nGU^SeY)324`v7F=%%!;6?*$i7$&q zrl4sk*@~E-1GXG#9-#0*3YqSjl06^LlkN$mruN#XHD@3JD3u_48V#p7=HA)H2_o5GUlx`D$ zbaXdo5gKnsb0u$(6-U2eG0kc45Na=DO9EB^@j@*Ciw=0< zl6vu)uj!I*ER;|J@NS%vABiGHP+$kN-Sd`614Wp~InM&q$%Z-ECz<^ZwZeWfkmiH{E171}aQz4P%O3ot%Dwe}dG5~cj z!_C431KGGNg6Nl)+(+KoN9pqZcauW#ci349Ut{L2KQ5h@l=D!IC z3FVx5SMdC7J8_Om0}1j4r+!Hu6iBzF8x32qs;(j>UA+t7jhb&LW5ng=IeMOx|+7Ei^( z*hGLq;K=J#Lk33u9oP#l6H@vW4mbx02J(wfL6OuUAj_k5N^&KF5ROpEG@`D^)N$GL z1aS-K*_(Sxx9KUuhw%u#cT#R`b;H0Ai|jMNSSr--2MnGrG-*7{Xwr6C8KQA*T(GN1 zC^%K5Sdyq5c`ieg{=zg{H&so6!OFZ_5WT@SCnfEI5**~EgxC_U{(!m_zH^AK?SgN? z+rp9A%=qZ3;->2ywa8{64J^{-5P`N@|K^A_tQ;#>dCx!)KMk|0{&z z)xCgYUOG<}6#%lVoSCDd3qtU|PL)?USFuCe)^@_-m^1}u?0{%+Lni1zG?=dD7-C*m zcEPA{#1T1?oI2DHaApByY&A6GsI&7_Wpdvbh|SHxgDr&$HaPh4F#uBiP+7J$~#YgGz(1!iG-5S-lA;Y^Y5V+;F9EHe3p1{uK`M`Vn3* z&x9Iit)z5roQK^wjJ=e`Q52HcC<@j_ONXIJs9GRk_MYBr?tLFE-9C-h{5V|RutV&u z6ImwTHFgoP{8`dKgV6#&5i#-&TQ*&8aPm1QT#9+iiV*Pg3D&Nt&4$tvvBps$<3MiC z;PmRT^O*ppeY+bntBP)guY7X|2lJfYKKz6s&x(Eo0VdpIf8bB}6z_l)P&C>yz1#x1 zpM3`5V=*DW;ydfl2dE znuCkc%@Av)y*!3_r;L_;sw2~(b|~meB=6jEBz*_)ZICv$%EU;Iy+b`ckPhjyyt;ym zOSG0x7F$FO*!2VN1(cclr{s8;fxBM*wg|Ftn$uH2>BAWzIa*k{aQ^`}Bd|h7urkJ? zSQ%`KrJDPjx29an!ScYuC|WVm|z5v1T%|8lk4?04mGzZ!D+W zA5&rt@&kA}L`#;}%U&{Uhbp!gPO$BGYM0GnTRmjZ2vMUjcqEC*M})|rTpZe5K@Oo4 z8%nMPZFL&Mz-Avz2eL1ufc)g*Fauwvu$*tH0f<3GGf5t3Sw?9h^U$I&>W37r^rSW= z)g~Ji(@SPm=AZr&NHljxj^@=OI>k0 zK{L#&$`ozqZ$nyWCP1eHcYvht7ou>m6kz9Z5e@=7^Gc7&<=|G_3^&vgyB+9|g=T~u zx*8}F;iERav}b;=gN*^oCpzMMNj48rFd#f=oQxU<&Mra}jTYidyw{5sYy~d+oG?pw zH4xfMz*+4 z;1)G7bBU!_5W0F)K^PA)pMU~!O`{Twcx0Z|!q&#u2GZ;^v1!YodY)H(j>e<|si1Z0 zUK-I<^oSry9XRZANdZWePRmO?T4>dX&7JNYJ!bg_-|qw7q-))x%yYSwNHUiboD?65 z;5X2Wag@^)>M$8ynS1$+*b>hM9`2pPI4N;?63eg9L0D)(u17p@X|LQ~af>V4a zULbB*+XSotY_qDC`tx!jjmSF3AUcTwI-%)$_5p<#E?4ssiS|1L;a<1km?0A6847C7 zulkq3L>@Et6^xd?S$qn_m=?f@0gLkB5C`E4lLNizcqKUR%vSr=6I|{Ta1-{D+A!~s z;I-7+ZUNXs<_jQ`pm7283_YHKhp(rFsd)w;JYcS|TUUHFhmNI8_yjj1nA1V%_6#lB ziO5;iWnhNOg&^^&mE`Z@RjqiqHG?{=;o4SwQ#@RSrvl&>{zAH_fbl_nIRS7@-YIzpf zc;?w)g_DxaJx~bA(IwBS1FAnr6N!K19!T=V74U$pZ(_xh)+MXl`oxtm;FC59-#$Pc z&Yezy<*ILUBn;@PR9tBh#I8?o-OwY9CaoP<2nD0ns{3t4=adRQwb@^hQRQnSrRSp7 z3JrHf2UhZzcsNT-v7=C>k%=^eovtg!c<0CDm(IRF3v literal 0 HcmV?d00001 diff --git a/fonts/sourcecodepro.svg b/fonts/sourcecodepro.svg new file mode 100755 index 000000000..5e4a9bf97 --- /dev/null +++ b/fonts/sourcecodepro.svg @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcecodepro.ttf b/fonts/sourcecodepro.ttf new file mode 100755 index 0000000000000000000000000000000000000000..4a58ed7b34bb9b2fa42a342acc1a141139c49809 GIT binary patch literal 52752 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcecodepro.woff2 b/fonts/sourcecodepro.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..5b9671043a754ba85984dc0b60537a80f305252d GIT binary patch literal 20992 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcesanspro-bold.ttf b/fonts/sourcesanspro-bold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..24195b5830e5e121275fece0fbaeb85bdf8ca7c8 GIT binary patch literal 67368 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bold.woff b/fonts/sourcesanspro-bold.woff new file mode 100755 index 0000000000000000000000000000000000000000..129bf8c5b94d5607683b30d2329caefa8c92caf7 GIT binary patch literal 29504 zcmY&b<*rrmMR5 zbi2rjiUNQDKbHeP0OcnE0;l-j{D0j4e+ddGiTnsUe^}lh$cH;5_=t)s%lvR3KY5)0 z@K-!QQcPGx6aWCm_{kIffC2~;Kq4kDr}V>d0{~D(008qvJ!BfKn39Sh0049Fqj~$W zQGF1!Q6{HE&jbL#?)-3SKhU!%$U!!=(zgWw;MjjOVL#Xt7cR~V<>WBNO3sBvUFJq-f`Vv!pho7>DwLcn&{|5w9OE;4ruJxx0!~j5AF6wYf zg_*Iw5dfgS`J-X^!EbOdv_i8V5&$qj_{rn{fCR1$RLIQA(e;O8__6=v7o@bRLx$PX z#_&gHWcK5C^asl&PX0Sq`mR5IO@4F$g8u*v4%A|;Z)N<$$^Z00AOJvKJNj0eYir}+ z2mshF{*=4=vAMs&MqzDhZ~Rl%{=c?4{2+9{={VNK*x;wm4*#_k>_60KDa*L78|oS9 z>Fodv(7<@XiYF5nKk`2|xxvWL*>VuTx-$pkxxrAueuE+WsDR54^z}Yk0)YylD<}Z9 z9Z*m|R(_oR_n73#pZPDHO7YG4FP(MJ-S|J-AO?_Npaf%sy%2%)eyO07hI)E|dH}2y zpr0?mb$v?1%M9fd)93e`mNoXi4xMTGL{mwr%)WMGSrn4cqA<0=!ruiJTC5n0u#w00 zj)7Gnvsg4ssvtZu2ysLXI61*F{NIHuBK{CoW&we*d~oXXJRMPGuzrLzNd7M)yq{h8 z4a{6z%v>4p3D3se|J?YppI^PRF`*C@QlsZKlx-i>EVz=s_Q-oYV|4Oh&B#rtdP#*f zOKV>rT3Y6liLEZ#TUxxpO*h{Cb8^nTVw?8wVGoy^CBjZ`WsF(`FG`^g9Pa( zo-@qAFY}$6WhxI-PvUa zl*4prANb09Jr6x)o;V}ewlLngHLmm{{gNpgJEIuo>c*WTEe2Y3B0I!I8ZmjMZ`j>2 z7pEFdoS<#~0xXE(cVwieaR-!;8ZJgU3^>jpHIUR03u?XL-9y<38+D2VGYeeNhbkF4 zl&G`m^opmr1J}MprwmZ}HA6c}wR$q%8QqZ?Ua*#wh*=ewv+^1oquo!KwsPgla;?R8 zte%&7;7>;!f1$WeqPt-oODTu&4mHw2J@q(S#N4}SotbT+c=rcb-rR8dnLMRcKlyRD zw0B|(b-hRCnjP?7Nfp^{oVq&rd)Qg;dv9*(5Qk^#qI=fy=ANi0sK8P=HEuGsp@{i& zl_jF*ji{PFYI27-X#E>ew=)}@KlGKwJL8FVj>Om(`lvomWG&^IYe8~u2*zR`zrHh{ z%zE$>ykIdG%)_RhQmKloEriNfz+rTHNtE>dWnrp`?y&ZR4B)bZRAn+9!D*J8L@>iE zBOZztcus{yPyWaB!i;Ua_m@6bl(91&z_3a|J)FFYBSj%3OY{~ge&1naU7sliXn6r1xxqsqbY2icUg-1-(BKhW+idK?)I><2Fp!i`=QL!7>5!x5)EkF)z zFHsiHpB47_DTLengI^p?cXFA?d((VHARa!P)Ho{giPvk1D~{cLuS|@Jv0dC&b65k~ zIhuj8rBd-KD#~|0ZL(j4o7N4nEklx$n7Md)=+iP-n-VV9FXAxs&{<-L(4J-G+CJ+7{#4k#K+Mz3 zW&P+v^Ls~IY3j0BLaq^F5TT8R6g3?Z*Uh|~&hqFOU;p2?b8Z{2^h1fvbYQMlmjk&a=5jm#z>!NG7vzyT5NJ%&0%)7MV_T5GDW*xRiC!;bv{$dsQ zVx{?PshUpRgD!h~E`91fZcy0>2lRiQfzG$yYWL!}PDZ;UnT+F~$@If6jXcpp>-pR; z<{o119r%4rIc!!k%Q%;B>xsx;`Zl_KSryV=hhtNAl)HZdJ7uDPFAZXoF!(}BKZTJ)w zEhqCdCH)7HtzYgFc*ZLH>@8j`%K00T`(m({&xzJm!*L0<^|%#j1wJv?M3i30(2Kv zJjZjr$RmWCvo=|O<{nbYCPEDcd!!}zkoL@FF2XroM|$RulvOMB@*7w7^1<1aYdSFs zeb=u3aq&fGaglb_3PR`++e5j8>X*u_Hrr!sp#+PEZgM09zRU&wgVe7Xqg7JW+QuT{ zKw;jmnqHB0sNp8#8C-1z-ug-x4m{V3!W^F+6T5(m)Ec#Hlp9p1G-Em?)d_JDL}Bc| z^q19>6jI%_64OL{~@QVjPvdmJVG1>YR0y@xQ0qCa4Wswm5bIU;lD=_Y^qV*O2OI zgP9@R#Z!vVx>LNju}~InX0ETiJ%gA?tu@;cP{0)L9^SeHavd9;p?91jk34QmA+jwQ z@b@qU-7=zU9eSLJay3@}Q*zKSVhW)Wd411a+IqpqKvF__;XeItkv@%xc}mZ%pA;j< zb7W!mSup-|`?(l^y1JYDflN`%t{3mFPsnmCulRyliiS% z-QY82Gt*|?n&XwahA-m7wy>!IGfZ0qM?;o%GpJSmKod4DW{)yy0}_W(cyl?fyEHx) z!=z{CnOpzN!M*3zAqW>8^Eo&snaL839EgS_5!M$REyXI>EJf$-W&TChD@#H5UzHD> zZ`2^wolZaU@*QBnrn>s$ZTd^ipwgmfB^fiPbRh%=smuSWsvB`?F@6U#q_gW9-mmuJ zZDu@a=(bgpZUnmJ4!eR!$5C!=x2 z=a)uvkK8fxlwuBlgDox}!uov4`;G(pKLqZRqq?Kocerfk$qX1eapOpNp_&yI<$(xp zAK1rFjwQ~whZ@N>a}qdLKF1f*rbOPp`%2Dto(iBym&pYw?dCzQLs>Wo@XnK?hdm6Us{MU!@q2a zqPO+CerK0$Z?sul`RzpueDTMsmk!I3r}SLP9^Ql$N2R@6a^w_6ujMbRvqDvc$|9aJ zX&bi6^R74kpYmbpwsDC?o(G}LvWDE~RpX4p9Us3Io1*vd4m5XllXkeB)iX{*W~x(5 z(m9j*FMOpH+S6>~w@|=BP-Dh#Uo30^U0^s3#~gH06JgqvI#*C0@(on*(*4{6Ab}1r zSIUqB57vK|8Lcn-hk({0b)C7Dfwy+(TFs?P`qo%W){0j8MW=$`Egf17)e}i|9Qm?} zae>4~HkQYPh# zg}w{nDMY{Xw`b8Ge7&W<1wL_k3NhR7e0V1$_cNYmGzjLy8FrM4n`<@XNwTmA+;>9r&y z=<~1k_47-L$_hw`$OuV^(dCyHR})s2))G{d)DZn6t0SNwp)R5#qb;N)r75N=x7|BC zx;nTxx!FHIzCOG>{jYCsY;9<1YHMI&Vq;`whL3=Of}MnghMS0qij(X&9WNmxWm;ZA zLx;;*C8$&ijb@$a;aQW#a@BUL{=!k!M$6@Dlf(AEPjC#$`T2%xRa&}nuRn1Ev#cR` ziGG9)NEhv$oWUv{=}OT27awonl(d)3F*se``_o$)EzZn1yu&vSbNlG@nB_LxhGyp$ zm)B|R=68Xo%oxQ}8GI?bFJT6`#aIMjfS!hkzyB@R03a`*Y=AGo1>gw?6o~fcW(8CN z$^kuq8Ndyo1Mm+B8xR9X2NVHJ07gIvfH}YkKo}I!bzNJbLsnA&VG9->#BXqwfMXq{ zAuV>;BM%gEa4E{bh%4w2!ko=MF2W87pWjaycD)8OH?L4U1B?(|+*6R35Q*6$G@pfw ztHEJ9jah0uuH5C+Vn*qhB({GGZ0h%?tawuc;JNVpJSws=09?b;Z3_>6#;6QO4ZjOBw z^1q5B4R=aNa_t8AC?SE0n>2vA9l;V6D4PM7UG~hCz^o0}_ z6jgZ*#+vD(0XtB9pW#pRJ-m(a$%1ISS{3F_X>x*N`~%_cy|H;W5#I5qZ8}2G#ismk z={)7syUuj?2uL;_^nie2U&hS)m!#htH%&E*8Qd=+cQ*I${HC+eicWOidh&&yI*tEc zH4p&k`x^l7x<1qe>x#URM!{_=`rT|CiYT zz0a-(5iBnWA=TxnB}thVh#)8kAqA0Q+@Lj{6^A-5)9|`RHf5spTbCE@?%-%breQ1D zIAhAWgCqmVqxG1_RFvGvofXDjk-!?SdWU;30&adrt z7IX|xsiVax>Pi)^UK9pyZ_)8lhCY@OLnsyj5)II}w#;Qr%o4IvPw7;rNJ5I+w+bS9 zag$G#v0(rBwBxGyxQLOopuE-mp*Y*Hf$IC^#Wilw(TOZ984}T5m7qZX9gDt%t@C9k z@{!?2uva#v_f?r+(FGTzSC!70a|YsQ4Edr6QE@BnK1pA<;a6SBYapHE7hwZ5Xb!{LabKaEBk)-i)K7DZF-i=nor3de6! zm7ylv*x9W?({6uu2HX9Tp>Mo+{cvVSn4m$nO#6qHxii`U_wSa6JdzHC zm!eKORTApPZ-7bRfMSrZHr6G(b7L3Rd!MAI&qqb_3u?PTt4l7(9iQ#PBwz8<7**>y zSyK%TL2nmG7xikq9CYCeIVGj^9k7nJg6}WhtSTCAe~++DfKTE?L2p+1aBtX2`1k6I2sxVnnVocSO}#=Z%&el z^bjZoUJCI2Omf~5nBjUdi)~t2%*c?vH*lJiSJQN>S%YLJGoCKSUx6eF zBpn>>Mt)@NMs~C)cB(j~9)O#LBb-MOSPewi0JgSoJQwmir$@qAl}8Ji9ImV3%k40^ zVTC4FPqOC;xaPI%(F^t`-`3}!{rab*x#{NSzDtl0pR?|l=GWVl>2%Jb zjUq1r*`R-78vqbx8#IgsvThiEwY+qrHwV5`7gNzI?fO z>>X+F@IBtT;|$MJ=(K$-jlPRz-k)vMzK7tOEUNj!j^41$VhxGds?CHjzF{YkCi!9* z%K$t7u;T>ND-2}VRRZmDtd|(9`LC+{%~~^~&(jnq(a;8AQxlj{e`5-0`10+cm4O;A z3f@}Oi63H=p{BBL+#Umih!*{(8+Nm^)3U6SMFACr%jJWnPZISdsWQ;ks@y4}qTk^N zRDed;cx5rHrO`?5v$X^YM-om3;60{_W++S=in>cyc{2lVz5!Yo?f*8U?BvL^h<#Xj z5&AGNy>!{&pamU>lXRCb$J-KC*l6b)I}{ciOWRy;TjFy)_9`CexR|==?!^uBn{^J( zF>VqFug{6U4}Wcxb3V~tzwCP$kUuw9V~e|LjuceQY<67^ux97(rWf&S+H2mQ3AOMkGZdV=+QzcGOcXznTG6nQ9ews?;v;g<^j#OvuP-^E|mFb zk?YaBi!T}BtL#Hmy%_4nEZQeVf zZ;cwo(G{b=xlsANXE?YNnLO%%a{v?x0Z<8Urj zYyln~H7*?d_2I_c3AkC*#{szI2huv#bvKC*K2M-NMj~5XkXdRS10qul8Lkq<{b)iQ zTHJAAE0L#Z@Bn;V<;!%uM1YufAS5OP(mA?<%E~Of^=7|I<@QaJ%5zWZ7fCJi+)5S( zcjNm*6GdbTJg#xVg=nXSg>E zT^hZ7w{?Z?Vr6zEB}Ln~3b?3>@Yr&o-S?D<<29@G28?DK1^~ilNP*fB4O0JXUE;vs zGQ3&Ol^z_B+Zx0)P@)cgBN`;t7cTj5`Q7VPNU*w0B2PpZFcEnU_ctduVcwee3m3BT zZ^y0Hey@D1UZ#PWMy4_YZltjw$X;r34Sp#ee!?|Isea&GB&7^U`U-%!_~dSp0qqTX z4K#jw>I;qMhH1^<@f1yR;LGNu^H%-iWcnPl=Eiz+HYV=p?y{zQ5ZB__eGNoXO30rV zuPQ>ej_<|C1su##-B3eq0Li40PdQ3#Rv}SYVB0cXqr#oG$3Dq#ZD4Y)kSi z@jB|-GX^&R&0Lehl=Mb2mVx;y1>7oAh>N(!<4TYoe;AWtyI2m8?RkKM%0APmb;u8Py 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bold.woff2 b/fonts/sourcesanspro-bold.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..2f18474b3b4d6a512f9ae7219c9668e346405e14 GIT binary patch literal 23460 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 Xfj5@CWKwqEVFwmldI7Qi8vjoPe-}F& literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bolditalic.eot b/fonts/sourcesanspro-bolditalic.eot new file mode 100755 index 0000000000000000000000000000000000000000..3a4535195cd73c542175c88ed31a5fee049ae166 GIT binary patch literal 28156 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bolditalic.svg b/fonts/sourcesanspro-bolditalic.svg new file mode 100755 index 000000000..b81468078 --- /dev/null +++ b/fonts/sourcesanspro-bolditalic.svg @@ -0,0 +1,833 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcesanspro-bolditalic.ttf b/fonts/sourcesanspro-bolditalic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..7d1a1814d16d9c95ad3433f5bb955df607853beb GIT binary patch literal 67660 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 mnAHJC*Nv!YCayz1Q+=9+)65(6>1O{tKow literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bolditalic.woff b/fonts/sourcesanspro-bolditalic.woff new file mode 100755 index 0000000000000000000000000000000000000000..750dd55382d7e16abf4a1143a4498b4689b0c978 GIT binary patch literal 31208 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 Gr~m*D^91++ literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-bolditalic.woff2 b/fonts/sourcesanspro-bolditalic.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..8bcff238740a642a35f646d927400f896356facd GIT binary patch literal 24796 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 H`^kR*2zrQY literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-italic.eot b/fonts/sourcesanspro-italic.eot new file mode 100755 index 0000000000000000000000000000000000000000..972f1ce4035c59fdde3bdff7f66682ad07555f99 GIT binary patch literal 28309 zcmaf)Rcsx>wx+kYX`7j8n;By}W@ct)W@d<)nVFfH9Wyg?%osx)$4t37SEKVV8fm&z z>c9T_)~eM~N&Qf&GzS1c+#Ub`{%cTxe{Te6NJuD1I3N@RL?Q&>pC_jT3jl!s$^Skn z5CHIh1~1<&ssC&KR}ceK0geE7fD6DBVEzwO1sDSy0IvU((m&7fABPB#2Dtrm?Eu#Q z7yuv`pz)7%`NvrQn|Js}vI3X@EC7ywo%dgq>ObfIO|bkgVf8P{?O&$<#CrTUnhEgr ze`oFgtz`Qz|9=>Ze|i72stJJYpW^u6&i#*K`Bw$Q|EF&7|5Y^rAfhU%^xx0^KLQfa zrUek=2Z)IR>39-a-M_e4+AuJSEMFL6<7A zKPMZdW?`Y0a4C7uSV1wdSmLIOvNK5$8}e1Z59cgxAj=4WVn>4_b*t=$od`X_hwBv? z7|Xt+t>>d za>-m*Tgn_*>;k&P#G>AQ!l~VkZ6k_GEx0^ zbK@|EvlR4|&KBkuptCmQ2k)|}0q9`N3 z|5gGa>4^hHsHR2sLVPWq0qDs>K6lixqZ#58t3Gf% zgx6@wq)yK^m5f|oYA3M2=VF7O8K_8ss?JX=gZoM)g6NA{9(`YLO@BtqbaG~mKQe0t z!w^;8eKM6Taw%&D3a+R4I1+(Z+}Q%D2@?&Z6U4dwjOn2yYg7FWnZ@~HS@(CpNx!Ry zqss1-b!-!_p`El#sq;7&rls#iBd=u2yyCMJ^DQQxtam0Cr?Zv(bdD>$A4^E#=w9@# z+*^^*r#TTZE1QD;co`S&OEWE@P(W$4UaNaRcDI$7O&6iu(`qvgO;tZ@Oq*g4G*DGs zqO0y!g~C8*>f$QlWHt7cMS+b?r&!ES%u37+kuXpwx#O9 zHw8KX22>>@T6@tBUL%2uI?|jPY)uTVthV5JY$Q~8n-%&=9e{cV^s9&3Eg2XAc8nkd z67J}Rv~X?Pr6`LyERl_hKBCAcIS-{`a0Ch}EEsa1wt7Yn%l&NB>|YS_=q!GPGj0K< z=#Fc6h3!KqsxmJ{O@41$9Omp{ppYriX4pv0Clpmo6nsYWrc5=1Jk+uzhls))0>c@| z1WtvBpNeWzh-vDHhA24idbmvIilZ*(^3DJQl5@)JWg$lf*m3Z{RYu)xOORy3);&^` zA-{l`#isGBaH-jCPZ{vVKf3j$IhooKzIn_|4-a#;xTimXQ#kYJxe~`c@t6~{k~E2~ zvGI+m=mcKss}j*gS1s26A>5M z|I&Uv#y_05a@iqueu_ST_F#7$axDKKHEbFa7(HQOb>%jN`{3u`&sx9o2a2M!~-+e)J_d)jO@&Gf2))9G2|+4s|JI6T8DBHRffdUR+RYcDVZwpx7B6u+edVuB%%qQC(Off zV|yJzSy-p~*p0K^%s@oN5)wR70El0I&M&)%&f1MIl&ln&kbLa=2WED1TyZiq*gr3tT78GWj#51-c0cvfdl<*&av*hng%k3rvB*z8V;Gz-GZrYjKQOHF1#%b~8 zS+tnoD-VcnoB8BZp|v z!b03ew%Pe>Jv{2P3Y7xXCKao``|&(5jt+n4VrNjQ)_7fvT=`gKo3Qk+v)o#+6+x$Z zz`&I8JlCUGiFOZ4*E{5XLT5mib!JXruz>W33rmyb2I^T|bxaNmZ+%p#i;KjU7|UR$8axB zqDwY9Qme)Rc!SD|wX!q-)y0oP4Oc|CbVs5P{F)XbpKOhdLQh4Z%r<Apyi($n~#8I`5n$15S3cqS2=K~YW{1sTts4NWRBUi5~o}{y? z9kXZvAed`ebT2lk_LUnOQAG}&QF3c#%x+Q+Reobw4$d992V+&{!vAes}2FDs*(kix^%bwP=d4VhD6(!kULybAA&&luhh6)X>iw&Klge*Lt`DYbvZ)9~1$ zmp-YaCaDwI-)WmZdqWD1mlQTM@A)XSEd=*4&yZoFv> z#IokukhDH~rO984PD9;*Q|{T%vFBL4D&({COD9W4`kF1(@L8t*?$KXjF7Q{1hs=+^(v z6l0|?R(a(k>c*DF>Ct~qo=`N?hTGRGEvhq4ppsQTDPC|4#rJn9i)b2APbS{$qumVt9 zZf2Ya4FljB{2E|qJrKpxb;ESEjrRbWyE0na7t#)z^MT7Ek z<3KdS8C?UZX>_hB1N!bH^TVSGVf@H2Fg>Dpm)XDxG_{lDm=$Nqsm@q~c&oG%w6Q?g z;=+#%-XLhGksUuxGif1vmfL}f>@!u(PEX0jLGPI?1Gr~%IFET~m@-np? zV&nWY#c*zwuRr(z7~&W0TKQZUxftXrYdJ{pu4`6`x|HnXe?N2P+@?I;ivRQleOGiB zUPr>32s1GGMxIwn*DR#}PXTUCrTo+(-- z1t*vJh?^CoPWRyeoB?>a(i>Qjs+?+fgl;#?NE*3x9Wq*9X~Wh+NP5DQswc>Y|B}8q zAqpL9>^y@W2#>skVso&=Ae6wGXt!X<%8HL3;OBXMg%5USgShbQ? zVVBb!VPoZ-jWS@D1n;#ApeCubfW;h2zV+Z!-;%}&!7PZ5=w{dPptC%sYaulArafg}nTCcb{-`xM6&6U={4|D0 zb+wh>$XjUFWW6uj5tnsM7JAl~*Tj`X&|}ODSg(-La`-hJa*OJNu8^5%lh+9c&}-Df zC8~~--}V`%8Z4AoqDmFb1*NOY-$KIJxS>HIxiC^zy$hBxZM4sT_ZyUd;)}b``x)a` zD{tnZN&SxKf=u?1E|Z`;0#PQvKDP?q+Njcsm`V*VeEJ~a{%CN)gpA{8xSeXfRbqu@!l5? zp~MX+73+87DG=`IG&ai78;6t`C98xf${^yGpWA!nlR-leNDT{M2YNRqR-@>2PhA`d z#tLKl(V-={-zZR@JY@!8&-Q$zks{KG@RL|i6__q@tzAp7gaiiAAeMXNHmIPmRjM{{ zaAE&fH{$o5r<9ivJW|(^y2$?Mn@D_L!dz%c(aks^cm{28;W;$bKvw9E;dUy#jgS)G zqC{61x!?FgFjm56IeuF8q7clZ{4^H}{tpNyDE1g^Xs;VLbM%R!E(6BlhFhN!? zU>yjZ+==j8%6#T$LVFKp+#92CAPcL6sRfjT>^>R|)Jo&|6iN&b5J=#ceYGI!0t!ig zgJj(yFECrgVa)a&IJ6LSkpIIM>NJw>bS17x_dq={58nCBx$uP~Uvn#v&Z26DVo}GB zViZwqgqwoIHC&>&Mpbf5YXtRDJuMQSg%;KRBWdVt=A4w8p{LoJfM9*fu^jp_&9y z?OyS9mAU{K&6W_^6je@*9wF^fZZx?P?FY50#-wMKVjpSIqy|-<6z+ngVDiT{>90c9 z1k7g1ZSy&6bYJKCq$?`d^<&8|L($Ai=vK_-#!2xeJpMa>ufIuemV{T49=Wt}?+f>Q zU9ct^bCvg`X;tc60fUcgu}o?(J(%yN`jRYRL;@w5Ot$HRQyTppivyxHDL+k^5w)M+ z^Z30tZOu@a>`?~@`NppNJ?yZLw@k`g5iE75VzO{l)R{ENq=}r1A9MqRwYufMjer(3 zwATvYUHN+Oc{C)FKFg#^ViDx|&aM$>UMCN+NZ^!Ux)VV z&e%Qcb1u~kb3(g^;~tZ(eyFX|pnK|c&{^GIICuv4`ypE`4$)%5kEwnLdO!f^a7ahF zBs$HLK35bksM{SrgaeW$vY1kmf7{T&1RAMhz2d1rlTpgDcB42*lyo;`3XTD1T)CN&r2Q{-0pCFiUk5L$SE2m+f-03iw+*z z?0+C|NvK0`@tR7rDo>0CZogFQ+X)ABRm4Hl_|02JFT74jL_$+3sQMu)3mCrdOtC;q8ZMv)C`$nGc~g`5^GYm9F9S&KUceLg!V*br*mW7=(x~YaQYmm zHrb{Qm5t*r@{fOnf9XVvJfc2 zm5YJILO~}-B|KF~(arUkK5S=A6NLQIBzC)`_Z6XdfGrbwpk78~Q83a{3-$`YPjcCC zTuE(haD)bvOO6=JkWPd8s?qyLf(Z4mXo5J4`LJP@g&WplE+9k>)AXDc{Al8t+3HBK@*AlkpO|A1!} z`YgjaX9_0^u~TYk=cbrc@dkuYZ)hNrF70Uvq3C14Shhbu)CyLyC8@8o)^a1k{X_)b zgjU^AV)CGe>CxCB=-#mMdKc47qH?H{y>hf4_{NBKMz+6Crh%~5tA6zoB?|G#iWE8K z{cJ+b0loDas}2)aXCax)tmPH>Q4%bfo(R2K=7isBiBT=?G#Y$657SRM$v-SNg5p%^ z66~_>)NM5oxND`fV2v@|M6Jf;zGpsn7ikoBiZ0B5mNkCScUwBsE^ zD-M;%NnhAvE8N$ps7O>z0Qn<_q?s$pyfKE#*qo}b6=)Xd`JR`8WAPqtFQFjG-nkk) zq~Gh|C5)nJ3-Q_2BlLoWtqapE>8hlQNy~y%?)WqYTRjQJD|28KK#XEM!T%D7JfwPF zqc?^B(tj86?eWo0$cFfAAaYPBjT#ZSvu)iQDgz1Wel`awsw91p_E(2DK2y&nF)F=;+DC7GsFnB6~jN_dKk(fqbUACODq-Ne}!gSc7Ii8D8maO61u8vTI-+PuAbAyv6BgRH5&@Xs`9=$!kpn1n8qP7 zbxdPTHbad$A*BzyDOr=a*4m|!XlGDH$k;dKg@q!RBM@khvqysyH;JEB^9lh{XRKT4L`-r3RxzqW{oA6xDcMlOAR%(Cw)L^d*W-w60|xPv z2m-3e^jQw`=enhe`(I!AAAZ_hLrqtfG(yFf)2_h49Aa?kdLd}gG~LqgCt~&fi&*5e@0@QXCE|9lIQ|Iggl$YL)*?y8k7g zFfNgewD{VM1}S>b<|W)e#&iG!*-+L>obZQKqBfmVN5Pmfm`X1eI6qM(CX%jlWA6S* z8eu#o~ z=oMxl8lVH?;bU6)EQ^P1)_N1LC_I!!!^ZyoTUDK~)Hj&mlQOFn=>&GL_7wKJpEP z0uN{dHtpSYyky@|J`=p}C?X z)RCh_fOZcSQCU~Sld12T<~(FTSC_G`(yk6Kh8U$NeEd%;LR`8p+v**SF60~5wwN?I ziKq=8(uFjT(q96J?X+P<$&?`hI)fy|tCy&$rWZ0lFb?WYeRj#~a-wm_%E>}}oAj)` zxxr13&{Cd4D--q6yaINIOBu_x)aIC&yuuJ(ax*fyfEM1)N=F7#*egrpZD z?Kr}B*~pfk?T?cZ%(xgtb^t^R_I2v8_}H>{GXy^zSs zfcq-3_ZGH>4kQ&3FdOEy$^ENlB*;8VWk(O|Ok;PR< z*q0%jASMzsIq`Mx(*JYyorc7S{aXjvO}4&=;P91x{e-mQDqw7Oh}!Zwnv;S?L&mdB z6f*vpcvde;!ZtGCvuE=!%+Knqqe~MdL-sl*?7zV@82|Rf_m#@>jB}J!G8bo9!i_NW z!0TD^xN-<8>d=4}IIOFF(5#b-74nzP<|<;xL;L60bY(;>L?WMgs0?QWsTlGfnaZpJ z(&J?+uxkx`Dk<}leuROQ_IZ$@jKf|df0q?UYEljKO0{1&s+*|V61i!DQ2Mc!4NmnV z)(6)aivCP+VMYs54>ktSjLfW`_ZV8kH7VAn+Xy@)4K9rh(c9)ICEO<6hms{!mMSu# z+n}Bbs!)w&a`DAzj{Hg=)uDZIq12^T10ek+XkpmiuW$WsiJfeEyhm~2{meVpAf|FZ zT7!c{ai$FCe-Om3L_3Ler-gf8@=48PB)b9>GMx+Qdh;06WaG}`9H};)5qib`W)lvu z0!8T!4Itr*?XbA!SFc7@WdHqpN>FyvZ0&$^wP8GTo;B7VMarl|4P zQjW|;Er#1F+hP&|L;gC}9w}6@3nxiSE)?%4p(@AZ7GVXVSc=UZWnx-}Lsk^OP%2XO zKQs1D>qKrE(c)`b#yemaOF1(AI^eYBMu+J<-yd^|`x}Zbb97vI-eFk%^<^{Dimi`D zNM(@y{KV~2jIFDyT#FtI3|z(+)`>VXYHR^HH#NfVQ}WtwjAXGC&2b=bJTqLZ9_7#i zyqDZ3L^^GAM_?jp$wWZe!{|Q3hiO7?TW2H|Aw&GfX=b zGLjv(RLYv-pwH!HwIK+`%#EFolyuXQa0ie(E!ct5rRgVvb}9d*N1?|wi!wZ$LTcPT zoe4L6_gILFfe1egb%pWiY`8z23uCb)WqD~jII{34boC-Gt4pFtVOjq0#EvfGeU=_?V&xNj8!SUQ@z>w3!$$4d)~24*9TZs;YF?H)?`@U;X8!Z zGxIAI)Qqpe-6s4livMP2B$HMKG+=v@4`9#JR2%I6+XEzpCN z`D!BO$LcNJ*@ia*Ee80FCh1YFSKz6`Cs9!|7{z9xKR{fpq4kUYOLy}#)KX6(H>R}6 z(1F_z$=U?i%leJ7?XJgnJo#^TeHoDz-B5tDFx(ZY@usDP5(b_2SonB*OidN0P_p^2 zrpB$!Vux>S+5e6XzCsXULcwR8Wp@^~1aRLKy&48&Bywy;6%A~QGI3<#O%=ktCVv+e zt1Gh)%I{4FZu%fkyE*jnA-&Ojwb$M}e2W%3elW7{aGW>~46!WS_|pNFntmqN${kdS zaoA7Sxt$$)2#NQOMn-U}q-JaL_aNs~y(z;H4o^uR zA2uoNbt6o91|$`m20 zYUdbo{jl+CbF$e_J+b(`fkbdnJdF&~mp0o0b_NR6hNb;TT*cFk{fY1Sju9;(B$+qO z@!459y;fPc(mTn%xUKzB#VpywEfc)+6b;H=8xdsZynC*DJx{ z%W3%CH>C6rwg{Bkg%>PcFA)6%TcC*flk*x3H*{+XarTbZSkPUSjY(N(1cU?V@@TAC z$11Q9^8_k}L9!HI%-}ksen*4nkHHKM)Z%h7<0TC9hGTOu$ZWz1A`uux?42KW;dnFz zgN+}NL<`BLI$J1(G>mA*g&T`;pJ@v@X^kfyfjX>gHE$}kiDI>{WU#Wp<83U8-t*&c zjaeF}Gm;Bpcu~V%(i@`L9)!^q8!!I+2^cUV=P;*Io(?m8s&Vy~30(}}k6ZF;n5+^o zLXLiw9`C~;7k9=4lste^ezF{Bk;5&8&9z`JiUk1#jP(NaN-?v)ea zG9{+M7w)q{dg=rtW1vAKNe)71$~~D#>Fhk&-yTU2XVc_n7}fRA!MN&P^c~;zJ@Fn={>RrTMT?m z!4*1<0&^!Lylrnl?t>Cf3I_x%nb)=S=Q6BURxzrs&qyVei6RoABwh++TRk<>(f0vu zj6(o@hk~pNPnZafvHyalP7)lVNUGiNfay~I8xss`lX^_eBWqCA(tRCag2USfi#U1h zn#2kX)>1o49E86pp@8+N&ieypcXByKz9h#j~|8FS1#-PnR`Gt$$UvkBMaVvm@Fu@gF~ z>@C^{u=_)V`@93G8TIl=0yqRYZ;7xjhK&T*Mo=%Z4-rQ@znfn+Cbk#Yg61c<{>)2S zS_O7Q-K3L~Us4@2-?)Pz2S`h222xv}O^!BRXTqj3Gwbl?#9OZ7K&sN26r!Y;DYidT zzYW#XGO(A@Xs|z9kx^Bm%32_To)It11WSWo_k*&6HCq%_8Xa z^B*UGskHHWcl%aVSFW3H!-Yk>9bTD$jiui#d3n#dVB&AmQ~QZ%iQxf(yzhj8>8~Vt-*J7_+gZ3?Meq-sfR^g$1!T>Sj#*Ca-qq;SBy^ z{+GwAkPZL#0@;tJEfa8!I!xx;4j;4;vw zInHsBn8~|Fh;IP3(0zWI5<6_NQB~rW>r_kzfz&~LI#A+cIZl(oU>~bc{e)1eWMKl| zZBY5ZXj<`}fcZyB1=@*B6{gOEGN@lsp8<>#gSr(MWVQDzuwuOuO{Z?^@KgfKA+k1k z)-_f9qn4ipYXXkeJ(rCvXyiu+ylQ?38y)g{f@lKEl8;xQh^{DNW$*hG$JcOdZiW5^ zv?g_0K~ZJ}yJRQ&z#)Cja|X&`i6IdQ_i9nYkTC%Q3UxWD-P|wQL1qI6;?N z_~u%0v!%p`;!pe8`6$jtRJ0=bA1>&ccJtNYK-&aQOF>%fqQQRRcM5|CA}tUNs*Kd{ zxL9;ad} zQ%Tg(m7fZr@I9jZ>1WC{53R(AJb=kyS=Z*WSL(3ID>F2Bw{ zLyI@K8yht0(UnZKh8eV|=4>$e%Vb<~prcSYr6S+-G8qziXEGpN3lgCZ_f2ZU_E`x# zJLpDl^0bkq8ura2@F4yM8=>-u`dK16XD@#AfO3pM?sTO84Nu!5N7)j3?v z+$b(5hv82hsb)#WZ}}B4;7n5cA~zs9f^nQplbn%{xG$zQ-YW>)M<23og*dOeIWZ(8 z=ua3!HC_ZTeJ6AF8T23E7Yz8C5YOB`etf8JvTIeA2*$8aeBbFjZ(UJc9*EBQ6#JM2 z{yhAxfz57g8ucLb$4N`E;&tFc10CO()aaAuzSuo<2ws;twy)7Qw41ees_@}Ljpj|r zLrDt_4y0@3a24``zE?9^<%YD45?;9C^Cj^1eqkc31G#Mp8wEc_%RQa zWvZ8#;j#WFw> z7%%lnCGk~5x;oxC)PthZZJ3EWM7{TTMAkLk)LAG(kzJw|p@ko<)*z5{_$qD~(#jBN zK>nioA7U#}M`wsX`m!TBi4EwPuw29Ouw32iZgP*ADT|v%qm^1gTrhl6eNWKqU2m2{ zw&Il-&|yn$$`+=%!|rBG+U$wR;xuqsrjSMY)^gdBWo->Mi)C8YYG>Mk*bPz< zm8^5Rgr#q7w3EK9+aOBPocT~U#4#@lICLx#$y7H+y&~&|;#HXv3>0+dVMy@wWeXQK zju-MQjo4tcVTvmQb`vl$k_E$h&Mu3_DOz}BEkF#rMv>U)k9XSA9hA3gGq0KQZNWXF z`;^_N5|_ud#JExLz&GydQZx@J$zB)a`g)5=MhQ0Ja;3y{W%1p%#o9Dn`}R;6vgd^K zDKHFi#xSMv^mwI*_7YtQ)Hx8xzqu-IXI#5;~bCbZ`<+coiEJc@}BM9!cNgJ z0{&$URzG=RXf6IvjjVZPvaDmQ6*E`+tYJP@vIujt{?;-=fD^x&I4uh=7&JtfhnBms z=LC6hOK8eRoXYy}IgN8LC%e5xTISBI@!Isbszi)QXkS7Wa$*Zx(&E)w-fLqU8DYgt zNRtXJSXAQKZbTme;>ZE&wBCh`zo7vWm2f)A>VOD2_+S#FBro~zM_r+#Th;y_e-`VUNmL(6Fd(ore$(>UB?0hK9whj=fsH#VnEon1} zCxx$1-=0ds`7vjiaLpyyStDipV~s|hNwO>dR0wsIZ33gbW;rsae~>NY5L*=LQ3iCw zD7B3ZHSHrzjgq*cIwl68^flyHti#R>ji!i$i5Hw|Qm3}YyFF8s#F6@5xY19DL#s#S zrvisV!%;jDsQ+-pDwAqYe1UC}d(=SQEMtpZF{4lXnocc1n7m=)$;Q^+tEz6+wsi|B zPzg-+bt!u(=lt5v)%Y2&tELwv)(jtR@-+7N1arz#Ar@LMtP_6eCWE^{VWjrUE%tOs zj(|<#5HFUGA_mQN(>3!z(Z@g0Ts!#HF+_+k4)ZfLiO^Uaa*wii?-IOEd--LBmL~o- zV$f)7SAA#%sEvPiz+^(UwN*@?@Rl&TfSzo4w+ENxk9(wZ*g5^c7;Ic=LDgFT7jykpAo{+|n;D-tI}#2(6SxCd(A+x{^hL z`bcojkPByYlZ;_c(+_A`WMr!iGfi7WML4entbSKXe`C@**~ub}N!Gh2TKwZ7Kgl_o zcL)Rj*d=*^u|(olx|)7h9WEg;YIee7Pt7!1r9qLHmdn8Unz@&8!4gjyDGZ(-VdWzA z7_1Px45E^EJ)1#52@eZVG~T1m*lfk@I07R*$Q!je>pb{`^1@z4PmDbtUm{)ekk=%` z^y@i@&|74NF%QV#GH&ItJs{YN7P*gc_?4C=Xim17p#mul7GZ{^0Ovl(FiCM5q2|@u zSg0tWnNz|zP7~0bqupBssKK!uv}x4WYS$Bled^`Act`uJ3GqUe8fQ=E^o8hFIo5PO zZdyrC`4YV@LIzz`UCb1vq5hI8G%3^zT@v@%diNFLP_A1Wm^D0~s%SkjiXbA8|x~2aUc3{KVnCR(?)uIa<1hB8QSb882bt2E1P`oN${3y z3`_d+ z$6`!U&A=)9PL$B$iY^>s?AN^y;R0M7a}=kA|cCg9nRFL)PG znhCO>64j&EslpIiP@PJEo>;os>nZgpz3j`M1@ z$T+CC6HuDBVMEnRI{~c06p74<$;?0{GF1wS)l3K^s0p~CN1##$HU@aB7#YW%_+H9< zhj1AIbpW31nT_it#@>X!&_o^`@amP}Er+j440b@Alb&46?TDBnGe0qiFHeFbctSCm zMxjI`bEH6CaB)5}#={2vL>=sK-^MCzhOH1tFHNLBElHZ?+8ML5G8)Q}FE8Z*4WV}| z<1@^zCa=3=IUQ!d7ob=k?&Qx%-XKUXfz?rc-(LCBhTeL7hC(;biU(Lh z5%(Ae7*qcW*l=OOij{rLTC0EkhL4(?v0Uc)vufkbPrdD3TKyezSjczWuM3paF@-(x z!S-vMs?`3*)+Af%l)C1=J)KBT^*sgGW`G`@K#1Y(BrsI|H4Zu?RN^by0A8Lpd9$rT zOwq|rz7?wxyApQXLwIJ^ z-q!l|2FYZJ?zy>e;2&P!=-AswC44cRv=B}S?lITioQ6VY!vrtf1E62cL=w67fxn_M;j#&${CoUI*AE_=#)=kB=TAJ{n z`W`g)(+GY+7DmL`yLwatx0<5S=1GnDk0ZUKqXuW9*87hSJVo`^ zo&cXOoK|P$bnN+;^VrWIU023p`J_+%s3 z=I*hQq7}`g@6((8h+vH_)X5^vBperC($3gH6V*Wm(1&2F*{MwS-*fZsuIj?U1#7XK zbk7}^#$a0Su4JR`c^nlTZB5WW#w(|IYhY(>wJnTS%0N?>Ya)&i0Mn~s4M5K_n6zcq zM5*W&-Oyq_tcB=OfVvk&XABZN`ZmUk|OX? zLyC@nhD?ZpmsoV!?+cV3gYz*WH4tDkRjST$Zl=dB61=VTKrZVDBPMb}7T6+>4TQ<$ zW<1#7b$lacNf10zw9ej>>W|Xjv7~7j$W=9U3c>rsYqvBQr+9xqL*3$6SrWxVlMcK9 zqmohlp;6DYgWfVY3%TiV=x^(mz$U2QWD>zW=&Ei^ZezbSSlCFVa%PkfeFtR5|ma=@QXysuEOvrF0!NqvkXOumvR$e||OTA1X&4Q3~L8Ftz>AEax zbP&*Ho)HE4>Q!XD2tFYYQyUN9RVsB-$orp7r32YS)YY{axTpL_B(#qOUOJ;15Bp@@$>pRI3-2NyvJXIxOijP16!6Akdd*#!M;uu34ufk4zbu3NJ4 z4&xe!DsGm)3pj;jfC!C@$UH5Kr1Hx7LydDYcgBrf7+V({q#!yI6`1@DE~)}m@rUpy z4En)pJw?IL*YU%Wu}@n4Y9ednnee55C*&tr`^S_tO`f{g>D{cd#%;=Rw80vv9QD=n zLdbkK_>DOZD>Sl&4y%!YkCYnU8c>VsgYJWi5{)dM@IFEZy<=qXLC6R!`W4Bn&|^#6x+ZZiZa|JIjA38d1VWxb%9<`5?l?a4gxT=m;Twz;pf8 zdS)IgX2~wP7z64 zeYY#IILg?h8W#Q!3uM~Zr1spVCU;hufCSE|3~S1bemWN;n!0mRf#Q)3J7);RDp?sg zE*95DWm+>GT4*c}v>d7c4KM%Ez{etPYDD39bC}Cj@qrnclR@>Bu^5aPJ6)LELRNom z4$n3ZJTTJV0~;O$dK3ITt1r>weLB5H^yr<5iT4MAe4Sp$7$DVynl=3;MZjfLAe&>O zcxKpKu@mq}qN=EAMLBEl5;zLc{t#s5#KKT0JJb%*bZuBl zX1L%j46dEt^N`Y7fdy3j)+=0vpgM2WGhg@MJv8Ah%STRpr{5V+dRROpf>1gwh`D(7 zxWkpj6p|*UOB22k^#307hAjx^eXfM^G`OyYO*5&>KSaks(b2M(t#ZQ+%5bW++bzr7um*PX;;FIJma{I+ zBm)Y=jgLx*E^RH_)Z;I+Y;RpqN=XQ-LTSGQDzb?Qe;}p*@@`AB@km^E!z8bzq2V0# zlVDor-B-3qXPi6|fS1|av5?lbM$gG|qjQfU`J)HMME;sRv-{U}pF;bjG9i)0L|a>TWOZjV%pSby*UUZtYb-F6}H6!_J`w z)L`gi8Kh-*u`sKX3*~s%=f)@Z^R^nnq_@ikic7YUH1m?Z_esPf*QliyOI9SJRezb# zKCv=Oq_+?+sUa~X#8B#H%r>Z zX-~^aSyl)gO3qk8Q)Rzi@1Zw{t59rf)*!`}E9p&d%6iPmg3$DFc{819G`=6-ym1Oi z+W+0WEDIF;!X5*KnH2azW5exmD>0WIgQy-sEH&t?HNB;>g)nQzk3vwy`?I~CjR9q9 zNErru9uU+(&6bIqKX{8tdRSItp!a^Pn){326WBV*#<2huv6X|`oyvFtK^NiGU!o{} zRlwLX(B|Q@iv2A(Tix*z7~@$M`>fW;oraJd9qg*jT|Orhc0?;VyIBX}+tMTeR!KdU ziew+bcxfR}GbDL%uv@h!W&Zt*59=JA8{-b2O*b@M2q`VE93R`htBl;O5S!-O`6sfN z*{hVkLTqY*mDM_Vb|MKDNSvS}i$aHh$#7Lx74vxgJhW;&R!&Gjl$3jfkLAZNeb)0_q`xW^Ly}lrf?xCFvW;=ydQ57yPBAm&$~HeH!kGwpW=!1j4THKX${rU(qku) zT_wH*h2i56^1&DMcD(ZZ;Tm|C<5LDUZ#U%QBMox0N-zvV6XL`Wr@JixbpzpqeVK)j zRx4TA6RDHbD1$jKl@rWNQ*I;DF*oVpl9#|TF&utM>R(|drgwS&<%&jWM>S+PYBNE_ z#4cA+g=ak|Fn#VK`qCOO@kk}WTu^72nPvH_rmJo~c#;LX z+fRXgU>G()M@oiqPK7g1T;$A_0OLjq4{ekGt$1TGZ-3-?JaUWp<@ zDm=pJgm>HwWZ8Ae6a0}Jjq@jT$e>OaxyvhASrlcI#yy%Ug7v71B6^cq z7X%CSqD&T-m%*iUb1;##ci^W8L)exS(UUUo zjBMLmIk-YRHED>kT49430jPtQy=U`|{d51xly?YHSOnp97P!rW#qYHLS&~9inrm&` zR5rbICPsrHXqA zf1=?IuKliFPwu$|T16MIQ@BWY>uEvUJN{1q&n+<0i$A7cA|o}P!w{*XHNXOv-Y5c) zxOnVB0kn>U#w0?3&qw77Mufry%z)nNAKn9 z0E|$)B-1TYhD$)!Zy?v&SLmpmn^9kw z>2icMSgk7KfF{x$t(fEHOo(k|Q<3|W7D8VkFh42yiA|wsGWdM)^axZHvHt1pKZgve znDh!;4bod7s0pU?Wm|LRI}~qSMyPxeF&aHExGfBLW9mx6#NwZNVLPE5_h?hz)rCYP z(>;dHq&J{8;sp6ogfxPtVPW%sfWoFcHgaU(&?!MQGE%uu6t_21LS~b*orqk@oDVBw zhLA+Pg2_j9Sv?bH!6=9lU1;#T{}(<+JCbP%A05=MOHX7tw9&Q=;|OjObVMk=k-FSAdwzp?Tk=(EuB>a8gUa#5+#~)5ytC4y{vXvgsK!RDK{l-kl00a zx#Tkh9ZwGDR(C9Hlpfme4Otj8ja+ern=Dy)u@QB-?M@%`$cniXA(V7clFyBW zWK0Bs8kWeiGX)I^LKX=BnEndFO@pYIJv;h;awNK&pnxE9z&kVmdoQpV84u)~NzcpR z_W{NSG6PHjAd_CG03U%``Gx`B8J?NHqVRTc3zQX7UmAgT2 z;{=gExA z;5v1L89I9SKITLm`p&+} zL=9o59|a_$!&{Kw9ZZn8(hfe&Wr!bK8%4+$7L)@EyPK@wahU}|n9vbf`XV|qh$B@H;y^A5*aR#a zB65agq5FM-bgEQ4R!!R}o35$=wQMH}JzPF!#Ad^DbuW~7EkqnAlmm?!XAoEEJB;~P zO(F4BV^;x*vJ&?>M$Wg^5G)c&mWT=Ws<}DZB5jj<;g&pWw`ewWmY1SWB6F#0YdlCF z6@Qc-ZH5)mR=<` zJ-eTBXmbxjwM-*57?Na8kr8#(qQ;DeWi!&DCM_ztp&u8UG-w)uDXA>BmeF!`?71zE zTNEH$C$*Y@rSA@(!7XX{6jpkGu=sFNG%g`x%FUWu9}(Cf;{+)piUdKiwYk0Iin2{6 z!s-Sry|&N;sTS)Gs%C2}sqh|Z87T=zNb0f=WUlJ=?XgR=ov>#yS_L(ULh!T#wxZJM z%?GwPI){>c)nCRYj_h*22I_&h&5>8au}Y*{I5Hv&0Qk3823nSqq~n0tBkb%gYZzW& z(utRgvJeCvg>Y?h3I6s#Hc5~q41vt^R-x0(9y*($WXJ}WQc)UiC))B+9c zGl3g9oX==$z>BmYuEP9bnY3Sw{7wunfFeoA_P&MFTqqHv5cc_8!f(Z&l|BWzbc|vo zbYwImpR}n(Q16uzmj4?q5EsK7qtQgkWkKlAkR1X!D=;>4=n!H6V3U(^o1M4;0g(WN z$4n+7TpC#sJc=Wb_IPgf9Qd~K-jl%;w#HGyG7CgL9xeP)1+bqoU=6%*YIt6cfW`zu zId%-1n8&D87Ws1^YpPm2TU-8;ctW@uGf0Gt`M`kESV2~n7+XsM7>eRIY$v5Z>d2Vg zt-x~a$Ch6Y(OE5j8Xu+1d|zFm|YX zrkEpVjZq;==UJkMDk-AjW=N{5n1bJUQHMj4F_O)Xak9KcoDIy1QE+uwAMq*U!PiWO zqQc;xQ6M7uTF3vkv9$`5=F1d#LT4uAkce$NX9*VP0W=mPgyA^Z=>Pn{w5kHZ7t zJ*^Xj^cZQtrcg3GGQl`jFkNkc1nIPcb7@P0f6!U8G||=LdGI#1e<&V;zY8Lu7SD$Q z?;FulDK9`(2bV<_zCMyeEVv_eMtbd$a<;o-xXZqm2TJ^aBJc5Q#5^q1UjZbtdk@a)XAD26GhM@_n7&&Ezr2y6n#8u5e6T7 z|7JjS(!h*pG_v~i@j>(zh(Yc!t$v&&9T+;H28KHKYryD&cQT`99UM-;euCj1zy$Q# z)GSE@8(|A9Wpsdyn=^c}WS;fJB39%DkWcvIocLUB+j0rvXaln9Ju5!wn zMwhZS4=r>MVqypGwjDAz5T_XfJi;irXDhcxdl`grZUY)_L0yaOiwu4=n;RvibH>KE z%X(I=repNNe?pGI3^8O=AJBHXaX&qY%;nBYVIV7eR-EgJxzratXlP6YVx)HPdzi_W z6xOnO^I08qtZx$_+1y+Mftdc?CkAi+3l@sshm0&CZujm;U4?DEPNr1Z44Dr zYKZ`mYRQrf0s%z61ob-RMP`b_HYx+T_e25>cyj6nBd~(6Cad_Ym4V3*7TVi`DgRa| zMir-4j4NsgD$td%1UihqTCKPiOkglLZp5N#2BYs!Es2T|drXOh>GSRfQ7#F?WH3K1 zljP?H>|dV+{{UEyxdt)52m`muBKlWVgm=$tODf>J*opPkabUpG@U`L7Uhrp~;wr(s zIumDjfj-PvCvh&c)TC6#f3L{Th7`&M%v_=9Fpw#`!-N5d1bHUZVNW@ZO!9a$7E8D7 zr)dZ5w>{v$8H5NB64Wht5(Y<@i)UY4DUYPV`uw$gPR<;;XGMoWY{B^TJ6XoLv)DF! zF7)FxCe&LP#^M^gM{SgYV%m(3eg@4!wtSH%M7E2j*(|2~U>%ZXH8k4hanYeWVU%a9 zZlN;e@@n9z0^#2E604Jx1F5-XX3?qXHoX+7?%Mhq=$jOnYJ$%T5IGz*!M0We7>5xO z3FC+zJ;^o^(b_n4J0~EcdAV3$iX*dEg~AyC%ticXgTb;`9lHEn6{GKq5Yk#NYjz%I zy&50U`fnj0JG+y8Nz+}`=Y$j7qahBM1>`;z$4ccZ%Tm#*qD>xEKw>R$F@Z0OB=?$q z!1_DtV_nX^E0oS0PHrYen7yZ8V_5q_yu+dMD1q8Kd4zhCE8El1vaF48KE#=t0kG`P zupoH=Wwy62g_%P!0*h&ZT{UER=QnU{Y-c@g0F_t6gPsnH1FBw_iq*&N2zr9O41XaX zIx0Dm3s{2qvOzDL05p_HL9D4eoWUKg8o|oiKLLURUv6(tB*2&`L+eIl3uFl=vWnCd zf9D?q=A!sS)QEw#I8+SUogyasW8@VDI}T-8dT14Sr--@f+o^JcUbDf z*zBqbda^4`sBVOoOJtp>-+9y+rA{j7UnNz8?+3ua#_&imdms^n=;b$*W4hfJ31}=~O+g_7{fDrBS~4xO z48f+WqNA~*ILQf#*F50lP-X~~Jh<=%gPd!=BGhGu$L}mAjlY|NjtGtfgkiGz(1eoq zZ`-98Uq!Yq4j_ko7*c~Ge1x@z%j( z#dOeThhjb-^DyTlFQUj}_9Sz9GQaD|cRsZ^C3(ku&p3`&>yM_K`cc1f4%bBZGKfGl zu|>ynB_TFn%{Xc#HR&ckKQ>x`mZNsed~fd6LYZY1NE~Y@3ue<1(gWhj0<3TcVT@<) z(tx0omVMx1i)GpwSOW1xR*g;Ed`$qP0aJtsZh%9{K5`^5AVvrA#*G9W(?MU;K^HiA zvcQEno+=upKWr8RgS@vSV29|Q=J(_m+IJ5miL@x*G|j#qM?1Ge|Ar}KzcvY)N!%gU zalZ|wm9r)RR<}vT+A$e|Umn^70b%Bv8%W4rJj#lVG;D^1i!Qv>X*6g8hszOR!UI~! z$u7DuC2xml7YFExdIq-uMvMbdQ@-7#kqS!ybwJ}BdD5Bq(7aFFC9ni4A9D8r7K~F3 zM1-V)8K1OS82k!y(G;hMr)*T8Kl^OWDwXib<1dE+>SuWIKu-CFVmE=8+PniNDx6`7 ziP>~y$+`lp@yViRd&rvz^St7iqH)Aj#XDEA`j14Qj;-iv>qgH{s>nDRW=-!o zY}_g}uoIo(-IfHKy2f_MMLal^KMFGXH_P+=;25IUMkY|oP%U&}DvX_{-2+4pZP|ev zc`v8|KK4kk16e>0kQw+oP8sOxOS*)n0FLgl!^QDH`K$q;yTUnxa?wv}Ss5>0Rq3_5 zVN&7ytOTxZWd^=ZUP-e#BZF694uDgOxL_nwZbA*%$G6KJt4%cuyBg>lY*x*PU8AfH zPUFUM@Dncs=y_NYC`29ZQlgK=ub&B?#n*&DkfF#gqU==PCemF;>Hy!>88&TY(ZdF{JcfXSQD7m>JvF8}G-YwzC}ab8{jWx0B;h0WK&fLmX_riQ zkc7zO+*E<@$zhhDXh#ky{FJX|xHaR#2H>)Qb;?Tc>Y)L%%U~pX*TH3ED-C%FF5hFU_M-yB;D31DRxk(Y10rhPzZy4)w}`sEdur4n>my%&-CD zV6jS00ii{e%6Tbwo%WNgeIGO-;bBSwjU0@~Ot-Xwp;|Sq}-9G-k~) zyr$`BkTvd+DVbeR+3dsg;I~w&iMyu6`=7xp5{M8Gw4Y}uq>kGAG_#T^lOGJ4$xILn zT9(|M_D-^6Pkl^}(VN0c?bc$o2t@$Uu(V&~C!g51D# zr$W8B)d2@0N!!9)2w+Om%ZBE)&eOI1Roo}Jh=^-3w5&5)fv%mncO){C7!kk?Y(pWS z2cW4zkTK&RNbg!_-SFoJ9Y4^(m>%iyDR##fI__CDC@-Ks9Gw1KCw0$ifI%~bDMn7Jy(z)O9fYS|K=s$7NoT-My;TnpRL`#kv>|Ca z89*}dHiu?nLfHv&r~)dGSTY6>elr|wm1e}69Ym|?dN|#QbK#R!X)J#st8gAGfXw~E z`CFtT74zGlFz<%MMF1^Lz+L0Bd1z>Qfq)S~1pu47Q1BADW9bD|_bCD>vFdd6(}@j< zQbhSVV9fmQ95bLQ%zlVo3}8GJht7l$`d4&C0SeN4n-U=uDL%tAMAAiI?wpCKaEMGo zr|_TIK$M{cDCNoj1q=VmZPsp5B%aJd1FD3*LN4sU4I2kK|1O*E@EhIg=(;ZiFdUqP zQ3|J=tw$7^=ppqP2>aJ#cv_OfsnED0X)KT~N&;JaqPeFPG>|wxj%M;11Txe!+W+C`C(#%XEQv!ciZ zGu8xlxoNVPoHT7mOn3!WH9!Lt5kJs+&pGdH4P*R(y9L4(E zUf&!y$*e$2?~&H%u^x)uk6<(L;n_4Ku%79+2u37Ug`#c-O6ejCMBh<4JxDyYunh<3 zl-fv>cBIwWP-P!pj@xUoru2{JAGUeN+8j9}mfq6Rz&^7fPZ zm#q(^c7kfGmIjX`S)99h<>-f!&sdM$c{Vzj!>6n4qUqelI+ei11jVdU=`ICD*SY!v zHe)UoCN_`;=~AXJh+nWIfb-d&;G|l-wxNfW4})fscwQ_2b;7yYuv1xFYo&1>{Hezi z(@$rnsmS9qD7ufiwPuG=Rjhb4$5_@rOc?q-4zpK4p*^sg7slOF{@xz3c5laDasPXJ{t4_lK9JRdKy8A7uhrz zmd2%uXU$qDV46O#mM|KpvocX-E;f`zjZD9UM6o+hTg!gnm3)!2Pf9H7+$T@zJS38B zAe525GC)1ko!I%WP#S~?7I#TG+g?v+&rn;015kMS;Q0vli0K(*LV0yu(pe0SUS<^8 zMxBM$SqcU`ve_e_D{61rtf?nFgOQSE!)Ce0Na1tF&$R|f90bBf6+g-3{h@csGR=jM zJsZL}Lv#9toFWAVWz>cxKSptQhvzJ|G&JqXRy^+o%POwE67(SDDp!w@L{f1c zNAxJ7OkR!jKR`h;k5A}MAz;7Ifrlkwi>L!wUkYmoX-{xSdKE=N!IzYNpO`pFcx&m;}$CG zjOu?K(X5CXn_v!j3Zt_cG6h?AOy24K(x5}&o8>4Va;5qY2nHir99Gql$nr@;gItuD zDxjf6V6MAe91oT?>=Dn>WsYMKZ9dk1-svIal z$A)|j&>1iUpNQA~4qIEyRk2Ths<3MYYzbuiL-5F1mVi>kWIkyE^=8Iw(D>&q#6b{p zbNbVrf&|b+cn~Qd7`lE5tgUD#EO&hhLXwj>x7VuY)h3eW6k|+z2M(jw6G!<#HD4P= zvTWvEGJoQ9A0bz}ypAV$%M^<*h$IR^PR#2>G)hx!J(j^tFwcxsfQ`FYilqHPK>ehr z1w{cH6aiegW$v%{5l#}JUME#LKn&W00N!(}8Y}oXI}zM3brmfK^P+p$JncuLOZ= zY+UV;MOk;~qF#PiGdIAuSMhXm#et4QP#Psej1M{l*M(!A%-|EnP)0%yg>!+%!BFtL+ULniXvSFCMnHkf#m(x54Wj{rU9?8OUIbaD zJ3=xD$-xYZOO%7;r)wp+hkd5UFbdG4m<0f>(FfHHEwSL7HasG9KYINqf|Yl4@G$N^ z$wwv5TuAN~!5_ahMj(ISw~gk|v7#eq%s4VYaRr#lgSskkWRR}@T=R;DcHm+cr7l7{ zz=!*_5Rl!fnHiZL-Ga-Ht}cq>r&Yk-4>6DbBM{N)iT$c6N#p~fWPh@Pr19Fh5!)DW zK|~qAgKebC9Nw^uj$lk^m(#CS?GUYm7MJ5NSS$xYZhE9joX_>3SQlPs=16ff%P{k1 zAY?K3J`fSJAB5q33QFWFqQ7&nakvR0;MnzOuHwUedu9+capd%8+&>h&f?y=Qm#zZ7 zbT>?Yj<|Jia%Tq6?yzvJhTVHspW>^K3d-KtxfKG@C5F3k+t;SWr2HhF_b@ys%C73Bgpc6g!Wg53^bHit)o$&tPRYv2K)Q z2!q<#qDZLoSeUSLpcWq52=9H&J)m8{+qwM6YwnUrO5tI-Y_O^t z)r<{LICurT1Hm@ePbHP^4p4R7G%T=rHb~UB9ehaw ztx_Qa(iO2_JDAMVJZ^=;fDi-N8HmNwa)$Ni;OkRXU@)RVC6BkgS=5l8CzLTr_%Wm& zN|6|1j4$L6ST^~YRtVUYcnT5)*Ar-Mf5zt>RUYWf<()z`p#Yvuoseww)S^G9e_%j2 zrh`#|KSUmDhc?GsYXqvyF}rbUGE~Kux03wSAP~l7-N96gF_~5gV92*dM#1uhv1Pa- z6%W0ni6UObG%YJYJIds$#D*%(_w#9Z=mpG=>G2SBmvJCELwFQ`>#j^#g>ru)&mn0gJN?;JbiZUh)3ahw|lb$N}16>guu8Cr*E95oYVDBDnR8yV8nRT9dm zjM8P$VFVajI>ICE`wTvRNGwtQPDhAal^#Ef0O+m+VayKFI-$0Sfwa_Pr12mLcPa~t z^q@i`6f{o?Fahh0rP&PvI6IIdUc~*Q4kwGWh!c1n=2ZD(I@84|PNB)1V@FZ=(*pXd zY@uJ)D+vl^>mHIErRHSQs6Wvd<;{Ajp`20QZV99?cP1?Ij@t0So2&H{yMGdg1cR3mt*N&>t3R+%B91cpgmtP!1- z1P0-!233OpLM%pwf%Mn3h)5z(rJNO@0wD-$nWs4$_lhry&{Jr+F^! zPQ@2k)SE`*sc~Q|KlL#Rg4|Yg5cvZ%<21|~nFL(|+n+{M;f~TY*V-{EP9Z6;=>q?8 zBPbEs?Z8G3X?m~&fmJ<_%c=HRIznub$#Rg9MeMT~tD5?R*XpvcUM8c7)yL6}T!@%P z>VXUwdcJREgo_?S_CvvXI`$AMV+a)C;>PSN31|TikP10WJ1sP2Sif#n8>%%gf0Z?uiT@Fj`Vx$KpN3b zk_zY{Gg^mvtYuh?u6KE`^MO#{oM2lj@{m!qb;O94k~W7w#m>F1fDBaecs^1SYYqFC}fbpac5)E?v|y0a?YA4B|i(R34)_`2x27If+3(E zh?8xoWxmJVMAMCDrTwrycu#O=-q3(!91M3%jOrpx_MRbQ#Ko z1(l<(!upLJSz|AjYI#dQA>az=CoifW2DvX4HvsWV$d^dM2<`L)QOAgfOh*wWk^KTd z7^E9HFpHDKp3sUWzc^qa7LuVa&VwS#(^-^fKmZX(h{i$hNx-bG0|tbnFF$A8SJF9| z(Be*Cj@NIz9GVdHrSR1_nXzbQ6N$zz`q8Hy&Cd&hFoJwU2`&D$SU2`dpTjo1QDs6u z<=S`4iVa~41)%7>t9d1gOl^$vL8TRkJR%u2yj3=0E}oexcO$I_qTU4SSGN!tSgG=e zatbfaoXV;azUyz-L{dO4houN`fwKx@_55Nk9-6E7?>wWW{^UrE9tQ>W=}&r9oD6 zoRy!qvL2B*W~e_-Xt<5g6^Do*8@~mGfSOul$6>(`JXFdGo5E-?1T!*KY#t+2etbGI zUsnR<5eG^R(xMQL;41QRfoRoIYG>ezadiwYgVPL(W6QnWE~+>uFKWeBpJq}6Z(P*HAzlq%k!hdgbd zlETTbN&tmYBAmg>9<=t|K&s0CI)#wgirkB=h-5@epUpW}kw4wK`cW0_tHl6J+Xf1& zDI9#?iL1My*0k{QjFwPH6!`=IC;ce;u%MWNL_XjG`HDfo;J}B|RZ^qZavbx26pZq? zgbV=RWPPw{C8#2(6jl)a7%+9^O0hr*K%ERAB!5vL3X(YAqBXns~jS_8b6b z{xpgofPYl8YqDKQqqxX)QLByN@9ctV>+X>cW z3eU%u{hPESNw@4ndMHJ}pcSxPa=?lhETV7SlA>=cnbe}26fiG1te&uQP&H=8FbvG$ zKEOQwFd+4oDRvj+0w}EDhWonjpI>PVX=wI$fYhMXOG%G?U>_ zoE(&eK5A0}QoY%V{2*V;DVLd0^qN@M0tPd^=G>&3sy? zFymh*60NWx)5{bp<%0&LLn|S@6bzgd$khWTV^P5wQ4G+l2964(JZc7F2(WIivg^pW z@$q=8J7L$6cL1`+E>Qv*5`f2RfEE+ihe2QuqHyBE;rTzeff{OpL0_n$`}SRM-Fxffiw&mhK7y^GCWQ8?8w+ ztw8@cm$y%dLdg*F7N$Y=kGDaSkv$PJ=U^S&dA5Y(h)EdPwvukb_2@TH$X><)8hmAE zjX}0ydMS!yc5@gSQ^S@SK0BB=Ys|#8(lj~qa8;)Y)wIHa9!AOE9-npxkf&28cVK-~ z%JOA)3D^r!>>ptERViv0jHfZdT_PD9Gxjo20l~oY$*3`--`m4GU7>4z-extOUpyvt zELd=KD^@qMlWnKUeD|KlOWa8zFcHPr`AiIDWe5GHHa4{wf|E4w1YGI#;<^>pP2w~1Bm9;8w zKpH`Cf!3s_1A2rZW@(pK)TYgYRXA;LE3TlETupIFS@$bTcC+|mlL>|3aZ|KO-UP)l z%?P^p_4yL`i7vqz*yo|I=|@r;!uUK|>}u{3J*&i}`W*u*`4&rLWH(LbVyUeZ1B48b zgewLhCt^lBK8sWuZSrdGa+MFaZ`K$F6g)B29-bCNuTQ4L0EUpENmipSroU<}XfCZC zh(|)g8-XD2$(ZSsAwV*#q!PsS85neIHnrzHNKb5ZUB+Y3L!yiK-%RWe@U`F4oqfch zR0p?^fY=iiT1+^=tf@}i^yG9B6M%CFag22_T}@EsV#un3%DJBQjh;3MFAnQCkI`cZ_LRuG zs^#nui#$m-anos3%P@2IE|IjW!mCnQUdPqj zFD8)R-^6W&myC68;yHzmMnqyH@?>O~u^)>W^@R`>Gqu3R-1-Gdnh~%C_W+s|O*@fL zZ9te@-9J=-{*^(VmOdkRVET(EONu-2eSA`l(jb}%aF55Ia%>DchmgU3;^%@3bz_a1 zHR)+McskG?k6q@@yD|OKP=?MDzdq)2r$adyF2aGvcNbqhr$RYU57Rn zCbK^Lv76+PprQsxqIda4y)J}3mH$@@q!4W89JsfDU1f_Tm=&nSRIcWbvVC@e5}7te zc)`Zq3s__cANRt9)lj+FF?96H~Z%O0v1{*m4gleKCN+J^c z3Q+!jAMt_kVL9mHmg_#T!@<3`xxHwES2`JbVgt52DB<#do;&PLb(4*g90|xb&4eZH znteGMG$@c&k!?UTK;323Hy$Qi&WMzhCo8t&dYwl{3E(sARQ4FapGc=DgO9<76 zw#G#KrnKni)DTt^G8{6Dty5z1$fG&J>Uta!rQ!?|M?7F;P&^=bXK`R3(iMDWAO4KA KRL(BZ+%teos^1U* literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-italic.svg b/fonts/sourcesanspro-italic.svg new file mode 100755 index 000000000..b3e9ec05b --- /dev/null +++ b/fonts/sourcesanspro-italic.svg @@ -0,0 +1,845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcesanspro-italic.ttf b/fonts/sourcesanspro-italic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..07fef909386255d1815ae7964a97d9b8b0d04a02 GIT binary patch literal 66992 zcmd3P3tUv^nfJNOjoUCc7;XbIjDTc-5k|z3s{|1VA(Rk0Arp#35$_tq63fT3ewJFb z)}$uJ7-OyLx~`wK=gg4Ax;Dj{OWo8>v)SmT-E7jjX-YRu)0pn&qBGzBdCwUxYLf2d z`~AK%@}Ap!&UxSGectE(K5{(AaW)hhuC9LJor`vC+B3p&d<(9&H8ytKzN%^KZk!*$ zdDh~FMU8wqHw)*da6Wr++Z}hF`K#}g;`}X+%S>B*=Uw%NtWW%?`Vl>I$DQ7?mEi;9 z9GCqF>i68YcIk$uhNFjY{vq!F>b^gFz-fHJ@-D|Y{|Way`Zlasd*_(KWXh*N+QHTeW|MbG)CM z)xY+E2k(AlaT>?{BmTr=Yu4Ylv|)cnJjY!c$M-L;UHae#LC?R=aj)+~edoHRYnPwT zkWS+K6vq`v8`f`n;1@-+*Ks`GkM>;NaR2fRwxSj1I9>zz@WH|5y?x*Rn~vK#UV9AB z>o|g?0e>3K$O$W#Enk2C`nBsgp`o#*gEOvK`oKECPKWz=m=jPlk>evr*i$#ZO7*b) zwEFPNw7>A!Upz+ppKa=y&F&a+lEyhv3OMJv3H)i;nerq(O@Hy+T&{CQJF-|kE*iy? zREM6LIulkezkeNP+_dtm%Q+jnPkrLJWmJo8^aMRAaPfQ*;3Kg6MlPQ#;>x%-u9tg| z+rd4;9p%n&KjwbM{hWIjU%7+9=nk%y({r|HkgJS-z}*vlm%BH5iMyW*a6>r$HTD|Z zt>vntFXPU;xKqz*ab*-|=hb?bP_G*GlB1vC%33_R1y}meo=Via2k)bMFX1VAb1Uw} z;~mM-lekZBY{e7wj!d+w5^ohzUcwj8v$oJ%4zV+OOFQ1Ohg*nee~qhJZdUX)oL$0K z&_2$^-5))Uw-`AqM#96DbCqb>Lhc^iTh0w}Te-vBUvfg)KN5se8tgjUF9EF2MSane z_yxIk?gH9Ws6zJt$u0_f{-4~Um!l`}zP|s-chb9}gRG?4sBY2o(My2*|AP%M{~z0; ztcM=i7$yhO%-F{OpP2};kl=_7nIJehG{!9QR%yPB!I;XhNN4S*im68o{`zGhnO{(4e($u>dZ32{|AE3{PQ?!Xa*9QK5Q@V?%c2Nz5x+&j?y_28` z+{I`|x1+Z&6Q5(yCn|-JM0pZ2Lx2l_>dx3u7xX{c51M!yvu_wr9*k8WxZ(VllkdI+ z?*A@E@B+Jb4)+*;W@G7{qE(ZvqV{ZwPUDJ`Z&v0dD`VGg++PP7Rw4H88*9g|s8E`m z^U-Hxcc$;JhXdXF6W*=TljxhMo`~P%2I@CSRp=r+E10~^P4XK&MI(6Qrcyxq0?Dr6 z!8g{y)flb1;pWZjE7dTY+A($=IIE4mjuBMkcAUmqO;{3Pm@@Ol^h{I-8p}p{<~`+% zco(n&5(D;^@dLbRE;H&)xO0i!>7_b2dwUAIV=!U+%owej@ePvH`nbO6hw9aa*j>WI z*fI7;qHhEL_Hz=hDm=3f@@YHA>Qf(qhp~5Xkh`%d@M2{PPF-|O+3;?(TRo=XUy`fn=dH=`$$SVYfEQi|!%$Hsm7 z_tf`I%)H0Wi09k{@}wh8;`dGNgANwrH*E&sdk(w{mK$seZ1%F_seH}(h#$RHPqHF5A&riKO_6*)lU!2M9`Z1O?OK-BN zT$RxY<+j?cmv3whFb8--oANeRqjiciO@CtgvGPo;L<>KlZxB^Nc{2JYFp4M?u0_Dv zrq9pVGuQ9Ņ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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-italic.woff2 b/fonts/sourcesanspro-italic.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..4d6b6161fc4f0f502ea4501a98c9573f07cf0489 GIT binary patch literal 25012 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 P+oI`U?5kc}_!9sC1}jAH literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-regular.eot b/fonts/sourcesanspro-regular.eot new file mode 100755 index 0000000000000000000000000000000000000000..4afbd860bbf0f6946c921b42db28e2458623377b GIT binary patch literal 27090 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-regular.svg b/fonts/sourcesanspro-regular.svg new file mode 100755 index 000000000..b7c457a08 --- /dev/null +++ b/fonts/sourcesanspro-regular.svg @@ -0,0 +1,980 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/sourcesanspro-regular.ttf b/fonts/sourcesanspro-regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..8984334dd0ab80a9df5257151159e3304bed6c8c GIT binary patch literal 68452 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 literal 0 HcmV?d00001 diff --git a/fonts/sourcesanspro-regular.woff2 b/fonts/sourcesanspro-regular.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..2795784bc82a340dfe312a797a0bbcfb7073eea6 GIT binary patch literal 23772 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 R4E@f~?+ot4aOyZD{2#}t1m6Gv literal 0 HcmV?d00001 diff --git a/img/blueprint_large.png b/img/blueprint_large.png new file mode 100644 index 0000000000000000000000000000000000000000..49b7473082ea28622a0075cba859d667e2900779 GIT binary patch literal 547 zcmeAS@N?(olHy`uVBq!ia0vp^DImPkSr%jvp;>?DJ&$=>h`K^9bw0F8~q~N;R_e=fX z^GJIa=PnPuemk~MW^c-p{qxrReUa*aO-FjtmCdgUOa5J{Jgwxwpol;m0uD%s>4`0u z@#=|YlW%_B9B%6yoO|Q*lZ?(Vqfeiem107#8*k3p@{Ogl;Apb_sVkOKe#g&Tcjn5z za@U)UGne?R6rY#ixB26*ck@opx5|%X;ZQ(AXujR!E^~@^^TCC845WdKZ9ql_knwSv wDS|xv6<2KrREro^_jM0(BR8x;TbZ+@$@UQd~3g4 zzyE)Y{`&mDL(^^CSDNkLv+wBk=kl(PKL6F6xBtJ+CBH%eF6}iN4w(m8EDeeIuzlN# z54+YKZLQD#Jl*E_&wn9b(8fOVSBdDJ-ltjhC^K1Inj3#qkZ`M{a?#n zexRCrZ4pEfw*8xa|I_vd`x0$}9Wox$9$YuL|Rb>p3nV_t1M6 zza)^fl7AU(zNhke(!8KK(>C=-ufBD5x7;yjTNLB%E`cog7=SPV#P8qo@j^w0%@wFS zjL&QU@?R*|K5kq6uPF0uNbu+D?pMEdwl%QU2=~V>&R#AkCz`2yaau-?=e(e<-8R!} zt)6MV(>J1w@%BbHmEvQ`0zog ztTphPE&{vrV$^{;smuGeX(ibAX2t`J zae*4MxMk1R;B&L)XXj-FcipJ?6aL++R9Pus*7WM1m}2khk3W3wuD-I><#sdJ!*1D( z*4wh)nU|iQ>MoG4}VZRSmMYx31sn61@l-nt@HXTa~Z#Zs%@a2lr{uHKwwh>mZjO zFMA6N;%OOR4=E;0c~JK7K&kQ_J(*oY#$=J+NKkG9XKq`4-?s~WHIL4(ujyUOUH<3O z?a9};cq@)DEofxSNN`|gzHoryo3g*=(Q9WnpM7`#7{qy zxKD`-j(pQU+i>CI&zQdhQDZ+0tGTpe%C1X( zm-S`$|LJ@1{Xd)D&P!X?Wgh_w>YdiN1qohPHc4P(Lw5AhQm49~Z?EQq&A(N_=LQ*!sNUUQ8!19ly_4Ro*hp1B*i*KYs%(RxyR|Ahug zi3YG6z^=a`4)#&_{)bkI`~Q@^Ms=aY?#8{Yebc^0%^P}@*dC);P6d|j{&KO``h-q1sJbuQC*nuhV7e}Wz?tq>(42LSX&7blyuaNC`nkKDl8u^`)dm_7 zHyJ5&gWfrwkk2QlV-Ego{}{5EcoKYu^~0K+%3^H5ymFNIuc$kix337m1Doa#_V_hCq8f|E9Ju+0%ktDsh*a1;=i zXzWuySGA`>bb-bJel^XU(?KoN__d6^F%k=GO_y^=O)_+Q zJB%v)J#c}4Pert@^ zq82(*Gmi9K7wG-7h^DOwB0D;Q$^Igfoj<<5O@B?>eYNc1?t#&3=l+gN0820~RM&ExH9>18fL4r0 zT`P+MbrV242B-yUfm+$rYN@hbg3-_I6l=dv+}=?29%+1Q+48E6w3ID_TFFs7U}I>P zjvTQu1Ztrp=m2{XmyG$Yb3ycWHoQW6(WJBlmlbd=S1P* zF<>lU_*bC>jW#Tp5fLylF(6s3NtS;#jc?ljSfV|5%*1Z~@>>6R4={8LqRACIzKyo$ z>QN@4P8b+j7?3PT7BC=LkSy2=$(oynBKpB;$4tUAr|uGW-vc8bBfM+bpKLS1728X~QFgOGb!73Un zbznfU+BF=MYYhVj<=Vo4WVI$)ICatv1`$r3G=>4mf@A>$k_E|vt&l7nVrvTn2jy^3 e4u<05iR>RMytR7O{vBTc0000O(wlo!mKukpl zDKI7&0%547h>^Alt$_dw69MC*4--LF_)VlqGmg?7Gx_Gb_ssd-Ip<`AD8Wr6@T?LK zZwPT$2vGwegvg&bObEQQy8IDp?cZXhJ8th)ljL>p(RkYdPg~_$#jcwl{YU+dmeMk- zdd;!tVS0l8)vma`Pu(G(dzU8K_xa7eb6cf3*J?lWmRe9lPya_A>5B6UCB?y~yBuoD zlHV%d98375$78GP^G5llXN!WJ2?{AmUIHJGv;3<5+;+#z6z(%_>CxmePXyNK^-z>T zo=?2=EWvA+d{EAj)|8{!`#;JbINEIuj@H{1wQaWY{26H%cf`CjIKD~?{xH8A*krwD zo1=w1&d}v7#Zb>a&iaP+X`auxq`@pSKgZhG8ihw9`~kCw70ZL2Ogp71^f9$COFC*u z3~h3%SU&BN7E!|@cnz-Yd88FzL^>>%2NTBk-{YJJ)`m6=HGi+DmoqesUbX-A4{j&z zmXh$4A+Uyj&d;aLd9%9Cd8<***%i!h9`j3@=JyrM5tt+RG5i?4oaFhd9L!HJhEAa~ j?9br8uHuaM>lc4ZM@;X4@b~K_LMR1Nu~xr8$T9RA3|>`S literal 0 HcmV?d00001 diff --git a/img/klimas.png b/img/klimas.png new file mode 100644 index 0000000000000000000000000000000000000000..44bbf4bf9d463338e32d22cb75bc3736b7bf2cde GIT binary patch literal 26080 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 + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/img/logo.icns b/img/logo.icns new file mode 100644 index 0000000000000000000000000000000000000000..8930a33c24cba73209c00dd0da04637ba1c3769a GIT binary patch literal 113543 zcmeEv1zc21)c7SuK{vp}K*jFDcy=dtA!!E&CcA*#-KD#`J0t|8ySqccLKH<|7qFB6 znY)1KL*3_le&6@|{XGio%$zyr%!!$~b7y8x9XWRi<4e##b!pyQ4C8xZj`2|`I2EJl zV@xVWVqzGD0iT4)1IZ*3nasd&DnErvW{~($0uyHdYIlOlpkUo4d{ip_B{hIbr9dqb zi9(WKV!~7kB*|nwObBIDsQU1MN+wgteSSa%lmWJwIVMEYpwl&Qz@pP>bht1iw9>%c#dWC|*$OkD zT7k3UR3-&{*9z08V&eK3zbJ*Qi$0T?m;jkVqA(zdQJ8=wh*2P|3uzXGLFFS+4B?|L zm5)L-CU6)K4t!*a5lWC56d^LWJcWdk45~1Ergo(UP^eUK5|nkNF$f%C2sH|cOknp% zMNk>=5n+CD3K^$>EM$rvS&)i?QWqLQ#mNGQ0*ed+m|#!|NRkm5CfN)VlYlZr1(6zL zfr)a92p(ihOc=2rL?+>6zClARu>mLv+>s1c*nmMjDGH_Gf7y~2F z=}a1?fzv_nbWGg}6QI**8caH$2IT0_1t8cp^)P|XmoHy{y6FfLQ)gfzot*X#6uWJ@ z7*6MhP5`I(qtP&SJG+g8w+V2F5`G$8Lx(OL#D)%`S2iEQ76mqjQ4avIcM%4x2Wa`E zW`A2iMq<%*BhoT*8osSV!!^Y8Vv^Id@*jRvgwqG=L?xwX<`gu3Q$mLBEF>W%JuCO` zMKqdQLUL+mZhpz*Z)#E1nbAq9>Dl>3B~9ESPCMSl$KmK=6q zt?1;8oSeea(#j{C_I8dLHqbmVJv%qQsI;O6ayrd1QJ>VTyn>?git5^@97{|zA}hbJ zxU{n7cHPsb;1KaS1;wT1Rkv&JG=d8x_N1yImC=(bgH%dSs_-ABl9DpAv+_%dOUp`- zLtq>|HpYQ~Y}H}&x3XJ-7N?cyLZKIJvw{v*0QILh^snF-_(5eQh%!{?IRg_otEjBN zR0L%}FAIGx;IW@!$CVVI>tsQ;7|P)OkCcZl7$b5KCxJVG7oa9LLzKfo^;?qct<`#E zqM8qaoNO)6^<-ioN56YMPWIO3Uou63^CLf3M_WtNvptxiz&O;^+0M$$SoKRLo0IP0 zVsC9>VtD3DX8RLwH%D7@QzP9|3Ob5{3QBUy%BV?c?vD0QT~Ftff}*05q9U>{+t0

p+G41~G%Chai9txPk3s0` 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%0AZY3$bl1 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 NQv#r66Z*UH{{d6>!>RxP literal 0 HcmV?d00001 diff --git a/img/logo.ico b/img/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..a7727f8c0e29442dfb097fe34ee884a26b287019 GIT binary patch literal 31076 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 literal 0 HcmV?d00001 diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 000000000..6dcceb95e --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/welcome_alpha.png b/img/welcome_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..92fa11097181450b48e4ad596aba4850c2b00226 GIT binary patch literal 4167 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 PB|utSL99l^Fz|l>JXn1R literal 0 HcmV?d00001 diff --git a/img/welcome_save.png b/img/welcome_save.png new file mode 100644 index 0000000000000000000000000000000000000000..c09380aeea396a13ba0e9c44f61b53b5f4b5a70b GIT binary patch literal 5308 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 O0000YAgV-e->eN z{!%RG+eCQvQFlq&_uXhMCqZ~vNh17;m>TDf~0WA;N3boAksYIATIgOXRLX~cbmuNMXxvNE^%oe;}dBy|<1v2{v z`hF$61-)DtD8d%=irDM|wq({(mshBsT@$l`WC*@G_WTT)9=8-Fn+Ibpc3+_gPqjtv z#D^iUE*b2M&XScO)xV?Zui9HFBR&1LHKSSYhLNnWE#ymLj#AlJj|ln^MW$T%0gvV+!hVSO_VX8(s-DIszY+5sN*421zd7DICpJ3J9 zw$tFY&4*r~^^Vo>)?wG2jdTe*QRQ@8X{am5^R7eQPvZ+Q#Tl`V-kM2L3fo-?Lo1if zntgHwai8_A*|(MgY|nuuREKyBH_)^CM+f8z(Z>0^ zUGO)3-3qMT>kF2}eI7muw0+eY_|&Rpr_5QX1M(JtF4Or}S^qO5fAN5;$8H(3PU-Gb z*Cu=-WUns8;o|!OK8Bzcah+@`V}_vE5Z0nTHv5&Ln4!pQ({BNxtY9K?2XPsJWCE>%8G!>Ha>{?;+z@+=*{9KUH?)M@NH0Oc+a1}YLKq-Eb zTcH!-m_tu@-*6_xA5jjl1%~HmI%YUD^~;`#9C{%Qy#ZF8+dcmtlCuFCWajJ;w)1sW z=LrP@7_Hg+0r3Yvyc=J$;;S#);Nv3}&Dqvx@0Xb(QzXop$DxuGZ5jz(f7Q;S((DgQ zvTOOLiSqTcl4Ib6AZoN-S4i84{&N{g<l#w@EGqKfw2~Yx^cmcFdS~}V2j-Z*Krk=)J zGdgjQEFk5k2YkG044OM3j4V)I?^FZ<=e8PJQ;jyut5*eN7vscQd~z~j{Z?8_q=TD*V%DPA|&afO7$wG z9O0jm$YdGx@q@AEi~ANMNRe-PL%DS_z!|foNa)zHUhVqg9^dI0TswSfKN?vp*glr| zZ85M~Ux*>J>6!#&jO;_d+XY;cdfv4tIG~)idfkL{MJ;vCMZ_pHx}s2D}A0g^37uZX?oc0LKmQ<)28^8r}liAu*__`ZJVMP?E`I zX8ppcabY4V{}8MIb6@~!mUqbll2oB1EARiMAX%D!1u->L0NZXmlz>Eo^jQXfpqWpl z1=>Xj@|`3NfZiZKMGTcUcvJR8aFw3<&v6i;iTTX{yd!LIK)MtolH&>;_8N0ZT>UG$;6J6Q>)!Gwt-Fc-6vG!sN2u-})4aMJApRvQN zDK!cDF0p)exSZ4?wPm=xY3h(dNz~{ERhx&V$ggf`KEynXT)6S^OaCqv*f-O#LxpN) r!N%2X5-s~z6pHI}|BsPVYuOd-srKnN@GUy^`$vSZcCf0o@Jap`ZVh^e literal 0 HcmV?d00001 diff --git a/js/app.js b/js/app.js new file mode 100644 index 000000000..984aba44c --- /dev/null +++ b/js/app.js @@ -0,0 +1,390 @@ +/** + The main Backbone app running the show. This is accessible via the + global variable `window.app`. + + @module Twine + @class TwineApp + @extends Backbone.Marionette.Application +**/ + +'use strict'; + +var TwineApp = Backbone.Marionette.Application.extend( +{ + /** + Name of the app. + + @property name + **/ + + name: 'Twine', + + /** + Version number of the app. + + @property version + **/ + + version: '2.0.5', + + /** + Saves data to a file. This appears to the user as if they had clicked + a link to a downloadable file in their browser. If no failure method is specified, + then this will show a notification when errors occur. + + @method saveFile + @param {String} data data to save + @param {String} filename filename to save to + @param {Function} success callback function on a successful save, optional + @param {Function} failure callback function on a failed save (passed error), optional + **/ + + saveFile: function (data, filename, success, failure) + { + try + { + var $b = $('body'); + + if (! $b.hasClass('iOS')) + { + // standard style + + var blob = new Blob([data], { type: 'text/html;charset=utf-8' }); + + // Safari requires us to use saveAs in direct response + // to a user event, so we punt and use a data: URI instead + // we can't even open it in a new window as that seems to + // trigger popup blocking + + if ($b.hasClass('safari')) + window.location.href = URL.createObjectURL(blob); + else + saveAs(blob, filename); + + if (success) + success(); + } + else + { + // package it into a .zip; this will trigger iOS to try to + // hand it off to Google Drive, Dropbox, and the like + + var zip = new JSZip(); + zip.file(filename, data); + window.location.href = 'data:application/zip;base64, ' + zip.generate({ type: 'base64' }); + + if (success) + success(); + }; + } + catch (e) + { + if (failure) + failure(e); + else + ui.notify('“' + filename + '” could not be saved (' + + e.message + ').', 'danger'); + }; + }, + + /** + Completely replaces the document with HTML source. + + @method replaceContent + @param {String} html HTML source to replace, including DOCTYPE, , and . + **/ + + replaceContent: function (html) + { + // inject head and body separately -- otherwise DOM errors crop up + + $('head').html(html.substring(html.indexOf('') + 6, html.indexOf(''))); + $('body').html(html.substring(html.indexOf('') + 6, html.indexOf(''))); + }, + + /** + Publishes a story by binding it to a story format, either resulting in a downloadable + file or displaying it in the browser window. + + @method publishStory + @param {Story} story Story model to publish. + @param {String} filename filename to save to; if null, displays the result in the browser + @param {Object} options options for publishing: format overrides the story's format with a + StoryFormat object; formatOptions passes additional options to the format; + startPassageId overrides the story's start passage + **/ + + publishStory: function (story, filename, options) + { + options = options || {}; + var format; + + if (options.format) + format = options.format; + else + { + var formatName = options.format || story.get('storyFormat') || + AppPref.withName('defaultFormat').get('value'); + + format = StoryFormat.withName(formatName); + }; + + format.publish(story, options.formatOptions, options.startPassageId, + function (err, output) + { + if (err) + ui.notify('An error occurred while publishing your story. (' + err.message + ')', 'danger'); + else + { + if (filename) + this.saveFile(output, filename); + else + this.replaceContent(output); + }; + }.bind(this)); + }, + + /** + Saves an archive of all stories to a file to be downloaded. + + @method saveArchive + **/ + + saveArchive: function() + { + var output = ''; + + StoryCollection.all().each(function (story) + { + // force publishing even if there is no start point set + + output += story.publish(null, null, true) + '\n\n'; + }); + + this.saveFile(output, new Date().toLocaleString().replace(/[\/:\\]/g, '.') + ' Twine Archive.html'); + }, + + /** + Imports a file containing either a single published story, or an + archive of several stories. The stories are immediately saved to storage. + This does not yet work with stories published by Twine 1.x. + + @method importFile + @param {String} data Contents of the file to be imported. + @param {Date} lastUpdate If passed, overrides the last updated date of the stories. + **/ + + importFile: function (data, lastUpdate) + { + var selectors = this.selectors; + + // containers for the new stories and passages we will create + var allStories = new StoryCollection(); + var allPassages = new PassageCollection(); + + // parse data into a DOM + + var $parsed = $(''); + var count = 0; + + // remove surrounding , if there is one + + if (data.indexOf('') != -1) + $parsed.html(data.substring(data.indexOf('') + 6, data.indexOf(''))); + else + $parsed.html(data); + + $parsed.find(selectors.storyData).each(function() + { + var $story = $(this); + var startPassageId = $story.attr('startnode'); + + // create a story object + + var story = allStories.create( + { + name: $story.attr('name'), + storyFormat: $story.attr('format'), + ifid: $story.attr('ifid') + }, { wait: true }); + + // and child passages + + $story.find(selectors.passageData).each(function() + { + var $passage = $(this); + var id = $passage.attr('pid'); + var pos = $passage.attr('position'); + var posBits = pos.split(','); + var tags = $passage.attr('tags').trim(); + tags = tags === "" ? [] : tags.split(/\s+/); + + var passage = allPassages.create( + { + name: $passage.attr('name'), + tags: tags, + text: $passage.text(), + story: story.id, + left: parseInt(posBits[0]), + top: parseInt(posBits[1]) + }, { wait: true }); + + if (id == startPassageId) + story.save({ startPassage: passage.id }, { wait: true }); + }); + + // for now, glom all style nodes into the stylesheet property + + var stylesheet = ''; + + $story.find(selectors.stylesheet).each(function() + { + stylesheet += $(this).text() + '\n'; + }); + + // likewise for script nodes + + var script = ''; + + $story.find(selectors.script).each(function() + { + script += $(this).text() + '\n'; + }); + + if (stylesheet != '' || script != '') + story.save({ stylesheet: stylesheet, script: script }); + + // override update date if requested + + if (lastUpdate) + story.save({ lastUpdate: lastUpdate }); + + count++; + }); + + return count; + }, + + /** + Checks for a newer version of the Twine app against + http://twinery.org/latestversion/2.json, using build numbers which + are automatically generated by Grunt. + + If retrieving this information fails, then this does nothing. + + @method checkForUpdate + @param {Number} latestBuildNumber build number to consider as current. This is + required; the app's build number is stored in + window.app.buildNumber. + @param {Function} callback if a new version is available, this is called with + an object with the properties buildNumber, the newest + release's build number, version, the human-readable + version number, and url, the URL the download is available at. + **/ + + checkForUpdate: function (latestBuildNumber, callback) + { + $.getJSON('http://twinery.org/latestversion/2.json', function (data) + { + if (data.buildNumber > latestBuildNumber) + callback(data); + }); + }, + + /** + Checks to see if the app is running a browser whose main UI is + touch-based. This doesn't necessarily mean that the browser doesn't + support touch at all, just that we expect the user to be interacting + through touchonly. + + @method hasPrimaryTouchUI + @return {Boolean} whether the browser is primarily touch-based + **/ + + hasPrimaryTouchUI: function() + { + return /Android|iPod|iPad|iPhone|IEMobile/.test(window.navigator.userAgent); + }, + + /** + A static namespace of DOM selectors for Harlowe HTML elements. + This is aligned with utils/selectors.js in Harlowe. + + @property selectors + @type Object + @final + **/ + + selectors: { + passage: "tw-passage", + story: "tw-story", + script: "[role=script]", + stylesheet: "[role=stylesheet]", + storyData: "tw-storydata", + passageData: "tw-passagedata" + } +}); + +window.app = new TwineApp(); + +window.app.addInitializer(function () +{ + if (nwui.active) + nwui.init(); + /** + Build number of the app. + + @property buildNumber + **/ + + window.app.buildNumber = parseInt($('html').data('build-number')); + + /** + The app router. + + @property router + @type TwineRouter + **/ + + window.app.router = new TwineRouter(); + Backbone.history.start(); + + // create built-in story formats if they don't already exist + + var formats = StoryFormatCollection.all(); + + if (! formats.findWhere({ name: 'Harlowe' })) + formats.create({ name: 'Harlowe', url: 'storyformats/Harlowe/format.js', userAdded: false }); + + if (! formats.findWhere({ name: 'Snowman' })) + formats.create({ name: 'Snowman', url: 'storyformats/Snowman/format.js', userAdded: false }); + + if (! formats.findWhere({ name: 'Paperthin' })) + formats.create({ name: 'Paperthin', url: 'storyformats/Paperthin/format.js', userAdded: false }); + + if (! formats.findWhere({ name: 'SugarCube' })) + formats.create({ name: 'SugarCube', url: 'http://www.motoslave.net/sugarcube/twine2/format.js', userAdded: false }); + + // set default formats if not already set + // (second param is a default) + + AppPref.withName('defaultFormat', 'Harlowe'); + AppPref.withName('proofingFormat', 'Paperthin'); +}); + +window.app.addRegions( +{ + /** + The top-level container for views. + + @property mainRegion + **/ + + mainRegion: + { + selector: '#regions .main', + regionClass: TransRegion + } +}); + +window.app.start(); diff --git a/js/codemirror/prefixtrigger.js b/js/codemirror/prefixtrigger.js new file mode 100644 index 000000000..c1cde71c5 --- /dev/null +++ b/js/codemirror/prefixtrigger.js @@ -0,0 +1,49 @@ +/** + This automatically triggers a function when typing a word that is prefixed by + certain text. We use this to automatically pop open the autocomplete when the + user is probably typing a passage name. + + The format of options to this option is: + prefixes - an array of strings that will trigger the callback, case-sensitive + callback - the function that will be called + + @class CodeMirror.prefixTrigger +**/ + +'use strict'; + +CodeMirror.defineOption('prefixTrigger', [], function (cm, opts) +{ + if (opts.prefixes && opts.callback) + cm.on('inputRead', checkTrigger); + else + cm.off('inputRead', checkTrigger); + + var prefixes = opts.prefixes; + var callback = opts.callback; + + function checkTrigger (cm) + { + if (cm.state.completionActive) + return; + + // back up two words from the cursor + + var curWord = cm.findWordAt(cm.getDoc().getCursor()); + curWord.anchor.ch--; + var prevWordRange = cm.findWordAt(curWord.anchor); + var prevWord = cm.getRange(prevWordRange.anchor, prevWordRange.head); + + // do we have a match? + // only trigger this once + + for (var i = prefixes.length; i >= 0; i--) + { + if (prevWord == prefixes[i]) + { + callback(); + return; + }; + }; + }; +}); diff --git a/js/collections/appprefcollection.js b/js/collections/appprefcollection.js new file mode 100644 index 000000000..6b6c322ed --- /dev/null +++ b/js/collections/appprefcollection.js @@ -0,0 +1,29 @@ +/** + A collection of application preferences. + + @class AppPrefCollection + @extends Backbone.Collection +**/ + +'use strict'; + +var AppPrefCollection = Backbone.Collection.extend( +{ + model: AppPref, + localStorage: new Backbone.LocalStorage('twine-prefs') +}); + +/** + Returns a collection of all prefs saved. + + @method all + @return {AppPrefCollection} a collection of all prefs + @static +**/ + +AppPrefCollection.all = function() +{ + var result = new AppPrefCollection(); + result.fetch(); + return result; +}; diff --git a/js/collections/passagecollection.js b/js/collections/passagecollection.js new file mode 100644 index 000000000..f3c7279dd --- /dev/null +++ b/js/collections/passagecollection.js @@ -0,0 +1,29 @@ +/** + A collection of passages. + + @class PassageCollection + @extends Backbone.Collection +**/ + +'use strict'; + +var PassageCollection = Backbone.Collection.extend( +{ + model: Passage, + localStorage: new EventedLocalStorage('twine-passages') +}); + +/** + Returns a collection of all passages saved. + + @method all + @return {PassageCollection} a collection of all passages + @static +**/ + +PassageCollection.all = function() +{ + var result = new PassageCollection(); + result.fetch(); + return result; +}; diff --git a/js/collections/storycollection.js b/js/collections/storycollection.js new file mode 100644 index 000000000..3499a8dcd --- /dev/null +++ b/js/collections/storycollection.js @@ -0,0 +1,54 @@ +/** + A collection of stories. This sorts stories by name by default. + + @class StoryCollection + @extends Backbone.Collection +**/ + +'use strict'; + +var StoryCollection = Backbone.Collection.extend( +{ + model: Story, + localStorage: new EventedLocalStorage('twine-stories'), + order: 'name', + reverseOrder: false, + + comparator: function (a, b) + { + var sortVal; + + switch (this.order) + { + case 'name': + sortVal = a.get('name') < b.get('name') ? -1 : 1; + break; + + case 'lastUpdate': + var aDate = new Date(a.get('lastUpdate')); + var bDate = new Date(b.get('lastUpdate')); + sortVal = aDate.getTime() < bDate.getTime() ? -1 : 1; + break; + + default: + throw new Error("don't know how to sort stories by " + this.order); + }; + + return sortVal *(this.reverseOrder ? -1 : 1); + } +}); + +/** + Returns a collection of all stories saved. + + @method all + @return {StoryCollection} a collection of all stories + @static +**/ + +StoryCollection.all = function() +{ + var result = new StoryCollection(); + result.fetch(); + return result; +}; diff --git a/js/collections/storyformatcollection.js b/js/collections/storyformatcollection.js new file mode 100644 index 000000000..eb6d59526 --- /dev/null +++ b/js/collections/storyformatcollection.js @@ -0,0 +1,29 @@ +/** + A collection of story formats. + + @class StoryFormatCollection + @extends Backbone.Collection +**/ + +'use strict'; + +var StoryFormatCollection = Backbone.Collection.extend( +{ + model: StoryFormat, + localStorage: new Backbone.LocalStorage('twine-storyformats') +}); + +/** + Returns a collection of all story formats saved. + + @method all + @return {StoryFormatCollection} a collection of all story formats + @static +**/ + +StoryFormatCollection.all = function() +{ + var result = new StoryFormatCollection(); + result.fetch(); + return result; +}; diff --git a/js/eventedlocalstorage.js b/js/eventedlocalstorage.js new file mode 100644 index 000000000..154011a8b --- /dev/null +++ b/js/eventedlocalstorage.js @@ -0,0 +1,32 @@ +/** + A thin wrapper over Backbone.LocalStorage that emits an event after + a model is successfully saved. + + @class EventedLocalStorage +**/ + +'use strict'; + +function EventedLocalStorage (name, serializer) +{ + return Backbone.LocalStorage.call(this, name, serializer); +}; + +EventedLocalStorage.prototype = new Backbone.LocalStorage(); + +_.extend(EventedLocalStorage.prototype, +{ + update: function (model) + { + var result = Backbone.LocalStorage.prototype.update.call(this, model); + + /** + Triggered after a successful update. + + @event update + **/ + + model.trigger('update'); + return result; + } +}); diff --git a/js/models/apppref.js b/js/models/apppref.js new file mode 100644 index 000000000..40b7e496d --- /dev/null +++ b/js/models/apppref.js @@ -0,0 +1,43 @@ +/** + This is a data object to record an application-level preference. + As much as is feasible, we store preferences at the story level. + + @class AppPref + @extends Backbone.Model +**/ + +'use strict'; + +var AppPref = Backbone.Model.extend( +{ + defaults: + { + name: '', + value: null + } +}); + +/** + Locates an AppPref by name. If none exists and a default value is + specified, then a new model is saved with the default and returned. + If not, then this returns null. + + @method withName + @param {String} name name of the preference + @param defaultVal default value, optional + @static + @return {AppPref} pref with matching name +**/ + +AppPref.withName = function (name, defaultVal) +{ + var allPrefs = AppPrefCollection.all(); + var result = allPrefs.findWhere({ name: name }); + + if (result) + return result; + else if (defaultVal !== null) + return allPrefs.create({ name: name, value: defaultVal }); + else + return; +}; diff --git a/js/models/passage.js b/js/models/passage.js new file mode 100644 index 000000000..42a76f1ae --- /dev/null +++ b/js/models/passage.js @@ -0,0 +1,412 @@ +/** + A single node in a story. + + @class Passage + @extends Backbone.Model +**/ + +'use strict'; + +var Passage = Backbone.Model.extend( +{ + defaults: + { + story: -1, + top: 0, + left: 0, + name: 'Untitled Passage', + text: 'Double-click this passage to edit it.', + tags: [] + }, + + template: _.template('' + + '<%- text %>'), + + initialize: function() + { + this.on('sync', function() + { + // if any stories are using this passage's cid + // as their start passage, update with a real id + + _.invoke(StoryCollection.all().where({ startPassage: this.cid }), 'save', { startPassage: this.id }); + }, this); + + this.on('change', function() + { + // update parent's last update date + + this.fetchStory().save('lastUpdate', new Date()); + + // clamp our position to positive coordinates + + var attrs = this.changedAttributes(); + + if (attrs.top !== null && attrs.top < 0) + this.set('top', 0); + + if (attrs.left !== null && attrs.left < 0) + this.set('left', 0); + }, this); + }, + + /** + Fetches this passage's parent story. Beware: this model represents the + state of the story at the time of the call, and will not reflect future changes. + If the story does not exist, this returns null. + + @method fetchStory + @return {Story} Story model + **/ + + fetchStory: function() + { + return StoryCollection.all().find(function (s) + { + return s.id == this.get('story') || s.cid == this.get('story'); + }, this); + }, + + validate: function (attrs) + { + if (! attrs.name || attrs.name == '') + return Passage.NO_NAME_ERROR; + + if (this.fetchStory().fetchPassages().find(function (passage) + { + return (attrs.id != passage.id && + attrs.name.toLowerCase() == passage.get('name').toLowerCase()); + })) + return Passage.DUPE_NAME_ERROR.replace('%s', attrs.name); + }, + + /** + Returns a short excerpt of this passage's text, truncating with + ellipses if needed. + + @method excerpt + @return {String} Excerpt. + **/ + + excerpt: function() + { + var text = _.escape(this.get('text')); + + if (text.length > 100) + return text.substr(0, 99) + '…'; + else + return text; + }, + + /** + Returns an array of all links in this passage's text. + + @method links + @param {Boolean} internalOnly only return internal links? (i.e. not http://twinery.org) + @return {Array} Array of string names. + **/ + + links: function (internalOnly) + { + var matches = this.get('text').match(/\[\[.*?\]\]/g); + var found = {}; + var result = []; + + if (matches) + for (var i = 0; i < matches.length; i++) + { + /* + Arrow links + [[display text->link]] format + [[link<-display text]] format + This regex will interpret the rightmost '->' and the leftmost '<-' as the divider. + */ + var link = matches[i].replace(/\[\[(?:([^\]]*)\->|([^\]]*?)<\-)([^\]]*)\]\]/g, function(a,b,c,d) { + return c ? c : d; + }) + /* + TiddlyWiki links + [[display text|link]] format + */ + .replace(/\[\[([^\|\]]*?)\|([^\|\]]*)?\]\]/g, "$2") + /* + [[link]] format + */ + .replace(/\[\[|\]\]/g,""); + + // catch empty links, i.e. [[]] + + if (link != '' && found[link] === undefined) + { + result.push(link); + found[link] = true; + }; + }; + + if (internalOnly) + return _.filter(result, function (link) + { + return ! /^\w+:\/\/\/?\w/i.test(link); + }); + else + return result; + }, + + /** + Replaces all links with another one. + This is used most often to update links after a passage is renamed. + + @method replaceLink + @param {String} oldLink passage name to replace + @param {String} newLink passage name to replace with + **/ + + replaceLink: function (oldLink, newLink) + { + // TODO: add hook for story formats to be more sophisticated + + var simpleLinkRegexp = new RegExp('\\[\\[' + oldLink + '\\]\\]', 'g'); + var compoundLinkRegexp = new RegExp('\\[\\[(.*?)(\\||->)' + oldLink + '\\]\\]', 'g'); + var reverseLinkRegexp = new RegExp('\\[\\[' + oldLink + '<-(.*?)\\]\\]', 'g'); + var oldText = this.get('text'); + var text = oldText; + + text = text.replace(simpleLinkRegexp, '[[' + newLink + ']]'); + text = text.replace(compoundLinkRegexp, '[[$1$2' + newLink + ']]'); + text = text.replace(reverseLinkRegexp, '[[' + newLink + '<-$1]]'); + + if (text != oldText) + this.save({ text: text }); + }, + + /** + Checks whether the passage name or body matches a search string. + + @method matches + @param {RegExp} search regular expression to search for + @return {Boolean} whether a match is found + **/ + + matches: function (search) + { + return search.test(this.get('name')) || search.test(this.get('text')); + }, + + /** + Returns the total number of string matches in this passage for a regular expression. + + @method numMatches + @param {RegExp} search regular expression to search for + @param {Boolean} checkName include the passage name in the search? + @return {Number} number of matches; 0 if none + **/ + + numMatches: function (search, checkName) + { + var result = 0; + search = new RegExp(search.source, 'g' + (search.ignoreCase ? 'i' : '')); + var textMatches = this.get('text').match(search); + var nameMatches = 0; + + if (checkName) + nameMatches = this.get('name').match(search); + + result = (nameMatches ? nameMatches.length : 0) + (textMatches ? textMatches.length : 0); + return result; + }, + + /** + Performs a regexp replacement on this passage's text, and optionally its name. + + @method replace + @param {RegExp} search regular expression to replace + @param {String} replacement replacement string + @param {Boolean} inName perform this replacement in the passage name too? default false + **/ + + replace: function (search, replacement, inName) + { + if (inName) + this.save( + { + name: this.get('name').replace(search, replacement), + text: this.get('text').replace(search, replacement) + }); + else + this.save({ text: this.get('text').replace(search, replacement) }); + }, + + /** + Publishes the passage to an HTML fragment. + + @method publish + @param {Number} id numeric id to assign to the passage, *not* this one's DB id + @return {String} HTML fragment + **/ + + publish: function (id) + { + var tags = this.get('tags'); + + return this.template( + { + id: id, + name: this.get('name'), + left: this.get('left'), + top: this.get('top'), + text: this.get('text'), + tags: tags ? this.get('tags').join(' ') : '' + }); + }, + + /** + Checks whether this passage intersects another onscreen. + + @method intersects + @param {Passage} other Other passage to check. + @return {Boolean} Whether there is an intersection. + **/ + + intersects: function (other) + { + var pP = Passage.padding; + var pW = Passage.width; + var pH = Passage.height; + + return (this.get('left') - pP < other.get('left') + pW + pP && + this.get('left') + pW + pP > other.get('left') - pP && + this.get('top') - pP < other.get('top') + pH + pP && + this.get('top') + pH + pP > other.get('top') - pP); + }, + + /** + Moves another passage so that it no longer intersects this one. + This moves the passage along either the X or Y axis only -- + whichever direction will cause the passage to move the least. + + @method displace + @param {Passage} other Other passage to displace. + **/ + + displace: function (other) + { + var p = Passage.padding; + var tLeft = this.get('left') - p; + var tRight = tLeft + Passage.width + p * 2; + var tTop = this.get('top') - p; + var tBottom = tTop + Passage.height + p * 2; + var oLeft = other.get('left') - p; + var oRight = oLeft + Passage.width + p * 2; + var oTop = other.get('top') - p; + var oBottom = oTop + Passage.height + p * 2; + + // calculate overlap amounts + // this is cribbed from + // http://frey.co.nz/old/2007/11/area-of-two-rectangles-algorithm/ + + var xOverlap = Math.min(tRight, oRight) - Math.max(tLeft, oLeft); + var yOverlap = Math.min(tBottom, oBottom) - Math.max(tTop, oTop); + + // resolve horizontal overlap + + var xChange, yChange; + + if (xOverlap != 0) + { + var leftMove = (oLeft - tLeft) + Passage.width + p; + var rightMove = tRight - oLeft + p; + + if (leftMove < rightMove) + xChange = -leftMove; + else + xChange = rightMove; + }; + + // resolve vertical overlap + + if (yOverlap != 0) + { + var upMove = (oTop - tTop) + Passage.height + p; + var downMove = tBottom - oTop + p; + + if (upMove < downMove) + yChange = - upMove; + else + yChange = downMove; + }; + + // choose the option that moves the other passage the least + + if (Math.abs(xChange) > Math.abs(yChange)) + other.set('top', oTop + yChange); + else + other.set('left', oLeft + xChange); + } +}, +{ + /** + The largest width a passage will have onscreen, in pixels. + This is used by intersects() and displace(). + + @property {Number} width + @static + @final + **/ + + width: 100, + + /** + The largest height a passage will have onscreen, in pixels. + This is used by intersects() and displace(). + + @property {Number} height + @static + @final + **/ + height: 100, + + /** + The amount of padding around a passage that should still trigger + intersection. This is used by intersects() and displace(). + + @property {Number} padding + @static + @final + **/ + padding: 12.5, + + /** + Error message for when a passage has no name, or an empty string + for a name. + + @property {String} NO_NAME_ERROR + @static + @final + **/ + NO_NAME_ERROR: 'You must give this passage a name.', + + /** + Error message for when a passage with the same name is created. + %s is a placeholder for the passage's name. + + @property {String} DUPE_NAME_ERROR + @static + @final + **/ + DUPE_NAME_ERROR: 'There is already a passage named "%s." Please give this one a unique name.' +}); + +/** + Locates a passage by ID. If none exists, then this returns null. + + @method withId + @param {Number} id id of the passage + @static + @return {Passage} matching passage +**/ + +Passage.withId = function (id) +{ + return PassageCollection.all().findWhere({ id: id }); +}; diff --git a/js/models/story.js b/js/models/story.js new file mode 100644 index 000000000..2c93e5d5c --- /dev/null +++ b/js/models/story.js @@ -0,0 +1,200 @@ +/** + A story contains many passages, and has a name, stylesheet, script, zoom, + and last updated date. + + @class Story + @extends Backbone.Model +**/ + +'use strict'; + +var Story = Backbone.Model.extend( +{ + defaults: function() + { + return { + name: 'Untitled Story', + startPassage: -1, + zoom: 1, + snapToGrid: false, + stylesheet: '', + script: '', + storyFormat: AppPref.withName('defaultFormat').get('value') || 'Harlowe', + lastUpdate: new Date(), + ifid: UUID().toUpperCase() + }; + }, + + template: _.template('' + + '' + + '' + + '<%= passageData %>'), + + initialize: function() + { + this.on('destroy', function() + { + // delete all child passages + + var passages = this.fetchPassages(); + + while (passages.length > 0) + passages.at(0).destroy(); + }, this); + + this.on('sync', function() + { + // update any passages using our cid as link + + _.invoke(PassageCollection.all().where({ story: this.cid }), 'save', { story: this.id }); + }, this); + + // any time we change, update our last updated date + // we *shouldn't* save ourselves here, since it may not + // be appropriate yet + + this.on('change', function() + { + // if we're manually setting our last update, don't override that + + if (this.changedAttributes().lastUpdate === undefined) + this.set('lastUpdate', new Date()); + }, this); + }, + + /** + Fetches a PassageCollection of all passages currently linked to this + story. Beware: this collection represents the passages currently in existence + at the time of the call, and will not reflect future changes. If there are + no passages for this story, this returns an empty collection. + + @method fetchPassages + @return {PassageCollection} collection of matching passages + **/ + + fetchPassages: function() + { + var passages = PassageCollection.all(); + passages.reset(passages.filter(function (p) + { + return p.get('story') == this.id || p.get('story') == this.cid; + }, this)); + + return passages; + }, + + /** + Publishes a story to an HTML fragment, e.g. a collection of DOM elements. It's up to a + StoryFormat to create a full-fledged HTML document from this. + + @method publish + @param {StoryFormat} format The story format to use, defaults to + @param {Array} options A list of options to pass to the format, optional + @param {Number} startId passage database ID to start with, overriding the model; optional + @param {Boolean} startOptional If falsy, then an error is reported when no start passage has been set; optional + @return {String} HTML fragment + **/ + + publish: function (options, startId, startOptional) + { + var passageData = ''; + var startDbId = startId || this.get('startPassage'); + var passages = this.fetchPassages(); + + // verify that the start passage exists + + if (! startOptional) + { + if (! startDbId) + throw new Error("There is no starting point set for this story."); + + if (! passages.findWhere({ id: startDbId })) + throw new Error("The passage set as starting point for this story does not exist."); + }; + + passages.each(function (p, index) + { + passageData += p.publish(index + 1); + + if (p.id == startDbId) + startId = index + 1; + }); + + return this.template( + { + storyName: this.get('name'), + startNode: startId || '', + appName: window.app.name, + appVersion: window.app.version, + passageData: passageData, + stylesheet: this.get('stylesheet'), + script: this.get('script'), + options: (options) ? options.join(' ') : null, + storyFormat: this.get('storyFormat'), + ifid: this.get('ifid') + }); + }, + + /** + Duplicates this model and its passages. + + @method duplicate + @param {String} name new name of the story + @return {Story} new Story model + **/ + + duplicate: function (name) + { + var storyC = new StoryCollection(); + var passageC = new PassageCollection(); + + var dupeStory = this.clone(); + dupeStory.unset('id'); + dupeStory.collection = storyC; + dupeStory.save({ name: name }, { wait: true }); + + var startPassageId = this.get('startPassage'); + var newStart; + + this.fetchPassages().each(function (orig) + { + var dupePassage = orig.clone(); + dupePassage.unset('id'); + dupePassage.collection = passageC; + + // we do this in two steps to avoid an ugly bug + // with passage validation; it needs to verify + // that our name isn't duplicated, but it can + // only do this by looking up the story with its ID, + // not by consulting the attrs hash passed to it + + dupePassage.set('story', dupeStory.id); + dupePassage.save(); + + if (orig.id == startPassageId) + newStart = dupePassage; + }); + + if (newStart) + dupeStory.save({ startPassage: newStart.id }); + + return dupeStory; + } +}); + +/** + Locates a story by ID. If none exists, then this returns null. + + @method withId + @param {Number} id id of the story + @static + @return {Passage} matching story +**/ + +Story.withId = function (id) +{ + return StoryCollection.all().findWhere({ id: id }); +}; diff --git a/js/models/storyformat.js b/js/models/storyformat.js new file mode 100644 index 000000000..2416d5cb7 --- /dev/null +++ b/js/models/storyformat.js @@ -0,0 +1,229 @@ +/** + A story format transforms a story's HTML output into a full-fledged + HTML page. It contains placeholders, by convention named like UPPERCASE_CONSTANTS, + that the story's published output is plugged into. Although this has a traditional + numeric id, a story format's true primary key is its name. This is so that if + stories are traded among users, links between stories and formats will be retained. + + This model is just a pointer to data that is loaded via JSONP. + + @class StoryFormat + @extends Backbone.Model +**/ + +'use strict'; + +var StoryFormat = Backbone.Model.extend( +{ + /** + Remembers whether the format has been loaded yet. + + @property loaded + @type Boolean + **/ + loaded: false, + + /** + Properties set by the external format file-- notably, + the format source. To load these, call load(). + + @property properties + @type Object + **/ + properties: {}, + + defaults: + { + name: 'Untitled Story Format', + url: '', + userAdded: true, + }, + + /** + Loads the actual story format via a JSONP request. After this + call, its data is available under the properties property. + + Because the JSONP request is asynchronous, properties will almost + certainly not be available immediately after this returns. Pass a + callback to be guaranteed when properties are available. + + If the format has been previously loaded, then this will have no effect, + and the callback will be called immediately. + + @method load + @param {Function} callback Function to call when loading completes; if it did + not succeed, the function will be passed an Error object. + If none is specified, an error is raised directly. + **/ + + load: function (callback) + { + if (this.loaded) + { + if (callback) + callback(); + + return; + }; + + var prevStoryFormatFn = window.storyFormat || null; + + window.storyFormat = function (properties) + { + this.properties = properties; + this.loaded = true; + + // The lexer is a stringified JS function. When eval()ed, it adds + // a TwineMarkup object to this, and its lex() method takes + // string source and returns a syntax tree. + + if (this.properties.setup) + { + this.properties.setup.call(this); + } + + window.storyFormat = prevStoryFormatFn; + + if (callback) + callback(); + }.bind(this); + + // We have to do a song and dance here + // because we can't use an XHR if we're running locally... + // but browsers will allow a '); + $('body').append(loader); + + loader.on('load', function() + { + // if our loaded property is not set, + // then something went wrong + + if (! this.loaded) + { + var err = new Error('Story format source did not call window.storyFormat()'); + + if (callback) + callback(err); + else + throw err; + }; + + // regardless, remove the loader + + loader.remove(); + }.bind(this)) + .on('error', function() + { + var err = new Error('Could not load story format source'); + + if (callback) + callback(err); + else + throw err; + + loader.remove(); + }.bind(this)); + + // add cache-busting + + loader.attr('src', this.get('url') + '?' + new Date().getTime()); + + // in case the error event doesn't fire on a loading error, + // we set a timeout (10 seconds) that removes the loader + // element and triggers the failure handler + + window.setTimeout(function() + { + if (loader.parent().length > 0) + { + var err = new Error('Could not load story format source'); + + if (callback) + callback(err); + else + throw err; + + loader.remove(); + }; + + }.bind(this), 10000); + }, + + /** + Publishes a story with this story format. This method is asynchronous. + + @method publish + @param {Story} story Story to publish. + @param {Array} options Array of options to pass to the story, optional + @param {Number} startId Passage database ID to start with, overriding the model; optional + @param {Function} callback Function called with the resulting HTML, signature callback(err, result) + **/ + + publish: function (story, options, startId, callback) + { + this.load(function (err) + { + if (err) + { + callback(err); + return; + }; + + try + { + var output = this.properties.source; + + // use function replacements to protect the data from accidental + // interactions with the special string replacement patterns + + // builtin placeholders + + output = output.replace(/{{STORY_NAME}}/g, function () + { + return _.escape(story.get('name')); + }); + output = output.replace(/{{STORY_DATA}}/g, function () + { + return story.publish(options, startId); + }); + + // user-defined placeholders + + _.each(this.get('placeholders'), function (p) + { + var value = story.get(p.name); + + if (value !== null) + output = output.replace(p.name, function () + { + return value; + }); + }); + + callback(null, output); + } + catch (e) + { + callback(e); + }; + }.bind(this)); + } +}); + +/** + Locates a StoryFormat by name. If none exists, then this returns null. + + @method withName + @param {String} name name of the story format + @static + @return {StoryFormat} matching story format + **/ + +StoryFormat.withName = function (name) +{ + return StoryFormatCollection.all().findWhere({ name: name }); +}; diff --git a/js/nwui.js b/js/nwui.js new file mode 100644 index 000000000..4e0df4c41 --- /dev/null +++ b/js/nwui.js @@ -0,0 +1,535 @@ +/** + A singleton that adapts the Twine interface for NW.js, + adding menus and syncing changes to the filesystem. + This takes the approach of patching existing classes + instead of creating a separate set of classes just for + NW.js, to try to keep things as similar as possible. + + @class nwui +**/ + +'use strict'; + +var nwui = +{ + /** + Whether Twine is running in a NW.js environment. + @property active + @static + @const + **/ + + active: + (typeof process !== "undefined" && + typeof require !== "undefined" && + typeof require('nw.gui') !== 'undefined'), + + /** + Whether changes to a story should be saved to the filesystem. + This is mainly so that internal nwui methods can do their work + without tripping over each other. + @property syncFs + @static + **/ + + syncFs: true, + + /** + While the app is open, we lock story files in the filesystem so + that the user can't make changes outside of Twine. This indexes + the locks we maintain on these files so we can lift one when + deleting a file. + @property fileLocks + @static + **/ + + fileLocks: {}, + + /** + Performs one-time initialization, e.g. setting up menus. + This should be called as early in the app initialization process + as possible. + + @method init + **/ + + init: function() + { + /** + An instance of the nw.gui module, for manipulating the native UI. + @property gui + **/ + + nwui.gui = require('nw.gui'); + + var win = nwui.gui.Window.get(); + var nativeMenuBar = new nwui.gui.Menu({ type: 'menubar' }); + var mainMenu; + + if (process.platform == 'darwin') + { + // create Mac menus + + nativeMenuBar.createMacBuiltin(window.app.name); + mainMenu = _.findWhere(nativeMenuBar.items, { label: '' }); + + // add fullscreen item + // only on OS X for now -- hard to reverse on other platforms + // if you don't remember the keyboard shortcut + + mainMenu.submenu.insert(new nwui.gui.MenuItem({ + label: 'Toggle Fullscreen', + key: 'f', + modifiers: 'cmd-shift', + click: function() + { + nwui.gui.Window.get().toggleFullscreen(); + } + }), 0); + } + else + { + // create a basic menu on other platforms + + mainMenu = new nwui.gui.MenuItem({ + label: window.app.name, + submenu: new nwui.gui.Menu() + }); + + mainMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Quit', + key: 'q', + modifiers: 'ctrl', + click: function() + { + nwui.gui.App.closeAllWindows(); + } + })); + + mainMenu.submenu.insert(new nwui.gui.MenuItem({ type: 'separator' }), 0); + nativeMenuBar.append(mainMenu); + + // and a stand-in Edit menu + + var editMenu = new nwui.gui.MenuItem({ + label: 'Edit', + submenu: new nwui.gui.Menu() + }); + + editMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Undo', + key: 'z', + modifiers: 'ctrl', + click: function() + { + document.execCommand('undo'); + } + })); + + editMenu.submenu.append(new nwui.gui.MenuItem({ type: 'separator' })); + + editMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Cut', + key: 'x', + modifiers: 'ctrl', + click: function() + { + document.execCommand('cut'); + } + })); + + editMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Copy', + key: 'c', + modifiers: 'ctrl', + click: function() + { + document.execCommand('copy'); + } + })); + + editMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Paste', + key: 'v', + modifiers: 'ctrl', + click: function() + { + document.execCommand('paste'); + } + })); + + editMenu.submenu.append(new nwui.gui.MenuItem({ + label: 'Delete', + click: function() + { + document.execCommand('delete'); + } + })); + + nativeMenuBar.append(editMenu); + }; + + // add item to show story library + + /** + An instance of the node path module. + @property path + **/ + + nwui.path = require('path'); + + mainMenu.submenu.insert(new nwui.gui.MenuItem({ + label: 'Show Library', + click: function() + { + nwui.gui.Shell.openItem(nwui.path.resolve(nwui.filePath.replace(/\//g, nwui.path.sep))); + } + }), 0); + + win.menu = nativeMenuBar; + + // show window once we're finished loading + + window.onload = function() + { + win.show(); + win.focus(); + _.delay(function() + { + $('button').blur(); + }); + }; + + // shift-ctrl-alt-D shortcut for displaying dev tools + + $('body').on('keyup', function (e) + { + if (e.which == 68 && e.shiftKey && e.altKey && e.ctrlKey) + win.showDevTools(); + }); + + // create ~/Documents/Twine if it doesn't exist + + /** + An instance of the fs modules, for working with the native filesystem. + @property fs + **/ + + nwui.fs = require('fs'); + + /** + The path that stories will be saved to in the filesystem. + @property filePath + **/ + + var homePath = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; + + // if the user doesn't have a Documents folder, + // check for "My Documents" instead (thanks Windows) + + var docPath = homePath + '/Documents'; + + if (! nwui.fs.existsSync(docPath)) + { + if (nwui.fs.existsSync(homePath + '/My\\ Documents')) + docPath = homePath + '/My\\ Documents'; + else + nwui.fs.mkdirSync(docPath); + }; + + nwui.filePath = docPath + '/Twine/Stories/'; + + if (! nwui.fs.existsSync(nwui.filePath)) + { + var twinePath = docPath + '/Twine'; + + if (! nwui.fs.existsSync(twinePath)) + nwui.fs.mkdirSync(twinePath); + + nwui.fs.mkdirSync(nwui.filePath); + }; + + // do a file sync if we're just starting up + // we have to stuff this in the global scope; + // otherwise, each new window will think it's starting afresh + // and screw up our model IDs + + if (! global.nwuiFirstRun) + { + nwui.syncStoryFiles(); + nwui.lockStoryDirectory(); + global.nwuiFirstRun = true; + }; + + // open external links outside the app + + $('body').on('click', 'a', function (e) + { + var url = $(this).attr('href'); + + if (url.match(/^https?:/)) + { + nwui.gui.Shell.openExternal(url); + e.preventDefault(); + }; + }); + + // when quitting, unlock the story directory + + process.on('exit', function() + { + nwui.unlockStoryDirectory(); + }); + + // monkey patch Story to save to a file + // under ~/Documents/Twine whenever the model changes, + // or delete it when it is destroyed + + var oldStoryInit = Story.prototype.initialize; + + Story.prototype.initialize = function() + { + oldStoryInit.call(this); + + this.on('change', _.debounce(function() + { + // if the only thing that is changing is last modified date, + // then skip it + + if (! _.some(_.keys(this.changedAttributes), function (key) + { + return (key != 'lastUpdated'); + })) + return; + + // if we aren't syncing changes or the story has no passages, + // give up early + + if (! nwui.syncFs || this.fetchPassages().length == 0) + return; + + nwui.saveStoryFile(this); + }, 100), this); + + this.on('destroy', function() + { + if (! nwui.syncFs) + return; + + nwui.deleteStoryFile(this); + }, this); + }; + + // monkey patch Passage to save its parent story whenever + // it is changed or destroyed + + var oldPassageInit = Passage.prototype.initialize; + + Passage.prototype.initialize = function() + { + oldPassageInit.call(this); + + this.on('change destroy', _.debounce(function() + { + if (! nwui.syncFs) + return; + + // if we have no parent, skip it + // (this happens during an import, for example) + + var parent = this.fetchStory(); + + if (parent) + nwui.saveStoryFile(parent); + }, 100), this); + }; + + // monkey patch StorageQuota to hide itself, since we + // don't have to sweat quota ourselves + + StoryListView.StorageQuota.prototype.render = function() + { + this.$el.css('display', 'none'); + }; + + // monkey patch StoryListView to open the wiki in the user's browser + + StoryListView.prototype.events['click .showHelp'] = function() + { + nwui.gui.Shell.openExternal('http://twinery.org/2guide'); + }; + + // monkey patch WelcomeView to display a different message + // about saving + + var oldWelcomeViewRender = WelcomeView.prototype.onRender; + + WelcomeView.prototype.onRender = function() + { + var saveHtml = _.template($('#templates .welcomeViewNw').html())(); + this.$('.save').html(saveHtml); + oldWelcomeViewRender.call(this); + }; + }, + + /** + Returns a filename for a story model that's guaranteed to be + safe across all platforms. For this, we use POSIX's definition + (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276) + with the addition of spaces, for legibility. + + @method storyFileName + @param {Story} story Story model to create filename for + **/ + + storyFileName: function (story) + { + return story.get('name').replace(/[^\w\. -]/g, '_') + '.html'; + }, + + /** + Saves a story model to the file system. If a problem occurs, + then a notification is shown to the user. + + @method saveStoryFile + @param {Story} story Story model to save + **/ + + saveStoryFile: function (story) + { + try + { + nwui.unlockStoryDirectory(); + var fd = nwui.fs.openSync(nwui.filePath + nwui.storyFileName(story), 'w'); + nwui.fs.writeSync(fd, story.publish()); + nwui.fs.closeSync(fd); + } + catch (e) + { + ui.notify('An error occurred while saving your story (' + e.message + ').', 'danger'); + throw e; + } + finally + { + nwui.lockStoryDirectory(); + }; + }, + + /** + Deletes a story file from the file system. If a problem occurs, + then a notification is shown to the user. + + @method deleteStoryFile + @param {Story} story Story model to delete + **/ + + deleteStoryFile: function (story) + { + try + { + nwui.unlockStoryDirectory(); + nwui.fs.unlinkSync(nwui.filePath + nwui.storyFileName(story)); + } + catch (e) + { + ui.notify('An error occurred while deleting your story (' + e.message + ').', 'danger'); + } + finally + { + nwui.lockStoryDirectory(); + }; + }, + + /** + Syncs local storage with the file system, obliterating + any stories that happen to be saved to local storage only. + + @method syncStoryFiles + **/ + + syncStoryFiles: function() + { + nwui.syncFs = false; + + // clear all existing stories and passages + + var allStories = StoryCollection.all(); + + while (allStories.length > 0) + allStories.at(0).destroy(); + + // read from files + + nwui.unlockStoryDirectory(); + var fileStories = nwui.fs.readdirSync(nwui.filePath); + + _.each(fileStories, function (filename) + { + if (filename.match(/\.html$/)) + { + var stats = nwui.fs.statSync(nwui.filePath + filename); + window.app.importFile(nwui.fs.readFileSync(nwui.filePath + filename, { encoding: 'utf-8' }), + new Date(Date.parse(stats.mtime))); + }; + }); + + nwui.unlockStoryDirectory(); + nwui.syncFs = true; + }, + + /** + Locks the story directory to prevent the user from changing it + outside of Twine. The init() method must be called first. + + @method lockStoryDirectory + **/ + + lockStoryDirectory: function() + { + try + { + if (process.platform == 'win32') + _.each(nwui.fs.readdirSync(nwui.filePath), function (filename) + { + nwui.fs.chmodSync(nwui.filePath + filename, 292); // a-w, 0444 + }); + else + { + var stat = nwui.fs.statSync(nwui.filePath); + nwui.fs.chmodSync(nwui.filePath, stat.mode ^ 128); // u-w + }; + } + catch (e) + { + ui.notify('An error occurred while locking your library (' + e.message + ').', 'danger'); + }; + }, + + /** + Unlocks the story directory. The init() method must be called + first. + + @method lockStoryDirectory + **/ + + unlockStoryDirectory: function() + { + try + { + if (process.platform == 'win32') + _.each(nwui.fs.readdirSync(nwui.filePath), function (filename) + { + nwui.fs.chmodSync(nwui.filePath + filename, 438); // a+w, 0666 + }); + else + { + var stat = nwui.fs.statSync(nwui.filePath); + nwui.fs.chmodSync(nwui.filePath, stat.mode | 128); // u+w + }; + } + catch (e) + { + ui.notify('An error occurred while unlocking your library (' + e.message + ').', 'danger'); + }; + }, +}; diff --git a/js/router.js b/js/router.js new file mode 100644 index 000000000..af27e9f64 --- /dev/null +++ b/js/router.js @@ -0,0 +1,89 @@ +/** + Handles URL-based routes. These right now are: + + * `#stories`: Show a list of all stories. + * `#stories/[id]`: Edit a particular story. + * `#stories/[id]/play`: Plays a particular story. + * `#stories/[id]/proof`: Produces a proofing copy of a particular story. + + If a route isn't recognized, this defaults to a list of all stories. + + @class TwineRouter + @extends Backbone.Router +**/ + +'use strict'; + +var TwineRouter = Backbone.Router.extend( +{ + welcome: function() + { + window.app.mainRegion.show(new WelcomeView()); + }, + + listStories: function() + { + // list of all stories + + window.app.mainRegion.show(new StoryListView({ collection: StoryCollection.all() })); + }, + + editStory: function (id) + { + // edit a specific story + + window.app.mainRegion.show(new StoryEditView({ model: Story.withId(id) })); + }, + + playStory: function (id) + { + // play a story + + window.app.publishStory(Story.withId(id)); + }, + + testStory: function (storyId, passageId) + { + // test a story from a particular passage + + window.app.publishStory(Story.withId(storyId), null, + { + formatOptions: ['debug'], + startPassageId: passageId + }); + }, + + proofStory: function (id) + { + // proof a story + + var story = Story.withId(id); + var format = StoryFormat.withName(AppPref.withName('proofingFormat').get('value')); + + window.app.publishStory(story, null, { format: format }); + }, + + startup: function() + { + // default route -- show welcome if the user hasn't already seen it + + var welcomePref = AppPref.withName('welcomeSeen', false); + + if (welcomePref.get('value') === true) + window.location.hash = '#stories'; + else + window.location.hash = '#welcome'; + }, + + routes: + { + 'welcome': 'welcome', + 'stories': 'listStories', + 'stories/:id': 'editStory', + 'stories/:id/play': 'playStory', + 'stories/:id/test': 'testStory', + 'stories/:storyId/test/:passageId': 'testStory', + 'stories/:id/proof': 'proofStory', + '*path': 'startup' + } +}); diff --git a/js/transregion.js b/js/transregion.js new file mode 100644 index 000000000..3a39501c1 --- /dev/null +++ b/js/transregion.js @@ -0,0 +1,34 @@ +/** + This passes information about the previous view to the current one, + to help with animating transitions between them. + + @class TransRegion + @extends Backbone.Region +**/ + +'use strict'; + +var TransRegion = Backbone.Marionette.Region.extend( +{ + initialize: function() + { + this.on('before:swapOut', function (view) + { + this.prevView = view; + + if (view instanceof StoryEditView) + this.prevId = view.model.get('id'); + }.bind(this)); + + this.on('swap', function (view) + { + // tell a StoryListView where we were coming from + + if (view instanceof StoryListView && this.prevView instanceof StoryEditView) + { + view.appearFast = true; + view.previouslyEditing = this.prevId; + }; + }.bind(this)); + } +}); diff --git a/js/ui.js b/js/ui.js new file mode 100644 index 000000000..ab69f90aa --- /dev/null +++ b/js/ui.js @@ -0,0 +1,578 @@ +/** + A collection of utility functions related to basic UI tasks such as + modal dialogs and notifications. + + @class ui + @static +**/ + +'use strict'; + +var ui = +{ + /** + Performs one-time startup tasks. + + @method initBody + **/ + + initBody: function() + { + if (! $('body').data('uiInited')) + { + var $b = $('body'); + $b.data('uiInited', true); + + // enable FastClick, which cuts input delays on mobile + + FastClick.attach(document.body); + + // note iOS for some custom styles + + if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) + $b.addClass('iOS'); + + // note Safari for some functionality + // Chrome includes Safari in its user agent + + if (navigator.userAgent.indexOf('Safari') != -1 && + navigator.userAgent.indexOf('Chrome') == -1) + $b.addClass('safari'); + + // modals only allow Escape keypresses out, which close the modal + + $b.on('keydown, keyup', '.modal', function (e) + { + if (e.keyCode != 27) + e.stopPropagation(); + }); + + // create modal overlay element as needed + // this blocks mouse events + + if ($('#modalOverlay').length == 0) + { + var overlay = $('

'); + overlay.on('mousedown, mouseup', function (e) + { + e.stopPropagation(); + }); + $b.append(overlay); + }; + + // set up notifications + + if ($('#notifications').length == 0) + $b.append('
'); + + // polyfill browser animation-related events + + $b.on('webkitAnimationEnd oanimationend msAnimationEnd', function (e) + { + e.type = 'animationend'; + $(e.target).trigger(e); + }); + + // click handlers for showing and hiding modals + + $b.on('click', '[data-modal-show]', function (e) + { + $($(this).data('modal-show')).data('modal').trigger('show'); + e.preventDefault(); + }); + + $b.on('click', '[data-modal-hide]', function (e) + { + var modal = $(this).data('modal-hide'); + + // special 'this' selector for hiding modals chooses + // the closest up upward in the DOM tree + + if (modal == 'this') + $(this).closest('.modal').data('modal').trigger('hide'); + else + $(modal).data('modal').trigger('hide'); + }); + + // function to do the actual work of showing/hiding bubbles + // syntax is $(...).bubble('show' | 'hide' | 'toggle') + + $.fn.bubble = function (action) + { + var $t = $(this); + var $cont = $t.closest('.bubbleContainer'); + var $bubble = $cont.find('.bubble'); + + switch (action) + { + case 'show': + // ignore repeated show calls + + if ($cont.hasClass('active')) + return this; + + // hide any existing bubble and tooltips + + $('.active[data-bubble]').bubble('hide'); + + if ($t.attr('title')) + $t.powerTip('hide'); + + // show this one + + $t.addClass('active'); + $cont.addClass('active'); + $bubble.css( + { + display: 'block', + height: $bubble.height() + }).addClass('fadeIn fast'); + $bubble.trigger('bubbleshow'); + break; + + case 'hide': + // ignore repeated hide calls + + if (! $cont.hasClass('active')) + return this; + + // deactivate any toggle buttons + + $cont.find('button[data-bubble="toggle"]').removeClass('active'); + $cont.removeClass('active'); + + // hide the bubble + + $bubble.addClass('fadeOut fast').one('animationend', function() + { + $bubble.removeClass('fadeIn fadeOut').css('display', 'none'); + }); + $bubble.trigger('bubblehide'); + break; + + case 'toggle': + if ($bubble.css('display') == 'block') + $t.bubble('hide'); + else + $t.bubble('show'); + break; + + default: + throw new Error("Don't know how to do bubble action " + action); + }; + + return this; + }; + + $b.on('click', function (e) + { + if ($(e.target).closest('.bubbleContainer').hasClass('active')) + return; + + $('.active[data-bubble]').bubble('hide'); + }); + + // click handler for showing and hiding bubbles + + $b.on('click', '.bubbleContainer [data-bubble]', function() + { + var $t = $(this); + var bubbleAction = $t.data('bubble'); + $t.bubble(bubbleAction); + + if (bubbleAction == 'show' || bubbleAction == 'toggle') + $.powerTip.hide(); + }); + + // function to do the actual work of showing/hiding collapsible elements + // syntax is $(...).collapse('show' | 'hide' | 'toggle') + + $.fn.collapse = function (action) + { + var $t = $(this); + var $cont = $t.closest('.collapseContainer'); + + switch (action) + { + case 'show': + $cont.addClass('revealed').find('.collapse').slideDown(); + break; + + case 'hide': + $cont.removeClass('revealed').find('.collapse').slideUp(); + break; + + case 'toggle': + if ($cont.hasClass('revealed')) + $t.collapse('hide'); + else + $t.collapse('show'); + break; + + default: + throw new Error("Don't know how to do collapse action " + action); + }; + + return this; + }; + + // click handler for showing and hiding collapsed elements + + $b.on('click', '.collapseContainer [data-collapse]', function() + { + var $t = $(this); + $t.collapse($t.data('collapse')); + }); + + // function to do the work of showing a tab + // this must be called on the button triggering a tab + + $.fn.tab = function() + { + var $t = $(this); + + // update appearance + + $t.addClass('active'); + $t.closest('.tabs').find('button').not($t).removeClass('active'); + + // show matching content + + $($t.data('content')).show().siblings().hide(); + + return this; + }; + + // click handler for tabs + + $b.on('click', '.tabs button', function() { $(this).tab(); }); + + // set up notifications + + $b.on('click', '#notifications .close', function() + { + var notification = $(this).closest('div'); + notification.addClass('fadeOut'); + notification.one('animationend', function() + { + $(this).remove(); + }); + }); + + }; + }, + + /** + Performs startup tasks on a DOM element. This must be called on + any element that's dynamically added to the document. Note that + this defers execution until the current call stack clears so that + the DOM is completely ready. + + @method initEl + @param {DOMElement} el + **/ + + initEl: function (el) + { + el = $(el); + + // we defer execution so that the DOM is ready to be inspected + + _.defer(function() + { + // activate tooltips + + el.find('button[title], a[title]').each(function() + { + $(this).powerTip({ placement: $(this).attr('data-tooltip-dir') || 's' }); + }); + + // set up modals + + el.find('.modal').each(function() + { + var $t = $(this); + + if ($t.data('modal')) + return; + + $t.data('modal', $t.omniWindow( + { + callbacks: + { + beforeShow: function (els, internalCallback) + { + $('body').addClass('modalOpen'); + els.modal.trigger('modalshow'); + + // ugly hack to fix weirdo scrolling on iOS when the keyboard + // comes up while editing a text field in a modal window + // http://www.abeautifulsite.net/bootstrap-3-modals-and-the-ios-virtual-keyboard/ + + if ($('body').hasClass('iOS')) + { + els.modal.css( + { + position: 'absolute', + top: $(window).scrollTop() + 'px' + }); + }; + + return internalCallback(els); + }, + + afterShow: function (els, internalCallback) + { + els.modal.trigger('modalshown'); + _.defer(function() { ui.initEl(els.modal); }); + return internalCallback(els); + }, + + beforeHide: function (els, internalCallback) + { + // allow the modal to block this event via a callback + + if (els.modal.data('blockModalHide') && + els.modal.data('blockModalHide')() === true) + return false; + + $('body').removeClass('modalOpen'); + els.modal.trigger('modalhide'); + return internalCallback(els); + }, + + afterHide: function (els, internalCallback) + { + els.modal.trigger('modalhidden'); + return internalCallback(els); + } + }, + + overlay: + { + selector: '#modalOverlay', + hideClass: 'hide', + animations: + { + show: function (els, internalCallback) + { + els.overlay.addClass('fadeIn'); + els.modal.addClass('appear'); + internalCallback(els); + }, + + hide: function (els, internalCallback) + { + els.overlay.removeClass('fadeIn').addClass('fadeOut'); + els.modal.removeClass('appear').addClass('fadeOut'); + els.overlay.one('animationend', function() + { + els.overlay.removeClass('fadeOut'); + els.modal.removeClass('fadeOut').addClass('hide'); + internalCallback(els); + }); + + }, + } + }, + + modal: + { + hideClass: 'hide' + } + })); + }); + + // vertically center bubbles that are displayed to the side + + el.find('.bubble.left, .bubble.right').each(function() + { + $(this).css('margin-top', 0 - $(this).outerHeight() / 2); + }); + + // push bubbles pointing down above their sources + + el.find('.bubble.down').each(function() + { + $(this).css('top', 0 - $(this).outerHeight()); + }); + + // activate the first tab and content area + + el.find('.tabs button').first().addClass('active'); + el.find('.tabContent > div:gt(0)').hide(); + }); + }, + + /** + Shows a notification at the top of the browser window. + + @method notify + @param {String} message HTML source of the message to display + @param {String} className CSS class to apply to the notification + **/ + + notify: function (message, className) + { + var notification = $(ui.notifyTemplate({ message: message, className: className })); + $('#notifications').append(notification); + + if (className != 'danger') + window.setTimeout(function() + { + $(this).addClass('fadeOut') + .one('animationend', function() + { + $(this).remove(); + }); + }.bind(notification), 3000); + }, + + /** + The Underscore template used to display notifications. + + @property notifyTemplate + @type string + @static + **/ + + notifyTemplate: _.template('
' + + '' + + '<%= message %>
'), + + /** + Shows a modal confirmation dialog, with one button (to continue the action) + and a Cancel button. + + @method confirm + @param {String} message HTML source of the message + @param {String} buttonLabel HTML label for the button + @param {Function} callback function to call if the user continues the button + @param {Object} options Object with optional parameters: + modalClass (CSS class to apply to the modal), + buttonClass (CSS class to apply to the action button) + **/ + + confirm: function (message, buttonLabel, callback, options) + { + options = options || {}; + + var modalContainer = $(ui.confirmTemplate( + { + message: message, + buttonLabel: buttonLabel, + modalClass: options.modalClass || '', + buttonClass: options.buttonClass || '' + })); + + var modal = modalContainer.find('.modal'); + + modal.on('click', 'button', function() + { + if ($(this).data('action') == 'yes' && callback) + callback(); + + modal.data('modal').trigger('hide'); + }); + + $('body').append(modalContainer); + ui.initEl(modalContainer); + + // initEl defers execution, so we have to defer this too + + _.defer(function() + { + modal.data('modal').trigger('show'); + }); + }, + + /** + The Underscore template used to display confirmation modals. + + @property confirmTemplate + @type string + @static + **/ + + confirmTemplate: _.template('
'), + + /** + Shows a modal dialog asking for the user to enter some text, with one + button (to continue the action) and a Cancel button. + + @method confirm + @param {String} message HTML source of the message + @param {String} buttonLabel HTML label for the button + @param {Function} callback function to call if the user continues the button; + passed the entered value + @param {Object} options Object with optional parameters: + defaultText (default text for the input), + modalClass (CSS class to apply to the modal), + buttonClass (CSS class to apply to the action button) + **/ + + prompt: function (message, buttonLabel, callback, options) + { + options = options || {}; + options.defaultText = options.defaultText || ''; + + var modalContainer = $(ui.promptTemplate( + { + message: message, + defaultText: options.defaultText, + buttonLabel: buttonLabel, + modalClass: options.modalClass || '', + buttonClass: options.buttonClass || '' + })); + + var modal = modalContainer.find('.modal'); + + modal.on('click', 'button', function() + { + if ($(this).data('action') == 'yes' && callback) + callback(modal.find('.prompt input[type="text"]').val()); + + modal.data('modal').trigger('hide'); + }); + + modal.on('submit', 'form', function() + { + modal.find('button[data-action="yes"]').click(); + }); + + $('body').append(modalContainer); + ui.initEl(modalContainer); + + // initEl defers execution, so we have to defer this too + + _.defer(function() + { + modal.data('modal').trigger('show'); + modal.find('input[type="text"]').focus()[0].setSelectionRange(0, options.defaultText.length); + }); + }, + + /** + The Underscore template used to display prompt modals. + + @property promptTemplate + @type string + @static + **/ + + promptTemplate: _.template('
'), +}; + +$(document).ready(ui.initBody); diff --git a/js/views/storyeditview/editors/passageeditor.js b/js/views/storyeditview/editors/passageeditor.js new file mode 100644 index 000000000..f06ebb28a --- /dev/null +++ b/js/views/storyeditview/editors/passageeditor.js @@ -0,0 +1,380 @@ +/** + Manages the passage editor modal of a StoryEditView. + + @class StoryEditView.PassageEditor + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.PassageEditor = Backbone.View.extend( +{ + tagTemplate: + '<%- name %>', + + initialize: function (options) + { + /** + A reference to the DOM element containing all tags. + + @property tagContainer + **/ + + this.tagContainer = this.$('.tags'); + + /** + An Underscore template for rendering individual tags. + + @property tagTemplate + **/ + + this.tagTemplate = _.template(this.tagTemplate); + + /** + The parent StoryEditView. + + @property parent + **/ + + this.parent = options.parent; + + /** + The current story's object model. + + @property story + **/ + + this.story = options.parent.model; + + /** + The instance of CodeMirror used for editing. + + @property cm + **/ + + this.cm = CodeMirror.fromTextArea(this.$('.passageText')[0], + { + prefixTrigger: + { + prefixes: ['[[', '->'], + callback: this.autocomplete.bind(this) + }, + extraKeys: + { + 'Ctrl-Space': this.autocomplete.bind(this) + }, + lineWrapping: true, + lineNumbers: false, + mode: 'text', + }); + + this.$el.on('modalhide', this.restoreTitle.bind(this)) + .on('modalshown', function() + { + this.$el.one('animationend', function() + { + this.cm.refresh(); + this.cm.focus(); + }.bind(this)); + }.bind(this)) + .on('click', '.showNewTag', this.showNewTag.bind(this)) + .on('click', '.hideNewTag', this.hideNewTag.bind(this)) + .on('submit', function (e) + { + var name = this.$('.newTagName').val().replace(/\s/g, '-'); + + // don't add duplicate tags + + if (this.model.get('tags').indexOf(name) == -1) + this.addTag(name); + + this.hideNewTag(); + e.preventDefault(); + }.bind(this)) + .on('click', '.tag .remove', function() + { + $(this).closest('.tag').remove(); + }) + .data('blockModalHide', function() + { + var worked = this.save(); + + if (worked) + window.onbeforeunload = null; + + return ! worked; + }.bind(this)); + }, + + /** + Opens a modal dialog for editing a passage. + + @method open + **/ + + open: function() + { + // remember previous window title + + this.prevTitle = document.title; + document.title = 'Editing \u201c' + this.model.get('name') + '\u201d'; + + // id and name + + this.$('.passageId').val(this.model.id); + this.$('.passageName').val(this.model.get('name')); + + /* + Load the story format, which may install a CodeMirror mode named after itself. + We use that mode if it is found to exist after loading. + */ + + var storyFormatName = this.story.get('storyFormat'); + var storyFormat = StoryFormat.withName(storyFormatName); + + if (storyFormat) + storyFormat.load(function (err) + { + var modeName = storyFormatName.toLowerCase(); + + if (! err && modeName in CodeMirror.modes) + { + /* + This is a small hack to allow modes such as Harlowe to access the + full text of the textarea, permitting its lexer to grow + a syntax tree by itself. + */ + + CodeMirror.modes[modeName].cm = this.cm; + + // Now that's done, we can assign the mode and trigger a re-render. + + this.cm.setOption('mode', modeName); + } + }.bind(this)); + + // Set the mode to the default, 'text'. The above callback will reset it if it fires. + + this.cm.setOption('mode', 'text'); + var text = this.model.get('text'); + + // Reset the placeholder, which may have been modified by a prior story format. + + this.cm.setOption('placeholder', this.$('.passageText').attr('placeholder')); + + // swapDoc resets all of the attached events, undo history, etc. of the document. + + this.cm.swapDoc(CodeMirror.Doc('')); + + /* + These lines must be used (instead of passing the text to the above constructor) + to work around a bug in the CodeMirror placeholder code. + */ + + this.cm.setValue(text || ''); + this.cm.focus(); + this.cm.clearHistory(); + + // if the text is the default for a passage, select all of it + // so the user can just start typing to replace it; + // otherwise move the cursor to the end + + if (text == Passage.prototype.defaults.text) + this.cm.execCommand('selectAll'); + else + this.cm.execCommand('goDocEnd'); + + // sync tags + + this.tagContainer.empty(); + _.each(this.model.get('tags'), this.addTag, this); + + // assemble a list of existing passage names for autocomplete + + this.cm.setOption('passageNames', _.map(this.parent.collection.models, function (model) + { + return model.get('name'); + })); + + // actually show it + // we refresh twice; now so the text will show properly + // as the modal animates onscreen, later, once the animation + // completes, so scrolling works properly + + this.$el.data('modal').trigger('show'); + this.cm.refresh(); + + // warn the user about leaving before saving + + window.onbeforeunload = function() + { + return 'Any changes to the passage you\'re editing haven\'t been saved yet. (To do so, close the passage editor.)'; + }; + }, + + /** + Shows an autocomplete menu for the current cursor, showing existing passage names. + + @method autocomplete + **/ + + autocomplete: function() + { + this.cm.showHint({ + hint: function (cm, options) + { + var wordRange = cm.findWordAt(cm.getCursor()); + var word = cm.getRange(wordRange.anchor, wordRange.head).toLowerCase(); + var matches = []; + + var comps = + { + list: _.filter(cm.getOption('passageNames'), function (name) + { + return name.toLowerCase().indexOf(word) != -1; + }), + from: wordRange.anchor, + to: wordRange.head + }; + + CodeMirror.on(comps, 'pick', function() + { + var doc = cm.getDoc(); + doc.replaceRange(']] ', doc.getCursor()); + }); + + return comps; + }, + completeSingle: false, + extraKeys: + { + ']': function (cm, hint) + { + var doc = cm.getDoc(); + doc.replaceRange(']', doc.getCursor()); + hint.close(); + }, + + '-': function (cm, hint) + { + var doc = cm.getDoc(); + doc.replaceRange('-', doc.getCursor()); + hint.close(); + }, + + '|': function (cm, hint) + { + var doc = cm.getDoc(); + doc.replaceRange('|', doc.getCursor()); + hint.close(); + } + } + }); + }, + + /** + Closes the modal dialog for editing. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Saves changes made by the user to the model, displaying any validation + errors. + + @method save + @param {Event} e Event to stop + @return {Boolean} whether the save was successful + **/ + + save: function () + { + // gather current tag names + + var tags = []; + + this.$('.passageTags .tag').each(function() + { + tags.push($(this).attr('data-name')); + }); + + // try to save; we might error out if the passage name is a duplicate + + if (this.model.save({ + name: this.$('.passageName').val(), + text: this.cm.doc.getValue(), + tags: tags + })) + { + // have to manually set the style here because of jQuery .fadeIn() + + this.$('.error').addClass('hide').hide(); + this.$el.removeClass('hasError'); + return true; + } + else + { + // show the error message + + var message = this.$('.error'); + message.removeClass('hide').text(this.model.validationError).hide().fadeIn(); + this.$el.addClass('hasError'); + this.$('.passageName').focus(); + return false; + }; + }, + + /** + Shows the UI for adding a new tag. + + @method showNewTag + **/ + + showNewTag: function() + { + this.$('.showNewTag').hide(); + this.$('.newTag').show(); + this.$('.newTagName').val('').focus(); + }, + + /** + Hides the UI for adding a new tag. + + @method showNewTag + **/ + + hideNewTag: function() + { + this.$('.showNewTag').show(); + this.$('.newTag').hide(); + }, + + /** + Adds a new tag to the list. This does not affect the model + at all and thus has no validation associated with it. + + @method addTag + @param {String} name name of the tag to add + **/ + + addTag: function (name) + { + this.tagContainer.append(this.tagTemplate({ name: name })); + }, + + /** + Restores the window title after finishing editing. + + @method restoreTitle + **/ + + restoreTitle: function() + { + document.title = this.prevTitle; + } +}); diff --git a/js/views/storyeditview/editors/scripteditor.js b/js/views/storyeditview/editors/scripteditor.js new file mode 100644 index 000000000..faba47440 --- /dev/null +++ b/js/views/storyeditview/editors/scripteditor.js @@ -0,0 +1,87 @@ +/** + Manages the script editor modal of a StoryEditView. + + @class StoryEditView.ScriptEditor + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.ScriptEditor = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + + // we have to use the [0] index here because CodeMirror + // expects a DOM element, not a jQuery object + + this.scriptEditor = CodeMirror.fromTextArea(this.$('.scriptSource')[0], + { + lineWrapping: true, + lineNumbers: false, + tabSize: 2, + indentWithTabs: true, + mode: 'javascript', + extraKeys: + { + 'Ctrl-Space': function (cm) + { + cm.showHint(); + } + } + }); + this.$('.scriptSource:first').data('codemirror', this.scriptEditor); + + this.$el.on({ + 'modalshown': function() + { + this.$el.one('animationend', function() + { + this.scriptEditor.refresh(); + this.scriptEditor.focus(); + }.bind(this)); + }.bind(this), + + 'modalhide': function() + { + this.save(); + }.bind(this) + }); + }, + + /** + Opens a modal dialog for editing the story's script. + + @method open + **/ + + open: function() + { + this.scriptEditor.doc.setValue(this.parent.model.get('script')); + this.scriptEditor.refresh(); + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Saves changes to the model. + + @method save + **/ + + save: function() + { + this.parent.model.save({ script: this.scriptEditor.doc.getValue() }); + } +}); diff --git a/js/views/storyeditview/editors/styleeditor.js b/js/views/storyeditview/editors/styleeditor.js new file mode 100644 index 000000000..cc14f7c28 --- /dev/null +++ b/js/views/storyeditview/editors/styleeditor.js @@ -0,0 +1,86 @@ +/** + Manages the stylesheet editor modal of a StoryEditView. + + @class StoryEditView.StyleEditor + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.StyleEditor = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + + // we have to use the [0] index here because CodeMirror + // expects a DOM element, not a jQuery object + + this.styleEditor = CodeMirror.fromTextArea(this.$('.stylesheetSource')[0], + { + lineWrapping: true, + lineNumbers: false, + tabSize: 2, + indentWithTabs: true, + mode: 'css', + extraKeys: + { + 'Ctrl-Space': function (cm) + { + cm.showHint(); + } + } + }); + this.$('.stylesheetSource:first').data('codemirror', this.styleEditor); + + this.$el.on({ + 'modalshown': function() + { + this.$el.one('animationend', function() + { + this.styleEditor.refresh(); + this.styleEditor.focus(); + }.bind(this)); + }.bind(this), + 'modalhide': function() + { + this.save(); + }.bind(this) + }); + }, + + /** + Opens a modal dialog for editing the story's stylesheet. + + @method open + **/ + + open: function() + { + this.styleEditor.doc.setValue(this.parent.model.get('stylesheet')); + this.styleEditor.refresh(); + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Saves changes to the model. + + @method save + **/ + + save: function() + { + this.parent.model.save({ stylesheet: this.styleEditor.doc.getValue() }); + } +}); diff --git a/js/views/storyeditview/linkmanager.js b/js/views/storyeditview/linkmanager.js new file mode 100644 index 000000000..33c83ccdc --- /dev/null +++ b/js/views/storyeditview/linkmanager.js @@ -0,0 +1,472 @@ +/** + Manages drawing the arrows connecting linked passages, and re-renders passages + to keep their broken link status current. + + @class StoryEditView.LinkManager + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.LinkManager = Backbone.View.extend( +{ + /** + Angle at which arrowheads are drawn, in radians. + + @property {Number} ARROW_ANGLE + @final + **/ + + ARROW_ANGLE: Math.PI / 6, + + /** + Length of arrowheads, in pixels. + + @property {Number} ARROW_SIZE + @final + **/ + + ARROW_SIZE: 10, + + initialize: function (options) + { + /** + The parent view. + + @property {StoryEditView} parent + **/ + + this.parent = options.parent; + + /** + The SVG element we draw to. + + @property svg + **/ + + this.svg = SVG(this.parent.$('.passages .content')[0]); + + /** + Tracks passage positions and links to speed up drawing operations. + Call cachePassage() to update a passage in the cache. + + @property {Object} passageCache + **/ + + this.passageCache = {}; + + /** + A lookup for the drawn connector SVG objects, in the format + this.lineCache[start passage name][end passage name]. + + @property {Object} lineCache + **/ + + this.lineCache = {}; + + // keep draw cache in sync with collection changes + + this.listenTo(this.parent.collection, 'change:name', function (item) + { + delete this.passageCache[item.previous('name')]; + // caching the new version is handled below + }) + .listenTo(this.parent.collection, 'change', function (item) + { + this.cachePassage(item); + this.drawAll(); + + // any passage that links or linked to this one + // needs to be re-rendered, to update its broken-link status + + var oldName = item.previous('name'); + var newName = item.get('name'); + + _.each(this.passageCache, function (props, pName) + { + if (_.contains(props.links, oldName) || _.contains(props.links, newName)) + { + this.parent.children.find(function (v) + { + if (v.model.get('name') == pName) + { + v.render(); + return true; + }; + }); + }; + }, this); + }) + .listenTo(this.parent.collection, 'add', function (item) + { + this.cachePassage(item); + this.drawAll(); + + var name = item.get('name'); + + _.each(this.passageCache, function (props, pName) + { + if (_.contains(props.links, name)) + { + this.parent.children.find(function (v) + { + if (v.model.get('name') == pName) + { + v.render(); + return true; + }; + }); + }; + }, this); + }) + .listenTo(this.parent.collection, 'remove', function (item) + { + var name = item.get('name'); + delete this.passageCache[name]; + this.drawAll(); + + // any passage that links or linked to this one + // needs to be re-rendered + + _.each(this.passageCache, function (props, pName) + { + if (_.contains(props.links, name)) + { + this.parent.children.find(function (v) + { + if (v.model.get('name') == pName) + { + v.render(); + return true; + }; + }); + }; + }, this); + }) + .listenTo(this.parent.model, 'change:zoom', function() + { + // this must be deferred so that the DOM has a chance to update + + _.defer(this.reset.bind(this)); + }); + + /** + A bound event listener for the start of a passage drag event, so we can later disconnect it. + + @property {Function} prepDragBound + @private + **/ + + this.prepDragBound = this.prepDrag.bind(this); + $('body').on('passagedragstart', this.prepDragBound); + + /** + A bound event listener for a passage drag event, so we can later disconnect it. + + @property {Function} followDragBound + @private + **/ + + this.followDragBound = this.followDrag.bind(this); + $('body').on('passagedrag', this.followDragBound); + + // for some reason, jQuery can't see the position of the passages yet, so we defer + + _.defer(this.reset.bind(this)); + }, + + /** + Does cleanup of stuff set up in initialize(). + + @method destroy + @private + **/ + + destroy: function() + { + $('body').off('passagedragstart', this.prepDragBound); + $('body').off('passagedrag', this.followDragBound); + }, + + /** + Forces a re-cache of all passages. + + @method reset + **/ + + reset: function() + { + this.passageCache = {}; + this.parent.collection.each(function(item) { this.cachePassage(item); }, this); + this.drawAll(); + }, + + /** + Draws all connectors, which is a fairly expensive operation. + + @method drawAll + **/ + + drawAll: function() + { + var drawArrows = (this.parent.model.get('zoom') > 0.25); + this.svg.clear(); + this.lineCache = {}; + + for (var startName in this.passageCache) + { + if (! this.passageCache.hasOwnProperty(startName)) + continue; + + var links = this.passageCache[startName].links; + + for (var j = links.length - 1; j >= 0; j--) + { + var endName = links[j]; + this.drawConnector(startName, endName, drawArrows); + }; + }; + }, + + /** + Draws or updates a single connector from one passage to another. + If either is not previously cached via cachePassage, then this does + nothing. + + @method drawConnector + @param {String} start Name of the start passage + @param {String} end Name of the end passage + @param {Boolean} arrowhead Include an arrowhead? + **/ + + drawConnector: function (start, end, arrowhead) + { + var p = this.passageCache[start]; + var q = this.passageCache[end]; + + if (! (p && q)) + return; + + // find the closest sides to connect + + var xDist = q.n[0] - p.n[0]; + var yDist = q.n[1] - p.n[1]; + var slope = Math.abs(xDist / yDist); + var line; + + // hardcoded aesthetics :-| + + if (slope < 0.8 || slope > 1.3) + { + // connect sides + + if (Math.abs(xDist) > Math.abs(yDist)) + { + if (xDist > 0) + line = [p.e, q.w]; + else + line = [p.w, q.e]; + } + else + { + if (yDist > 0) + line = [p.s, q.n]; + else + line = [p.n, q.s]; + }; + } + else + { + // connect corners + + if (xDist < 0) + { + if (yDist < 0) + line = [p.ne, q.sw]; + else + line = [p.se, q.nw]; + } + else + { + if (yDist < 0) + line = [p.nw, q.se]; + else + line = [p.sw, q.ne]; + }; + }; + + // line is now an array of two points: 0 is the start, 1 is the end + // add arrowheads as needed + + if (arrowhead) + { + var head1 = this.endPointProjectedFrom(line, this.ARROW_ANGLE, this.ARROW_SIZE); + var head2 = this.endPointProjectedFrom(line, -this.ARROW_ANGLE, this.ARROW_SIZE); + line.push(head1, [line[1][0], line[1][1]], head2); + }; + + // cache the line as we draw it + + this.lineCache[start] = this.lineCache[start] || {}; + + if (this.lineCache[start][end]) + this.lineCache[start][end].remove(); + + this.lineCache[start][end] = this.svg.polyline(line); + }, + + /** + Projects a point from the endpoint of a line at a certain angle and distance. + + @method endPointProjectedFrom + @param {Array} line An array of two points, each an array in [x, y] format + @param {Number} angle Angle in radians to project from the endpoints + @param {Number} distance Distance the projected line should have + @return Array + **/ + + endPointProjectedFrom: function (line, angle, distance) + { + var length = Math.sqrt(Math.pow(line[1][0] - line[0][0], 2) + + Math.pow(line[1][1] - line[0][1], 2)); + + if (length == 0) + return line[1]; + + // taken from http://mathforum.org/library/drmath/view/54146.html + + var lengthRatio = distance / length; + + var x = line[1][0] - ((line[1][0] - line[0][0]) * Math.cos(angle) - + (line[1][1] - line[0][1]) * Math.sin(angle)) * lengthRatio; + var y = line[1][1] - ((line[1][1] - line[0][1]) * Math.cos(angle) + + (line[1][0] - line[0][0]) * Math.sin(angle)) * lengthRatio; + + return [x, y]; + }, + + /** + Prepares for the user dragging passages around by remembering + various things we'll need to now to update on each mouse motion event, + so we can be as efficient as possible. + + @method prepDrag + @internal + **/ + + prepDrag: function() + { + /** + Should arrowheads be drawn while dragging? + + @property drawArrowsWhileDragging + @private + **/ + + this.drawArrowsWhileDragging = (this.parent.model.get('zoom') > 0.25); + + var draggedViews = this.parent.children.filter(function (view) + { + return view.selected; + }); + + /** + An array of passages models currently being dragged. + + @property draggedPassages + @private + **/ + + this.draggedPassages = []; + var draggedNames = []; + + this.parent.children.each(function (view) + { + if (view.selected) + { + this.draggedPassages.push(view.model); + draggedNames.push(view.model.get('name')); + }; + }, this); + + /** + An array of connections that are dependant on the dragged passages, + e.g. need to be redrawn every frame the mouse is moved. + + @property draggedConnectors + @private + **/ + + this.draggedConnectors = []; + + _.each(this.passageCache, function (props, startName) + { + var alwaysInclude = (draggedNames.indexOf(startName) != -1); + + for (var i = props.links.length - 1; i >= 0; i--) + { + var endName = props.links[i]; + + if (alwaysInclude || draggedNames.indexOf(endName) != -1) + this.draggedConnectors.push([startName, endName]); + }; + }, this); + }, + + /** + Re-caches dragged passages in flight and updates connectors. + + @method followDrag + @internal + **/ + + followDrag: function() + { + for (var i = this.draggedPassages.length - 1; i >= 0; i--) + this.cachePassage(this.draggedPassages[i]); + + for (i = this.draggedConnectors.length - 1; i >= 0; i--) + this.drawConnector(this.draggedConnectors[i][0], this.draggedConnectors[i][1], + this.drawArrowsWhileDragging); + }, + + /** + Updates the draw cache for a passage. This must occur whenever a passage's position, + name, or text changes. All of these can affect links drawn. This uses the passage's + position onscreen instead of its model's position, since we need to draw links as + the passage is dragged around onscreen, i.e. before any changes are saved to the model. + + @method cachePassage + @param {Passage} passage Passage to cache. + **/ + + cachePassage: function (passage) + { + var offset = this.$('.passages').offset(); + var passEl = this.$('.passages div[data-id="' + passage.id + '"] .frame'); + var pos = passEl.offset(); + var width = passEl.outerWidth(); + var height = passEl.outerHeight(); + + // if the passage hasn't been rendered yet, there's nothing to cache yet + + if (pos) + { + var x = pos.left - offset.left; + var y = pos.top - offset.top; + + this.passageCache[passage.get('name')] = + { + ne: [x, y], + n: [x + width / 2, y], + nw: [x + width, y], + se: [x, y + height], + e: [x + width, y + height / 2], + w: [x, y + height / 2], + s: [x + width / 2, y + height], + sw: [x + width, y + height], + links: passage.links() + }; + }; + } +}); diff --git a/js/views/storyeditview/marquee.js b/js/views/storyeditview/marquee.js new file mode 100644 index 000000000..44628268b --- /dev/null +++ b/js/views/storyeditview/marquee.js @@ -0,0 +1,139 @@ +/** + Manages drawing a marquee selection if the user drags in an unoccupied area + of the story map, and selecting/deselecting + + @class StoryEditView.Marquee + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.Marquee = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.$marquee = this.$('.marquee'); + this.followDragBound = this.followDrag.bind(this); + this.endDragBound = this.endDrag.bind(this); + }, + + startDrag: function (e) + { + // bail out if the target is a .passage element + + if ($(e.target).closest('.passage').length > 0) + return; + + this.startX = e.pageX; + this.startY = e.pageY; + + this.offset = this.$el.offset(); + this.inclusive = e.shiftKey || e.ctrlKey; + + // cache all passage positions so we can + // quickly figure out intersections + + // dimensions of a passage + + var width = this.$('.passage:first .frame').outerWidth(); + var height = this.$('.passage:first .frame').outerHeight(); + + this.cache = []; + + this.parent.children.each(function (view) + { + var offset = view.$('.frame').offset(); + + this.cache.push( + { + view: view, + left: offset.left, + top: offset.top, + right: offset.left + width, + bottom: offset.top + height, + originallySelected: view.selected + }); + + if (! this.inclusive) + view.deselect(); + }, this); + + $('#storyEditView').addClass('marqueeing'); + + $('body').on( + { + mousemove: this.followDragBound, + mouseup: this.endDragBound + }); + }, + + followDrag: function (e) + { + // marquee appearance + + var left, top, width, height; + + if (e.pageX > this.startX) + { + left = this.startX; + width = e.pageX - this.startX; + } + else + { + left = e.pageX; + width = this.startX - e.pageX; + }; + + if (e.pageY > this.startY) + { + top = this.startY; + height = e.pageY - this.startY; + } + else + { + top = e.pageY; + height = this.startY - e.pageY; + }; + + this.$marquee.css({ + display: 'block', + left: left - this.offset.left, + top: top - this.offset.top, + width: width, + height: height + }); + + // select passages + + _.each(this.cache, function (item) + { + if (this.inclusive && item.originallySelected) + return; + + // intersection of two rectangles + + if (item.left < left + width && item.right > left && + item.top < top + height && item.bottom > top) + item.view.select(); + else + item.view.deselect(); + }, this); + }, + + endDrag: function() + { + this.$marquee.css('display', 'none'); + $('#storyEditView').removeClass('marqueeing'); + $('body').off( + { + mousemove: this.followDragBound, + mouseup: this.endDragBound + }); + }, + + events: + { + 'mousedown': 'startDrag' + } +}); diff --git a/js/views/storyeditview/modals/renamestorymodal.js b/js/views/storyeditview/modals/renamestorymodal.js new file mode 100644 index 000000000..46296c23c --- /dev/null +++ b/js/views/storyeditview/modals/renamestorymodal.js @@ -0,0 +1,62 @@ +'use strict'; + +StoryEditView.RenameStoryModal = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + }, + + /** + Opens a modal dialog for search/replace. + + @method open + **/ + + open: function() + { + this.$('.storyName').val(this.parent.model.get('name')); + this.$('.noNameError').hide(); + this.$el.data('modal').trigger('show'); + this.$('.storyName').focus(); + }, + + /** + Closes the modal dialog for search/replace. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Saves changes made by the user to the model, displaying any validation + errors. If this is passed an event, this stops the event's + propagation. + + @method save + **/ + + save: function (e) + { + e.stopImmediatePropagation(); + var storyName = this.$('.storyName').val(); + + if (storyName.trim() == '') + { + this.$('.noNameError').show().fadeIn(); + return; + }; + + this.parent.model.save({ name: this.$('.storyName').val() }); + this.close(); + }, + + events: + { + 'submit #renameStoryForm': 'save' + } +}); diff --git a/js/views/storyeditview/modals/searchmodal.js b/js/views/storyeditview/modals/searchmodal.js new file mode 100644 index 000000000..2af089057 --- /dev/null +++ b/js/views/storyeditview/modals/searchmodal.js @@ -0,0 +1,232 @@ +'use strict'; + +StoryEditView.SearchModal = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.resultTemplate = _.template($('.searchModalResult').html()); + }, + + /** + Opens a modal dialog for search/replace. + + @method open + **/ + + open: function() + { + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog for search/replace. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Performs a search in story passages, updating the results list. + + @method updateResults + **/ + + updateResults: function() + { + var searchTerm = this.searchRegexp(); + var searchNames = this.$('#searchNames').prop('checked'); + + if (searchTerm.source == '') + { + // bug out early if there was no text entered + + this.$('.results').empty(); + this.$('.resultSummary').hide(); + return; + }; + + var passagesMatched = 0; + var resultHtml = ''; + + this.$('.loading').show(); + + this.parent.children.each(function (view) + { + var numMatches = view.model.numMatches(searchTerm, searchNames); + + if (numMatches != 0) + { + passagesMatched++; + + var name = _.escape(view.model.get('name')); + + if (searchNames) + name = name.replace(searchTerm, '$1'); + + // we have to do a bit of a song and dance + // to escape things correctly for the preview + + var preview = _.escape(view.model.get('text').replace(searchTerm, '\u3000$1\u3001')); + preview = preview.replace('\u3000', ''); + preview = preview.replace('\u3001', ''); + + resultHtml += this.resultTemplate( + { + passageId: view.model.cid, + passageName: name, + numMatches: numMatches, + resultNumber: passagesMatched, + searchPreview: preview + }); + }; + }.bind(this)); + + this.$('.loading').hide(); + + if (resultHtml != '') + { + this.$('.matchCount').text(passagesMatched); + this.$('.resultSummary').show(); + this.$('.results').html(resultHtml); + } + else + { + this.$('.resultSummary').hide(); + this.$('.results').html('

No matching passages found.

'); + }; + + }, + + /** + Shows all result excerpts. + + @method showAllResults + **/ + + showAllResults: function() + { + this.$('.results').find('.collapseContainer').each(function() + { + $(this).collapse('show'); + }); + }, + + /** + Hides all result excerpts. + + @method hideAllResults + **/ + + hideAllResults: function() + { + this.$('.results').find('.collapseContainer').each(function() + { + $(this).collapse('hide'); + }); + }, + + /** + Performs a replace in a particular passage result, then + hides it from the search results. + + @method replaceInPassage + @param {Event} e event object + **/ + + replaceInPassage: function (e) + { + var container = $(e.target).closest('.result'); + var model = this.parent.children.findByModelCid(container.attr('data-passage')).model; + + model.replace(this.searchRegexp(), this.$('#replaceWith').val(), + this.$('#searchNames').prop('checked')); + container.slideUp(null, function() { container.remove(); }); + }, + + /** + Performs a replace in all passages, closes the modal, + then shows a notification as to how many replacements were made. + + @method replaceAll + **/ + + replaceAll: function() + { + var passagesMatched = 0; + var totalMatches = 0; + var searchTerm = this.searchRegexp(); + var replaceWith = this.$('#replaceWith').val(); + var inNames = this.$('#searchNames').prop('checked'); + + this.parent.children.each(function (view) + { + var numMatches = view.model.numMatches(searchTerm); + + if (numMatches != 0) + { + passagesMatched++; + totalMatches += numMatches; + view.model.replace(searchTerm, replaceWith, this.$('#searchNames').prop('checked')); + }; + }.bind(this)); + + this.$el.one('modalhide', function() + { + ui.notify(totalMatches + ' replacements were made in ' + passagesMatched + ' passages.'); + }); + this.close(); + }, + + /** + Creates a RegExp object to match the entered text and checkboxes selected. + + @method searchRegexp + @return {RegExp} the resulting regular expression + **/ + + searchRegexp: function() + { + var flags = 'g'; + + if (! this.$('#searchCaseSensitive').prop('checked')) + flags += 'i'; + + var source = this.$('#searchFor').val(); + + if (this.$('#searchRegexp').prop('checked')) + source = source.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + + return new RegExp('(' + source + ')', flags); + }, + + /** + Syncs the contents of the search field with the quick find field. + + @method syncSearch + **/ + + syncSearch: function() + { + this.$('.results').empty(); + this.$('.resultSummary').hide(); + this.$('#searchFor').val($('#storyEditView .searchField').val()); + }, + + events: + { + 'modalshow': 'syncSearch', + 'keyup #searchFor': 'updateResults', + 'change #searchNames': 'updateResults', + 'change #searchCaseSensitive': 'updateResults', + 'change #searchRegexp': 'updateResults', + 'click .expandAll': 'showAllResults', + 'click .collapseAll': 'hideAllResults', + 'click .replacePassage': 'replaceInPassage', + 'click .replaceAll': 'replaceAll' + } +}); diff --git a/js/views/storyeditview/modals/statsmodal.js b/js/views/storyeditview/modals/statsmodal.js new file mode 100644 index 000000000..9d245795c --- /dev/null +++ b/js/views/storyeditview/modals/statsmodal.js @@ -0,0 +1,141 @@ +/** + Shows statistics about the story being edited. + + @class StatsModal + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.StatsModal = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + }, + + /** + Opens the modal dialog. + + @method open + **/ + + open: function() + { + // format the date + + this.$('.lastUpdate').text(new XDate(this.parent.model.get('lastUpdate')).toString('h:mm tt, d MMMM yyyy')); + + // calculate counts + + var charCount = 0; + var wordCount = 0; + var passageCount = 0; + var linkCount = 0; + var brokenLinkCount = 0; + var passageLinks = {}; + var passageNames = []; + + _.each(this.parent.collection.models, function (passage) + { + passageCount++; + var text = passage.get('text'); + charCount += text.length; + wordCount += text.split(/\s+/).length; + var links = passage.links(); + linkCount += links.length; + passageNames.push(passage.get('name')); + + _.each(links, function (link) + { + passageLinks[link] = (passageLinks[link] || 0) + 1; + }); + }); + + // we calculate broken links now that we have + // a complete list of names + + _.each(passageLinks, function (count, name) + { + if (passageNames.indexOf(name) == -1) + brokenLinkCount += count; + }); + + this.$('.charCount').text(charCount.toLocaleString()); + this.$('.wordCount').text(wordCount.toLocaleString()); + this.$('.passageCount').text(passageCount.toLocaleString()); + this.$('.linkCount').text(linkCount.toLocaleString()); + this.$('.brokenLinkCount').text(brokenLinkCount.toLocaleString()); + + // adjust visibility of singular/plural nouns + + if (charCount != 1) + { + this.$('.charDesc .singular').addClass('hide'); + this.$('.charDesc .plural').removeClass('hide'); + } + else + { + this.$('.charDesc .singular').removeClass('hide'); + this.$('.charDesc .plural').addClass('hide'); + }; + + if (wordCount != 1) + { + this.$('.wordDesc .singular').addClass('hide'); + this.$('.wordDesc .plural').removeClass('hide'); + } + else + { + this.$('.wordDesc .singular').removeClass('hide'); + this.$('.wordDesc .plural').addClass('hide'); + }; + + if (passageCount != 1) + { + this.$('.passageDesc .singular').addClass('hide'); + this.$('.passageDesc .plural').removeClass('hide'); + } + else + { + this.$('.passageDesc .singular').removeClass('hide'); + this.$('.passageDesc .plural').addClass('hide'); + }; + + if (linkCount != 1) + { + this.$('.linkDesc .singular').addClass('hide'); + this.$('.linkDesc .plural').removeClass('hide'); + } + else + { + this.$('.linkDesc .singular').removeClass('hide'); + this.$('.linkDesc .plural').addClass('hide'); + }; + + if (brokenLinkCount != 1) + { + this.$('.brokenLinkDesc .singular').addClass('hide'); + this.$('.brokenLinkDesc .plural').removeClass('hide'); + } + else + { + this.$('.brokenLinkDesc .singular').removeClass('hide'); + this.$('.brokenLinkDesc .plural').addClass('hide'); + }; + + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + +}); diff --git a/js/views/storyeditview/modals/storyformatmodal.js b/js/views/storyeditview/modals/storyformatmodal.js new file mode 100644 index 000000000..6e569a9c7 --- /dev/null +++ b/js/views/storyeditview/modals/storyformatmodal.js @@ -0,0 +1,112 @@ +'use strict'; + +StoryEditView.StoryFormatModal = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.itemTemplate = _.template($('.singleStoryFormatItem').html()); + }, + + /** + Opens a modal dialog for changing story formats. + + @method open + **/ + + open: function() + { + // begin loading formats immediately + + this.$('.formats').empty(); + this.formatsToLoad = StoryFormatCollection.all(); + this.loadNextFormat(); + + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog for changing story formats. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Changes the story's format. + + @method changeFormat + **/ + + changeFormat: function (name) + { + this.parent.model.save({ storyFormat: name }); + this.$('.detail button.select').each(function() + { + var $t = $(this); + + if ($t.closest('.detail').data('format') == name) + $t.addClass('active'); + else + $t.removeClass('active'); + }); + }, + + /** + Incrementally loads information about each story format. + If there are more remaining to be loaded, then this calls itself + once the load is complete. + + @method loadNextFormat + **/ + + loadNextFormat: function() + { + if (this.formatsToLoad.length > 0) + { + var format = this.formatsToLoad.at(0); + + format.load(function (e) + { + if (e === undefined) + { + // skip proofing-only formats + + if (! format.properties.proofing) + { + // calculate containing directory for the format + // so that image URLs, for example, are correct + + var path = format.get('url').replace(/\/[^\/]*?$/, ''); + var fullContent = _.extend(format.properties, { path: path }); + var content = $(this.itemTemplate(fullContent)); + + this.$('.formats').append(content); + + if (fullContent.name == this.parent.model.get('storyFormat')) + content.find('button.select').addClass('active'); + }; + } + else + ui.notify('The story format “' + format.get('name') + '” could not be loaded (' + e.message + ').', 'danger'); + + this.formatsToLoad.remove(format); + this.loadNextFormat(); + }.bind(this)); + } + else + this.$('.loading').hide(); + }, + + events: + { + 'click button.select': function (e) + { + this.changeFormat($(e.target).closest('button').data('format')); + } + } +}); diff --git a/js/views/storyeditview/passageitemview.js b/js/views/storyeditview/passageitemview.js new file mode 100644 index 000000000..d48ca1073 --- /dev/null +++ b/js/views/storyeditview/passageitemview.js @@ -0,0 +1,624 @@ +/** + This handles display of a single passage in a story map + managed by StoryEditView. + + @class PassageItemView + @extends Marionette.ItemView +**/ + +'use strict'; + +var PassageItemView = Marionette.ItemView.extend( +{ + template: '#templates .passageItemView', + className: 'passage', + selected: false, + actuallyDragged: false, + + /** + If true, then any change in the model's position + properties will be animated instead of immediately + changed. + + @property animateMovement + @type Boolean + **/ + + animateMovement: false, + + initialize: function (options) + { + this.parentView = options.parentView; + this.listenTo(this.model, 'change', this.render) + .listenTo(this.model, 'change:text', this.createLinkedPassages) + .listenTo(this.parentView.model, 'change:zoom', this.render) + .listenTo(this.parentView.model, 'change:startPassage', this.render); + + /** + A bound event listener for the start of a passage drag event, so we can later disconnect it. + + @property {Function} prepDragBound + @private + **/ + + this.prepDragBound = this.prepDrag.bind(this); + + /** + A bound event listener for a passage drag event, so we can later disconnect it. + + @property {Function} followDragBound + @private + **/ + + this.followDragBound = this.followDrag.bind(this); + + /** + A bound event listener for a passage drag end event, so we can later disconnect it. + + @property {Function} finishDragBound + @private + **/ + + this.finishDragBound = this.finishDrag.bind(this); + + /** + A bound event listener for a mouse motion event while this passage is the control + handle for a drag, so we can later disconnect it. + + @property {Function} trackDragBound + @private + **/ + + this.trackDragBound = this.trackDrag.bind(this); + + /** + A bound event listener for a mouse up event while this passage is the control + handle for a drag, so we can later disconnect it. + + @property {Function} endDragBound + @private + **/ + + this.endDragBound = this.endDrag.bind(this); + }, + + onDomRefresh: function() + { + var zoom = this.parentView.model.get('zoom'); + var top = this.model.get('top') * zoom; + var left = this.model.get('left') * zoom; + + // have to set absolute positioning manually, + // or draggable() will manually apply absolute for us + + this.$el + .attr('data-id', this.model.id) + .css('position', 'absolute'); + + // set CSS class for broken links + + if (_.every(this.model.links(true), function (link) + { + return this.parentView.collection.findWhere({ name: link }); + }, this)) + this.$el.removeClass('brokenLink'); + else + this.$el.addClass('brokenLink'); + + // set CSS class for starting point + + var startId = this.parentView.model.get('startPassage'); + + if (this.model.id == startId || this.model.cid == startId) + this.$el.addClass('start'); + else + this.$el.removeClass('start'); + + if (this.animateMovement) + { + this.$el.animate({ left: left, top: top }, 100); + + // we need to trigger a change event once the + // animation ends, so that link arrows update with + // the correct position + + _.delay(function (model) + { + model.set({ left: model.get('left') + 0.0001 }); + }, 100, this.model); + } + else + this.$el.css({ left: left, top: top }); + }, + + onDestroy: function() + { + // removes mouse listeners + + this.deselect(); + }, + + serializeData: function() + { + // add the excerpt manually after saving data + + var data = this.model.toJSON(); + data.excerpt = this.model.excerpt(); + return data; + }, + + /** + Confirms that the user wants to delete this model, + then calls delete(). + + @method confirmDelete + @param {Event} e Event, if any; if the shift key is pressed on this, + then the confirm is skipped + **/ + + confirmDelete: function (e) + { + if (e.shiftKey) + this.delete(); + else + { + var message = 'Are you sure you want to delete “' + + this.model.get('name') + '?” This cannot be undone.'; + + if (! window.app.hasPrimaryTouchUI()) + message += '

(Hold the Shift key when deleting to skip this message.)'; + + ui.confirm(message, ' Delete', + this.delete.bind(this), + { buttonClass: 'danger' }); + }; + }, + + /** + Deletes the underlying passage model. + + @method delete + **/ + + delete: function() + { + var model = this.model; + + this.disappear(function() + { + model.destroy(); + }); + }, + + /** + Begins editing this passage in a modal dialog. + + @method edit + **/ + + edit: function() + { + this.parentView.passageEditor.model = this.model; + this.parentView.passageEditor.open(); + }, + + /** + Creates passage models for any broken links that are in this model's + text, but are not contained in the previous state's text. This is called + automatically whenever the model's text property is changed. + + @method createLinkedPassages + **/ + + createLinkedPassages: function() + { + // derive the previous set of links + + var oldBroken = []; + + if (this.model.previous('text')) + { + var currentText = this.model.get('text'); + this.model.set({ text: this.model.previous('text') }, { silent: true }); + + oldBroken = _.filter(this.model.links(true), function (link) + { + return (this.parentView.collection.findWhere({ name: link }) !== null); + }, this); + + this.model.set({ text: currentText }, { silent: true }); + }; + + // we start new passages directly below this one + + var newTop = this.model.get('top') + Passage.height * 1.5; + var newLeft = this.model.get('left'); + + // actually create them + // this needs to be deferred so that the current chain of execution + // (e.g. a pending save operation, if there is one) can finish off + + _.each(this.model.links(true), function (link) + { + if (! this.parentView.collection.findWhere({ name: link }) && + oldBroken.indexOf(link) == -1) + { + _.defer(this.parentView.addPassage.bind(this.parentView), link, newLeft, newTop); + newLeft += Passage.width * 1.5; + }; + }, this); + }, + + /** + Tests the parent story, starting with this passage. + + @method test + **/ + + test: function() + { + this.parentView.test(this.model.id); + }, + + /** + Sets this passage as the starting one for the parent story. + + @method setAsStart + **/ + + setAsStart: function() + { + this.parentView.model.save({ startPassage: this.model.id }); + }, + + /** + Animates the view as if it were apppearing onscreen for the first time. + + @method appear + @param {Function} callback Function to call when the animation is done. + **/ + + appear: function (callback) + { + if (callback) + this.$el.on('animationend webkitAnimationEnd MSAnimationEnd', function() + { + callback(); + $(this).off('animationend webkitAnimationEnd MSAnimationEnd'); + }); + + this.$el.addClass('fallIn'); + }, + + /** + Animates the view as if it were disappearing onscreen. + + @method disappear + @param {Function} callback Function to call when the animation is done. + **/ + + disappear: function (callback) + { + if (callback) + this.$el.on('animationend webkitAnimationEnd MSAnimationEnd', function() + { + callback(); + $(this).off('animationend webkitAnimationEnd MSAnimationEnd'); + }); + + this.$el.removeClass('fallIn').addClass('disappear'); + }, + + /** + Selects this view for dragging. + + @method select + **/ + + select: function() + { + if (this.selected) + return; + + this.selected = true; + this.$el.addClass('selected'); + $('body').on('passagedragstart', this.prepDragBound); + $('body').on('passagedrag', this.followDragBound); + $('body').on('passagedragend', this.finishDragBound); + }, + + /** + Deselects this view for dragging. + + @method deselect + **/ + + deselect: function() + { + if (! this.selected) + return; + + this.selected = false; + this.$el.removeClass('selected'); + $('body').off('passagedragstart', this.prepDragBound); + $('body').off('passagedrag', this.followDragBound); + $('body').off('passagedragend', this.finishDragBound); + }, + + /** + Highlights this view, i.e. when performing a search. + + @method highlight + **/ + + highlight: function() + { + this.$el.addClass('highlight'); + }, + + /** + Removes highlighting from this view. + + @method unhighlight + **/ + + unhighlight: function() + { + this.$el.removeClass('highlight'); + }, + + /** + Handles a mouse down or touch start event on this view, + adjusting the selection and beginning a potential drag. + + @method handleMouseDown + @param {Object} e event object + @private + **/ + + handleMouseDown: function (e) + { + if (e.shiftKey || e.ctrlKey) + { + // toggle selection + + if (this.selected) + this.deselect(); + else + this.select(); + } + else + { + // if we were not selected, then immediately + // deselect everything else so that only this + // passage is dragged + + if (! this.selected) + this.parentView.children.each(function (view) + { + if (view != this) + view.deselect(); + }, this); + + this.select(); + }; + + this.beginDrag(e); + e.stopPropagation(); + }, + + /** + Handles a mouse up or touch end event on this view, adjusting the + selection. A mouseup or touch end that ends a drag event is handled + over in endDrag(). + + @method handleMouseUp + @param {Object} e event object + @private + **/ + + handleMouseUp: function (e) + { + if (e.shiftKey || e.ctrlKey || this.actuallyDragged || + this.$el == this.parentView.lastMousedown || + $.contains(this.$el, this.parentView.lastMousedown)) + return; + + // deselect everything else + + this.parentView.children.each(function (view) + { + if (view != this) + view.deselect(); + }, this); + }, + + /** + Starts a drag event. This is only called if the passage + is the control handle for the drag -- e.g. it is the one the + user grabbed to drag around. + + @method beginDrag + @param {Object} e event object + @private + **/ + + beginDrag: function (e) + { + if (e.pageX && e.pageY) + this.dragMouseStart = { x: e.pageX, y: e.pageY }; + else if (e.originalEvent.targetTouches) + { + e = e.originalEvent; + + // emulate pageX and pageY for touch events + + this.dragMouseStart = { x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY }; + this.dragTouchId = e.targetTouches[0].identifier; + } + else + throw new Error("Don't see either mouse or touch coordinates on event"); + + this.actuallyDragged = false; + $('#storyEditView').addClass('draggingPassages'); + + $('body').on({ + touchmove: this.trackDragBound, + mousemove: this.trackDragBound, + mouseup: this.endDragBound, + touchend: this.endDragBound + }) + .trigger('passagedragstart', this.dragMouseStart); + }, + + /** + Reacts to a drag beginning, recording the view's original position. + + @method prepDrag + @param {Object} e event object + **/ + + prepDrag: function (e) + { + this.dragStart = { left: parseInt(this.$el.css('left')), top: parseInt(this.$el.css('top')) }; + }, + + /** + Handles the user moving the mouse or a finger during a drag, generating events for + other selected passage views to listen to. This is only called if the passage + is the control handle for the drag -- e.g. it is the one the + user grabbed to drag around. + + @method trackDrag + @param {Object} e event object + @private + **/ + + trackDrag: function (e) + { + var eventOrigin; + this.actuallyDragged = true; + + if (this.dragTouchId !== null && e.originalEvent.touches) + { + // prevent default to block any resizing done by the browser + + e.preventDefault(); + e = e.originalEvent; + + // emulate mouse events for touches + + for (var i = 0; i < e.touches.length; i++) + if (e.touches[i].identifier == this.dragTouchId) + { + eventOrigin = e.touches[i]; + break; + }; + + if (! eventOrigin) + throw new Error("Couldn't find original touch ID in movement event"); + } + else + eventOrigin = e; + + $('body').trigger($.Event('passagedrag', { x: eventOrigin.pageX - this.dragMouseStart.x, y: eventOrigin.pageY - this.dragMouseStart.y })); + }, + + /** + Reacts to a drag in progress, adjusting the view's position onscreen. + We don't actually change the model until the drag is finished. + + @method followDrag + @param {Object} e event object + **/ + + followDrag: function (e) + { + this.$el.css( + { + left: Math.max(this.dragStart.left + e.x, 0), + top: Math.max(this.dragStart.top + e.y, 0) + }); + }, + + /** + Handles the user letting go of the mouse button during a drag, generating events for + other selected passage views to listen to. This is only called if the passage + is the control handle for the drag -- e.g. it is the one the + user grabbed to drag around. + + @method endDrag + @param {Object} e event object + @private + **/ + + endDrag: function (e) + { + $('#storyEditView').removeClass('draggingPassages'); + $('body').off( + { + touchmove: this.trackDragBound, + mousemove: this.trackDragBound, + mouseup: this.endDragBound, + touchend: this.endDragBound + }) + .trigger('passagedragend'); + + _.defer(function() { this.actuallyDragged = false; }.bind(this)); + }, + + /** + Reacts to a drag being completed by updating the model. + + @method finishDrag + @param {Object} e event object + @private + **/ + + finishDrag: function (e) + { + // set initial position based on the user's drag + + var zoom = this.parentView.model.get('zoom'); + + this.model.set( + { + top: parseInt(this.$el.css('top')) / zoom, + left: parseInt(this.$el.css('left')) / zoom + }); + + // defer the rest til all other drags have completed + // so we don't get displaced by any passage's previous positions + + _.defer(function() + { + // push the passage so it doesn't overlap any other + // nonselected one, i.e. that was part of the drag + + this.animateMovement = true; + this.parentView.positionPassage(this.model, function (p) + { + return ! this.parentView.children.findByModel(p).selected; + }.bind(this)); + + this.animateMovement = false; + + // and finally save changes + + this.model.save(); + }.bind(this)); + }, + + events: + { + 'mousedown .frame': 'handleMouseDown', + 'touchstart .frame': 'handleMouseDown', + 'mouseup .frame': 'handleMouseUp', + 'touchend .frame': 'handleMouseUp', + 'click .delete': 'confirmDelete', + 'click .edit': 'edit', + 'click .test': 'test', + 'click .setAsStart': 'setAsStart', + 'dblclick': 'edit' + } +}); diff --git a/js/views/storyeditview/search.js b/js/views/storyeditview/search.js new file mode 100644 index 000000000..97c45845b --- /dev/null +++ b/js/views/storyeditview/search.js @@ -0,0 +1,82 @@ +/** + Manages the search box and associated modal. + + @class StoryEditView.Search + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.Search = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.searchField = this.$('.searchField'); + }, + + /** + Adjusts passage view highlighting based on a search criteria. + + @method searchFor + @param {String} search string to search for + @param {String} flags Regexp flags to apply, defaults to 'i' + **/ + + searchFor: function (search, flags) + { + // convert entered text to regexp, escaping text + // cribbed from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + + search = new RegExp(search.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1"), flags || 'i'); + + this.parent.children.each(function (view) + { + if (view.model.matches(search)) + view.highlight(); + else + view.unhighlight(); + }); + }, + + /** + Removes all highlighting from passage views. + + @method clear + **/ + + clear: function() + { + this.searchField.val(''); + this.$('.clearSearch').addClass('hide'); + + this.parent.children.each(function (view) + { + view.unhighlight(); + }); + }, + + events: + { + 'keyup .searchField': _.debounce(function (e) + { + // Escape key clears the field + + if (e.keyCode == 27) + this.searchField.val(''); + + var search = this.searchField.val(); + + if (search != '') + { + this.$('.clearSearch').removeClass('hide'); + this.searchFor(this.searchField.val()); + } + else + { + this.clear(); + }; + + }, 100) + } +}); diff --git a/js/views/storyeditview/storyeditview.js b/js/views/storyeditview/storyeditview.js new file mode 100755 index 000000000..b0f01d2ce --- /dev/null +++ b/js/views/storyeditview/storyeditview.js @@ -0,0 +1,597 @@ +/** + Offers an interface for editing a story. This class is concerned + with editing the story itself; editing individual passages is handled + through PassageItemViews. This sets up links from the passage views to + this one by setting each child's parentView property to this one. + + @class StoryEditView + @extends Marionette.CompositeView +**/ + +'use strict'; + +var StoryEditView = Marionette.CompositeView.extend( +{ + /** + Maps numeric zoom settings (that are in our model) to + nice adjectives that we use in our CSS. + + @property ZOOM_MAPPINGS + @type Object + @final + **/ + + ZOOM_MAPPINGS: + { + big: 1, + medium: 0.6, + small: 0.25 + }, + + childView: PassageItemView, + childViewContainer: '.passages .content', + childViewOptions: function() { return { parentView: this }; }, + template: '#templates .storyEditView', + + initialize: function() + { + this.listenTo(this.model, 'change:zoom', this.syncZoom) + .listenTo(this.model, 'change:name', this.syncName) + .listenTo(this.model, 'error', function (model, resp, options) + { + ui.notify('A problem occurred while saving your changes (' + resp + ').', 'danger'); + }); + + this.collection = this.model.fetchPassages(); + this.listenTo(this.collection, 'change:top change:left', this.resize) + .listenTo(this.collection, 'change:name', function (p) + { + // update passages linking to this one to preserve links + + _.invoke(this.collection.models, 'replaceLink', p.previous('name'), p.get('name')); + }) + .listenTo(this.collection, 'add', function (p) + { + // set as starting passage if we only have one + + if (this.collection.length == 1) + this.model.save({ startPassage: p.id }); + }) + .listenTo(this.collection, 'error', function (model, resp, options) + { + ui.notify('A problem occurred while saving your changes (' + resp + ').', 'danger'); + }); + }, + + onShow: function() + { + ui.initEl(this.$el); + this.syncName(); + + // enable space bar scrolling + + $(document).on('keydown', function (e) + { + if (e.keyCode == 32 && $('input:focus, textarea:focus').length == 0) + { + this.startMouseScrolling(); + e.preventDefault(); + }; + }.bind(this)); + + $(document).on('keyup', function (e) + { + if (e.keyCode == 32 && $('input:focus, textarea:focus').length == 0) + { + this.stopMouseScrolling(); + e.preventDefault(); + }; + }.bind(this)); + + // delete selected passages with the delete key + + $(document).on('keyup', function (e) + { + if (e.keyCode == 46) + { + var selected = this.children.filter(function (v) + { + return v.selected; + }); + + switch (selected.length) + { + // bug out if none are selected + case 0: + return; + + // immediately delete if it's just one passage + case 1: + this.deleteSelectedPassages(); + break; + + // show a confirmation modal if it's more than just 1 + default: + + // set count appropriately + // yikes, localization issues here + + var message = 'Are you sure you want to delete these ' + + selected.length + ' passages? This cannot be undone.'; + + ui.confirm(message, ' Delete', + this.deleteSelectedPassages.bind(this), + { buttonClass: 'danger' }); + }; + }; + }.bind(this)); + + // always hide the story bubble when a click occurs on it + // (e.g. when a menu item is selected) + + this.$el.on('click', '.storyBubble', function() + { + $('.storyBubble').bubble('hide'); + }); + + // resize the story map whenever the browser window resizes + + this.resize(); + $(window).on('resize', _.debounce(this.resize.bind(this), 500)); + + this.syncZoom(); + this.linkManager = new StoryEditView.LinkManager({ el: this.el, parent: this }); + this.toolbar = new StoryEditView.Toolbar({ el: this.$('.toolbar'), parent: this }); + this.passageEditor = new StoryEditView.PassageEditor({ el: this.$('#passageEditModal'), parent: this }); + this.scriptEditor = new StoryEditView.ScriptEditor({ el: this.$('#scriptEditModal'), parent: this }); + this.styleEditor = new StoryEditView.StyleEditor({ el: this.$('#stylesheetEditModal'), parent: this }); + this.search = new StoryEditView.Search({ el: this.$('.searchContainer'), parent: this }); + this.searchModal = new StoryEditView.SearchModal({ el: this.$('#searchModal'), parent: this }); + this.renameModal = new StoryEditView.RenameStoryModal({ el: this.$('#renameStoryModal'), parent: this }); + this.storyFormatModal = new StoryEditView.StoryFormatModal({ el: this.$('#storyFormatModal'), parent: this }); + this.statsModal = new StoryEditView.StatsModal({ el: this.$('#statsModal'), parent: this }); + + if (! window.app.hasPrimaryTouchUI()) + this.marquee = new StoryEditView.Marquee({ el: this.$('.passages'), parent: this }); + + // if we have no passages in this story, give the user one to start with + // otherwise, fade in existing + + if (this.collection.length == 0) + this.addPassage(); + else + this.$('.passages .content').addClass('fadeIn fast'); + }, + + /** + Does cleanup of stuff set up in onShow(). + + @method onDestroy + @private + **/ + + onDestroy: function() + { + this.linkManager.destroy(); + $(document).off('keydown'); + $(document).off('keyup'); + $(window).off('resize'); + }, + + /** + Adds a new passage. + + @method addPassage + @param {String} name name of the passage; defaults to model default + @param {Number} left left position; defaults to horizontal center of the window + @param {Number} top top position; defaults to vertical center of the window + **/ + + addPassage: function (name, left, top) + { + var zoom = this.model.get('zoom'); + + if (! left) + { + var offsetX = this.$('.passage:first').width() / 2; + left = (($(window).scrollLeft() + $(window).width() / 2) / zoom) - offsetX; + }; + + if (! top) + { + var offsetY = this.$('.passage:first').height() / 2; + top = (($(window).scrollTop() + $(window).height() / 2) / zoom) - offsetY; + }; + + // make sure the name is unique + + name = name || Passage.prototype.defaults.name; + + if (this.collection.findWhere({ name: name })) + { + var origName = name; + var nameIndex = 0; + + do + nameIndex++; + while + (this.collection.findWhere({ name: origName + ' ' + nameIndex })); + + name = origName + ' ' + nameIndex; + }; + + var passage = this.collection.create({ + name: name, + story: this.model.id, + left: left, + top: top + }, { wait: true }); + + // position the passage so it doesn't overlap any others + + this.positionPassage(passage); + passage.save(); + this.children.findByModel(passage).appear(); + }, + + /** + Deletes all currently selected passages. + + @method deleteSelectedPassages + **/ + + deleteSelectedPassages: function() + { + _.invoke(this.children.filter(function (v) + { + return v.selected; + }), 'delete'); + }, + + /** + Opens a new tab with the playable version of this story. This + will re-use the same tab for a particular story. + + @method play + **/ + + play: function() + { + // verify the starting point + + if (Passage.withId(this.model.get('startPassage')) === undefined) + { + ui.notify('This story does not have a starting point. Use the icon on a passage to set this.', 'danger'); + return; + }; + + // try re-using the same window + + var playWindow = window.open('', 'twinestory_play_' + this.model.id); + + if (playWindow.location.href == 'about:blank') + playWindow.location.href = '#stories/' + this.model.id + '/play'; + else + { + playWindow.location.reload(); + ui.notify('Refreshed the playable version of your story in the previously-opened tab or window.'); + }; + }, + + /** + Opens a new tab with the playable version of this story, in test mode. This + will re-use the same tab for a particular story. + + @method test + @param {Number} startId id to start the story on; if unspecified; uses the user-set one + **/ + + test: function (startId) + { + var url = '#stories/' + this.model.id + '/test'; + + if (startId) + url += '/' + startId; + + // verify the starting point + + var startOk = false; + + if (! startId) + startOk = (Passage.withId(this.model.get('startPassage')) !== undefined); + else + startOk = (Passage.withId(startId) !== undefined); + + if (! startOk) + { + ui.notify('This story does not have a starting point. Use the icon on a passage to set this.', 'danger'); + return; + }; + + // try re-using the same window + + var testWindow = window.open('', 'twinestory_test_' + this.model.id); + + if (testWindow.location.href == 'about:blank') + testWindow.location.href = url; + else + { + testWindow.location.reload(); + ui.notify('Refreshed the test version of your story in the previously-opened tab or window.'); + }; + }, + + /** + Opens a new tab with the proofing copy of this story. This + will re-use the same tab for a particular story. + + @method proof + **/ + + proof: function() + { + window.open('#stories/' + this.model.id + '/proof', 'twinestory_proof_' + this.model.id); + }, + + /** + Publishes the story to a file. + + @method publish + **/ + + publish: function (options) + { + // verify the starting point + + if (Passage.withId(this.model.get('startPassage')) === undefined) + ui.notify('This story does not have a starting point. Use the icon on a passage to set this.', 'danger'); + else + window.app.publishStory(this.model, this.model.get('name') + '.html'); + }, + + /** + This resizes the .passages div to either: + * the size of the browser window + * the minimum amount of space needed to enclose all existing passages + + ... whichever is bigger, plus 75% of the browser window's width and height, so + that there's always room for the story to expand. + + This then resizes the view's element to match the size of the .passages div, + so that lines can be drawn between passage DOM elements properly. + + @method resize + **/ + + resize: function() + { + var winWidth = $(window).width(); + var winHeight = $(window).height(); + var zoom = this.model.get('zoom'); + var width = winWidth; + var height = winHeight; + + if (this.collection.length > 0) + { + var rightPassage = this.collection.max(function (item) + { + return item.get('left'); + }); + + var bottomPassage = this.collection.max(function (item) + { + return item.get('top'); + }); + + var passagesWidth = zoom * (rightPassage.get('left') + Passage.width); + var passagesHeight = zoom * (bottomPassage.get('top') + Passage.height); + width = Math.max(passagesWidth, winWidth); + height = Math.max(passagesHeight, winHeight); + } + else + { + width = winWidth; + height = winHeight; + }; + + width += winWidth * 0.5; + height += winHeight * 0.5; + + this.$('.passages').css( + { + width: width, + height: height + }); + + this.$('canvas').attr( + { + width: width, + height: height + }); + }, + + /** + Begins scrolling the document in response to mouse motion events. + + @method startMouseScrolling + **/ + + startMouseScrolling: function() + { + /** + The mouse position that space bar scrolling began at, + with x and y properties. + + @property mouseScrollStart + @type Object + **/ + + this.mouseScrollStart = this.mouseScrollStart || {}; + this.mouseScrollStart.x = null; + this.mouseScrollStart.y = null; + + /** + The scroll position of the document when space bar scrolling began, + with x and y properties. + + @property pageScrollStart + @type Object + **/ + + this.pageScrollStart = this.pageScrollStart || {}; + this.pageScrollStart.x = $(window).scrollLeft(); + this.pageScrollStart.y = $(window).scrollTop(); + + $('#storyEditView').addClass('scrolling'); + $(window).on('mousemove', { self: this }, this.mouseScroll); + }, + + /** + Stops scrolling the document in response to mouse motion events. + + @method stopMouseScrolling + **/ + + stopMouseScrolling: function() + { + $('#storyEditView').removeClass('scrolling'); + $(window).off('mousemove', this.mouseScroll); + }, + + mouseScroll: function (e) + { + var self = e.data.self; + + if (! self.mouseScrollStart.x && ! self.mouseScrollStart.y) + { + // this is our first mouse motion event, record position + + self.mouseScrollStart.x = e.pageX; + self.mouseScrollStart.y = e.pageY; + } + else + { + $(window).scrollLeft(self.pageScrollStart.x - (e.pageX - self.mouseScrollStart.x)); + $(window).scrollTop(self.pageScrollStart.y - (e.pageY - self.mouseScrollStart.y)); + }; + }, + + /** + Nudges a passage so that it does not overlap any other passage in the view, + and so that it snaps to the grid if that's set in the model. This does *not* + save changes to the passage model. + + @method positionPassage + @param {Passage} passage Passage to nudge. + @param {Function} filter If passed, any passage this function returns false for + will be ignored when checking for overlaps. + **/ + + positionPassage: function (passage, filter) + { + // displace + + this.collection.each(function (p) + { + if (filter && ! filter(p)) + return; + + if (p.id != passage.id && p.intersects(passage)) + { + var done = false; + p.displace(passage); + }; + }); + + // snap to grid + + if (this.model.get('snapToGrid')) + { + var xMove, yMove; + var hGrid = Passage.width / 2; + var vGrid = Passage.height / 2; + + var leftMove = passage.get('left') % hGrid; + + if (leftMove < hGrid / 2) + xMove = - leftMove; + else + xMove = hGrid - leftMove; + + var upMove = passage.get('top') % vGrid; + + if (upMove < vGrid / 2) + yMove = - upMove; + else + yMove = vGrid - upMove; + + passage.set({ left: passage.get('left') + xMove, top: passage.get('top') + yMove }); + }; + }, + + /** + Syncs the CSS class associated with the view with model. + + @method syncZoom + **/ + + syncZoom: function() + { + var zoom = this.model.get('zoom'); + + for (var desc in this.ZOOM_MAPPINGS) + if (this.ZOOM_MAPPINGS[desc] == zoom) + { + this.$el.removeClass('zoom-small zoom-medium zoom-big').addClass('zoom-' + desc); + break; + }; + }, + + /** + Syncs the window title with the story name. + + @method syncName + **/ + + syncName: function() + { + document.title = 'Editing \u201c' + this.model.get('name') + '\u201d'; + }, + + updateSaved: function() + { + this.$('.saveIndicator').addClass('active fadeOut slow').one('animationend', function() + { + $(this).removeClass('active fadeOut'); + }); + + this.$('.storyName').attr('title', 'Last saved at ' + new XDate().toString('h:mm TT, M/d/yyyy')); + this.$('.storyName').powerTip(); + }, + + events: + { + 'drag .passage': function (e) + { + // draw links between passages as they are dragged around + + this.linkManager.cachePassage(this.collection.get($(e.target).closest('.passage').attr('data-id'))); + this.linkManager.drawLinks(); + }, + + 'mousedown': function (e) + { + // record the click target + + /** + The last element that was the target of a mousedown event. + This is used by child views to see if they should pay attention to a + mouseup event, for example. + + @property {jQuery Object} lastMousedown + **/ + + this.lastMousedown = $(e.target); + } + }, +}); diff --git a/js/views/storyeditview/toolbar.js b/js/views/storyeditview/toolbar.js new file mode 100644 index 000000000..890684274 --- /dev/null +++ b/js/views/storyeditview/toolbar.js @@ -0,0 +1,162 @@ +/** + Manages the toolbar of a StoryEditView. + + @class StoryEditView.Toolbar + @extends Backbone.View +**/ + +'use strict'; + +StoryEditView.Toolbar = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.syncZoomButtons(); + this.syncStorySaved(); + this.listenTo(this.parent.model, 'change:zoom', this.syncZoomButtons); + this.listenTo(this.parent.model, 'change:name', this.syncStoryName); + this.listenTo(this.parent.model, 'update', this.syncStorySaved); + this.listenTo(this.parent.collection, 'update', this.syncStorySaved); + }, + + /** + Synchronizes the story name shown with the model. + + @method syncStoryName + **/ + + syncStoryName: function() + { + this.$('.storyNameVal').text(this.parent.model.get('name')); + }, + + /** + Synchronizes the selected state of the zoom buttons with the model. + + @method syncZoomButtons + **/ + + syncZoomButtons: function() + { + var zoom = this.parent.model.get('zoom'); + + // find the correct zoom description + + for (var desc in this.parent.ZOOM_MAPPINGS) + if (this.parent.ZOOM_MAPPINGS[desc] == zoom) + var className = 'zoom' + desc[0].toUpperCase() + desc.substr(1); + + // set toolbar active states accordingly + + this.$('.zooms button').each(function() + { + var $t = $(this); + + if ($t.hasClass(className)) + $t.addClass('active'); + else + $t.removeClass('active'); + }); + }, + + /** + Synchronizes the checked state of the Snap to Grid menu item with the model. + + @method syncSnapToGrid + **/ + + syncSnapToGrid: function() + { + var menu = this.$('.snapToGrid').closest('li'); + + if (this.parent.model.get('snapToGrid')) + menu.addClass('checked'); + else + menu.removeClass('checked'); + }, + + /** + Sets the tooltip of the story menu to indicate that a save has + just occurred. + + @method syncStorySaved + @param {Date} forceDate If passed, uses this date instead of the current one + **/ + + syncStorySaved: function (forceDate) + { + var $sn = this.$('.storyName'); + var date = (forceDate) ? new XDate(forceDate) : new XDate(); + + $sn.attr('title', $sn.data('datetext').replace('%', date.toString($sn.data('dateformat')))); + $sn.powerTip(); + }, + + events: + { + 'click .editScript': function (e) + { + this.parent.scriptEditor.open(); + }, + + 'click .editStyle': function (e) + { + this.parent.styleEditor.open(); + }, + + 'click .renameStory': function (e) + { + this.parent.renameModal.open(); + }, + + 'click .addPassage': function (e) + { + this.parent.addPassage(); + }, + + 'click .testStory': function (e) + { + this.parent.test(); + }, + + 'click .playStory': function (e) + { + this.parent.play(); + }, + + 'click .proofStory': function (e) + { + this.parent.proof(); + }, + + 'click .publishStory': function (e) + { + this.parent.publish(); + }, + + 'click .storyStats': function (e) + { + this.parent.statsModal.open(); + }, + + 'click .changeFormat': function (e) + { + this.parent.storyFormatModal.open(); + }, + + 'click .zoomBig, .zoomMedium, .zoomSmall': function (e) + { + var desc = $(e.target).closest('button').attr('class'); + desc = desc.replace(/^zoom/, '').replace(/ .*/, '').toLowerCase(); + this.parent.model.save({ zoom: this.parent.ZOOM_MAPPINGS[desc] }); + }, + + 'click .snapToGrid': function() + { + this.parent.model.save({ snapToGrid: ! this.parent.model.get('snapToGrid') }); + }, + + 'bubbleshow .storyBubble': 'syncSnapToGrid' + } +}); diff --git a/js/views/storylistview/modals/duplicatemodal.js b/js/views/storylistview/modals/duplicatemodal.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/views/storylistview/modals/formatsmodal.js b/js/views/storylistview/modals/formatsmodal.js new file mode 100644 index 000000000..cb20359a5 --- /dev/null +++ b/js/views/storylistview/modals/formatsmodal.js @@ -0,0 +1,254 @@ +'use strict'; + +StoryListView.FormatsModal = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.itemTemplate = _.template($('.formatItem').html()); + }, + + /** + Opens a modal dialog for editing default formats. + + @method open + **/ + + open: function() + { + this.$('.error').hide(); + + // begin loading formats immediately + + this.$('.storyFormatList, .proofingFormatList').empty(); + this.formatsToLoad = StoryFormatCollection.all(); + this.loadNextFormat(); + + this.$el.data('modal').trigger('show'); + }, + + /** + Closes the modal dialog for editing default formats. + + @method close + **/ + + close: function() + { + this.$el.data('modal').trigger('hide'); + }, + + /** + Incrementally loads information about each story format. + If there are more remaining to be loaded, then this calls itself + once the load is complete. + + @method loadNextFormat + **/ + + loadNextFormat: function() + { + if (this.formatsToLoad.length > 0) + { + var format = this.formatsToLoad.at(0); + + format.load(function (e) + { + if (e === undefined) + { + // calculate containing directory for the format + // so that image URLs, for example, are correct + + var path = format.get('url').replace(/\/[^\/]*?$/, ''); + var fullContent = _.extend(format.properties, { path: path, userAdded: format.get('userAdded') }); + var content = $(this.itemTemplate(fullContent)); + + if (fullContent.proofing) + this.$('.proofingFormatList').append(content); + else + this.$('.storyFormatList').append(content); + } + else + ui.notify('The story format “' + format.get('name') + '” could not be loaded (' + e.message + ').', 'danger'); + + this.formatsToLoad.remove(format); + this.loadNextFormat(); + }.bind(this)); + } + else + { + this.syncButtons(); + this.$('.loading').hide(); + }; + }, + + /** + Tries to add a story format and update the list in the modal. If this succeeds, + the tab where the format now belongs to is shown and the format description is + animated in. If this fails, an error message is shown to the user. This call is + asynchronous. + + @method addFormat + @param {String} url URL of the new story format + **/ + + addFormat: function (url) + { + // create a temporary model and try loading it + + var test = new StoryFormat({ url: url }); + this.$('.loading').fadeIn(); + + test.load(function (err) + { + if (! err) + { + // save it for real + + StoryFormatCollection.all().create({ name: test.properties.name, url: url }); + + // add it to the appropriate list + + var path = url.replace(/\/[^\/]*?$/, ''); + var fullContent = _.extend(test.properties, { path: path, userAdded: true }); + var content = $(this.itemTemplate(fullContent)); + + if (fullContent.proofing) + { + this.$('.proofingFormatList').append(content); + this.$('.showProofingFormats').tab(); + content.hide().slideDown(); + } + else + { + this.$('.storyFormatList').append(content); + this.$('.showStoryFormats').tab(); + content.hide().slideDown(); + }; + + // clear the URL input + + this.$('.addFormat input[type="text"]').val(''); + this.$('.error').hide(); + } + else + this.$('.error').fadeIn().html('The story format at ' + url + + ' could not be added (' + err.message + ').'); + + this.$('.loading').hide(); + }.bind(this)); + }, + + /** + Removes a story format. + + @method removeFormat + @param {String} name the name of the story format + **/ + + removeFormat: function (name) + { + StoryFormat.withName(name).destroy(); + }, + + /** + Sets the default story format. + + @method setDefaultFormat + @param {String} name the name of the story format + **/ + + setDefaultFormat: function (name) + { + AppPref.withName('defaultFormat').save({ value: name }); + }, + + /** + Sets the default proofing format. + + @method setProofingFormat + @param {String} name the name of the story format + **/ + + setProofingFormat: function (name) + { + AppPref.withName('proofingFormat').save({ value: name }); + }, + + /** + Syncs the active state of setDefault buttons with user preferences. + + @method syncButtons + **/ + + syncButtons: function() + { + var defaultFormat = AppPref.withName('defaultFormat').get('value'); + var proofingFormat = AppPref.withName('proofingFormat').get('value'); + + this.$('.storyFormatList .format').each(function() + { + var $t = $(this); + + if ($t.data('format') == defaultFormat) + $t.find('.setDefault').addClass('active'); + else + $t.find('.setDefault').removeClass('active'); + }); + + this.$('.proofingFormatList .format').each(function() + { + var $t = $(this); + + if ($t.data('format') == proofingFormat) + $t.find('.setDefault').addClass('active'); + else + $t.find('.setDefault').removeClass('active'); + }); + }, + + events: + { + 'click .showRemoveConfirm': function (e) + { + var container = $(e.target).closest('.buttons'); + container.find('.normalButtons').hide(); + container.find('.removeConfirm').fadeIn(); + }, + + 'click .hideRemoveConfirm': function (e) + { + var container = $(e.target).closest('.buttons'); + container.find('.normalButtons').fadeIn(); + container.find('.removeConfirm').hide(); + }, + + 'click .remove': function (e) + { + var container = $(e.target).closest('.format'); + this.removeFormat(container.data('format')); + container.slideUp(); + }, + + 'click .setDefault': function (e) + { + var container = $(e.target).closest('.format'); + var format = container.data('format'); + + if (container.closest('.storyFormatList').length > 0) + this.setDefaultFormat(format); + else if (container.closest('.proofingFormatList').length > 0) + this.setProofingFormat(format); + else + throw new Error("don't know what kind of format to set as default"); + + this.syncButtons(); + }, + + 'submit .addFormat': function (e) + { + this.addFormat(this.$('.addFormat input[type="text"]').val()); + e.preventDefault(); + } + } +}); diff --git a/js/views/storylistview/storagequota.js b/js/views/storylistview/storagequota.js new file mode 100644 index 000000000..805c2cba3 --- /dev/null +++ b/js/views/storylistview/storagequota.js @@ -0,0 +1,69 @@ +'use strict'; + +StoryListView.StorageQuota = Backbone.View.extend( +{ + initialize: function (options) + { + this.parent = options.parent; + this.render(); + }, + + render: function() + { + var usedEl = this.$('.used'); + var percentEl = this.$('.percent'); + + // special case: we have no stories + + if (this.parent.collection.length == 0) + { + usedEl.css('display', 'none'); + percentEl.text('100'); + return; + }; + + // otherwise, we test in 100k chunks + + var used = JSON.stringify(window.localStorage).length; + var testString = new Array(102400).join('x'); + var free = 102400; + var storageIndex = 0; + + var interval = window.setInterval(function() + { + var stop = false; + + try + { + window.localStorage.setItem('__quotatest' + storageIndex, testString); + free += 102400; + storageIndex++; + + var percent = Math.round(used / (used + free) * 100); + + percentEl.text(100 - percent); + + if (percent <= 1) + { + usedEl.css('width', '0.25em'); + percentEl.text('99'); + stop = true; + } + else + usedEl.css('width', percent + '%'); + } + catch (e) + { + stop = true; + }; + + if (stop) + { + for (var i = 0; i <= storageIndex; i++) + window.localStorage.removeItem('__quotatest' + i); + + window.clearInterval(interval); + }; + }, 20); + } +}); diff --git a/js/views/storylistview/storyitemview.js b/js/views/storylistview/storyitemview.js new file mode 100644 index 000000000..187a60dee --- /dev/null +++ b/js/views/storylistview/storyitemview.js @@ -0,0 +1,197 @@ +/** + An individual item in the list managed by StoryListView. + This offers quick links for editing, playing, and deleting + a story; StoryEditView handles more detailed changes. + + @class StoryItemView + @extends Marionette.ItemView +**/ + +'use strict'; + +var StoryItemView = Marionette.ItemView.extend( +{ + template: '#templates .storyItemView', + + initialize: function (options) + { + this.parentView = options.parentView; + this.passages = options.passages; + this.listenTo(this.model, 'change:name', function() + { + this.render(); + this.preview.renderPassages(); + }); + }, + + onDomRefresh: function() + { + this.preview = new StoryItemView.Preview({ el: this.$('.preview'), parent: this }); + }, + + /** + Opens a StoryEditView for this story. + + @method edit + @param {Object} e event object, used to animate the transition + **/ + + edit: function (e) + { + var proxy = $('
'); + + // match the proxy's zoom to the model + + for (var desc in StoryEditView.prototype.ZOOM_MAPPINGS) + if (StoryEditView.prototype.ZOOM_MAPPINGS[desc] == this.model.get('zoom')) + { + proxy.addClass('zoom-' + desc); + break; + }; + + // if we don't know where the edit event is coming from, + // default to the center of the window + + var originX = e ? e.pageX : $(window).width() / 2; + var originY = e ? e.pageY : $(window).height() / 2; + + proxy.css( + { + transformOrigin: originX + 'px ' + originY + 'px', + '-webkit-transform-origin': originX + 'px ' + originY + 'px' + }) + .one('animationend', function() + { + window.location.hash = '#stories/' + this.model.id; + }.bind(this)); + + this.parentView.$el.append(proxy); + }, + + /** + Plays this story in a new tab. + + @method play + **/ + + play: function() + { + if (Passage.withId(this.model.get('startPassage')) === undefined) + ui.notify('This story does not have a starting point. Edit this story and use the icon on a passage to set this.', 'danger'); + else + window.open('#stories/' + this.model.id + '/play', 'twinestory_play_' + this.model.id); + }, + + /** + Tests this story in a new tab. + + @method test + **/ + + test: function() + { + if (Passage.withId(this.model.get('startPassage')) === undefined) + ui.notify('This story does not have a starting point. Edit this story and use the icon on a passage to set this.', 'danger'); + else + window.open('#stories/' + this.model.id + '/test', 'twinestory_test_' + this.model.id); + }, + + /** + Downloads the story to a file. + + @method publish + **/ + + publish: function() + { + // verify the starting point + + if (Passage.withId(this.model.get('startPassage')) === undefined) + ui.notify('This story does not have a starting point. Use the icon on a passage to set this.', 'danger'); + else + window.app.publishStory(this.model, this.model.get('name') + '.html'); + }, + + /** + Shows a confirmation before deleting the model via delete(). + + @method confirmDelete + **/ + + confirmDelete: function() + { + window.ui.confirm("Are you sure you want to delete “" + this.model.get('name') + + "”? This cannot be undone.", ' Delete Forever', this.delete.bind(this), + { buttonClass: 'danger' }); + }, + + /** + Prompts the user for a new name for the story, then saves it. + + @method rename + **/ + + rename: function() + { + window.ui.prompt("What should “" + this.model.get('name') + "” be renamed to?", + ' Rename', function (text) + { + this.model.save({ name: text }); + }.bind(this), + { defaultText: this.model.get('name') }); + }, + + /** + Prompts the user for a name, then creates a duplicate version of this + story accordingly. + + @method confirmDuplicate + **/ + + confirmDuplicate: function() + { + window.ui.prompt("What should the duplicate be named?", + ' Duplicate', function (text) + { + var dupe = this.model.duplicate(text); + this.parentView.collection.add(dupe); + }.bind(this), + { defaultText: this.model.get('name') + ' Copy' }); + }, + + /** + Deletes the model associated with this view. + + @method delete + **/ + + delete: function() + { + this.$('.story').addClass('disappear').one('animationend', function() + { + this.model.destroy(); + }.bind(this)); + }, + + /** + Animates the view appearing, as in when it is newly created. + + @method appear + **/ + + appear: function() + { + this.$('.story').addClass('appear'); + }, + + events: + { + 'click .confirmDelete': 'confirmDelete', + 'click .confirmDuplicate': 'confirmDuplicate', + 'click .rename': 'rename', + 'click .edit': 'edit', + 'click .play': 'play', + 'click .test': 'test', + 'click .publish': 'publish' + } +}); diff --git a/js/views/storylistview/storylistview.js b/js/views/storylistview/storylistview.js new file mode 100644 index 000000000..e407febc7 --- /dev/null +++ b/js/views/storylistview/storylistview.js @@ -0,0 +1,362 @@ +/** + Shows a list of stories. Each list item is managed by a StoryItemView. + + @class StoryListView + @extends Backbone.Marionette.CompositeView +**/ + +'use strict'; + +var StoryListView = Backbone.Marionette.CompositeView.extend( +{ + childView: StoryItemView, + childViewContainer: '.stories', + childViewOptions: function (model) + { + /** + A cached collection of all passages, to speed up rendering of previews. + @property previewCache + **/ + + if (! this.previewCache) + this.previewCache = PassageCollection.all(); + + return { parentView: this, passages: this.previewCache.where({ story: model.get('id') }) }; + }, + template: '#templates .storyListView', + + /** + How long we wait after the user first loads this view + to show a message asking for a donation, in milliseconds. + + @property DONATION_DELAY + @final + **/ + + // 14 days + DONATION_DELAY: 1000 * 60 * 60 * 24 * 14, + + /** + How often we check for a new version of Twine, in milliseconds. + + @property UPDATE_CHECK_DELAY + @final + **/ + + // 1 day + UPDATE_CHECK_DELAY: 1000 * 60 * 60 * 24, + + /** + If true, then we do not animate the stories appearing, nor + do we do a version or donation check. + + @property appearFast + @default false + **/ + appearFast: false, + + initialize: function() + { + this.sortByDate(); + this.collection.on('sort', function() + { + this.render(); + + // reset SVG previews + + this.children.each(function (view) + { + view.preview.passagesRendered = false; + }); + + this.showNextPreview(); + }.bind(this)); + + this.collection.on('add', function() + { + this.previewCache = null; + }.bind(this)); + + this.collection.on('reset', function() + { + this.previewCache = null; + this.render(); + }.bind(this)); + }, + + onShow: function() + { + ui.initEl(this.$el); + this.syncStoryCount(); + + this.storageQuota = new StoryListView.StorageQuota({ parent: this, el: this.$('.quota') }); + this.formatsModal = new StoryListView.FormatsModal({ parent: this, el: this.$('#formatsModal') }); + + // set the version number in the HTML + + this.$('.app-version').text(window.app.version); + + // if we were previously editing a story, show a proxy + // shrinking back into the appropriate item + + if (this.previouslyEditing) + { + var proxy = $('
'); + proxy.one('animationend', function() + { + proxy.remove(); + }); + + this.children.find(function (c) + { + if (c.model.get('id') == this.previouslyEditing) + { + var $s = c.$('.story'); + var o = $s.offset(); + o.left += $s.outerHeight() / 2; + + // we don't vertically center because it zooms into empty + // space on short titles + + proxy.css( + { + '-webkit-transform-origin': o.left + 'px ' + o.top + 'px', + transformOrigin: o.left + 'px ' + o.top + 'px', + }); + return true; + }; + }.bind(this)); + + this.$el.append(proxy); + }; + + // if we were asked to appear fast, we do nothing else + + if (this.appearFast) + return; + + // is it time to ask for a donation? + + var firstRunPref = AppPref.withName('firstRunTime', new Date().getTime()); + var donateShown = AppPref.withName('donateShown', false); + + if (! donateShown.get('value') && + new Date().getTime() > firstRunPref.get('value') + this.DONATION_DELAY) + { + _.delay(function() + { + this.$('#donateModal').data('modal').trigger('show'); + }.bind(this), 50); + + donateShown.save({ value: true }); + } + else + { + // is there a new update to Twine? + + var lastUpdateSeenPref = AppPref.withName('lastUpdateSeen', window.app.buildNumber); + + // force last update to be at least the current app version + + if (lastUpdateSeenPref.get('value') < window.app.buildNumber) + lastUpdateSeenPref.save({ value: window.app.buildNumber }); + + var lastUpdateCheckPref = AppPref.withName('lastUpdateCheckTime', new Date().getTime()); + + if (new Date().getTime() > lastUpdateCheckPref.get('value') + this.UPDATE_CHECK_DELAY) + { + window.app.checkForUpdate(lastUpdateSeenPref.get('value'), function (data) + { + lastUpdateSeenPref.save({ value: data.buildNumber }); + $('#appUpdateModal .version').text(data.version); + $('#appUpdateModal a.download').attr('href', data.url); + + _.delay(function() + { + $('#appUpdateModal').data('modal').trigger('show'); + }.bind(this), 50); + }); + }; + }; + }, + + onDomRefresh: function() + { + // trigger display of previews + + _.defer(this.showNextPreview.bind(this)); + }, + + onAddChild: function() + { + this.syncStoryCount(); + }, + + onRemoveChild: function() + { + this.syncStoryCount(); + }, + + /** + Adds a new story with the name entered in the view's input.newName field. + TODO: prevent duplicate story names + + @method addStory + **/ + + addStory: function (e) + { + var story = this.collection.create({ name: this.$('input.newName').val() }); + this.children.findByModel(story).edit(); + e.preventDefault(); + }, + + /** + Saves an archive of all stories by passing the request onto TwineApp.saveArchive(). + + @method saveArchive + **/ + + saveArchive: function() + { + window.app.saveArchive(); + }, + + /** + Tries to import the file indicated by the view's input.importFile field. + The result, either success or failure, is shown above the story table. + + @method importFile + **/ + + importFile: function (e) + { + var reader = new FileReader(); + var bubble = this.$('.importStory').closest('.bubbleContainer'); + bubble.find('.form').addClass('hide'); + bubble.find('.working').removeClass('hide'); + + reader.onload = function (e) + { + var className = ''; + var message = ''; + + try + { + var count = window.app.importFile(e.target.result); + + if (count > 0) + { + if (count == 1) + message = '1 story was imported.'; + else + message = count + ' stories were imported.'; + } + else + { + className = 'danger'; + message = 'Sorry, no stories could be found in this file.'; + } + } + catch (e) + { + className = 'danger'; + message = 'An error occurred while trying to import this file. (' + e.message + ')'; + }; + + ui.notify(message, className); + this.collection.reset(StoryCollection.all().models); + bubble.find('.form').removeClass('hide'); + bubble.find('.working').addClass('hide'); + this.$('.importStory').bubble('hide'); + ui.initEl(this.$el); + }.bind(this); + + reader.readAsText(e.target.files[0], 'UTF-8'); + }, + + showNextPreview: function() + { + var unrendered = this.children.find(function (view) + { + return ! view.preview.passagesRendered; + }); + + if (unrendered !== undefined) + { + unrendered.preview.renderPassages(this.showNextPreview.bind(this)); + }; + }, + + /** + Sorts the story list by alphabetical order. + + @method sortByName + **/ + + sortByName: function() + { + this.collection.order = 'name'; + this.collection.reverseOrder = false; + this.collection.sort(); + this.$('.sortByDate').removeClass('active'); + this.$('.sortByName').addClass('active'); + }, + + /** + Sorts the story list by last edit date. + + @method sortByDate + **/ + + sortByDate: function() + { + this.collection.order = 'lastUpdate'; + this.collection.reverseOrder = true; + this.collection.sort(); + this.$('.sortByDate').addClass('active'); + this.$('.sortByName').removeClass('active'); + }, + + /** + Syncs onscreen appearance of the story table and our 'there are no stories' + message with the collection. + + @method syncStoryCount + **/ + + syncStoryCount: function() + { + if (this.collection.length > 0) + { + this.$('.stories').css('display', 'block'); + this.$('.noStories').css('display', 'none'); + } + else + { + this.$('.stories').css('display', 'none'); + this.$('.noStories').css('display', 'block'); + }; + + document.title = this.collection.length + ' Stor' + + ((this.collection.length == 1) ? 'y' : 'ies'); + }, + + events: + { + 'submit #addStoryForm': 'addStory', + 'click .saveArchive': 'saveArchive', + 'change .importFile': 'importFile', + 'click .sortByDate': 'sortByDate', + 'click .sortByName': 'sortByName', + 'click .showFormats': function() + { + this.formatsModal.open(); + }, + + 'click .showHelp': function() + { + window.open('http://twinery.org/2guide'); + } + } +}); diff --git a/js/views/storylistview/storypreview.js b/js/views/storylistview/storypreview.js new file mode 100644 index 000000000..a9eba33c5 --- /dev/null +++ b/js/views/storylistview/storypreview.js @@ -0,0 +1,152 @@ +/** + This class generates SVG previews of stories. + @class StoryItemView.Preview +**/ + +'use strict'; + +StoryItemView.Preview = Backbone.View.extend( +{ + /** + How fast we animate passages appearing, in milliseconds. + @property appearDuration + @static + **/ + + appearDuration: 500, + + initialize: function (options) + { + /** + The parent StoryItemView. + + @property parent + **/ + + this.parent = options.parent; + + /** + Whether we have rendered our passages onscreen. + + @property passagesRendered + **/ + + this.passagesRendered = false; + + /** + The SVG element on the page. + @property svg + **/ + + this.svg = SVG(this.el); + + /** + A hue derived from the story's name, + represented as the H part of an HSL color. + + @property hue + **/ + + this.hue = 0; + + var storyName = this.parent.model.get('name'); + + for (var i = storyName.length - 1; i >= 0; i--) + this.hue += storyName.charCodeAt(i); + + this.hue = this.hue % 360; + + // set overall background color + + this.$el.closest('.story').css('background', 'hsl(' + this.hue + ', 15%, 95%)'); + }, + + /** + Renders a visualization of passages. + + @method renderPassages + @param {Function} callback If passed, will be called once rendering completes + **/ + + renderPassages: function (callback) + { + // set height to fill the remaining space + // left by the label + + this.svg.height(this.parent.$('.story').innerHeight() - this.parent.$('.label').outerHeight()); + + if (this.parent.passages.length > 1) + { + // find longest passage + + var maxLength = 0; + + _.each(this.parent.passages, function (passage) + { + var len = passage.get('text').length; + + if (len > maxLength) + maxLength = len; + }); + + // render passages + + var c1 = 'hsl(' + this.hue + ', 88%, 40%)'; + var c2 = 'hsl(' + ((this.hue - 30) % 360) + ', 88%, 40%)'; + var c3 = 'hsl(' + ((this.hue + 30) % 360) + ', 88%, 40%)'; + + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + var maxX = Number.NEGATIVE_INFINITY; + var maxY = Number.NEGATIVE_INFINITY; + + _.each(this.parent.passages, function (passage, i) + { + var ratio = passage.get('text').length / maxLength; + var size = 100 + 200 * ratio; + var x = passage.get('left'); + var y = passage.get('top'); + var c = this.svg.circle().center(x + 50, y + 50); + + if (i % 3 == 0) + c.fill({ color: c1, opacity: ratio * 0.9 }); + else + if (i % 2 == 0) + c.fill({ color: c2, opacity: ratio * 0.9 }); + else + c.fill({ color: c3, opacity: ratio * 0.9 }); + + c.animate(this.appearDuration, '>').radius(size / 2); + + if (x - size < minX) + minX = x - size; + + if (x + size > maxX) + maxX = x + size; + + if (y - size < minY) + minY = y - size; + + if (y + size > maxY) + maxY = y + size; + }.bind(this)); + + this.svg.viewbox(minX, minY, Math.abs(minX) + maxX, Math.abs(minY) + maxY); + } + else + { + // special case single or no passage + + if (this.parent.passages.length == 1) + { + this.svg.circle().center(5, 5).fill('hsl(' + this.hue + ', 88%, 40%)').animate(this.appearDuration, '>').radius(2.5); + this.svg.viewbox(0, 0, 10, 10); + }; + }; + + this.passagesRendered = true; + + if (callback) + callback(); + } +}); diff --git a/js/views/welcomeview.js b/js/views/welcomeview.js new file mode 100644 index 000000000..42c8fb08e --- /dev/null +++ b/js/views/welcomeview.js @@ -0,0 +1,62 @@ +/** + Manages showing the user a quick set of intro information, and then + records that it's been shown. + + @class WelcomeView + @extends Backbone.Marionette.ItemView +**/ + +'use strict'; + +var WelcomeView = Backbone.Marionette.ItemView.extend( +{ + template: '#templates .welcomeView', + + initialize: function() + { + this.welcomePref = AppPref.withName('welcomeSeen'); + }, + + finish: function() + { + if (! this.welcomePref) + { + this.welcomePref = new AppPref({ name: 'welcomeSeen' }); + AppPrefCollection.all().add(this.welcomePref); + }; + + this.welcomePref.save({ value: true }); + window.location.hash = '#stories'; + }, + + onRender: function() + { + this.$('div:first-child').css('display', 'block').addClass('appear'); + + this.$el.on('click', 'button, a.done', function (e) + { + var $t = $(e.target); + var next = $t.closest('div').next('div'); + + // fade out existing buttons + + $t.closest('p').addClass('fadeOut') + .on('animationend webkitAnimationEnd MSAnimationEnd', function () + { + $(this).remove(); + }); + + // either show the next div, or move on to the story list + // have to offset the position because we're animating it + // downward, I think + + if ($t.hasClass('done')) + this.finish(); + else + { + next.css('display', 'block').addClass('slideDown'); + $('body').animate({ scrollTop: next.position().top + 100 }); + }; + }.bind(this)); + } +}); diff --git a/lib/backbone/backbone.js b/lib/backbone/backbone.js new file mode 100644 index 000000000..24a550a0a --- /dev/null +++ b/lib/backbone/backbone.js @@ -0,0 +1,1608 @@ +// Backbone.js 1.1.2 + +// (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Backbone may be freely distributed under the MIT license. +// For all details and documentation: +// http://backbonejs.org + +(function(root, factory) { + + // Set up Backbone appropriately for the environment. Start with AMD. + if (typeof define === 'function' && define.amd) { + define(['underscore', 'jquery', 'exports'], function(_, $, exports) { + // Export global even in AMD case in case this script is loaded with + // others that may still expect a global Backbone. + root.Backbone = factory(root, exports, _, $); + }); + + // Next for Node.js or CommonJS. jQuery may not be needed as a module. + } else if (typeof exports !== 'undefined') { + var _ = require('underscore'); + factory(root, exports, _); + + // Finally, as a browser global. + } else { + root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$)); + } + +}(this, function(root, Backbone, _, $) { + + // Initial Setup + // ------------- + + // Save the previous value of the `Backbone` variable, so that it can be + // restored later on, if `noConflict` is used. + var previousBackbone = root.Backbone; + + // Create local references to array methods we'll want to use later. + var array = []; + var push = array.push; + var slice = array.slice; + var splice = array.splice; + + // Current version of the library. Keep in sync with `package.json`. + Backbone.VERSION = '1.1.2'; + + // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns + // the `$` variable. + Backbone.$ = $; + + // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable + // to its previous owner. Returns a reference to this Backbone object. + Backbone.noConflict = function() { + root.Backbone = previousBackbone; + return this; + }; + + // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option + // will fake `"PATCH"`, `"PUT"` and `"DELETE"` requests via the `_method` parameter and + // set a `X-Http-Method-Override` header. + Backbone.emulateHTTP = false; + + // Turn on `emulateJSON` to support legacy servers that can't deal with direct + // `application/json` requests ... will encode the body as + // `application/x-www-form-urlencoded` instead and will send the model in a + // form param named `model`. + Backbone.emulateJSON = false; + + // Backbone.Events + // --------------- + + // A module that can be mixed in to *any object* in order to provide it with + // custom events. You may bind with `on` or remove with `off` callback + // functions to an event; `trigger`-ing an event fires all callbacks in + // succession. + // + // var object = {}; + // _.extend(object, Backbone.Events); + // object.on('expand', function(){ alert('expanded'); }); + // object.trigger('expand'); + // + var Events = Backbone.Events = { + + // Bind an event to a `callback` function. Passing `"all"` will bind + // the callback to all events fired. + on: function(name, callback, context) { + if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this; + this._events || (this._events = {}); + var events = this._events[name] || (this._events[name] = []); + events.push({callback: callback, context: context, ctx: context || this}); + return this; + }, + + // Bind an event to only be triggered a single time. After the first time + // the callback is invoked, it will be removed. + once: function(name, callback, context) { + if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this; + var self = this; + var once = _.once(function() { + self.off(name, once); + callback.apply(this, arguments); + }); + once._callback = callback; + return this.on(name, once, context); + }, + + // Remove one or many callbacks. If `context` is null, removes all + // callbacks with that function. If `callback` is null, removes all + // callbacks for the event. If `name` is null, removes all bound + // callbacks for all events. + off: function(name, callback, context) { + var retain, ev, events, names, i, l, j, k; + if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this; + if (!name && !callback && !context) { + this._events = void 0; + return this; + } + names = name ? [name] : _.keys(this._events); + for (i = 0, l = names.length; i < l; i++) { + name = names[i]; + if (events = this._events[name]) { + this._events[name] = retain = []; + if (callback || context) { + for (j = 0, k = events.length; j < k; j++) { + ev = events[j]; + if ((callback && callback !== ev.callback && callback !== ev.callback._callback) || + (context && context !== ev.context)) { + retain.push(ev); + } + } + } + if (!retain.length) delete this._events[name]; + } + } + + return this; + }, + + // Trigger one or many events, firing all bound callbacks. Callbacks are + // passed the same arguments as `trigger` is, apart from the event name + // (unless you're listening on `"all"`, which will cause your callback to + // receive the true name of the event as the first argument). + trigger: function(name) { + if (!this._events) return this; + var args = slice.call(arguments, 1); + if (!eventsApi(this, 'trigger', name, args)) return this; + var events = this._events[name]; + var allEvents = this._events.all; + if (events) triggerEvents(events, args); + if (allEvents) triggerEvents(allEvents, arguments); + return this; + }, + + // Tell this object to stop listening to either specific events ... or + // to every object it's currently listening to. + stopListening: function(obj, name, callback) { + var listeningTo = this._listeningTo; + if (!listeningTo) return this; + var remove = !name && !callback; + if (!callback && typeof name === 'object') callback = this; + if (obj) (listeningTo = {})[obj._listenId] = obj; + for (var id in listeningTo) { + obj = listeningTo[id]; + obj.off(name, callback, this); + if (remove || _.isEmpty(obj._events)) delete this._listeningTo[id]; + } + return this; + } + + }; + + // Regular expression used to split event strings. + var eventSplitter = /\s+/; + + // Implement fancy features of the Events API such as multiple event + // names `"change blur"` and jQuery-style event maps `{change: action}` + // in terms of the existing API. + var eventsApi = function(obj, action, name, rest) { + if (!name) return true; + + // Handle event maps. + if (typeof name === 'object') { + for (var key in name) { + obj[action].apply(obj, [key, name[key]].concat(rest)); + } + return false; + } + + // Handle space separated event names. + if (eventSplitter.test(name)) { + var names = name.split(eventSplitter); + for (var i = 0, l = names.length; i < l; i++) { + obj[action].apply(obj, [names[i]].concat(rest)); + } + return false; + } + + return true; + }; + + // A difficult-to-believe, but optimized internal dispatch function for + // triggering events. Tries to keep the usual cases speedy (most internal + // Backbone events have 3 arguments). + var triggerEvents = function(events, args) { + var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]; + switch (args.length) { + case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return; + case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return; + case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return; + case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return; + default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return; + } + }; + + var listenMethods = {listenTo: 'on', listenToOnce: 'once'}; + + // Inversion-of-control versions of `on` and `once`. Tell *this* object to + // listen to an event in another object ... keeping track of what it's + // listening to. + _.each(listenMethods, function(implementation, method) { + Events[method] = function(obj, name, callback) { + var listeningTo = this._listeningTo || (this._listeningTo = {}); + var id = obj._listenId || (obj._listenId = _.uniqueId('l')); + listeningTo[id] = obj; + if (!callback && typeof name === 'object') callback = this; + obj[implementation](name, callback, this); + return this; + }; + }); + + // Aliases for backwards compatibility. + Events.bind = Events.on; + Events.unbind = Events.off; + + // Allow the `Backbone` object to serve as a global event bus, for folks who + // want global "pubsub" in a convenient place. + _.extend(Backbone, Events); + + // Backbone.Model + // -------------- + + // Backbone **Models** are the basic data object in the framework -- + // frequently representing a row in a table in a database on your server. + // A discrete chunk of data and a bunch of useful, related methods for + // performing computations and transformations on that data. + + // Create a new model with the specified attributes. A client id (`cid`) + // is automatically generated and assigned for you. + var Model = Backbone.Model = function(attributes, options) { + var attrs = attributes || {}; + options || (options = {}); + this.cid = _.uniqueId('c'); + this.attributes = {}; + if (options.collection) this.collection = options.collection; + if (options.parse) attrs = this.parse(attrs, options) || {}; + attrs = _.defaults({}, attrs, _.result(this, 'defaults')); + this.set(attrs, options); + this.changed = {}; + this.initialize.apply(this, arguments); + }; + + // Attach all inheritable methods to the Model prototype. + _.extend(Model.prototype, Events, { + + // A hash of attributes whose current and previous value differ. + changed: null, + + // The value returned during the last failed validation. + validationError: null, + + // The default name for the JSON `id` attribute is `"id"`. MongoDB and + // CouchDB users may want to set this to `"_id"`. + idAttribute: 'id', + + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function(){}, + + // Return a copy of the model's `attributes` object. + toJSON: function(options) { + return _.clone(this.attributes); + }, + + // Proxy `Backbone.sync` by default -- but override this if you need + // custom syncing semantics for *this* particular model. + sync: function() { + return Backbone.sync.apply(this, arguments); + }, + + // Get the value of an attribute. + get: function(attr) { + return this.attributes[attr]; + }, + + // Get the HTML-escaped value of an attribute. + escape: function(attr) { + return _.escape(this.get(attr)); + }, + + // Returns `true` if the attribute contains a value that is not null + // or undefined. + has: function(attr) { + return this.get(attr) != null; + }, + + // Set a hash of model attributes on the object, firing `"change"`. This is + // the core primitive operation of a model, updating the data and notifying + // anyone who needs to know about the change in state. The heart of the beast. + set: function(key, val, options) { + var attr, attrs, unset, changes, silent, changing, prev, current; + if (key == null) return this; + + // Handle both `"key", value` and `{key: value}` -style arguments. + if (typeof key === 'object') { + attrs = key; + options = val; + } else { + (attrs = {})[key] = val; + } + + options || (options = {}); + + // Run validation. + if (!this._validate(attrs, options)) return false; + + // Extract attributes and options. + unset = options.unset; + silent = options.silent; + changes = []; + changing = this._changing; + this._changing = true; + + if (!changing) { + this._previousAttributes = _.clone(this.attributes); + this.changed = {}; + } + current = this.attributes, prev = this._previousAttributes; + + // Check for changes of `id`. + if (this.idAttribute in attrs) this.id = attrs[this.idAttribute]; + + // For each `set` attribute, update or delete the current value. + for (attr in attrs) { + val = attrs[attr]; + if (!_.isEqual(current[attr], val)) changes.push(attr); + if (!_.isEqual(prev[attr], val)) { + this.changed[attr] = val; + } else { + delete this.changed[attr]; + } + unset ? delete current[attr] : current[attr] = val; + } + + // Trigger all relevant attribute changes. + if (!silent) { + if (changes.length) this._pending = options; + for (var i = 0, l = changes.length; i < l; i++) { + this.trigger('change:' + changes[i], this, current[changes[i]], options); + } + } + + // You might be wondering why there's a `while` loop here. Changes can + // be recursively nested within `"change"` events. + if (changing) return this; + if (!silent) { + while (this._pending) { + options = this._pending; + this._pending = false; + this.trigger('change', this, options); + } + } + this._pending = false; + this._changing = false; + return this; + }, + + // Remove an attribute from the model, firing `"change"`. `unset` is a noop + // if the attribute doesn't exist. + unset: function(attr, options) { + return this.set(attr, void 0, _.extend({}, options, {unset: true})); + }, + + // Clear all attributes on the model, firing `"change"`. + clear: function(options) { + var attrs = {}; + for (var key in this.attributes) attrs[key] = void 0; + return this.set(attrs, _.extend({}, options, {unset: true})); + }, + + // Determine if the model has changed since the last `"change"` event. + // If you specify an attribute name, determine if that attribute has changed. + hasChanged: function(attr) { + if (attr == null) return !_.isEmpty(this.changed); + return _.has(this.changed, attr); + }, + + // Return an object containing all the attributes that have changed, or + // false if there are no changed attributes. Useful for determining what + // parts of a view need to be updated and/or what attributes need to be + // persisted to the server. Unset attributes will be set to undefined. + // You can also pass an attributes object to diff against the model, + // determining if there *would be* a change. + changedAttributes: function(diff) { + if (!diff) return this.hasChanged() ? _.clone(this.changed) : false; + var val, changed = false; + var old = this._changing ? this._previousAttributes : this.attributes; + for (var attr in diff) { + if (_.isEqual(old[attr], (val = diff[attr]))) continue; + (changed || (changed = {}))[attr] = val; + } + return changed; + }, + + // Get the previous value of an attribute, recorded at the time the last + // `"change"` event was fired. + previous: function(attr) { + if (attr == null || !this._previousAttributes) return null; + return this._previousAttributes[attr]; + }, + + // Get all of the attributes of the model at the time of the previous + // `"change"` event. + previousAttributes: function() { + return _.clone(this._previousAttributes); + }, + + // Fetch the model from the server. If the server's representation of the + // model differs from its current attributes, they will be overridden, + // triggering a `"change"` event. + fetch: function(options) { + options = options ? _.clone(options) : {}; + if (options.parse === void 0) options.parse = true; + var model = this; + var success = options.success; + options.success = function(resp) { + if (!model.set(model.parse(resp, options), options)) return false; + if (success) success(model, resp, options); + model.trigger('sync', model, resp, options); + }; + wrapError(this, options); + return this.sync('read', this, options); + }, + + // Set a hash of model attributes, and sync the model to the server. + // If the server returns an attributes hash that differs, the model's + // state will be `set` again. + save: function(key, val, options) { + var attrs, method, xhr, attributes = this.attributes; + + // Handle both `"key", value` and `{key: value}` -style arguments. + if (key == null || typeof key === 'object') { + attrs = key; + options = val; + } else { + (attrs = {})[key] = val; + } + + options = _.extend({validate: true}, options); + + // If we're not waiting and attributes exist, save acts as + // `set(attr).save(null, opts)` with validation. Otherwise, check if + // the model will be valid when the attributes, if any, are set. + if (attrs && !options.wait) { + if (!this.set(attrs, options)) return false; + } else { + if (!this._validate(attrs, options)) return false; + } + + // Set temporary attributes if `{wait: true}`. + if (attrs && options.wait) { + this.attributes = _.extend({}, attributes, attrs); + } + + // After a successful server-side save, the client is (optionally) + // updated with the server-side state. + if (options.parse === void 0) options.parse = true; + var model = this; + var success = options.success; + options.success = function(resp) { + // Ensure attributes are restored during synchronous saves. + model.attributes = attributes; + var serverAttrs = model.parse(resp, options); + if (options.wait) serverAttrs = _.extend(attrs || {}, serverAttrs); + if (_.isObject(serverAttrs) && !model.set(serverAttrs, options)) { + return false; + } + if (success) success(model, resp, options); + model.trigger('sync', model, resp, options); + }; + wrapError(this, options); + + method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update'); + if (method === 'patch') options.attrs = attrs; + xhr = this.sync(method, this, options); + + // Restore attributes. + if (attrs && options.wait) this.attributes = attributes; + + return xhr; + }, + + // Destroy this model on the server if it was already persisted. + // Optimistically removes the model from its collection, if it has one. + // If `wait: true` is passed, waits for the server to respond before removal. + destroy: function(options) { + options = options ? _.clone(options) : {}; + var model = this; + var success = options.success; + + var destroy = function() { + model.trigger('destroy', model, model.collection, options); + }; + + options.success = function(resp) { + if (options.wait || model.isNew()) destroy(); + if (success) success(model, resp, options); + if (!model.isNew()) model.trigger('sync', model, resp, options); + }; + + if (this.isNew()) { + options.success(); + return false; + } + wrapError(this, options); + + var xhr = this.sync('delete', this, options); + if (!options.wait) destroy(); + return xhr; + }, + + // Default URL for the model's representation on the server -- if you're + // using Backbone's restful methods, override this to change the endpoint + // that will be called. + url: function() { + var base = + _.result(this, 'urlRoot') || + _.result(this.collection, 'url') || + urlError(); + if (this.isNew()) return base; + return base.replace(/([^\/])$/, '$1/') + encodeURIComponent(this.id); + }, + + // **parse** converts a response into the hash of attributes to be `set` on + // the model. The default implementation is just to pass the response along. + parse: function(resp, options) { + return resp; + }, + + // Create a new model with identical attributes to this one. + clone: function() { + return new this.constructor(this.attributes); + }, + + // A model is new if it has never been saved to the server, and lacks an id. + isNew: function() { + return !this.has(this.idAttribute); + }, + + // Check if the model is currently in a valid state. + isValid: function(options) { + return this._validate({}, _.extend(options || {}, { validate: true })); + }, + + // Run validation against the next complete set of model attributes, + // returning `true` if all is well. Otherwise, fire an `"invalid"` event. + _validate: function(attrs, options) { + if (!options.validate || !this.validate) return true; + attrs = _.extend({}, this.attributes, attrs); + var error = this.validationError = this.validate(attrs, options) || null; + if (!error) return true; + this.trigger('invalid', this, error, _.extend(options, {validationError: error})); + return false; + } + + }); + + // Underscore methods that we want to implement on the Model. + var modelMethods = ['keys', 'values', 'pairs', 'invert', 'pick', 'omit']; + + // Mix in each Underscore method as a proxy to `Model#attributes`. + _.each(modelMethods, function(method) { + Model.prototype[method] = function() { + var args = slice.call(arguments); + args.unshift(this.attributes); + return _[method].apply(_, args); + }; + }); + + // Backbone.Collection + // ------------------- + + // If models tend to represent a single row of data, a Backbone Collection is + // more analagous to a table full of data ... or a small slice or page of that + // table, or a collection of rows that belong together for a particular reason + // -- all of the messages in this particular folder, all of the documents + // belonging to this particular author, and so on. Collections maintain + // indexes of their models, both in order, and for lookup by `id`. + + // Create a new **Collection**, perhaps to contain a specific type of `model`. + // If a `comparator` is specified, the Collection will maintain + // its models in sort order, as they're added and removed. + var Collection = Backbone.Collection = function(models, options) { + options || (options = {}); + if (options.model) this.model = options.model; + if (options.comparator !== void 0) this.comparator = options.comparator; + this._reset(); + this.initialize.apply(this, arguments); + if (models) this.reset(models, _.extend({silent: true}, options)); + }; + + // Default options for `Collection#set`. + var setOptions = {add: true, remove: true, merge: true}; + var addOptions = {add: true, remove: false}; + + // Define the Collection's inheritable methods. + _.extend(Collection.prototype, Events, { + + // The default model for a collection is just a **Backbone.Model**. + // This should be overridden in most cases. + model: Model, + + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function(){}, + + // The JSON representation of a Collection is an array of the + // models' attributes. + toJSON: function(options) { + return this.map(function(model){ return model.toJSON(options); }); + }, + + // Proxy `Backbone.sync` by default. + sync: function() { + return Backbone.sync.apply(this, arguments); + }, + + // Add a model, or list of models to the set. + add: function(models, options) { + return this.set(models, _.extend({merge: false}, options, addOptions)); + }, + + // Remove a model, or a list of models from the set. + remove: function(models, options) { + var singular = !_.isArray(models); + models = singular ? [models] : _.clone(models); + options || (options = {}); + var i, l, index, model; + for (i = 0, l = models.length; i < l; i++) { + model = models[i] = this.get(models[i]); + if (!model) continue; + delete this._byId[model.id]; + delete this._byId[model.cid]; + index = this.indexOf(model); + this.models.splice(index, 1); + this.length--; + if (!options.silent) { + options.index = index; + model.trigger('remove', model, this, options); + } + this._removeReference(model, options); + } + return singular ? models[0] : models; + }, + + // Update a collection by `set`-ing a new list of models, adding new ones, + // removing models that are no longer present, and merging models that + // already exist in the collection, as necessary. Similar to **Model#set**, + // the core operation for updating the data contained by the collection. + set: function(models, options) { + options = _.defaults({}, options, setOptions); + if (options.parse) models = this.parse(models, options); + var singular = !_.isArray(models); + models = singular ? (models ? [models] : []) : _.clone(models); + var i, l, id, model, attrs, existing, sort; + var at = options.at; + var targetModel = this.model; + var sortable = this.comparator && (at == null) && options.sort !== false; + var sortAttr = _.isString(this.comparator) ? this.comparator : null; + var toAdd = [], toRemove = [], modelMap = {}; + var add = options.add, merge = options.merge, remove = options.remove; + var order = !sortable && add && remove ? [] : false; + + // Turn bare objects into model references, and prevent invalid models + // from being added. + for (i = 0, l = models.length; i < l; i++) { + attrs = models[i] || {}; + if (attrs instanceof Model) { + id = model = attrs; + } else { + id = attrs[targetModel.prototype.idAttribute || 'id']; + } + + // If a duplicate is found, prevent it from being added and + // optionally merge it into the existing model. + if (existing = this.get(id)) { + if (remove) modelMap[existing.cid] = true; + if (merge) { + attrs = attrs === model ? model.attributes : attrs; + if (options.parse) attrs = existing.parse(attrs, options); + existing.set(attrs, options); + if (sortable && !sort && existing.hasChanged(sortAttr)) sort = true; + } + models[i] = existing; + + // If this is a new, valid model, push it to the `toAdd` list. + } else if (add) { + model = models[i] = this._prepareModel(attrs, options); + if (!model) continue; + toAdd.push(model); + this._addReference(model, options); + } + + // Do not add multiple models with the same `id`. + model = existing || model; + if (order && (model.isNew() || !modelMap[model.id])) order.push(model); + modelMap[model.id] = true; + } + + // Remove nonexistent models if appropriate. + if (remove) { + for (i = 0, l = this.length; i < l; ++i) { + if (!modelMap[(model = this.models[i]).cid]) toRemove.push(model); + } + if (toRemove.length) this.remove(toRemove, options); + } + + // See if sorting is needed, update `length` and splice in new models. + if (toAdd.length || (order && order.length)) { + if (sortable) sort = true; + this.length += toAdd.length; + if (at != null) { + for (i = 0, l = toAdd.length; i < l; i++) { + this.models.splice(at + i, 0, toAdd[i]); + } + } else { + if (order) this.models.length = 0; + var orderedModels = order || toAdd; + for (i = 0, l = orderedModels.length; i < l; i++) { + this.models.push(orderedModels[i]); + } + } + } + + // Silently sort the collection if appropriate. + if (sort) this.sort({silent: true}); + + // Unless silenced, it's time to fire all appropriate add/sort events. + if (!options.silent) { + for (i = 0, l = toAdd.length; i < l; i++) { + (model = toAdd[i]).trigger('add', model, this, options); + } + if (sort || (order && order.length)) this.trigger('sort', this, options); + } + + // Return the added (or merged) model (or models). + return singular ? models[0] : models; + }, + + // When you have more items than you want to add or remove individually, + // you can reset the entire set with a new list of models, without firing + // any granular `add` or `remove` events. Fires `reset` when finished. + // Useful for bulk operations and optimizations. + reset: function(models, options) { + options || (options = {}); + for (var i = 0, l = this.models.length; i < l; i++) { + this._removeReference(this.models[i], options); + } + options.previousModels = this.models; + this._reset(); + models = this.add(models, _.extend({silent: true}, options)); + if (!options.silent) this.trigger('reset', this, options); + return models; + }, + + // Add a model to the end of the collection. + push: function(model, options) { + return this.add(model, _.extend({at: this.length}, options)); + }, + + // Remove a model from the end of the collection. + pop: function(options) { + var model = this.at(this.length - 1); + this.remove(model, options); + return model; + }, + + // Add a model to the beginning of the collection. + unshift: function(model, options) { + return this.add(model, _.extend({at: 0}, options)); + }, + + // Remove a model from the beginning of the collection. + shift: function(options) { + var model = this.at(0); + this.remove(model, options); + return model; + }, + + // Slice out a sub-array of models from the collection. + slice: function() { + return slice.apply(this.models, arguments); + }, + + // Get a model from the set by id. + get: function(obj) { + if (obj == null) return void 0; + return this._byId[obj] || this._byId[obj.id] || this._byId[obj.cid]; + }, + + // Get the model at the given index. + at: function(index) { + return this.models[index]; + }, + + // Return models with matching attributes. Useful for simple cases of + // `filter`. + where: function(attrs, first) { + if (_.isEmpty(attrs)) return first ? void 0 : []; + return this[first ? 'find' : 'filter'](function(model) { + for (var key in attrs) { + if (attrs[key] !== model.get(key)) return false; + } + return true; + }); + }, + + // Return the first model with matching attributes. Useful for simple cases + // of `find`. + findWhere: function(attrs) { + return this.where(attrs, true); + }, + + // Force the collection to re-sort itself. You don't need to call this under + // normal circumstances, as the set will maintain sort order as each item + // is added. + sort: function(options) { + if (!this.comparator) throw new Error('Cannot sort a set without a comparator'); + options || (options = {}); + + // Run sort based on type of `comparator`. + if (_.isString(this.comparator) || this.comparator.length === 1) { + this.models = this.sortBy(this.comparator, this); + } else { + this.models.sort(_.bind(this.comparator, this)); + } + + if (!options.silent) this.trigger('sort', this, options); + return this; + }, + + // Pluck an attribute from each model in the collection. + pluck: function(attr) { + return _.invoke(this.models, 'get', attr); + }, + + // Fetch the default set of models for this collection, resetting the + // collection when they arrive. If `reset: true` is passed, the response + // data will be passed through the `reset` method instead of `set`. + fetch: function(options) { + options = options ? _.clone(options) : {}; + if (options.parse === void 0) options.parse = true; + var success = options.success; + var collection = this; + options.success = function(resp) { + var method = options.reset ? 'reset' : 'set'; + collection[method](resp, options); + if (success) success(collection, resp, options); + collection.trigger('sync', collection, resp, options); + }; + wrapError(this, options); + return this.sync('read', this, options); + }, + + // Create a new instance of a model in this collection. Add the model to the + // collection immediately, unless `wait: true` is passed, in which case we + // wait for the server to agree. + create: function(model, options) { + options = options ? _.clone(options) : {}; + if (!(model = this._prepareModel(model, options))) return false; + if (!options.wait) this.add(model, options); + var collection = this; + var success = options.success; + options.success = function(model, resp) { + if (options.wait) collection.add(model, options); + if (success) success(model, resp, options); + }; + model.save(null, options); + return model; + }, + + // **parse** converts a response into a list of models to be added to the + // collection. The default implementation is just to pass it through. + parse: function(resp, options) { + return resp; + }, + + // Create a new collection with an identical list of models as this one. + clone: function() { + return new this.constructor(this.models); + }, + + // Private method to reset all internal state. Called when the collection + // is first initialized or reset. + _reset: function() { + this.length = 0; + this.models = []; + this._byId = {}; + }, + + // Prepare a hash of attributes (or other model) to be added to this + // collection. + _prepareModel: function(attrs, options) { + if (attrs instanceof Model) return attrs; + options = options ? _.clone(options) : {}; + options.collection = this; + var model = new this.model(attrs, options); + if (!model.validationError) return model; + this.trigger('invalid', this, model.validationError, options); + return false; + }, + + // Internal method to create a model's ties to a collection. + _addReference: function(model, options) { + this._byId[model.cid] = model; + if (model.id != null) this._byId[model.id] = model; + if (!model.collection) model.collection = this; + model.on('all', this._onModelEvent, this); + }, + + // Internal method to sever a model's ties to a collection. + _removeReference: function(model, options) { + if (this === model.collection) delete model.collection; + model.off('all', this._onModelEvent, this); + }, + + // Internal method called every time a model in the set fires an event. + // Sets need to update their indexes when models change ids. All other + // events simply proxy through. "add" and "remove" events that originate + // in other collections are ignored. + _onModelEvent: function(event, model, collection, options) { + if ((event === 'add' || event === 'remove') && collection !== this) return; + if (event === 'destroy') this.remove(model, options); + if (model && event === 'change:' + model.idAttribute) { + delete this._byId[model.previous(model.idAttribute)]; + if (model.id != null) this._byId[model.id] = model; + } + this.trigger.apply(this, arguments); + } + + }); + + // Underscore methods that we want to implement on the Collection. + // 90% of the core usefulness of Backbone Collections is actually implemented + // right here: + var methods = ['forEach', 'each', 'map', 'collect', 'reduce', 'foldl', + 'inject', 'reduceRight', 'foldr', 'find', 'detect', 'filter', 'select', + 'reject', 'every', 'all', 'some', 'any', 'include', 'contains', 'invoke', + 'max', 'min', 'toArray', 'size', 'first', 'head', 'take', 'initial', 'rest', + 'tail', 'drop', 'last', 'without', 'difference', 'indexOf', 'shuffle', + 'lastIndexOf', 'isEmpty', 'chain', 'sample']; + + // Mix in each Underscore method as a proxy to `Collection#models`. + _.each(methods, function(method) { + Collection.prototype[method] = function() { + var args = slice.call(arguments); + args.unshift(this.models); + return _[method].apply(_, args); + }; + }); + + // Underscore methods that take a property name as an argument. + var attributeMethods = ['groupBy', 'countBy', 'sortBy', 'indexBy']; + + // Use attributes instead of properties. + _.each(attributeMethods, function(method) { + Collection.prototype[method] = function(value, context) { + var iterator = _.isFunction(value) ? value : function(model) { + return model.get(value); + }; + return _[method](this.models, iterator, context); + }; + }); + + // Backbone.View + // ------------- + + // Backbone Views are almost more convention than they are actual code. A View + // is simply a JavaScript object that represents a logical chunk of UI in the + // DOM. This might be a single item, an entire list, a sidebar or panel, or + // even the surrounding frame which wraps your whole app. Defining a chunk of + // UI as a **View** allows you to define your DOM events declaratively, without + // having to worry about render order ... and makes it easy for the view to + // react to specific changes in the state of your models. + + // Creating a Backbone.View creates its initial element outside of the DOM, + // if an existing element is not provided... + var View = Backbone.View = function(options) { + this.cid = _.uniqueId('view'); + options || (options = {}); + _.extend(this, _.pick(options, viewOptions)); + this._ensureElement(); + this.initialize.apply(this, arguments); + this.delegateEvents(); + }; + + // Cached regex to split keys for `delegate`. + var delegateEventSplitter = /^(\S+)\s*(.*)$/; + + // List of view options to be merged as properties. + var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']; + + // Set up all inheritable **Backbone.View** properties and methods. + _.extend(View.prototype, Events, { + + // The default `tagName` of a View's element is `"div"`. + tagName: 'div', + + // jQuery delegate for element lookup, scoped to DOM elements within the + // current view. This should be preferred to global lookups where possible. + $: function(selector) { + return this.$el.find(selector); + }, + + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function(){}, + + // **render** is the core function that your view should override, in order + // to populate its element (`this.el`), with the appropriate HTML. The + // convention is for **render** to always return `this`. + render: function() { + return this; + }, + + // Remove this view by taking the element out of the DOM, and removing any + // applicable Backbone.Events listeners. + remove: function() { + this.$el.remove(); + this.stopListening(); + return this; + }, + + // Change the view's element (`this.el` property), including event + // re-delegation. + setElement: function(element, delegate) { + if (this.$el) this.undelegateEvents(); + this.$el = element instanceof Backbone.$ ? element : Backbone.$(element); + this.el = this.$el[0]; + if (delegate !== false) this.delegateEvents(); + return this; + }, + + // Set callbacks, where `this.events` is a hash of + // + // *{"event selector": "callback"}* + // + // { + // 'mousedown .title': 'edit', + // 'click .button': 'save', + // 'click .open': function(e) { ... } + // } + // + // pairs. Callbacks will be bound to the view, with `this` set properly. + // Uses event delegation for efficiency. + // Omitting the selector binds the event to `this.el`. + // This only works for delegate-able events: not `focus`, `blur`, and + // not `change`, `submit`, and `reset` in Internet Explorer. + delegateEvents: function(events) { + if (!(events || (events = _.result(this, 'events')))) return this; + this.undelegateEvents(); + for (var key in events) { + var method = events[key]; + if (!_.isFunction(method)) method = this[events[key]]; + if (!method) continue; + + var match = key.match(delegateEventSplitter); + var eventName = match[1], selector = match[2]; + method = _.bind(method, this); + eventName += '.delegateEvents' + this.cid; + if (selector === '') { + this.$el.on(eventName, method); + } else { + this.$el.on(eventName, selector, method); + } + } + return this; + }, + + // Clears all callbacks previously bound to the view with `delegateEvents`. + // You usually don't need to use this, but may wish to if you have multiple + // Backbone views attached to the same DOM element. + undelegateEvents: function() { + this.$el.off('.delegateEvents' + this.cid); + return this; + }, + + // Ensure that the View has a DOM element to render into. + // If `this.el` is a string, pass it through `$()`, take the first + // matching element, and re-assign it to `el`. Otherwise, create + // an element from the `id`, `className` and `tagName` properties. + _ensureElement: function() { + if (!this.el) { + var attrs = _.extend({}, _.result(this, 'attributes')); + if (this.id) attrs.id = _.result(this, 'id'); + if (this.className) attrs['class'] = _.result(this, 'className'); + var $el = Backbone.$('<' + _.result(this, 'tagName') + '>').attr(attrs); + this.setElement($el, false); + } else { + this.setElement(_.result(this, 'el'), false); + } + } + + }); + + // Backbone.sync + // ------------- + + // Override this function to change the manner in which Backbone persists + // models to the server. You will be passed the type of request, and the + // model in question. By default, makes a RESTful Ajax request + // to the model's `url()`. Some possible customizations could be: + // + // * Use `setTimeout` to batch rapid-fire updates into a single request. + // * Send up the models as XML instead of JSON. + // * Persist models via WebSockets instead of Ajax. + // + // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests + // as `POST`, with a `_method` parameter containing the true HTTP method, + // as well as all requests with the body as `application/x-www-form-urlencoded` + // instead of `application/json` with the model in a param named `model`. + // Useful when interfacing with server-side languages like **PHP** that make + // it difficult to read the body of `PUT` requests. + Backbone.sync = function(method, model, options) { + var type = methodMap[method]; + + // Default options, unless specified. + _.defaults(options || (options = {}), { + emulateHTTP: Backbone.emulateHTTP, + emulateJSON: Backbone.emulateJSON + }); + + // Default JSON-request options. + var params = {type: type, dataType: 'json'}; + + // Ensure that we have a URL. + if (!options.url) { + params.url = _.result(model, 'url') || urlError(); + } + + // Ensure that we have the appropriate request data. + if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) { + params.contentType = 'application/json'; + params.data = JSON.stringify(options.attrs || model.toJSON(options)); + } + + // For older servers, emulate JSON by encoding the request into an HTML-form. + if (options.emulateJSON) { + params.contentType = 'application/x-www-form-urlencoded'; + params.data = params.data ? {model: params.data} : {}; + } + + // For older servers, emulate HTTP by mimicking the HTTP method with `_method` + // And an `X-HTTP-Method-Override` header. + if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) { + params.type = 'POST'; + if (options.emulateJSON) params.data._method = type; + var beforeSend = options.beforeSend; + options.beforeSend = function(xhr) { + xhr.setRequestHeader('X-HTTP-Method-Override', type); + if (beforeSend) return beforeSend.apply(this, arguments); + }; + } + + // Don't process data on a non-GET request. + if (params.type !== 'GET' && !options.emulateJSON) { + params.processData = false; + } + + // If we're sending a `PATCH` request, and we're in an old Internet Explorer + // that still has ActiveX enabled by default, override jQuery to use that + // for XHR instead. Remove this line when jQuery supports `PATCH` on IE8. + if (params.type === 'PATCH' && noXhrPatch) { + params.xhr = function() { + return new ActiveXObject("Microsoft.XMLHTTP"); + }; + } + + // Make the request, allowing the user to override any Ajax options. + var xhr = options.xhr = Backbone.ajax(_.extend(params, options)); + model.trigger('request', model, xhr, options); + return xhr; + }; + + var noXhrPatch = + typeof window !== 'undefined' && !!window.ActiveXObject && + !(window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent); + + // Map from CRUD to HTTP for our default `Backbone.sync` implementation. + var methodMap = { + 'create': 'POST', + 'update': 'PUT', + 'patch': 'PATCH', + 'delete': 'DELETE', + 'read': 'GET' + }; + + // Set the default implementation of `Backbone.ajax` to proxy through to `$`. + // Override this if you'd like to use a different library. + Backbone.ajax = function() { + return Backbone.$.ajax.apply(Backbone.$, arguments); + }; + + // Backbone.Router + // --------------- + + // Routers map faux-URLs to actions, and fire events when routes are + // matched. Creating a new one sets its `routes` hash, if not set statically. + var Router = Backbone.Router = function(options) { + options || (options = {}); + if (options.routes) this.routes = options.routes; + this._bindRoutes(); + this.initialize.apply(this, arguments); + }; + + // Cached regular expressions for matching named param parts and splatted + // parts of route strings. + var optionalParam = /\((.*?)\)/g; + var namedParam = /(\(\?)?:\w+/g; + var splatParam = /\*\w+/g; + var escapeRegExp = /[\-{}\[\]+?.,\\\^$|#\s]/g; + + // Set up all inheritable **Backbone.Router** properties and methods. + _.extend(Router.prototype, Events, { + + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function(){}, + + // Manually bind a single named route to a callback. For example: + // + // this.route('search/:query/p:num', 'search', function(query, num) { + // ... + // }); + // + route: function(route, name, callback) { + if (!_.isRegExp(route)) route = this._routeToRegExp(route); + if (_.isFunction(name)) { + callback = name; + name = ''; + } + if (!callback) callback = this[name]; + var router = this; + Backbone.history.route(route, function(fragment) { + var args = router._extractParameters(route, fragment); + router.execute(callback, args); + router.trigger.apply(router, ['route:' + name].concat(args)); + router.trigger('route', name, args); + Backbone.history.trigger('route', router, name, args); + }); + return this; + }, + + // Execute a route handler with the provided parameters. This is an + // excellent place to do pre-route setup or post-route cleanup. + execute: function(callback, args) { + if (callback) callback.apply(this, args); + }, + + // Simple proxy to `Backbone.history` to save a fragment into the history. + navigate: function(fragment, options) { + Backbone.history.navigate(fragment, options); + return this; + }, + + // Bind all defined routes to `Backbone.history`. We have to reverse the + // order of the routes here to support behavior where the most general + // routes can be defined at the bottom of the route map. + _bindRoutes: function() { + if (!this.routes) return; + this.routes = _.result(this, 'routes'); + var route, routes = _.keys(this.routes); + while ((route = routes.pop()) != null) { + this.route(route, this.routes[route]); + } + }, + + // Convert a route string into a regular expression, suitable for matching + // against the current location hash. + _routeToRegExp: function(route) { + route = route.replace(escapeRegExp, '\\$&') + .replace(optionalParam, '(?:$1)?') + .replace(namedParam, function(match, optional) { + return optional ? match : '([^/?]+)'; + }) + .replace(splatParam, '([^?]*?)'); + return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$'); + }, + + // Given a route, and a URL fragment that it matches, return the array of + // extracted decoded parameters. Empty or unmatched parameters will be + // treated as `null` to normalize cross-browser behavior. + _extractParameters: function(route, fragment) { + var params = route.exec(fragment).slice(1); + return _.map(params, function(param, i) { + // Don't decode the search params. + if (i === params.length - 1) return param || null; + return param ? decodeURIComponent(param) : null; + }); + } + + }); + + // Backbone.History + // ---------------- + + // Handles cross-browser history management, based on either + // [pushState](http://diveintohtml5.info/history.html) and real URLs, or + // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) + // and URL fragments. If the browser supports neither (old IE, natch), + // falls back to polling. + var History = Backbone.History = function() { + this.handlers = []; + _.bindAll(this, 'checkUrl'); + + // Ensure that `History` can be used outside of the browser. + if (typeof window !== 'undefined') { + this.location = window.location; + this.history = window.history; + } + }; + + // Cached regex for stripping a leading hash/slash and trailing space. + var routeStripper = /^[#\/]|\s+$/g; + + // Cached regex for stripping leading and trailing slashes. + var rootStripper = /^\/+|\/+$/g; + + // Cached regex for detecting MSIE. + var isExplorer = /msie [\w.]+/; + + // Cached regex for removing a trailing slash. + var trailingSlash = /\/$/; + + // Cached regex for stripping urls of hash. + var pathStripper = /#.*$/; + + // Has the history handling already been started? + History.started = false; + + // Set up all inheritable **Backbone.History** properties and methods. + _.extend(History.prototype, Events, { + + // The default interval to poll for hash changes, if necessary, is + // twenty times a second. + interval: 50, + + // Are we at the app root? + atRoot: function() { + return this.location.pathname.replace(/[^\/]$/, '$&/') === this.root; + }, + + // Gets the true hash value. Cannot use location.hash directly due to bug + // in Firefox where location.hash will always be decoded. + getHash: function(window) { + var match = (window || this).location.href.match(/#(.*)$/); + return match ? match[1] : ''; + }, + + // Get the cross-browser normalized URL fragment, either from the URL, + // the hash, or the override. + getFragment: function(fragment, forcePushState) { + if (fragment == null) { + if (this._hasPushState || !this._wantsHashChange || forcePushState) { + fragment = decodeURI(this.location.pathname + this.location.search); + var root = this.root.replace(trailingSlash, ''); + if (!fragment.indexOf(root)) fragment = fragment.slice(root.length); + } else { + fragment = this.getHash(); + } + } + return fragment.replace(routeStripper, ''); + }, + + // Start the hash change handling, returning `true` if the current URL matches + // an existing route, and `false` otherwise. + start: function(options) { + if (History.started) throw new Error("Backbone.history has already been started"); + History.started = true; + + // Figure out the initial configuration. Do we need an iframe? + // Is pushState desired ... is it available? + this.options = _.extend({root: '/'}, this.options, options); + this.root = this.options.root; + this._wantsHashChange = this.options.hashChange !== false; + this._wantsPushState = !!this.options.pushState; + this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState); + var fragment = this.getFragment(); + var docMode = document.documentMode; + var oldIE = (isExplorer.exec(navigator.userAgent.toLowerCase()) && (!docMode || docMode <= 7)); + + // Normalize root to always include a leading and trailing slash. + this.root = ('/' + this.root + '/').replace(rootStripper, '/'); + + if (oldIE && this._wantsHashChange) { + var frame = Backbone.$('