From 5e9340d35ed69be795c2d354269bd716a60533f7 Mon Sep 17 00:00:00 2001 From: chriswmackey Date: Wed, 28 Aug 2024 15:04:00 +0000 Subject: [PATCH] deploy: update docs --- .nojekyll | 1 + README.md | 1 + docs/.buildinfo | 4 + docs/.doctrees/cli/index.doctree | Bin 0 -> 3619 bytes docs/.doctrees/cli/simulate.doctree | Bin 0 -> 12944 bytes docs/.doctrees/dragonfly_uwg.cli.doctree | Bin 0 -> 4051 bytes .../dragonfly_uwg.cli.simulate.doctree | Bin 0 -> 3265 bytes docs/.doctrees/dragonfly_uwg.doctree | Bin 0 -> 4453 bytes .../dragonfly_uwg.properties.building.doctree | Bin 0 -> 63302 bytes .../dragonfly_uwg.properties.context.doctree | Bin 0 -> 27265 bytes .../dragonfly_uwg.properties.doctree | Bin 0 -> 4198 bytes .../dragonfly_uwg.properties.model.doctree | Bin 0 -> 67356 bytes .../dragonfly_uwg.properties.room2d.doctree | Bin 0 -> 23149 bytes .../dragonfly_uwg.properties.story.doctree | Bin 0 -> 22993 bytes docs/.doctrees/dragonfly_uwg.run.doctree | Bin 0 -> 12442 bytes .../dragonfly_uwg.simulation.boundary.doctree | Bin 0 -> 31961 bytes .../dragonfly_uwg.simulation.doctree | Bin 0 -> 4244 bytes ...dragonfly_uwg.simulation.parameter.doctree | Bin 0 -> 45174 bytes .../dragonfly_uwg.simulation.refsite.doctree | Bin 0 -> 27302 bytes ...dragonfly_uwg.simulation.runperiod.doctree | Bin 0 -> 25777 bytes ...ragonfly_uwg.simulation.vegetation.doctree | Bin 0 -> 31871 bytes docs/.doctrees/dragonfly_uwg.terrain.doctree | Bin 0 -> 56505 bytes docs/.doctrees/dragonfly_uwg.traffic.doctree | Bin 0 -> 34968 bytes docs/.doctrees/dragonfly_uwg.writer.doctree | Bin 0 -> 9363 bytes docs/.doctrees/environment.pickle | Bin 0 -> 288187 bytes docs/.doctrees/index.doctree | Bin 0 -> 8759 bytes docs/.doctrees/modules.doctree | Bin 0 -> 2739 bytes docs/.nojekyll | 0 docs/README.md | 1 + .../dragonfly_uwg/properties/building.html | 723 + .../dragonfly_uwg/properties/context.html | 500 + .../dragonfly_uwg/properties/model.html | 822 ++ .../dragonfly_uwg/properties/room2d.html | 484 + .../dragonfly_uwg/properties/story.html | 484 + docs/_modules/dragonfly_uwg/run.html | 539 + .../dragonfly_uwg/simulation/boundary.html | 561 + .../dragonfly_uwg/simulation/parameter.html | 698 + .../dragonfly_uwg/simulation/refsite.html | 530 + .../dragonfly_uwg/simulation/runperiod.html | 549 + .../dragonfly_uwg/simulation/vegetation.html | 572 + docs/_modules/dragonfly_uwg/terrain.html | 728 ++ docs/_modules/dragonfly_uwg/traffic.html | 582 + docs/_modules/dragonfly_uwg/writer.html | 455 + docs/_modules/index.html | 421 + docs/_sources/cli/index.rst.txt | 14 + docs/_sources/cli/simulate.rst.txt | 6 + docs/_sources/dragonfly_uwg.cli.rst.txt | 18 + .../dragonfly_uwg.cli.simulate.rst.txt | 7 + .../dragonfly_uwg.properties.building.rst.txt | 7 + .../dragonfly_uwg.properties.context.rst.txt | 7 + .../dragonfly_uwg.properties.model.rst.txt | 7 + .../dragonfly_uwg.properties.room2d.rst.txt | 7 + .../_sources/dragonfly_uwg.properties.rst.txt | 22 + .../dragonfly_uwg.properties.story.rst.txt | 7 + docs/_sources/dragonfly_uwg.rst.txt | 31 + docs/_sources/dragonfly_uwg.run.rst.txt | 7 + .../dragonfly_uwg.simulation.boundary.rst.txt | 7 + ...dragonfly_uwg.simulation.parameter.rst.txt | 7 + .../dragonfly_uwg.simulation.refsite.rst.txt | 7 + .../_sources/dragonfly_uwg.simulation.rst.txt | 22 + ...dragonfly_uwg.simulation.runperiod.rst.txt | 7 + ...ragonfly_uwg.simulation.vegetation.rst.txt | 7 + docs/_sources/dragonfly_uwg.terrain.rst.txt | 7 + docs/_sources/dragonfly_uwg.traffic.rst.txt | 7 + docs/_sources/dragonfly_uwg.writer.rst.txt | 7 + docs/_sources/index.rst.txt | 45 + docs/_sources/modules.rst.txt | 7 + .../_sphinx_javascript_frameworks_compat.js | 134 + docs/_static/basic.css | 899 ++ .../css/bootstrap-responsive.css | 1109 ++ .../css/bootstrap-responsive.min.css | 9 + .../_static/bootstrap-2.3.2/css/bootstrap.css | 6167 +++++++++ .../bootstrap-2.3.2/css/bootstrap.min.css | 9 + .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings.png | Bin 0 -> 12799 bytes docs/_static/bootstrap-2.3.2/js/bootstrap.js | 2287 ++++ .../bootstrap-2.3.2/js/bootstrap.min.js | 6 + .../bootstrap-3.4.1/css/bootstrap-theme.css | 587 + .../css/bootstrap-theme.css.map | 1 + .../css/bootstrap-theme.min.css | 6 + .../css/bootstrap-theme.min.css.map | 1 + .../_static/bootstrap-3.4.1/css/bootstrap.css | 6834 ++++++++++ .../bootstrap-3.4.1/css/bootstrap.css.map | 1 + .../bootstrap-3.4.1/css/bootstrap.min.css | 6 + .../bootstrap-3.4.1/css/bootstrap.min.css.map | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes docs/_static/bootstrap-3.4.1/js/bootstrap.js | 2580 ++++ .../bootstrap-3.4.1/js/bootstrap.min.js | 6 + docs/_static/bootstrap-3.4.1/js/npm.js | 13 + docs/_static/bootstrap-sphinx.css | 223 + docs/_static/bootstrap-sphinx.js | 175 + .../bootswatch-2.3.2/amelia/bootstrap.min.css | 9 + .../cerulean/bootstrap.min.css | 9 + .../bootswatch-2.3.2/cosmo/bootstrap.min.css | 9 + .../bootswatch-2.3.2/cyborg/bootstrap.min.css | 9 + .../bootswatch-2.3.2/flatly/bootstrap.min.css | 9 + .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../journal/bootstrap.min.css | 9 + .../readable/bootstrap.min.css | 9 + .../simplex/bootstrap.min.css | 9 + .../bootswatch-2.3.2/slate/bootstrap.min.css | 9 + .../spacelab/bootstrap.min.css | 9 + .../bootswatch-2.3.2/spruce/bootstrap.min.css | 9 + .../superhero/bootstrap.min.css | 9 + .../bootswatch-2.3.2/united/bootstrap.min.css | 9 + .../cerulean/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cosmo/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cyborg/bootstrap.min.css | 11 + .../bootswatch-3.4.1/darkly/bootstrap.min.css | 11 + .../bootswatch-3.4.1/flatly/bootstrap.min.css | 11 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../journal/bootstrap.min.css | 11 + .../bootswatch-3.4.1/lumen/bootstrap.min.css | 11 + .../bootswatch-3.4.1/paper/bootstrap.min.css | 11 + .../readable/bootstrap.min.css | 11 + .../sandstone/bootstrap.min.css | 11 + .../simplex/bootstrap.min.css | 11 + .../bootswatch-3.4.1/slate/bootstrap.min.css | 11 + .../spacelab/bootstrap.min.css | 11 + .../superhero/bootstrap.min.css | 11 + .../bootswatch-3.4.1/united/bootstrap.min.css | 11 + .../bootswatch-3.4.1/yeti/bootstrap.min.css | 11 + docs/_static/custom.css | 48 + docs/_static/doctools.js | 156 + docs/_static/documentation_options.js | 14 + docs/_static/file.png | Bin 0 -> 286 bytes docs/_static/jquery-3.6.0.js | 10881 ++++++++++++++++ docs/_static/jquery.js | 2 + docs/_static/js/jquery-1.12.4.min.js | 5 + docs/_static/js/jquery-fix.js | 2 + docs/_static/language_data.js | 199 + docs/_static/minus.png | Bin 0 -> 90 bytes docs/_static/plus.png | Bin 0 -> 90 bytes docs/_static/pygments.css | 84 + docs/_static/searchtools.js | 566 + docs/_static/sphinx_highlight.js | 144 + docs/_static/underscore-1.13.1.js | 2042 +++ docs/_static/underscore.js | 6 + docs/cli/index.html | 450 + docs/cli/simulate.html | 511 + docs/dragonfly_uwg.cli.html | 476 + docs/dragonfly_uwg.cli.simulate.html | 465 + docs/dragonfly_uwg.html | 593 + docs/dragonfly_uwg.properties.building.html | 742 ++ docs/dragonfly_uwg.properties.context.html | 589 + docs/dragonfly_uwg.properties.html | 572 + docs/dragonfly_uwg.properties.model.html | 776 ++ docs/dragonfly_uwg.properties.room2d.html | 575 + docs/dragonfly_uwg.properties.story.html | 575 + docs/dragonfly_uwg.run.html | 492 + docs/dragonfly_uwg.simulation.boundary.html | 604 + docs/dragonfly_uwg.simulation.html | 560 + docs/dragonfly_uwg.simulation.parameter.html | 666 + docs/dragonfly_uwg.simulation.refsite.html | 585 + docs/dragonfly_uwg.simulation.runperiod.html | 592 + docs/dragonfly_uwg.simulation.vegetation.html | 606 + docs/dragonfly_uwg.terrain.html | 724 + docs/dragonfly_uwg.traffic.html | 608 + docs/dragonfly_uwg.writer.html | 478 + docs/genindex.html | 1154 ++ docs/index.html | 475 + docs/modules.html | 475 + docs/objects.inv | Bin 0 -> 2153 bytes docs/py-modindex.html | 517 + docs/search.html | 434 + docs/searchindex.js | 1 + 175 files changed, 60292 insertions(+) create mode 100644 .nojekyll create mode 100644 README.md create mode 100644 docs/.buildinfo create mode 100644 docs/.doctrees/cli/index.doctree create mode 100644 docs/.doctrees/cli/simulate.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.cli.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.cli.simulate.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.building.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.context.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.model.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.room2d.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.story.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.run.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.boundary.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.parameter.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.refsite.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.runperiod.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.terrain.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.traffic.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.writer.doctree create mode 100644 docs/.doctrees/environment.pickle create mode 100644 docs/.doctrees/index.doctree create mode 100644 docs/.doctrees/modules.doctree create mode 100644 docs/.nojekyll create mode 100644 docs/README.md create mode 100644 docs/_modules/dragonfly_uwg/properties/building.html create mode 100644 docs/_modules/dragonfly_uwg/properties/context.html create mode 100644 docs/_modules/dragonfly_uwg/properties/model.html create mode 100644 docs/_modules/dragonfly_uwg/properties/room2d.html create mode 100644 docs/_modules/dragonfly_uwg/properties/story.html create mode 100644 docs/_modules/dragonfly_uwg/run.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/boundary.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/parameter.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/refsite.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/runperiod.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/vegetation.html create mode 100644 docs/_modules/dragonfly_uwg/terrain.html create mode 100644 docs/_modules/dragonfly_uwg/traffic.html create mode 100644 docs/_modules/dragonfly_uwg/writer.html create mode 100644 docs/_modules/index.html create mode 100644 docs/_sources/cli/index.rst.txt create mode 100644 docs/_sources/cli/simulate.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.cli.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.cli.simulate.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.building.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.context.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.model.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.room2d.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.story.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.run.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.terrain.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.traffic.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.writer.rst.txt create mode 100644 docs/_sources/index.rst.txt create mode 100644 docs/_sources/modules.rst.txt create mode 100644 docs/_static/_sphinx_javascript_frameworks_compat.js create mode 100644 docs/_static/basic.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap.min.css create mode 100644 docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png create mode 100644 docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png create mode 100644 docs/_static/bootstrap-2.3.2/js/bootstrap.js create mode 100644 docs/_static/bootstrap-2.3.2/js/bootstrap.min.js create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.min.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.min.css.map create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 docs/_static/bootstrap-3.4.1/js/bootstrap.js create mode 100644 docs/_static/bootstrap-3.4.1/js/bootstrap.min.js create mode 100644 docs/_static/bootstrap-3.4.1/js/npm.js create mode 100644 docs/_static/bootstrap-sphinx.css create mode 100644 docs/_static/bootstrap-sphinx.js create mode 100644 docs/_static/bootswatch-2.3.2/amelia/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cerulean/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cosmo/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cyborg/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/flatly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/img/glyphicons-halflings-white.png create mode 100644 docs/_static/bootswatch-2.3.2/img/glyphicons-halflings.png create mode 100644 docs/_static/bootswatch-2.3.2/journal/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/readable/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/simplex/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/slate/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/spacelab/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/spruce/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/superhero/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/united/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cerulean/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cosmo/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cyborg/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/darkly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/flatly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 docs/_static/bootswatch-3.4.1/journal/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/lumen/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/paper/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/readable/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/sandstone/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/simplex/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/slate/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/spacelab/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/superhero/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/united/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/yeti/bootstrap.min.css create mode 100644 docs/_static/custom.css create mode 100644 docs/_static/doctools.js create mode 100644 docs/_static/documentation_options.js create mode 100644 docs/_static/file.png create mode 100644 docs/_static/jquery-3.6.0.js create mode 100644 docs/_static/jquery.js create mode 100644 docs/_static/js/jquery-1.12.4.min.js create mode 100644 docs/_static/js/jquery-fix.js create mode 100644 docs/_static/language_data.js create mode 100644 docs/_static/minus.png create mode 100644 docs/_static/plus.png create mode 100644 docs/_static/pygments.css create mode 100644 docs/_static/searchtools.js create mode 100644 docs/_static/sphinx_highlight.js create mode 100644 docs/_static/underscore-1.13.1.js create mode 100644 docs/_static/underscore.js create mode 100644 docs/cli/index.html create mode 100644 docs/cli/simulate.html create mode 100644 docs/dragonfly_uwg.cli.html create mode 100644 docs/dragonfly_uwg.cli.simulate.html create mode 100644 docs/dragonfly_uwg.html create mode 100644 docs/dragonfly_uwg.properties.building.html create mode 100644 docs/dragonfly_uwg.properties.context.html create mode 100644 docs/dragonfly_uwg.properties.html create mode 100644 docs/dragonfly_uwg.properties.model.html create mode 100644 docs/dragonfly_uwg.properties.room2d.html create mode 100644 docs/dragonfly_uwg.properties.story.html create mode 100644 docs/dragonfly_uwg.run.html create mode 100644 docs/dragonfly_uwg.simulation.boundary.html create mode 100644 docs/dragonfly_uwg.simulation.html create mode 100644 docs/dragonfly_uwg.simulation.parameter.html create mode 100644 docs/dragonfly_uwg.simulation.refsite.html create mode 100644 docs/dragonfly_uwg.simulation.runperiod.html create mode 100644 docs/dragonfly_uwg.simulation.vegetation.html create mode 100644 docs/dragonfly_uwg.terrain.html create mode 100644 docs/dragonfly_uwg.traffic.html create mode 100644 docs/dragonfly_uwg.writer.html create mode 100644 docs/genindex.html create mode 100644 docs/index.html create mode 100644 docs/modules.html create mode 100644 docs/objects.inv create mode 100644 docs/py-modindex.html create mode 100644 docs/search.html create mode 100644 docs/searchindex.js diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ + diff --git a/README.md b/README.md new file mode 100644 index 00000000..ebfb3665 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# documentation diff --git a/docs/.buildinfo b/docs/.buildinfo new file mode 100644 index 00000000..d2ce6bd0 --- /dev/null +++ b/docs/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 274b410ce1daafc05f99156b2fdaf2ef +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.doctrees/cli/index.doctree b/docs/.doctrees/cli/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8aef4c77977601d4b4e77684bb8a1f8b62a7144e GIT binary patch literal 3619 zcmbtXU5gw=6ph);&dl!Y>~3O0Ag+!`OoEvm5g&pNB1D9+I*3Hyq*K#f(^YPDS6d(1 zSs|bg5rg$+`2z%B1b>ac$Wz@tJw2l?q6-aEw{G3KALpLB`|XvVZw@b&e{NqFjOUAE zk|eoIsP?Xx$k=8yH~uGo?>qm@-*tUO&a|{DrruqGM$EWK6wUpY-VKAg;X)tR=ewH5 zhReJ;&N^(Hb-(m?S>JUGH-fgdT<_t>k47KLSo@#@l`D_wBHZ2DdG1R;VCb6LE(mTm zo*lY=)VRvF+;;8Z)Ljugr+#W@#O)Ac6rWjx$U-DrJki1HZY+q_5aM?yCt3BYm)K&p zn34EY(Rt9Zu4_mdwmjQsx7dKa!nW9v`(VOkMkmVVIaQN0sZJ+}BB{*h;(Tn+(#;jZ zoWz1pc%IP3vC;_R)sxG1#&)YruTpie6u7~oTpJ<;DU(_z>Bfd|m7jOu+}o9NQ}${| z0ecN`v)7T@H}KuYcL(1+#KhhzV;NWK>^@xSz?Hu1BgG_Dq+snrefn6AVn*ZB5uc9? zqoY`68Of7T$o7cq5wHBD33ikM2*mlwYC3xIWGyG7@t9FjJb6+U{4TrU9{g9!z6tz) z*g(cUXlD!w=n8JABBCAs%?rao6fgf>lq(O>1Gm^o`=X0W^CaZV)>t$q-(84f(@)GET6lHsYd{QB2{)O9SJV`*2FWg>zx)Jnpo6V@A zi9fmIc1lLnG8gC2-2v0Cd|ucUR|9np_&%+5|}U!o!HtM~k^sS%A$@ z19e3dih!dUCT~>|DrhN*&bVRG@~y&+^?~~F0#+3*q%x79PpR-Hm)#B{qFHv_Azg6f z$`E7qQmNxQ37y##*A35z%8@H*C`vL&`bLqMhM@cpZpib(nuzAHOrYgm-F}w%@I7HzPTWq}Bm)5LX>6BKyJKEUUFv0$C!^-H&fzIcTKN>&4Gk=R5}x#kr<_oIYsG7}+?+RN^;8`ym}KrkBkuSg$|snwz-dAVUhiwH4+ zf%3SFcMv2qf~y0t-A!gpq2HTKAlAplxnVLtmMWcicRgqZOF=U-G(&bllCB5&`1afH zA{|3Dk2lN*$;$kjOY>+n65w`9)iI}LUfzM0oiLLLT-G;ah7L#q$M)P2@RUVOYc&Bx zx(Ee+;ck?E;mxBea4}#TvXlVFyI|F3iM~4wRDpKLQ*@W$88`lugFEg(pXY`wBF0lD z@BzG6gbcVJ=!~GtzP4y;4TIOpb+wFyj7jw_xTBb1bc#{BjRIW^8wLObh#B~$k6)UwyZ@;A&W1Vhg+EVXX04U5w3Ud#cm;1{l{B%yhidX@ieNu`IV zfP!o$MT4|b_2ms=qupP#*k9gS9=f__A0(_yVEyZxw(1?s0-%-{Lk{rc-EJ&}K*kXR z-j?peTK*G~@!WrgKEsrbj>W$&8o;P7Y#3%uyxWM&TJF~K2(XlfGVUaS1Z%zs53`*e F{|NxQdeZ;^ literal 0 HcmV?d00001 diff --git a/docs/.doctrees/cli/simulate.doctree b/docs/.doctrees/cli/simulate.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f649bc420f5f4f3630d93ab48f9ac9747bf527f0 GIT binary patch literal 12944 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 Na;}*ll6N-q{{}%TW6}Ts literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.cli.doctree b/docs/.doctrees/dragonfly_uwg.cli.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5f5a9f0899632af4ce1504010671a6dd7f0e66db GIT binary patch literal 4051 zcmcgv-HIc}6`tK0X-1lnG_%ecJKnX0Nt{WDq=e+cI2R!#7{g!%96MJrO{u%2DyzDx zT~)oKxd=%v9Co2t61MyV2HzO`9DV>lkiY6bwKQI1Lx`Y3b?Vg5Ip;gyIrYz@Prn)+ z6hAjI8RK#@B}pPxLXCGPiHh@-O6#Bbpa0AM-Cw$%Cf7#gI;P$oKqF>cB$`V9p?AZe zZn-eiYW=aHvE@oO%UOqY+3|<|lJ#82aw}+S%KbReWToU%-25%duUFGp@Nq`sHCa&~ zR$)D0tMUAEG&~+;V=k7>wN&P%u5Z5Qx zYQD%V91|RI$P*KcK8^)3215MrNRpQSPLe#^4i+#%(`C@f-LWOBFy+~ZJz!_-AvcI62SQ{n94RrfRm+j4hlm5hBEu3=<-~M6Wqi$6BV{)xYmQn4=zLS5CbuA|& zD6|QR>zi$4Ngbj+X)9p;EdZNiH z3)dj%=Tm7@f7m1d?~WVBxek>oYUhFGON1_`LqSdwNKoR-H#*n5p(zZ&LRU^D~`bby`@rC zDob0FS9jbXbO4~oXtPv0^^gn$*s~}gwcwDsd!>|6K?_NA%`J=Ss)`e<1yz}yyE9EQ zrEMhWBP#sWUDszsG{cU&pc~{Ctg*SNl{&7I&_%w21;cBiC42=9O-Tw#&uU;l808Do6VScPAL%Mg4LwXc{Y> zL@0I?yei{RHRrC2{8_?AxPvEAhIWN-JnOn4$*qdEB6pVqQG+B;v#3EGyjlnfB9TOd z4M&9pu9YUlek;lh%@Y-E(txLPy2+HG;6qSQwX%RnY@98_=?4N=}tt z&AhuGG{a6oGqN;=chN|=6UZk&{nc;bj-g)0d)o)ecKbK#?U86Cz->+SlvBGb&Opk} zm`w!^>shiu1|*>mIdKnxr!;C(t1%!l;3A6t;>F@#TpFr_?SO6YQUV;GqVs5m$h(U` z6-WoULUswBa_iqc|Cu{CH`0<##Q2H{d;sr}PyzR6CMC$Sk8>oo!G^uB1O{qWxEFW=&C8x1PXl;`B4sLu zc6{xD8MIpo^7jT;V3b-MazBRFI-)7zB0{~>v}np7yNl`#0JtwtV!;or42BKK{S`OuLllZqP<|;hjOu zkt4yq@K`Ac98~L-VQ5QAJp>0}P8Uiv2~(*4XiwN^_jY#d)u$GV?(OW4TB2~XKl0QRCKk@H@F3`(?c<@#(?(oC Z^0az-ASG4-jr}BWc}07nzsMKUZvY?^C=&nx literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.cli.simulate.doctree b/docs/.doctrees/dragonfly_uwg.cli.simulate.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9d4753b39e4333c86d0f46983d8e9805617957a2 GIT binary patch literal 3265 zcmc&$TW=dh6i%Dii4(_3T3R8|w5Ea*5Vm>Xp%hghT7g7_5v73_s?~UR>=|WtXPHam z2vvfIO06_+9sUYGfM3QpdyC^Ll@JeDTFGof8t#)s2eWyusXl4X>7R6 zn&Yg++HC!aKVTi#GTaEdu;p$iip*p-6{o*M_GC7U1s`gjT0so$r!uin52tZ>?J=E) zs20wwTzKZWFJfn{1?`JHxOPsEknwEKb)p6Vw(8nd;$ycact-u$PKeti#wb3q27m>C zR(YZW80)bhT0@Bct&F7Qzm3G^XNw7mj}@H;9qZN&nT0LScGwNpW&3QE-E=>Um`v$N z*({@KbRyO9s6lA}kd{|6)@P#E5E&|sylx#{wiCAET0BeWeBlPl%VB-w!EOWR_we1p zcYyDskP~20yvXFht>uI(TtIm-pZA-vUi0eRyQR|L4LYnnHlA4aF&i$Vum5HGHGx75 zBk*Tb^Jkc!-ossL#GlRja{8ul*)7~GNY()n$V`!(Enwt6dmz)4WQp!irRrDqgVBez z^ZvI#em@R`r9$_4);EmykAD7USd#bpf3eU|nLPwbUzH>o7XgzC?=67(CA-PKz|CK( z!L<|G95`V2-Mh`*1X>M%-Jr&9P}Lr-39+F3+GW>;N@~^w@0;+tS_aDoCI2oCx2ZEW z2xl+3UTjsU$f&8mZY?S6&~0dH4DJ9uYp-cSQzbJ)v&6ghPefSIw(eqVXY4vNii#pe zDvw2i7NZSGb1b$>HxXu9eV+u|~5rOlCu=W+U&e1CJ z4Yv4YYz-&2IZ zC^c|$Er!-{L{q{=gb7a3V)%IB_No~SWEIo0r@eID(n4Wg+3hfcJi-`s9}jW64B)JPS7T)JfU*0eew*rN2h)wlyX9YmH{@?j zQvcH^vH0Rzx4p>a0*mdKqap&Bz^9aij#KNEpf5^FJzNE-n@*%?%A-(yYf0E>cg|Vt z)Lx52SI*hT%b`qos;({Ds&-b~Ci-D4ZRmF1ZN*Xu&;&W)L0o@O$zS0rpZiB>4j7}* rW-tM3u(@>Dw8eActwvlBaEoWLut_L@S>WDg5;}L)&VYXEwX52zHZE1Ytnf2Ej!XE&vg@8O5NmiBQPWl)KA5mFezk zs;hTA7f2wKXh*6GL<$}tQY0kA1Mmhb5aJ0UK&DXy?8?rJ?C-p+nx9GPeW8Rx)0Om+yJm#p)zs z{yAH5>vmwn_C3CKH)*Zwb=G}g^E*<%wW6!Z3=)RRYD>pv=+)NImKl^r&CPZwVs7Wz zf|)(0wGxX=!x_%_EfJ*7&>cTyX$m3!_hS|n|8|2cX$A{iUh$<{lbIdOR&L7DnC{R4 z-K8yh$-FTm8S$CQ;+U)1g;eLW+5;0fU~?q>v=KSWrz(XhFP~k{7PMag)Oh%)5}5s; zXN%I8Y2nPqd^z{DgXoSqto`E51^~cNiQMg{b93C8o%*4$AKJNj zu`5oLOt{i+*Ar$_5oICE$@-z?=0L=Lm<4<(!r~Nqi|)}o-0Vhd9q>exJ=+EkSdwo6 zYgVCL*ef$25d;W_D|1+?s0F)m7A?5qfj#S)y`252jKfQ;-9uD0COOZ(K`-SV-2os! z+=Ri5OD9e)6iZ;0Wt+%+ANyL!07+gWY4+0=Ay@_MrnrUkUc=fN=VuUZ4}^xp`tip2>8zrk($A2J9^((o@azKk_ETqFLNyn+4iuY2WX1HOJd#XJr0PSP;j2@}eiTZLb~chW)4nwy1u(iPKSt}S!n`43o7 zUdb$;GmTe8&ZV-M=ZRQo&zmNfucIENNNe%xL@qZjl;>ik)*?X^3?4gTtHmZ1&!-o;x-X!KgZ-Kr`I&MZgje?q2bHAg z8_aIXwFZdjpN{K>XsPn(2&@^r!@>-CvFfO3JU7D?M+d;PR47}+fT7>eEJ`rgFOKn` z`y9i)a+s+QqeD~y&-EE@7RU8n3Awc9#!^ZhOU+x8XV=W3>&8%ny!BG5$U-u5bW1#x zYuDtZQ2FIT!b6@*ybGbptGXSWSZ*lWpSd|uJdsL!A%DO_dv@LI5ew^K-yHKb*bQrR zmR5`UrXTP{w!(3v3#MZD3M&+65hO#cn9rS2_MsVxILWlfV_ybXWz8_t%gJk#RN()e z?xctGER{zr4nibc00-NAZOvF_x~rw1Yq93;#>|F__ea-yJu@owHh1X1eeWle*KmG! zVq>#8ayF!J6v0IyY_jGsWbrCPM+=V!7+*)9U|vw%mn!hkRB$A;*mn)e+zb#pOPC3d zh`>wGNs6_lff=z(ORo``>jI=Y46-QkYU07Mxj-NztC)pO;W(GTyK(B^Z$wGTvp{<5 z$WiKuuM?SaB&B9&&JtgH4@4>oijKWNq-+s7L&{t3Q~^N~a{yyfgh0_wfi>kauj;1E zDB+0*o6rr#es1r9lPnmHcHA~ElGaK3`fLVqirlD4##5@bIF_`PT6oAV6=)(gNF#j&Vs)P2<@KccWi-4>fb6BQ4%!5JTIt9t>Pa;W-ESjuRIDPw5N# zoFs+x34KhT(WjXix>!Wke7*(94?l5pe^zYQT|4P;*+3;Q;2fB)~U zZ>p-RyJw^kS-2o9^{b5^z@4b^WTow#P9EHd~eY_7{z{JYX62f}PPsS(7E$7>!A49Evv8 zYYo45s5|FH1uqQSwYhExDiYN;)~X$%(0HZpbvk&7=gkdoQ9Ny_c3bAhoL4#4_UEZg zHyRJU1^Uzrb_B&>Yj9DpF}OH7x-V!h`up15M#FFKJJD<(+owr44a&K{nw5@ul}4YL zb_eKPa_5HbT(B&H1d)&Uuyc+rgt4ParAC{1z6F4Y?S>9nU8 zUDKD#Gl|{w5_vBu0ioRlt5vaRu8hq(m?nHFcWO|ku-lGVolhtBG!-;E;ocGi1B_fe zxcm8Dd%?eZe!f=mckeA7uQi~U{=wac{1f;&-}WkDIqYSFd#IUg+;Fo$%`QvR9w;t4;S)yV;!2`gGi1DD%!>R1fao!zE`5i0|O& zd5uOh^c;g5UHQw`JvD@xJW$%rd9?fby`}3EIm(@uSMd*&bdl2T>#v7Ka~r)Y+RSV8 zjQov3km|Plp>s`J(U?X5XnjcuH=g3H9JgDEOL4URM9;I03yE?_J$L8)ba|aPxmZ8I z@qu4zwf&CYKJNFZE<@dUX*+-YwA+a^(T19G)4NqL6JD4Mzw*5BSC{tJ8b$6rMdSQ< zb2>k!qDg4ZG)T%JinbAeTr&7?-)2?tuY-t4{;P)M!5hf}anvR_YA#;qC2F8TCFN@z z`gdnRzlER|pl=}n(xHB5BGhMdsL7}=`k~*h*Wf5Ew*1Z+U@D|WD`nNV*m!IrJOtI( z2_BQdEW6yYitUQTk2o(rm(Gi5ePg+1|2~NRX+%w_nyqB&lPLHJ$kC^i2aC>2w9gXR z&+201vX~Mn{W}i$U#0^dd~KOQBC!8Em+GBdK8RKnuX2zDIW;-l* z7QJ@(vTl;#`?rlVHr_kchaV-4IP6pJ*5>4BLiKpKX5=Wy!B^Xg@6+qtZe zVqU_RI14YzL^Oqk=c7_yhxUx@4w6|YJ1{I-A8oSsEIKyiyHTPGz5#GW#k>bs6Z)hbBJqcJ&Ro~K(i-V=;PTjsmtP(6-pVo*`&TjA z$a8&w?NJQQvm-H_QE4_pdm=#%KTZX+Iwn5Q-^~I%=9`9d<=ylF)HI zd4tn;JfFpwI0qow&|0G5sikQ#v=(C)vHkVbOp(0?|77LFTAWxFB{3~S!nNqt8a?(l zdNGa{;Zh4yFURnrNxbn-w(7M?E$ltQ3!L!U4LnYO-cm|9cL_Yf0Fql<^cCg==)(l) z#nGA=cc%ev&it$aLK0C7h(~LB1Q2)}C&CKtF}m^e_@qH;zS%C_tmZIEY5;9US@FEZ zwFt9MP_ISyG1+-=anAXLGl`rNQDMI3*Q;e`2v1sn%t`XkmfEWs1YOe|4J+KEh6Ou{ z_Vz1HUo=!?e>4bj+1CU|zDoZH!%9JchGec;U0MbyK2OfUa{FO2jx_N)LD-jJ;TD%y zHv)GHjRuycr%SWej83K5_O-B;gc&S_fftsjbO(MNiAbSt=U+x zdX{5|(zYfHD6$_9M7AFavi$)6fLxfvC_Vn*Tb<&vR-@Qx={n-PMKE%%MO-6)H4aG$qx++j{fFOlj(7F|c@`WX-AVnX!Hp3U~R{ zT6a-Qw-pLU7BOR{e%w{7wrd@KmZA|_nouYl_Cv2$M=?y*w(dgFLgAiv4Fi))M-b&T z>5Gr>qiVmP7H`L>B|h?w<@4>$POBDrczbs@Y+)*mckm)i{Rho%$45(DNcLS``5!h<0qKm-` z4F>UY1_fTE$c_$+!WN)#?`SAYTK2=mV9{U@D`pVjC5o&$ECLfi;MiygoaNd)7mL>z zES8rwsPJM%_PSwFDFBs+M?+;y7;6`S-!urQ5(aGkvB=&rEZCC(`?1l$p3uIh&i5-p)chUH+ zL1S4_g9tBGWRDMv$aWy|SEC^!q8T1u>}SJ*k2QqsCnJJy!X+2{ z?VGeevw|u!Qp0!w%!N`pzK}6zim9CMSpa`4Dv#jKwx|ft1^#IUcvHquo_{W~-NS;u z6QDnJG|;V()CK-J1H4_zfX@pQ+4aMMe>T8BFdFz1I*N9oKVqP_3K`(}_aeJ*Sm4hA z@Glq*_(?17cfn@{{8%xA054Hw^7YGESA#h$|uHvHdkU=G-fQ$p5wJRgjGQ-O3Hw;#3H4Iw3aFM-zShRKltw#q%D?PuD#>8k&FIs;&pB4Bnh<=Cu;RNjS(QDu9m`Pse@!% zt~M$mQO5{Tmv0;BBn>B&Qil_;7I)7K{uByVJp0=H<$GuaDCOgLpch=&r_tszng zxcaRHf+yf#9Yh+KOu)ayr66qpioV)T(8z1_E3pLp^pR3nhh1w29?cZ?ZK7V0ebXUg z?lk^MsH`}UCyn0-v2u;&6V$m#-}z?)9sg2fKN=Rg3jp2UqjJtT=li^ zvxa>+-=W!jgr_#VUHJM(cK;~!{wOqwXiQxwRjzPpl8Tebc zn4}qa`f95V%Dr>8G$LgmfAFzYrLCq)^lwInb(N){$Xp8d*Pt8oD|QYIIy#A25?VYt zkkTBv{kEIj=@TLq_S-d2bY=?o$)L!mb=TN0#5KZOY<3$VRqHhCURx*@=JV@ZbFk}5 zY7Rmt-w&1Q6z-TWdGWnRwNOW2h`LI1OT2kKjiZ7MuYte}^E-E8-Auhusbe+;kh~m| zI<`K>+D_KYzKcscj+$h;aHV<8OwFUOam_or8Jx;3&`BH;iuVh^Bdy^_H;zh^Ulggu z;Jza<{VhqIOJKIJ=AUnkzHKe)9mtwsV%Bfhuoi?GD2Yvlg=JaSz;-}R=N6P5xVd=? z-1p+5->%fWI$ZX=kIi5eGXacL&CKiOunVyj%W4wLB7zw;{``-(GWx2>~gQa#y+~T8vD4lYI``1r3R$Nx&ib|DX+##hrPG7 z=zBb_-am6qf!2m0VJ(sN?w`4muiUWnJpMsuSA*)Ug|-?Wn6%$%q2qe{6-UW(>FpOY z^_IRmdi!UC>+RYnz9wY!3yB_d*yUt@9sb

Ts6}uD$kuAWh~ngxXksL|JV?ZOnJ0 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 Plt!N za@G=x0_{WEU4U<47AcDUf&h65kYCdu(~onP7D}6^7!Y8dIXvV!=R4my{OiG|zdze6 z{_I$1jEmKjM3ImY)y^J8GR#vdjQhm>@Ne!f?$QnvxzRFLA$4{S8X@CJq^NKoIXm*| zh9`Pj?LX8sG+c^iJL|DNJN(F9vVrXxZW7x0WWOIN5=*g6)_(}{n|PWjnNejp)fX8F zuSrau-;BKnkLb!@sh?bAeK997I#9^2ats%t!Jwej)zoRJ6+QkAcDZ2DJxji%__MaRZvwQ4> z-Dmskf&J}_$&}7iE(BGx8>y~mO^7Cl(Dq7(x)p83W2!W~dU$m^U$EmcnQb=CYJnZT zmoHKot|bKLW%wP{)ZuLq*_CV+7m9qB#-El z`y}~ddY3(7@3RlshtwXWWEIiOFn4tT7?P~0KY%t)h)`D^x|$m1bk@YZ(n?YK(aK25gM$?wGgRNm(G7YxA2IAv)3VdG_2^6Nm`E&9X?0?1y>u(13#~rYr1MGXY z$3;X}&m(;onl}Jz4>H1)vlnG?{&FWSoqbrUOm^YTvHsjR;aPopTd6v-=Be}Zq*U$0`!tSv*Rkt4T@+3)ap|UFw$khZL|U$9q6}F^4?Bb zZzpvNYzv~*-J-CjT|Rg4eg~E41iLxA>33}6fpW`^!d&^z7&LwGq?VNZ&>m@O404UZ z;k=mymdev42;TPJCrJ*%sz(Vnp4&l8(b)*74J0~<2>PfYX@PkvjE-4Pd6GSzgJ3V zLJLW7!wn1SE{+qc4OLs8+Y?1IsZ5a2$Kdy?+jhuE(ky%SoUTv=@W$l2R_fVaL>GCC z<3=|`3B(E-ijowPfl(x+-YNIQj=0Ej6HpP#q7&IcZkCfbCYs02-rM{bP^F{_7!gqd zrbXi5TWFje%iL^Q=@nL-y}$Kk%LMz69hFAg3-o^X=r@x$aQNnjt)2GFJD?FIhWI3K z$l23`h&adahHyt%-$wVbFDM#H6$NNj00)loeR*#CsHP=+L^ya9WEhY53Up;hBsVf> zMfNraqE4ec&4LDXh-x9=0Gtve@dn3*1fdn$=e`wXn&y!VR;kC+8C_*kQxI3Xvw%ow zg2!C*5})HB;+iZH??`pa!@3&S#Gb$z4g8a;JU4WfAj`Q){q`~u+^sb#oj-b-5Z zuh-^LXvD+qnyM+MW?7tplASS=COB+h$O07*`6=Sa-Upu2pee1!fk1a4)bAQsV3ZmhayNw5bwE?XlK{^sMTG=!I`2HML58`|6uA2;FxpvToS0tFI#Yz`yO>=g<6X(L}u{|maMY^DGJ literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.model.doctree b/docs/.doctrees/dragonfly_uwg.properties.model.doctree new file mode 100644 index 0000000000000000000000000000000000000000..264f222c1908e055cf82fce95b82371801995c11 GIT binary patch literal 67356 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.room2d.doctree b/docs/.doctrees/dragonfly_uwg.properties.room2d.doctree new file mode 100644 index 0000000000000000000000000000000000000000..50a113942a6923daacb3c986c717217b1f87638d GIT binary patch literal 23149 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.story.doctree b/docs/.doctrees/dragonfly_uwg.properties.story.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d701b71a0693c2142acb352490e185097aeb1efd GIT binary patch literal 22993 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.run.doctree b/docs/.doctrees/dragonfly_uwg.run.doctree new file mode 100644 index 0000000000000000000000000000000000000000..731dddc9eaf45dc678f7f0e8e26a36e8640349f3 GIT binary patch literal 12442 zcmd^FTdZ7F89t}&xy+nPFF*s@!VXcGYG)1)K9FJ~Efs{)BPlJ73C+%$*=uI+-93Ac z`_gkJ0f7)qo2K`cQwXagv9t{;w3_YBtEDKUJ~`e2Q@yKc>Dgf_I)m=ryL0Z zl5%FR+rR$%W&Ka@`QjJunvwsBy}`h=+|3p<4A(Pw5Q{~_>qLF-hVcvWk!Rv3yGBA>f_R^4x5@IcLtB3m4;tSrc=i6*{~y zC2lc%*7Mx1Gkjc+HhL{Ta<#r^L|8?euxHOXzDbuUES;$?eJ++aHRlS8M$QxS1BP3N zvAJK=^bAdNx0p|`TNisA%jNNU)Mld2!qB(cQ3$FK6?R)jKo~D{92Nu^#P2zm_0_LM zBO2r%ZPvNu^DeE4#6rk=G!>hB%|qt0dDz@--YPz|W_o?T27F!auWfk#rL~L{O;Dox z<#mF5D8;|!2SDex)4QU!IV0vQ*WjB4>MFvU8m@2N4q|=?|L(xQ2L647Pysc3OCrz^ zdj`z%L1jh#d$jB}DX>`Ftmc}dQ|A177_-PcYPJeEvTfp+iUL6-%CrWyEjTc^jAoDXD?Ctmm_VS-@YMIwM6%>w3OMl%`{V19t)~G<`4XnfS}K^M0GT+6B(= z;cE|YaD;`}(l~$Nfg>#?hzED*uuN3VQ=rsIB@OEm4K|TeMA&=HTg^{^*Rv^sf%lry z&{V}H?k{tCJ^&q{VB${DglOG3qBX2k??#Dyq^NtTG?1p!?|3Zh6+)27JuoVr0!va` zFayhh89lI|8)4*^jKX8-y(F)WYJ9MvcP)qO190f57FhkrVPs@5;6t-Q?jK+GTz*tD zEFb2_^M}cIfL(5Q{C?&H{D@>^1D9HspvmTuTBddm*5km4WM|wTHu zcCoQh;n4-kY9#8LpUuA&5n+#CQdZQBX78pw) zYhvDVWkgfZg*{{`Q&8%o4DIhzpuuo;S>%NJW#&Y@3|ZU|M1z6nhkDRwe)!qQqtNLp ziR53^h4^)d|3S-_{)gE zgHb7fzhwZnVvv33bTI!aftk*g1p4(bX1VBFN7#ZGgFJ7_lk~I9kb9>iGS)!YAKwN; z)~5p)&yWN_&X747KBTB5Uu8@lpAKkSEK%^UnI&5-1Dgbk_7gjA@+54lzAvc)$# zh>ByeH~pzIw_|#K!9H!3OVp6>gv{^pFcu%s;r)=pRWcR|>5(&Gp=HG8vtk~<5Z=dP z|47(H;f}pYM9r?QLdpWR7a1iqNX%eSV^OCF!fV?I|Kf5yHLor+7L1saQ5b?)vDl3q zN4jTRt*(b&hoZ|ci0$X;9?yP0M%GB9Dom-RG3pT+ni+`BWjKNhGcq#L;;TTj{qu#FZ=t7$ls+uN{-0qWH)Jh#&G1Om|ki_WO+Cl$r_=rTab>? z?YZndBx6;r+0;&Gr_vl;J41Q07J6EnYf-=r`q}sVfl8S_`N##CRa5#L$@Ceu6{cj6 zQmj=6P<`g;NZviSR{);|xw5=7KIFB3vn}fVN>T5Z_yelpNbL_#zo3<4D4S-B&L8Ve zynS>trtidI5S!{P3+Ap;yisa)$bM5|JvrDXL;8jy(Cc!k{R{j_?M`CVb6IGWG60f^ zbKo$UMvanh5(1P;B==#P5`NpiE*x1+2ogS5Qj3gmQd{PBm6Z_TIwNa9aNY#V&~*0>}_sW5!VqgjO{vss$*jqoNclrDxLI@c~U z-}0iM9`G=PD+x5#_M%V~#o%gkAT8~|u9nnTR0;rjNNO*EwqZF=9d@FpN@v_?X^m5A z*)h2*siHN?k}^KoN(5&7WX2>ZH)|CpPbY68Hy@oUH#A$3n-@=zUw${zG^2)i_udiO zQl;tE+R~6bn$FH`Xv;scBvD#41ihK_%4aMW#%;s2I?BUI&$iLi9(wfC>#%u-a(>*X zD|bgGki?$ckc!9?Wm`vskF4Xo@1c&ykUiSjzJt4MD4B` zYICS4f;_qoMI?2U!RdDvGAl=YZ3^jAX(jRqHbqJ($jmM77RORV|vWsMeq8 zap!%&i;TA7{em&nzRK^d)&A_xs{QM#2thi3((@dS$OS6yqAmqJ=g=Zws#5Odw7~Qt z#~__XdI$GMH4JCis-H8h0Ew3~)Jz5^>1w>&MW#u)*af`0c^g5&SJH2{gJ&hz+HAHN zVrL|$>5~O^I~!~mP)rSQ92SI(3!>+ABDr+#K-KHT*jOvAt0dZ-erDn(Rr%S9-d&R_ zKQ&dAX||%uKYA~aI3t{RPoM)Ota55=C46GLN;vgM`{xLJagU!~L;U+=wUpA}s6GAE zZ>y!>luPaJ;7>WFY1pq6#>B!|jz>l}OWd>XjNwvKeoztX>6(&c?XS|NENi!aQhlgLN6ndA8Yd=`7kub);6kj_`tZ-%q8aG=-x8Lgw<=i9n_WBc>u5itsf{MHq;A z>s^LzGWEx0((FD*XKkD4q;->R@5|U^ze&_SWWTW;PEkF|{yO-A_riVH{93X(YTK`k zaH~;Dkj2Tj&jN*YPPG$n`^c1z`Q@nMaa{tEmr3kDE7Jb)dP#c#r2RcMPkX^Dlq24f zOUu+gz0=ZK(7l~M`=EH3?n|`a5%tQY{J)A7|Gr*U+z3|ubGxjVY;ncBsx-!8wkb>V z(x_)TMU2mNYVt8@&FW{@aI?f0ka69XFPIA5{stL=yi#o5I`XP8T4u9fl$%spKP~fD z@6-^x21E2~bR$=_zg6BK46n~DH@1)Mo|zE~sKtcC0gvr_=u>t)6uuW+Pjzx#70by_ zgrWX0zAE;*UhU+ENjA&H{TZ|qiqpV?H6XOn$o)>mgXY45C9?LD}_Nv&VaLSxKB^HM(GnFIk0ZI0%Iyb+=-1&3&H}8(cq4Gp!v)D&C1R#_N z5;?LHYQjuRBd}t8x$nbP@Y+=2tO|+5%M_Q@lT?o_- zWuF-zG(UXT$3Tu%zuT!CPb2y9ccjNd*BD9MCGNK@9(E-RXziLA_8kDLg{%!FFhVmv zy(kVtr22ZMT^RzpYIVCR4$6C3F8bYMZy$Q)KqUjByo3g1h@kp}>g^|M0gZ5bP%y{p zTVZ@=-<@J#FmywfIiM14}+;pIHKD>t?lDoR8dR8(sBkC}S9WNqt7mKA1 zl2gbpaDY=>xGx!h0bG18J`3xBS0C6J2t@#KRsb`*SQ=i+hNT29p(N%+25CT#RIP51 N=}xR1MHErH^*=bxy<`9Y literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.boundary.doctree b/docs/.doctrees/dragonfly_uwg.simulation.boundary.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6d23c1515b3037c0359e722b3064c1e92e536516 GIT binary patch literal 31961 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.parameter.doctree b/docs/.doctrees/dragonfly_uwg.simulation.parameter.doctree new file mode 100644 index 0000000000000000000000000000000000000000..34475004601d4e9de6f26de9aac31cbeced4b4f4 GIT binary patch literal 45174 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⁣ z5YBSd#W5q1o6UV8SHW3c3wl`NaCVCp!02!m3(qyEnJk?BH^!UIfU`U<1)SXpvU1@p zuZn`RccGGkGsPE1|2OpLJ#e4pWd?=;BwyK$oC? zUC@=YQn>lhl|#g}1YNo0j}BeA&1?>Ic^Tgs4!Tw|wT6N&>MH9fN#|61^=Mn>1>M0G zgsxn5^+8u|DJT`&aE3VMk7)sn4qdVE+)q$5S?IEHb2FeTPXYqEz61(#p)0S7g05## zNkNz53#Q@_i^D}?r8z+Ax^%aSMz8fY69d?96YaC^bCLx$f6Ta3e(beEl>~r&MT?-k zrUWo0F#wp7W7aQ+0k9X*s{pW<=!ydvzZwR>1oZ&0IMtm!l|F`CaR8t?5HMRu(kc(5 z%gK5ExhC{4G@<;ej8GicFOM0EDXcgr*_=){(pmlU@k!qEzBtKyUY>VnD}EAH3SLQ8 zUq!Igf&66VGdTEghnUtl^H4O7_Al11{*Zw)Pj$Dkz4e|?pFA-22M%_tJK{qJYzhhW zkPfAa*na)p2kecdqZJ$2xbt2*jyQ;StL}ldd;pTsqpTpm*RaHP zpNwbX;{zTY^M%tad*Sl@T`&$@&!!)mw(ons>EIBTmW|IWOc1F!XOr#odLho&OSCf1 zTZ!1snJ1Yh+&5s=Y_DiHreXa2xd-O&LjUOpnab=s;vs;b9Ehj|o+9j5l-su;aXRO8 zJH8IW4vLfh%!W;;UZNZNT*MNaz$==|U=tE)HcXthw%ojg864Yd^|1XSzQwlV*isz* z-ou9pwBbRp{6-Tt=Xb0YHMo!8fpj|osXxBe4eVaSGjTXSN?nKJCcVHmlQp@O)Nzh> z6Q@MsG*+~QtyO_l!&ehDm6OULoO!kz%mi=&zR?%O_sC);{Vq3%DKN41e0|R`vXqg@|2GC8;GUX;PjKpF)8&r*MD%oyUJ1 z;@Imi*E7x2ow)hiRP(e`nJn&t?N^(2xXk;2*Dg3=yM@lCL#qZSXoOC5W{TYmlWLpV zyEFsx!wQ$#Ax>AbgHIdK9(dRsNvQ!--i6P@=$~-C{WMy@BRVT^uvW8;13n+VZjN0S ztaU=`lBqZKMfiXUom$6s^OMR=c~tq+I65~zx!lD5R|`iHk!WwOJ2;`R4#f+9gDQDf zD1D*V#U?`f7!Cizj2s6p!+N}Wv$G5vPy@pO8Y+TbEmN-9#@<78W(jYkPrF=*U^6%v zumKld0|}0eqjxW}>+2|W!L)I_Y0JcSbMUnX`oPQ6Y`^^S4UDz5EQU3_p)6Y9&Ept$ zw!`jRq)*1MDKWgjpJAGqM>OFqp(zgd<=pNEkubFoU)O=SapF5|fMf?!cj*X6ejBYV z>mPI&D}8?k#V6^exOV@RknC0b6R>HzOPPP>vT7f#m z9U9(< XPrZb{t&n5SH0VfJIi`w}jvM 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 E0V<@CQvd(} literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree b/docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8e977371e81ba6639c86909b989e068e9ebf16b5 GIT binary patch literal 31871 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 z z%K@k}nI8Hj0ju{c)!oS?DId6AUcJswPEQsCv3(iSxN1&amj}@PTk3|=t#W`iFeHqO zDwWc!Y(S%?(u$M^X#c6nVppIPaDOcVx15dk{cOYEQ8?hm-flFO?ln|R8ub1JW4$7v z*N3zV0Ne-iasV)A3>6sOgpvvjRVRTQKagUC)q}-$6&{L%q53FF;T~5}_5GRpj7eL3Xr>p zo;b+yr!pWXs9z4qO~&Hkmjv4GS}L@~2+0Su&#YcROVGa$RZNIor_N4A{|2|nXTJ956O&XpaM&gRV z)1p!=K&glJb3iFEA_|J0MScZEszb2v@1?$#^ULmzLs7qe8CS!UXLji-)NFS@P5l{j zKP9`>7i>LBg#>JUQV&Z?4O4(8VM~o7U`vf{S}V)I)|b($fUV!6Ck|WusSIoh>X!ps zKbN)UdP(r>#8UAqi=uoWdujCoS$0PjL$pekW0qaj<$<<8lX{`_svNYvnktpjscgTD zno28C9<=?5Zh&2RGLXW!?1LC2*k!-e=8vP^_w``(k9yHSy5FN}(x~@`NL&%rD=+B+ z{{9by;mIbrFE^4LN8fT(X04989}pq@1}P*%C@>*197g9E1+jpMD*( zuS;H{{CZiwq(i301<0mGE3K4ekZl)Q709-mo;b4cr!vSUs9z4Uos1&H>M+YCe^;!Q zV6Z%P&r)G+0Xg}Y_J!4pX&Jp(4A9<|1!x)dTpl!gM@pBoMpb#G>(YPf;~#5Su{aihx*2=@tm)f{Gjj%NQL6 zUuRKDxpAs9TMGehX8p$H9G{gmIIzk*f^}l5V~>N~xR)`X$NC~ldz{LyVO#3r(6ySr zpmLK+5f@dm4On0fao{cP``o54@Wdx0bm>6@TUAff)lWgRe|qaA8=0mP;rNYK_<@c6 z7UCK+o!%r4ujO}x;^6J}S^ON8Kf8Vlzc$mQ3v{t1y+w0_;(Kg!N89~-NZCRc)OBh&?w2kl4N&DFu4oUS5Si)&ul)xK5t{6?)|(R~zXhVJ^DWJ5Tkpowl`M4Uzqr}{UY zbC}JsEp*~>ElOf*ajgh0-s{eEYFh9xusnfIi}rBTQD43{AN8>J*7m|->9mmk7!8Z&RTxevBD;A16n&_ zhchiSHWHdsP=ZEi_l|F1*FmIaYFfK=2jnf67uZft7mm`#MmKz_1<9pRYCx1X;+|jq z6RNk3tOYcpJq-nGIWxF=<2_gHWmg6B?a(||)7#j4xB!=qooAc)t#CDYE!@+%-6pyv zu7)o%OgXgI)ot7!fK%~(p>JR%Zwk53c01TMPqzy5tAeE+xB%(#>Q1`}8Bm5{JDG~0 zJC(}k%wV@Y8pCP(L=s)id$tFe!O{HZC&QO$@tbhmzLOFT8DROHN&mZ zKNR6{DGcP&G})!ObeC<8s}g6$X52x;%?7EjNFjr#@(G^DQ$#-8lMKz7netj%J9*Y? zQi(eENTS9O)haKvJyAbjVIZ*Fk*-U=8DOI@$91nu#yiq4}`QM29D_Y$K>EATj(9s3~hqSR`l3x9PIhK!X literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.terrain.doctree b/docs/.doctrees/dragonfly_uwg.terrain.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e993bc376896018315b9329fc6ea7dd6d6893389 GIT binary patch literal 56505 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 BaiIVJ literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.writer.doctree b/docs/.doctrees/dragonfly_uwg.writer.doctree new file mode 100644 index 0000000000000000000000000000000000000000..363aad5917c07af0a74da6955ecce041ca98bc15 GIT binary patch literal 9363 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..5a91c3a3f18047636e62594f5632a4be3fa90a21 GIT binary patch literal 288187 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 B#W(-} literal 0 HcmV?d00001 diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..206b973bbdbc9da331aa174f45de13169c23673d GIT binary patch literal 8759 zcmcIq+ix6K8MkA5?e#rw<5qQ2CM_ii&F;2pfz)ans-~C7bXAp;YOAQm%*t4BlTgz=m4h404SiqDItuWbiz8qO#NWW+BFzs?J7}i}rURyjrt9SE`4n&PY0TwKF%_Dj%}PV!!gXfr?vN>= zs~EmEaGk!r+lsaa=K>`oMI(G?V?qKPlh@b|Q70Z8we%maytQxftFdGT#M~hoo(A&6 zn4c6)HQOZS6QYr_*%gzv>9DvP^)xZ7g`scuq7dRCaZH#-0M^B{ZfijRAbw9d+A#Sw zV?@@B&I`cKtnNK;%j`KpXL+%jCj1m!G6b&9EbUxZP(xGROC>9bM>HO zItJTm`vF+EcjH9VBgvXWZBUWy6YaJlf$QrE4?}Og)7jqMZrhr%+lvP6&~@#gLmY%a zI2;uFv^{4qn@IZ;V3?nU*zd>Z0esHka{&xbM7|k|hi@5gEM|4hF-${C#3{xv$9z4A z_=CJv2!&q+UsIB=CUm6@e9hx!t9gC%WxuC6%5|oNocYRg48qew*H<1Vk^=BLFhd^o z+OVxo%5p1V8MgK0rmDb*m=nOTls=Yi<}yD9hJ0>IcYW3YHYqJK@Fuj)U|jH(%zyZl zc?0-rpNykpYu73}|c zsnbTN`2$u&7)a>cF~m-atD2>_DTyn1q>6!}52j_1s%N|6@EGU>r2$wpbEH;I9)?+sXE_5?HMP3!(f1xPN|pp-?t{w?xW(#SG4FZhEGtn92T1>*Z>hvbmY) zmxBK^w2w4omqWjD)bh+aP9L^Q;o%U?8vpI_nfo=S{|XGPit%=VgXvF*DS54CaMA-Z+6? zN%Le=h|X$YyS;c%G`MLPXd?H-LW&><%sA1ohbkJ?*O-`RO+{bIMHH~QC;phwtXVO>>gp~}l^rOYFP26q`)

YNiugKf_Wn4dmgjha;;A+D6Rb z$#y*3)Xflagod{@--&O^rD;Q2;*Biu4I(88Ef0dE*N-3xOY)Y2=KtX6`PLq7v1YwS zU($TY7+|Z`_W{X#Gt(~|>|p)=ftEwR)|;hORu28iK~PjEGa15~CjUz4MjG>Z>!%n$ zt{(q_xgS%H@6k5L)}!@HnqII}Q{Y8N`ACMsIQTrt10h4gzPpc@83rV;1DNlp15`8Wen9+hl4@uUq?_= zs;)@;^+rfElK32p@lVSf^*s`H5h1deUMU?`;IoukT1YLeG_@4x8QEw#@zl$SS}NN> zt|({}MX5k-cd0%p24rPX$69H>Q4SO+_p_azi}Q;l=W(&9M`+@lP|eTF=QD^*99=Pk zW91NO1~&>P5v7wGg1+yfDo1%L8eh`v2q`vCaZ4yGi=#Qb$OGa~8+xcL=8|oY6`d`- z&Ze)CZ{uwNwVg`m>@sJjm1jebwkGuS!r-%TrAM_1nNt52gklc9Pf$60Hv*` zQulzR0Z^_b5N0z8QMb*ItJ!Hkc1#zf$Nyb1?=#Q!k+sdL4%QZWHof0S6jtNg8+Cwk~1+ z>OgI=SSB6<2#P~QHh7A~f~`4&2z?eLZs7d{dH`_;js#raP|+~JKClh-8eP%QaUBFU zAraG1J>+b2C*}>Ys70Zx79erLgi$RR(a=+K!-HTYz@$#l(QHDvBq5Nl6Oj4~kQcDX zaMhh5nba~01vg-7d8M=xJydU)fr)zt!lfE!K$RjGNvWL99D-jI^I#@`3na}ptR|hN zW_^-a^q8koSt9QXh!zxQ9?TV6lWmK;v$I%$gSNLDa@T3Q{-6_!Q#6w>(M%QPAfy{Y znlpg69(d?ch-1<3>oxQQDbRl^Ll0lm$l|t`-!@s;mwUi#J3JiP*sO`D1t&15mzxo1 zU{XUh_pY1)HSkEmdtz16g|i0cQ_ly>B`Fy&lRZf&EU}E}8y(Fx22^-;Chb0TA9H-;-C>c6BXjLB$!JF9RIur0|0w%xD z^LO~$+~69&$zSCk@(--%k>{*u=CWXE;nxSn>YD~ zUAeL=S9RrzZp6>hrQ+K-ao70Qfd4!E1OBc=&Ob^pQ>!X5Ta-{Eu~0TPN$diucq&59?3V#!-cr|_r-iv!r!~xtY2XrQdgBKj|EC#y)d_98} z=`+7#FRm}{xkgv*3QmKVPqvQ(dRGZJ@>G7Zb=Z`=!$t48X8jpz9$i$H`?91ETeJR1 zhCzo?3+bV_+Jk>?l}HvZjJm(yclAH}#L<6QyMCLoR^{+F$<^qCTG2!XSx*8XVlf<^ z`8Sv>72hKfCUT*Q@z8o}Dz79alOA^Z`cp4;uXdlKKuDcAYK-iE6=Y3j{a#|v{;5Eo rDBwm#6DxVH%Zx_a?pzL*QDrVYfkRXq(7!Xx8kCOH%td;~Mf!gM%`|B; literal 0 HcmV?d00001 diff --git a/docs/.doctrees/modules.doctree b/docs/.doctrees/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f2af4ab3887336442b0b2abd576a4fb14a8bb797 GIT binary patch literal 2739 zcmZ8jTWcIQ6n1Ry)w}CUno>yIQc9YH#@Dn;W!RTOv3TicGz_V8M$EiJjwz=-k=qo1FO$?-2=Tk4Xi@*_=f1pK%xHFH*gWa@ z&~tQ=wjw{|5BZ2c;(Pow{5a*hU{m9jVrF`+&DFF`>g`KhhWrQFrI(IzvHL;IZ)UKs8bY-uV)kvo5atq4J}J%B3(~1 zojF$}z$pS?J<0>2+^ zZW3mUHiT1^OArZ#LvERi;ZS?GX{A$HiQ#l>XUhctGfZlucL8*MfBDPV3pn50*g6@G zQUVqzao{775GJ0aYT@aE0qz{@T{Ks?Z&;>HPSA-U2i&ACz6{+AlM^`t4v~`*GfFHY z?}iEWPLn%P*cD*ZIQKk{MReqZ7z_;Pk zDlVZcGbwk_HldV*#|IdT?Gk-=oJIxOK`qc-QWV0)Uyq)IBYUG9T@o%9T;c2W5&q2wMGYf0+Sm0lg@x}?@a@F;dM)3PO0rTWR1u+<)HSRAapR)|@p% zmxlX;ZClL_?rcnu3~v$8B!+`bO9^0+1Fn$X&yD;el7An6Lp$L)hQ`DL%A)?Y!*-Bt eh!0wERkDNT-2logQniM8nsv=sNcXRwo&OI?+(c{u literal 0 HcmV?d00001 diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..ebfb3665 --- /dev/null +++ b/docs/README.md @@ -0,0 +1 @@ +# documentation diff --git a/docs/_modules/dragonfly_uwg/properties/building.html b/docs/_modules/dragonfly_uwg/properties/building.html new file mode 100644 index 00000000..606a3971 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/building.html @@ -0,0 +1,723 @@ + + + + + + + dragonfly_uwg.properties.building — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.building

+# coding=utf-8
+"""Building UWG Properties."""
+from __future__ import division
+
+from honeybee.typing import float_in_range
+from honeybee.altnumber import autocalculate
+
+from ._refdefaults import _RefDefaults
+
+
+
[docs]class BuildingUWGProperties(object): + """UWG Properties for Dragonfly Building. + + Args: + host: A dragonfly_core Building object that hosts these properties. + program: Text for the name of the building program. Must be one of the + options below. (Default: LargeOffice). + + * LargeOffice + * MediumOffice + * SmallOffice + * MidriseApartment + * Retail + * StripMall + * PrimarySchool + * SecondarySchool + * SmallHotel + * LargeHotel + * Hospital + * Outpatient + * Warehouse + * SuperMarket + * FullServiceRestaurant + * QuickServiceRestaurant + + vintage: Text for the vintage of the building. This will be used to set + default constructions. Must be one of the options below. (Default: New). + + * New + * 1980_Present + * Pre1980 + + fract_heat_to_canyon: A number from 0 to 1 that represents the fraction of + the building's waste heat from air conditioning that gets rejected + into the urban canyon. (Default: 0.5). + shgc: A number from 0 to 1 that represents the SHGC of the building's windows. + Used to evaluate the amount of solar heat reflected into the street canyon. + If autocalculate, it will be set by the building vintage and the Model + climate zone. (Default: autocalculate). + wall_albedo: A number from 0 to 1 that represents the exterior wall albedo + of the building. If autocalculate, it will be set by the building program + and the DoE commercial reference buildings. (Default: autocalculate). + roof_albedo: A number from 0 to 1 that represents the exterior roof albedo of + the building. If autocalculate, it will be set by the vintage, meaning 0.7 + for New and 0.2 for 1980_Present and Pre1980. (Default: autocalculate). + roof_veg_fraction: A number from 0 to 1 that represents the roof vegetation + fraction of the building. (Default: 0). + + Properties: + * host + * program + * vintage + * fract_heat_to_canyon + * shgc + * wall_albedo + * roof_albedo + * roof_veg_fraction + """ + __slots__ = ('_host', '_program', '_vintage', '_fract_heat_to_canyon', '_shgc', + '_wall_albedo', '_roof_albedo', '_roof_veg_fraction') + + PROGRAMS = \ + ('LargeOffice', 'MediumOffice', 'SmallOffice', 'MidriseApartment', 'Retail', + 'StripMall', 'PrimarySchool', 'SecondarySchool', 'SmallHotel', 'LargeHotel', + 'Hospital', 'Outpatient', 'Warehouse', 'SuperMarket', + 'FullServiceRestaurant', 'QuickServiceRestaurant') + VINTAGES = ('New', '1980_Present', 'Pre1980') + _VINTAGE_MAP = {'New': 'new', '1980_Present': 'pst80', 'Pre1980': 'pre80'} + + def __init__(self, host, program='LargeOffice', vintage='New', + fract_heat_to_canyon=0.5, shgc=autocalculate, wall_albedo=autocalculate, + roof_albedo=autocalculate, roof_veg_fraction=0): + """Initialize Building UWG properties.""" + self._host = host + self.program = program + self.vintage = vintage + self.fract_heat_to_canyon = fract_heat_to_canyon + self.shgc = shgc + self.wall_albedo = wall_albedo + self.roof_albedo = roof_albedo + self.roof_veg_fraction = roof_veg_fraction + + @property + def host(self): + """Get the Building object hosting these properties.""" + return self._host + + @property + def program(self): + """Get or set text for the name of the building program.""" + return self._program + + @program.setter + def program(self, value): + assert value in self.PROGRAMS, 'Program "{}" is not acceptable for the UWG. ' \ + 'Choose from the following:\n{}'.format(value, '\n'.join(self.PROGRAMS)) + self._program = value + + @property + def program_uwg(self): + """Get text for the building program in a format that the UWG likes.""" + if self._program == 'Retail': + return 'standaloneretail' + elif self._program == 'MediumOffice': + return 'medoffice' + return self._program.lower() + + @property + def vintage(self): + """Get or set text for the vintage of the building.""" + return self._vintage + + @vintage.setter + def vintage(self, value): + assert value in self.VINTAGES, 'Vintage "{}" is not acceptable for the UWG. ' \ + 'Choose from the following:\n{}'.format(value, '\n'.join(self.VINTAGES)) + self._vintage = value + + @property + def vintage_uwg(self): + """Get text for the building vintage in a format that the UWG likes.""" + return self._VINTAGE_MAP[self._vintage] + + @property + def fract_heat_to_canyon(self): + """Get or set the fraction of the bldg heat rejected to the urban canyon.""" + return self._fract_heat_to_canyon + + @fract_heat_to_canyon.setter + def fract_heat_to_canyon(self, value): + self._fract_heat_to_canyon = float_in_range(value, 0, 1, 'fract_heat_to_canyon') + + @property + def shgc(self): + """Get or set the SHGC of the building.""" + return self._shgc if self._shgc is not None else autocalculate + + @shgc.setter + def shgc(self, value): + if value == autocalculate: + self._shgc = None + else: + self._shgc = float_in_range(value, 0, 1, 'shgc') + + @property + def wall_albedo(self): + """Get or set the exterior wall albedo of the building.""" + if self._wall_albedo is None: + return _RefDefaults.wall_albedo_by_type(self._program) + return self._wall_albedo + + @wall_albedo.setter + def wall_albedo(self, value): + if value == autocalculate: + self._wall_albedo = None + else: + self._wall_albedo = float_in_range(value, 0, 1, 'wall_albedo') + + @property + def roof_albedo(self): + """Get or set the exterior roof albedo of the building.""" + if self._roof_albedo is None: + return _RefDefaults.roof_albedo_by_era(self._vintage) + return self._roof_albedo + + @roof_albedo.setter + def roof_albedo(self, value): + if value == autocalculate: + self._roof_albedo = None + else: + self._roof_albedo = float_in_range(value, 0, 1, 'roof_albedo') + + @property + def roof_veg_fraction(self): + """Get or set the roof vegetation fraction of the building.""" + return self._roof_veg_fraction + + @roof_veg_fraction.setter + def roof_veg_fraction(self, value): + self._roof_veg_fraction = float_in_range(value, 0, 1, 'roof_veg_fraction') + +
[docs] def default_shgc(self, climate_zone): + """Get the default DoE Reference Building SHGC for this building. + + This is used whenever the building's shgc property is autocalculate. + + Args: + climate_zone: Text for the ASHRAE climate zone, which must include + the humidity letter (eg. "4A") unless it is climate zone 7 or 8. + """ + return _RefDefaults.shgc_by_era_zone(self._vintage, climate_zone)
+ +
[docs] def infer_program_from_energy_program(self): + """Attempt to infer the UWG building program from the honeybee-energy program. + + The inferring will happen by first finding the most common energy ProgramType + among the assigned Room2Ds. If the identifier of this most common program + contains the name of an acceptable UWG building program, it will be assigned + as this object's building program. If no match is found or there's no + honeybee-energy extension installed, this object's program will remain unchanged. + """ + try: + room_progs = [rm.properties.energy.program_type.identifier + for rm in self.host.unique_room_2ds] + except AttributeError: # dragonfly-energy extension is not installed + room_progs = None + if room_progs is not None: + primary_prog = max(set(room_progs), key=room_progs.count) + for prog in self.PROGRAMS: + if prog in primary_prog: + self._program = prog + break
+ +
[docs] @classmethod + def from_dict(cls, data, host): + """Create BuildingUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of BuildingUWGProperties. + host: A Building object that hosts these properties. + """ + assert data['type'] == 'BuildingUWGProperties', \ + 'Expected BuildingUWGProperties. Got {}.'.format(data['type']) + prog, era, f_can, shgc, w_alb, r_alb, r_veg = cls._default_keys(data) + return cls(host, prog, era, f_can, shgc, w_alb, r_alb, r_veg)
+ +
[docs] def apply_properties_from_dict(self, abridged_data): + """Apply properties from a BuildingUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A BuildingUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + prog, era, f_can, shgc, w_alb, r_alb, r_veg = self._default_keys(abridged_data) + self.program = prog + self.vintage = era + self.fract_heat_to_canyon = f_can + self.shgc = shgc + self.wall_albedo = w_alb + self.roof_albedo = r_alb + self.roof_veg_fraction = r_veg
+ +
[docs] def to_dict(self, abridged=False): + """Return Building UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Building should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'BuildingUWGProperties' if not \ + abridged else 'BuildingUWGPropertiesAbridged' + + # write all of the required properties + base['uwg']['program'] = self._program + base['uwg']['vintage'] = self._vintage + base['uwg']['fract_heat_to_canyon'] = self._fract_heat_to_canyon + base['uwg']['roof_veg_fraction'] = self._roof_veg_fraction + + # write all of the optional properties + if self._shgc is not None: + base['uwg']['shgc'] = self._shgc + if self._wall_albedo is not None: + base['uwg']['wall_albedo'] = self._wall_albedo + if self._roof_albedo is not None: + base['uwg']['roof_albedo'] = self._roof_albedo + return base
+ + @staticmethod + def _default_keys(data): + prog = data['program'] if 'program' in data else 'LargeOffice' + era = data['vintage'] if 'vintage' in data else 'New' + f_can = data['fract_heat_to_canyon'] if 'fract_heat_to_canyon' in data else 0.5 + shgc = autocalculate if 'shgc' not in data or \ + data['shgc'] == autocalculate.to_dict() else data['shgc'] + w_alb = autocalculate if 'wall_albedo' not in data or \ + data['wall_albedo'] == autocalculate.to_dict() else data['wall_albedo'] + r_alb = autocalculate if 'roof_albedo' not in data or \ + data['roof_albedo'] == autocalculate.to_dict() else data['roof_albedo'] + r_veg = data['roof_veg_fraction'] if 'roof_veg_fraction' in data else 0 + return prog, era, f_can, shgc, w_alb, r_alb, r_veg + +
[docs] def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Building object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + _new_obj = BuildingUWGProperties( + _host, self._program, self._vintage, self._fract_heat_to_canyon) + _new_obj._shgc = self._shgc + _new_obj._wall_albedo = self._wall_albedo + _new_obj._roof_albedo = self._roof_albedo + _new_obj._roof_veg_fraction = self._roof_veg_fraction + return _new_obj
+ +
[docs] def ToString(self): + return self.__repr__()
+ + def __repr__(self): + return 'Building UWG Properties: {}'.format(self.host.identifier)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/context.html b/docs/_modules/dragonfly_uwg/properties/context.html new file mode 100644 index 00000000..dd39372a --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/context.html @@ -0,0 +1,500 @@ + + + + + + + dragonfly_uwg.properties.context — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.context

+# coding=utf-8
+"""Context Shade UWG Properties."""
+
+
+
[docs]class ContextShadeUWGProperties(object): + """UWG Properties for Dragonfly ContextShade. + + Args: + host_shade: A dragonfly_core ContextShade object that hosts these properties. + is_vegetation: Boolean to note whether the shade represents a tree canopy, + in which case, it will be incorporated into the simulation as tree + cover. (Default: False). + + Properties: + * host + * is_vegetation + """ + + __slots__ = ('_host', '_is_vegetation') + + def __init__(self, host_shade, is_vegetation=False): + """Initialize ContextShade UWG properties.""" + self._host = host_shade + self.is_vegetation = is_vegetation + + @property + def host(self): + """Get the Shade object hosting these properties.""" + return self._host + + @property + def is_vegetation(self): + """Get or set a boolean for whether the shade represents a tree canopy.""" + return self._is_vegetation + + @is_vegetation.setter + def is_vegetation(self, value): + self._is_vegetation = bool(value) + +
[docs] @classmethod + def from_dict(cls, data, host): + """Create ContextShadeUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of ContextShadeUWGProperties. + host: A ContextShade object that hosts these properties. + """ + assert data['type'] == 'ContextShadeUWGProperties', \ + 'Expected ContextShadeUWGProperties. Got {}.'.format(data['type']) + is_veg = data['is_vegetation'] if 'is_vegetation' in data else False + return cls(host, is_veg)
+ +
[docs] def apply_properties_from_dict(self, abridged_data): + """Apply properties from a ContextShadeUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A ContextShadeUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + if 'is_vegetation' in abridged_data: + self.is_vegetation = abridged_data['is_vegetation']
+ +
[docs] def to_dict(self, abridged=False): + """Return UWG properties as a dictionary. + + Args: + abridged: Boolean to note whether the full dictionary describing the + object should be returned (False) or just an abridged version (True). + Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'ContextShadeUWGProperties' if not \ + abridged else 'ContextShadeUWGPropertiesAbridged' + base['uwg']['is_vegetation'] = self.is_vegetation + return base
+ +
[docs] def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new ContextShade object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return ContextShadeUWGProperties(_host, self._is_vegetation)
+ +
[docs] def ToString(self): + return self.__repr__()
+ + def __repr__(self): + return 'Context Shade UWG Properties: {}'.format(self.host.identifier)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/model.html b/docs/_modules/dragonfly_uwg/properties/model.html new file mode 100644 index 00000000..81e1c49e --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/model.html @@ -0,0 +1,822 @@ + + + + + + + dragonfly_uwg.properties.model — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.model

+# coding=utf-8
+"""Model UWG Properties."""
+from ladybug_geometry.geometry3d import Face3D
+from honeybee.typing import float_in_range
+from honeybee.altnumber import autocalculate
+from dragonfly.extensionutil import model_extension_dicts
+
+from ..terrain import Terrain
+from ..traffic import TrafficParameter
+
+
+
[docs]class ModelUWGProperties(object): + """UWG Properties for Dragonfly Model. + + Args: + host: A dragonfly_core Model object that hosts these properties. + terrain: A Terrain object that dictates the properties of the street and + ground beneath the buildings. If None, a default terrain object will be + generated by analysing all of the buildings in the Model and drawing + a bounding rectangle in the XY plane around them. (Default: None). + traffic: A TrafficParameter object that defines the activity and + intensity of traffic within the urban street canyons. If None, + traffic intensity will be approximated using the average building + story count along with a generic traffic schedule. (Default: None). + tree_coverage_fraction: A number from 0 to 1 that defines the fraction of the + exposed terrain covered by trees. If Autocalculate, it will be determined + by evaluating the horizontal area of all ContextShade geometry that has + a true is_vegetation property. (Default: autocalculate). + grass_coverage_fraction: A number from 0 to 1 that defines the fraction + of the exposed terrain that is covered by grass or shrubs. + Anything not covered in grass is assumed to be pavement. (Default: 0). + + Properties: + * host + * terrain + * traffic + * tree_coverage_fraction + * grass_coverage_fraction + * footprint_density + * facade_to_site + * exposed_ground_area + * is_tree_coverage_autocalcualted + """ + + __slots__ = ('_host', '_terrain', '_traffic', '_tree_coverage_fraction', + '_grass_coverage_fraction') + + def __init__(self, host, terrain=None, traffic=None, + tree_coverage_fraction=autocalculate, grass_coverage_fraction=0): + """Initialize Model UWG properties.""" + self._host = host + self.terrain = terrain + self.traffic = traffic + self.tree_coverage_fraction = tree_coverage_fraction + self.grass_coverage_fraction = grass_coverage_fraction + + @property + def host(self): + """Get the Model object hosting these properties.""" + return self._host + + @property + def terrain(self): + """Get or set a Terrain object that dictates the properties of the ground.""" + if self._terrain is None: + return Terrain.from_building_bounding_rect(self.host.buildings) + return self._terrain + + @terrain.setter + def terrain(self, value): + if value is not None: + assert isinstance(value, Terrain), 'Expected Terrain object for ' \ + 'ModelUWGProperties.terrain. Got {}.'.format(type(value)) + self._terrain = value + + @property + def traffic(self): + """Get or set a TrafficParameter object that dictates the street traffic.""" + return self._traffic + + @traffic.setter + def traffic(self, value): + if value is not None: + assert isinstance(value, TrafficParameter), 'Expected TrafficParameter' \ + ' object for ModelUWGProperties.traffic. Got {}.'.format(type(value)) + self._traffic = value if value is not None else TrafficParameter() + + @property + def tree_coverage_fraction(self): + """Get or set the fraction of the exposed site area covered in trees.""" + if self._tree_coverage_fraction is None: + return self._autocalcualted_tree_coverage(self.exposed_ground_area) + return self._tree_coverage_fraction + + @tree_coverage_fraction.setter + def tree_coverage_fraction(self, value): + if value == autocalculate: + self._tree_coverage_fraction = None + else: + self._tree_coverage_fraction = \ + float_in_range(value, 0, 1, 'tree_coverage_fraction') + + @property + def grass_coverage_fraction(self): + """Get or set the fraction of the exposed site area covered in grass or shrubs. + + Anything not covered in grass is assumed to be pavement. + """ + return self._grass_coverage_fraction + + @grass_coverage_fraction.setter + def grass_coverage_fraction(self, value): + self._grass_coverage_fraction = \ + float_in_range(value, 0, 1, 'grass_coverage_fraction') + + @property + def footprint_density(self): + """Get a fractional number for the footprint density of the model.""" + return self.host.footprint_area / self.terrain.horizontal_area + + @property + def facade_to_site(self): + """Get a fractional number for the ratio between the facade are and site area.""" + return self.host.exterior_wall_area / self.terrain.horizontal_area + + @property + def exposed_ground_area(self): + """Get the area of the terrain exposed to the outdoor air.""" + return self.terrain.horizontal_area - self.host.footprint_area + + @property + def is_tree_coverage_autocalcualted(self): + """Get a boolean for whether tree coverage is autocalcualted from Context.""" + return self._tree_coverage_fraction is None + +
[docs] def grass_coverage_from_geometry(self, grass_geometry): + """Set this object's grass_coverage_fraction using an array of Face3Ds. + + Args: + grass_geometry: An array of Face3Ds that represent grass surfaces. + """ + grass_area = self.compute_horizontal_area(grass_geometry) + g_frac = grass_area / self.exposed_ground_area + self.grass_coverage_fraction = g_frac if g_frac < 1 else 1
+ +
[docs] def average_shgc(self, climate_zone): + """Get the average SHGC across all buildings in the model. + + Args: + climate_zone: Text for the ASHRAE climate zone, which must include + the humidity letter (eg. "4A") unless it is climate zone 7 or 8. + """ + ext_ap_areas = [bldg.exterior_aperture_area for bldg in self.host.buildings] + total_area = sum(ext_ap_areas) + try: + ext_ap_weights = [area / total_area for area in ext_ap_areas] + except ZeroDivisionError: # no apertures in model; just use dummy shgc + return 0.4 + shgc = 0 + for bldg, weight in zip(self.host.buildings, ext_ap_weights): + if bldg.properties.uwg._shgc is None: + shgc += bldg.properties.uwg.default_shgc(climate_zone) * weight + else: + shgc += bldg.properties.uwg._shgc * weight + return shgc
+ +
[docs] def move(self, moving_vec): + """Move these properties along a vector. + + Args: + moving_vec: A ladybug_geometry Vector3D with the direction and distance + to move the object. + """ + if self._terrain is not None: + self._terrain.move(moving_vec)
+ +
[docs] def rotate_xy(self, angle, origin): + """Rotate this Terrain counterclockwise in the XY plane by a certain angle. + + Args: + angle: An angle in degrees. + origin: A ladybug_geometry Point3D for the origin around which the + object will be rotated. + """ + if self._terrain is not None: + self._terrain.rotate_xy(angle, origin)
+ +
[docs] def reflect(self, plane): + """Reflect this Terrain across a plane. + + Args: + plane: A ladybug_geometry Plane across which the object will be reflected. + """ + if self._terrain is not None: + self._terrain.reflect(plane)
+ +
[docs] def scale(self, factor, origin=None): + """Scale this Terrain by a factor from an origin point. + + Args: + factor: A number representing how much the object should be scaled. + origin: A ladybug_geometry Point3D representing the origin from which + to scale. If None, it will be scaled from the World origin (0, 0, 0). + """ + if self._terrain is not None: + self._terrain.scale(factor, origin)
+ +
[docs] def apply_properties_from_dict(self, data): + """Apply the uwg properties of a dictionary to the host Model of this object. + + Args: + data: A dictionary representation of an entire dragonfly-core Model. + Note that this dictionary must have ModelUWGProperties in order + for this method to successfully apply the uwg properties. + """ + # check that UWG properties exist and apply the global ones to this object + assert 'uwg' in data['properties'], \ + 'Dictionary possesses no ModelUWGProperties.' + uwg_data = data['properties']['uwg'] + if 'terrain' in uwg_data and uwg_data['terrain'] is not None: + self.terrain = Terrain.from_dict(uwg_data['terrain']) + if 'traffic' in uwg_data and uwg_data['traffic'] is not None: + self.traffic = TrafficParameter.from_dict(uwg_data['traffic']) + if 'tree_coverage_fraction' in uwg_data and \ + uwg_data['tree_coverage_fraction'] != autocalculate.to_dict(): + self.tree_coverage_fraction = uwg_data['tree_coverage_fraction'] + if 'grass_coverage_fraction' in uwg_data: + self.grass_coverage_fraction = uwg_data['grass_coverage_fraction'] + + # collect lists of uwg property dictionaries + building_u_dicts, _, _, context_u_dicts = \ + model_extension_dicts(data, 'uwg', [], [], [], []) + + # apply uwg properties to objects using the uwg property dictionaries + for bldg, b_dict in zip(self.host.buildings, building_u_dicts): + if b_dict is not None: + bldg.properties.uwg.apply_properties_from_dict(b_dict) + for shade, s_dict in zip(self.host.context_shades, context_u_dicts): + if s_dict is not None: + shade.properties.uwg.apply_properties_from_dict(s_dict)
+ +
[docs] def to_dict(self): + """Return Model UWG properties as a dictionary.""" + base = {'uwg': {'type': 'ModelUWGProperties'}} + if self._terrain is not None: + base['uwg']['terrain'] = self._terrain.to_dict() + base['uwg']['traffic'] = self.traffic.to_dict() + if self._tree_coverage_fraction is not None: + base['uwg']['tree_coverage_fraction'] = self.tree_coverage_fraction + base['uwg']['grass_coverage_fraction'] = self.grass_coverage_fraction + return base
+ +
[docs] def to_uwg_dict(self): + """Get a dictionary following the input schema of the UWG. + + This dictionary can be serialized into a JSON in order to be run through + the UWG. Note that this dictionary will only include the properties that + the dragonfly Model object possesses and will lack all of those provided + by the UWGSimulationParameter object. For fully simulate-able UWG + input, the Model.to.uwg method should be used. The keys of the dictionary + output by this method include the following. + + * bldheight + * blddensity + * vertohor + * grasscover + * treecover + * bld + * h_mix + * albroof + * vegroof + * glzr + * albwall + * flr_h + * charlength + * albroad + * droad + * kroad + * croad + * sensanth + * schtraffic + + """ + # check that the model units are meters before extracting outputs + assert self.host.units == 'Meters', \ + 'Model units must be in Meters to use to_uwg_dict.' + + # get the geometry properties on a per-building level + floors = [bldg.floor_area for bldg in self.host._buildings] + footprints = [bldg.footprint_area for bldg in self.host._buildings] + walls = [bldg.exterior_wall_area for bldg in self.host._buildings] + + total_floor, total_foot, total_wall = sum(floors), sum(footprints), sum(walls) + floor_weights = [area / total_floor for area in floors] + foot_weights = [area / total_foot for area in footprints] + walls_weights = [area / total_wall for area in walls] + + # do some geometry computations with checks + terrain = self.terrain # request once to potentially avoid regenerating it + site_area = terrain.horizontal_area + density = total_foot / site_area + assert density <= 1, 'Building footprint areas [{} m2] cannot be larger than ' \ + 'the terrain area [{} m2].'.format(total_foot, site_area) + tree = self._tree_coverage_fraction + if self._tree_coverage_fraction is None: + ground_area = site_area - total_foot + tree = self._autocalcualted_tree_coverage(ground_area) + tree = tree * (1 - density) # uwg expcts fraction for whole area + grass = self.grass_coverage_fraction * (1 - density) # uwg expcts for whole area + average_height = self.host.average_height_above_ground + story_count = self.host.average_story_count_above_ground + sens_anth = self.traffic._watts_per_area + if self.traffic._watts_per_area is None: + sens_anth = self._autocalculated_traffic(story_count) + + # create the dictionary + base = {'type': 'UWG'} + base['bldheight'] = average_height + base['blddensity'] = density if density < 1 else 0.99 + base['vertohor'] = round(sum(walls) / site_area, 5) + base['treecover'] = round(tree, 5) + base['grasscover'] = round(grass, 5) if tree + grass + density <= 1 \ + else round(1 - tree - density, 5) + base['bld'] = self._create_bld_matrix(floor_weights) + base['h_mix'] = self._weighted_property('fract_heat_to_canyon', floor_weights) + base['albroof'] = self._weighted_property('roof_albedo', foot_weights) + base['vegroof'] = self._weighted_property('roof_veg_fraction', foot_weights) + base['glzr'] = round(self.host.exterior_aperture_area / total_wall, 5) + base['albwall'] = self._weighted_property('wall_albedo', walls_weights) + base['flr_h'] = round(average_height / story_count, 5) + base['charlength'] = round(terrain.characteristic_length, 5) + base['albroad'] = round(terrain.pavement_albedo, 5) + base['droad'] = round(terrain.pavement_thickness, 5) + base['kroad'] = round(terrain.pavement_conductivity, 5) + base['croad'] = round(terrain.pavement_heat_capacity, 5) + base['sensanth'] = round(sens_anth, 5) + base['schtraffic'] = [self.traffic.weekday_schedule, + self.traffic.saturday_schedule, + self.traffic.sunday_schedule] + return base
+ +
[docs] def duplicate(self, new_host=None): + """Get a copy of this Model. + + Args: + new_host: A new Model object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + new_obj = ModelUWGProperties(_host) + if self._terrain is not None: + new_obj._terrain = self._terrain.duplicate() + new_obj._traffic = self._traffic.duplicate() + new_obj._tree_coverage_fraction = self._tree_coverage_fraction + new_obj._grass_coverage_fraction = self._grass_coverage_fraction + return new_obj
+ +
[docs] @staticmethod + def compute_horizontal_area(face3ds): + """Get the area of a list of Face3D in the XY Plane. + + This is useful for taking geometry representing grass or pavement and + turning it into a number for grass_coverage_fraction. + """ + poly2d = Terrain._face3d_to_polygon2d(face3ds) + return sum([geo.area for geo in poly2d])
+ + def _create_bld_matrix(self, floor_area_weights): + """Create the matrix of building programs and vintages for the uwg_dict.""" + bld_dict = {} + for bldg, weight in zip(self.host._buildings, floor_area_weights): + uwg_prop = bldg.properties.uwg + key = '{}_{}'.format(uwg_prop.program, uwg_prop.vintage) + try: + bld_dict[key][2] += weight + except KeyError: # first time we have this program and vintage + bld_dict[key] = [uwg_prop.program_uwg, uwg_prop.vintage_uwg, weight] + # round all weight values to avoid tolerance issues + for val in bld_dict: + bld_dict[val][2] = round(bld_dict[val][2], 3) + return tuple(bld_dict.values()) + + def _autocalcualted_tree_coverage(self, ground_area): + """Autocalculate the tree coverage from the model context shades.""" + veg_shds, mesh_area = [], 0 + for shd in self.host.context_shades: + if shd.properties.uwg.is_vegetation: + if isinstance(shd.geometry, Face3D): + veg_shds.extend(shd.geometry) + else: + mesh_area += shd.geometry.area + tree_area = self.compute_horizontal_area(veg_shds) + mesh_area + if ground_area <= 0: + return 0 + return tree_area / ground_area if tree_area / ground_area <= 1 else 1 + + def _weighted_property(self, attribute, weights): + weight_val = sum([getattr(bldg.properties.uwg, attribute) * w + for bldg, w in zip(self.host._buildings, weights)]) + return round(weight_val, 5) + + @staticmethod + def _autocalculated_traffic(story_count): + """Autocalculate the traffic wattage from the average story count.""" + if story_count <= 3: + return 4 + if story_count <= 6: + return 10 + return 20 + +
[docs] def ToString(self): + return self.__repr__()
+ + def __repr__(self): + return 'Model UWG Properties: {}'.format(self.host.identifier)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/room2d.html b/docs/_modules/dragonfly_uwg/properties/room2d.html new file mode 100644 index 00000000..7241371c --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/room2d.html @@ -0,0 +1,484 @@ + + + + + + + dragonfly_uwg.properties.room2d — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.room2d

+# coding=utf-8
+"""Room2D UWG Properties."""
+
+
+
[docs]class Room2DUWGProperties(object): + """UWG Properties for Dragonfly Room2D. + + Args: + host: A dragonfly_core Room2D object that hosts these properties. + + Properties: + * host + """ + + __slots__ = ('_host',) + + def __init__(self, host): + """Initialize Room2D UWG properties.""" + self._host = host + + @property + def host(self): + """Get the Room2D object hosting these properties.""" + return self._host + +
[docs] @classmethod + def from_dict(cls, data, host): + """Create Room2DUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of Room2DUWGProperties. + host: A Room2D object that hosts these properties. + """ + assert data['type'] == 'Room2DUWGProperties', \ + 'Expected Room2DUWGProperties. Got {}.'.format(data['type']) + new_prop = cls(host) + return new_prop
+ +
[docs] def apply_properties_from_dict(self, abridged_data): + """Apply properties from a Room2DUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A Room2DUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + pass # currently no properties to apply
+ +
[docs] def to_dict(self, abridged=False): + """Return Room2D UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Room2D should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'Room2DUWGProperties' if not \ + abridged else 'Room2DUWGPropertiesAbridged' + return base
+ +
[docs] def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Room2D object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return Room2DUWGProperties(_host)
+ +
[docs] def ToString(self): + return self.__repr__()
+ + def __repr__(self): + return 'Room2D UWG Properties: {}'.format(self.host.identifier)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/story.html b/docs/_modules/dragonfly_uwg/properties/story.html new file mode 100644 index 00000000..4506d685 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/story.html @@ -0,0 +1,484 @@ + + + + + + + dragonfly_uwg.properties.story — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.story

+# coding=utf-8
+"""Story UWG Properties."""
+
+
+
[docs]class StoryUWGProperties(object): + """UWG Properties for Dragonfly Story. + + Args: + host: A dragonfly_core Story object that hosts these properties. + + Properties: + * host + """ + + __slots__ = ('_host',) + + def __init__(self, host): + """Initialize Story UWG properties.""" + self._host = host + + @property + def host(self): + """Get the Story object hosting these properties.""" + return self._host + +
[docs] @classmethod + def from_dict(cls, data, host): + """Create StoryUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of StoryUWGProperties. + host: A Story object that hosts these properties. + """ + assert data['type'] == 'StoryUWGProperties', \ + 'Expected StoryUWGProperties. Got {}.'.format(data['type']) + new_prop = cls(host) + return new_prop
+ +
[docs] def apply_properties_from_dict(self, abridged_data): + """Apply properties from a StoryUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A StoryUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + pass # currently no properties to apply
+ +
[docs] def to_dict(self, abridged=False): + """Return Story UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Story should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'StoryUWGProperties' if not \ + abridged else 'StoryUWGPropertiesAbridged' + return base
+ +
[docs] def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Story object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return StoryUWGProperties(_host)
+ +
[docs] def ToString(self): + return self.__repr__()
+ + def __repr__(self): + return 'Story UWG Properties: {}'.format(self.host.identifier)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/run.html b/docs/_modules/dragonfly_uwg/run.html new file mode 100644 index 00000000..cc90634f --- /dev/null +++ b/docs/_modules/dragonfly_uwg/run.html @@ -0,0 +1,539 @@ + + + + + + + dragonfly_uwg.run — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.run

+# coding=utf-8
+"""Module for running models through the Urban Weather Generator (UWG)."""
+from __future__ import division
+
+import os
+import json
+import subprocess
+
+from honeybee.config import folders as hb_folders
+from ladybug.config import folders as lb_folders
+from ladybug.futil import write_to_file, preparedir
+
+
+
[docs]def run_uwg(model, epw_file_path, simulation_parameter=None, directory=None, + silent=False): + """Run a UWG dictionary file through the UWG on any operating system. + + Args: + model: A Dragonfly Model to be used to morph the EPW for the urban area. + epw_file_path: The full path to an EPW file. + simulation_parameter: A UWGSimulationParameter object that dictates various + settings about the UWG simulation. If None, default parameters will + be generated. (Default: None). + directory: Text for the directory into which the the uwg JSON and morphed + urban EPW will be written. If None, it will be written into the + ladybug default_epw_folder within a subfolder bearing the name + of the dragonfly Model. (Default: None). + silent: Boolean to note whether the simulation should be run silently. + This only has an effect on Windows simulations since Unix-based + simulations always use shell and are always silent (Default: False). + + Returns: + The following files output from the UWG CLI run + + - uwg_json -- Path to a .json file derived from the input uwg_dict. + + - epw -- File path to the morphed EPW. Will be None if the UWG + failed to run. + """ + # get the name of the EPW and the directory into which the urban epw will be written + epw_file_path = os.path.abspath(epw_file_path) + epw_name = '{}.epw'.format(model.identifier) + if directory is None: + directory = os.path.join(lb_folders.default_epw_folder, model.identifier) + preparedir(directory, remove_content=False) + + # write the model to a UWG dictionary + uwg_dict = model.to.uwg(model, epw_file_path, simulation_parameter) + uwg_json = os.path.join(directory, '{}_uwg.json'.format(model.identifier)) + with open(uwg_json, 'w') as fp: + json.dump(uwg_dict, fp, indent=4) + + # run the simulation + if os.name == 'nt': # we are on Windows + epw = _run_uwg_windows(uwg_json, epw_file_path, epw_name, silent) + else: # we are on Mac, Linux, or some other unix-based system + epw = _run_uwg_unix(uwg_json, epw_file_path, epw_name) + return uwg_json, epw
+ + +def _run_uwg_windows(uwg_json_path, epw_file_path, epw_name, silent=False): + """Run a JSON file through the UWG on a Windows-based operating system. + + A batch file will be used to run the simulation unless silent is True. + + Args: + uwg_json_path: The full path to a UWG JSON file. + epw_file_path: The full path to an EPW file. + epw_name: Text for the name of the EPW file. + silent: Boolean to note whether the simulation should be run silently + (without the batch window). If so, the simulation will be run using + subprocess with shell set to True. (Default: False). + + Returns: + File path to the morphed EPW. Will be None if the UWG failed to run. + """ + directory = os.path.dirname(uwg_json_path) + custom_env = os.environ.copy() + custom_env['PYTHONHOME'] = '' + if not silent: # run the simulations with shell=False + command = '"{}" -m uwg simulate model "{}" "{}" --new-epw-dir "{}" ' \ + '--new-epw-name "{}"'.format( + hb_folders.python_exe_path, uwg_json_path, + epw_file_path, directory, epw_name) + process = subprocess.Popen( + command, stderr=subprocess.PIPE, shell=False, env=custom_env) + else: # run the simulation using subprocess with shell=True + cmds = [hb_folders.python_exe_path, '-m', 'uwg', 'simulate', 'model', + uwg_json_path, epw_file_path, '--new-epw-dir', directory, + '--new-epw-name', epw_name] + process = subprocess.Popen( + cmds, stderr=subprocess.PIPE, shell=True, env=custom_env) + _, stderr = process.communicate() + rc = process.returncode + if isinstance(rc, int) and rc != 0: + raise RuntimeError('The UWG failed to run:\n{}'.format(stderr)) + epw_file = os.path.join(directory, epw_name) + return epw_file if os.path.isfile(epw_file) else None + + +def _run_uwg_unix(uwg_json_path, epw_file_path, epw_name): + """Run a JSON file through the UWG on a Unix-based operating system. + + This includes both Mac OS and Linux since a shell will be used to run + the simulation. + + Args: + uwg_json_path: The full path to a UWG JSON file. + epw_file_path: The full path to an EPW file. + epw_name: Text for the name of the EPW file. + + Returns: + File path to the morphed EPW. Will be None if the UWG failed to run. + """ + directory = os.path.dirname(uwg_json_path) + # write a shell file + shell = '#!/usr/bin/env bash\n\ncd "{}"\n {} -m uwg simulate model "{}" "{}" ' \ + '--new-epw-dir "{}" --new-epw-name "{}"'.format( + directory, hb_folders.python_exe_path, uwg_json_path, + epw_file_path, directory, epw_name) + shell_file = os.path.join(directory, 'in.sh') + write_to_file(shell_file, shell, True) + + # make the shell script executable using subprocess.check_call + # this is more reliable than native Python chmod on Mac + subprocess.check_call(['chmod', 'u+x', shell_file]) + + # run the shell script + subprocess.call(shell_file) + + epw_file = os.path.join(directory, epw_name) + return epw_file if os.path.isfile(epw_file) else None +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/boundary.html b/docs/_modules/dragonfly_uwg/simulation/boundary.html new file mode 100644 index 00000000..f8709000 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/boundary.html @@ -0,0 +1,561 @@ + + + + + + + dragonfly_uwg.simulation.boundary — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.boundary

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_positive
+
+
+
[docs]class BoundaryLayerParameter(object): + """Properties of the urban boundary layer. + + Args: + day_boundary_layer_height: A number that represents the height + in meters of the urban boundary layer during the daytime. + This is the height to which the urban meteorological conditions + are stable and representative of the overall urban area. + Typically, this boundary layer height increases with the + height of the buildings. (Default: 1000 meters). + night_boundary_layer_height: A number that represents the height + in meters of the urban boundary layer during the nighttime. + This is the height to which the urban meteorological + conditions are stable and representative of the overall + urban area. Typically, this boundary layer height increases with + the height of the buildings. (Default: 80 meters). + inversion_height: A number that represents the height in meters at which + the vertical profile of potential temperature becomes stable. + Can be determined by flying helium balloons equipped + with temperature sensors and recording the air temperatures + at different heights. (Default: 150 meters). + circulation_coefficient: A number representing the circulation + coefficient. (Default: 1.2, per Bueno (2012)). + exchange_coefficient: A number representing the exchange + coefficient. (Default: 1.0, per Bueno (2014)). + """ + + __slots__ = ('_day_boundary_layer_height', '_night_boundary_layer_height', + '_inversion_height', '_circulation_coefficient', + '_exchange_coefficient') + + def __init__(self, day_boundary_layer_height=1000, night_boundary_layer_height=80, + inversion_height=150, + circulation_coefficient=1.2, exchange_coefficient=1.0): + """Initialize Boundary Layer parameters""" + self.day_boundary_layer_height = day_boundary_layer_height + self.night_boundary_layer_height = night_boundary_layer_height + self.inversion_height = inversion_height + self.circulation_coefficient = circulation_coefficient + self.exchange_coefficient = exchange_coefficient + +
[docs] @classmethod + def from_dict(cls, data): + """Create a BoundaryLayerParameter object from a dictionary + + Args: + data: A dictionary representation of an BoundaryLayerParameter object + in the format below. + + .. code-block:: python + + { + 'type': 'BoundaryLayerParameter', + 'day_boundary_layer_height': 1000, # float for height in meters + 'night_boundary_layer_height': 80, # float for height in meters + 'inversion_height': 150, # float for inversion layer height + 'circulation_coefficient': 1.2, # float for circulation coefficient + 'exchange_coefficient': 1.0 # float for exchange coefficient + } + """ + day = data['day_boundary_layer_height'] \ + if 'day_boundary_layer_height' in data else 1000 + night = data['night_boundary_layer_height'] \ + if 'night_boundary_layer_height' in data else 80 + inv = data['inversion_height'] if 'inversion_height' in data else 150 + circ = data['circulation_coefficient'] \ + if 'circulation_coefficient' in data else 1.2 + exch = data['exchange_coefficient'] \ + if 'exchange_coefficient' in data else 1.0 + return cls(day, night, inv, circ, exch)
+ + @property + def day_boundary_layer_height(self): + """Get or set a number for the daytime boundary layer height in meters.""" + return self._day_boundary_layer_height + + @day_boundary_layer_height.setter + def day_boundary_layer_height(self, value): + self._day_boundary_layer_height = \ + float_positive(value, 'day_boundary_layer_height') + + @property + def night_boundary_layer_height(self): + """Get or set a number for the nighttime boundary layer height i meters.""" + return self._night_boundary_layer_height + + @night_boundary_layer_height.setter + def night_boundary_layer_height(self, value): + self._night_boundary_layer_height = \ + float_positive(value, 'night_boundary_layer_height') + + @property + def inversion_height(self): + """Get or set a number for the inversion height in meters.""" + return self._inversion_height + + @inversion_height.setter + def inversion_height(self, value): + self._inversion_height = float_positive(value, 'inversion_height') + + @property + def circulation_coefficient(self): + """Get or set a number for the circulation coefficient.""" + return self._circulation_coefficient + + @circulation_coefficient.setter + def circulation_coefficient(self, value): + self._circulation_coefficient = float_positive(value, 'circulation_coefficient') + + @property + def exchange_coefficient(self): + """Get or set the exchange coefficient.""" + return self._exchange_coefficient + + @exchange_coefficient.setter + def exchange_coefficient(self, value): + self._exchange_coefficient = float_positive(value, 'exchange_coefficient') + +
[docs] def to_dict(self): + """Get BoundaryLayerParameter dictionary.""" + return { + 'type': 'BoundaryLayerParameter', + 'day_boundary_layer_height': self.day_boundary_layer_height, + 'night_boundary_layer_height': self.night_boundary_layer_height, + 'inversion_height': self.inversion_height, + 'circulation_coefficient': self.circulation_coefficient, + 'exchange_coefficient': self.exchange_coefficient}
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + def __copy__(self): + return BoundaryLayerParameter( + self._day_boundary_layer_height, self._night_boundary_layer_height, + self._inversion_height, + self._circulation_coefficient, self._exchange_coefficient) + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + """Represent Dragonfly boundary layer parameters.""" + return 'BoundaryLayerParameter: [boundary (day | night): {} m | {} m] ' \ + '[inversion: {} m]'.format( + self.day_boundary_layer_height, self.night_boundary_layer_height, + self.inversion_height)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/parameter.html b/docs/_modules/dragonfly_uwg/simulation/parameter.html new file mode 100644 index 00000000..59ed8537 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/parameter.html @@ -0,0 +1,698 @@ + + + + + + + dragonfly_uwg.simulation.parameter — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.parameter

+# coding=utf-8
+"""Complete set of UWG Simulation Settings."""
+from __future__ import division
+
+from .runperiod import UWGRunPeriod
+from .vegetation import VegetationParameter
+from .refsite import ReferenceEPWSite
+from .boundary import BoundaryLayerParameter
+
+from honeybee.altnumber import autocalculate
+from honeybee.typing import int_positive
+from ladybug.epw import EPW
+
+
+
[docs]class UWGSimulationParameter(object): + """Complete set of UWG Simulation Settings. + + Args: + climate_zone: Text for the ASHRAE climate zone, including the letter for + humidity classification (eg. "4A"). This is used to set default + constructions for various buildings. If set to autocalculate, + the climate zone will be estimated from analysis of the epw to be + morphed for simulation. (Default: autocalculate). + run_period: A UWGRunPeriod object to describe the time period over which to + run the simulation. If None, the simulation will be run for the whole + year. (Default: None). + timestep: An integer for the number of timesteps per hour at which the + calculation will be run. (Default: 12). + vegetation_parameter: A VegetationParameter to specify the behavior of + vegetation in the urban area. If None, generic vegetation parameters + will be generated. (Default: None). + reference_epw_site: A ReferenceEPWSite to specify the properties of the + reference site where the input rural EPW was recorded. If None, generic + airport properties will be generated. (Default: None). + boundary_layer_parameter: A BoundaryLayerParameter to specify the properties + of the urban boundary layer. If None, generic boundary layer parameters + will be generated. (Default: None). + """ + __slots__ = ('_climate_zone', '_run_period', '_timestep', '_vegetation_parameter', + '_reference_epw_site', '_boundary_layer_parameter') + + VALIDTIMESTEPS = (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60) + VALIDZONES = ('1A', '1B', '2A', '2B', '3A', '3B', '3C', '4A', '4B', '4C', + '5A', '5B', '5C', '6A', '6B', '7', '8') + + def __init__(self, climate_zone=autocalculate, run_period=None, timestep=12, + vegetation_parameter=None, reference_epw_site=None, + boundary_layer_parameter=None): + """Initialize UWGSimulationParameter""" + self.climate_zone = climate_zone + self.run_period = run_period + self.timestep = timestep + self.vegetation_parameter = vegetation_parameter + self.reference_epw_site = reference_epw_site + self.boundary_layer_parameter = boundary_layer_parameter + + @property + def climate_zone(self): + """Get or set a text for the ASHRAE climate zone.""" + return self._climate_zone if self._climate_zone is not None else autocalculate + + @climate_zone.setter + def climate_zone(self, value): + if value == autocalculate: + self._climate_zone = None + else: + assert value in self.VALIDZONES, 'UWGSimulationParameter climate_zone ' \ + '"{}" is invalid.\nMust be one of the following:{}'.format( + value, self.VALIDZONES) + self._climate_zone = value + + @property + def run_period(self): + """Get or set a UWGRunPeriod object for the time period to run the simulation.""" + return self._run_period + + @run_period.setter + def run_period(self, value): + if value is not None: + assert isinstance(value, UWGRunPeriod), 'Expected UWGRunPeriod for ' \ + 'UWGSimulationParameter run_period. Got {}.'.format(type(value)) + self._run_period = value + else: + self._run_period = UWGRunPeriod() + + @property + def timestep(self): + """Get or set a integer for the number of simulation timesteps per hour.""" + return self._timestep + + @timestep.setter + def timestep(self, value): + value = int_positive(value, 'simulation parameter timestep') + assert value in self.VALIDTIMESTEPS, 'UWGSimulationParameter timestep "{}" is ' \ + 'invalid. Must be one of the following:{}'.format(value, self.VALIDTIMESTEPS) + self._timestep = value + + @property + def vegetation_parameter(self): + """Get or set a VegetationParameter object for the behavior of vegetation.""" + return self._vegetation_parameter + + @vegetation_parameter.setter + def vegetation_parameter(self, value): + if value is not None: + assert isinstance(value, VegetationParameter), 'Expected ' \ + 'VegetationParameter. Got {}.'.format(type(value)) + self._vegetation_parameter = value + else: + self._vegetation_parameter = VegetationParameter() + + @property + def reference_epw_site(self): + """Get or set a ReferenceEPWSite object for the properties of the rural EPW.""" + return self._reference_epw_site + + @reference_epw_site.setter + def reference_epw_site(self, value): + if value is not None: + assert isinstance(value, ReferenceEPWSite), 'Expected ReferenceEPWSite ' \ + 'for UWGSimulationParameter. Got {}.'.format(type(value)) + self._reference_epw_site = value + else: + self._reference_epw_site = ReferenceEPWSite() + + @property + def boundary_layer_parameter(self): + """Get or set a BoundaryLayerParameter object for the boundary layer properties. + """ + return self._boundary_layer_parameter + + @boundary_layer_parameter.setter + def boundary_layer_parameter(self, value): + if value is not None: + assert isinstance(value, BoundaryLayerParameter), 'Expected ' \ + 'BoundaryLayerParameter. Got {}.'.format(type(value)) + self._boundary_layer_parameter = value + else: + self._boundary_layer_parameter = BoundaryLayerParameter() + +
[docs] @classmethod + def from_dict(cls, data): + """Create a UWGSimulationParameter object from a dictionary. + + Args: + data: A UWGSimulationParameter dictionary in following the format below. + + .. code-block:: python + + { + "type": "UWGSimulationParameter", + "climate_zone": "5A", # Text for ASHRAE climate zone + "run_period": {}, # Dragonfly UWGRunPeriod dictionary + "timestep": 20, # Integer for the simulation timestep + "vegetation_parameter": {}, # Dragonfly VegetationParameter dictionary + "reference_epw_site": {}, # Dragonfly ReferenceEPWSite dictionary + "boundary_layer_parameter": {} # Dragonfly BoundaryLayerParameter dictionary + } + """ + assert data['type'] == 'UWGSimulationParameter', \ + 'Expected UWGSimulationParameter dictionary. Got {}.'.format(data['type']) + + cz = autocalculate if 'climate_zone' not in data or \ + data['climate_zone'] == autocalculate.to_dict() else data['climate_zone'] + timestep = data['timestep'] if 'timestep' in data else 12 + run_period = None + if 'run_period' in data and data['run_period'] is not None: + run_period = UWGRunPeriod.from_dict(data['run_period']) + veg_par = None + if 'vegetation_parameter' in data and data['vegetation_parameter'] is not None: + veg_par = VegetationParameter.from_dict(data['vegetation_parameter']) + ref_site = None + if 'reference_epw_site' in data and data['reference_epw_site'] is not None: + ref_site = ReferenceEPWSite.from_dict(data['reference_epw_site']) + bnd_par = None + if 'boundary_layer_parameter' in data and \ + data['boundary_layer_parameter'] is not None: + bnd_par = BoundaryLayerParameter.from_dict(data['boundary_layer_parameter']) + + return cls(cz, run_period, timestep, veg_par, ref_site, bnd_par)
+ +
[docs] def to_dict(self): + """UWGSimulationParameter dictionary representation.""" + base = { + 'type': 'UWGSimulationParameter', + 'run_period': self.run_period.to_dict(), + 'timestep': self.timestep, + 'vegetation_parameter': self.vegetation_parameter.to_dict(), + 'reference_epw_site': self.reference_epw_site.to_dict(), + 'boundary_layer_parameter': self.boundary_layer_parameter.to_dict()} + if self._climate_zone is not None: + base['climate_zone'] = self.climate_zone + return base
+ +
[docs] def to_uwg_dict(self, epw_file): + """Get a dictionary following the input schema of the UWG. + + Note that this dictionary will only include the properties that the + UWGSimulationParameter object possesses and will lack all of those provided + by the Model object. For fully simulate-able UWG input, the Model.to.uwg + method should be used. The keys of the dictionary output by this method + include the following. + + * zone + * month + * day + * nday + * dtsim + * rurvegcover + * vegstart + * vegend + * albveg + * latgrss + * lattree + * h_ubl1 + * h_ubl2 + * h_ref + * h_temp + * h_wind + * c_circ + * c_exch + * h_obs + + Args: + epw_file: File path to the EPW that will be morphed by the UWG. This + will be used to fill all autocalculated fields like the ASHRAE + climate zone and vegetation start/end. + """ + # autocalculate any missing values from the epw_file + climate_zone = self._climate_zone + veg_start = self.vegetation_parameter._start_month + veg_end = self.vegetation_parameter._end_month + if climate_zone is None or veg_start is None or veg_end is None: + epw_obj = EPW(epw_file) + start_def, end_def = self._autocalc_start_end_vegetation(epw_obj) + veg_start = start_def if veg_start is None else veg_start + veg_end = end_def if veg_end is None else veg_end + climate_zone = epw_obj.ashrae_climate_zone if climate_zone is None \ + else climate_zone + + # create the uwg dictionary + base = {} + base['zone'] = climate_zone + base['month'] = self.run_period.start_date.month + base['day'] = self.run_period.start_date.day + base['nday'] = self.run_period.day_count + base['dtsim'] = int((60 / self.timestep) * 60) + base['vegstart'] = veg_start + base['vegend'] = veg_end + base['albveg'] = self.vegetation_parameter.vegetation_albedo + base['latgrss'] = self.vegetation_parameter.grass_latent_fraction + base['lattree'] = self.vegetation_parameter.tree_latent_fraction + base['h_ubl1'] = self.boundary_layer_parameter.day_boundary_layer_height + base['h_ubl2'] = self.boundary_layer_parameter.night_boundary_layer_height + base['h_ref'] = self.boundary_layer_parameter.inversion_height + base['c_circ'] = self.boundary_layer_parameter.circulation_coefficient + base['c_exch'] = self.boundary_layer_parameter.exchange_coefficient + base['rurvegcover'] = self.reference_epw_site.vegetation_coverage + base['h_temp'] = self.reference_epw_site.temp_measure_height + base['h_wind'] = self.reference_epw_site.wind_measure_height + base['h_obs'] = self.reference_epw_site.average_obstacle_height + return base
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + @staticmethod + def _autocalc_start_end_vegetation(epw_obj, threshold_temp=10): + """Autocalculate the vegetation start and end month from an EPW.""" + month_temps = epw_obj.dry_bulb_temperature.average_monthly() + veg_start, veg_end, veg_start_set = 1, 12, False + for i, t in enumerate(month_temps): + if t > threshold_temp and not veg_start_set: + veg_start, veg_start_set = i + 1, True + elif t < threshold_temp and veg_start_set: + veg_end, veg_start_set = i + 1, False + return veg_start, veg_end + + def __copy__(self): + return UWGSimulationParameter( + self.climate_zone, self.run_period.duplicate(), self.timestep, + self.vegetation_parameter.duplicate(), self.reference_epw_site.duplicate(), + self.boundary_layer_parameter.duplicate()) + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + return 'UWG SimulationParameter:'
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/refsite.html b/docs/_modules/dragonfly_uwg/simulation/refsite.html new file mode 100644 index 00000000..92b4fa9e --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/refsite.html @@ -0,0 +1,530 @@ + + + + + + + dragonfly_uwg.simulation.refsite — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.refsite

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, float_positive
+
+
+
[docs]class ReferenceEPWSite(object): + """Properties of the reference site where the input rural EPW was recorded. + + Args: + average_obstacle_height: A number that represents the height in meters of + objects that obstruct the view to the sky at the weather station site. + This includes both trees and buildings. (Default: 0.1 m). + vegetation_coverage: A number between 0 and 1 that represents the fraction + of the reference EPW site that is covered in grass. (Default: 0.9). + temp_measure_height: A number that represents the height in meters at which + temperature is measured on the weather station. (Default: 10m, the + standard measurement height for US DoE EPW files). + wind_measure_height: A number that represents the height in meters at which + wind speed is measured on the weather station. (Default: 10m, the + standard measurement height for US DoE EPW files). + """ + __slots__ = ('_average_obstacle_height', '_vegetation_coverage', + '_temp_measure_height', '_wind_measure_height') + + def __init__(self, average_obstacle_height=0.1, vegetation_coverage=0.9, + temp_measure_height=10, wind_measure_height=10): + """Initialize ReferenceEPWSite parameters""" + self.average_obstacle_height = average_obstacle_height + self.vegetation_coverage = vegetation_coverage + self.temp_measure_height = temp_measure_height + self.wind_measure_height = wind_measure_height + +
[docs] @classmethod + def from_dict(cls, data): + """Create a ReferenceEPWSite object from a dictionary + + Args: + data: A dictionary representation of an ReferenceEPWSite object + in the format below. + + .. code-block:: python + + { + 'type': 'ReferenceEPWSite', + 'average_obstacle_height': 10, # float for obstacle height in meters + 'vegetation_coverage': 0.95, # float for vegetation coverage between 0 and 1 + 'temp_measure_height': 10, # float for temp measurement height in meters + 'wind_measure_height: 15 # float for wind measurement height in meters + } + """ + ob_hgt = data['average_obstacle_height'] \ + if 'average_obstacle_height' in data else 0.1 + veg_cov = data['vegetation_coverage'] \ + if 'vegetation_coverage' in data else 0.9 + temp = data['temp_measure_height'] \ + if 'temp_measure_height' in data else 10 + wind = data['wind_measure_height'] \ + if 'wind_measure_height' in data else 10 + return cls(ob_hgt, veg_cov, temp, wind)
+ + @property + def average_obstacle_height(self): + """Get or set a number for the average obstacle height in meters.""" + return self._average_obstacle_height + + @average_obstacle_height.setter + def average_obstacle_height(self, value): + self._average_obstacle_height = float_positive(value, 'average_obstacle_height') + + @property + def vegetation_coverage(self): + """Get or set a fractional number for the vegetation coverage.""" + return self._vegetation_coverage + + @vegetation_coverage.setter + def vegetation_coverage(self, value): + self._vegetation_coverage = float_in_range(value, 0, 1, 'vegetation_coverage') + + @property + def temp_measure_height(self): + """Get or set a number for the temperature measurement height in meters.""" + return self._temp_measure_height + + @temp_measure_height.setter + def temp_measure_height(self, value): + self._temp_measure_height = float_positive(value, 'temp_measure_height') + + @property + def wind_measure_height(self): + """Get or set a number for the wind measurement height in meters.""" + return self._wind_measure_height + + @wind_measure_height.setter + def wind_measure_height(self, value): + self._wind_measure_height = float_positive(value, 'wind_measure_height') + +
[docs] def to_dict(self): + """Get ReferenceEPWSite dictionary.""" + return { + 'type': 'ReferenceEPWSite', + 'average_obstacle_height': self.average_obstacle_height, + 'vegetation_coverage': self.vegetation_coverage, + 'temp_measure_height': self.temp_measure_height, + 'wind_measure_height': self.wind_measure_height}
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + def __copy__(self): + return ReferenceEPWSite( + self._average_obstacle_height, self._vegetation_coverage, + self._temp_measure_height, self._wind_measure_height) + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + """Represent Dragonfly reference EPW site parameters.""" + return 'ReferenceEPWSite: [obstacle height: {} m] [veg coverage: {}]'.format( + self._average_obstacle_height, self._vegetation_coverage)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/runperiod.html b/docs/_modules/dragonfly_uwg/simulation/runperiod.html new file mode 100644 index 00000000..2b5a9e35 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/runperiod.html @@ -0,0 +1,549 @@ + + + + + + + dragonfly_uwg.simulation.runperiod — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.runperiod

+# coding=utf-8
+"""UWG Simulation Run Period."""
+from __future__ import division
+
+from ladybug.analysisperiod import AnalysisPeriod
+from ladybug.dt import Date
+
+
+
[docs]class UWGRunPeriod(object): + """UWG Simulation Run Period. + + Args: + start_date: A ladybug Date object for the start of the simulation. + Must be before the end date and have a leap_year property matching the + end_date. (Default: 1 Jan). + end_date: A ladybug Date object for the end of the simulation. + Must be after the start date and have a leap_year property matching the + start_date. (Default: 31 Dec). + + Properties: + * start_date + * end_date + * day_count + """ + __slots__ = ('_start_date', '_end_date') + + def __init__(self, start_date=Date(1, 1), end_date=Date(12, 31)): + """Initialize UWGRunPeriod.""" + # process the dates + if start_date is not None: + self._check_date(start_date, 'start_date') + self._start_date = start_date + else: + self._start_date = Date(1, 1) + self.end_date = end_date + + @property + def start_date(self): + """Get or set a ladybug Date object for the start of the simulation period.""" + return self._start_date + + @start_date.setter + def start_date(self, value): + if value is not None: + self._check_date(value, 'start_date') + self._start_date = value + else: + self._start_date = Date(1, 1) + self._check_start_before_end() + + @property + def end_date(self): + """Get or set a ladybug Date object for the end of the simulation period.""" + return self._end_date + + @end_date.setter + def end_date(self, value): + if value is not None: + self._check_date(value, 'end_date') + self._end_date = value + else: + self._end_date = Date(12, 31) + self._check_start_before_end() + + @property + def day_count(self): + """Get an integer for the number of days in the run period.""" + return int(self.end_date.doy - self.start_date.doy + 1) + +
[docs] @classmethod + def from_analysis_period(cls, analysis_period=AnalysisPeriod(1, 1, 0, 12, 31, 23)): + """Initialize a UWGRunPeriod object from a ladybug AnalysisPeriod. + + Args: + analysis_period: A ladybug AnalysisPeriod object that has the start + and end dates for daylight savings time. + """ + assert isinstance(analysis_period, AnalysisPeriod), 'Expected AnalysisPeriod ' \ + 'for UWGRunPeriod.from_analysis_period. Got {}.'.format( + type(analysis_period)) + st_date = Date(analysis_period.st_month, analysis_period.st_day, + analysis_period.is_leap_year) + end_date = Date(analysis_period.end_month, analysis_period.end_day, + analysis_period.is_leap_year) + return cls(st_date, end_date)
+ +
[docs] @classmethod + def from_dict(cls, data): + """Create a UWGRunPeriod object from a dictionary. + + Args: + data: A UWGRunPeriod dictionary in following the format below. + + .. code-block:: python + + { + "type": "UWGRunPeriod", + "start_date": [3, 12], + "end_date": [11, 5] + } + """ + assert data['type'] == 'UWGRunPeriod', \ + 'Expected UWGRunPeriod dictionary. Got {}.'.format(data['type']) + start_date = Date.from_array(data['start_date']) if 'start_date' in data and \ + data['start_date'] is not None else Date(1, 1) + end_date = Date.from_array(data['end_date']) if 'end_date' in data and \ + data['end_date'] is not None else Date(12, 31) + return cls(start_date, end_date)
+ +
[docs] def to_dict(self): + """UWGRunPeriod dictionary representation.""" + return { + 'type': 'UWGRunPeriod', + 'start_date': self.start_date.to_array(), + 'end_date': self.end_date.to_array() + }
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + def _check_start_before_end(self): + """Check that the start_date is before the end_date.""" + assert self.start_date.leap_year is self.end_date.leap_year, \ + 'UWGRunPeriod start_date.leap_year must match the end_date.leap_year' + assert self._start_date <= self._end_date, 'UWGRunPeriod start_date must ' \ + 'be before end_date. {} is after {}.'.format(self.start_date, self.end_date) + + @staticmethod + def _check_date(date, date_name='date'): + assert isinstance(date, Date), 'Expected ladybug Date for ' \ + 'UWGRunPeriod {}. Got {}.'.format(date_name, type(date)) + +
[docs] def ToString(self): + """Overwrite .NET ToString.""" + return self.__repr__()
+ + def __copy__(self): + return UWGRunPeriod(self.start_date, self.end_date) + + def __repr__(self): + return 'UWGRunPeriod: [{} - {}]'.format(self.start_date, self.end_date)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/vegetation.html b/docs/_modules/dragonfly_uwg/simulation/vegetation.html new file mode 100644 index 00000000..046fb372 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/vegetation.html @@ -0,0 +1,572 @@ + + + + + + + dragonfly_uwg.simulation.vegetation — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.vegetation

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, int_in_range
+from honeybee.altnumber import autocalculate
+
+
+
[docs]class VegetationParameter(object): + """Represents the behavior of vegetation within an urban area. + + Args: + vegetation_albedo: A number between 0 and 1 that represents + the ratio of reflected radiation from vegetated surfaces + to incident radiation upon them. (Default: 0.25) + start_month: An integer from 1 to 12 that represents the month + at which vegetation evapostranspiration begins (leaves come out). + If Autocalculate, the month will be automatically determined by analyzing + the epw to see which months have an average monthly temperature + above 10C. (Default: autocalculate). + end_month: An integer from 1 to 12 that represents the month + at which vegetation evapostranspiration ends (leaves fall off). + If Autocalculate, the month will be automatically determined by analyzing + the epw to see which months have an average monthly temperature + above 10C. (Default: autocalculate). + tree_latent_fraction: A number between 0 and 1 that represents + the the fraction of absorbed solar energy by trees that + is given off as latent heat (evapotranspiration). Currently, + this does not affect the moisture balance in the uwg but + it will affect the temperature. (Default: 0.7). + grass_latent_fraction: A number between 0 and 1 that represents + the the fraction of absorbed solar energy by grass that is + given off as latent heat (evapotranspiration). Currently, + this does not affect the moisture balance in the uwg but + it will affect the temperature. (Default: 0.5). + """ + + __slots__ = ('_vegetation_albedo', '_start_month', '_end_month', + '_tree_latent_fraction', '_grass_latent_fraction') + + def __init__(self, vegetation_albedo=0.25, start_month=autocalculate, + end_month=autocalculate, + tree_latent_fraction=0.7, grass_latent_fraction=0.5): + """Initialize dragonfly vegetation parameters""" + self.vegetation_albedo = vegetation_albedo + self.start_month = start_month + self.end_month = end_month + self.tree_latent_fraction = tree_latent_fraction + self.grass_latent_fraction = grass_latent_fraction + +
[docs] @classmethod + def from_dict(cls, data): + """Create a VegetationParameter object from a dictionary + + Args: + data: A dictionary representation of an VegetationParameter object + in the format below. + + .. code-block:: python + + { + 'type': 'VegetationParameter', + 'vegetation_albedo': 0.3, # float between 0 and 1 + 'start_month': 5, # int between 1 and 12 + 'end_month': 10, # int between 1 and 12 + 'tree_latent_fraction': 0.75, # float between 0 and 1 + 'grass_latent_fraction': 0.45 # float between 0 and 1 + } + """ + alb = data['vegetation_albedo'] if 'vegetation_albedo' in data else 0.25 + start = autocalculate if 'start_month' not in data or \ + data['start_month'] == autocalculate.to_dict() else data['start_month'] + end = autocalculate if 'end_month' not in data or \ + data['end_month'] == autocalculate.to_dict() else data['end_month'] + tree = data['tree_latent_fraction'] if 'tree_latent_fraction' in data else 0.7 + grass = data['grass_latent_fraction'] if 'grass_latent_fraction' in data else 0.5 + return cls(alb, start, end, tree, grass)
+ + @property + def vegetation_albedo(self): + """Get or set a fractional number for the vegetation albedo.""" + return self._vegetation_albedo + + @vegetation_albedo.setter + def vegetation_albedo(self, value): + self._vegetation_albedo = float_in_range(value, 0, 1, 'vegetation_albedo') + + @property + def start_month(self): + """Get or set an integer (or Autocalculate) for the vegetation start month.""" + return self._start_month if self._start_month is not None else autocalculate + + @start_month.setter + def start_month(self, value): + if value == autocalculate: + self._start_month = None + else: + self._start_month = \ + int_in_range(value, 1, 12, 'start_month') + + @property + def end_month(self): + """Get or set an integer (or Autocalculate) for the vegetation end month.""" + return self._end_month if self._end_month is not None \ + else autocalculate + + @end_month.setter + def end_month(self, value): + if value == autocalculate: + self._end_month = None + else: + self._end_month = \ + int_in_range(value, 1, 12, 'end_month') + + @property + def tree_latent_fraction(self): + """Get or set a number for the tree latent fraction.""" + return self._tree_latent_fraction + + @tree_latent_fraction.setter + def tree_latent_fraction(self, value): + self._tree_latent_fraction = float_in_range(value, 0, 1, 'tree_latent_fraction') + + @property + def grass_latent_fraction(self): + """Get or set a number for the grass latent fraction.""" + return self._grass_latent_fraction + + @grass_latent_fraction.setter + def grass_latent_fraction(self, value): + self._grass_latent_fraction = \ + float_in_range(value, 0, 1, 'grass_latent_fraction') + +
[docs] def to_dict(self): + """Get VegetationParameter dictionary.""" + base = {'type': 'VegetationParameter'} + base['vegetation_albedo'] = self.vegetation_albedo + base['tree_latent_fraction'] = self.tree_latent_fraction + base['grass_latent_fraction'] = self.grass_latent_fraction + if self._start_month is not None: + base['start_month'] = self._start_month + if self._end_month is not None: + base['end_month'] = self._end_month + return base
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + def __copy__(self): + new_obj = VegetationParameter(self._vegetation_albedo) + new_obj._tree_latent_fraction = self._tree_latent_fraction + new_obj._grass_latent_fraction = self._grass_latent_fraction + new_obj._start_month = self._start_month + new_obj._end_month = self._end_month + return new_obj + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + """Represent Dragonfly vegetation parameters.""" + return 'VegetationParameter: [albedo: {}] [tree latent: {}] [grass latent:' \ + ' {}]'.format(self._vegetation_albedo, self._tree_latent_fraction, + self._grass_latent_fraction)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/terrain.html b/docs/_modules/dragonfly_uwg/terrain.html new file mode 100644 index 00000000..4ae2a024 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/terrain.html @@ -0,0 +1,728 @@ + + + + + + + dragonfly_uwg.terrain — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.terrain

+# coding=utf-8
+from honeybee.typing import float_in_range, float_positive
+from ladybug_geometry.geometry2d.pointvector import Point2D
+from ladybug_geometry.geometry2d.polygon import Polygon2D
+from ladybug_geometry.geometry3d.pointvector import Point3D
+from ladybug_geometry.geometry3d.plane import Plane
+from ladybug_geometry.geometry3d.face import Face3D
+
+import math
+
+
+
[docs]class Terrain(object): + """Object representing the terrain on which an urban area sits. + + Note: + [1] Street, Michael A. (2013). Comparison of simplified models of urban + climate for improved prediction of building energy use in cities. Thesis + (S.M. in Building Technology) - Massachusetts Institute of Technology, + Dept. of Architecture, http://hdl.handle.net/1721.1/82284 + + Args: + geometry: An array of ladybug_geometry Face3D objects that together + represent the terrain. This should include the entire area of the + site, including that beneath building footprints. + pavement_albedo: A number between 0 and 1 that represents the albedo + (reflectivity) of the pavement. (Default: 0.1, typical of fresh asphalt). + pavement_thickness: A number that represents the thickness of the + pavement material in meters. (Default: 0.5 meters). + pavement_conductivity: A number representing the conductivity of the pavement + material in W/m-K. (Default: 1 W/m-K, typical of asphalt). + pavement_heat_capacity: A number representing the volumetric heat + capacity of the pavement material in J/m3-K. This is the number + of joules needed to raise one cubic meter of the material by 1 degree + Kelvin. (Default: 1.6e6 J/m3-K, typical of asphalt). + + Properties: + * geometry + * pavement_albedo + * pavement_thickness + * pavement_conductivity + * pavement_heat_capacity + * polygon2ds + * area + * horizontal_area + * characteristic_length + * min + * max + """ + __slots__ = ('_geometry', '_polygon2ds', '_pavement_albedo', '_pavement_thickness', + '_pavement_conductivity', '_pavement_heat_capacity') + + def __init__(self, geometry, pavement_albedo=0.1, pavement_thickness=0.5, + pavement_conductivity=1.0, pavement_heat_capacity=1.6e6): + """Initialize a dragonfly Terrain""" + # process the geometry + if not isinstance(geometry, tuple): + geometry = tuple(geometry) + assert len(geometry) > 0, 'Terrain must have at least one Face3D.' + for geo in geometry: + assert isinstance(geo, Face3D), \ + 'Expected ladybug_geometry Face3D. Got {}'.format(type(geo)) + self._geometry = geometry + self._polygon2ds = None + + # process the other parameters + self.pavement_albedo = pavement_albedo + self.pavement_thickness = pavement_thickness + self.pavement_conductivity = pavement_conductivity + self.pavement_heat_capacity = pavement_heat_capacity + +
[docs] @classmethod + def from_building_bounding_rect(cls, buildings): + """Initialize a Terrain from a list of dragonfly Buildings. + + Args: + buildings: An array of dragonfly Buildings around which a bounding + rectangle will be computed to produce terrain geometry. + """ + # figure out the min and max Point2D around all of the geometry + min_pt, max_pt = buildings[0].min, buildings[0].max + min_pt, max_pt = [min_pt.x, min_pt.y], [max_pt.x, max_pt.y] + for bldg in buildings[1:]: + bldg_min, bldg_max = bldg.min, bldg.max + if bldg_min.x < min_pt[0]: + min_pt[0] = bldg_min.x + if bldg_min.y < min_pt[1]: + min_pt[1] = bldg_min.y + if bldg_max.x > max_pt[0]: + max_pt[0] = bldg_max.x + if bldg_max.y > max_pt[1]: + max_pt[1] = bldg_max.y + # convert the min and max into a Face3D + base, height = max_pt[0] - min_pt[0], max_pt[1] - min_pt[1] + base_plane = Plane(o=Point3D(min_pt[0], min_pt[1], 0)) + return cls((Face3D.from_rectangle(base, height, base_plane),))
+ +
[docs] @classmethod + def from_dict(cls, data): + """Initialize a Terrain from a dictionary. + + Args: + data: A dictionary representation of a Terrain object in the format below. + + .. code-block:: python + + { + "type": 'Terrain', + "geometry": [], # array for Face3D for the terrain surface + "pavement_albedo": 0.15, # number for the pavement albedo + "pavement_thickness": 0.75, # pavement thickness in meters + "pavement_conductivity": 1.0, # pavement conductivity in W/m2-K + "pavement_heat_capacity": 1600000 # volumetric heat capacity in J/m3-K + } + """ + # check the type of dictionary + assert data['type'] == 'Terrain', 'Expected Terrain dictionary. ' \ + 'Got {}.'.format(data['type']) + # process the geometry + geometry = tuple(Face3D.from_dict(geo) for geo in data['geometry']) + # process the other parameters + alb = data['pavement_albedo'] if 'pavement_albedo' in data else 0.1 + thick = data['pavement_thickness'] if 'pavement_thickness' in data else 0.5 + cond = data['pavement_conductivity'] if 'pavement_conductivity' in data else 1.0 + h_cap = data['pavement_heat_capacity'] \ + if 'pavement_heat_capacity' in data else 1.6e6 + return cls(geometry, alb, thick, cond, h_cap)
+ + @property + def geometry(self): + """Get a tuple of Face3D objects that together represent the Terrain.""" + return self._geometry + + @property + def pavement_albedo(self): + """Get or set a number between 0 and 1 for the pavement albedo (reflectivity).""" + return self._pavement_albedo + + @pavement_albedo.setter + def pavement_albedo(self, value): + self._pavement_albedo = float_in_range(value, 0, 1, 'pavement_albedo') + + @property + def pavement_thickness(self): + """Get or set a number for the pavement thickness in meters.""" + return self._pavement_thickness + + @pavement_thickness.setter + def pavement_thickness(self, value): + self._pavement_thickness = float_positive(value, 'pavement_thickness') + + @property + def pavement_conductivity(self): + """Get or set a number for the pavement conductivity in W/m-K.""" + return self._pavement_conductivity + + @pavement_conductivity.setter + def pavement_conductivity(self, value): + self._pavement_conductivity = float_positive(value, 'pavement_conductivity') + + @property + def pavement_heat_capacity(self): + """Get or set a number for the pavement volumetric heat capacity in J/m3-K.""" + return self._pavement_heat_capacity + + @pavement_heat_capacity.setter + def pavement_heat_capacity(self, value): + self._pavement_heat_capacity = float_positive(value, 'pavement_heat_capacity') + + @property + def polygon2ds(self): + """Get a tuple of Polygon2D objects that together represent the Terrain.""" + if self._polygon2ds is None: + self._polygon2ds = self._face3d_to_polygon2d(self._geometry) + return self._polygon2ds + + @property + def area(self): + """Get a number for the total surface area of the Terrain.""" + return sum([geo.area for geo in self._geometry]) + + @property + def horizontal_area(self): + """Get a number for the horizontal area of the urban Terrain surface. + + This is projected into the XY plane. + """ + return sum([geo.area for geo in self.polygon2ds]) + + @property + def characteristic_length(self): + """Get a number for the characteristic length. + + This is the linear dimension of the side of a square that encompasses + the neighborhood. + """ + return math.sqrt(self.horizontal_area) + + @property + def min(self): + """Get a Point2D for the min bounding rectangle vertex in the XY plane.""" + return self._calculate_min(self._geometry) + + @property + def max(self): + """Get a Point2D for the max bounding rectangle vertex in the XY plane.""" + return self._calculate_max(self._geometry) + +
[docs] def move(self, moving_vec): + """Move this Terrain along a vector. + + Args: + moving_vec: A ladybug_geometry Vector3D with the direction and distance + to move the object. + """ + self._geometry = tuple(geo.move(moving_vec) for geo in self._geometry) + self._polygon2ds = None
+ +
[docs] def rotate_xy(self, angle, origin): + """Rotate this Terrain counterclockwise in the XY plane by a certain angle. + + Args: + angle: An angle in degrees. + origin: A ladybug_geometry Point3D for the origin around which the + object will be rotated. + """ + self._geometry = tuple(geo.rotate_xy(math.radians(angle), origin) + for geo in self._geometry) + self._polygon2ds = None
+ +
[docs] def reflect(self, plane): + """Reflect this Terrain across a plane. + + Args: + plane: A ladybug_geometry Plane across which the object will be reflected. + """ + self._geometry = tuple(geo.reflect(plane.n, plane.o) + for geo in self._geometry) + self._polygon2ds = None
+ +
[docs] def scale(self, factor, origin=None): + """Scale this Terrain by a factor from an origin point. + + Args: + factor: A number representing how much the object should be scaled. + origin: A ladybug_geometry Point3D representing the origin from which + to scale. If None, it will be scaled from the World origin (0, 0, 0). + """ + self._geometry = tuple(geo.scale(factor, origin) + for geo in self._geometry) + self._polygon2ds = None
+ +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ +
[docs] def to_dict(self): + """Get Terrain as a dictionary.""" + base = {'type': 'Terrain'} + base['geometry'] = [geo.to_dict(False) for geo in self._geometry] + base['pavement_albedo'] = self.pavement_albedo + base['pavement_thickness'] = self.pavement_thickness + base['pavement_conductivity'] = self.pavement_conductivity + base['pavement_heat_capacity'] = self.pavement_heat_capacity + return base
+ + @staticmethod + def _face3d_to_polygon2d(geometry): + """Convert a list of Face3D into Polygon2D in the XY Plane.""" + vert2ds = ((Point2D(pt.x, pt.y) for pt in poly) for poly in geometry) + return tuple(Polygon2D(poly) for poly in vert2ds) + + @staticmethod + def _calculate_min(geometry_objects): + """Calculate min Point2D around an array of geometry with min attributes. + + This is used in all functions that calculate bounding rectangles around + dragonfly objects and assess when two objects are in close proximity. + """ + min_pt = [geometry_objects[0].min.x, geometry_objects[0].min.y] + + for room in geometry_objects[1:]: + if room.min.x < min_pt[0]: + min_pt[0] = room.min.x + if room.min.y < min_pt[1]: + min_pt[1] = room.min.y + + return Point2D(min_pt[0], min_pt[1]) + + @staticmethod + def _calculate_max(geometry_objects): + """Calculate max Point2D around an array of geometry with max attributes. + + This is used in all functions that calculate bounding rectangles around + dragonfly objects and assess when two objects are in close proximity. + """ + max_pt = [geometry_objects[0].max.x, geometry_objects[0].max.y] + + for room in geometry_objects[1:]: + if room.max.x > max_pt[0]: + max_pt[0] = room.max.x + if room.max.y > max_pt[1]: + max_pt[1] = room.max.y + + return Point2D(max_pt[0], max_pt[1]) + + def __copy__(self): + new_obj = Terrain(self._geometry) + new_obj._polygon2ds = self._polygon2ds + new_obj._pavement_albedo = self._pavement_albedo + new_obj._pavement_thickness = self._pavement_thickness + new_obj._pavement_conductivity = self._pavement_conductivity + new_obj._pavement_heat_capacity = self._pavement_heat_capacity + return new_obj + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + """Represent Dragonfly Terrain.""" + return 'Terrain: [{} faces]'.format(len(self._geometry))
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/traffic.html b/docs/_modules/dragonfly_uwg/traffic.html new file mode 100644 index 00000000..db595bc0 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/traffic.html @@ -0,0 +1,582 @@ + + + + + + + dragonfly_uwg.traffic — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.traffic

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, float_positive
+from honeybee.altnumber import autocalculate
+
+
+
[docs]class TrafficParameter(object): + """Object representing the traffic within an urban area. + + Note: + [1] Sailor, David J. (2011). A review of methods for estimating anthropogenic + heat and moisture emissions in the urban environment. Royal Meteorological + Society, Volume 31, Issue 2, Pages 189-199. https://doi.org/10.1002/joc.2106 + + Args: + watts_per_area: A number representing the maximum sensible anthropogenic heat + flux of the urban area in watts per square meter. This is specifically the + heat that DOES NOT originate from buildings and mostly includes heat + from automobiles, street lighting, and human metabolism. If autocalculate, + it will be estimated frm the average building story count of the model + hosting the traffic parameters (Default: autocalculate). Values + for different cities can be found in (Sailor, 2011)[1]. Typical + values include: + + * 20 W/m2 = A typical downtown area + * 10 W/m2 = A commercial area in Singapore + * 8 W/m2 = A typical mixed use part of Toulouse, France + * 4 W/m2 = A residential area in Singapore + + weekday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the weekday of the simulation. (Default: a typical schedule + for a commercial area). + saturday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the Saturday of the simulation. (Default: a typical schedule + for a commercial area). + sunday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the Sunday of the simulation. (Default: a typical schedule + for a commercial area). + """ + __slots__ = ('_watts_per_area', '_weekday_schedule', '_saturday_schedule', + '_sunday_schedule') + + WEEKDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.7, 0.9, 0.9, 0.6, 0.6, 0.6, + 0.6, 0.6, 0.7, 0.8, 0.9, 0.9, 0.8, 0.8, 0.7, 0.3, 0.2, 0.2) + SATURDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, + 0.5, 0.5, 0.6, 0.7, 0.7, 0.7, 0.7, 0.5, 0.4, 0.3, 0.2, 0.2) + SUNDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.3, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, + 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.3, 0.3, 0.2, 0.2) + + def __init__(self, watts_per_area=autocalculate, weekday_schedule=None, + saturday_schedule=None, sunday_schedule=None): + """Initialize dragonfly traffic parameters""" + self.watts_per_area = watts_per_area + self.weekday_schedule = weekday_schedule + self.saturday_schedule = saturday_schedule + self.sunday_schedule = sunday_schedule + +
[docs] @classmethod + def from_dict(cls, data): + """Initialize an TrafficParameter from a dictionary. + + Args: + data: A dictionary representation of an TrafficParameter object + in the format below. + + .. code-block:: python + + { + "type": 'TrafficParameter', + "watts_per_area": 10, # number for heat in W/m2 + "weekday_schedule": [], # list of 24 fractional values for a schedule + "saturday_schedule": [], # list of 24 fractional values for a schedule + "sunday_schedule": [] # list of 24 fractional values for a schedule + } + """ + watts = autocalculate if 'watts_per_area' not in data or \ + data['watts_per_area'] == autocalculate.to_dict() else data['watts_per_area'] + weekday = data['weekday_schedule'] if 'weekday_schedule' in data else None + saturday = data['saturday_schedule'] if 'saturday_schedule' in data else None + sunday = data['sunday_schedule'] if 'sunday_schedule' in data else None + return cls(watts, weekday, saturday, sunday)
+ + @property + def watts_per_area(self): + """Get or set a number for the max sensible heat flux of the traffic.""" + return self._watts_per_area if self._watts_per_area is not None \ + else autocalculate + + @watts_per_area.setter + def watts_per_area(self, value): + if value == autocalculate: + self._watts_per_area = None + else: + self._watts_per_area = float_positive(value, 'traffic watts per area') + + @property + def weekday_schedule(self): + """Get or set the Weekday traffic schedule as a list of 24 fractional values.""" + return self._weekday_schedule if self._weekday_schedule is not None \ + else self.WEEKDAY_DEFAULT + + @weekday_schedule.setter + def weekday_schedule(self, value): + self._weekday_schedule = self._check_schedule(value) \ + if value is not None else None + + @property + def saturday_schedule(self): + """Get or set the Saturday traffic schedule as a list of 24 fractional values.""" + return self._saturday_schedule if self._saturday_schedule is not None \ + else self.SATURDAY_DEFAULT + + @saturday_schedule.setter + def saturday_schedule(self, value): + self._saturday_schedule = self._check_schedule(value) \ + if value is not None else None + + @property + def sunday_schedule(self): + """Get or set the Sunday traffic schedule as a list of 24 fractional values.""" + return self._sunday_schedule if self._sunday_schedule is not None \ + else self.SUNDAY_DEFAULT + + @sunday_schedule.setter + def sunday_schedule(self, value): + self._sunday_schedule = self._check_schedule(value) \ + if value is not None else None + +
[docs] def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ +
[docs] def to_dict(self): + """Get TrafficParameter as a dictionary.""" + base = {'type': 'TrafficParameter'} + if self._watts_per_area is not None: + base['watts_per_area'] = self._watts_per_area + if self._weekday_schedule is not None: + base['weekday_schedule'] = self._weekday_schedule + if self._saturday_schedule is not None: + base['saturday_schedule'] = self._saturday_schedule + if self._sunday_schedule is not None: + base['sunday_schedule'] = self._sunday_schedule + return base
+ + def _check_schedule(self, schedule): + if len(schedule) == 24: + return tuple(float_in_range(x, 0, 1, 'schedule value') for x in schedule) + else: + raise ValueError( + 'Traffic schedules must be lists of 24 values. Current schedule ' + 'has length ({})'.format(len(schedule))) + + def __copy__(self): + new_obj = TrafficParameter() + new_obj._watts_per_area = self._watts_per_area + new_obj._weekday_schedule = self._weekday_schedule + new_obj._saturday_schedule = self._saturday_schedule + new_obj._sunday_schedule = self._sunday_schedule + return new_obj + +
[docs] def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + def __repr__(self): + """Represent Dragonfly traffic parameters.""" + return 'TrafficParameter: [{} W/m2]'.format(self.watts_per_area)
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/writer.html b/docs/_modules/dragonfly_uwg/writer.html new file mode 100644 index 00000000..c464cccb --- /dev/null +++ b/docs/_modules/dragonfly_uwg/writer.html @@ -0,0 +1,455 @@ + + + + + + + dragonfly_uwg.writer — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.writer

+"""Methods to write files for UWG simulation from a Model."""
+from .simulation.parameter import UWGSimulationParameter
+
+
+
[docs]def model_to_uwg(model, epw_file, simulation_parameter=None): + """Create a fully simulate-able uwg dictionary from a Model. + + Args: + model: A dragonfly Model for which an URBANopt feature geoJSON and corresponding + honeybee Model JSONs will be returned. + epw_file: File path to the EPW that will be morphed by the UWG. This will be + used to fill all autocalculated fields like the ASHRAE climate zone + and vegetation start/end. + simulation_parameter: A UWGSimulationParameter object that dictates various + settings about the UWG simulation. If None, default parameters will + be generated. (Default: None). + + Returns: + A dictionary following the UWG schema. This dictionary can be serialized + into a JSON in order to be run through the UWG. + """ + # get the base dictionary from the model; independent of simulation parameters + if model.units != 'Meters': + model = model.duplicate() # duplicate the model to avoid mutating the input + model.convert_to_units('Meters') + uwg_dict = model.properties.uwg.to_uwg_dict() + + # get a dictionary for the simulation parameters and update the base + sim_par = simulation_parameter if simulation_parameter is not None \ + else UWGSimulationParameter() + sim_par_dict = sim_par.to_uwg_dict(epw_file) + uwg_dict.update(sim_par_dict) + + # get the average SHGC across the buildings using the climate zone + uwg_dict['shgc'] = model.properties.uwg.average_shgc(uwg_dict['zone']) + + # add other properties that have not been exposed elsewhere in the SDK + uwg_dict['dtweather'] = 3600 + uwg_dict['autosize'] = False + uwg_dict['sensocc'] = 100 + uwg_dict['latfocc'] = 0.3 + uwg_dict['radfocc'] = 0.2 + uwg_dict['radfequip'] = 0.5 + uwg_dict['radflight'] = 0.7 + uwg_dict['maxday'] = 150 + uwg_dict['maxnight'] = 20 + uwg_dict['windmin'] = 1 + return uwg_dict
+
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/index.html b/docs/_modules/index.html new file mode 100644 index 00000000..41a0fe98 --- /dev/null +++ b/docs/_modules/index.html @@ -0,0 +1,421 @@ + + + + + + + Overview: module code — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 5.3.0.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_sources/cli/index.rst.txt b/docs/_sources/cli/index.rst.txt new file mode 100644 index 00000000..e0ebecd3 --- /dev/null +++ b/docs/_sources/cli/index.rst.txt @@ -0,0 +1,14 @@ +CLI Docs +======== + +Installation +------------ + +To check if the command line is installed correctly use ``dragonfly-uwg --help`` + +Commands +-------- +.. toctree:: + :maxdepth: 1 + + simulate diff --git a/docs/_sources/cli/simulate.rst.txt b/docs/_sources/cli/simulate.rst.txt new file mode 100644 index 00000000..9da6911c --- /dev/null +++ b/docs/_sources/cli/simulate.rst.txt @@ -0,0 +1,6 @@ +simulate +======== + +.. click:: dragonfly_uwg.cli.simulate:simulate + :prog: dragonfly-uwg simulate + :show-nested: diff --git a/docs/_sources/dragonfly_uwg.cli.rst.txt b/docs/_sources/dragonfly_uwg.cli.rst.txt new file mode 100644 index 00000000..e72f251d --- /dev/null +++ b/docs/_sources/dragonfly_uwg.cli.rst.txt @@ -0,0 +1,18 @@ +dragonfly\_uwg.cli package +========================== + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.cli.simulate + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.cli + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt b/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt new file mode 100644 index 00000000..bc324d02 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.cli.simulate module +================================== + +.. automodule:: dragonfly_uwg.cli.simulate + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.building.rst.txt b/docs/_sources/dragonfly_uwg.properties.building.rst.txt new file mode 100644 index 00000000..b5ddd012 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.building.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.building module +========================================= + +.. automodule:: dragonfly_uwg.properties.building + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.context.rst.txt b/docs/_sources/dragonfly_uwg.properties.context.rst.txt new file mode 100644 index 00000000..d518eaf9 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.context.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.context module +======================================== + +.. automodule:: dragonfly_uwg.properties.context + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.model.rst.txt b/docs/_sources/dragonfly_uwg.properties.model.rst.txt new file mode 100644 index 00000000..2ef3c275 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.model.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.model module +====================================== + +.. automodule:: dragonfly_uwg.properties.model + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt b/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt new file mode 100644 index 00000000..623dddec --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.room2d module +======================================= + +.. automodule:: dragonfly_uwg.properties.room2d + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.rst.txt b/docs/_sources/dragonfly_uwg.properties.rst.txt new file mode 100644 index 00000000..cbccde29 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.rst.txt @@ -0,0 +1,22 @@ +dragonfly\_uwg.properties package +================================= + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.properties.building + dragonfly_uwg.properties.context + dragonfly_uwg.properties.model + dragonfly_uwg.properties.room2d + dragonfly_uwg.properties.story + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.properties + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.story.rst.txt b/docs/_sources/dragonfly_uwg.properties.story.rst.txt new file mode 100644 index 00000000..14e351e4 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.story.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.story module +====================================== + +.. automodule:: dragonfly_uwg.properties.story + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.rst.txt b/docs/_sources/dragonfly_uwg.rst.txt new file mode 100644 index 00000000..6a246381 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.rst.txt @@ -0,0 +1,31 @@ +dragonfly\_uwg package +====================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.cli + dragonfly_uwg.properties + dragonfly_uwg.simulation + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.run + dragonfly_uwg.terrain + dragonfly_uwg.traffic + dragonfly_uwg.writer + +Module contents +--------------- + +.. automodule:: dragonfly_uwg + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.run.rst.txt b/docs/_sources/dragonfly_uwg.run.rst.txt new file mode 100644 index 00000000..32a85b8a --- /dev/null +++ b/docs/_sources/dragonfly_uwg.run.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.run module +========================= + +.. automodule:: dragonfly_uwg.run + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt b/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt new file mode 100644 index 00000000..8c8dea8a --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.boundary module +========================================= + +.. automodule:: dragonfly_uwg.simulation.boundary + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt b/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt new file mode 100644 index 00000000..2b7774a1 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.parameter module +========================================== + +.. automodule:: dragonfly_uwg.simulation.parameter + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt b/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt new file mode 100644 index 00000000..31bed7b4 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.refsite module +======================================== + +.. automodule:: dragonfly_uwg.simulation.refsite + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.rst.txt b/docs/_sources/dragonfly_uwg.simulation.rst.txt new file mode 100644 index 00000000..3e6f2468 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.rst.txt @@ -0,0 +1,22 @@ +dragonfly\_uwg.simulation package +================================= + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.simulation.boundary + dragonfly_uwg.simulation.parameter + dragonfly_uwg.simulation.refsite + dragonfly_uwg.simulation.runperiod + dragonfly_uwg.simulation.vegetation + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.simulation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt b/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt new file mode 100644 index 00000000..f0f9e303 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.runperiod module +========================================== + +.. automodule:: dragonfly_uwg.simulation.runperiod + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt b/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt new file mode 100644 index 00000000..194077d1 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.vegetation module +=========================================== + +.. automodule:: dragonfly_uwg.simulation.vegetation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.terrain.rst.txt b/docs/_sources/dragonfly_uwg.terrain.rst.txt new file mode 100644 index 00000000..facc0e5b --- /dev/null +++ b/docs/_sources/dragonfly_uwg.terrain.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.terrain module +============================= + +.. automodule:: dragonfly_uwg.terrain + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.traffic.rst.txt b/docs/_sources/dragonfly_uwg.traffic.rst.txt new file mode 100644 index 00000000..4d25bf0f --- /dev/null +++ b/docs/_sources/dragonfly_uwg.traffic.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.traffic module +============================= + +.. automodule:: dragonfly_uwg.traffic + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.writer.rst.txt b/docs/_sources/dragonfly_uwg.writer.rst.txt new file mode 100644 index 00000000..f37d1bfb --- /dev/null +++ b/docs/_sources/dragonfly_uwg.writer.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.writer module +============================ + +.. automodule:: dragonfly_uwg.writer + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt new file mode 100644 index 00000000..dfdc0e9d --- /dev/null +++ b/docs/_sources/index.rst.txt @@ -0,0 +1,45 @@ +Welcome to dragonfly-uwg's documentation! +=================================== + +.. image:: http://www.ladybug.tools/assets/img/dragonfly.png + +`Urban Weather Generator `_ extension for `dragonfly `_ + +Dragonfly-uwg adds Urban Weather Generator functionalities to dragonfly. + + +Installation +============ + +``pip install -U dragonfly-uwg``. + +To check if the command line is installed correctly use ``dragonfly-uwg --help`` + + + +CLI Docs +============= + +For command line interface documentation and API documentation see the pages below. + + +.. toctree:: + :maxdepth: 2 + + cli/index + + +dragonfly_uwg +============= + +.. toctree:: + :maxdepth: 4 + + modules + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/_sources/modules.rst.txt b/docs/_sources/modules.rst.txt new file mode 100644 index 00000000..791ded0f --- /dev/null +++ b/docs/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +dragonfly_uwg +============= + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg diff --git a/docs/_static/_sphinx_javascript_frameworks_compat.js b/docs/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 00000000..8549469d --- /dev/null +++ b/docs/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs/_static/basic.css b/docs/_static/basic.css new file mode 100644 index 00000000..eeb0519a --- /dev/null +++ b/docs/_static/basic.css @@ -0,0 +1,899 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} +dl.field-list > dt:after { + content: ":"; +} + + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css new file mode 100644 index 00000000..09e88ce3 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css new file mode 100644 index 00000000..f4ede63f --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap.css b/docs/_static/bootstrap-2.3.2/css/bootstrap.css new file mode 100644 index 00000000..b725064a --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap.css @@ -0,0 +1,6167 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css b/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css new file mode 100644 index 00000000..b6428e69 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png b/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png b/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/docs/_static/bootstrap-2.3.2/js/bootstrap.js b/docs/_static/bootstrap-2.3.2/js/bootstrap.js new file mode 100644 index 00000000..638bb187 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/js/bootstrap.js @@ -0,0 +1,2287 @@ +/* =================================================== + * bootstrap-transition.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $(function () { + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.$jqTheme || window.jQuery); +/* ========================================================== + * bootstrap-alert.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT NO CONFLICT + * ================= */ + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + /* ALERT DATA-API + * ============== */ + + $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) + +}(window.$jqTheme || window.jQuery); +/* ============================================================ + * bootstrap-button.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON NO CONFLICT + * ================== */ + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + /* BUTTON DATA-API + * =============== */ + + $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + +}(window.$jqTheme || window.jQuery); +/* ========================================================== + * bootstrap-carousel.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + if (this.interval) clearInterval(this.interval); + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , getActiveIndex: function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + return this.$items.index(this.$active) + } + + , to: function (pos) { + var activeIndex = this.getActiveIndex() + , that = this + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activeIndex == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.item.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + e = $.Event('slide', { + relatedTarget: $next[0] + , direction: direction + }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + , action = typeof option == 'string' ? option : options.slide + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL NO CONFLICT + * ==================== */ + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + /* CAROUSEL DATA-API + * ================= */ + + $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = $.extend({}, $target.data(), $this.data()) + , slideIndex + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('carousel').pause().to(slideIndex).cycle() + } + + e.preventDefault() + }) + +}(window.$jqTheme || window.jQuery); +/* ============================================================= + * bootstrap-collapse.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning || this.$element.hasClass('in')) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + $.support.transition && this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning || !this.$element.hasClass('in')) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSE PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSE NO CONFLICT + * ==================== */ + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + /* COLLAPSE DATA-API + * ================= */ + + $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $(target).collapse(option) + }) + +}(window.$jqTheme || window.jQuery); +/* ============================================================ + * bootstrap-dropdown.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , isActive + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement) { + // if mobile we we use a backdrop because click events don't delegate + $('