├── .gitattributes ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── cli ├── composer.json ├── config ├── app.php ├── database.php ├── mailer.php └── qa.php ├── library ├── .htaccess ├── Diff │ ├── Diff.php │ └── Diff │ │ ├── Renderer │ │ ├── Abstract.php │ │ ├── Html │ │ │ ├── Array.php │ │ │ ├── Inline.php │ │ │ └── SideBySide.php │ │ └── Text │ │ │ ├── Context.php │ │ │ └── Unified.php │ │ └── SequenceMatcher.php └── GeSHi │ ├── geshi.php │ └── geshi │ ├── 4cs.php │ ├── abap.php │ ├── actionscript.php │ ├── actionscript3.php │ ├── ada.php │ ├── algol68.php │ ├── apache.php │ ├── applescript.php │ ├── apt_sources.php │ ├── arm.php │ ├── asm.php │ ├── asp.php │ ├── asymptote.php │ ├── autoconf.php │ ├── autohotkey.php │ ├── autoit.php │ ├── avisynth.php │ ├── awk.php │ ├── bascomavr.php │ ├── bash.php │ ├── basic4gl.php │ ├── bf.php │ ├── bibtex.php │ ├── blitzbasic.php │ ├── bnf.php │ ├── boo.php │ ├── c.php │ ├── c_loadrunner.php │ ├── c_mac.php │ ├── caddcl.php │ ├── cadlisp.php │ ├── cfdg.php │ ├── cfm.php │ ├── chaiscript.php │ ├── cil.php │ ├── clojure.php │ ├── cmake.php │ ├── cobol.php │ ├── coffeescript.php │ ├── cpp-qt.php │ ├── cpp.php │ ├── csharp.php │ ├── css.php │ ├── cuesheet.php │ ├── d.php │ ├── dcl.php │ ├── dcpu16.php │ ├── dcs.php │ ├── delphi.php │ ├── diff.php │ ├── div.php │ ├── dos.php │ ├── dot.php │ ├── e.php │ ├── ecmascript.php │ ├── eiffel.php │ ├── email.php │ ├── epc.php │ ├── erlang.php │ ├── euphoria.php │ ├── f1.php │ ├── falcon.php │ ├── fo.php │ ├── fortran.php │ ├── freebasic.php │ ├── freeswitch.php │ ├── fsharp.php │ ├── gambas.php │ ├── gdb.php │ ├── genero.php │ ├── genie.php │ ├── gettext.php │ ├── glsl.php │ ├── gml.php │ ├── gnuplot.php │ ├── go.php │ ├── groovy.php │ ├── gwbasic.php │ ├── haskell.php │ ├── haxe.php │ ├── hicest.php │ ├── hq9plus.php │ ├── html5.php │ ├── icon.php │ ├── idl.php │ ├── ini.php │ ├── inno.php │ ├── intercal.php │ ├── io.php │ ├── j.php │ ├── java.php │ ├── java5.php │ ├── javascript.php │ ├── jquery.php │ ├── kixtart.php │ ├── klonec.php │ ├── klonecpp.php │ ├── latex.php │ ├── lb.php │ ├── ldif.php │ ├── lisp.php │ ├── llvm.php │ ├── locobasic.php │ ├── logtalk.php │ ├── lolcode.php │ ├── lotusformulas.php │ ├── lotusscript.php │ ├── lscript.php │ ├── lsl2.php │ ├── lua.php │ ├── magiksf.php │ ├── make.php │ ├── mapbasic.php │ ├── matlab.php │ ├── mirc.php │ ├── mmix.php │ ├── modula2.php │ ├── modula3.php │ ├── mpasm.php │ ├── mxml.php │ ├── mysql.php │ ├── nagios.php │ ├── netrexx.php │ ├── newlisp.php │ ├── nsis.php │ ├── oberon2.php │ ├── objc.php │ ├── objeck.php │ ├── ocaml-brief.php │ ├── ocaml.php │ ├── octave.php │ ├── oobas.php │ ├── oorexx.php │ ├── oracle11.php │ ├── oracle8.php │ ├── oxygene.php │ ├── oz.php │ ├── parasail.php │ ├── parigp.php │ ├── pascal.php │ ├── pcre.php │ ├── per.php │ ├── perl.php │ ├── perl6.php │ ├── pf.php │ ├── php-brief.php │ ├── php.php │ ├── pic16.php │ ├── pike.php │ ├── pixelbender.php │ ├── pli.php │ ├── plsql.php │ ├── postgresql.php │ ├── povray.php │ ├── powerbuilder.php │ ├── powershell.php │ ├── proftpd.php │ ├── progress.php │ ├── prolog.php │ ├── properties.php │ ├── providex.php │ ├── purebasic.php │ ├── pycon.php │ ├── pys60.php │ ├── python.php │ ├── q.php │ ├── qbasic.php │ ├── rails.php │ ├── rebol.php │ ├── reg.php │ ├── rexx.php │ ├── robots.php │ ├── rpmspec.php │ ├── rsplus.php │ ├── ruby.php │ ├── sas.php │ ├── scala.php │ ├── scheme.php │ ├── scilab.php │ ├── sdlbasic.php │ ├── smalltalk.php │ ├── smarty.php │ ├── spark.php │ ├── sparql.php │ ├── sql.php │ ├── stonescript.php │ ├── systemverilog.php │ ├── tcl.php │ ├── teraterm.php │ ├── text.php │ ├── thinbasic.php │ ├── tsql.php │ ├── typoscript.php │ ├── unicon.php │ ├── upc.php │ ├── urbi.php │ ├── uscript.php │ ├── vala.php │ ├── vb.php │ ├── vbnet.php │ ├── vedit.php │ ├── verilog.php │ ├── vhdl.php │ ├── vim.php │ ├── visualfoxpro.php │ ├── visualprolog.php │ ├── whitespace.php │ ├── whois.php │ ├── winbatch.php │ ├── xbasic.php │ ├── xml.php │ ├── xorg_conf.php │ ├── xpp.php │ ├── yaml.php │ ├── z80.php │ └── zxbasic.php ├── phpunit.xml ├── public ├── .htaccess ├── assets │ └── default │ │ ├── css │ │ ├── application │ │ │ ├── base.less │ │ │ ├── breadcrumb.less │ │ │ ├── buttons.less │ │ │ ├── diff.less │ │ │ ├── forms.less │ │ │ ├── latest.less │ │ │ ├── navbar.less │ │ │ ├── paste.less │ │ │ ├── print.less │ │ │ ├── progress-bar.less │ │ │ ├── simpas.less │ │ │ └── variables.less │ │ ├── bootstrap │ │ │ ├── .csscomb.json │ │ │ ├── .csslintrc │ │ │ ├── alerts.less │ │ │ ├── badges.less │ │ │ ├── bootstrap.less │ │ │ ├── breadcrumbs.less │ │ │ ├── button-groups.less │ │ │ ├── buttons.less │ │ │ ├── carousel.less │ │ │ ├── close.less │ │ │ ├── code.less │ │ │ ├── component-animations.less │ │ │ ├── dropdowns.less │ │ │ ├── forms.less │ │ │ ├── glyphicons.less │ │ │ ├── grid.less │ │ │ ├── input-groups.less │ │ │ ├── jumbotron.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── media.less │ │ │ ├── mixins.less │ │ │ ├── mixins │ │ │ │ ├── alerts.less │ │ │ │ ├── background-variant.less │ │ │ │ ├── border-radius.less │ │ │ │ ├── buttons.less │ │ │ │ ├── center-block.less │ │ │ │ ├── clearfix.less │ │ │ │ ├── forms.less │ │ │ │ ├── gradients.less │ │ │ │ ├── grid-framework.less │ │ │ │ ├── grid.less │ │ │ │ ├── hide-text.less │ │ │ │ ├── image.less │ │ │ │ ├── labels.less │ │ │ │ ├── list-group.less │ │ │ │ ├── nav-divider.less │ │ │ │ ├── nav-vertical-align.less │ │ │ │ ├── opacity.less │ │ │ │ ├── pagination.less │ │ │ │ ├── panels.less │ │ │ │ ├── progress-bar.less │ │ │ │ ├── reset-filter.less │ │ │ │ ├── resize.less │ │ │ │ ├── responsive-visibility.less │ │ │ │ ├── size.less │ │ │ │ ├── tab-focus.less │ │ │ │ ├── table-row.less │ │ │ │ ├── text-emphasis.less │ │ │ │ ├── text-overflow.less │ │ │ │ └── vendor-prefixes.less │ │ │ ├── modals.less │ │ │ ├── navbar.less │ │ │ ├── navs.less │ │ │ ├── normalize.less │ │ │ ├── pager.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── popovers.less │ │ │ ├── print.less │ │ │ ├── progress-bars.less │ │ │ ├── responsive-embed.less │ │ │ ├── responsive-utilities.less │ │ │ ├── scaffolding.less │ │ │ ├── tables.less │ │ │ ├── theme.less │ │ │ ├── thumbnails.less │ │ │ ├── tooltip.less │ │ │ ├── type.less │ │ │ ├── utilities.less │ │ │ ├── variables.less │ │ │ └── wells.less │ │ ├── chosen.css │ │ ├── diff.css │ │ ├── font-awesome │ │ │ ├── bordered-pulled.less │ │ │ ├── core.less │ │ │ ├── extras.less │ │ │ ├── fixed-width.less │ │ │ ├── font-awesome.less │ │ │ ├── icons.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── mixins.less │ │ │ ├── path.less │ │ │ ├── rotated-flipped.less │ │ │ ├── spinning.less │ │ │ ├── stacked.less │ │ │ └── variables.less │ │ ├── simpas.css │ │ └── simpas.less │ │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ │ ├── img │ │ └── chosen-sprite.png │ │ └── js │ │ ├── bootstrap.min.js │ │ ├── bootstrapx-clickover.js │ │ ├── chosen.jquery.min.js │ │ ├── jquery-2.1.1.min.js │ │ ├── jquery.fix.clone.js │ │ ├── jquery.maxlength-min.js │ │ ├── moment.min.js │ │ └── simpas.js ├── index.php └── robots.txt ├── routes └── routes.php ├── src ├── Application.php ├── Configuration │ └── Configuration.php ├── Console │ ├── Commands │ │ ├── CacheRebuild.php │ │ ├── ClearDb.php │ │ ├── EraseExpiredPastes.php │ │ ├── SyncDb.php │ │ └── UpdateDb.php │ └── Console.php ├── DataSources │ ├── MySQL │ │ ├── Driver.php │ │ └── Schema │ │ │ └── Schema.json │ └── PostgreSQL │ │ ├── Driver.php │ │ └── Schema │ │ └── Schema.json ├── Exception │ ├── AssetNotFound.php │ ├── ExceptionInvalidArgument.php │ ├── ExceptionRuntime.php │ ├── JsonException.php │ └── MailerException.php ├── FileManager │ └── FileManager.php ├── Helpers │ ├── PasteId.php │ └── Strings.php ├── HttpRequest │ ├── CookieJar │ │ └── CookieJar.php │ └── HttpRequest.php ├── Mailer │ └── Mailer.php ├── Pastebin │ ├── Compare.php │ ├── Controller.php │ ├── Hits.php │ ├── LatestPastes.php │ ├── PasteExpire.php │ ├── ReadPaste.php │ ├── ReportAbuse.php │ ├── SendPaste.php │ └── SyntaxHighlighter.php ├── Routing │ └── Routing.php ├── Security │ ├── DataFilters │ │ └── PreDatabaseSave.php │ └── QuestionsAndAnswers │ │ └── QuestionsAndAnswers.php ├── Translations │ ├── Resources │ │ └── pl_PL │ │ │ └── LC_MESSAGES │ │ │ ├── messages.mo │ │ │ ├── messages.po │ │ │ └── messages_1582054121.mo │ └── Translations.php └── View │ ├── ClientError.php │ ├── Exception.php │ └── View.php ├── storage └── .htaccess ├── tests ├── FileManagerTest.php ├── HttpRequestTest.php ├── PasteIdFromUrlTest.php ├── PreDatabaseFilterTest.php ├── StringToBytesTest.php └── SyntaxHighlighterTest.php └── views ├── AbuseForm.html.twig ├── AbuseFormResults.html.twig ├── BaseBlock.html.twig ├── BaseBlockBlank.html.twig ├── ClientErrors ├── ClientError.html.twig └── Response404.html.twig ├── CookiesPolicy.html.twig ├── Diff.html.twig ├── DiffForm.html.twig ├── EmailTemplates ├── Abuse.html.twig └── BaseBlock.html.twig ├── Embed.html.twig ├── Exception.html.twig ├── IndexBlock.html.twig ├── JsonApi.html.twig ├── LatestPastes.html.twig ├── Macros └── Breadcrumb.html.twig ├── Options.html.twig ├── RawMode.html.twig ├── ReadPaste.html.twig ├── ShareModal.html.twig ├── SiteOffline.html.twig └── Text ├── Cookies.html.twig └── Rules.html.twig /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: Tests 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the master branch 8 | push: 9 | branches: [ master ] 10 | pull_request: 11 | branches: [ master ] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 17 | jobs: 18 | # This workflow contains a single job called "build" 19 | build: 20 | # The type of runner that the job will run on 21 | runs-on: ubuntu-latest 22 | 23 | # Steps represent a sequence of tasks that will be executed as part of the job 24 | steps: 25 | - uses: actions/checkout@v2 26 | - uses: php-actions/composer@v6 27 | - name: PHPUnit (php-actions) 28 | uses: php-actions/phpunit@v9 29 | with: 30 | configuration: phpunit.xml 31 | memory_limit: 256M 32 | bootstrap: vendor/autoload.php 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | sudo: false 4 | 5 | before_script: composer install 6 | 7 | php: 8 | - 7.3 9 | - 7.4 10 | - 8.0 11 | 12 | script: ./vendor/bin/phpunit 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Maciej Schmidt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /cli: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | =7.3", 4 | "twig/twig": "1.15.*", 5 | "twig/extensions": "1.2.*", 6 | "geshi/geshi": "v1.0.9.1", 7 | "ext-curl": "*", 8 | "ext-pdo": "*", 9 | "swiftmailer/swiftmailer": "5.4.*", 10 | "ext-json": "*" 11 | }, 12 | 13 | "autoload": { 14 | "classmap": [ 15 | "tests/" 16 | ], 17 | "psr-4": { 18 | "SimPas\\": "src" 19 | } 20 | }, 21 | "require-dev": { 22 | "phpunit/phpunit": "^9.5", 23 | "symfony/var-dumper": "^5.3" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /config/app.php: -------------------------------------------------------------------------------- 1 | 'http://simpas.test/', 5 | 'site_title' => 'SimPas', 6 | 'site_description_crawlers' => 'SimPas', 7 | 'show_index_in_urls' => true, 8 | 'shortcut_icon_url' => '', 9 | 'admin_email' => '', 10 | 'default_geshi_language' => 'Text', 11 | 'site_offline' => false, 12 | 'offline_allowed_ip' => '127.0.0.1', 13 | 'offline_message' => '', 14 | 'offline_message_allow_html' => false, 15 | 'theme' => 'default', 16 | 'max_chars' => 500000, 17 | 'max_size_in_kb' => 2048, 18 | 'translations' => false, 19 | 'translation_domain' => 'messages', 20 | 'locale' => [ 21 | 'pl', 22 | 'pl_PL', 23 | ], 24 | 'default_timezone' => 'Europe/Warsaw', 25 | 'charset' => 'UTF-8', 26 | 'gzip_compression' => false, 27 | 'antyflood_enabled' => false, 28 | 'antyflood_delay_in_seconds' => 30, 29 | 'banned_ip' => [ 30 | '8.8.8.8', 31 | '8.8.8.*', 32 | ], 33 | 'google_analytics_ua_code' => '', 34 | 'latest_pastes' => 20, 35 | 'antispam_enabled' => false, 36 | 'antispam_case_sensitive' => false, 37 | 'author_website_enabled' => true, 38 | 'delete_expired_pastes' => true, 39 | 'cookie_path' => '', 40 | 'cookie_domain' => '', 41 | 'cookie_secure' => false, 42 | 'hot_paste' => 150, 43 | 'show_cookies_info' => false, 44 | ]; 45 | -------------------------------------------------------------------------------- /config/database.php: -------------------------------------------------------------------------------- 1 | 'mysql', 5 | 'server' => 'localhost', 6 | 'port' => 3306, 7 | 'prefix' => 'simpas_', 8 | 'database' => 'simpas', 9 | 'username' => 'homestead', 10 | 'password' => 'secret', 11 | 'charset' => 'utf8', 12 | 'collate' => 'utf8_general_ci', 13 | ]; 14 | -------------------------------------------------------------------------------- /config/mailer.php: -------------------------------------------------------------------------------- 1 | 'mail', 5 | 'host' => 'localhost', 6 | 'port' => 25, 7 | 'username' => '', 8 | 'password' => '', 9 | 'protocol' => 'tls', 10 | 'sendmail_command' => '/usr/sbin/sendmail -bs', 11 | ]; 12 | -------------------------------------------------------------------------------- /config/qa.php: -------------------------------------------------------------------------------- 1 | 'Blue', 5 | 'How many fingers has a human in one hand?' => ['5', 'Five'], 6 | ]; 7 | -------------------------------------------------------------------------------- /library/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /library/Diff/Diff/Renderer/Abstract.php: -------------------------------------------------------------------------------- 1 | 8 | * 9 | * All rights reserved. 10 | * 11 | * Redistribution and use in source and binary forms, with or without 12 | * modification, are permitted provided that the following conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above copyright notice, 15 | * this list of conditions and the following disclaimer. 16 | * - Redistributions in binary form must reproduce the above copyright notice, 17 | * this list of conditions and the following disclaimer in the documentation 18 | * and/or other materials provided with the distribution. 19 | * - Neither the name of the Chris Boulton nor the names of its contributors 20 | * may be used to endorse or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 27 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 32 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * @author Chris Boulton 36 | * @copyright (c) 2009 Chris Boulton 37 | * @license New BSD License http://www.opensource.org/licenses/bsd-license.php 38 | * 39 | * @version 1.1 40 | * 41 | * @link http://github.com/chrisboulton/php-diff 42 | */ 43 | abstract class Diff_Renderer_Abstract 44 | { 45 | /** 46 | * @var object Instance of the diff class that this renderer is generating the rendered diff for. 47 | */ 48 | public $diff; 49 | 50 | /** 51 | * @var array Array of the default options that apply to this renderer. 52 | */ 53 | protected $defaultOptions = []; 54 | 55 | /** 56 | * @var array Array containing the user applied and merged default options for the renderer. 57 | */ 58 | protected $options = []; 59 | 60 | /** 61 | * The constructor. Instantiates the rendering engine and if options are passed, 62 | * sets the options for the renderer. 63 | * 64 | * @param array $options Optionally, an array of the options for the renderer. 65 | */ 66 | public function __construct(array $options = []) 67 | { 68 | $this->setOptions($options); 69 | } 70 | 71 | /** 72 | * Set the options of the renderer to those supplied in the passed in array. 73 | * Options are merged with the default to ensure that there aren't any missing 74 | * options. 75 | * 76 | * @param array $options Array of options to set. 77 | */ 78 | public function setOptions(array $options) 79 | { 80 | $this->options = array_merge($this->defaultOptions, $options); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /library/Diff/Diff/Renderer/Text/Unified.php: -------------------------------------------------------------------------------- 1 | 8 | * 9 | * All rights reserved. 10 | * 11 | * Redistribution and use in source and binary forms, with or without 12 | * modification, are permitted provided that the following conditions are met: 13 | * 14 | * - Redistributions of source code must retain the above copyright notice, 15 | * this list of conditions and the following disclaimer. 16 | * - Redistributions in binary form must reproduce the above copyright notice, 17 | * this list of conditions and the following disclaimer in the documentation 18 | * and/or other materials provided with the distribution. 19 | * - Neither the name of the Chris Boulton nor the names of its contributors 20 | * may be used to endorse or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 27 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 32 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * @author Chris Boulton 36 | * @copyright (c) 2009 Chris Boulton 37 | * @license New BSD License http://www.opensource.org/licenses/bsd-license.php 38 | * 39 | * @version 1.1 40 | * 41 | * @link http://github.com/chrisboulton/php-diff 42 | */ 43 | require_once dirname(__FILE__).'/../Abstract.php'; 44 | 45 | class Diff_Renderer_Text_Unified extends Diff_Renderer_Abstract 46 | { 47 | /** 48 | * Render and return a unified diff. 49 | * 50 | * @return string The unified diff. 51 | */ 52 | public function render() 53 | { 54 | $diff = ''; 55 | $opCodes = $this->diff->getGroupedOpcodes(); 56 | foreach ($opCodes as $group) { 57 | $lastItem = count($group) - 1; 58 | $i1 = $group[0][1]; 59 | $i2 = $group[$lastItem][2]; 60 | $j1 = $group[0][3]; 61 | $j2 = $group[$lastItem][4]; 62 | 63 | if ($i1 == 0 && $i2 == 0) { 64 | $i1 = -1; 65 | $i2 = -1; 66 | } 67 | 68 | $diff .= '@@ -'.($i1 + 1).','.($i2 - $i1).' +'.($j1 + 1).','.($j2 - $j1)." @@\n"; 69 | foreach ($group as $code) { 70 | list($tag, $i1, $i2, $j1, $j2) = $code; 71 | if ($tag == 'equal') { 72 | $diff .= ' '.implode("\n ", $this->diff->GetA($i1, $i2))."\n"; 73 | } else { 74 | if ($tag == 'replace' || $tag == 'delete') { 75 | $diff .= '-'.implode("\n-", $this->diff->GetA($i1, $i2))."\n"; 76 | } 77 | 78 | if ($tag == 'replace' || $tag == 'insert') { 79 | $diff .= '+'.implode("\n+", $this->diff->GetB($j1, $j2))."\n"; 80 | } 81 | } 82 | } 83 | } 84 | 85 | return $diff; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/bf.php: -------------------------------------------------------------------------------- 1 | 'Brainfuck', 41 | 'COMMENT_SINGLE' => [], 42 | 'COMMENT_MULTI' => [], 43 | 'COMMENT_REGEXP' => [1 => '/[^\n+\-<>\[\]\.\,Y]+/s'], 44 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 45 | 'QUOTEMARKS' => [], 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => [ 48 | ], 49 | 'SYMBOLS' => [ 50 | 0 => ['+', '-'], 51 | 1 => ['[', ']'], 52 | 2 => ['<', '>'], 53 | 3 => ['.', ','], 54 | 4 => ['Y'], //Brainfork Extension ;-) 55 | ], 56 | 'CASE_SENSITIVE' => [ 57 | GESHI_COMMENTS => false, 58 | ], 59 | 'STYLES' => [ 60 | 'KEYWORDS' => [ 61 | ], 62 | 'COMMENTS' => [ 63 | 1 => 'color: #666666; font-style: italic;', 64 | ], 65 | 'BRACKETS' => [ 66 | 0 => 'color: #660000;', 67 | ], 68 | 'STRINGS' => [ 69 | 0 => 'color: #ff0000;', 70 | ], 71 | 'NUMBERS' => [ 72 | ], 73 | 'METHODS' => [ 74 | ], 75 | 'SYMBOLS' => [ 76 | 0 => 'color: #006600;', 77 | 1 => 'color: #660000;', 78 | 2 => 'color: #000066;', 79 | 3 => 'color: #666600;', 80 | 4 => 'color: #660066;', 81 | ], 82 | 'ESCAPE_CHAR' => [ 83 | ], 84 | 'SCRIPT' => [ 85 | ], 86 | 'REGEXPS' => [ 87 | ], 88 | ], 89 | 'URLS' => [ 90 | ], 91 | 'OOLANG' => false, 92 | 'OBJECT_SPLITTERS' => [ 93 | ], 94 | 'REGEXPS' => [ 95 | ], 96 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 97 | 'SCRIPT_DELIMITERS' => [ 98 | ], 99 | 'HIGHLIGHT_STRICT_BLOCK' => [ 100 | ], 101 | 'TAB_WIDTH' => 4, 102 | 'PARSER_CONTROL' => [ 103 | 'ENABLE_FLAGS' => [ 104 | 'STRINGS' => GESHI_NEVER, 105 | 'NUMBERS' => GESHI_NEVER, 106 | 'BRACKETS' => GESHI_NEVER, 107 | ], 108 | 'KEYWORDS' => [ 109 | 'DISALLOW_BEFORE' => '', 110 | 'DISALLOW_AFTER' => '', 111 | ], 112 | ], 113 | ]; 114 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/gettext.php: -------------------------------------------------------------------------------- 1 | 'GNU Gettext', 41 | 'COMMENT_SINGLE' => ['#:', '#.', '#,', '#|', '#'], 42 | 'COMMENT_MULTI' => [], 43 | 'COMMENT_REGEXP' => [], 44 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 45 | 'QUOTEMARKS' => ["'", '"'], 46 | 'ESCAPE_CHAR' => '\\', 47 | 'KEYWORDS' => [ 48 | 1 => ['msgctxt', 'msgid_plural', 'msgid', 'msgstr'], 49 | ], 50 | 'SYMBOLS' => [], 51 | 'CASE_SENSITIVE' => [ 52 | GESHI_COMMENTS => false, 53 | 1 => true, 54 | ], 55 | 'STYLES' => [ 56 | 'KEYWORDS' => [ 57 | 1 => 'color: #000000; font-weight: bold;', 58 | ], 59 | 'COMMENTS' => [ 60 | 0 => 'color: #000099;', 61 | 1 => 'color: #000099;', 62 | 2 => 'color: #000099;', 63 | 3 => 'color: #006666;', 64 | 4 => 'color: #666666; font-style: italic;', 65 | ], 66 | 'ESCAPE_CHAR' => [ 67 | 0 => 'color: #000099; font-weight: bold;', 68 | ], 69 | 'STRINGS' => [ 70 | 0 => 'color: #ff0000;', 71 | ], 72 | 'REGEXPS' => [], 73 | 'SYMBOLS' => [], 74 | 'NUMBERS' => [ 75 | 0 => 'color: #000099;', 76 | ], 77 | 'METHODS' => [], 78 | 'SCRIPT' => [], 79 | 'BRACKETS' => [ 80 | 0 => 'color: #000099;', 81 | ], 82 | ], 83 | 'URLS' => [ 84 | 1 => '', 85 | ], 86 | 'OOLANG' => false, 87 | 'OBJECT_SPLITTERS' => [], 88 | 'REGEXPS' => [], 89 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 90 | 'SCRIPT_DELIMITERS' => [ 91 | ], 92 | 'HIGHLIGHT_STRICT_BLOCK' => [ 93 | ], 94 | 'TAB_WIDTH' => 4, 95 | ]; 96 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/hq9plus.php: -------------------------------------------------------------------------------- 1 | 'HQ9+', 41 | 'COMMENT_SINGLE' => [], 42 | 'COMMENT_MULTI' => [], 43 | 'COMMENT_REGEXP' => [], 44 | 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 45 | 'QUOTEMARKS' => [], 46 | 'ESCAPE_CHAR' => '', 47 | 'KEYWORDS' => [ 48 | ], 49 | 'SYMBOLS' => [ 50 | 'H', 'Q', '9', '+', 'h', 'q', 51 | ], 52 | 'CASE_SENSITIVE' => [ 53 | GESHI_COMMENTS => false, 54 | ], 55 | 'STYLES' => [ 56 | 'KEYWORDS' => [ 57 | ], 58 | 'COMMENTS' => [ 59 | ], 60 | 'BRACKETS' => [ 61 | 0 => 'color: #66cc66;', 62 | ], 63 | 'STRINGS' => [ 64 | 0 => 'color: #ff0000;', 65 | ], 66 | 'NUMBERS' => [ 67 | ], 68 | 'METHODS' => [ 69 | ], 70 | 'SYMBOLS' => [ 71 | 0 => 'color: #a16000;', 72 | ], 73 | 'ESCAPE_CHAR' => [ 74 | ], 75 | 'SCRIPT' => [ 76 | ], 77 | 'REGEXPS' => [ 78 | ], 79 | ], 80 | 'URLS' => [ 81 | ], 82 | 'OOLANG' => false, 83 | 'OBJECT_SPLITTERS' => [ 84 | ], 85 | 'REGEXPS' => [ 86 | ], 87 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 88 | 'SCRIPT_DELIMITERS' => [ 89 | ], 90 | 'HIGHLIGHT_STRICT_BLOCK' => [ 91 | ], 92 | 'TAB_WIDTH' => 4, 93 | 'PARSER_CONTROL' => [ 94 | 'ENABLE_FLAGS' => [ 95 | 'KEYWORDS' => GESHI_NEVER, 96 | 'COMMENTS' => GESHI_NEVER, 97 | 'STRINGS' => GESHI_NEVER, 98 | 'REGEXPS' => GESHI_NEVER, 99 | 'NUMBERS' => GESHI_NEVER, 100 | ], 101 | ], 102 | ]; 103 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/pike.php: -------------------------------------------------------------------------------- 1 | 'Pike', 43 | 'COMMENT_SINGLE' => [1 => '//'], 44 | 'COMMENT_MULTI' => ['/*' => '*/'], 45 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 46 | 'QUOTEMARKS' => ['"'], 47 | 'ESCAPE_CHAR' => '\\', 48 | 'KEYWORDS' => [ 49 | 1 => [ 50 | 'goto', 'break', 'continue', 'return', 'case', 'default', 'if', 51 | 'else', 'switch', 'while', 'foreach', 'do', 'for', 'gauge', 52 | 'destruct', 'lambda', 'inherit', 'import', 'typeof', 'catch', 53 | 'inline', 'nomask', 'private', 'protected', 'public', 'static', 54 | ], 55 | ], 56 | 'SYMBOLS' => [ 57 | 1 => [ 58 | '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '!', '&', '|', '?', ';', 59 | ], 60 | ], 61 | 'CASE_SENSITIVE' => [ 62 | GESHI_COMMENTS => false, 63 | 1 => true, 64 | ], 65 | 'STYLES' => [ 66 | 'KEYWORDS' => [ 67 | 1 => 'color: #b1b100;', 68 | ], 69 | 'COMMENTS' => [ 70 | 1 => 'color: #666666; font-style: italic;', 71 | 'MULTI' => 'color: #666666; font-style: italic;', 72 | ], 73 | 'ESCAPE_CHAR' => [ 74 | 0 => 'color: #000099; font-weight: bold;', 75 | ], 76 | 'BRACKETS' => [ 77 | 0 => 'color: #009900;', 78 | ], 79 | 'STRINGS' => [ 80 | 0 => 'color: #0000ff;', 81 | ], 82 | 'NUMBERS' => [ 83 | 0 => 'color: #cc66cc;', 84 | ], 85 | 'METHODS' => [ 86 | 0 => 'color: #004000;', 87 | ], 88 | 'SYMBOLS' => [ 89 | 1 => 'color: #339933;', 90 | ], 91 | 'REGEXPS' => [], 92 | 'SCRIPT' => [], 93 | ], 94 | 'URLS' => [1 => ''], 95 | 'OOLANG' => true, 96 | 'OBJECT_SPLITTERS' => [1 => '.'], 97 | 'REGEXPS' => [], 98 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 99 | 'SCRIPT_DELIMITERS' => [], 100 | 'HIGHLIGHT_STRICT_BLOCK' => [], 101 | ]; 102 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/pycon.php: -------------------------------------------------------------------------------- 1 | >>).*?$(?:\n\.\.\..*?$)*($)/m'; 53 | $language_data['HIGHLIGHT_STRICT_BLOCK'][-1] = true; 54 | 55 | $language_data['STYLES']['SCRIPT'][-1] = 'color: #222222;'; 56 | 57 | if (!isset($language_data['COMMENT_REGEXP'])) { 58 | $language_data['COMMENT_REGEXP'] = []; 59 | } 60 | 61 | $language_data['COMMENT_REGEXP'][-1] = '/(?:^|\A\s)(?:>>>|\.\.\.)/m'; 62 | $language_data['STYLES']['COMMENTS'][-1] = 'color: #444444;'; 63 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/robots.php: -------------------------------------------------------------------------------- 1 | 'robots.txt', 37 | 'COMMENT_SINGLE' => [1 => '#'], 38 | 'COMMENT_MULTI' => [], 39 | 'COMMENT_REGEXP' => [1 => '/^Comment:.*?/m'], 40 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 41 | 'QUOTEMARKS' => [], 42 | 'ESCAPE_CHAR' => '', 43 | 'KEYWORDS' => [ 44 | 1 => [ 45 | 'Allow', 'Crawl-delay', 'Disallow', 'Request-rate', 'Robot-version', 46 | 'Sitemap', 'User-agent', 'Visit-time', 47 | ], 48 | ], 49 | 'SYMBOLS' => [ 50 | ':', 51 | ], 52 | 'CASE_SENSITIVE' => [ 53 | GESHI_COMMENTS => false, 54 | 1 => true, 55 | ], 56 | 'STYLES' => [ 57 | 'KEYWORDS' => [ 58 | 1 => 'color: #b1b100;', 59 | ], 60 | 'COMMENTS' => [ 61 | 1 => 'color: #808080; font-style: italic;', 62 | ], 63 | 'ESCAPE_CHAR' => [ 64 | 0 => 'color: #000099; font-weight: bold;', 65 | ], 66 | 'BRACKETS' => [ 67 | 0 => 'color: #66cc66;', 68 | ], 69 | 'STRINGS' => [ 70 | 0 => 'color: #ff0000;', 71 | ], 72 | 'NUMBERS' => [ 73 | 0 => 'color: #cc66cc;', 74 | ], 75 | 'METHODS' => [ 76 | ], 77 | 'SYMBOLS' => [ 78 | 0 => 'color: #66cc66;', 79 | ], 80 | 'REGEXPS' => [ 81 | ], 82 | 'SCRIPT' => [ 83 | ], 84 | ], 85 | 'URLS' => [ 86 | 1 => 'http://www.robotstxt.org/wc/norobots.html', 87 | ], 88 | 'OOLANG' => false, 89 | 'OBJECT_SPLITTERS' => [ 90 | ], 91 | 'REGEXPS' => [ 92 | ], 93 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 94 | 'SCRIPT_DELIMITERS' => [ 95 | ], 96 | 'HIGHLIGHT_STRICT_BLOCK' => [ 97 | ], 98 | ]; 99 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/text.php: -------------------------------------------------------------------------------- 1 | 'Text', 48 | 'COMMENT_SINGLE' => [], 49 | 'COMMENT_MULTI' => [], 50 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 51 | 'QUOTEMARKS' => [], 52 | 'ESCAPE_CHAR' => '', 53 | 'KEYWORDS' => [], 54 | 'SYMBOLS' => [], 55 | 'CASE_SENSITIVE' => [ 56 | GESHI_COMMENTS => false, 57 | ], 58 | 'STYLES' => [ 59 | 'KEYWORDS' => [], 60 | 'COMMENTS' => [], 61 | 'ESCAPE_CHAR' => [], 62 | 'BRACKETS' => [], 63 | 'STRINGS' => [], 64 | 'NUMBERS' => [], 65 | 'METHODS' => [], 66 | 'SYMBOLS' => [], 67 | 'SCRIPT' => [], 68 | 'REGEXPS' => [], 69 | ], 70 | 'URLS' => [], 71 | 'OOLANG' => false, 72 | 'OBJECT_SPLITTERS' => [], 73 | 'REGEXPS' => [], 74 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 75 | 'SCRIPT_DELIMITERS' => [], 76 | 'HIGHLIGHT_STRICT_BLOCK' => [], 77 | 'PARSER_CONTROL' => [ 78 | 'ENABLE_FLAGS' => [ 79 | 'ALL' => GESHI_NEVER, 80 | ], 81 | ], 82 | ]; 83 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/vedit.php: -------------------------------------------------------------------------------- 1 | 'Vedit macro language', 44 | 'COMMENT_SINGLE' => [1 => '//'], 45 | 'COMMENT_MULTI' => [], 46 | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 47 | 'QUOTEMARKS' => ['"', '\''], 48 | 'ESCAPE_CHAR' => '', 49 | 'KEYWORDS' => [ 50 | 1 => [ 51 | 'break', 'breakout', 'break_out', 'continue', 'do', 'else', 'for', 52 | 'goto', 'if', 'repeat', 'return', 'while', 53 | ], 54 | ], 55 | 'SYMBOLS' => [ 56 | 1 => [ 57 | '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', 58 | '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ',', 59 | ], 60 | ], 61 | 'CASE_SENSITIVE' => [ 62 | GESHI_COMMENTS => false, 63 | 1 => false, 64 | ], 65 | 'STYLES' => [ 66 | 'KEYWORDS' => [ 67 | 1 => 'color: #b1b100;', 68 | ], 69 | 'COMMENTS' => [ 70 | 1 => 'color: #666666; font-style: italic;', 71 | 'MULTI' => 'color: #666666; font-style: italic;', 72 | ], 73 | 'ESCAPE_CHAR' => [ 74 | 0 => 'color: #000099; font-weight: bold;', 75 | ], 76 | 'BRACKETS' => [ 77 | 0 => 'color: #009900;', 78 | ], 79 | 'STRINGS' => [ 80 | 0 => 'color: #0000ff;', 81 | ], 82 | 'NUMBERS' => [ 83 | 0 => 'color: #cc66cc;', 84 | ], 85 | 'METHODS' => [ 86 | 0 => 'color: #004000;', 87 | ], 88 | 'SYMBOLS' => [ 89 | 1 => 'color: #339933;', 90 | ], 91 | 'REGEXPS' => [], 92 | 'SCRIPT' => [], 93 | ], 94 | 'URLS' => [1 => ''], 95 | 'OOLANG' => false, 96 | 'OBJECT_SPLITTERS' => [], 97 | 'REGEXPS' => [], 98 | 'STRICT_MODE_APPLIES' => GESHI_NEVER, 99 | 'SCRIPT_DELIMITERS' => [], 100 | 'HIGHLIGHT_STRICT_BLOCK' => [], 101 | ]; 102 | -------------------------------------------------------------------------------- /library/GeSHi/geshi/xbasic.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macsch15/SimPas/cea4507d4bb47523c2fc3d31548593640115bfbb/library/GeSHi/geshi/xbasic.php -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 16 | tests 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine On 3 | RewriteBase / 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | RewriteCond %{REQUEST_FILENAME} !-d 6 | RewriteRule ^(.*)$ index.php?$1 [QSA,L] 7 | 8 | 9 | 10 | 11 | Header set Access-Control-Allow-Origin "*" 12 | 13 | 14 | -------------------------------------------------------------------------------- /public/assets/default/css/application/base.less: -------------------------------------------------------------------------------- 1 | .alert { 2 | padding: 9px; 3 | } 4 | 5 | .font { 6 | font-family: @base-font-family; 7 | } 8 | 9 | .link_underline a { 10 | text-decoration: underline !important; 11 | } 12 | 13 | ol, ol a { 14 | color: @base-ol-link-font-color; 15 | text-decoration: none; 16 | } 17 | 18 | ol a:hover { 19 | color: @base-ol-link-font-color-hover; 20 | text-decoration: none; 21 | } 22 | 23 | ol div { 24 | color: @base-ol-div-background; 25 | padding: 5px; 26 | } 27 | 28 | .list-inline > li { 29 | padding: 0; 30 | } 31 | 32 | .list-inline { 33 | margin-left: 0; 34 | } 35 | 36 | .header_items { 37 | border-radius: 0; 38 | box-shadow: none; 39 | padding: 5px; 40 | } 41 | 42 | .wrap { 43 | max-width: @base-wrap-max-width; 44 | margin: 0 auto; 45 | } 46 | 47 | .wrap_content { 48 | background: @base-wrap-content-background; 49 | padding: 10px; 50 | } 51 | 52 | .muted_font { 53 | color: @muted-font-color; 54 | } 55 | 56 | .copyright { 57 | margin-top: 30px; 58 | margin-bottom: 20px; 59 | font-size: 11px; 60 | text-align: right; 61 | color: @copyright-font-color; 62 | } 63 | 64 | .copyright a { 65 | color: @copyright-font-color; 66 | text-decoration: none; 67 | } 68 | 69 | .disabled { 70 | color: #fff; 71 | } 72 | 73 | .tooltip { 74 | z-index: 50000 !important; 75 | } 76 | 77 | .tooltip-inner { 78 | padding: 9px; 79 | border-radius: 0; 80 | font-size: 11px; 81 | text-transform: uppercase; 82 | } 83 | 84 | .popover, .modal-content { 85 | box-shadow: 0px 15px 35px rgba(0, 0, 0, 0.2); 86 | border: none; 87 | border-radius: 0; 88 | } 89 | 90 | .modal-backdrop { 91 | background: none; 92 | } 93 | 94 | @media (max-width: 767px) { 95 | .input_percent { 96 | width: 100%; 97 | margin: 8px 0 8px 0; 98 | } 99 | } 100 | 101 | @media (min-width: 768px) { 102 | .input_percent { 103 | width: 49%; 104 | } 105 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/breadcrumb.less: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | padding: 0; 3 | background: @breadcrumb-background; 4 | border-radius: 0; 5 | } 6 | 7 | .breadcrumb li { 8 | color: @breadcrumb-font-color; 9 | padding-top: 10px; 10 | font-size: @breadcrumb-font-size; 11 | } 12 | 13 | .breadcrumb li a { 14 | color: @breadcrumb-font-color; 15 | text-decoration: none; 16 | } 17 | 18 | .breadcrumb li a:hover { 19 | color: @breadcrumb-font-color-hover; 20 | text-decoration: none; 21 | } 22 | 23 | .last:after { 24 | content: "\00a0" !important; 25 | } 26 | 27 | .breadcrumb li:after { 28 | content: @breadcrumb-fontawesome-arrow; 29 | margin: 0 6px 0 6px; 30 | } 31 | 32 | .breadcrumb li:last-child:after { 33 | content: "\00a0"; 34 | margin: 0 6px 0 6px; 35 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/buttons.less: -------------------------------------------------------------------------------- 1 | .main_button { 2 | background: @button-main-background; 3 | color: @button-main-background-font-color; 4 | min-width: @button-main-min-width; 5 | } 6 | 7 | .main_button:hover { 8 | background: @button-main-background-hover; 9 | transition: all 0.15s ease-in; 10 | color: @button-main-background-font-color-hover; 11 | } 12 | 13 | .button_private { 14 | background: @button-private-background; 15 | } 16 | 17 | .button_private:hover { 18 | background: @button-private-background-hover; 19 | transition: all 0.15s ease-in; 20 | } 21 | 22 | .main_button:focus, .main_button:visited { 23 | color: #fff; 24 | } 25 | 26 | .btn { 27 | font-weight: bold; 28 | transition: all 0.15s ease-in; 29 | } 30 | 31 | .btn-primary { 32 | background: @button-primary-background; 33 | border: 1px @button-primary-border-color solid !important; 34 | color: @button-primary-font-color; 35 | border: none; 36 | } 37 | 38 | .btn-primary:hover, .btn-primary:focus, .hover { 39 | background: @button-primary-background-hover; 40 | color: @button-primary-font-color-hover; 41 | border: 1px @button-primary-border-color-hover solid !important; 42 | transition: all 0.15s ease-in-out; 43 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/diff.less: -------------------------------------------------------------------------------- 1 | .diff_input_width { 2 | width: @diff-input-width !important; 3 | } 4 | 5 | .diff_text_help { 6 | padding: 35px 0 15px 0; 7 | font-style: italic; 8 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/forms.less: -------------------------------------------------------------------------------- 1 | textarea:focus, 2 | input[type="text"]:focus, 3 | input[type="password"]:focus, 4 | input[type="datetime"]:focus, 5 | input[type="datetime-local"]:focus, 6 | input[type="date"]:focus, 7 | input[type="month"]:focus, 8 | input[type="time"]:focus, 9 | input[type="week"]:focus, 10 | input[type="number"]:focus, 11 | input[type="email"]:focus, 12 | input[type="url"]:focus, 13 | input[type="search"]:focus, 14 | input[type="tel"]:focus, 15 | input[type="color"]:focus, 16 | .uneditable-input:focus, 17 | .form-control:focus { 18 | box-shadow: none !important; 19 | border: @input-border-px solid @input-border-color !important; 20 | outline: none !important; 21 | } 22 | 23 | .small_form { 24 | width: @small-form-width; 25 | margin: 0 auto; 26 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/latest.less: -------------------------------------------------------------------------------- 1 | .latest { 2 | border-bottom: 1px @latest-border-bottom-color dotted; 3 | } 4 | 5 | .latest:last-child { 6 | border-bottom: none; 7 | } 8 | 9 | .latest h3 { 10 | font-size: @latest-h3-font-size; 11 | } 12 | 13 | .latest_hot { 14 | float: left; 15 | font-size: @latest-fontawesome-hot-icon-size; 16 | margin: 0 5px 0 -41px; 17 | color: @latest-fontawesome-hot-icon-color; 18 | } 19 | 20 | .latest_author { 21 | color: @latest-author-font-color; 22 | } 23 | 24 | .latest_website { 25 | float: right; 26 | background: @latest-website-background; 27 | padding: 4px 8px 4px 8px; 28 | border-radius: 3px; 29 | color: @latest-website-font-color; 30 | } 31 | 32 | .latest_website:hover { 33 | background: @latest-website-background-hover; 34 | transition: all 0.15s ease-in-out; 35 | color: @latest-website-font-color-hover; 36 | } 37 | 38 | .latest_syntax { 39 | margin: 0 10px 0 0; 40 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/navbar.less: -------------------------------------------------------------------------------- 1 | .navbar { 2 | background: @navbar-background; 3 | border-bottom: none; 4 | margin-bottom: 0; 5 | } 6 | 7 | .navbar-brand { 8 | color: @navbar-brand-font-color !important; 9 | } 10 | 11 | .navbar-collapse { 12 | border-top: 0; 13 | } 14 | 15 | .navbar-toggle { 16 | color: @navbar-toggle-font-color; 17 | border: 1px @navbar-toggle-border-color solid !important; 18 | } 19 | 20 | .navbar-toggle:hover, 21 | .navbar-toggle:active, 22 | .navbar-toggle:focus { 23 | background: @navbar-toggle-background-hover !important; 24 | } 25 | 26 | .navbar-inner { 27 | box-shadow: none !important; 28 | border-bottom: 1px @navbar-inner-border-bottom-color solid; 29 | } 30 | 31 | .navbar .nav > li > a { 32 | padding: 6px 10px 6px 10px; 33 | margin: 10px 4px 10px 4px; 34 | color: #fff !important; 35 | float: left; 36 | font-weight: bold; 37 | } 38 | 39 | .navbar .nav > li > a:focus { 40 | color: @navbar-focus-font-color !important; 41 | } 42 | 43 | .navbar .nav > li > a:hover { 44 | color: @navbar-hover-font-color !important; 45 | transition: all 0.15s ease-in; 46 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/paste.less: -------------------------------------------------------------------------------- 1 | .paste_title { 2 | font-size: @paste-title-font-size; 3 | float: left; 4 | margin-right: 9px; 5 | } 6 | 7 | .syntax_highlight_option { 8 | padding: 0; 9 | margin: 0 auto; 10 | } 11 | 12 | .line_active { 13 | color: @line-active-font-color; 14 | background: @line-active-font-background; 15 | } 16 | 17 | .options_button { 18 | color: @options-button-font-color; 19 | } 20 | 21 | .pre_code { 22 | background: @pre-code-background; 23 | border: 1px @pre-code-border-color solid; 24 | line-height: @pre-code-line-height; 25 | } 26 | 27 | .chars_left:focus { 28 | border: 1px @chars_left-font-color solid !important; 29 | } 30 | 31 | .to_top a { 32 | margin: 0 8px 0 0; 33 | } 34 | 35 | .error_exclamation { 36 | color: @error-exclamation-fontawesome-icon-color; 37 | margin: 0 15px 0 0; 38 | font-size: @error-exclamation-fontawesome-icon-size; 39 | } 40 | 41 | .return_to_index { 42 | margin: 15px 0 0 0; 43 | } 44 | 45 | .author_website { 46 | padding: 0; 47 | background-color: @author-website-background; 48 | border: none; 49 | } 50 | 51 | .author_website input[type="url"] { 52 | height: 34px; 53 | padding: 6px 12px; 54 | border: 1px solid #CCC; 55 | margin-left: -2px; 56 | width: 201px; 57 | border-radius: 0 4px 4px 0; 58 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset; 59 | transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; 60 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/print.less: -------------------------------------------------------------------------------- 1 | @media print { 2 | body * { 3 | visibility: hidden; 4 | } 5 | 6 | #zclip_copy *, 7 | .pre_code { 8 | visibility: visible; 9 | } 10 | 11 | .container, 12 | #zclip_copy { 13 | position: absolute; 14 | top: 1px; 15 | } 16 | 17 | pre { 18 | overflow: visible; 19 | } 20 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/progress-bar.less: -------------------------------------------------------------------------------- 1 | .progress { 2 | position: absolute; 3 | width: 100%; 4 | height: 0px; 5 | margin: 0; 6 | z-index: 9999; 7 | border-radius: 0; 8 | } 9 | 10 | .progress-bar { 11 | height: @progress-bar-height; 12 | } 13 | 14 | .progress.active .progress-bar { 15 | animation-duration: @progress-bar-animation-duration; 16 | } -------------------------------------------------------------------------------- /public/assets/default/css/application/simpas.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | @import "variables.less"; 3 | 4 | // SimPas UI 5 | @import "base.less"; 6 | @import "breadcrumb.less"; 7 | @import "buttons.less"; 8 | @import "diff.less"; 9 | @import "forms.less"; 10 | @import "latest.less"; 11 | @import "navbar.less"; 12 | @import "paste.less"; 13 | @import "print.less"; 14 | @import "progress-bar.less"; -------------------------------------------------------------------------------- /public/assets/default/css/application/variables.less: -------------------------------------------------------------------------------- 1 | // base.less 2 | @base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 3 | @base-ol-link-font-color: #9C9C9C; 4 | @base-ol-link-font-color-hover: #6B6B6B; 5 | @base-ol-div-background: #000000; 6 | @base-wrap-max-width: 1024px; 7 | @base-wrap-content-background: #fff; 8 | @muted-font-color: #BFBFBF; 9 | @copyright-font-color: #595959; 10 | 11 | // breadcrumb.less 12 | @breadcrumb-background: #353535; 13 | @breadcrumb-font-color: #fff; 14 | @breadcrumb-font-color-hover: #E5E5E5; 15 | @breadcrumb-font-size: 16px; 16 | @breadcrumb-fontawesome-arrow: "\00a0\f054"; 17 | 18 | // buttons.less 19 | @button-main-background: #545454; 20 | @button-main-background-hover: #4A4A4A; 21 | @button-main-background-font-color: #fff; 22 | @button-main-background-font-color-hover: #fff; 23 | @button-main-min-width: 150px; 24 | @button-private-background: #AB824F; 25 | @button-private-background-hover: #C29359; 26 | @button-primary-background: #fff; 27 | @button-primary-background-hover: #2F6488; 28 | @button-primary-font-color: #2F6488; 29 | @button-primary-font-color-hover: #fff; 30 | @button-primary-border-color: #D6D6D6; 31 | @button-primary-border-color-hover: #2F6488; 32 | 33 | // diff.less 34 | @diff-input-width: 255px; 35 | 36 | // forms.less 37 | @input-border-color: #C9C9C9; 38 | @input-border-px: 1px; 39 | @input-checkbox-fontawesome-icon: "\f096\00a0"; 40 | @input-checkbox-fontawesome-icon-color: #A8A8A8; 41 | @input-checkbox-fontawesome-icon-checked: "\f046\00a0"; 42 | @input-checkbox-fontawesome-icon-checked-color: #499BD1; 43 | @input-checkbox-label-fontsize: 17px; 44 | @small-form-width: 588px; 45 | 46 | // latest.less 47 | @latest-border-bottom-color: #E3E3E3; 48 | @latest-h3-font-size: 18px; 49 | @latest-fontawesome-hot-icon-size: 36px; 50 | @latest-fontawesome-hot-icon-color: #FFB700; 51 | @latest-author-font-color: #707070; 52 | @latest-website-background: #F0F0F0; 53 | @latest-website-background-hover: #53728C; 54 | @latest-website-font-color: #7D7D7D; 55 | @latest-website-font-color-hover: #fff; 56 | 57 | // navbar.less 58 | @navbar-background: #53728C; 59 | @navbar-brand-font-color: #fff; 60 | @navbar-toggle-font-color: #fff; 61 | @navbar-toggle-border-color: #719CBF; 62 | @navbar-toggle-background-hover: #5F83A1; 63 | @navbar-inner-border-bottom-color: #D6D6D6; 64 | @navbar-focus-font-color: #ABC2D4; 65 | @navbar-hover-font-color: #DEF1FF; 66 | 67 | // paste.less 68 | @paste-title-font-size: 18px; 69 | @line-active-font-color: #000; 70 | @line-active-font-background: #E8E8E8; 71 | @options-button-font-color: #2F6488; 72 | @pre-code-background: #FAFAFA; 73 | @pre-code-border-color: #DEDEDE; 74 | @pre-code-line-height: 5px; 75 | @chars_left-font-color: red; 76 | @error-exclamation-fontawesome-icon-color: #EBD065; 77 | @error-exclamation-fontawesome-icon-size: 110px; 78 | @author-website-background: #fff; 79 | 80 | // progress-bar.less 81 | @progress-bar-height: 6px; 82 | @progress-bar-animation-duration: 0.30s; -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissible alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 41 | .alert-dismissible { 42 | padding-right: (@alert-padding + 20); 43 | 44 | // Adjust close link position 45 | .close { 46 | position: relative; 47 | top: -2px; 48 | right: -21px; 49 | color: inherit; 50 | } 51 | } 52 | 53 | // Alternate styles 54 | // 55 | // Generate contextual modifier classes for colorizing the alert. 56 | 57 | .alert-success { 58 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 59 | } 60 | .alert-info { 61 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 62 | } 63 | .alert-warning { 64 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 65 | } 66 | .alert-danger { 67 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 68 | } 69 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | 36 | // Hover state, but only for links 37 | a& { 38 | &:hover, 39 | &:focus { 40 | color: @badge-link-hover-color; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | } 45 | 46 | // Account for badges in navs 47 | a.list-group-item.active > &, 48 | .nav-pills > .active > a > & { 49 | color: @badge-active-color; 50 | background-color: @badge-active-bg; 51 | } 52 | .nav-pills > li > a > & { 53 | margin-left: 3px; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset and dependencies 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | @import "glyphicons.less"; 9 | 10 | // Core CSS 11 | @import "scaffolding.less"; 12 | @import "type.less"; 13 | @import "code.less"; 14 | @import "grid.less"; 15 | @import "tables.less"; 16 | @import "forms.less"; 17 | @import "buttons.less"; 18 | 19 | // Components 20 | @import "component-animations.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "responsive-embed.less"; 39 | @import "wells.less"; 40 | @import "close.less"; 41 | 42 | // Components w/ JavaScript 43 | @import "modals.less"; 44 | @import "tooltip.less"; 45 | @import "popovers.less"; 46 | @import "carousel.less"; 47 | 48 | // Utility classes 49 | @import "utilities.less"; 50 | @import "responsive-utilities.less"; 51 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | border-radius: @border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: @kbd-color; 28 | background-color: @kbd-bg; 29 | border-radius: @border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: ((@line-height-computed - 1) / 2); 44 | margin: 0 0 (@line-height-computed / 2); 45 | font-size: (@font-size-base - 1); // 14px to 13px 46 | line-height: @line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: @pre-color; 50 | background-color: @pre-bg; 51 | border: 1px solid @pre-border-color; 52 | border-radius: @border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: @pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition(height .35s ease); 31 | } 32 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding; 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | > hr { 23 | border-top-color: darken(@jumbotron-bg, 10%); 24 | } 25 | 26 | .container & { 27 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 28 | } 29 | 30 | .container { 31 | max-width: 100%; 32 | } 33 | 34 | @media screen and (min-width: @screen-sm-min) { 35 | padding-top: (@jumbotron-padding * 1.6); 36 | padding-bottom: (@jumbotron-padding * 1.6); 37 | 38 | .container & { 39 | padding-left: (@jumbotron-padding * 2); 40 | padding-right: (@jumbotron-padding * 2); 41 | } 42 | 43 | h1, 44 | .h1 { 45 | font-size: (@font-size-base * 4.5); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | zoom: 1; 14 | } 15 | 16 | // Proper spacing between instances of .media 17 | .media, 18 | .media .media { 19 | margin-top: 15px; 20 | } 21 | .media:first-child { 22 | margin-top: 0; 23 | } 24 | 25 | // For images and videos, set to block 26 | .media-object { 27 | display: block; 28 | } 29 | 30 | // Reset margins on headings for tighter default spacing 31 | .media-heading { 32 | margin: 0 0 5px; 33 | } 34 | 35 | 36 | // Media image alignment 37 | // ------------------------- 38 | 39 | .media { 40 | > .pull-left { 41 | margin-right: 10px; 42 | } 43 | > .pull-right { 44 | margin-left: 10px; 45 | } 46 | } 47 | 48 | 49 | // Media list variation 50 | // ------------------------- 51 | 52 | // Undo default ul/ol styles 53 | .media-list { 54 | padding-left: 0; 55 | list-style: none; 56 | } 57 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/text-emphasis.less"; 15 | @import "mixins/text-overflow.less"; 16 | @import "mixins/vendor-prefixes.less"; 17 | 18 | // Components 19 | @import "mixins/alerts.less"; 20 | @import "mixins/buttons.less"; 21 | @import "mixins/panels.less"; 22 | @import "mixins/pagination.less"; 23 | @import "mixins/list-group.less"; 24 | @import "mixins/nav-divider.less"; 25 | @import "mixins/forms.less"; 26 | @import "mixins/progress-bar.less"; 27 | @import "mixins/table-row.less"; 28 | 29 | // Skins 30 | @import "mixins/background-variant.less"; 31 | @import "mixins/border-radius.less"; 32 | @import "mixins/gradients.less"; 33 | 34 | // Layout 35 | @import "mixins/clearfix.less"; 36 | @import "mixins/center-block.less"; 37 | @import "mixins/nav-vertical-align.less"; 38 | @import "mixins/grid-framework.less"; 39 | @import "mixins/grid.less"; 40 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/buttons.less: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | .button-variant(@color; @background; @border) { 7 | color: @color; 8 | background-color: @background; 9 | border-color: @border; 10 | 11 | &:hover, 12 | &:focus, 13 | &.focus, 14 | &:active, 15 | &.active, 16 | .open > .dropdown-toggle& { 17 | color: @color; 18 | background-color: darken(@background, 10%); 19 | border-color: darken(@border, 12%); 20 | } 21 | &:active, 22 | &.active, 23 | .open > .dropdown-toggle& { 24 | background-image: none; 25 | } 26 | &.disabled, 27 | &[disabled], 28 | fieldset[disabled] & { 29 | &, 30 | &:hover, 31 | &:focus, 32 | &.focus, 33 | &:active, 34 | &.active { 35 | background-color: @background; 36 | border-color: @border; 37 | } 38 | } 39 | 40 | .badge { 41 | color: @background; 42 | background-color: @color; 43 | } 44 | } 45 | 46 | // Button sizes 47 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 48 | padding: @padding-vertical @padding-horizontal; 49 | font-size: @font-size; 50 | line-height: @line-height; 51 | border-radius: @border-radius; 52 | } 53 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /public/assets/default/css/bootstrap/mixins/forms.less: -------------------------------------------------------------------------------- 1 | // Form validation states 2 | // 3 | // Used in forms.less to generate the form validation CSS for warnings, errors, 4 | // and successes. 5 | 6 | .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { 7 | // Color the label and help text 8 | .help-block, 9 | .control-label, 10 | .radio, 11 | .checkbox, 12 | .radio-inline, 13 | .checkbox-inline, 14 | &.radio label, 15 | &.checkbox label, 16 | &.radio-inline label, 17 | &.checkbox-inline label { 18 | color: @text-color; 19 | } 20 | // Set the border and box shadow on specific inputs to match 21 | .form-control { 22 | border-color: @border-color; 23 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work 24 | &:focus { 25 | border-color: darken(@border-color, 10%); 26 | @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); 27 | .box-shadow(@shadow); 28 | } 29 | } 30 | // Set validation states also for addons 31 | .input-group-addon { 32 | color: @text-color; 33 | border-color: @border-color; 34 | background-color: @background-color; 35 | } 36 | // Optional feedback icon 37 | .form-control-feedback { 38 | color: @text-color; 39 | } 40 | } 41 | 42 | 43 | // Form control focus state 44 | // 45 | // Generate a customized focus state and for any input with the specified color, 46 | // which defaults to the `@input-border-focus` variable. 47 | // 48 | // We highly encourage you to not customize the default value, but instead use 49 | // this to tweak colors on an as-needed basis. This aesthetic change is based on 50 | // WebKit's default styles, but applicable to a wider range of browsers. Its 51 | // usability and accessibility should be taken into account with any change. 52 | // 53 | // Example usage: change the default blue border and shadow to white for better 54 | // contrast against a dark gray background. 55 | .form-control-focus(@color: @input-border-focus) { 56 | @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); 57 | &:focus { 58 | border-color: @color; 59 | outline: 0; 60 | .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); 61 | } 62 | } 63 | 64 | // Form control sizing 65 | // 66 | // Relative text size, padding, and border-radii changes for form controls. For 67 | // horizontal sizing, wrap controls in the predefined grid classes. ` options had the same value, the clone() method would select the wrong one in the cloned box. The fix, suggested by Piotr 9 | // and implemented here, is to use the selectedIndex property on the 24 | 25 | 26 | 29 | 30 | 31 | {% endblock %} -------------------------------------------------------------------------------- /views/EmailTemplates/Abuse.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "EmailTemplates/BaseBlock.html.twig" %} 2 | 3 | {% block document_content %} 4 | {% set site_title = config.site_title %} 5 | {% set paste_url = build_url('paste/' ~ paste_id) %} 6 | {% set home_url = build_url() %} 7 | 8 | {% trans %}Hello,
9 | You have received abuse report at {{ site_title }} with reason: 10 |
11 | {{ reason }} 12 |
13 | 14 | Go to paste: {{ paste_url }}
15 | IP address of author this report: {{ ip_address }}
16 | 17 | {% endtrans %} 20 | {% endblock %} -------------------------------------------------------------------------------- /views/EmailTemplates/BaseBlock.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 62 | 63 | 64 | 65 | 66 | 67 | 89 | 90 | 91 |
68 | 69 | 70 | 71 | 74 | 75 | 76 |
72 |

{{ config.site_title }} {{ config.full_url }}

73 |
77 | 78 | 79 | 80 | 85 | 86 | 87 |
81 |
82 | {% block document_content %}{% endblock %} 83 |
84 |
88 |
92 | 93 | -------------------------------------------------------------------------------- /views/Embed.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "BaseBlockBlank.html.twig" %} 2 | 3 | {% block document_content %} 4 | {% if paste.title is not empty %} 5 | {% set paste_title = paste.title %} 6 | {% else %} 7 | {% set paste_title = paste.unique_id %} 8 | {% endif %} 9 | 10 | {% set paste_h4 = paste_title|length > 30 ? "" ~ paste_title|slice(0, 25) ~ "..." : paste_title %} 11 | 12 |
13 | 14 | 15 | 16 | 17 | {% trans %}Paste{% endtrans %} "{{ paste_h4|raw }}" 18 | 19 | {{ paste.syntax }} 20 | 21 | {% if paste.author is not empty %} 22 | {% set paste_author = paste.author|length > 15 ? "" ~ paste.author|slice(0, 15) ~ "..." : paste.author %} 23 | {% trans %}by{% endtrans %} {{ paste_author|raw }} 24 | {% endif %} 25 |
26 | 27 | 31 | 32 | {{ paste.content|raw }} 33 | {% endblock %} -------------------------------------------------------------------------------- /views/Exception.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {% if constant('SimPas\\Application::ENVIRONMENT') == 'dev' %} 7 | {% if type is not empty %} 8 | {{ type }} exception detected! 9 | {% else %} 10 | Exception detected! 11 | {% endif %} - {{ config.site_title }} 12 | {% else %} 13 | 500 Internal Server Error - {{ config.site_title }} 14 | {% endif %} 15 | 16 | 17 | 18 | 19 |
20 | {% if constant('SimPas\\Application::ENVIRONMENT') == 'dev' %} 21 |

Catastrophic error! :C

22 |
23 |

24 | {{ message|raw }} 25 |
26 | 500 Internal Server Error — Exception {{ type }} 27 |
28 |

29 |
30 |
31 | 32 |

In file

33 |
34 |

35 | 36 | {{ data.2 }} at line {{ data.0 }} 37 | 38 |

39 |
40 |
41 |
{% for line, content in lines %}{% if line == data.1 %}{{ line+1 }}{% else %}{{ line+1 }}{% endif %}{% if line == data.1 %}{{ content }}{% else %}{{ content }}{% endif %}{% endfor %}
42 |
43 | 44 |
45 | 46 |

Stack Trace

47 | 48 | {% for key, value in stacktrace %} 49 |
50 | {{ loop.index }} 51 | File: {% if value.file is defined %}{{ value.file }}{% else %}-{% endif %}
52 | Line: {% if value.line is defined %}{{ value.line }}{% else %}-{% endif %}
53 | Class: {% if value.class is defined and value.function is defined %}{{ value.class }}::{{ value.function }}(){% else %}-{% endif %} 54 |
55 |
56 | {% endfor %} 57 |
58 | 59 | {% else %} 60 |

500 Internal Server Error

61 | {% if stacktrace.0.class is defined and stacktrace.0.function is defined %} 62 |
63 |

Exception in {{ stacktrace.0.class }}::{{ stacktrace.0.function }}()

64 |
65 | {% endif %} 66 | 67 |
68 | 69 | {% if config.admin_email is not empty %} 70 | 71 | {% set admin_email = config.admin_email %} 72 | Please contact the administrator {{ admin_email }} and report it about this error. 73 | 74 |

75 | {% endif %} 76 | 77 | More information about this exception are available in the error log. 78 | {% endif %} 79 | 80 |
81 | Powered by SimPas 82 |
83 |
84 | 85 | -------------------------------------------------------------------------------- /views/JsonApi.html.twig: -------------------------------------------------------------------------------- 1 | {{ json|raw }} -------------------------------------------------------------------------------- /views/LatestPastes.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "BaseBlock.html.twig" %} 2 | 3 | {% block document_title %}{% trans %}Latest pastes{% endtrans %}{% endblock %} 4 | 5 | {% block breadcrumb %} 6 | {{ breadcrumb.add(block('document_title'), build_url('latest')) }} 7 | {% endblock %} 8 | 9 | {% block document_content %} 10 | {% if container|length > 0 %} 11 |

 {% trans %}Latest pastes{% endtrans %}

12 | 13 | {% for key in container %} 14 |
15 | {% if key.hits >= config.hot_paste %} 16 | 19 | {% endif %} 20 | 21 | {% if key.author_website is not empty %} 22 | 23 | 24 | 25 | 26 | 27 | {% endif %} 28 | 29 |

30 | 31 | {{ key.syntax }} 32 | 33 | 34 | {{ key.title is not empty ? key.title : key.unique_id }} 35 | 36 | {% if key.author is not empty %} 37 | {% trans %}by{% endtrans %} {{ key.author }} 38 | {% endif %} 39 |
40 | 41 | {% trans %}Authored{% endtrans %}   42 | {% trans %}and{% endtrans %}  43 | {% if paste_expire.isExpired(key.unique_id) == true %} 44 | {% trans %}expired{% endtrans %} 45 | {% else %} 46 | {% if key.expire is not empty and key.expire == 'never' %} 47 | {% trans %}never expires{% endtrans %} 48 | {% else %} 49 | {% trans %}will expire in{% endtrans %}  50 | {% endif %} 51 | {% endif %} 52 | 53 |

54 |
55 | {% endfor %} 56 | {% else %} 57 |
58 |
59 |

60 |  {% trans %}No results{% endtrans %} 61 |

62 |
63 |
64 | {% trans %}No results found. Send a public paste and try again.{% endtrans %} 65 |
66 |
67 | 68 |  {% trans %}Return to index page{% endtrans %} 69 | {% endif %} 70 | {% endblock %} -------------------------------------------------------------------------------- /views/Macros/Breadcrumb.html.twig: -------------------------------------------------------------------------------- 1 | {% macro add(location_title, location_url) %} 2 | {% if location_url is not empty %} 3 |
  • {{ location_title }}
  • 4 | {% else %} 5 |
  • {{ location_title }}
  • 6 | {% endif %} 7 | {% endmacro %} -------------------------------------------------------------------------------- /views/Options.html.twig: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 |
    5 |
    6 |
    7 | 8 | 9 |
    10 |
    11 |
    12 | 13 | 20 |
    -------------------------------------------------------------------------------- /views/RawMode.html.twig: -------------------------------------------------------------------------------- 1 | {{ raw_content|raw }} -------------------------------------------------------------------------------- /views/SiteOffline.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% trans %}Site is currently offline{% endtrans %} - {{ config.site_title }} 6 | 7 | 8 | 9 |
    10 |
    11 |

    {% trans %}This site is currently offline{% endtrans %}

    12 |
    13 | {% set site_title = config.site_title %} 14 |
    15 | {% if config.offline_message is not empty %} 16 | {% if config.offline_message_allow_html %} 17 |

    {{ config.offline_message|raw }}

    18 | {% else %} 19 |

    {{ config.offline_message }}

    20 | {% endif %} 21 | {% else %} 22 |

    {% trans %}{{ site_title }} is currently under maintenance. We be back later.{% endtrans %}

    23 | {% endif %} 24 | 25 |
    26 |
    27 | 28 | 31 |
    32 | 33 | -------------------------------------------------------------------------------- /views/Text/Cookies.html.twig: -------------------------------------------------------------------------------- 1 |

    About cookies

    2 |

    Cookies are information packets sent by web servers to web browsers, and stored by the web browsers.

    3 |

    The information is then sent back to the server each time the browser requests a page from the server. This enables a web server to identify and track web browsers.

    4 |

    There are two main kinds of cookies: session cookies and persistent cookies. Session cookies are deleted from your computer when you close your browser, whereas persistent cookies remain stored on your computer until deleted, or until they reach their expiry date.

    5 |

    Refusing cookies

    6 |

    Most browsers allow you to refuse to accept cookies.

    7 |

    In Internet Explorer, you can refuse all cookies by clicking “Tools”, “Internet Options”, “Privacy”, and selecting “Block all cookies” using the sliding selector.

    8 |

    In Firefox, you can adjust your cookies settings by clicking “Tools”, “Options” and “Privacy”.

    9 |

    Blocking cookies will have a negative impact upon the usability of this website.

    -------------------------------------------------------------------------------- /views/Text/Rules.html.twig: -------------------------------------------------------------------------------- 1 |

    This Agreement was last modified on September 10, 2013.

    2 | 3 |

    Please read these Terms and Conditions ("Agreement", "Terms and Conditions") carefully before using {{ site_url }} ("the Site") operated by SimPas ("us", "we", or "our"). This Agreement sets forth the legally binding terms and conditions for your use of the Site at {{ site_url }}.

    4 |

    By accessing or using the Site in any manner, including, but not limited to, visiting or browsing the Site or contributing content or other materials to the Site, you agree to be bound by these Terms and Conditions. Capitalized terms are defined in this Agreement.

    5 | 6 |

    Intellectual Property
    The Site and its original content, features and functionality are owned by SimPas and are protected by international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws.

    7 | 8 |

    Termination
    We may terminate your access to the Site, without cause or notice, which may result in the forfeiture and destruction of all information associated with you. All provisions of this Agreement that by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity, and limitations of liability.

    9 | 10 |

    Links To Other Sites
    Our Site may contain links to third-party sites that are not owned or controlled by SimPas.

    11 |

    SimPas has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party sites or services. We strongly advise you to read the terms and conditions and privacy policy of any third-party site that you visit.

    12 | 13 |

    Governing Law
    This Agreement (and any further rules, polices, or guidelines incorporated by reference) shall be governed and construed in accordance with the laws of Poland, without giving effect to any principles of conflicts of law.

    14 | 15 |

    Changes To This Agreement
    We reserve the right, at our sole discretion, to modify or replace these Terms and Conditions by posting the updated terms on the Site. Your continued use of the Site after any such changes constitutes your acceptance of the new Terms and Conditions.

    16 |

    Please review this Agreement periodically for changes. If you do not agree to any of this Agreement or any changes to this Agreement, do not use, access or continue to access the Site or discontinue any use of the Site immediately.

    --------------------------------------------------------------------------------