Showing 203 changed files with 9855 additions and 125 deletions
+5
.gitignore
... ...
@@ -30,3 +30,8 @@ rep/*
30 30
 gitprep.my.conf
31 31
 rep/*
32 32
 !rep/.gitignore
33
+setup/log/*
34
+!setup/log/.gitignore
35
+setup/latest-build
36
+setup/work/*
37
+setup/build.log
+85 -17
README.md
... ...
@@ -5,22 +5,25 @@ Github clone. you can install portable github system into unix/linux.
5 5
 # Features
6 6
 
7 7
 * Github clone
8
+* Portable, you can install your unix/linux server
8 9
 * Perl 5.8.7+ only needed
10
+* CGI support
11
+* Having built-in web werver, Reverse Proxy support
9 12
 
10
-# Instllation into Shared Server (Linux or Unix/Apache/SuExec/CGI/PHP5)
13
+# Installation into Shared Server
11 14
 
12
-If you want to use GitPrep in Sahred Server,
13
-you can use it.
15
+Shared Server must support **Linux/Unix**, **Apache**, **SuExec**,
16
+**CGI**, and **PHP5(CGI mode)**.
14 17
 
15
-Sahred Server must support Linux/Unix, Apache, SuExec, CGI, PHP5.
16
-Many shared server support these,
17
-so you will find needed server easily.
18
+(PHP is not necessary, if PHP exists, install process is easy
19
+because you don't need to think about permission.)
18 20
 
19
-you also need git.
21
+Many shared server support these,
22
+so you will find sutable server easily.
20 23
 
21 24
 ## Download
22 25
 
23
-You donwload GitPrep.
26
+You donwload gitprep.
24 27
 
25 28
 https://github.com/yuki-kimoto/gitprep/archive/0.03.zip
26 29
 
... ...
@@ -32,7 +35,7 @@ Rename this gitprep-0.03 to gitprep.
32 35
 
33 36
     gitprep-0.03 -> gitprep
34 37
 
35
-## Add git command path
38
+## Configuration
36 39
 
37 40
 GitPrep need git command. you must install git by yourself.
38 41
 
... ...
@@ -52,7 +55,13 @@ Access the following URL by browser.
52 55
 
53 56
     http://(Your host name)/gitprep/setup/setup.php
54 57
 
55
-And click Setup button once and wail abount 5 minutes.
58
+(If you don't access PHP file or don't have PHP,
59
+you can use CGI script
60
+please set this CGI script permission to 755)
61
+
62
+    http://(Your host name)/gitprep/setup/setup.cgi.
63
+
64
+Click Setup button once and wait abount 5 minutes.
56 65
 
57 66
 ## Go to application
58 67
 
... ...
@@ -63,7 +72,13 @@ If you see result, click "Go to Application".
63 72
 If you see internal server error, you see gitprep/log/production.log.
64 73
 You know what error is happned.
65 74
 
66
-# Instllation into your Unix/Linux system
75
+# Instllation into own Unix/Linux Server
76
+
77
+Web DB Viewer have own web server,
78
+so you can execute application very easy.
79
+This is much better than above way
80
+because you don't need to setup Apache environment,
81
+and performance is much much better.
67 82
 
68 83
 ## Create gitprep user
69 84
 
... ...
@@ -79,14 +94,26 @@ Download tar.gz archive and exapand it and change directory.
79 94
 
80 95
     curl -kL https://github.com/yuki-kimoto/gitprep/archivegitprep-0.03.tar.gz > gitprep-0.03.tar.gz
81 96
     tar xf gitprep-0.03.tar.gz
82
-    cd gitprep-0.03
97
+    mv gitprep-0.03 gitprep
98
+    cd gitprep
83 99
 
84 100
 ## Setup
85 101
 
86 102
 You execute the following command. Needed moudles is installed.
87 103
 
88
-    perl cpanm -n -l extlib Module::CoreList
89
-    perl -Iextlib/lib/perl5 cpanm -n -L extlib --installdeps .
104
+    ./setup.sh
105
+
106
+## Test
107
+
108
+Do test to check setup process is success or not.
109
+
110
+    prove t
111
+
112
+If "All tests successful" is shown, setup process is success.
113
+
114
+## Configuration
115
+
116
+Same as Shared Server's Configuration section.
90 117
 
91 118
 ## Operation
92 119
 
... ...
@@ -102,6 +129,7 @@ You can access the following URL.
102 129
     http://localhost:10020
103 130
     
104 131
 If you change port, edit gitprep.conf.
132
+If you can't access this port, you might change firewall setting.
105 133
 
106 134
 ### Stop
107 135
 
... ...
@@ -112,16 +140,42 @@ You can stop application by **--stop** option.
112 140
 ### Operation by root user
113 141
 
114 142
 If you want to do operation by root user,
115
-you must do some works for security.
143
+you must do some configuration for security.
116 144
 
117
-You add **user** and **group** to **hypnotoad** section in **gitprep.conf**.
145
+You add **user** and **group** to **hypnotoad** section
146
+in **gitprep.conf** to execute not root user for security.
118 147
 
119 148
     [hypnotoad]
120 149
     ...
121 150
     user=gitprep
122 151
     group=gitprep
123 152
 
124
-### Developer
153
+Start application
154
+
155
+    /home/gitprep/gitprep/gitprep
156
+
157
+Stop application
158
+
159
+    /home/gitprep/gitprep/gitprep --stop
160
+
161
+If you want to start application when os start,
162
+add the start application command to **rc.local**(Linux).
163
+
164
+If you want to make easy to manage gitprep,
165
+Let's create run script in /usr/local/sbin.
166
+
167
+    /home/gitprep/gitprep/create_run_script > /usr/local/sbin/run_gitprep
168
+    chmod 755 /usr/local/sbin/run_gitprep
169
+
170
+You can start and stop application the following command.
171
+    
172
+    # Start/Restart
173
+    run_gitprep
174
+    
175
+    # Stop
176
+    run_gitprep --stop
177
+    
178
+## Developer
125 179
 
126 180
 If you are developer, you can start application development mode
127 181
 
... ...
@@ -130,3 +184,17 @@ If you are developer, you can start application development mode
130 184
 You can access the following URL.
131 185
       
132 186
     http://localhost:3000
187
+
188
+If you have git, it is easy to install from git.
189
+
190
+    git clone git://github.com/yuki-kimoto/gitprep.git
191
+
192
+It is useful to write configuration in ***gitprep.my.conf***
193
+, not gitprep.conf.
194
+
195
+## Copyright & license
196
+
197
+Copyright 2013-2013 Yuki Kimoto all rights reserved.
198
+
199
+This program is free software; you can redistribute it and/or modify it
200
+under the same terms as Perl itself.
+14
create_run_script
... ...
@@ -0,0 +1,14 @@
1
+#!/bin/env perl
2
+
3
+use strict;
4
+use warnings;
5
+use FindBin;
6
+
7
+my $app_path = "$FindBin::Bin/gitprep";
8
+
9
+my $script = <<"EOS";
10
+#!/bin/sh
11
+$app_path \$*
12
+EOS
13
+
14
+print $script;
-13
devel/css_color.txt
... ...
@@ -1,15 +0,0 @@
1
-# CSS color
2
-link blue:#4183C4
3
-backgroud gray:#F3F3F3
4
-Default Text black:#555;
5
-border color blue:#c5d5dd
6
-border color gray:#ccc
7
-background blue:#e6f1f6
8
-text shallow gray:#999;
9
-background dark-blue:#4183C4
10
-
11
-background gray2:#6c8393;
12
-border gray2 #586873;
13
-border sallow gray2 #d8dee2;
-10
devel/memo.txt
... ...
@@ -1,10 +0,0 @@
1
-# Create gitprep user and directory
2
-su -
3
-useradd gitprep
4
-mkdir /gitprep
5
-chown gitprep:gitprep /gitprep
6
-chmod 770 /gitprep
7
-
8
-# Add user to group
9
-usermod -G gitprep kimoto
10
-
+2 -2
gitprep
... ...
@@ -1,6 +1,6 @@
1 1
 #!/bin/sh
2 2
 
3 3
 DIR=$(dirname $0)
4
-PERL5LIB="$DIR/mojolegacy/lib:$DIR/extlib/lib/perl5"
4
+PERL5LIB="$DIR/mojo/lib:$DIR/extlib/lib/perl5"
5 5
 export PERL5LIB
6
-$DIR/mojolegacy/script/hypnotoad $DIR/script/gitprep "$*"
6
+$DIR/mojo/script/hypnotoad $* $DIR/script/gitprep
+4 -3
lib/Gitprep.pm
... ...
@@ -64,9 +64,10 @@ sub startup {
64 64
   $self->hook('before_dispatch' => sub {
65 65
     my $self = shift;
66 66
     
67
-    if ( $self->req->headers->header('X-Forwarded-Host')) {
68
-        my $prefix = shift @{$self->req->url->path->parts};
69
-        push @{$self->req->url->base->path->parts}, $prefix;
67
+    if ($self->req->headers->header('X-Forwarded-Host')) {
68
+      my $prefix = shift @{$self->req->url->path->parts};
69
+      push @{$self->req->url->base->path->parts}, $prefix
70
+        if defined $prefix;
70 71
     }
71 72
   });
72 73
   
mojolegacy/lib/Getopt/Long.pm → mojo/lib/Getopt/Long.pm
File renamed without changes.
mojolegacy/lib/Getopt/Std.pm → mojo/lib/Getopt/Std.pm
File renamed without changes.
mojolegacy/lib/Mojo.pm → mojo/lib/Mojo.pm
File renamed without changes.
mojolegacy/lib/Mojo/Asset.pm → mojo/lib/Mojo/Asset.pm
File renamed without changes.
mojolegacy/lib/Mojo/Asset/File.pm → mojo/lib/Mojo/Asset/File.pm
File renamed without changes.
mojolegacy/lib/Mojo/Asset/Memory.pm → mojo/lib/Mojo/Asset/Memory.pm
File renamed without changes.
mojolegacy/lib/Mojo/Base.pm → mojo/lib/Mojo/Base.pm
File renamed without changes.
mojolegacy/lib/Mojo/ByteStream.pm → mojo/lib/Mojo/ByteStream.pm
File renamed without changes.
mojolegacy/lib/Mojo/Cache.pm → mojo/lib/Mojo/Cache.pm
File renamed without changes.
mojolegacy/lib/Mojo/Collection.pm → mojo/lib/Mojo/Collection.pm
File renamed without changes.
mojolegacy/lib/Mojo/Content.pm → mojo/lib/Mojo/Content.pm
File renamed without changes.
mojolegacy/lib/Mojo/Content/MultiPart.pm → mojo/lib/Mojo/Content/MultiPart.pm
File renamed without changes.
mojolegacy/lib/Mojo/Content/Single.pm → mojo/lib/Mojo/Content/Single.pm
File renamed without changes.
mojolegacy/lib/Mojo/Cookie.pm → mojo/lib/Mojo/Cookie.pm
File renamed without changes.
mojolegacy/lib/Mojo/Cookie/Request.pm → mojo/lib/Mojo/Cookie/Request.pm
File renamed without changes.
mojolegacy/lib/Mojo/Cookie/Response.pm → mojo/lib/Mojo/Cookie/Response.pm
File renamed without changes.
mojolegacy/lib/Mojo/DOM.pm → mojo/lib/Mojo/DOM.pm
File renamed without changes.
mojolegacy/lib/Mojo/DOM/CSS.pm → mojo/lib/Mojo/DOM/CSS.pm
File renamed without changes.
mojolegacy/lib/Mojo/DOM/HTML.pm → mojo/lib/Mojo/DOM/HTML.pm
File renamed without changes.
mojolegacy/lib/Mojo/Date.pm → mojo/lib/Mojo/Date.pm
File renamed without changes.
mojolegacy/lib/Mojo/EventEmitter.pm → mojo/lib/Mojo/EventEmitter.pm
File renamed without changes.
mojolegacy/lib/Mojo/Exception.pm → mojo/lib/Mojo/Exception.pm
File renamed without changes.
mojolegacy/lib/Mojo/Headers.pm → mojo/lib/Mojo/Headers.pm
File renamed without changes.
mojolegacy/lib/Mojo/HelloWorld.pm → mojo/lib/Mojo/HelloWorld.pm
File renamed without changes.
mojolegacy/lib/Mojo/Home.pm → mojo/lib/Mojo/Home.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop.pm → mojo/lib/Mojo/IOLoop.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/Client.pm → mojo/lib/Mojo/IOLoop/Client.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/Delay.pm → mojo/lib/Mojo/IOLoop/Delay.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/Server.pm → mojo/lib/Mojo/IOLoop/Server.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/Stream.pm → mojo/lib/Mojo/IOLoop/Stream.pm
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/server.crt → mojo/lib/Mojo/IOLoop/server.crt
File renamed without changes.
mojolegacy/lib/Mojo/IOLoop/server.key → mojo/lib/Mojo/IOLoop/server.key
File renamed without changes.
mojolegacy/lib/Mojo/JSON.pm → mojo/lib/Mojo/JSON.pm
File renamed without changes.
mojolegacy/lib/Mojo/JSON/Pointer.pm → mojo/lib/Mojo/JSON/Pointer.pm
File renamed without changes.
mojolegacy/lib/Mojo/Loader.pm → mojo/lib/Mojo/Loader.pm
File renamed without changes.
mojolegacy/lib/Mojo/Log.pm → mojo/lib/Mojo/Log.pm
File renamed without changes.
mojolegacy/lib/Mojo/Message.pm → mojo/lib/Mojo/Message.pm
File renamed without changes.
mojolegacy/lib/Mojo/Message/Request.pm → mojo/lib/Mojo/Message/Request.pm
File renamed without changes.
mojolegacy/lib/Mojo/Message/Response.pm → mojo/lib/Mojo/Message/Response.pm
File renamed without changes.
mojolegacy/lib/Mojo/Parameters.pm → mojo/lib/Mojo/Parameters.pm
File renamed without changes.
mojolegacy/lib/Mojo/Path.pm → mojo/lib/Mojo/Path.pm
File renamed without changes.
mojolegacy/lib/Mojo/Reactor.pm → mojo/lib/Mojo/Reactor.pm
File renamed without changes.
mojolegacy/lib/Mojo/Reactor/EV.pm → mojo/lib/Mojo/Reactor/EV.pm
File renamed without changes.
mojolegacy/lib/Mojo/Reactor/Poll.pm → mojo/lib/Mojo/Reactor/Poll.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server.pm → mojo/lib/Mojo/Server.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/CGI.pm → mojo/lib/Mojo/Server/CGI.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/Daemon.pm → mojo/lib/Mojo/Server/Daemon.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/Hypnotoad.pm → mojo/lib/Mojo/Server/Hypnotoad.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/Morbo.pm → mojo/lib/Mojo/Server/Morbo.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/PSGI.pm → mojo/lib/Mojo/Server/PSGI.pm
File renamed without changes.
mojolegacy/lib/Mojo/Server/Prefork.pm → mojo/lib/Mojo/Server/Prefork.pm
File renamed without changes.
mojolegacy/lib/Mojo/Template.pm → mojo/lib/Mojo/Template.pm
File renamed without changes.
mojolegacy/lib/Mojo/Transaction.pm → mojo/lib/Mojo/Transaction.pm
File renamed without changes.
mojolegacy/lib/Mojo/Transaction/HTTP.pm → mojo/lib/Mojo/Transaction/HTTP.pm
File renamed without changes.
mojolegacy/lib/Mojo/Transaction/WebSocket.pm → mojo/lib/Mojo/Transaction/WebSocket.pm
File renamed without changes.
mojolegacy/lib/Mojo/URL.pm → mojo/lib/Mojo/URL.pm
File renamed without changes.
mojolegacy/lib/Mojo/Upload.pm → mojo/lib/Mojo/Upload.pm
File renamed without changes.
mojolegacy/lib/Mojo/UserAgent.pm → mojo/lib/Mojo/UserAgent.pm
File renamed without changes.
mojolegacy/lib/Mojo/UserAgent/CookieJar.pm → mojo/lib/Mojo/UserAgent/CookieJar.pm
File renamed without changes.
mojolegacy/lib/Mojo/UserAgent/Transactor.pm → mojo/lib/Mojo/UserAgent/Transactor.pm
File renamed without changes.
mojolegacy/lib/Mojo/Util.pm → mojo/lib/Mojo/Util.pm
File renamed without changes.
mojolegacy/lib/Mojo/entities.txt → mojo/lib/Mojo/entities.txt
File renamed without changes.
mojolegacy/lib/MojoLegacy/re.pm → mojo/lib/MojoLegacy/re.pm
File renamed without changes.
mojolegacy/lib/Mojolicious.pm → mojo/lib/Mojolicious.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command.pm → mojo/lib/Mojolicious/Command.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/cgi.pm → mojo/lib/Mojolicious/Command/cgi.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/cpanify.pm → mojo/lib/Mojolicious/Command/cpanify.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/daemon.pm → mojo/lib/Mojolicious/Command/daemon.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/eval.pm → mojo/lib/Mojolicious/Command/eval.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/generate.pm → mojo/lib/Mojolicious/Command/generate.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/generate/app.pm → mojo/lib/Mojolicious/Command/generate/app.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/generate/lite_app.pm → mojo/lib/Mojolicious/Command/generate/lite_app.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/generate/makefile.pm → mojo/lib/Mojolicious/Command/generate/makefile.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/generate/plugin.pm → mojo/lib/Mojolicious/Command/generate/plugin.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/get.pm → mojo/lib/Mojolicious/Command/get.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/inflate.pm → mojo/lib/Mojolicious/Command/inflate.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/prefork.pm → mojo/lib/Mojolicious/Command/prefork.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/psgi.pm → mojo/lib/Mojolicious/Command/psgi.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/routes.pm → mojo/lib/Mojolicious/Command/routes.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/test.pm → mojo/lib/Mojolicious/Command/test.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Command/version.pm → mojo/lib/Mojolicious/Command/version.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Commands.pm → mojo/lib/Mojolicious/Commands.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Controller.pm → mojo/lib/Mojolicious/Controller.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides.pod → mojo/lib/Mojolicious/Guides.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/Contributing.pod → mojo/lib/Mojolicious/Guides/Contributing.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/Cookbook.pod → mojo/lib/Mojolicious/Guides/Cookbook.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/FAQ.pod → mojo/lib/Mojolicious/Guides/FAQ.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/Growing.pod → mojo/lib/Mojolicious/Guides/Growing.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/Rendering.pod → mojo/lib/Mojolicious/Guides/Rendering.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Guides/Routing.pod → mojo/lib/Mojolicious/Guides/Routing.pod
File renamed without changes.
mojolegacy/lib/Mojolicious/Lite.pm → mojo/lib/Mojolicious/Lite.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin.pm → mojo/lib/Mojolicious/Plugin.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/Charset.pm → mojo/lib/Mojolicious/Plugin/Charset.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/Config.pm → mojo/lib/Mojolicious/Plugin/Config.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/DefaultHelpers.pm → mojo/lib/Mojolicious/Plugin/DefaultHelpers.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/EPLRenderer.pm → mojo/lib/Mojolicious/Plugin/EPLRenderer.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/EPRenderer.pm → mojo/lib/Mojolicious/Plugin/EPRenderer.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/HeaderCondition.pm → mojo/lib/Mojolicious/Plugin/HeaderCondition.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/INIConfig.pm → mojo/lib/Mojolicious/Plugin/INIConfig.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/JSONConfig.pm → mojo/lib/Mojolicious/Plugin/JSONConfig.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/Mount.pm → mojo/lib/Mojolicious/Plugin/Mount.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/PODRenderer.pm → mojo/lib/Mojolicious/Plugin/PODRenderer.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/PoweredBy.pm → mojo/lib/Mojolicious/Plugin/PoweredBy.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/RequestTimer.pm → mojo/lib/Mojolicious/Plugin/RequestTimer.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugin/TagHelpers.pm → mojo/lib/Mojolicious/Plugin/TagHelpers.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Plugins.pm → mojo/lib/Mojolicious/Plugins.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Renderer.pm → mojo/lib/Mojolicious/Renderer.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Routes.pm → mojo/lib/Mojolicious/Routes.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Routes/Match.pm → mojo/lib/Mojolicious/Routes/Match.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Routes/Pattern.pm → mojo/lib/Mojolicious/Routes/Pattern.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Routes/Route.pm → mojo/lib/Mojolicious/Routes/Route.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Sessions.pm → mojo/lib/Mojolicious/Sessions.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Static.pm → mojo/lib/Mojolicious/Static.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/Types.pm → mojo/lib/Mojolicious/Types.pm
File renamed without changes.
mojolegacy/lib/Mojolicious/public/css/prettify-mojo.css → mojo/lib/Mojolicious/public/css/prettify-mojo.css
File renamed without changes.
mojolegacy/lib/Mojolicious/public/css/prettify.css → mojo/lib/Mojolicious/public/css/prettify.css
File renamed without changes.
mojolegacy/lib/Mojolicious/public/favicon.ico → mojo/lib/Mojolicious/public/favicon.ico
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/jquery.js → mojo/lib/Mojolicious/public/js/jquery.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-apollo.js → mojo/lib/Mojolicious/public/js/lang-apollo.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-clj.js → mojo/lib/Mojolicious/public/js/lang-clj.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-css.js → mojo/lib/Mojolicious/public/js/lang-css.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-go.js → mojo/lib/Mojolicious/public/js/lang-go.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-hs.js → mojo/lib/Mojolicious/public/js/lang-hs.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-lisp.js → mojo/lib/Mojolicious/public/js/lang-lisp.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-lua.js → mojo/lib/Mojolicious/public/js/lang-lua.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-ml.js → mojo/lib/Mojolicious/public/js/lang-ml.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-n.js → mojo/lib/Mojolicious/public/js/lang-n.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-proto.js → mojo/lib/Mojolicious/public/js/lang-proto.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-scala.js → mojo/lib/Mojolicious/public/js/lang-scala.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-sql.js → mojo/lib/Mojolicious/public/js/lang-sql.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-tex.js → mojo/lib/Mojolicious/public/js/lang-tex.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-vb.js → mojo/lib/Mojolicious/public/js/lang-vb.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-vhdl.js → mojo/lib/Mojolicious/public/js/lang-vhdl.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-wiki.js → mojo/lib/Mojolicious/public/js/lang-wiki.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-xq.js → mojo/lib/Mojolicious/public/js/lang-xq.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/lang-yaml.js → mojo/lib/Mojolicious/public/js/lang-yaml.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/js/prettify.js → mojo/lib/Mojolicious/public/js/prettify.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/failraptor.png → mojo/lib/Mojolicious/public/mojo/failraptor.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/jquery/jquery.js → mojo/lib/Mojolicious/public/mojo/jquery/jquery.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/logo-black.png → mojo/lib/Mojolicious/public/mojo/logo-black.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/logo-white.png → mojo/lib/Mojolicious/public/mojo/logo-white.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/noraptor.png → mojo/lib/Mojolicious/public/mojo/noraptor.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/notfound.png → mojo/lib/Mojolicious/public/mojo/notfound.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/pinstripe.gif → mojo/lib/Mojolicious/public/mojo/pinstripe.gif
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-apollo.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-apollo.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-clj.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-clj.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-css.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-css.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-go.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-go.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-hs.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-hs.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-lisp.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-lisp.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-lua.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-lua.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-ml.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-ml.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-n.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-n.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-proto.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-proto.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-scala.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-scala.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-sql.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-sql.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-tex.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-tex.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-vb.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-vb.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-vhdl.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-vhdl.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-wiki.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-wiki.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-xq.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-xq.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/lang-yaml.js → mojo/lib/Mojolicious/public/mojo/prettify/lang-yaml.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/prettify-mojo.css → mojo/lib/Mojolicious/public/mojo/prettify/prettify-mojo.css
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/prettify.css → mojo/lib/Mojolicious/public/mojo/prettify/prettify.css
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojo/prettify/prettify.js → mojo/lib/Mojolicious/public/mojo/prettify/prettify.js
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-black.png → mojo/lib/Mojolicious/public/mojolicious-black.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-failraptor.png → mojo/lib/Mojolicious/public/mojolicious-failraptor.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-noraptor.png → mojo/lib/Mojolicious/public/mojolicious-noraptor.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-notfound.png → mojo/lib/Mojolicious/public/mojolicious-notfound.png
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-pinstripe.gif → mojo/lib/Mojolicious/public/mojolicious-pinstripe.gif
File renamed without changes.
mojolegacy/lib/Mojolicious/public/mojolicious-white.png → mojo/lib/Mojolicious/public/mojolicious-white.png
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/exception.development.html.ep → mojo/lib/Mojolicious/templates/exception.development.html.ep
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/exception.html.ep → mojo/lib/Mojolicious/templates/exception.html.ep
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/mojobar.html.ep → mojo/lib/Mojolicious/templates/mojobar.html.ep
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/not_found.development.html.ep → mojo/lib/Mojolicious/templates/not_found.development.html.ep
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/not_found.html.ep → mojo/lib/Mojolicious/templates/not_found.html.ep
File renamed without changes.
mojolegacy/lib/Mojolicious/templates/perldoc.html.ep → mojo/lib/Mojolicious/templates/perldoc.html.ep
File renamed without changes.
mojolegacy/lib/Test/Mojo.pm → mojo/lib/Test/Mojo.pm
File renamed without changes.
mojolegacy/lib/ojo.pm → mojo/lib/ojo.pm
File renamed without changes.
mojolegacy/script/hypnotoad → mojo/script/hypnotoad
File renamed without changes.
mojolegacy/script/mojo → mojo/script/mojo
File renamed without changes.
mojolegacy/script/morbo → mojo/script/morbo
File renamed without changes.
+2 -2
morbo
... ...
@@ -1,6 +1,6 @@
1 1
 #!/bin/sh
2 2
 
3 3
 DIR=$(dirname $0)
4
-PERL5LIB="$DIR/mojolegacy/lib:$DIR/extlib/lib/perl5"
4
+PERL5LIB="$DIR/mojo/lib:$DIR/extlib/lib/perl5"
5 5
 export PERL5LIB
6
-$DIR/mojolegacy/script/morbo $DIR/script/gitprep "$*"
6
+$DIR/mojo/script/morbo $* $DIR/script/gitprep 
+2 -2
script/gitprep.cgi
... ...
@@ -12,10 +12,10 @@ BEGIN {
12 12
   my $base_dir_name = $script_name;
13 13
   $base_dir_name =~ s/\.cgi$//;
14 14
   my @base_dir = (splitdir(dirname __FILE__), $base_dir_name);
15
-  my $mojolegacy = join('/', @base_dir, 'mojolegacy', 'lib');
15
+  my $mojo_lib = join('/', @base_dir, 'mojo', 'lib');
16 16
   my $lib = join('/', @base_dir, 'lib');
17 17
   my $extlib = join('/', @base_dir, 'extlib', 'lib', 'perl5');
18
-  eval 'use lib $mojolegacy, $extlib, $lib';
18
+  eval 'use lib $mojo_lib, $extlib, $lib';
19 19
   croak $@ if $@;
20 20
 }
21 21
 
+3
setup.sh
... ...
@@ -0,0 +1,3 @@
1
+#!/bin/sh
2
+perl cpanm -n -l extlib Module::CoreList
3
+perl -Iextlib/lib/perl5 cpanm -n -L extlib --installdeps .
setup/log/.gitignore
No changes.
+1109
setup/public/css/bootstrap-responsive.css
... ...
@@ -0,0 +1,1109 @@
1
+/*!
2
+ * Bootstrap Responsive v2.3.1
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ */
10
+
11
+.clearfix {
12
+  *zoom: 1;
13
+}
14
+
15
+.clearfix:before,
16
+.clearfix:after {
17
+  display: table;
18
+  line-height: 0;
19
+  content: "";
20
+}
21
+
22
+.clearfix:after {
23
+  clear: both;
24
+}
25
+
26
+.hide-text {
27
+  font: 0/0 a;
28
+  color: transparent;
29
+  text-shadow: none;
30
+  background-color: transparent;
31
+  border: 0;
32
+}
33
+
34
+.input-block-level {
35
+  display: block;
36
+  width: 100%;
37
+  min-height: 30px;
38
+  -webkit-box-sizing: border-box;
39
+     -moz-box-sizing: border-box;
40
+          box-sizing: border-box;
41
+}
42
+
43
+@-ms-viewport {
44
+  width: device-width;
45
+}
46
+
47
+.hidden {
48
+  display: none;
49
+  visibility: hidden;
50
+}
51
+
52
+.visible-phone {
53
+  display: none !important;
54
+}
55
+
56
+.visible-tablet {
57
+  display: none !important;
58
+}
59
+
60
+.hidden-desktop {
61
+  display: none !important;
62
+}
63
+
64
+.visible-desktop {
65
+  display: inherit !important;
66
+}
67
+
68
+@media (min-width: 768px) and (max-width: 979px) {
69
+  .hidden-desktop {
70
+    display: inherit !important;
71
+  }
72
+  .visible-desktop {
73
+    display: none !important ;
74
+  }
75
+  .visible-tablet {
76
+    display: inherit !important;
77
+  }
78
+  .hidden-tablet {
79
+    display: none !important;
80
+  }
81
+}
82
+
83
+@media (max-width: 767px) {
84
+  .hidden-desktop {
85
+    display: inherit !important;
86
+  }
87
+  .visible-desktop {
88
+    display: none !important;
89
+  }
90
+  .visible-phone {
91
+    display: inherit !important;
92
+  }
93
+  .hidden-phone {
94
+    display: none !important;
95
+  }
96
+}
97
+
98
+.visible-print {
99
+  display: none !important;
100
+}
101
+
102
+@media print {
103
+  .visible-print {
104
+    display: inherit !important;
105
+  }
106
+  .hidden-print {
107
+    display: none !important;
108
+  }
109
+}
110
+
111
+@media (min-width: 1200px) {
112
+  .row {
113
+    margin-left: -30px;
114
+    *zoom: 1;
115
+  }
116
+  .row:before,
117
+  .row:after {
118
+    display: table;
119
+    line-height: 0;
120
+    content: "";
121
+  }
122
+  .row:after {
123
+    clear: both;
124
+  }
125
+  [class*="span"] {
126
+    float: left;
127
+    min-height: 1px;
128
+    margin-left: 30px;
129
+  }
130
+  .container,
131
+  .navbar-static-top .container,
132
+  .navbar-fixed-top .container,
133
+  .navbar-fixed-bottom .container {
134
+    width: 1170px;
135
+  }
136
+  .span12 {
137
+    width: 1170px;
138
+  }
139
+  .span11 {
140
+    width: 1070px;
141
+  }
142
+  .span10 {
143
+    width: 970px;
144
+  }
145
+  .span9 {
146
+    width: 870px;
147
+  }
148
+  .span8 {
149
+    width: 770px;
150
+  }
151
+  .span7 {
152
+    width: 670px;
153
+  }
154
+  .span6 {
155
+    width: 570px;
156
+  }
157
+  .span5 {
158
+    width: 470px;
159
+  }
160
+  .span4 {
161
+    width: 370px;
162
+  }
163
+  .span3 {
164
+    width: 270px;
165
+  }
166
+  .span2 {
167
+    width: 170px;
168
+  }
169
+  .span1 {
170
+    width: 70px;
171
+  }
172
+  .offset12 {
173
+    margin-left: 1230px;
174
+  }
175
+  .offset11 {
176
+    margin-left: 1130px;
177
+  }
178
+  .offset10 {
179
+    margin-left: 1030px;
180
+  }
181
+  .offset9 {
182
+    margin-left: 930px;
183
+  }
184
+  .offset8 {
185
+    margin-left: 830px;
186
+  }
187
+  .offset7 {
188
+    margin-left: 730px;
189
+  }
190
+  .offset6 {
191
+    margin-left: 630px;
192
+  }
193
+  .offset5 {
194
+    margin-left: 530px;
195
+  }
196
+  .offset4 {
197
+    margin-left: 430px;
198
+  }
199
+  .offset3 {
200
+    margin-left: 330px;
201
+  }
202
+  .offset2 {
203
+    margin-left: 230px;
204
+  }
205
+  .offset1 {
206
+    margin-left: 130px;
207
+  }
208
+  .row-fluid {
209
+    width: 100%;
210
+    *zoom: 1;
211
+  }
212
+  .row-fluid:before,
213
+  .row-fluid:after {
214
+    display: table;
215
+    line-height: 0;
216
+    content: "";
217
+  }
218
+  .row-fluid:after {
219
+    clear: both;
220
+  }
221
+  .row-fluid [class*="span"] {
222
+    display: block;
223
+    float: left;
224
+    width: 100%;
225
+    min-height: 30px;
226
+    margin-left: 2.564102564102564%;
227
+    *margin-left: 2.5109110747408616%;
228
+    -webkit-box-sizing: border-box;
229
+       -moz-box-sizing: border-box;
230
+            box-sizing: border-box;
231
+  }
232
+  .row-fluid [class*="span"]:first-child {
233
+    margin-left: 0;
234
+  }
235
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
236
+    margin-left: 2.564102564102564%;
237
+  }
238
+  .row-fluid .span12 {
239
+    width: 100%;
240
+    *width: 99.94680851063829%;
241
+  }
242
+  .row-fluid .span11 {
243
+    width: 91.45299145299145%;
244
+    *width: 91.39979996362975%;
245
+  }
246
+  .row-fluid .span10 {
247
+    width: 82.90598290598291%;
248
+    *width: 82.8527914166212%;
249
+  }
250
+  .row-fluid .span9 {
251
+    width: 74.35897435897436%;
252
+    *width: 74.30578286961266%;
253
+  }
254
+  .row-fluid .span8 {
255
+    width: 65.81196581196582%;
256
+    *width: 65.75877432260411%;
257
+  }
258
+  .row-fluid .span7 {
259
+    width: 57.26495726495726%;
260
+    *width: 57.21176577559556%;
261
+  }
262
+  .row-fluid .span6 {
263
+    width: 48.717948717948715%;
264
+    *width: 48.664757228587014%;
265
+  }
266
+  .row-fluid .span5 {
267
+    width: 40.17094017094017%;
268
+    *width: 40.11774868157847%;
269
+  }
270
+  .row-fluid .span4 {
271
+    width: 31.623931623931625%;
272
+    *width: 31.570740134569924%;
273
+  }
274
+  .row-fluid .span3 {
275
+    width: 23.076923076923077%;
276
+    *width: 23.023731587561375%;
277
+  }
278
+  .row-fluid .span2 {
279
+    width: 14.52991452991453%;
280
+    *width: 14.476723040552828%;
281
+  }
282
+  .row-fluid .span1 {
283
+    width: 5.982905982905983%;
284
+    *width: 5.929714493544281%;
285
+  }
286
+  .row-fluid .offset12 {
287
+    margin-left: 105.12820512820512%;
288
+    *margin-left: 105.02182214948171%;
289
+  }
290
+  .row-fluid .offset12:first-child {
291
+    margin-left: 102.56410256410257%;
292
+    *margin-left: 102.45771958537915%;
293
+  }
294
+  .row-fluid .offset11 {
295
+    margin-left: 96.58119658119658%;
296
+    *margin-left: 96.47481360247316%;
297
+  }
298
+  .row-fluid .offset11:first-child {
299
+    margin-left: 94.01709401709402%;
300
+    *margin-left: 93.91071103837061%;
301
+  }
302
+  .row-fluid .offset10 {
303
+    margin-left: 88.03418803418803%;
304
+    *margin-left: 87.92780505546462%;
305
+  }
306
+  .row-fluid .offset10:first-child {
307
+    margin-left: 85.47008547008548%;
308
+    *margin-left: 85.36370249136206%;
309
+  }
310
+  .row-fluid .offset9 {
311
+    margin-left: 79.48717948717949%;
312
+    *margin-left: 79.38079650845607%;
313
+  }
314
+  .row-fluid .offset9:first-child {
315
+    margin-left: 76.92307692307693%;
316
+    *margin-left: 76.81669394435352%;
317
+  }
318
+  .row-fluid .offset8 {
319
+    margin-left: 70.94017094017094%;
320
+    *margin-left: 70.83378796144753%;
321
+  }
322
+  .row-fluid .offset8:first-child {
323
+    margin-left: 68.37606837606839%;
324
+    *margin-left: 68.26968539734497%;
325
+  }
326
+  .row-fluid .offset7 {
327
+    margin-left: 62.393162393162385%;
328
+    *margin-left: 62.28677941443899%;
329
+  }
330
+  .row-fluid .offset7:first-child {
331
+    margin-left: 59.82905982905982%;
332
+    *margin-left: 59.72267685033642%;
333
+  }
334
+  .row-fluid .offset6 {
335
+    margin-left: 53.84615384615384%;
336
+    *margin-left: 53.739770867430444%;
337
+  }
338
+  .row-fluid .offset6:first-child {
339
+    margin-left: 51.28205128205128%;
340
+    *margin-left: 51.175668303327875%;
341
+  }
342
+  .row-fluid .offset5 {
343
+    margin-left: 45.299145299145295%;
344
+    *margin-left: 45.1927623204219%;
345
+  }
346
+  .row-fluid .offset5:first-child {
347
+    margin-left: 42.73504273504273%;
348
+    *margin-left: 42.62865975631933%;
349
+  }
350
+  .row-fluid .offset4 {
351
+    margin-left: 36.75213675213675%;
352
+    *margin-left: 36.645753773413354%;
353
+  }
354
+  .row-fluid .offset4:first-child {
355
+    margin-left: 34.18803418803419%;
356
+    *margin-left: 34.081651209310785%;
357
+  }
358
+  .row-fluid .offset3 {
359
+    margin-left: 28.205128205128204%;
360
+    *margin-left: 28.0987452264048%;
361
+  }
362
+  .row-fluid .offset3:first-child {
363
+    margin-left: 25.641025641025642%;
364
+    *margin-left: 25.53464266230224%;
365
+  }
366
+  .row-fluid .offset2 {
367
+    margin-left: 19.65811965811966%;
368
+    *margin-left: 19.551736679396257%;
369
+  }
370
+  .row-fluid .offset2:first-child {
371
+    margin-left: 17.094017094017094%;
372
+    *margin-left: 16.98763411529369%;
373
+  }
374
+  .row-fluid .offset1 {
375
+    margin-left: 11.11111111111111%;
376
+    *margin-left: 11.004728132387708%;
377
+  }
378
+  .row-fluid .offset1:first-child {
379
+    margin-left: 8.547008547008547%;
380
+    *margin-left: 8.440625568285142%;
381
+  }
382
+  input,
383
+  textarea,
384
+  .uneditable-input {
385
+    margin-left: 0;
386
+  }
387
+  .controls-row [class*="span"] + [class*="span"] {
388
+    margin-left: 30px;
389
+  }
390
+  input.span12,
391
+  textarea.span12,
392
+  .uneditable-input.span12 {
393
+    width: 1156px;
394
+  }
395
+  input.span11,
396
+  textarea.span11,
397
+  .uneditable-input.span11 {
398
+    width: 1056px;
399
+  }
400
+  input.span10,
401
+  textarea.span10,
402
+  .uneditable-input.span10 {
403
+    width: 956px;
404
+  }
405
+  input.span9,
406
+  textarea.span9,
407
+  .uneditable-input.span9 {
408
+    width: 856px;
409
+  }
410
+  input.span8,
411
+  textarea.span8,
412
+  .uneditable-input.span8 {
413
+    width: 756px;
414
+  }
415
+  input.span7,
416
+  textarea.span7,
417
+  .uneditable-input.span7 {
418
+    width: 656px;
419
+  }
420
+  input.span6,
421
+  textarea.span6,
422
+  .uneditable-input.span6 {
423
+    width: 556px;
424
+  }
425
+  input.span5,
426
+  textarea.span5,
427
+  .uneditable-input.span5 {
428
+    width: 456px;
429
+  }
430
+  input.span4,
431
+  textarea.span4,
432
+  .uneditable-input.span4 {
433
+    width: 356px;
434
+  }
435
+  input.span3,
436
+  textarea.span3,
437
+  .uneditable-input.span3 {
438
+    width: 256px;
439
+  }
440
+  input.span2,
441
+  textarea.span2,
442
+  .uneditable-input.span2 {
443
+    width: 156px;
444
+  }
445
+  input.span1,
446
+  textarea.span1,
447
+  .uneditable-input.span1 {
448
+    width: 56px;
449
+  }
450
+  .thumbnails {
451
+    margin-left: -30px;
452
+  }
453
+  .thumbnails > li {
454
+    margin-left: 30px;
455
+  }
456
+  .row-fluid .thumbnails {
457
+    margin-left: 0;
458
+  }
459
+}
460
+
461
+@media (min-width: 768px) and (max-width: 979px) {
462
+  .row {
463
+    margin-left: -20px;
464
+    *zoom: 1;
465
+  }
466
+  .row:before,
467
+  .row:after {
468
+    display: table;
469
+    line-height: 0;
470
+    content: "";
471
+  }
472
+  .row:after {
473
+    clear: both;
474
+  }
475
+  [class*="span"] {
476
+    float: left;
477
+    min-height: 1px;
478
+    margin-left: 20px;
479
+  }
480
+  .container,
481
+  .navbar-static-top .container,
482
+  .navbar-fixed-top .container,
483
+  .navbar-fixed-bottom .container {
484
+    width: 724px;
485
+  }
486
+  .span12 {
487
+    width: 724px;
488
+  }
489
+  .span11 {
490
+    width: 662px;
491
+  }
492
+  .span10 {
493
+    width: 600px;
494
+  }
495
+  .span9 {
496
+    width: 538px;
497
+  }
498
+  .span8 {
499
+    width: 476px;
500
+  }
501
+  .span7 {
502
+    width: 414px;
503
+  }
504
+  .span6 {
505
+    width: 352px;
506
+  }
507
+  .span5 {
508
+    width: 290px;
509
+  }
510
+  .span4 {
511
+    width: 228px;
512
+  }
513
+  .span3 {
514
+    width: 166px;
515
+  }
516
+  .span2 {
517
+    width: 104px;
518
+  }
519
+  .span1 {
520
+    width: 42px;
521
+  }
522
+  .offset12 {
523
+    margin-left: 764px;
524
+  }
525
+  .offset11 {
526
+    margin-left: 702px;
527
+  }
528
+  .offset10 {
529
+    margin-left: 640px;
530
+  }
531
+  .offset9 {
532
+    margin-left: 578px;
533
+  }
534
+  .offset8 {
535
+    margin-left: 516px;
536
+  }
537
+  .offset7 {
538
+    margin-left: 454px;
539
+  }
540
+  .offset6 {
541
+    margin-left: 392px;
542
+  }
543
+  .offset5 {
544
+    margin-left: 330px;
545
+  }
546
+  .offset4 {
547
+    margin-left: 268px;
548
+  }
549
+  .offset3 {
550
+    margin-left: 206px;
551
+  }
552
+  .offset2 {
553
+    margin-left: 144px;
554
+  }
555
+  .offset1 {
556
+    margin-left: 82px;
557
+  }
558
+  .row-fluid {
559
+    width: 100%;
560
+    *zoom: 1;
561
+  }
562
+  .row-fluid:before,
563
+  .row-fluid:after {
564
+    display: table;
565
+    line-height: 0;
566
+    content: "";
567
+  }
568
+  .row-fluid:after {
569
+    clear: both;
570
+  }
571
+  .row-fluid [class*="span"] {
572
+    display: block;
573
+    float: left;
574
+    width: 100%;
575
+    min-height: 30px;
576
+    margin-left: 2.7624309392265194%;
577
+    *margin-left: 2.709239449864817%;
578
+    -webkit-box-sizing: border-box;
579
+       -moz-box-sizing: border-box;
580
+            box-sizing: border-box;
581
+  }
582
+  .row-fluid [class*="span"]:first-child {
583
+    margin-left: 0;
584
+  }
585
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
586
+    margin-left: 2.7624309392265194%;
587
+  }
588
+  .row-fluid .span12 {
589
+    width: 100%;
590
+    *width: 99.94680851063829%;
591
+  }
592
+  .row-fluid .span11 {
593
+    width: 91.43646408839778%;
594
+    *width: 91.38327259903608%;
595
+  }
596
+  .row-fluid .span10 {
597
+    width: 82.87292817679558%;
598
+    *width: 82.81973668743387%;
599
+  }
600
+  .row-fluid .span9 {
601
+    width: 74.30939226519337%;
602
+    *width: 74.25620077583166%;
603
+  }
604
+  .row-fluid .span8 {
605
+    width: 65.74585635359117%;
606
+    *width: 65.69266486422946%;
607
+  }
608
+  .row-fluid .span7 {
609
+    width: 57.18232044198895%;
610
+    *width: 57.12912895262725%;
611
+  }
612
+  .row-fluid .span6 {
613
+    width: 48.61878453038674%;
614
+    *width: 48.56559304102504%;
615
+  }
616
+  .row-fluid .span5 {
617
+    width: 40.05524861878453%;
618
+    *width: 40.00205712942283%;
619
+  }
620
+  .row-fluid .span4 {
621
+    width: 31.491712707182323%;
622
+    *width: 31.43852121782062%;
623
+  }
624
+  .row-fluid .span3 {
625
+    width: 22.92817679558011%;
626
+    *width: 22.87498530621841%;
627
+  }
628
+  .row-fluid .span2 {
629
+    width: 14.3646408839779%;
630
+    *width: 14.311449394616199%;
631
+  }
632
+  .row-fluid .span1 {
633
+    width: 5.801104972375691%;
634
+    *width: 5.747913483013988%;
635
+  }
636
+  .row-fluid .offset12 {
637
+    margin-left: 105.52486187845304%;
638
+    *margin-left: 105.41847889972962%;
639
+  }
640
+  .row-fluid .offset12:first-child {
641
+    margin-left: 102.76243093922652%;
642
+    *margin-left: 102.6560479605031%;
643
+  }
644
+  .row-fluid .offset11 {
645
+    margin-left: 96.96132596685082%;
646
+    *margin-left: 96.8549429881274%;
647
+  }
648
+  .row-fluid .offset11:first-child {
649
+    margin-left: 94.1988950276243%;
650
+    *margin-left: 94.09251204890089%;
651
+  }
652
+  .row-fluid .offset10 {
653
+    margin-left: 88.39779005524862%;
654
+    *margin-left: 88.2914070765252%;
655
+  }
656
+  .row-fluid .offset10:first-child {
657
+    margin-left: 85.6353591160221%;
658
+    *margin-left: 85.52897613729868%;
659
+  }
660
+  .row-fluid .offset9 {
661
+    margin-left: 79.8342541436464%;
662
+    *margin-left: 79.72787116492299%;
663
+  }
664
+  .row-fluid .offset9:first-child {
665
+    margin-left: 77.07182320441989%;
666
+    *margin-left: 76.96544022569647%;
667
+  }
668
+  .row-fluid .offset8 {
669
+    margin-left: 71.2707182320442%;
670
+    *margin-left: 71.16433525332079%;
671
+  }
672
+  .row-fluid .offset8:first-child {
673
+    margin-left: 68.50828729281768%;
674
+    *margin-left: 68.40190431409427%;
675
+  }
676
+  .row-fluid .offset7 {
677
+    margin-left: 62.70718232044199%;
678
+    *margin-left: 62.600799341718584%;
679
+  }
680
+  .row-fluid .offset7:first-child {
681
+    margin-left: 59.94475138121547%;
682
+    *margin-left: 59.838368402492065%;
683
+  }
684
+  .row-fluid .offset6 {
685
+    margin-left: 54.14364640883978%;
686
+    *margin-left: 54.037263430116376%;
687
+  }
688
+  .row-fluid .offset6:first-child {
689
+    margin-left: 51.38121546961326%;
690
+    *margin-left: 51.27483249088986%;
691
+  }
692
+  .row-fluid .offset5 {
693
+    margin-left: 45.58011049723757%;
694
+    *margin-left: 45.47372751851417%;
695
+  }
696
+  .row-fluid .offset5:first-child {
697
+    margin-left: 42.81767955801105%;
698
+    *margin-left: 42.71129657928765%;
699
+  }
700
+  .row-fluid .offset4 {
701
+    margin-left: 37.01657458563536%;
702
+    *margin-left: 36.91019160691196%;
703
+  }
704
+  .row-fluid .offset4:first-child {
705
+    margin-left: 34.25414364640884%;
706
+    *margin-left: 34.14776066768544%;
707
+  }
708
+  .row-fluid .offset3 {
709
+    margin-left: 28.45303867403315%;
710
+    *margin-left: 28.346655695309746%;
711
+  }
712
+  .row-fluid .offset3:first-child {
713
+    margin-left: 25.69060773480663%;
714
+    *margin-left: 25.584224756083227%;
715
+  }
716
+  .row-fluid .offset2 {
717
+    margin-left: 19.88950276243094%;
718
+    *margin-left: 19.783119783707537%;
719
+  }
720
+  .row-fluid .offset2:first-child {
721
+    margin-left: 17.12707182320442%;
722
+    *margin-left: 17.02068884448102%;
723
+  }
724
+  .row-fluid .offset1 {
725
+    margin-left: 11.32596685082873%;
726
+    *margin-left: 11.219583872105325%;
727
+  }
728
+  .row-fluid .offset1:first-child {
729
+    margin-left: 8.56353591160221%;
730
+    *margin-left: 8.457152932878806%;
731
+  }
732
+  input,
733
+  textarea,
734
+  .uneditable-input {
735
+    margin-left: 0;
736
+  }
737
+  .controls-row [class*="span"] + [class*="span"] {
738
+    margin-left: 20px;
739
+  }
740
+  input.span12,
741
+  textarea.span12,
742
+  .uneditable-input.span12 {
743
+    width: 710px;
744
+  }
745
+  input.span11,
746
+  textarea.span11,
747
+  .uneditable-input.span11 {
748
+    width: 648px;
749
+  }
750
+  input.span10,
751
+  textarea.span10,
752
+  .uneditable-input.span10 {
753
+    width: 586px;
754
+  }
755
+  input.span9,
756
+  textarea.span9,
757
+  .uneditable-input.span9 {
758
+    width: 524px;
759
+  }
760
+  input.span8,
761
+  textarea.span8,
762
+  .uneditable-input.span8 {
763
+    width: 462px;
764
+  }
765
+  input.span7,
766
+  textarea.span7,
767
+  .uneditable-input.span7 {
768
+    width: 400px;
769
+  }
770
+  input.span6,
771
+  textarea.span6,
772
+  .uneditable-input.span6 {
773
+    width: 338px;
774
+  }
775
+  input.span5,
776
+  textarea.span5,
777
+  .uneditable-input.span5 {
778
+    width: 276px;
779
+  }
780
+  input.span4,
781
+  textarea.span4,
782
+  .uneditable-input.span4 {
783
+    width: 214px;
784
+  }
785
+  input.span3,
786
+  textarea.span3,
787
+  .uneditable-input.span3 {
788
+    width: 152px;
789
+  }
790
+  input.span2,
791
+  textarea.span2,
792
+  .uneditable-input.span2 {
793
+    width: 90px;
794
+  }
795
+  input.span1,
796
+  textarea.span1,
797
+  .uneditable-input.span1 {
798
+    width: 28px;
799
+  }
800
+}
801
+
802
+@media (max-width: 767px) {
803
+  body {
804
+    padding-right: 20px;
805
+    padding-left: 20px;
806
+  }
807
+  .navbar-fixed-top,
808
+  .navbar-fixed-bottom,
809
+  .navbar-static-top {
810
+    margin-right: -20px;
811
+    margin-left: -20px;
812
+  }
813
+  .container-fluid {
814
+    padding: 0;
815
+  }
816
+  .dl-horizontal dt {
817
+    float: none;
818
+    width: auto;
819
+    clear: none;
820
+    text-align: left;
821
+  }
822
+  .dl-horizontal dd {
823
+    margin-left: 0;
824
+  }
825
+  .container {
826
+    width: auto;
827
+  }
828
+  .row-fluid {
829
+    width: 100%;
830
+  }
831
+  .row,
832
+  .thumbnails {
833
+    margin-left: 0;
834
+  }
835
+  .thumbnails > li {
836
+    float: none;
837
+    margin-left: 0;
838
+  }
839
+  [class*="span"],
840
+  .uneditable-input[class*="span"],
841
+  .row-fluid [class*="span"] {
842
+    display: block;
843
+    float: none;
844
+    width: 100%;
845
+    margin-left: 0;
846
+    -webkit-box-sizing: border-box;
847
+       -moz-box-sizing: border-box;
848
+            box-sizing: border-box;
849
+  }
850
+  .span12,
851
+  .row-fluid .span12 {
852
+    width: 100%;
853
+    -webkit-box-sizing: border-box;
854
+       -moz-box-sizing: border-box;
855
+            box-sizing: border-box;
856
+  }
857
+  .row-fluid [class*="offset"]:first-child {
858
+    margin-left: 0;
859
+  }
860
+  .input-large,
861
+  .input-xlarge,
862
+  .input-xxlarge,
863
+  input[class*="span"],
864
+  select[class*="span"],
865
+  textarea[class*="span"],
866
+  .uneditable-input {
867
+    display: block;
868
+    width: 100%;
869
+    min-height: 30px;
870
+    -webkit-box-sizing: border-box;
871
+       -moz-box-sizing: border-box;
872
+            box-sizing: border-box;
873
+  }
874
+  .input-prepend input,
875
+  .input-append input,
876
+  .input-prepend input[class*="span"],
877
+  .input-append input[class*="span"] {
878
+    display: inline-block;
879
+    width: auto;
880
+  }
881
+  .controls-row [class*="span"] + [class*="span"] {
882
+    margin-left: 0;
883
+  }
884
+  .modal {
885
+    position: fixed;
886
+    top: 20px;
887
+    right: 20px;
888
+    left: 20px;
889
+    width: auto;
890
+    margin: 0;
891
+  }
892
+  .modal.fade {
893
+    top: -100px;
894
+  }
895
+  .modal.fade.in {
896
+    top: 20px;
897
+  }
898
+}
899
+
900
+@media (max-width: 480px) {
901
+  .nav-collapse {
902
+    -webkit-transform: translate3d(0, 0, 0);
903
+  }
904
+  .page-header h1 small {
905
+    display: block;
906
+    line-height: 20px;
907
+  }
908
+  input[type="checkbox"],
909
+  input[type="radio"] {
910
+    border: 1px solid #ccc;
911
+  }
912
+  .form-horizontal .control-label {
913
+    float: none;
914
+    width: auto;
915
+    padding-top: 0;
916
+    text-align: left;
917
+  }
918
+  .form-horizontal .controls {
919
+    margin-left: 0;
920
+  }
921
+  .form-horizontal .control-list {
922
+    padding-top: 0;
923
+  }
924
+  .form-horizontal .form-actions {
925
+    padding-right: 10px;
926
+    padding-left: 10px;
927
+  }
928
+  .media .pull-left,
929
+  .media .pull-right {
930
+    display: block;
931
+    float: none;
932
+    margin-bottom: 10px;
933
+  }
934
+  .media-object {
935
+    margin-right: 0;
936
+    margin-left: 0;
937
+  }
938
+  .modal {
939
+    top: 10px;
940
+    right: 10px;
941
+    left: 10px;
942
+  }
943
+  .modal-header .close {
944
+    padding: 10px;
945
+    margin: -10px;
946
+  }
947
+  .carousel-caption {
948
+    position: static;
949
+  }
950
+}
951
+
952
+@media (max-width: 979px) {
953
+  body {
954
+    padding-top: 0;
955
+  }
956
+  .navbar-fixed-top,
957
+  .navbar-fixed-bottom {
958
+    position: static;
959
+  }
960
+  .navbar-fixed-top {
961
+    margin-bottom: 20px;
962
+  }
963
+  .navbar-fixed-bottom {
964
+    margin-top: 20px;
965
+  }
966
+  .navbar-fixed-top .navbar-inner,
967
+  .navbar-fixed-bottom .navbar-inner {
968
+    padding: 5px;
969
+  }
970
+  .navbar .container {
971
+    width: auto;
972
+    padding: 0;
973
+  }
974
+  .navbar .brand {
975
+    padding-right: 10px;
976
+    padding-left: 10px;
977
+    margin: 0 0 0 -5px;
978
+  }
979
+  .nav-collapse {
980
+    clear: both;
981
+  }
982
+  .nav-collapse .nav {
983
+    float: none;
984
+    margin: 0 0 10px;
985
+  }
986
+  .nav-collapse .nav > li {
987
+    float: none;
988
+  }
989
+  .nav-collapse .nav > li > a {
990
+    margin-bottom: 2px;
991
+  }
992
+  .nav-collapse .nav > .divider-vertical {
993
+    display: none;
994
+  }
995
+  .nav-collapse .nav .nav-header {
996
+    color: #777777;
997
+    text-shadow: none;
998
+  }
999
+  .nav-collapse .nav > li > a,
1000
+  .nav-collapse .dropdown-menu a {
1001
+    padding: 9px 15px;
1002
+    font-weight: bold;
1003
+    color: #777777;
1004
+    -webkit-border-radius: 3px;
1005
+       -moz-border-radius: 3px;
1006
+            border-radius: 3px;
1007
+  }
1008
+  .nav-collapse .btn {
1009
+    padding: 4px 10px 4px;
1010
+    font-weight: normal;
1011
+    -webkit-border-radius: 4px;
1012
+       -moz-border-radius: 4px;
1013
+            border-radius: 4px;
1014
+  }
1015
+  .nav-collapse .dropdown-menu li + li a {
1016
+    margin-bottom: 2px;
1017
+  }
1018
+  .nav-collapse .nav > li > a:hover,
1019
+  .nav-collapse .nav > li > a:focus,
1020
+  .nav-collapse .dropdown-menu a:hover,
1021
+  .nav-collapse .dropdown-menu a:focus {
1022
+    background-color: #f2f2f2;
1023
+  }
1024
+  .navbar-inverse .nav-collapse .nav > li > a,
1025
+  .navbar-inverse .nav-collapse .dropdown-menu a {
1026
+    color: #999999;
1027
+  }
1028
+  .navbar-inverse .nav-collapse .nav > li > a:hover,
1029
+  .navbar-inverse .nav-collapse .nav > li > a:focus,
1030
+  .navbar-inverse .nav-collapse .dropdown-menu a:hover,
1031
+  .navbar-inverse .nav-collapse .dropdown-menu a:focus {
1032
+    background-color: #111111;
1033
+  }
1034
+  .nav-collapse.in .btn-group {
1035
+    padding: 0;
1036
+    margin-top: 5px;
1037
+  }
1038
+  .nav-collapse .dropdown-menu {
1039
+    position: static;
1040
+    top: auto;
1041
+    left: auto;
1042
+    display: none;
1043
+    float: none;
1044
+    max-width: none;
1045
+    padding: 0;
1046
+    margin: 0 15px;
1047
+    background-color: transparent;
1048
+    border: none;
1049
+    -webkit-border-radius: 0;
1050
+       -moz-border-radius: 0;
1051
+            border-radius: 0;
1052
+    -webkit-box-shadow: none;
1053
+       -moz-box-shadow: none;
1054
+            box-shadow: none;
1055
+  }
1056
+  .nav-collapse .open > .dropdown-menu {
1057
+    display: block;
1058
+  }
1059
+  .nav-collapse .dropdown-menu:before,
1060
+  .nav-collapse .dropdown-menu:after {
1061
+    display: none;
1062
+  }
1063
+  .nav-collapse .dropdown-menu .divider {
1064
+    display: none;
1065
+  }
1066
+  .nav-collapse .nav > li > .dropdown-menu:before,
1067
+  .nav-collapse .nav > li > .dropdown-menu:after {
1068
+    display: none;
1069
+  }
1070
+  .nav-collapse .navbar-form,
1071
+  .nav-collapse .navbar-search {
1072
+    float: none;
1073
+    padding: 10px 15px;
1074
+    margin: 10px 0;
1075
+    border-top: 1px solid #f2f2f2;
1076
+    border-bottom: 1px solid #f2f2f2;
1077
+    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1078
+       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1079
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1080
+  }
1081
+  .navbar-inverse .nav-collapse .navbar-form,
1082
+  .navbar-inverse .nav-collapse .navbar-search {
1083
+    border-top-color: #111111;
1084
+    border-bottom-color: #111111;
1085
+  }
1086
+  .navbar .nav-collapse .nav.pull-right {
1087
+    float: none;
1088
+    margin-left: 0;
1089
+  }
1090
+  .nav-collapse,
1091
+  .nav-collapse.collapse {
1092
+    height: 0;
1093
+    overflow: hidden;
1094
+  }
1095
+  .navbar .btn-navbar {
1096
+    display: block;
1097
+  }
1098
+  .navbar-static .navbar-inner {
1099
+    padding-right: 10px;
1100
+    padding-left: 10px;
1101
+  }
1102
+}
1103
+
1104
+@media (min-width: 980px) {
1105
+  .nav-collapse.collapse {
1106
+    height: auto !important;
1107
+    overflow: visible !important;
1108
+  }
1109
+}
+6158
setup/public/css/bootstrap.css
... ...
@@ -0,0 +1,6158 @@
1
+/*!
2
+ * Bootstrap v2.3.1
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ */
10
+
11
+.clearfix {
12
+  *zoom: 1;
13
+}
14
+
15
+.clearfix:before,
16
+.clearfix:after {
17
+  display: table;
18
+  line-height: 0;
19
+  content: "";
20
+}
21
+
22
+.clearfix:after {
23
+  clear: both;
24
+}
25
+
26
+.hide-text {
27
+  font: 0/0 a;
28
+  color: transparent;
29
+  text-shadow: none;
30
+  background-color: transparent;
31
+  border: 0;
32
+}
33
+
34
+.input-block-level {
35
+  display: block;
36
+  width: 100%;
37
+  min-height: 30px;
38
+  -webkit-box-sizing: border-box;
39
+     -moz-box-sizing: border-box;
40
+          box-sizing: border-box;
41
+}
42
+
43
+article,
44
+aside,
45
+details,
46
+figcaption,
47
+figure,
48
+footer,
49
+header,
50
+hgroup,
51
+nav,
52
+section {
53
+  display: block;
54
+}
55
+
56
+audio,
57
+canvas,
58
+video {
59
+  display: inline-block;
60
+  *display: inline;
61
+  *zoom: 1;
62
+}
63
+
64
+audio:not([controls]) {
65
+  display: none;
66
+}
67
+
68
+html {
69
+  font-size: 100%;
70
+  -webkit-text-size-adjust: 100%;
71
+      -ms-text-size-adjust: 100%;
72
+}
73
+
74
+a:focus {
75
+  outline: thin dotted #333;
76
+  outline: 5px auto -webkit-focus-ring-color;
77
+  outline-offset: -2px;
78
+}
79
+
80
+a:hover,
81
+a:active {
82
+  outline: 0;
83
+}
84
+
85
+sub,
86
+sup {
87
+  position: relative;
88
+  font-size: 75%;
89
+  line-height: 0;
90
+  vertical-align: baseline;
91
+}
92
+
93
+sup {
94
+  top: -0.5em;
95
+}
96
+
97
+sub {
98
+  bottom: -0.25em;
99
+}
100
+
101
+img {
102
+  width: auto\9;
103
+  height: auto;
104
+  max-width: 100%;
105
+  vertical-align: middle;
106
+  border: 0;
107
+  -ms-interpolation-mode: bicubic;
108
+}
109
+
110
+#map_canvas img,
111
+.google-maps img {
112
+  max-width: none;
113
+}
114
+
115
+button,
116
+input,
117
+select,
118
+textarea {
119
+  margin: 0;
120
+  font-size: 100%;
121
+  vertical-align: middle;
122
+}
123
+
124
+button,
125
+input {
126
+  *overflow: visible;
127
+  line-height: normal;
128
+}
129
+
130
+button::-moz-focus-inner,
131
+input::-moz-focus-inner {
132
+  padding: 0;
133
+  border: 0;
134
+}
135
+
136
+button,
137
+html input[type="button"],
138
+input[type="reset"],
139
+input[type="submit"] {
140
+  cursor: pointer;
141
+  -webkit-appearance: button;
142
+}
143
+
144
+label,
145
+select,
146
+button,
147
+input[type="button"],
148
+input[type="reset"],
149
+input[type="submit"],
150
+input[type="radio"],
151
+input[type="checkbox"] {
152
+  cursor: pointer;
153
+}
154
+
155
+input[type="search"] {
156
+  -webkit-box-sizing: content-box;
157
+     -moz-box-sizing: content-box;
158
+          box-sizing: content-box;
159
+  -webkit-appearance: textfield;
160
+}
161
+
162
+input[type="search"]::-webkit-search-decoration,
163
+input[type="search"]::-webkit-search-cancel-button {
164
+  -webkit-appearance: none;
165
+}
166
+
167
+textarea {
168
+  overflow: auto;
169
+  vertical-align: top;
170
+}
171
+
172
+@media print {
173
+  * {
174
+    color: #000 !important;
175
+    text-shadow: none !important;
176
+    background: transparent !important;
177
+    box-shadow: none !important;
178
+  }
179
+  a,
180
+  a:visited {
181
+    text-decoration: underline;
182
+  }
183
+  a[href]:after {
184
+    content: " (" attr(href) ")";
185
+  }
186
+  abbr[title]:after {
187
+    content: " (" attr(title) ")";
188
+  }
189
+  .ir a:after,
190
+  a[href^="javascript:"]:after,
191
+  a[href^="#"]:after {
192
+    content: "";
193
+  }
194
+  pre,
195
+  blockquote {
196
+    border: 1px solid #999;
197
+    page-break-inside: avoid;
198
+  }
199
+  thead {
200
+    display: table-header-group;
201
+  }
202
+  tr,
203
+  img {
204
+    page-break-inside: avoid;
205
+  }
206
+  img {
207
+    max-width: 100% !important;
208
+  }
209
+  @page  {
210
+    margin: 0.5cm;
211
+  }
212
+  p,
213
+  h2,
214
+  h3 {
215
+    orphans: 3;
216
+    widows: 3;
217
+  }
218
+  h2,
219
+  h3 {
220
+    page-break-after: avoid;
221
+  }
222
+}
223
+
224
+body {
225
+  margin: 0;
226
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
227
+  font-size: 14px;
228
+  line-height: 20px;
229
+  color: #333333;
230
+  background-color: #ffffff;
231
+}
232
+
233
+a {
234
+  color: #0088cc;
235
+  text-decoration: none;
236
+}
237
+
238
+a:hover,
239
+a:focus {
240
+  color: #005580;
241
+  text-decoration: underline;
242
+}
243
+
244
+.img-rounded {
245
+  -webkit-border-radius: 6px;
246
+     -moz-border-radius: 6px;
247
+          border-radius: 6px;
248
+}
249
+
250
+.img-polaroid {
251
+  padding: 4px;
252
+  background-color: #fff;
253
+  border: 1px solid #ccc;
254
+  border: 1px solid rgba(0, 0, 0, 0.2);
255
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
256
+     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
257
+          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
258
+}
259
+
260
+.img-circle {
261
+  -webkit-border-radius: 500px;
262
+     -moz-border-radius: 500px;
263
+          border-radius: 500px;
264
+}
265
+
266
+.row {
267
+  margin-left: -20px;
268
+  *zoom: 1;
269
+}
270
+
271
+.row:before,
272
+.row:after {
273
+  display: table;
274
+  line-height: 0;
275
+  content: "";
276
+}
277
+
278
+.row:after {
279
+  clear: both;
280
+}
281
+
282
+[class*="span"] {
283
+  float: left;
284
+  min-height: 1px;
285
+  margin-left: 20px;
286
+}
287
+
288
+.container,
289
+.navbar-static-top .container,
290
+.navbar-fixed-top .container,
291
+.navbar-fixed-bottom .container {
292
+  width: 940px;
293
+}
294
+
295
+.span12 {
296
+  width: 940px;
297
+}
298
+
299
+.span11 {
300
+  width: 860px;
301
+}
302
+
303
+.span10 {
304
+  width: 780px;
305
+}
306
+
307
+.span9 {
308
+  width: 700px;
309
+}
310
+
311
+.span8 {
312
+  width: 620px;
313
+}
314
+
315
+.span7 {
316
+  width: 540px;
317
+}
318
+
319
+.span6 {
320
+  width: 460px;
321
+}
322
+
323
+.span5 {
324
+  width: 380px;
325
+}
326
+
327
+.span4 {
328
+  width: 300px;
329
+}
330
+
331
+.span3 {
332
+  width: 220px;
333
+}
334
+
335
+.span2 {
336
+  width: 140px;
337
+}
338
+
339
+.span1 {
340
+  width: 60px;
341
+}
342
+
343
+.offset12 {
344
+  margin-left: 980px;
345
+}
346
+
347
+.offset11 {
348
+  margin-left: 900px;
349
+}
350
+
351
+.offset10 {
352
+  margin-left: 820px;
353
+}
354
+
355
+.offset9 {
356
+  margin-left: 740px;
357
+}
358
+
359
+.offset8 {
360
+  margin-left: 660px;
361
+}
362
+
363
+.offset7 {
364
+  margin-left: 580px;
365
+}
366
+
367
+.offset6 {
368
+  margin-left: 500px;
369
+}
370
+
371
+.offset5 {
372
+  margin-left: 420px;
373
+}
374
+
375
+.offset4 {
376
+  margin-left: 340px;
377
+}
378
+
379
+.offset3 {
380
+  margin-left: 260px;
381
+}
382
+
383
+.offset2 {
384
+  margin-left: 180px;
385
+}
386
+
387
+.offset1 {
388
+  margin-left: 100px;
389
+}
390
+
391
+.row-fluid {
392
+  width: 100%;
393
+  *zoom: 1;
394
+}
395
+
396
+.row-fluid:before,
397
+.row-fluid:after {
398
+  display: table;
399
+  line-height: 0;
400
+  content: "";
401
+}
402
+
403
+.row-fluid:after {
404
+  clear: both;
405
+}
406
+
407
+.row-fluid [class*="span"] {
408
+  display: block;
409
+  float: left;
410
+  width: 100%;
411
+  min-height: 30px;
412
+  margin-left: 2.127659574468085%;
413
+  *margin-left: 2.074468085106383%;
414
+  -webkit-box-sizing: border-box;
415
+     -moz-box-sizing: border-box;
416
+          box-sizing: border-box;
417
+}
418
+
419
+.row-fluid [class*="span"]:first-child {
420
+  margin-left: 0;
421
+}
422
+
423
+.row-fluid .controls-row [class*="span"] + [class*="span"] {
424
+  margin-left: 2.127659574468085%;
425
+}
426
+
427
+.row-fluid .span12 {
428
+  width: 100%;
429
+  *width: 99.94680851063829%;
430
+}
431
+
432
+.row-fluid .span11 {
433
+  width: 91.48936170212765%;
434
+  *width: 91.43617021276594%;
435
+}
436
+
437
+.row-fluid .span10 {
438
+  width: 82.97872340425532%;
439
+  *width: 82.92553191489361%;
440
+}
441
+
442
+.row-fluid .span9 {
443
+  width: 74.46808510638297%;
444
+  *width: 74.41489361702126%;
445
+}
446
+
447
+.row-fluid .span8 {
448
+  width: 65.95744680851064%;
449
+  *width: 65.90425531914893%;
450
+}
451
+
452
+.row-fluid .span7 {
453
+  width: 57.44680851063829%;
454
+  *width: 57.39361702127659%;
455
+}
456
+
457
+.row-fluid .span6 {
458
+  width: 48.93617021276595%;
459
+  *width: 48.88297872340425%;
460
+}
461
+
462
+.row-fluid .span5 {
463
+  width: 40.42553191489362%;
464
+  *width: 40.37234042553192%;
465
+}
466
+
467
+.row-fluid .span4 {
468
+  width: 31.914893617021278%;
469
+  *width: 31.861702127659576%;
470
+}
471
+
472
+.row-fluid .span3 {
473
+  width: 23.404255319148934%;
474
+  *width: 23.351063829787233%;
475
+}
476
+
477
+.row-fluid .span2 {
478
+  width: 14.893617021276595%;
479
+  *width: 14.840425531914894%;
480
+}
481
+
482
+.row-fluid .span1 {
483
+  width: 6.382978723404255%;
484
+  *width: 6.329787234042553%;
485
+}
486
+
487
+.row-fluid .offset12 {
488
+  margin-left: 104.25531914893617%;
489
+  *margin-left: 104.14893617021275%;
490
+}
491
+
492
+.row-fluid .offset12:first-child {
493
+  margin-left: 102.12765957446808%;
494
+  *margin-left: 102.02127659574467%;
495
+}
496
+
497
+.row-fluid .offset11 {
498
+  margin-left: 95.74468085106382%;
499
+  *margin-left: 95.6382978723404%;
500
+}
501
+
502
+.row-fluid .offset11:first-child {
503
+  margin-left: 93.61702127659574%;
504
+  *margin-left: 93.51063829787232%;
505
+}
506
+
507
+.row-fluid .offset10 {
508
+  margin-left: 87.23404255319149%;
509
+  *margin-left: 87.12765957446807%;
510
+}
511
+
512
+.row-fluid .offset10:first-child {
513
+  margin-left: 85.1063829787234%;
514
+  *margin-left: 84.99999999999999%;
515
+}
516
+
517
+.row-fluid .offset9 {
518
+  margin-left: 78.72340425531914%;
519
+  *margin-left: 78.61702127659572%;
520
+}
521
+
522
+.row-fluid .offset9:first-child {
523
+  margin-left: 76.59574468085106%;
524
+  *margin-left: 76.48936170212764%;
525
+}
526
+
527
+.row-fluid .offset8 {
528
+  margin-left: 70.2127659574468%;
529
+  *margin-left: 70.10638297872339%;
530
+}
531
+
532
+.row-fluid .offset8:first-child {
533
+  margin-left: 68.08510638297872%;
534
+  *margin-left: 67.9787234042553%;
535
+}
536
+
537
+.row-fluid .offset7 {
538
+  margin-left: 61.70212765957446%;
539
+  *margin-left: 61.59574468085106%;
540
+}
541
+
542
+.row-fluid .offset7:first-child {
543
+  margin-left: 59.574468085106375%;
544
+  *margin-left: 59.46808510638297%;
545
+}
546
+
547
+.row-fluid .offset6 {
548
+  margin-left: 53.191489361702125%;
549
+  *margin-left: 53.085106382978715%;
550
+}
551
+
552
+.row-fluid .offset6:first-child {
553
+  margin-left: 51.063829787234035%;
554
+  *margin-left: 50.95744680851063%;
555
+}
556
+
557
+.row-fluid .offset5 {
558
+  margin-left: 44.68085106382979%;
559
+  *margin-left: 44.57446808510638%;
560
+}
561
+
562
+.row-fluid .offset5:first-child {
563
+  margin-left: 42.5531914893617%;
564
+  *margin-left: 42.4468085106383%;
565
+}
566
+
567
+.row-fluid .offset4 {
568
+  margin-left: 36.170212765957444%;
569
+  *margin-left: 36.06382978723405%;
570
+}
571
+
572
+.row-fluid .offset4:first-child {
573
+  margin-left: 34.04255319148936%;
574
+  *margin-left: 33.93617021276596%;
575
+}
576
+
577
+.row-fluid .offset3 {
578
+  margin-left: 27.659574468085104%;
579
+  *margin-left: 27.5531914893617%;
580
+}
581
+
582
+.row-fluid .offset3:first-child {
583
+  margin-left: 25.53191489361702%;
584
+  *margin-left: 25.425531914893618%;
585
+}
586
+
587
+.row-fluid .offset2 {
588
+  margin-left: 19.148936170212764%;
589
+  *margin-left: 19.04255319148936%;
590
+}
591
+
592
+.row-fluid .offset2:first-child {
593
+  margin-left: 17.02127659574468%;
594
+  *margin-left: 16.914893617021278%;
595
+}
596
+
597
+.row-fluid .offset1 {
598
+  margin-left: 10.638297872340425%;
599
+  *margin-left: 10.53191489361702%;
600
+}
601
+
602
+.row-fluid .offset1:first-child {
603
+  margin-left: 8.51063829787234%;
604
+  *margin-left: 8.404255319148938%;
605
+}
606
+
607
+[class*="span"].hide,
608
+.row-fluid [class*="span"].hide {
609
+  display: none;
610
+}
611
+
612
+[class*="span"].pull-right,
613
+.row-fluid [class*="span"].pull-right {
614
+  float: right;
615
+}
616
+
617
+.container {
618
+  margin-right: auto;
619
+  margin-left: auto;
620
+  *zoom: 1;
621
+}
622
+
623
+.container:before,
624
+.container:after {
625
+  display: table;
626
+  line-height: 0;
627
+  content: "";
628
+}
629
+
630
+.container:after {
631
+  clear: both;
632
+}
633
+
634
+.container-fluid {
635
+  padding-right: 20px;
636
+  padding-left: 20px;
637
+  *zoom: 1;
638
+}
639
+
640
+.container-fluid:before,
641
+.container-fluid:after {
642
+  display: table;
643
+  line-height: 0;
644
+  content: "";
645
+}
646
+
647
+.container-fluid:after {
648
+  clear: both;
649
+}
650
+
651
+p {
652
+  margin: 0 0 10px;
653
+}
654
+
655
+.lead {
656
+  margin-bottom: 20px;
657
+  font-size: 21px;
658
+  font-weight: 200;
659
+  line-height: 30px;
660
+}
661
+
662
+small {
663
+  font-size: 85%;
664
+}
665
+
666
+strong {
667
+  font-weight: bold;
668
+}
669
+
670
+em {
671
+  font-style: italic;
672
+}
673
+
674
+cite {
675
+  font-style: normal;
676
+}
677
+
678
+.muted {
679
+  color: #999999;
680
+}
681
+
682
+a.muted:hover,
683
+a.muted:focus {
684
+  color: #808080;
685
+}
686
+
687
+.text-warning {
688
+  color: #c09853;
689
+}
690
+
691
+a.text-warning:hover,
692
+a.text-warning:focus {
693
+  color: #a47e3c;
694
+}
695
+
696
+.text-error {
697
+  color: #b94a48;
698
+}
699
+
700
+a.text-error:hover,
701
+a.text-error:focus {
702
+  color: #953b39;
703
+}
704
+
705
+.text-info {
706
+  color: #3a87ad;
707
+}
708
+
709
+a.text-info:hover,
710
+a.text-info:focus {
711
+  color: #2d6987;
712
+}
713
+
714
+.text-success {
715
+  color: #468847;
716
+}
717
+
718
+a.text-success:hover,
719
+a.text-success:focus {
720
+  color: #356635;
721
+}
722
+
723
+.text-left {
724
+  text-align: left;
725
+}
726
+
727
+.text-right {
728
+  text-align: right;
729
+}
730
+
731
+.text-center {
732
+  text-align: center;
733
+}
734
+
735
+h1,
736
+h2,
737
+h3,
738
+h4,
739
+h5,
740
+h6 {
741
+  margin: 10px 0;
742
+  font-family: inherit;
743
+  font-weight: bold;
744
+  line-height: 20px;
745
+  color: inherit;
746
+  text-rendering: optimizelegibility;
747
+}
748
+
749
+h1 small,
750
+h2 small,
751
+h3 small,
752
+h4 small,
753
+h5 small,
754
+h6 small {
755
+  font-weight: normal;
756
+  line-height: 1;
757
+  color: #999999;
758
+}
759
+
760
+h1,
761
+h2,
762
+h3 {
763
+  line-height: 40px;
764
+}
765
+
766
+h1 {
767
+  font-size: 38.5px;
768
+}
769
+
770
+h2 {
771
+  font-size: 31.5px;
772
+}
773
+
774
+h3 {
775
+  font-size: 24.5px;
776
+}
777
+
778
+h4 {
779
+  font-size: 17.5px;
780
+}
781
+
782
+h5 {
783
+  font-size: 14px;
784
+}
785
+
786
+h6 {
787
+  font-size: 11.9px;
788
+}
789
+
790
+h1 small {
791
+  font-size: 24.5px;
792
+}
793
+
794
+h2 small {
795
+  font-size: 17.5px;
796
+}
797
+
798
+h3 small {
799
+  font-size: 14px;
800
+}
801
+
802
+h4 small {
803
+  font-size: 14px;
804
+}
805
+
806
+.page-header {
807
+  padding-bottom: 9px;
808
+  margin: 20px 0 30px;
809
+  border-bottom: 1px solid #eeeeee;
810
+}
811
+
812
+ul,
813
+ol {
814
+  padding: 0;
815
+  margin: 0 0 10px 25px;
816
+}
817
+
818
+ul ul,
819
+ul ol,
820
+ol ol,
821
+ol ul {
822
+  margin-bottom: 0;
823
+}
824
+
825
+li {
826
+  line-height: 20px;
827
+}
828
+
829
+ul.unstyled,
830
+ol.unstyled {
831
+  margin-left: 0;
832
+  list-style: none;
833
+}
834
+
835
+ul.inline,
836
+ol.inline {
837
+  margin-left: 0;
838
+  list-style: none;
839
+}
840
+
841
+ul.inline > li,
842
+ol.inline > li {
843
+  display: inline-block;
844
+  *display: inline;
845
+  padding-right: 5px;
846
+  padding-left: 5px;
847
+  *zoom: 1;
848
+}
849
+
850
+dl {
851
+  margin-bottom: 20px;
852
+}
853
+
854
+dt,
855
+dd {
856
+  line-height: 20px;
857
+}
858
+
859
+dt {
860
+  font-weight: bold;
861
+}
862
+
863
+dd {
864
+  margin-left: 10px;
865
+}
866
+
867
+.dl-horizontal {
868
+  *zoom: 1;
869
+}
870
+
871
+.dl-horizontal:before,
872
+.dl-horizontal:after {
873
+  display: table;
874
+  line-height: 0;
875
+  content: "";
876
+}
877
+
878
+.dl-horizontal:after {
879
+  clear: both;
880
+}
881
+
882
+.dl-horizontal dt {
883
+  float: left;
884
+  width: 160px;
885
+  overflow: hidden;
886
+  clear: left;
887
+  text-align: right;
888
+  text-overflow: ellipsis;
889
+  white-space: nowrap;
890
+}
891
+
892
+.dl-horizontal dd {
893
+  margin-left: 180px;
894
+}
895
+
896
+hr {
897
+  margin: 20px 0;
898
+  border: 0;
899
+  border-top: 1px solid #eeeeee;
900
+  border-bottom: 1px solid #ffffff;
901
+}
902
+
903
+abbr[title],
904
+abbr[data-original-title] {
905
+  cursor: help;
906
+  border-bottom: 1px dotted #999999;
907
+}
908
+
909
+abbr.initialism {
910
+  font-size: 90%;
911
+  text-transform: uppercase;
912
+}
913
+
914
+blockquote {
915
+  padding: 0 0 0 15px;
916
+  margin: 0 0 20px;
917
+  border-left: 5px solid #eeeeee;
918
+}
919
+
920
+blockquote p {
921
+  margin-bottom: 0;
922
+  font-size: 17.5px;
923
+  font-weight: 300;
924
+  line-height: 1.25;
925
+}
926
+
927
+blockquote small {
928
+  display: block;
929
+  line-height: 20px;
930
+  color: #999999;
931
+}
932
+
933
+blockquote small:before {
934
+  content: '\2014 \00A0';
935
+}
936
+
937
+blockquote.pull-right {
938
+  float: right;
939
+  padding-right: 15px;
940
+  padding-left: 0;
941
+  border-right: 5px solid #eeeeee;
942
+  border-left: 0;
943
+}
944
+
945
+blockquote.pull-right p,
946
+blockquote.pull-right small {
947
+  text-align: right;
948
+}
949
+
950
+blockquote.pull-right small:before {
951
+  content: '';
952
+}
953
+
954
+blockquote.pull-right small:after {
955
+  content: '\00A0 \2014';
956
+}
957
+
958
+q:before,
959
+q:after,
960
+blockquote:before,
961
+blockquote:after {
962
+  content: "";
963
+}
964
+
965
+address {
966
+  display: block;
967
+  margin-bottom: 20px;
968
+  font-style: normal;
969
+  line-height: 20px;
970
+}
971
+
972
+code,
973
+pre {
974
+  padding: 0 3px 2px;
975
+  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
976
+  font-size: 12px;
977
+  color: #333333;
978
+  -webkit-border-radius: 3px;
979
+     -moz-border-radius: 3px;
980
+          border-radius: 3px;
981
+}
982
+
983
+code {
984
+  padding: 2px 4px;
985
+  color: #d14;
986
+  white-space: nowrap;
987
+  background-color: #f7f7f9;
988
+  border: 1px solid #e1e1e8;
989
+}
990
+
991
+pre {
992
+  display: block;
993
+  padding: 9.5px;
994
+  margin: 0 0 10px;
995
+  font-size: 13px;
996
+  line-height: 20px;
997
+  word-break: break-all;
998
+  word-wrap: break-word;
999
+  white-space: pre;
1000
+  white-space: pre-wrap;
1001
+  background-color: #f5f5f5;
1002
+  border: 1px solid #ccc;
1003
+  border: 1px solid rgba(0, 0, 0, 0.15);
1004
+  -webkit-border-radius: 4px;
1005
+     -moz-border-radius: 4px;
1006
+          border-radius: 4px;
1007
+}
1008
+
1009
+pre.prettyprint {
1010
+  margin-bottom: 20px;
1011
+}
1012
+
1013
+pre code {
1014
+  padding: 0;
1015
+  color: inherit;
1016
+  white-space: pre;
1017
+  white-space: pre-wrap;
1018
+  background-color: transparent;
1019
+  border: 0;
1020
+}
1021
+
1022
+.pre-scrollable {
1023
+  max-height: 340px;
1024
+  overflow-y: scroll;
1025
+}
1026
+
1027
+form {
1028
+  margin: 0 0 20px;
1029
+}
1030
+
1031
+fieldset {
1032
+  padding: 0;
1033
+  margin: 0;
1034
+  border: 0;
1035
+}
1036
+
1037
+legend {
1038
+  display: block;
1039
+  width: 100%;
1040
+  padding: 0;
1041
+  margin-bottom: 20px;
1042
+  font-size: 21px;
1043
+  line-height: 40px;
1044
+  color: #333333;
1045
+  border: 0;
1046
+  border-bottom: 1px solid #e5e5e5;
1047
+}
1048
+
1049
+legend small {
1050
+  font-size: 15px;
1051
+  color: #999999;
1052
+}
1053
+
1054
+label,
1055
+input,
1056
+button,
1057
+select,
1058
+textarea {
1059
+  font-size: 14px;
1060
+  font-weight: normal;
1061
+  line-height: 20px;
1062
+}
1063
+
1064
+input,
1065
+button,
1066
+select,
1067
+textarea {
1068
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1069
+}
1070
+
1071
+label {
1072
+  display: block;
1073
+  margin-bottom: 5px;
1074
+}
1075
+
1076
+select,
1077
+textarea,
1078
+input[type="text"],
1079
+input[type="password"],
1080
+input[type="datetime"],
1081
+input[type="datetime-local"],
1082
+input[type="date"],
1083
+input[type="month"],
1084
+input[type="time"],
1085
+input[type="week"],
1086
+input[type="number"],
1087
+input[type="email"],
1088
+input[type="url"],
1089
+input[type="search"],
1090
+input[type="tel"],
1091
+input[type="color"],
1092
+.uneditable-input {
1093
+  display: inline-block;
1094
+  height: 20px;
1095
+  padding: 4px 6px;
1096
+  margin-bottom: 10px;
1097
+  font-size: 14px;
1098
+  line-height: 20px;
1099
+  color: #555555;
1100
+  vertical-align: middle;
1101
+  -webkit-border-radius: 4px;
1102
+     -moz-border-radius: 4px;
1103
+          border-radius: 4px;
1104
+}
1105
+
1106
+input,
1107
+textarea,
1108
+.uneditable-input {
1109
+  width: 206px;
1110
+}
1111
+
1112
+textarea {
1113
+  height: auto;
1114
+}
1115
+
1116
+textarea,
1117
+input[type="text"],
1118
+input[type="password"],
1119
+input[type="datetime"],
1120
+input[type="datetime-local"],
1121
+input[type="date"],
1122
+input[type="month"],
1123
+input[type="time"],
1124
+input[type="week"],
1125
+input[type="number"],
1126
+input[type="email"],
1127
+input[type="url"],
1128
+input[type="search"],
1129
+input[type="tel"],
1130
+input[type="color"],
1131
+.uneditable-input {
1132
+  background-color: #ffffff;
1133
+  border: 1px solid #cccccc;
1134
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1135
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1136
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1137
+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
1138
+     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
1139
+       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
1140
+          transition: border linear 0.2s, box-shadow linear 0.2s;
1141
+}
1142
+
1143
+textarea:focus,
1144
+input[type="text"]:focus,
1145
+input[type="password"]:focus,
1146
+input[type="datetime"]:focus,
1147
+input[type="datetime-local"]:focus,
1148
+input[type="date"]:focus,
1149
+input[type="month"]:focus,
1150
+input[type="time"]:focus,
1151
+input[type="week"]:focus,
1152
+input[type="number"]:focus,
1153
+input[type="email"]:focus,
1154
+input[type="url"]:focus,
1155
+input[type="search"]:focus,
1156
+input[type="tel"]:focus,
1157
+input[type="color"]:focus,
1158
+.uneditable-input:focus {
1159
+  border-color: rgba(82, 168, 236, 0.8);
1160
+  outline: 0;
1161
+  outline: thin dotted \9;
1162
+  /* IE6-9 */
1163
+
1164
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1165
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1166
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1167
+}
1168
+
1169
+input[type="radio"],
1170
+input[type="checkbox"] {
1171
+  margin: 4px 0 0;
1172
+  margin-top: 1px \9;
1173
+  *margin-top: 0;
1174
+  line-height: normal;
1175
+}
1176
+
1177
+input[type="file"],
1178
+input[type="image"],
1179
+input[type="submit"],
1180
+input[type="reset"],
1181
+input[type="button"],
1182
+input[type="radio"],
1183
+input[type="checkbox"] {
1184
+  width: auto;
1185
+}
1186
+
1187
+select,
1188
+input[type="file"] {
1189
+  height: 30px;
1190
+  /* In IE7, the height of the select element cannot be changed by height, only font-size */
1191
+
1192
+  *margin-top: 4px;
1193
+  /* For IE7, add top margin to align select with labels */
1194
+
1195
+  line-height: 30px;
1196
+}
1197
+
1198
+select {
1199
+  width: 220px;
1200
+  background-color: #ffffff;
1201
+  border: 1px solid #cccccc;
1202
+}
1203
+
1204
+select[multiple],
1205
+select[size] {
1206
+  height: auto;
1207
+}
1208
+
1209
+select:focus,
1210
+input[type="file"]:focus,
1211
+input[type="radio"]:focus,
1212
+input[type="checkbox"]:focus {
1213
+  outline: thin dotted #333;
1214
+  outline: 5px auto -webkit-focus-ring-color;
1215
+  outline-offset: -2px;
1216
+}
1217
+
1218
+.uneditable-input,
1219
+.uneditable-textarea {
1220
+  color: #999999;
1221
+  cursor: not-allowed;
1222
+  background-color: #fcfcfc;
1223
+  border-color: #cccccc;
1224
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1225
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1226
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1227
+}
1228
+
1229
+.uneditable-input {
1230
+  overflow: hidden;
1231
+  white-space: nowrap;
1232
+}
1233
+
1234
+.uneditable-textarea {
1235
+  width: auto;
1236
+  height: auto;
1237
+}
1238
+
1239
+input:-moz-placeholder,
1240
+textarea:-moz-placeholder {
1241
+  color: #999999;
1242
+}
1243
+
1244
+input:-ms-input-placeholder,
1245
+textarea:-ms-input-placeholder {
1246
+  color: #999999;
1247
+}
1248
+
1249
+input::-webkit-input-placeholder,
1250
+textarea::-webkit-input-placeholder {
1251
+  color: #999999;
1252
+}
1253
+
1254
+.radio,
1255
+.checkbox {
1256
+  min-height: 20px;
1257
+  padding-left: 20px;
1258
+}
1259
+
1260
+.radio input[type="radio"],
1261
+.checkbox input[type="checkbox"] {
1262
+  float: left;
1263
+  margin-left: -20px;
1264
+}
1265
+
1266
+.controls > .radio:first-child,
1267
+.controls > .checkbox:first-child {
1268
+  padding-top: 5px;
1269
+}
1270
+
1271
+.radio.inline,
1272
+.checkbox.inline {
1273
+  display: inline-block;
1274
+  padding-top: 5px;
1275
+  margin-bottom: 0;
1276
+  vertical-align: middle;
1277
+}
1278
+
1279
+.radio.inline + .radio.inline,
1280
+.checkbox.inline + .checkbox.inline {
1281
+  margin-left: 10px;
1282
+}
1283
+
1284
+.input-mini {
1285
+  width: 60px;
1286
+}
1287
+
1288
+.input-small {
1289
+  width: 90px;
1290
+}
1291
+
1292
+.input-medium {
1293
+  width: 150px;
1294
+}
1295
+
1296
+.input-large {
1297
+  width: 210px;
1298
+}
1299
+
1300
+.input-xlarge {
1301
+  width: 270px;
1302
+}
1303
+
1304
+.input-xxlarge {
1305
+  width: 530px;
1306
+}
1307
+
1308
+input[class*="span"],
1309
+select[class*="span"],
1310
+textarea[class*="span"],
1311
+.uneditable-input[class*="span"],
1312
+.row-fluid input[class*="span"],
1313
+.row-fluid select[class*="span"],
1314
+.row-fluid textarea[class*="span"],
1315
+.row-fluid .uneditable-input[class*="span"] {
1316
+  float: none;
1317
+  margin-left: 0;
1318
+}
1319
+
1320
+.input-append input[class*="span"],
1321
+.input-append .uneditable-input[class*="span"],
1322
+.input-prepend input[class*="span"],
1323
+.input-prepend .uneditable-input[class*="span"],
1324
+.row-fluid input[class*="span"],
1325
+.row-fluid select[class*="span"],
1326
+.row-fluid textarea[class*="span"],
1327
+.row-fluid .uneditable-input[class*="span"],
1328
+.row-fluid .input-prepend [class*="span"],
1329
+.row-fluid .input-append [class*="span"] {
1330
+  display: inline-block;
1331
+}
1332
+
1333
+input,
1334
+textarea,
1335
+.uneditable-input {
1336
+  margin-left: 0;
1337
+}
1338
+
1339
+.controls-row [class*="span"] + [class*="span"] {
1340
+  margin-left: 20px;
1341
+}
1342
+
1343
+input.span12,
1344
+textarea.span12,
1345
+.uneditable-input.span12 {
1346
+  width: 926px;
1347
+}
1348
+
1349
+input.span11,
1350
+textarea.span11,
1351
+.uneditable-input.span11 {
1352
+  width: 846px;
1353
+}
1354
+
1355
+input.span10,
1356
+textarea.span10,
1357
+.uneditable-input.span10 {
1358
+  width: 766px;
1359
+}
1360
+
1361
+input.span9,
1362
+textarea.span9,
1363
+.uneditable-input.span9 {
1364
+  width: 686px;
1365
+}
1366
+
1367
+input.span8,
1368
+textarea.span8,
1369
+.uneditable-input.span8 {
1370
+  width: 606px;
1371
+}
1372
+
1373
+input.span7,
1374
+textarea.span7,
1375
+.uneditable-input.span7 {
1376
+  width: 526px;
1377
+}
1378
+
1379
+input.span6,
1380
+textarea.span6,
1381
+.uneditable-input.span6 {
1382
+  width: 446px;
1383
+}
1384
+
1385
+input.span5,
1386
+textarea.span5,
1387
+.uneditable-input.span5 {
1388
+  width: 366px;
1389
+}
1390
+
1391
+input.span4,
1392
+textarea.span4,
1393
+.uneditable-input.span4 {
1394
+  width: 286px;
1395
+}
1396
+
1397
+input.span3,
1398
+textarea.span3,
1399
+.uneditable-input.span3 {
1400
+  width: 206px;
1401
+}
1402
+
1403
+input.span2,
1404
+textarea.span2,
1405
+.uneditable-input.span2 {
1406
+  width: 126px;
1407
+}
1408
+
1409
+input.span1,
1410
+textarea.span1,
1411
+.uneditable-input.span1 {
1412
+  width: 46px;
1413
+}
1414
+
1415
+.controls-row {
1416
+  *zoom: 1;
1417
+}
1418
+
1419
+.controls-row:before,
1420
+.controls-row:after {
1421
+  display: table;
1422
+  line-height: 0;
1423
+  content: "";
1424
+}
1425
+
1426
+.controls-row:after {
1427
+  clear: both;
1428
+}
1429
+
1430
+.controls-row [class*="span"],
1431
+.row-fluid .controls-row [class*="span"] {
1432
+  float: left;
1433
+}
1434
+
1435
+.controls-row .checkbox[class*="span"],
1436
+.controls-row .radio[class*="span"] {
1437
+  padding-top: 5px;
1438
+}
1439
+
1440
+input[disabled],
1441
+select[disabled],
1442
+textarea[disabled],
1443
+input[readonly],
1444
+select[readonly],
1445
+textarea[readonly] {
1446
+  cursor: not-allowed;
1447
+  background-color: #eeeeee;
1448
+}
1449
+
1450
+input[type="radio"][disabled],
1451
+input[type="checkbox"][disabled],
1452
+input[type="radio"][readonly],
1453
+input[type="checkbox"][readonly] {
1454
+  background-color: transparent;
1455
+}
1456
+
1457
+.control-group.warning .control-label,
1458
+.control-group.warning .help-block,
1459
+.control-group.warning .help-inline {
1460
+  color: #c09853;
1461
+}
1462
+
1463
+.control-group.warning .checkbox,
1464
+.control-group.warning .radio,
1465
+.control-group.warning input,
1466
+.control-group.warning select,
1467
+.control-group.warning textarea {
1468
+  color: #c09853;
1469
+}
1470
+
1471
+.control-group.warning input,
1472
+.control-group.warning select,
1473
+.control-group.warning textarea {
1474
+  border-color: #c09853;
1475
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1476
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1477
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1478
+}
1479
+
1480
+.control-group.warning input:focus,
1481
+.control-group.warning select:focus,
1482
+.control-group.warning textarea:focus {
1483
+  border-color: #a47e3c;
1484
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1485
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1486
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1487
+}
1488
+
1489
+.control-group.warning .input-prepend .add-on,
1490
+.control-group.warning .input-append .add-on {
1491
+  color: #c09853;
1492
+  background-color: #fcf8e3;
1493
+  border-color: #c09853;
1494
+}
1495
+
1496
+.control-group.error .control-label,
1497
+.control-group.error .help-block,
1498
+.control-group.error .help-inline {
1499
+  color: #b94a48;
1500
+}
1501
+
1502
+.control-group.error .checkbox,
1503
+.control-group.error .radio,
1504
+.control-group.error input,
1505
+.control-group.error select,
1506
+.control-group.error textarea {
1507
+  color: #b94a48;
1508
+}
1509
+
1510
+.control-group.error input,
1511
+.control-group.error select,
1512
+.control-group.error textarea {
1513
+  border-color: #b94a48;
1514
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1515
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1516
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1517
+}
1518
+
1519
+.control-group.error input:focus,
1520
+.control-group.error select:focus,
1521
+.control-group.error textarea:focus {
1522
+  border-color: #953b39;
1523
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1524
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1525
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1526
+}
1527
+
1528
+.control-group.error .input-prepend .add-on,
1529
+.control-group.error .input-append .add-on {
1530
+  color: #b94a48;
1531
+  background-color: #f2dede;
1532
+  border-color: #b94a48;
1533
+}
1534
+
1535
+.control-group.success .control-label,
1536
+.control-group.success .help-block,
1537
+.control-group.success .help-inline {
1538
+  color: #468847;
1539
+}
1540
+
1541
+.control-group.success .checkbox,
1542
+.control-group.success .radio,
1543
+.control-group.success input,
1544
+.control-group.success select,
1545
+.control-group.success textarea {
1546
+  color: #468847;
1547
+}
1548
+
1549
+.control-group.success input,
1550
+.control-group.success select,
1551
+.control-group.success textarea {
1552
+  border-color: #468847;
1553
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1554
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1555
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1556
+}
1557
+
1558
+.control-group.success input:focus,
1559
+.control-group.success select:focus,
1560
+.control-group.success textarea:focus {
1561
+  border-color: #356635;
1562
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1563
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1564
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1565
+}
1566
+
1567
+.control-group.success .input-prepend .add-on,
1568
+.control-group.success .input-append .add-on {
1569
+  color: #468847;
1570
+  background-color: #dff0d8;
1571
+  border-color: #468847;
1572
+}
1573
+
1574
+.control-group.info .control-label,
1575
+.control-group.info .help-block,
1576
+.control-group.info .help-inline {
1577
+  color: #3a87ad;
1578
+}
1579
+
1580
+.control-group.info .checkbox,
1581
+.control-group.info .radio,
1582
+.control-group.info input,
1583
+.control-group.info select,
1584
+.control-group.info textarea {
1585
+  color: #3a87ad;
1586
+}
1587
+
1588
+.control-group.info input,
1589
+.control-group.info select,
1590
+.control-group.info textarea {
1591
+  border-color: #3a87ad;
1592
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1593
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1594
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1595
+}
1596
+
1597
+.control-group.info input:focus,
1598
+.control-group.info select:focus,
1599
+.control-group.info textarea:focus {
1600
+  border-color: #2d6987;
1601
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1602
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1603
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1604
+}
1605
+
1606
+.control-group.info .input-prepend .add-on,
1607
+.control-group.info .input-append .add-on {
1608
+  color: #3a87ad;
1609
+  background-color: #d9edf7;
1610
+  border-color: #3a87ad;
1611
+}
1612
+
1613
+input:focus:invalid,
1614
+textarea:focus:invalid,
1615
+select:focus:invalid {
1616
+  color: #b94a48;
1617
+  border-color: #ee5f5b;
1618
+}
1619
+
1620
+input:focus:invalid:focus,
1621
+textarea:focus:invalid:focus,
1622
+select:focus:invalid:focus {
1623
+  border-color: #e9322d;
1624
+  -webkit-box-shadow: 0 0 6px #f8b9b7;
1625
+     -moz-box-shadow: 0 0 6px #f8b9b7;
1626
+          box-shadow: 0 0 6px #f8b9b7;
1627
+}
1628
+
1629
+.form-actions {
1630
+  padding: 19px 20px 20px;
1631
+  margin-top: 20px;
1632
+  margin-bottom: 20px;
1633
+  background-color: #f5f5f5;
1634
+  border-top: 1px solid #e5e5e5;
1635
+  *zoom: 1;
1636
+}
1637
+
1638
+.form-actions:before,
1639
+.form-actions:after {
1640
+  display: table;
1641
+  line-height: 0;
1642
+  content: "";
1643
+}
1644
+
1645
+.form-actions:after {
1646
+  clear: both;
1647
+}
1648
+
1649
+.help-block,
1650
+.help-inline {
1651
+  color: #595959;
1652
+}
1653
+
1654
+.help-block {
1655
+  display: block;
1656
+  margin-bottom: 10px;
1657
+}
1658
+
1659
+.help-inline {
1660
+  display: inline-block;
1661
+  *display: inline;
1662
+  padding-left: 5px;
1663
+  vertical-align: middle;
1664
+  *zoom: 1;
1665
+}
1666
+
1667
+.input-append,
1668
+.input-prepend {
1669
+  display: inline-block;
1670
+  margin-bottom: 10px;
1671
+  font-size: 0;
1672
+  white-space: nowrap;
1673
+  vertical-align: middle;
1674
+}
1675
+
1676
+.input-append input,
1677
+.input-prepend input,
1678
+.input-append select,
1679
+.input-prepend select,
1680
+.input-append .uneditable-input,
1681
+.input-prepend .uneditable-input,
1682
+.input-append .dropdown-menu,
1683
+.input-prepend .dropdown-menu,
1684
+.input-append .popover,
1685
+.input-prepend .popover {
1686
+  font-size: 14px;
1687
+}
1688
+
1689
+.input-append input,
1690
+.input-prepend input,
1691
+.input-append select,
1692
+.input-prepend select,
1693
+.input-append .uneditable-input,
1694
+.input-prepend .uneditable-input {
1695
+  position: relative;
1696
+  margin-bottom: 0;
1697
+  *margin-left: 0;
1698
+  vertical-align: top;
1699
+  -webkit-border-radius: 0 4px 4px 0;
1700
+     -moz-border-radius: 0 4px 4px 0;
1701
+          border-radius: 0 4px 4px 0;
1702
+}
1703
+
1704
+.input-append input:focus,
1705
+.input-prepend input:focus,
1706
+.input-append select:focus,
1707
+.input-prepend select:focus,
1708
+.input-append .uneditable-input:focus,
1709
+.input-prepend .uneditable-input:focus {
1710
+  z-index: 2;
1711
+}
1712
+
1713
+.input-append .add-on,
1714
+.input-prepend .add-on {
1715
+  display: inline-block;
1716
+  width: auto;
1717
+  height: 20px;
1718
+  min-width: 16px;
1719
+  padding: 4px 5px;
1720
+  font-size: 14px;
1721
+  font-weight: normal;
1722
+  line-height: 20px;
1723
+  text-align: center;
1724
+  text-shadow: 0 1px 0 #ffffff;
1725
+  background-color: #eeeeee;
1726
+  border: 1px solid #ccc;
1727
+}
1728
+
1729
+.input-append .add-on,
1730
+.input-prepend .add-on,
1731
+.input-append .btn,
1732
+.input-prepend .btn,
1733
+.input-append .btn-group > .dropdown-toggle,
1734
+.input-prepend .btn-group > .dropdown-toggle {
1735
+  vertical-align: top;
1736
+  -webkit-border-radius: 0;
1737
+     -moz-border-radius: 0;
1738
+          border-radius: 0;
1739
+}
1740
+
1741
+.input-append .active,
1742
+.input-prepend .active {
1743
+  background-color: #a9dba9;
1744
+  border-color: #46a546;
1745
+}
1746
+
1747
+.input-prepend .add-on,
1748
+.input-prepend .btn {
1749
+  margin-right: -1px;
1750
+}
1751
+
1752
+.input-prepend .add-on:first-child,
1753
+.input-prepend .btn:first-child {
1754
+  -webkit-border-radius: 4px 0 0 4px;
1755
+     -moz-border-radius: 4px 0 0 4px;
1756
+          border-radius: 4px 0 0 4px;
1757
+}
1758
+
1759
+.input-append input,
1760
+.input-append select,
1761
+.input-append .uneditable-input {
1762
+  -webkit-border-radius: 4px 0 0 4px;
1763
+     -moz-border-radius: 4px 0 0 4px;
1764
+          border-radius: 4px 0 0 4px;
1765
+}
1766
+
1767
+.input-append input + .btn-group .btn:last-child,
1768
+.input-append select + .btn-group .btn:last-child,
1769
+.input-append .uneditable-input + .btn-group .btn:last-child {
1770
+  -webkit-border-radius: 0 4px 4px 0;
1771
+     -moz-border-radius: 0 4px 4px 0;
1772
+          border-radius: 0 4px 4px 0;
1773
+}
1774
+
1775
+.input-append .add-on,
1776
+.input-append .btn,
1777
+.input-append .btn-group {
1778
+  margin-left: -1px;
1779
+}
1780
+
1781
+.input-append .add-on:last-child,
1782
+.input-append .btn:last-child,
1783
+.input-append .btn-group:last-child > .dropdown-toggle {
1784
+  -webkit-border-radius: 0 4px 4px 0;
1785
+     -moz-border-radius: 0 4px 4px 0;
1786
+          border-radius: 0 4px 4px 0;
1787
+}
1788
+
1789
+.input-prepend.input-append input,
1790
+.input-prepend.input-append select,
1791
+.input-prepend.input-append .uneditable-input {
1792
+  -webkit-border-radius: 0;
1793
+     -moz-border-radius: 0;
1794
+          border-radius: 0;
1795
+}
1796
+
1797
+.input-prepend.input-append input + .btn-group .btn,
1798
+.input-prepend.input-append select + .btn-group .btn,
1799
+.input-prepend.input-append .uneditable-input + .btn-group .btn {
1800
+  -webkit-border-radius: 0 4px 4px 0;
1801
+     -moz-border-radius: 0 4px 4px 0;
1802
+          border-radius: 0 4px 4px 0;
1803
+}
1804
+
1805
+.input-prepend.input-append .add-on:first-child,
1806
+.input-prepend.input-append .btn:first-child {
1807
+  margin-right: -1px;
1808
+  -webkit-border-radius: 4px 0 0 4px;
1809
+     -moz-border-radius: 4px 0 0 4px;
1810
+          border-radius: 4px 0 0 4px;
1811
+}
1812
+
1813
+.input-prepend.input-append .add-on:last-child,
1814
+.input-prepend.input-append .btn:last-child {
1815
+  margin-left: -1px;
1816
+  -webkit-border-radius: 0 4px 4px 0;
1817
+     -moz-border-radius: 0 4px 4px 0;
1818
+          border-radius: 0 4px 4px 0;
1819
+}
1820
+
1821
+.input-prepend.input-append .btn-group:first-child {
1822
+  margin-left: 0;
1823
+}
1824
+
1825
+input.search-query {
1826
+  padding-right: 14px;
1827
+  padding-right: 4px \9;
1828
+  padding-left: 14px;
1829
+  padding-left: 4px \9;
1830
+  /* IE7-8 doesn't have border-radius, so don't indent the padding */
1831
+
1832
+  margin-bottom: 0;
1833
+  -webkit-border-radius: 15px;
1834
+     -moz-border-radius: 15px;
1835
+          border-radius: 15px;
1836
+}
1837
+
1838
+/* Allow for input prepend/append in search forms */
1839
+
1840
+.form-search .input-append .search-query,
1841
+.form-search .input-prepend .search-query {
1842
+  -webkit-border-radius: 0;
1843
+     -moz-border-radius: 0;
1844
+          border-radius: 0;
1845
+}
1846
+
1847
+.form-search .input-append .search-query {
1848
+  -webkit-border-radius: 14px 0 0 14px;
1849
+     -moz-border-radius: 14px 0 0 14px;
1850
+          border-radius: 14px 0 0 14px;
1851
+}
1852
+
1853
+.form-search .input-append .btn {
1854
+  -webkit-border-radius: 0 14px 14px 0;
1855
+     -moz-border-radius: 0 14px 14px 0;
1856
+          border-radius: 0 14px 14px 0;
1857
+}
1858
+
1859
+.form-search .input-prepend .search-query {
1860
+  -webkit-border-radius: 0 14px 14px 0;
1861
+     -moz-border-radius: 0 14px 14px 0;
1862
+          border-radius: 0 14px 14px 0;
1863
+}
1864
+
1865
+.form-search .input-prepend .btn {
1866
+  -webkit-border-radius: 14px 0 0 14px;
1867
+     -moz-border-radius: 14px 0 0 14px;
1868
+          border-radius: 14px 0 0 14px;
1869
+}
1870
+
1871
+.form-search input,
1872
+.form-inline input,
1873
+.form-horizontal input,
1874
+.form-search textarea,
1875
+.form-inline textarea,
1876
+.form-horizontal textarea,
1877
+.form-search select,
1878
+.form-inline select,
1879
+.form-horizontal select,
1880
+.form-search .help-inline,
1881
+.form-inline .help-inline,
1882
+.form-horizontal .help-inline,
1883
+.form-search .uneditable-input,
1884
+.form-inline .uneditable-input,
1885
+.form-horizontal .uneditable-input,
1886
+.form-search .input-prepend,
1887
+.form-inline .input-prepend,
1888
+.form-horizontal .input-prepend,
1889
+.form-search .input-append,
1890
+.form-inline .input-append,
1891
+.form-horizontal .input-append {
1892
+  display: inline-block;
1893
+  *display: inline;
1894
+  margin-bottom: 0;
1895
+  vertical-align: middle;
1896
+  *zoom: 1;
1897
+}
1898
+
1899
+.form-search .hide,
1900
+.form-inline .hide,
1901
+.form-horizontal .hide {
1902
+  display: none;
1903
+}
1904
+
1905
+.form-search label,
1906
+.form-inline label,
1907
+.form-search .btn-group,
1908
+.form-inline .btn-group {
1909
+  display: inline-block;
1910
+}
1911
+
1912
+.form-search .input-append,
1913
+.form-inline .input-append,
1914
+.form-search .input-prepend,
1915
+.form-inline .input-prepend {
1916
+  margin-bottom: 0;
1917
+}
1918
+
1919
+.form-search .radio,
1920
+.form-search .checkbox,
1921
+.form-inline .radio,
1922
+.form-inline .checkbox {
1923
+  padding-left: 0;
1924
+  margin-bottom: 0;
1925
+  vertical-align: middle;
1926
+}
1927
+
1928
+.form-search .radio input[type="radio"],
1929
+.form-search .checkbox input[type="checkbox"],
1930
+.form-inline .radio input[type="radio"],
1931
+.form-inline .checkbox input[type="checkbox"] {
1932
+  float: left;
1933
+  margin-right: 3px;
1934
+  margin-left: 0;
1935
+}
1936
+
1937
+.control-group {
1938
+  margin-bottom: 10px;
1939
+}
1940
+
1941
+legend + .control-group {
1942
+  margin-top: 20px;
1943
+  -webkit-margin-top-collapse: separate;
1944
+}
1945
+
1946
+.form-horizontal .control-group {
1947
+  margin-bottom: 20px;
1948
+  *zoom: 1;
1949
+}
1950
+
1951
+.form-horizontal .control-group:before,
1952
+.form-horizontal .control-group:after {
1953
+  display: table;
1954
+  line-height: 0;
1955
+  content: "";
1956
+}
1957
+
1958
+.form-horizontal .control-group:after {
1959
+  clear: both;
1960
+}
1961
+
1962
+.form-horizontal .control-label {
1963
+  float: left;
1964
+  width: 160px;
1965
+  padding-top: 5px;
1966
+  text-align: right;
1967
+}
1968
+
1969
+.form-horizontal .controls {
1970
+  *display: inline-block;
1971
+  *padding-left: 20px;
1972
+  margin-left: 180px;
1973
+  *margin-left: 0;
1974
+}
1975
+
1976
+.form-horizontal .controls:first-child {
1977
+  *padding-left: 180px;
1978
+}
1979
+
1980
+.form-horizontal .help-block {
1981
+  margin-bottom: 0;
1982
+}
1983
+
1984
+.form-horizontal input + .help-block,
1985
+.form-horizontal select + .help-block,
1986
+.form-horizontal textarea + .help-block,
1987
+.form-horizontal .uneditable-input + .help-block,
1988
+.form-horizontal .input-prepend + .help-block,
1989
+.form-horizontal .input-append + .help-block {
1990
+  margin-top: 10px;
1991
+}
1992
+
1993
+.form-horizontal .form-actions {
1994
+  padding-left: 180px;
1995
+}
1996
+
1997
+table {
1998
+  max-width: 100%;
1999
+  background-color: transparent;
2000
+  border-collapse: collapse;
2001
+  border-spacing: 0;
2002
+}
2003
+
2004
+.table {
2005
+  width: 100%;
2006
+  margin-bottom: 20px;
2007
+}
2008
+
2009
+.table th,
2010
+.table td {
2011
+  padding: 8px;
2012
+  line-height: 20px;
2013
+  text-align: left;
2014
+  vertical-align: top;
2015
+  border-top: 1px solid #dddddd;
2016
+}
2017
+
2018
+.table th {
2019
+  font-weight: bold;
2020
+}
2021
+
2022
+.table thead th {
2023
+  vertical-align: bottom;
2024
+}
2025
+
2026
+.table caption + thead tr:first-child th,
2027
+.table caption + thead tr:first-child td,
2028
+.table colgroup + thead tr:first-child th,
2029
+.table colgroup + thead tr:first-child td,
2030
+.table thead:first-child tr:first-child th,
2031
+.table thead:first-child tr:first-child td {
2032
+  border-top: 0;
2033
+}
2034
+
2035
+.table tbody + tbody {
2036
+  border-top: 2px solid #dddddd;
2037
+}
2038
+
2039
+.table .table {
2040
+  background-color: #ffffff;
2041
+}
2042
+
2043
+.table-condensed th,
2044
+.table-condensed td {
2045
+  padding: 4px 5px;
2046
+}
2047
+
2048
+.table-bordered {
2049
+  border: 1px solid #dddddd;
2050
+  border-collapse: separate;
2051
+  *border-collapse: collapse;
2052
+  border-left: 0;
2053
+  -webkit-border-radius: 4px;
2054
+     -moz-border-radius: 4px;
2055
+          border-radius: 4px;
2056
+}
2057
+
2058
+.table-bordered th,
2059
+.table-bordered td {
2060
+  border-left: 1px solid #dddddd;
2061
+}
2062
+
2063
+.table-bordered caption + thead tr:first-child th,
2064
+.table-bordered caption + tbody tr:first-child th,
2065
+.table-bordered caption + tbody tr:first-child td,
2066
+.table-bordered colgroup + thead tr:first-child th,
2067
+.table-bordered colgroup + tbody tr:first-child th,
2068
+.table-bordered colgroup + tbody tr:first-child td,
2069
+.table-bordered thead:first-child tr:first-child th,
2070
+.table-bordered tbody:first-child tr:first-child th,
2071
+.table-bordered tbody:first-child tr:first-child td {
2072
+  border-top: 0;
2073
+}
2074
+
2075
+.table-bordered thead:first-child tr:first-child > th:first-child,
2076
+.table-bordered tbody:first-child tr:first-child > td:first-child,
2077
+.table-bordered tbody:first-child tr:first-child > th:first-child {
2078
+  -webkit-border-top-left-radius: 4px;
2079
+          border-top-left-radius: 4px;
2080
+  -moz-border-radius-topleft: 4px;
2081
+}
2082
+
2083
+.table-bordered thead:first-child tr:first-child > th:last-child,
2084
+.table-bordered tbody:first-child tr:first-child > td:last-child,
2085
+.table-bordered tbody:first-child tr:first-child > th:last-child {
2086
+  -webkit-border-top-right-radius: 4px;
2087
+          border-top-right-radius: 4px;
2088
+  -moz-border-radius-topright: 4px;
2089
+}
2090
+
2091
+.table-bordered thead:last-child tr:last-child > th:first-child,
2092
+.table-bordered tbody:last-child tr:last-child > td:first-child,
2093
+.table-bordered tbody:last-child tr:last-child > th:first-child,
2094
+.table-bordered tfoot:last-child tr:last-child > td:first-child,
2095
+.table-bordered tfoot:last-child tr:last-child > th:first-child {
2096
+  -webkit-border-bottom-left-radius: 4px;
2097
+          border-bottom-left-radius: 4px;
2098
+  -moz-border-radius-bottomleft: 4px;
2099
+}
2100
+
2101
+.table-bordered thead:last-child tr:last-child > th:last-child,
2102
+.table-bordered tbody:last-child tr:last-child > td:last-child,
2103
+.table-bordered tbody:last-child tr:last-child > th:last-child,
2104
+.table-bordered tfoot:last-child tr:last-child > td:last-child,
2105
+.table-bordered tfoot:last-child tr:last-child > th:last-child {
2106
+  -webkit-border-bottom-right-radius: 4px;
2107
+          border-bottom-right-radius: 4px;
2108
+  -moz-border-radius-bottomright: 4px;
2109
+}
2110
+
2111
+.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
2112
+  -webkit-border-bottom-left-radius: 0;
2113
+          border-bottom-left-radius: 0;
2114
+  -moz-border-radius-bottomleft: 0;
2115
+}
2116
+
2117
+.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
2118
+  -webkit-border-bottom-right-radius: 0;
2119
+          border-bottom-right-radius: 0;
2120
+  -moz-border-radius-bottomright: 0;
2121
+}
2122
+
2123
+.table-bordered caption + thead tr:first-child th:first-child,
2124
+.table-bordered caption + tbody tr:first-child td:first-child,
2125
+.table-bordered colgroup + thead tr:first-child th:first-child,
2126
+.table-bordered colgroup + tbody tr:first-child td:first-child {
2127
+  -webkit-border-top-left-radius: 4px;
2128
+          border-top-left-radius: 4px;
2129
+  -moz-border-radius-topleft: 4px;
2130
+}
2131
+
2132
+.table-bordered caption + thead tr:first-child th:last-child,
2133
+.table-bordered caption + tbody tr:first-child td:last-child,
2134
+.table-bordered colgroup + thead tr:first-child th:last-child,
2135
+.table-bordered colgroup + tbody tr:first-child td:last-child {
2136
+  -webkit-border-top-right-radius: 4px;
2137
+          border-top-right-radius: 4px;
2138
+  -moz-border-radius-topright: 4px;
2139
+}
2140
+
2141
+.table-striped tbody > tr:nth-child(odd) > td,
2142
+.table-striped tbody > tr:nth-child(odd) > th {
2143
+  background-color: #f9f9f9;
2144
+}
2145
+
2146
+.table-hover tbody tr:hover > td,
2147
+.table-hover tbody tr:hover > th {
2148
+  background-color: #f5f5f5;
2149
+}
2150
+
2151
+table td[class*="span"],
2152
+table th[class*="span"],
2153
+.row-fluid table td[class*="span"],
2154
+.row-fluid table th[class*="span"] {
2155
+  display: table-cell;
2156
+  float: none;
2157
+  margin-left: 0;
2158
+}
2159
+
2160
+.table td.span1,
2161
+.table th.span1 {
2162
+  float: none;
2163
+  width: 44px;
2164
+  margin-left: 0;
2165
+}
2166
+
2167
+.table td.span2,
2168
+.table th.span2 {
2169
+  float: none;
2170
+  width: 124px;
2171
+  margin-left: 0;
2172
+}
2173
+
2174
+.table td.span3,
2175
+.table th.span3 {
2176
+  float: none;
2177
+  width: 204px;
2178
+  margin-left: 0;
2179
+}
2180
+
2181
+.table td.span4,
2182
+.table th.span4 {
2183
+  float: none;
2184
+  width: 284px;
2185
+  margin-left: 0;
2186
+}
2187
+
2188
+.table td.span5,
2189
+.table th.span5 {
2190
+  float: none;
2191
+  width: 364px;
2192
+  margin-left: 0;
2193
+}
2194
+
2195
+.table td.span6,
2196
+.table th.span6 {
2197
+  float: none;
2198
+  width: 444px;
2199
+  margin-left: 0;
2200
+}
2201
+
2202
+.table td.span7,
2203
+.table th.span7 {
2204
+  float: none;
2205
+  width: 524px;
2206
+  margin-left: 0;
2207
+}
2208
+
2209
+.table td.span8,
2210
+.table th.span8 {
2211
+  float: none;
2212
+  width: 604px;
2213
+  margin-left: 0;
2214
+}
2215
+
2216
+.table td.span9,
2217
+.table th.span9 {
2218
+  float: none;
2219
+  width: 684px;
2220
+  margin-left: 0;
2221
+}
2222
+
2223
+.table td.span10,
2224
+.table th.span10 {
2225
+  float: none;
2226
+  width: 764px;
2227
+  margin-left: 0;
2228
+}
2229
+
2230
+.table td.span11,
2231
+.table th.span11 {
2232
+  float: none;
2233
+  width: 844px;
2234
+  margin-left: 0;
2235
+}
2236
+
2237
+.table td.span12,
2238
+.table th.span12 {
2239
+  float: none;
2240
+  width: 924px;
2241
+  margin-left: 0;
2242
+}
2243
+
2244
+.table tbody tr.success > td {
2245
+  background-color: #dff0d8;
2246
+}
2247
+
2248
+.table tbody tr.error > td {
2249
+  background-color: #f2dede;
2250
+}
2251
+
2252
+.table tbody tr.warning > td {
2253
+  background-color: #fcf8e3;
2254
+}
2255
+
2256
+.table tbody tr.info > td {
2257
+  background-color: #d9edf7;
2258
+}
2259
+
2260
+.table-hover tbody tr.success:hover > td {
2261
+  background-color: #d0e9c6;
2262
+}
2263
+
2264
+.table-hover tbody tr.error:hover > td {
2265
+  background-color: #ebcccc;
2266
+}
2267
+
2268
+.table-hover tbody tr.warning:hover > td {
2269
+  background-color: #faf2cc;
2270
+}
2271
+
2272
+.table-hover tbody tr.info:hover > td {
2273
+  background-color: #c4e3f3;
2274
+}
2275
+
2276
+[class^="icon-"],
2277
+[class*=" icon-"] {
2278
+  display: inline-block;
2279
+  width: 14px;
2280
+  height: 14px;
2281
+  margin-top: 1px;
2282
+  *margin-right: .3em;
2283
+  line-height: 14px;
2284
+  vertical-align: text-top;
2285
+  background-image: url("../img/glyphicons-halflings.png");
2286
+  background-position: 14px 14px;
2287
+  background-repeat: no-repeat;
2288
+}
2289
+
2290
+/* White icons with optional class, or on hover/focus/active states of certain elements */
2291
+
2292
+.icon-white,
2293
+.nav-pills > .active > a > [class^="icon-"],
2294
+.nav-pills > .active > a > [class*=" icon-"],
2295
+.nav-list > .active > a > [class^="icon-"],
2296
+.nav-list > .active > a > [class*=" icon-"],
2297
+.navbar-inverse .nav > .active > a > [class^="icon-"],
2298
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
2299
+.dropdown-menu > li > a:hover > [class^="icon-"],
2300
+.dropdown-menu > li > a:focus > [class^="icon-"],
2301
+.dropdown-menu > li > a:hover > [class*=" icon-"],
2302
+.dropdown-menu > li > a:focus > [class*=" icon-"],
2303
+.dropdown-menu > .active > a > [class^="icon-"],
2304
+.dropdown-menu > .active > a > [class*=" icon-"],
2305
+.dropdown-submenu:hover > a > [class^="icon-"],
2306
+.dropdown-submenu:focus > a > [class^="icon-"],
2307
+.dropdown-submenu:hover > a > [class*=" icon-"],
2308
+.dropdown-submenu:focus > a > [class*=" icon-"] {
2309
+  background-image: url("../img/glyphicons-halflings-white.png");
2310
+}
2311
+
2312
+.icon-glass {
2313
+  background-position: 0      0;
2314
+}
2315
+
2316
+.icon-music {
2317
+  background-position: -24px 0;
2318
+}
2319
+
2320
+.icon-search {
2321
+  background-position: -48px 0;
2322
+}
2323
+
2324
+.icon-envelope {
2325
+  background-position: -72px 0;
2326
+}
2327
+
2328
+.icon-heart {
2329
+  background-position: -96px 0;
2330
+}
2331
+
2332
+.icon-star {
2333
+  background-position: -120px 0;
2334
+}
2335
+
2336
+.icon-star-empty {
2337
+  background-position: -144px 0;
2338
+}
2339
+
2340
+.icon-user {
2341
+  background-position: -168px 0;
2342
+}
2343
+
2344
+.icon-film {
2345
+  background-position: -192px 0;
2346
+}
2347
+
2348
+.icon-th-large {
2349
+  background-position: -216px 0;
2350
+}
2351
+
2352
+.icon-th {
2353
+  background-position: -240px 0;
2354
+}
2355
+
2356
+.icon-th-list {
2357
+  background-position: -264px 0;
2358
+}
2359
+
2360
+.icon-ok {
2361
+  background-position: -288px 0;
2362
+}
2363
+
2364
+.icon-remove {
2365
+  background-position: -312px 0;
2366
+}
2367
+
2368
+.icon-zoom-in {
2369
+  background-position: -336px 0;
2370
+}
2371
+
2372
+.icon-zoom-out {
2373
+  background-position: -360px 0;
2374
+}
2375
+
2376
+.icon-off {
2377
+  background-position: -384px 0;
2378
+}
2379
+
2380
+.icon-signal {
2381
+  background-position: -408px 0;
2382
+}
2383
+
2384
+.icon-cog {
2385
+  background-position: -432px 0;
2386
+}
2387
+
2388
+.icon-trash {
2389
+  background-position: -456px 0;
2390
+}
2391
+
2392
+.icon-home {
2393
+  background-position: 0 -24px;
2394
+}
2395
+
2396
+.icon-file {
2397
+  background-position: -24px -24px;
2398
+}
2399
+
2400
+.icon-time {
2401
+  background-position: -48px -24px;
2402
+}
2403
+
2404
+.icon-road {
2405
+  background-position: -72px -24px;
2406
+}
2407
+
2408
+.icon-download-alt {
2409
+  background-position: -96px -24px;
2410
+}
2411
+
2412
+.icon-download {
2413
+  background-position: -120px -24px;
2414
+}
2415
+
2416
+.icon-upload {
2417
+  background-position: -144px -24px;
2418
+}
2419
+
2420
+.icon-inbox {
2421
+  background-position: -168px -24px;
2422
+}
2423
+
2424
+.icon-play-circle {
2425
+  background-position: -192px -24px;
2426
+}
2427
+
2428
+.icon-repeat {
2429
+  background-position: -216px -24px;
2430
+}
2431
+
2432
+.icon-refresh {
2433
+  background-position: -240px -24px;
2434
+}
2435
+
2436
+.icon-list-alt {
2437
+  background-position: -264px -24px;
2438
+}
2439
+
2440
+.icon-lock {
2441
+  background-position: -287px -24px;
2442
+}
2443
+
2444
+.icon-flag {
2445
+  background-position: -312px -24px;
2446
+}
2447
+
2448
+.icon-headphones {
2449
+  background-position: -336px -24px;
2450
+}
2451
+
2452
+.icon-volume-off {
2453
+  background-position: -360px -24px;
2454
+}
2455
+
2456
+.icon-volume-down {
2457
+  background-position: -384px -24px;
2458
+}
2459
+
2460
+.icon-volume-up {
2461
+  background-position: -408px -24px;
2462
+}
2463
+
2464
+.icon-qrcode {
2465
+  background-position: -432px -24px;
2466
+}
2467
+
2468
+.icon-barcode {
2469
+  background-position: -456px -24px;
2470
+}
2471
+
2472
+.icon-tag {
2473
+  background-position: 0 -48px;
2474
+}
2475
+
2476
+.icon-tags {
2477
+  background-position: -25px -48px;
2478
+}
2479
+
2480
+.icon-book {
2481
+  background-position: -48px -48px;
2482
+}
2483
+
2484
+.icon-bookmark {
2485
+  background-position: -72px -48px;
2486
+}
2487
+
2488
+.icon-print {
2489
+  background-position: -96px -48px;
2490
+}
2491
+
2492
+.icon-camera {
2493
+  background-position: -120px -48px;
2494
+}
2495
+
2496
+.icon-font {
2497
+  background-position: -144px -48px;
2498
+}
2499
+
2500
+.icon-bold {
2501
+  background-position: -167px -48px;
2502
+}
2503
+
2504
+.icon-italic {
2505
+  background-position: -192px -48px;
2506
+}
2507
+
2508
+.icon-text-height {
2509
+  background-position: -216px -48px;
2510
+}
2511
+
2512
+.icon-text-width {
2513
+  background-position: -240px -48px;
2514
+}
2515
+
2516
+.icon-align-left {
2517
+  background-position: -264px -48px;
2518
+}
2519
+
2520
+.icon-align-center {
2521
+  background-position: -288px -48px;
2522
+}
2523
+
2524
+.icon-align-right {
2525
+  background-position: -312px -48px;
2526
+}
2527
+
2528
+.icon-align-justify {
2529
+  background-position: -336px -48px;
2530
+}
2531
+
2532
+.icon-list {
2533
+  background-position: -360px -48px;
2534
+}
2535
+
2536
+.icon-indent-left {
2537
+  background-position: -384px -48px;
2538
+}
2539
+
2540
+.icon-indent-right {
2541
+  background-position: -408px -48px;
2542
+}
2543
+
2544
+.icon-facetime-video {
2545
+  background-position: -432px -48px;
2546
+}
2547
+
2548
+.icon-picture {
2549
+  background-position: -456px -48px;
2550
+}
2551
+
2552
+.icon-pencil {
2553
+  background-position: 0 -72px;
2554
+}
2555
+
2556
+.icon-map-marker {
2557
+  background-position: -24px -72px;
2558
+}
2559
+
2560
+.icon-adjust {
2561
+  background-position: -48px -72px;
2562
+}
2563
+
2564
+.icon-tint {
2565
+  background-position: -72px -72px;
2566
+}
2567
+
2568
+.icon-edit {
2569
+  background-position: -96px -72px;
2570
+}
2571
+
2572
+.icon-share {
2573
+  background-position: -120px -72px;
2574
+}
2575
+
2576
+.icon-check {
2577
+  background-position: -144px -72px;
2578
+}
2579
+
2580
+.icon-move {
2581
+  background-position: -168px -72px;
2582
+}
2583
+
2584
+.icon-step-backward {
2585
+  background-position: -192px -72px;
2586
+}
2587
+
2588
+.icon-fast-backward {
2589
+  background-position: -216px -72px;
2590
+}
2591
+
2592
+.icon-backward {
2593
+  background-position: -240px -72px;
2594
+}
2595
+
2596
+.icon-play {
2597
+  background-position: -264px -72px;
2598
+}
2599
+
2600
+.icon-pause {
2601
+  background-position: -288px -72px;
2602
+}
2603
+
2604
+.icon-stop {
2605
+  background-position: -312px -72px;
2606
+}
2607
+
2608
+.icon-forward {
2609
+  background-position: -336px -72px;
2610
+}
2611
+
2612
+.icon-fast-forward {
2613
+  background-position: -360px -72px;
2614
+}
2615
+
2616
+.icon-step-forward {
2617
+  background-position: -384px -72px;
2618
+}
2619
+
2620
+.icon-eject {
2621
+  background-position: -408px -72px;
2622
+}
2623
+
2624
+.icon-chevron-left {
2625
+  background-position: -432px -72px;
2626
+}
2627
+
2628
+.icon-chevron-right {
2629
+  background-position: -456px -72px;
2630
+}
2631
+
2632
+.icon-plus-sign {
2633
+  background-position: 0 -96px;
2634
+}
2635
+
2636
+.icon-minus-sign {
2637
+  background-position: -24px -96px;
2638
+}
2639
+
2640
+.icon-remove-sign {
2641
+  background-position: -48px -96px;
2642
+}
2643
+
2644
+.icon-ok-sign {
2645
+  background-position: -72px -96px;
2646
+}
2647
+
2648
+.icon-question-sign {
2649
+  background-position: -96px -96px;
2650
+}
2651
+
2652
+.icon-info-sign {
2653
+  background-position: -120px -96px;
2654
+}
2655
+
2656
+.icon-screenshot {
2657
+  background-position: -144px -96px;
2658
+}
2659
+
2660
+.icon-remove-circle {
2661
+  background-position: -168px -96px;
2662
+}
2663
+
2664
+.icon-ok-circle {
2665
+  background-position: -192px -96px;
2666
+}
2667
+
2668
+.icon-ban-circle {
2669
+  background-position: -216px -96px;
2670
+}
2671
+
2672
+.icon-arrow-left {
2673
+  background-position: -240px -96px;
2674
+}
2675
+
2676
+.icon-arrow-right {
2677
+  background-position: -264px -96px;
2678
+}
2679
+
2680
+.icon-arrow-up {
2681
+  background-position: -289px -96px;
2682
+}
2683
+
2684
+.icon-arrow-down {
2685
+  background-position: -312px -96px;
2686
+}
2687
+
2688
+.icon-share-alt {
2689
+  background-position: -336px -96px;
2690
+}
2691
+
2692
+.icon-resize-full {
2693
+  background-position: -360px -96px;
2694
+}
2695
+
2696
+.icon-resize-small {
2697
+  background-position: -384px -96px;
2698
+}
2699
+
2700
+.icon-plus {
2701
+  background-position: -408px -96px;
2702
+}
2703
+
2704
+.icon-minus {
2705
+  background-position: -433px -96px;
2706
+}
2707
+
2708
+.icon-asterisk {
2709
+  background-position: -456px -96px;
2710
+}
2711
+
2712
+.icon-exclamation-sign {
2713
+  background-position: 0 -120px;
2714
+}
2715
+
2716
+.icon-gift {
2717
+  background-position: -24px -120px;
2718
+}
2719
+
2720
+.icon-leaf {
2721
+  background-position: -48px -120px;
2722
+}
2723
+
2724
+.icon-fire {
2725
+  background-position: -72px -120px;
2726
+}
2727
+
2728
+.icon-eye-open {
2729
+  background-position: -96px -120px;
2730
+}
2731
+
2732
+.icon-eye-close {
2733
+  background-position: -120px -120px;
2734
+}
2735
+
2736
+.icon-warning-sign {
2737
+  background-position: -144px -120px;
2738
+}
2739
+
2740
+.icon-plane {
2741
+  background-position: -168px -120px;
2742
+}
2743
+
2744
+.icon-calendar {
2745
+  background-position: -192px -120px;
2746
+}
2747
+
2748
+.icon-random {
2749
+  width: 16px;
2750
+  background-position: -216px -120px;
2751
+}
2752
+
2753
+.icon-comment {
2754
+  background-position: -240px -120px;
2755
+}
2756
+
2757
+.icon-magnet {
2758
+  background-position: -264px -120px;
2759
+}
2760
+
2761
+.icon-chevron-up {
2762
+  background-position: -288px -120px;
2763
+}
2764
+
2765
+.icon-chevron-down {
2766
+  background-position: -313px -119px;
2767
+}
2768
+
2769
+.icon-retweet {
2770
+  background-position: -336px -120px;
2771
+}
2772
+
2773
+.icon-shopping-cart {
2774
+  background-position: -360px -120px;
2775
+}
2776
+
2777
+.icon-folder-close {
2778
+  width: 16px;
2779
+  background-position: -384px -120px;
2780
+}
2781
+
2782
+.icon-folder-open {
2783
+  width: 16px;
2784
+  background-position: -408px -120px;
2785
+}
2786
+
2787
+.icon-resize-vertical {
2788
+  background-position: -432px -119px;
2789
+}
2790
+
2791
+.icon-resize-horizontal {
2792
+  background-position: -456px -118px;
2793
+}
2794
+
2795
+.icon-hdd {
2796
+  background-position: 0 -144px;
2797
+}
2798
+
2799
+.icon-bullhorn {
2800
+  background-position: -24px -144px;
2801
+}
2802
+
2803
+.icon-bell {
2804
+  background-position: -48px -144px;
2805
+}
2806
+
2807
+.icon-certificate {
2808
+  background-position: -72px -144px;
2809
+}
2810
+
2811
+.icon-thumbs-up {
2812
+  background-position: -96px -144px;
2813
+}
2814
+
2815
+.icon-thumbs-down {
2816
+  background-position: -120px -144px;
2817
+}
2818
+
2819
+.icon-hand-right {
2820
+  background-position: -144px -144px;
2821
+}
2822
+
2823
+.icon-hand-left {
2824
+  background-position: -168px -144px;
2825
+}
2826
+
2827
+.icon-hand-up {
2828
+  background-position: -192px -144px;
2829
+}
2830
+
2831
+.icon-hand-down {
2832
+  background-position: -216px -144px;
2833
+}
2834
+
2835
+.icon-circle-arrow-right {
2836
+  background-position: -240px -144px;
2837
+}
2838
+
2839
+.icon-circle-arrow-left {
2840
+  background-position: -264px -144px;
2841
+}
2842
+
2843
+.icon-circle-arrow-up {
2844
+  background-position: -288px -144px;
2845
+}
2846
+
2847
+.icon-circle-arrow-down {
2848
+  background-position: -312px -144px;
2849
+}
2850
+
2851
+.icon-globe {
2852
+  background-position: -336px -144px;
2853
+}
2854
+
2855
+.icon-wrench {
2856
+  background-position: -360px -144px;
2857
+}
2858
+
2859
+.icon-tasks {
2860
+  background-position: -384px -144px;
2861
+}
2862
+
2863
+.icon-filter {
2864
+  background-position: -408px -144px;
2865
+}
2866
+
2867
+.icon-briefcase {
2868
+  background-position: -432px -144px;
2869
+}
2870
+
2871
+.icon-fullscreen {
2872
+  background-position: -456px -144px;
2873
+}
2874
+
2875
+.dropup,
2876
+.dropdown {
2877
+  position: relative;
2878
+}
2879
+
2880
+.dropdown-toggle {
2881
+  *margin-bottom: -3px;
2882
+}
2883
+
2884
+.dropdown-toggle:active,
2885
+.open .dropdown-toggle {
2886
+  outline: 0;
2887
+}
2888
+
2889
+.caret {
2890
+  display: inline-block;
2891
+  width: 0;
2892
+  height: 0;
2893
+  vertical-align: top;
2894
+  border-top: 4px solid #000000;
2895
+  border-right: 4px solid transparent;
2896
+  border-left: 4px solid transparent;
2897
+  content: "";
2898
+}
2899
+
2900
+.dropdown .caret {
2901
+  margin-top: 8px;
2902
+  margin-left: 2px;
2903
+}
2904
+
2905
+.dropdown-menu {
2906
+  position: absolute;
2907
+  top: 100%;
2908
+  left: 0;
2909
+  z-index: 1000;
2910
+  display: none;
2911
+  float: left;
2912
+  min-width: 160px;
2913
+  padding: 5px 0;
2914
+  margin: 2px 0 0;
2915
+  list-style: none;
2916
+  background-color: #ffffff;
2917
+  border: 1px solid #ccc;
2918
+  border: 1px solid rgba(0, 0, 0, 0.2);
2919
+  *border-right-width: 2px;
2920
+  *border-bottom-width: 2px;
2921
+  -webkit-border-radius: 6px;
2922
+     -moz-border-radius: 6px;
2923
+          border-radius: 6px;
2924
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2925
+     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2926
+          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2927
+  -webkit-background-clip: padding-box;
2928
+     -moz-background-clip: padding;
2929
+          background-clip: padding-box;
2930
+}
2931
+
2932
+.dropdown-menu.pull-right {
2933
+  right: 0;
2934
+  left: auto;
2935
+}
2936
+
2937
+.dropdown-menu .divider {
2938
+  *width: 100%;
2939
+  height: 1px;
2940
+  margin: 9px 1px;
2941
+  *margin: -5px 0 5px;
2942
+  overflow: hidden;
2943
+  background-color: #e5e5e5;
2944
+  border-bottom: 1px solid #ffffff;
2945
+}
2946
+
2947
+.dropdown-menu > li > a {
2948
+  display: block;
2949
+  padding: 3px 20px;
2950
+  clear: both;
2951
+  font-weight: normal;
2952
+  line-height: 20px;
2953
+  color: #333333;
2954
+  white-space: nowrap;
2955
+}
2956
+
2957
+.dropdown-menu > li > a:hover,
2958
+.dropdown-menu > li > a:focus,
2959
+.dropdown-submenu:hover > a,
2960
+.dropdown-submenu:focus > a {
2961
+  color: #ffffff;
2962
+  text-decoration: none;
2963
+  background-color: #0081c2;
2964
+  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
2965
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
2966
+  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
2967
+  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
2968
+  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
2969
+  background-repeat: repeat-x;
2970
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
2971
+}
2972
+
2973
+.dropdown-menu > .active > a,
2974
+.dropdown-menu > .active > a:hover,
2975
+.dropdown-menu > .active > a:focus {
2976
+  color: #ffffff;
2977
+  text-decoration: none;
2978
+  background-color: #0081c2;
2979
+  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
2980
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
2981
+  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
2982
+  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
2983
+  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
2984
+  background-repeat: repeat-x;
2985
+  outline: 0;
2986
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
2987
+}
2988
+
2989
+.dropdown-menu > .disabled > a,
2990
+.dropdown-menu > .disabled > a:hover,
2991
+.dropdown-menu > .disabled > a:focus {
2992
+  color: #999999;
2993
+}
2994
+
2995
+.dropdown-menu > .disabled > a:hover,
2996
+.dropdown-menu > .disabled > a:focus {
2997
+  text-decoration: none;
2998
+  cursor: default;
2999
+  background-color: transparent;
3000
+  background-image: none;
3001
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3002
+}
3003
+
3004
+.open {
3005
+  *z-index: 1000;
3006
+}
3007
+
3008
+.open > .dropdown-menu {
3009
+  display: block;
3010
+}
3011
+
3012
+.pull-right > .dropdown-menu {
3013
+  right: 0;
3014
+  left: auto;
3015
+}
3016
+
3017
+.dropup .caret,
3018
+.navbar-fixed-bottom .dropdown .caret {
3019
+  border-top: 0;
3020
+  border-bottom: 4px solid #000000;
3021
+  content: "";
3022
+}
3023
+
3024
+.dropup .dropdown-menu,
3025
+.navbar-fixed-bottom .dropdown .dropdown-menu {
3026
+  top: auto;
3027
+  bottom: 100%;
3028
+  margin-bottom: 1px;
3029
+}
3030
+
3031
+.dropdown-submenu {
3032
+  position: relative;
3033
+}
3034
+
3035
+.dropdown-submenu > .dropdown-menu {
3036
+  top: 0;
3037
+  left: 100%;
3038
+  margin-top: -6px;
3039
+  margin-left: -1px;
3040
+  -webkit-border-radius: 0 6px 6px 6px;
3041
+     -moz-border-radius: 0 6px 6px 6px;
3042
+          border-radius: 0 6px 6px 6px;
3043
+}
3044
+
3045
+.dropdown-submenu:hover > .dropdown-menu {
3046
+  display: block;
3047
+}
3048
+
3049
+.dropup .dropdown-submenu > .dropdown-menu {
3050
+  top: auto;
3051
+  bottom: 0;
3052
+  margin-top: 0;
3053
+  margin-bottom: -2px;
3054
+  -webkit-border-radius: 5px 5px 5px 0;
3055
+     -moz-border-radius: 5px 5px 5px 0;
3056
+          border-radius: 5px 5px 5px 0;
3057
+}
3058
+
3059
+.dropdown-submenu > a:after {
3060
+  display: block;
3061
+  float: right;
3062
+  width: 0;
3063
+  height: 0;
3064
+  margin-top: 5px;
3065
+  margin-right: -10px;
3066
+  border-color: transparent;
3067
+  border-left-color: #cccccc;
3068
+  border-style: solid;
3069
+  border-width: 5px 0 5px 5px;
3070
+  content: " ";
3071
+}
3072
+
3073
+.dropdown-submenu:hover > a:after {
3074
+  border-left-color: #ffffff;
3075
+}
3076
+
3077
+.dropdown-submenu.pull-left {
3078
+  float: none;
3079
+}
3080
+
3081
+.dropdown-submenu.pull-left > .dropdown-menu {
3082
+  left: -100%;
3083
+  margin-left: 10px;
3084
+  -webkit-border-radius: 6px 0 6px 6px;
3085
+     -moz-border-radius: 6px 0 6px 6px;
3086
+          border-radius: 6px 0 6px 6px;
3087
+}
3088
+
3089
+.dropdown .dropdown-menu .nav-header {
3090
+  padding-right: 20px;
3091
+  padding-left: 20px;
3092
+}
3093
+
3094
+.typeahead {
3095
+  z-index: 1051;
3096
+  margin-top: 2px;
3097
+  -webkit-border-radius: 4px;
3098
+     -moz-border-radius: 4px;
3099
+          border-radius: 4px;
3100
+}
3101
+
3102
+.well {
3103
+  min-height: 20px;
3104
+  padding: 19px;
3105
+  margin-bottom: 20px;
3106
+  background-color: #f5f5f5;
3107
+  border: 1px solid #e3e3e3;
3108
+  -webkit-border-radius: 4px;
3109
+     -moz-border-radius: 4px;
3110
+          border-radius: 4px;
3111
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
3112
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
3113
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
3114
+}
3115
+
3116
+.well blockquote {
3117
+  border-color: #ddd;
3118
+  border-color: rgba(0, 0, 0, 0.15);
3119
+}
3120
+
3121
+.well-large {
3122
+  padding: 24px;
3123
+  -webkit-border-radius: 6px;
3124
+     -moz-border-radius: 6px;
3125
+          border-radius: 6px;
3126
+}
3127
+
3128
+.well-small {
3129
+  padding: 9px;
3130
+  -webkit-border-radius: 3px;
3131
+     -moz-border-radius: 3px;
3132
+          border-radius: 3px;
3133
+}
3134
+
3135
+.fade {
3136
+  opacity: 0;
3137
+  -webkit-transition: opacity 0.15s linear;
3138
+     -moz-transition: opacity 0.15s linear;
3139
+       -o-transition: opacity 0.15s linear;
3140
+          transition: opacity 0.15s linear;
3141
+}
3142
+
3143
+.fade.in {
3144
+  opacity: 1;
3145
+}
3146
+
3147
+.collapse {
3148
+  position: relative;
3149
+  height: 0;
3150
+  overflow: hidden;
3151
+  -webkit-transition: height 0.35s ease;
3152
+     -moz-transition: height 0.35s ease;
3153
+       -o-transition: height 0.35s ease;
3154
+          transition: height 0.35s ease;
3155
+}
3156
+
3157
+.collapse.in {
3158
+  height: auto;
3159
+}
3160
+
3161
+.close {
3162
+  float: right;
3163
+  font-size: 20px;
3164
+  font-weight: bold;
3165
+  line-height: 20px;
3166
+  color: #000000;
3167
+  text-shadow: 0 1px 0 #ffffff;
3168
+  opacity: 0.2;
3169
+  filter: alpha(opacity=20);
3170
+}
3171
+
3172
+.close:hover,
3173
+.close:focus {
3174
+  color: #000000;
3175
+  text-decoration: none;
3176
+  cursor: pointer;
3177
+  opacity: 0.4;
3178
+  filter: alpha(opacity=40);
3179
+}
3180
+
3181
+button.close {
3182
+  padding: 0;
3183
+  cursor: pointer;
3184
+  background: transparent;
3185
+  border: 0;
3186
+  -webkit-appearance: none;
3187
+}
3188
+
3189
+.btn {
3190
+  display: inline-block;
3191
+  *display: inline;
3192
+  padding: 4px 12px;
3193
+  margin-bottom: 0;
3194
+  *margin-left: .3em;
3195
+  font-size: 14px;
3196
+  line-height: 20px;
3197
+  color: #333333;
3198
+  text-align: center;
3199
+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
3200
+  vertical-align: middle;
3201
+  cursor: pointer;
3202
+  background-color: #f5f5f5;
3203
+  *background-color: #e6e6e6;
3204
+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
3205
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
3206
+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
3207
+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
3208
+  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
3209
+  background-repeat: repeat-x;
3210
+  border: 1px solid #cccccc;
3211
+  *border: 0;
3212
+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
3213
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3214
+  border-bottom-color: #b3b3b3;
3215
+  -webkit-border-radius: 4px;
3216
+     -moz-border-radius: 4px;
3217
+          border-radius: 4px;
3218
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
3219
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3220
+  *zoom: 1;
3221
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3222
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3223
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3224
+}
3225
+
3226
+.btn:hover,
3227
+.btn:focus,
3228
+.btn:active,
3229
+.btn.active,
3230
+.btn.disabled,
3231
+.btn[disabled] {
3232
+  color: #333333;
3233
+  background-color: #e6e6e6;
3234
+  *background-color: #d9d9d9;
3235
+}
3236
+
3237
+.btn:active,
3238
+.btn.active {
3239
+  background-color: #cccccc \9;
3240
+}
3241
+
3242
+.btn:first-child {
3243
+  *margin-left: 0;
3244
+}
3245
+
3246
+.btn:hover,
3247
+.btn:focus {
3248
+  color: #333333;
3249
+  text-decoration: none;
3250
+  background-position: 0 -15px;
3251
+  -webkit-transition: background-position 0.1s linear;
3252
+     -moz-transition: background-position 0.1s linear;
3253
+       -o-transition: background-position 0.1s linear;
3254
+          transition: background-position 0.1s linear;
3255
+}
3256
+
3257
+.btn:focus {
3258
+  outline: thin dotted #333;
3259
+  outline: 5px auto -webkit-focus-ring-color;
3260
+  outline-offset: -2px;
3261
+}
3262
+
3263
+.btn.active,
3264
+.btn:active {
3265
+  background-image: none;
3266
+  outline: 0;
3267
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3268
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3269
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3270
+}
3271
+
3272
+.btn.disabled,
3273
+.btn[disabled] {
3274
+  cursor: default;
3275
+  background-image: none;
3276
+  opacity: 0.65;
3277
+  filter: alpha(opacity=65);
3278
+  -webkit-box-shadow: none;
3279
+     -moz-box-shadow: none;
3280
+          box-shadow: none;
3281
+}
3282
+
3283
+.btn-large {
3284
+  padding: 11px 19px;
3285
+  font-size: 17.5px;
3286
+  -webkit-border-radius: 6px;
3287
+     -moz-border-radius: 6px;
3288
+          border-radius: 6px;
3289
+}
3290
+
3291
+.btn-large [class^="icon-"],
3292
+.btn-large [class*=" icon-"] {
3293
+  margin-top: 4px;
3294
+}
3295
+
3296
+.btn-small {
3297
+  padding: 2px 10px;
3298
+  font-size: 11.9px;
3299
+  -webkit-border-radius: 3px;
3300
+     -moz-border-radius: 3px;
3301
+          border-radius: 3px;
3302
+}
3303
+
3304
+.btn-small [class^="icon-"],
3305
+.btn-small [class*=" icon-"] {
3306
+  margin-top: 0;
3307
+}
3308
+
3309
+.btn-mini [class^="icon-"],
3310
+.btn-mini [class*=" icon-"] {
3311
+  margin-top: -1px;
3312
+}
3313
+
3314
+.btn-mini {
3315
+  padding: 0 6px;
3316
+  font-size: 10.5px;
3317
+  -webkit-border-radius: 3px;
3318
+     -moz-border-radius: 3px;
3319
+          border-radius: 3px;
3320
+}
3321
+
3322
+.btn-block {
3323
+  display: block;
3324
+  width: 100%;
3325
+  padding-right: 0;
3326
+  padding-left: 0;
3327
+  -webkit-box-sizing: border-box;
3328
+     -moz-box-sizing: border-box;
3329
+          box-sizing: border-box;
3330
+}
3331
+
3332
+.btn-block + .btn-block {
3333
+  margin-top: 5px;
3334
+}
3335
+
3336
+input[type="submit"].btn-block,
3337
+input[type="reset"].btn-block,
3338
+input[type="button"].btn-block {
3339
+  width: 100%;
3340
+}
3341
+
3342
+.btn-primary.active,
3343
+.btn-warning.active,
3344
+.btn-danger.active,
3345
+.btn-success.active,
3346
+.btn-info.active,
3347
+.btn-inverse.active {
3348
+  color: rgba(255, 255, 255, 0.75);
3349
+}
3350
+
3351
+.btn-primary {
3352
+  color: #ffffff;
3353
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3354
+  background-color: #006dcc;
3355
+  *background-color: #0044cc;
3356
+  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
3357
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
3358
+  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
3359
+  background-image: -o-linear-gradient(top, #0088cc, #0044cc);
3360
+  background-image: linear-gradient(to bottom, #0088cc, #0044cc);
3361
+  background-repeat: repeat-x;
3362
+  border-color: #0044cc #0044cc #002a80;
3363
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3364
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
3365
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3366
+}
3367
+
3368
+.btn-primary:hover,
3369
+.btn-primary:focus,
3370
+.btn-primary:active,
3371
+.btn-primary.active,
3372
+.btn-primary.disabled,
3373
+.btn-primary[disabled] {
3374
+  color: #ffffff;
3375
+  background-color: #0044cc;
3376
+  *background-color: #003bb3;
3377
+}
3378
+
3379
+.btn-primary:active,
3380
+.btn-primary.active {
3381
+  background-color: #003399 \9;
3382
+}
3383
+
3384
+.btn-warning {
3385
+  color: #ffffff;
3386
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3387
+  background-color: #faa732;
3388
+  *background-color: #f89406;
3389
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
3390
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
3391
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
3392
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
3393
+  background-image: linear-gradient(to bottom, #fbb450, #f89406);
3394
+  background-repeat: repeat-x;
3395
+  border-color: #f89406 #f89406 #ad6704;
3396
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3397
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
3398
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3399
+}
3400
+
3401
+.btn-warning:hover,
3402
+.btn-warning:focus,
3403
+.btn-warning:active,
3404
+.btn-warning.active,
3405
+.btn-warning.disabled,
3406
+.btn-warning[disabled] {
3407
+  color: #ffffff;
3408
+  background-color: #f89406;
3409
+  *background-color: #df8505;
3410
+}
3411
+
3412
+.btn-warning:active,
3413
+.btn-warning.active {
3414
+  background-color: #c67605 \9;
3415
+}
3416
+
3417
+.btn-danger {
3418
+  color: #ffffff;
3419
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3420
+  background-color: #da4f49;
3421
+  *background-color: #bd362f;
3422
+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
3423
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
3424
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
3425
+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
3426
+  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
3427
+  background-repeat: repeat-x;
3428
+  border-color: #bd362f #bd362f #802420;
3429
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3430
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
3431
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3432
+}
3433
+
3434
+.btn-danger:hover,
3435
+.btn-danger:focus,
3436
+.btn-danger:active,
3437
+.btn-danger.active,
3438
+.btn-danger.disabled,
3439
+.btn-danger[disabled] {
3440
+  color: #ffffff;
3441
+  background-color: #bd362f;
3442
+  *background-color: #a9302a;
3443
+}
3444
+
3445
+.btn-danger:active,
3446
+.btn-danger.active {
3447
+  background-color: #942a25 \9;
3448
+}
3449
+
3450
+.btn-success {
3451
+  color: #ffffff;
3452
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3453
+  background-color: #5bb75b;
3454
+  *background-color: #51a351;
3455
+  background-image: -moz-linear-gradient(top, #62c462, #51a351);
3456
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
3457
+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
3458
+  background-image: -o-linear-gradient(top, #62c462, #51a351);
3459
+  background-image: linear-gradient(to bottom, #62c462, #51a351);
3460
+  background-repeat: repeat-x;
3461
+  border-color: #51a351 #51a351 #387038;
3462
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3463
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
3464
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3465
+}
3466
+
3467
+.btn-success:hover,
3468
+.btn-success:focus,
3469
+.btn-success:active,
3470
+.btn-success.active,
3471
+.btn-success.disabled,
3472
+.btn-success[disabled] {
3473
+  color: #ffffff;
3474
+  background-color: #51a351;
3475
+  *background-color: #499249;
3476
+}
3477
+
3478
+.btn-success:active,
3479
+.btn-success.active {
3480
+  background-color: #408140 \9;
3481
+}
3482
+
3483
+.btn-info {
3484
+  color: #ffffff;
3485
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3486
+  background-color: #49afcd;
3487
+  *background-color: #2f96b4;
3488
+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
3489
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
3490
+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
3491
+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
3492
+  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
3493
+  background-repeat: repeat-x;
3494
+  border-color: #2f96b4 #2f96b4 #1f6377;
3495
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3496
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
3497
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3498
+}
3499
+
3500
+.btn-info:hover,
3501
+.btn-info:focus,
3502
+.btn-info:active,
3503
+.btn-info.active,
3504
+.btn-info.disabled,
3505
+.btn-info[disabled] {
3506
+  color: #ffffff;
3507
+  background-color: #2f96b4;
3508
+  *background-color: #2a85a0;
3509
+}
3510
+
3511
+.btn-info:active,
3512
+.btn-info.active {
3513
+  background-color: #24748c \9;
3514
+}
3515
+
3516
+.btn-inverse {
3517
+  color: #ffffff;
3518
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3519
+  background-color: #363636;
3520
+  *background-color: #222222;
3521
+  background-image: -moz-linear-gradient(top, #444444, #222222);
3522
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
3523
+  background-image: -webkit-linear-gradient(top, #444444, #222222);
3524
+  background-image: -o-linear-gradient(top, #444444, #222222);
3525
+  background-image: linear-gradient(to bottom, #444444, #222222);
3526
+  background-repeat: repeat-x;
3527
+  border-color: #222222 #222222 #000000;
3528
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3529
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
3530
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3531
+}
3532
+
3533
+.btn-inverse:hover,
3534
+.btn-inverse:focus,
3535
+.btn-inverse:active,
3536
+.btn-inverse.active,
3537
+.btn-inverse.disabled,
3538
+.btn-inverse[disabled] {
3539
+  color: #ffffff;
3540
+  background-color: #222222;
3541
+  *background-color: #151515;
3542
+}
3543
+
3544
+.btn-inverse:active,
3545
+.btn-inverse.active {
3546
+  background-color: #080808 \9;
3547
+}
3548
+
3549
+button.btn,
3550
+input[type="submit"].btn {
3551
+  *padding-top: 3px;
3552
+  *padding-bottom: 3px;
3553
+}
3554
+
3555
+button.btn::-moz-focus-inner,
3556
+input[type="submit"].btn::-moz-focus-inner {
3557
+  padding: 0;
3558
+  border: 0;
3559
+}
3560
+
3561
+button.btn.btn-large,
3562
+input[type="submit"].btn.btn-large {
3563
+  *padding-top: 7px;
3564
+  *padding-bottom: 7px;
3565
+}
3566
+
3567
+button.btn.btn-small,
3568
+input[type="submit"].btn.btn-small {
3569
+  *padding-top: 3px;
3570
+  *padding-bottom: 3px;
3571
+}
3572
+
3573
+button.btn.btn-mini,
3574
+input[type="submit"].btn.btn-mini {
3575
+  *padding-top: 1px;
3576
+  *padding-bottom: 1px;
3577
+}
3578
+
3579
+.btn-link,
3580
+.btn-link:active,
3581
+.btn-link[disabled] {
3582
+  background-color: transparent;
3583
+  background-image: none;
3584
+  -webkit-box-shadow: none;
3585
+     -moz-box-shadow: none;
3586
+          box-shadow: none;
3587
+}
3588
+
3589
+.btn-link {
3590
+  color: #0088cc;
3591
+  cursor: pointer;
3592
+  border-color: transparent;
3593
+  -webkit-border-radius: 0;
3594
+     -moz-border-radius: 0;
3595
+          border-radius: 0;
3596
+}
3597
+
3598
+.btn-link:hover,
3599
+.btn-link:focus {
3600
+  color: #005580;
3601
+  text-decoration: underline;
3602
+  background-color: transparent;
3603
+}
3604
+
3605
+.btn-link[disabled]:hover,
3606
+.btn-link[disabled]:focus {
3607
+  color: #333333;
3608
+  text-decoration: none;
3609
+}
3610
+
3611
+.btn-group {
3612
+  position: relative;
3613
+  display: inline-block;
3614
+  *display: inline;
3615
+  *margin-left: .3em;
3616
+  font-size: 0;
3617
+  white-space: nowrap;
3618
+  vertical-align: middle;
3619
+  *zoom: 1;
3620
+}
3621
+
3622
+.btn-group:first-child {
3623
+  *margin-left: 0;
3624
+}
3625
+
3626
+.btn-group + .btn-group {
3627
+  margin-left: 5px;
3628
+}
3629
+
3630
+.btn-toolbar {
3631
+  margin-top: 10px;
3632
+  margin-bottom: 10px;
3633
+  font-size: 0;
3634
+}
3635
+
3636
+.btn-toolbar > .btn + .btn,
3637
+.btn-toolbar > .btn-group + .btn,
3638
+.btn-toolbar > .btn + .btn-group {
3639
+  margin-left: 5px;
3640
+}
3641
+
3642
+.btn-group > .btn {
3643
+  position: relative;
3644
+  -webkit-border-radius: 0;
3645
+     -moz-border-radius: 0;
3646
+          border-radius: 0;
3647
+}
3648
+
3649
+.btn-group > .btn + .btn {
3650
+  margin-left: -1px;
3651
+}
3652
+
3653
+.btn-group > .btn,
3654
+.btn-group > .dropdown-menu,
3655
+.btn-group > .popover {
3656
+  font-size: 14px;
3657
+}
3658
+
3659
+.btn-group > .btn-mini {
3660
+  font-size: 10.5px;
3661
+}
3662
+
3663
+.btn-group > .btn-small {
3664
+  font-size: 11.9px;
3665
+}
3666
+
3667
+.btn-group > .btn-large {
3668
+  font-size: 17.5px;
3669
+}
3670
+
3671
+.btn-group > .btn:first-child {
3672
+  margin-left: 0;
3673
+  -webkit-border-bottom-left-radius: 4px;
3674
+          border-bottom-left-radius: 4px;
3675
+  -webkit-border-top-left-radius: 4px;
3676
+          border-top-left-radius: 4px;
3677
+  -moz-border-radius-bottomleft: 4px;
3678
+  -moz-border-radius-topleft: 4px;
3679
+}
3680
+
3681
+.btn-group > .btn:last-child,
3682
+.btn-group > .dropdown-toggle {
3683
+  -webkit-border-top-right-radius: 4px;
3684
+          border-top-right-radius: 4px;
3685
+  -webkit-border-bottom-right-radius: 4px;
3686
+          border-bottom-right-radius: 4px;
3687
+  -moz-border-radius-topright: 4px;
3688
+  -moz-border-radius-bottomright: 4px;
3689
+}
3690
+
3691
+.btn-group > .btn.large:first-child {
3692
+  margin-left: 0;
3693
+  -webkit-border-bottom-left-radius: 6px;
3694
+          border-bottom-left-radius: 6px;
3695
+  -webkit-border-top-left-radius: 6px;
3696
+          border-top-left-radius: 6px;
3697
+  -moz-border-radius-bottomleft: 6px;
3698
+  -moz-border-radius-topleft: 6px;
3699
+}
3700
+
3701
+.btn-group > .btn.large:last-child,
3702
+.btn-group > .large.dropdown-toggle {
3703
+  -webkit-border-top-right-radius: 6px;
3704
+          border-top-right-radius: 6px;
3705
+  -webkit-border-bottom-right-radius: 6px;
3706
+          border-bottom-right-radius: 6px;
3707
+  -moz-border-radius-topright: 6px;
3708
+  -moz-border-radius-bottomright: 6px;
3709
+}
3710
+
3711
+.btn-group > .btn:hover,
3712
+.btn-group > .btn:focus,
3713
+.btn-group > .btn:active,
3714
+.btn-group > .btn.active {
3715
+  z-index: 2;
3716
+}
3717
+
3718
+.btn-group .dropdown-toggle:active,
3719
+.btn-group.open .dropdown-toggle {
3720
+  outline: 0;
3721
+}
3722
+
3723
+.btn-group > .btn + .dropdown-toggle {
3724
+  *padding-top: 5px;
3725
+  padding-right: 8px;
3726
+  *padding-bottom: 5px;
3727
+  padding-left: 8px;
3728
+  -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);
3729
+     -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);
3730
+          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);
3731
+}
3732
+
3733
+.btn-group > .btn-mini + .dropdown-toggle {
3734
+  *padding-top: 2px;
3735
+  padding-right: 5px;
3736
+  *padding-bottom: 2px;
3737
+  padding-left: 5px;
3738
+}
3739
+
3740
+.btn-group > .btn-small + .dropdown-toggle {
3741
+  *padding-top: 5px;
3742
+  *padding-bottom: 4px;
3743
+}
3744
+
3745
+.btn-group > .btn-large + .dropdown-toggle {
3746
+  *padding-top: 7px;
3747
+  padding-right: 12px;
3748
+  *padding-bottom: 7px;
3749
+  padding-left: 12px;
3750
+}
3751
+
3752
+.btn-group.open .dropdown-toggle {
3753
+  background-image: none;
3754
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3755
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3756
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3757
+}
3758
+
3759
+.btn-group.open .btn.dropdown-toggle {
3760
+  background-color: #e6e6e6;
3761
+}
3762
+
3763
+.btn-group.open .btn-primary.dropdown-toggle {
3764
+  background-color: #0044cc;
3765
+}
3766
+
3767
+.btn-group.open .btn-warning.dropdown-toggle {
3768
+  background-color: #f89406;
3769
+}
3770
+
3771
+.btn-group.open .btn-danger.dropdown-toggle {
3772
+  background-color: #bd362f;
3773
+}
3774
+
3775
+.btn-group.open .btn-success.dropdown-toggle {
3776
+  background-color: #51a351;
3777
+}
3778
+
3779
+.btn-group.open .btn-info.dropdown-toggle {
3780
+  background-color: #2f96b4;
3781
+}
3782
+
3783
+.btn-group.open .btn-inverse.dropdown-toggle {
3784
+  background-color: #222222;
3785
+}
3786
+
3787
+.btn .caret {
3788
+  margin-top: 8px;
3789
+  margin-left: 0;
3790
+}
3791
+
3792
+.btn-large .caret {
3793
+  margin-top: 6px;
3794
+}
3795
+
3796
+.btn-large .caret {
3797
+  border-top-width: 5px;
3798
+  border-right-width: 5px;
3799
+  border-left-width: 5px;
3800
+}
3801
+
3802
+.btn-mini .caret,
3803
+.btn-small .caret {
3804
+  margin-top: 8px;
3805
+}
3806
+
3807
+.dropup .btn-large .caret {
3808
+  border-bottom-width: 5px;
3809
+}
3810
+
3811
+.btn-primary .caret,
3812
+.btn-warning .caret,
3813
+.btn-danger .caret,
3814
+.btn-info .caret,
3815
+.btn-success .caret,
3816
+.btn-inverse .caret {
3817
+  border-top-color: #ffffff;
3818
+  border-bottom-color: #ffffff;
3819
+}
3820
+
3821
+.btn-group-vertical {
3822
+  display: inline-block;
3823
+  *display: inline;
3824
+  /* IE7 inline-block hack */
3825
+
3826
+  *zoom: 1;
3827
+}
3828
+
3829
+.btn-group-vertical > .btn {
3830
+  display: block;
3831
+  float: none;
3832
+  max-width: 100%;
3833
+  -webkit-border-radius: 0;
3834
+     -moz-border-radius: 0;
3835
+          border-radius: 0;
3836
+}
3837
+
3838
+.btn-group-vertical > .btn + .btn {
3839
+  margin-top: -1px;
3840
+  margin-left: 0;
3841
+}
3842
+
3843
+.btn-group-vertical > .btn:first-child {
3844
+  -webkit-border-radius: 4px 4px 0 0;
3845
+     -moz-border-radius: 4px 4px 0 0;
3846
+          border-radius: 4px 4px 0 0;
3847
+}
3848
+
3849
+.btn-group-vertical > .btn:last-child {
3850
+  -webkit-border-radius: 0 0 4px 4px;
3851
+     -moz-border-radius: 0 0 4px 4px;
3852
+          border-radius: 0 0 4px 4px;
3853
+}
3854
+
3855
+.btn-group-vertical > .btn-large:first-child {
3856
+  -webkit-border-radius: 6px 6px 0 0;
3857
+     -moz-border-radius: 6px 6px 0 0;
3858
+          border-radius: 6px 6px 0 0;
3859
+}
3860
+
3861
+.btn-group-vertical > .btn-large:last-child {
3862
+  -webkit-border-radius: 0 0 6px 6px;
3863
+     -moz-border-radius: 0 0 6px 6px;
3864
+          border-radius: 0 0 6px 6px;
3865
+}
3866
+
3867
+.alert {
3868
+  padding: 8px 35px 8px 14px;
3869
+  margin-bottom: 20px;
3870
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3871
+  background-color: #fcf8e3;
3872
+  border: 1px solid #fbeed5;
3873
+  -webkit-border-radius: 4px;
3874
+     -moz-border-radius: 4px;
3875
+          border-radius: 4px;
3876
+}
3877
+
3878
+.alert,
3879
+.alert h4 {
3880
+  color: #c09853;
3881
+}
3882
+
3883
+.alert h4 {
3884
+  margin: 0;
3885
+}
3886
+
3887
+.alert .close {
3888
+  position: relative;
3889
+  top: -2px;
3890
+  right: -21px;
3891
+  line-height: 20px;
3892
+}
3893
+
3894
+.alert-success {
3895
+  color: #468847;
3896
+  background-color: #dff0d8;
3897
+  border-color: #d6e9c6;
3898
+}
3899
+
3900
+.alert-success h4 {
3901
+  color: #468847;
3902
+}
3903
+
3904
+.alert-danger,
3905
+.alert-error {
3906
+  color: #b94a48;
3907
+  background-color: #f2dede;
3908
+  border-color: #eed3d7;
3909
+}
3910
+
3911
+.alert-danger h4,
3912
+.alert-error h4 {
3913
+  color: #b94a48;
3914
+}
3915
+
3916
+.alert-info {
3917
+  color: #3a87ad;
3918
+  background-color: #d9edf7;
3919
+  border-color: #bce8f1;
3920
+}
3921
+
3922
+.alert-info h4 {
3923
+  color: #3a87ad;
3924
+}
3925
+
3926
+.alert-block {
3927
+  padding-top: 14px;
3928
+  padding-bottom: 14px;
3929
+}
3930
+
3931
+.alert-block > p,
3932
+.alert-block > ul {
3933
+  margin-bottom: 0;
3934
+}
3935
+
3936
+.alert-block p + p {
3937
+  margin-top: 5px;
3938
+}
3939
+
3940
+.nav {
3941
+  margin-bottom: 20px;
3942
+  margin-left: 0;
3943
+  list-style: none;
3944
+}
3945
+
3946
+.nav > li > a {
3947
+  display: block;
3948
+}
3949
+
3950
+.nav > li > a:hover,
3951
+.nav > li > a:focus {
3952
+  text-decoration: none;
3953
+  background-color: #eeeeee;
3954
+}
3955
+
3956
+.nav > li > a > img {
3957
+  max-width: none;
3958
+}
3959
+
3960
+.nav > .pull-right {
3961
+  float: right;
3962
+}
3963
+
3964
+.nav-header {
3965
+  display: block;
3966
+  padding: 3px 15px;
3967
+  font-size: 11px;
3968
+  font-weight: bold;
3969
+  line-height: 20px;
3970
+  color: #999999;
3971
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3972
+  text-transform: uppercase;
3973
+}
3974
+
3975
+.nav li + .nav-header {
3976
+  margin-top: 9px;
3977
+}
3978
+
3979
+.nav-list {
3980
+  padding-right: 15px;
3981
+  padding-left: 15px;
3982
+  margin-bottom: 0;
3983
+}
3984
+
3985
+.nav-list > li > a,
3986
+.nav-list .nav-header {
3987
+  margin-right: -15px;
3988
+  margin-left: -15px;
3989
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3990
+}
3991
+
3992
+.nav-list > li > a {
3993
+  padding: 3px 15px;
3994
+}
3995
+
3996
+.nav-list > .active > a,
3997
+.nav-list > .active > a:hover,
3998
+.nav-list > .active > a:focus {
3999
+  color: #ffffff;
4000
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
4001
+  background-color: #0088cc;
4002
+}
4003
+
4004
+.nav-list [class^="icon-"],
4005
+.nav-list [class*=" icon-"] {
4006
+  margin-right: 2px;
4007
+}
4008
+
4009
+.nav-list .divider {
4010
+  *width: 100%;
4011
+  height: 1px;
4012
+  margin: 9px 1px;
4013
+  *margin: -5px 0 5px;
4014
+  overflow: hidden;
4015
+  background-color: #e5e5e5;
4016
+  border-bottom: 1px solid #ffffff;
4017
+}
4018
+
4019
+.nav-tabs,
4020
+.nav-pills {
4021
+  *zoom: 1;
4022
+}
4023
+
4024
+.nav-tabs:before,
4025
+.nav-pills:before,
4026
+.nav-tabs:after,
4027
+.nav-pills:after {
4028
+  display: table;
4029
+  line-height: 0;
4030
+  content: "";
4031
+}
4032
+
4033
+.nav-tabs:after,
4034
+.nav-pills:after {
4035
+  clear: both;
4036
+}
4037
+
4038
+.nav-tabs > li,
4039
+.nav-pills > li {
4040
+  float: left;
4041
+}
4042
+
4043
+.nav-tabs > li > a,
4044
+.nav-pills > li > a {
4045
+  padding-right: 12px;
4046
+  padding-left: 12px;
4047
+  margin-right: 2px;
4048
+  line-height: 14px;
4049
+}
4050
+
4051
+.nav-tabs {
4052
+  border-bottom: 1px solid #ddd;
4053
+}
4054
+
4055
+.nav-tabs > li {
4056
+  margin-bottom: -1px;
4057
+}
4058
+
4059
+.nav-tabs > li > a {
4060
+  padding-top: 8px;
4061
+  padding-bottom: 8px;
4062
+  line-height: 20px;
4063
+  border: 1px solid transparent;
4064
+  -webkit-border-radius: 4px 4px 0 0;
4065
+     -moz-border-radius: 4px 4px 0 0;
4066
+          border-radius: 4px 4px 0 0;
4067
+}
4068
+
4069
+.nav-tabs > li > a:hover,
4070
+.nav-tabs > li > a:focus {
4071
+  border-color: #eeeeee #eeeeee #dddddd;
4072
+}
4073
+
4074
+.nav-tabs > .active > a,
4075
+.nav-tabs > .active > a:hover,
4076
+.nav-tabs > .active > a:focus {
4077
+  color: #555555;
4078
+  cursor: default;
4079
+  background-color: #ffffff;
4080
+  border: 1px solid #ddd;
4081
+  border-bottom-color: transparent;
4082
+}
4083
+
4084
+.nav-pills > li > a {
4085
+  padding-top: 8px;
4086
+  padding-bottom: 8px;
4087
+  margin-top: 2px;
4088
+  margin-bottom: 2px;
4089
+  -webkit-border-radius: 5px;
4090
+     -moz-border-radius: 5px;
4091
+          border-radius: 5px;
4092
+}
4093
+
4094
+.nav-pills > .active > a,
4095
+.nav-pills > .active > a:hover,
4096
+.nav-pills > .active > a:focus {
4097
+  color: #ffffff;
4098
+  background-color: #0088cc;
4099
+}
4100
+
4101
+.nav-stacked > li {
4102
+  float: none;
4103
+}
4104
+
4105
+.nav-stacked > li > a {
4106
+  margin-right: 0;
4107
+}
4108
+
4109
+.nav-tabs.nav-stacked {
4110
+  border-bottom: 0;
4111
+}
4112
+
4113
+.nav-tabs.nav-stacked > li > a {
4114
+  border: 1px solid #ddd;
4115
+  -webkit-border-radius: 0;
4116
+     -moz-border-radius: 0;
4117
+          border-radius: 0;
4118
+}
4119
+
4120
+.nav-tabs.nav-stacked > li:first-child > a {
4121
+  -webkit-border-top-right-radius: 4px;
4122
+          border-top-right-radius: 4px;
4123
+  -webkit-border-top-left-radius: 4px;
4124
+          border-top-left-radius: 4px;
4125
+  -moz-border-radius-topright: 4px;
4126
+  -moz-border-radius-topleft: 4px;
4127
+}
4128
+
4129
+.nav-tabs.nav-stacked > li:last-child > a {
4130
+  -webkit-border-bottom-right-radius: 4px;
4131
+          border-bottom-right-radius: 4px;
4132
+  -webkit-border-bottom-left-radius: 4px;
4133
+          border-bottom-left-radius: 4px;
4134
+  -moz-border-radius-bottomright: 4px;
4135
+  -moz-border-radius-bottomleft: 4px;
4136
+}
4137
+
4138
+.nav-tabs.nav-stacked > li > a:hover,
4139
+.nav-tabs.nav-stacked > li > a:focus {
4140
+  z-index: 2;
4141
+  border-color: #ddd;
4142
+}
4143
+
4144
+.nav-pills.nav-stacked > li > a {
4145
+  margin-bottom: 3px;
4146
+}
4147
+
4148
+.nav-pills.nav-stacked > li:last-child > a {
4149
+  margin-bottom: 1px;
4150
+}
4151
+
4152
+.nav-tabs .dropdown-menu {
4153
+  -webkit-border-radius: 0 0 6px 6px;
4154
+     -moz-border-radius: 0 0 6px 6px;
4155
+          border-radius: 0 0 6px 6px;
4156
+}
4157
+
4158
+.nav-pills .dropdown-menu {
4159
+  -webkit-border-radius: 6px;
4160
+     -moz-border-radius: 6px;
4161
+          border-radius: 6px;
4162
+}
4163
+
4164
+.nav .dropdown-toggle .caret {
4165
+  margin-top: 6px;
4166
+  border-top-color: #0088cc;
4167
+  border-bottom-color: #0088cc;
4168
+}
4169
+
4170
+.nav .dropdown-toggle:hover .caret,
4171
+.nav .dropdown-toggle:focus .caret {
4172
+  border-top-color: #005580;
4173
+  border-bottom-color: #005580;
4174
+}
4175
+
4176
+/* move down carets for tabs */
4177
+
4178
+.nav-tabs .dropdown-toggle .caret {
4179
+  margin-top: 8px;
4180
+}
4181
+
4182
+.nav .active .dropdown-toggle .caret {
4183
+  border-top-color: #fff;
4184
+  border-bottom-color: #fff;
4185
+}
4186
+
4187
+.nav-tabs .active .dropdown-toggle .caret {
4188
+  border-top-color: #555555;
4189
+  border-bottom-color: #555555;
4190
+}
4191
+
4192
+.nav > .dropdown.active > a:hover,
4193
+.nav > .dropdown.active > a:focus {
4194
+  cursor: pointer;
4195
+}
4196
+
4197
+.nav-tabs .open .dropdown-toggle,
4198
+.nav-pills .open .dropdown-toggle,
4199
+.nav > li.dropdown.open.active > a:hover,
4200
+.nav > li.dropdown.open.active > a:focus {
4201
+  color: #ffffff;
4202
+  background-color: #999999;
4203
+  border-color: #999999;
4204
+}
4205
+
4206
+.nav li.dropdown.open .caret,
4207
+.nav li.dropdown.open.active .caret,
4208
+.nav li.dropdown.open a:hover .caret,
4209
+.nav li.dropdown.open a:focus .caret {
4210
+  border-top-color: #ffffff;
4211
+  border-bottom-color: #ffffff;
4212
+  opacity: 1;
4213
+  filter: alpha(opacity=100);
4214
+}
4215
+
4216
+.tabs-stacked .open > a:hover,
4217
+.tabs-stacked .open > a:focus {
4218
+  border-color: #999999;
4219
+}
4220
+
4221
+.tabbable {
4222
+  *zoom: 1;
4223
+}
4224
+
4225
+.tabbable:before,
4226
+.tabbable:after {
4227
+  display: table;
4228
+  line-height: 0;
4229
+  content: "";
4230
+}
4231
+
4232
+.tabbable:after {
4233
+  clear: both;
4234
+}
4235
+
4236
+.tab-content {
4237
+  overflow: auto;
4238
+}
4239
+
4240
+.tabs-below > .nav-tabs,
4241
+.tabs-right > .nav-tabs,
4242
+.tabs-left > .nav-tabs {
4243
+  border-bottom: 0;
4244
+}
4245
+
4246
+.tab-content > .tab-pane,
4247
+.pill-content > .pill-pane {
4248
+  display: none;
4249
+}
4250
+
4251
+.tab-content > .active,
4252
+.pill-content > .active {
4253
+  display: block;
4254
+}
4255
+
4256
+.tabs-below > .nav-tabs {
4257
+  border-top: 1px solid #ddd;
4258
+}
4259
+
4260
+.tabs-below > .nav-tabs > li {
4261
+  margin-top: -1px;
4262
+  margin-bottom: 0;
4263
+}
4264
+
4265
+.tabs-below > .nav-tabs > li > a {
4266
+  -webkit-border-radius: 0 0 4px 4px;
4267
+     -moz-border-radius: 0 0 4px 4px;
4268
+          border-radius: 0 0 4px 4px;
4269
+}
4270
+
4271
+.tabs-below > .nav-tabs > li > a:hover,
4272
+.tabs-below > .nav-tabs > li > a:focus {
4273
+  border-top-color: #ddd;
4274
+  border-bottom-color: transparent;
4275
+}
4276
+
4277
+.tabs-below > .nav-tabs > .active > a,
4278
+.tabs-below > .nav-tabs > .active > a:hover,
4279
+.tabs-below > .nav-tabs > .active > a:focus {
4280
+  border-color: transparent #ddd #ddd #ddd;
4281
+}
4282
+
4283
+.tabs-left > .nav-tabs > li,
4284
+.tabs-right > .nav-tabs > li {
4285
+  float: none;
4286
+}
4287
+
4288
+.tabs-left > .nav-tabs > li > a,
4289
+.tabs-right > .nav-tabs > li > a {
4290
+  min-width: 74px;
4291
+  margin-right: 0;
4292
+  margin-bottom: 3px;
4293
+}
4294
+
4295
+.tabs-left > .nav-tabs {
4296
+  float: left;
4297
+  margin-right: 19px;
4298
+  border-right: 1px solid #ddd;
4299
+}
4300
+
4301
+.tabs-left > .nav-tabs > li > a {
4302
+  margin-right: -1px;
4303
+  -webkit-border-radius: 4px 0 0 4px;
4304
+     -moz-border-radius: 4px 0 0 4px;
4305
+          border-radius: 4px 0 0 4px;
4306
+}
4307
+
4308
+.tabs-left > .nav-tabs > li > a:hover,
4309
+.tabs-left > .nav-tabs > li > a:focus {
4310
+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
4311
+}
4312
+
4313
+.tabs-left > .nav-tabs .active > a,
4314
+.tabs-left > .nav-tabs .active > a:hover,
4315
+.tabs-left > .nav-tabs .active > a:focus {
4316
+  border-color: #ddd transparent #ddd #ddd;
4317
+  *border-right-color: #ffffff;
4318
+}
4319
+
4320
+.tabs-right > .nav-tabs {
4321
+  float: right;
4322
+  margin-left: 19px;
4323
+  border-left: 1px solid #ddd;
4324
+}
4325
+
4326
+.tabs-right > .nav-tabs > li > a {
4327
+  margin-left: -1px;
4328
+  -webkit-border-radius: 0 4px 4px 0;
4329
+     -moz-border-radius: 0 4px 4px 0;
4330
+          border-radius: 0 4px 4px 0;
4331
+}
4332
+
4333
+.tabs-right > .nav-tabs > li > a:hover,
4334
+.tabs-right > .nav-tabs > li > a:focus {
4335
+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
4336
+}
4337
+
4338
+.tabs-right > .nav-tabs .active > a,
4339
+.tabs-right > .nav-tabs .active > a:hover,
4340
+.tabs-right > .nav-tabs .active > a:focus {
4341
+  border-color: #ddd #ddd #ddd transparent;
4342
+  *border-left-color: #ffffff;
4343
+}
4344
+
4345
+.nav > .disabled > a {
4346
+  color: #999999;
4347
+}
4348
+
4349
+.nav > .disabled > a:hover,
4350
+.nav > .disabled > a:focus {
4351
+  text-decoration: none;
4352
+  cursor: default;
4353
+  background-color: transparent;
4354
+}
4355
+
4356
+.navbar {
4357
+  *position: relative;
4358
+  *z-index: 2;
4359
+  margin-bottom: 20px;
4360
+  overflow: visible;
4361
+}
4362
+
4363
+.navbar-inner {
4364
+  min-height: 40px;
4365
+  padding-right: 20px;
4366
+  padding-left: 20px;
4367
+  background-color: #fafafa;
4368
+  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
4369
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
4370
+  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
4371
+  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
4372
+  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
4373
+  background-repeat: repeat-x;
4374
+  border: 1px solid #d4d4d4;
4375
+  -webkit-border-radius: 4px;
4376
+     -moz-border-radius: 4px;
4377
+          border-radius: 4px;
4378
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
4379
+  *zoom: 1;
4380
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4381
+     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4382
+          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4383
+}
4384
+
4385
+.navbar-inner:before,
4386
+.navbar-inner:after {
4387
+  display: table;
4388
+  line-height: 0;
4389
+  content: "";
4390
+}
4391
+
4392
+.navbar-inner:after {
4393
+  clear: both;
4394
+}
4395
+
4396
+.navbar .container {
4397
+  width: auto;
4398
+}
4399
+
4400
+.nav-collapse.collapse {
4401
+  height: auto;
4402
+  overflow: visible;
4403
+}
4404
+
4405
+.navbar .brand {
4406
+  display: block;
4407
+  float: left;
4408
+  padding: 10px 20px 10px;
4409
+  margin-left: -20px;
4410
+  font-size: 20px;
4411
+  font-weight: 200;
4412
+  color: #777777;
4413
+  text-shadow: 0 1px 0 #ffffff;
4414
+}
4415
+
4416
+.navbar .brand:hover,
4417
+.navbar .brand:focus {
4418
+  text-decoration: none;
4419
+}
4420
+
4421
+.navbar-text {
4422
+  margin-bottom: 0;
4423
+  line-height: 40px;
4424
+  color: #777777;
4425
+}
4426
+
4427
+.navbar-link {
4428
+  color: #777777;
4429
+}
4430
+
4431
+.navbar-link:hover,
4432
+.navbar-link:focus {
4433
+  color: #333333;
4434
+}
4435
+
4436
+.navbar .divider-vertical {
4437
+  height: 40px;
4438
+  margin: 0 9px;
4439
+  border-right: 1px solid #ffffff;
4440
+  border-left: 1px solid #f2f2f2;
4441
+}
4442
+
4443
+.navbar .btn,
4444
+.navbar .btn-group {
4445
+  margin-top: 5px;
4446
+}
4447
+
4448
+.navbar .btn-group .btn,
4449
+.navbar .input-prepend .btn,
4450
+.navbar .input-append .btn,
4451
+.navbar .input-prepend .btn-group,
4452
+.navbar .input-append .btn-group {
4453
+  margin-top: 0;
4454
+}
4455
+
4456
+.navbar-form {
4457
+  margin-bottom: 0;
4458
+  *zoom: 1;
4459
+}
4460
+
4461
+.navbar-form:before,
4462
+.navbar-form:after {
4463
+  display: table;
4464
+  line-height: 0;
4465
+  content: "";
4466
+}
4467
+
4468
+.navbar-form:after {
4469
+  clear: both;
4470
+}
4471
+
4472
+.navbar-form input,
4473
+.navbar-form select,
4474
+.navbar-form .radio,
4475
+.navbar-form .checkbox {
4476
+  margin-top: 5px;
4477
+}
4478
+
4479
+.navbar-form input,
4480
+.navbar-form select,
4481
+.navbar-form .btn {
4482
+  display: inline-block;
4483
+  margin-bottom: 0;
4484
+}
4485
+
4486
+.navbar-form input[type="image"],
4487
+.navbar-form input[type="checkbox"],
4488
+.navbar-form input[type="radio"] {
4489
+  margin-top: 3px;
4490
+}
4491
+
4492
+.navbar-form .input-append,
4493
+.navbar-form .input-prepend {
4494
+  margin-top: 5px;
4495
+  white-space: nowrap;
4496
+}
4497
+
4498
+.navbar-form .input-append input,
4499
+.navbar-form .input-prepend input {
4500
+  margin-top: 0;
4501
+}
4502
+
4503
+.navbar-search {
4504
+  position: relative;
4505
+  float: left;
4506
+  margin-top: 5px;
4507
+  margin-bottom: 0;
4508
+}
4509
+
4510
+.navbar-search .search-query {
4511
+  padding: 4px 14px;
4512
+  margin-bottom: 0;
4513
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4514
+  font-size: 13px;
4515
+  font-weight: normal;
4516
+  line-height: 1;
4517
+  -webkit-border-radius: 15px;
4518
+     -moz-border-radius: 15px;
4519
+          border-radius: 15px;
4520
+}
4521
+
4522
+.navbar-static-top {
4523
+  position: static;
4524
+  margin-bottom: 0;
4525
+}
4526
+
4527
+.navbar-static-top .navbar-inner {
4528
+  -webkit-border-radius: 0;
4529
+     -moz-border-radius: 0;
4530
+          border-radius: 0;
4531
+}
4532
+
4533
+.navbar-fixed-top,
4534
+.navbar-fixed-bottom {
4535
+  position: fixed;
4536
+  right: 0;
4537
+  left: 0;
4538
+  z-index: 1030;
4539
+  margin-bottom: 0;
4540
+}
4541
+
4542
+.navbar-fixed-top .navbar-inner,
4543
+.navbar-static-top .navbar-inner {
4544
+  border-width: 0 0 1px;
4545
+}
4546
+
4547
+.navbar-fixed-bottom .navbar-inner {
4548
+  border-width: 1px 0 0;
4549
+}
4550
+
4551
+.navbar-fixed-top .navbar-inner,
4552
+.navbar-fixed-bottom .navbar-inner {
4553
+  padding-right: 0;
4554
+  padding-left: 0;
4555
+  -webkit-border-radius: 0;
4556
+     -moz-border-radius: 0;
4557
+          border-radius: 0;
4558
+}
4559
+
4560
+.navbar-static-top .container,
4561
+.navbar-fixed-top .container,
4562
+.navbar-fixed-bottom .container {
4563
+  width: 940px;
4564
+}
4565
+
4566
+.navbar-fixed-top {
4567
+  top: 0;
4568
+}
4569
+
4570
+.navbar-fixed-top .navbar-inner,
4571
+.navbar-static-top .navbar-inner {
4572
+  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4573
+     -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4574
+          box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4575
+}
4576
+
4577
+.navbar-fixed-bottom {
4578
+  bottom: 0;
4579
+}
4580
+
4581
+.navbar-fixed-bottom .navbar-inner {
4582
+  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4583
+     -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4584
+          box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4585
+}
4586
+
4587
+.navbar .nav {
4588
+  position: relative;
4589
+  left: 0;
4590
+  display: block;
4591
+  float: left;
4592
+  margin: 0 10px 0 0;
4593
+}
4594
+
4595
+.navbar .nav.pull-right {
4596
+  float: right;
4597
+  margin-right: 0;
4598
+}
4599
+
4600
+.navbar .nav > li {
4601
+  float: left;
4602
+}
4603
+
4604
+.navbar .nav > li > a {
4605
+  float: none;
4606
+  padding: 10px 15px 10px;
4607
+  color: #777777;
4608
+  text-decoration: none;
4609
+  text-shadow: 0 1px 0 #ffffff;
4610
+}
4611
+
4612
+.navbar .nav .dropdown-toggle .caret {
4613
+  margin-top: 8px;
4614
+}
4615
+
4616
+.navbar .nav > li > a:focus,
4617
+.navbar .nav > li > a:hover {
4618
+  color: #333333;
4619
+  text-decoration: none;
4620
+  background-color: transparent;
4621
+}
4622
+
4623
+.navbar .nav > .active > a,
4624
+.navbar .nav > .active > a:hover,
4625
+.navbar .nav > .active > a:focus {
4626
+  color: #555555;
4627
+  text-decoration: none;
4628
+  background-color: #e5e5e5;
4629
+  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4630
+     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4631
+          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4632
+}
4633
+
4634
+.navbar .btn-navbar {
4635
+  display: none;
4636
+  float: right;
4637
+  padding: 7px 10px;
4638
+  margin-right: 5px;
4639
+  margin-left: 5px;
4640
+  color: #ffffff;
4641
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4642
+  background-color: #ededed;
4643
+  *background-color: #e5e5e5;
4644
+  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
4645
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
4646
+  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
4647
+  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
4648
+  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
4649
+  background-repeat: repeat-x;
4650
+  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
4651
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
4652
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
4653
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
4654
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4655
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4656
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4657
+}
4658
+
4659
+.navbar .btn-navbar:hover,
4660
+.navbar .btn-navbar:focus,
4661
+.navbar .btn-navbar:active,
4662
+.navbar .btn-navbar.active,
4663
+.navbar .btn-navbar.disabled,
4664
+.navbar .btn-navbar[disabled] {
4665
+  color: #ffffff;
4666
+  background-color: #e5e5e5;
4667
+  *background-color: #d9d9d9;
4668
+}
4669
+
4670
+.navbar .btn-navbar:active,
4671
+.navbar .btn-navbar.active {
4672
+  background-color: #cccccc \9;
4673
+}
4674
+
4675
+.navbar .btn-navbar .icon-bar {
4676
+  display: block;
4677
+  width: 18px;
4678
+  height: 2px;
4679
+  background-color: #f5f5f5;
4680
+  -webkit-border-radius: 1px;
4681
+     -moz-border-radius: 1px;
4682
+          border-radius: 1px;
4683
+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4684
+     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4685
+          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4686
+}
4687
+
4688
+.btn-navbar .icon-bar + .icon-bar {
4689
+  margin-top: 3px;
4690
+}
4691
+
4692
+.navbar .nav > li > .dropdown-menu:before {
4693
+  position: absolute;
4694
+  top: -7px;
4695
+  left: 9px;
4696
+  display: inline-block;
4697
+  border-right: 7px solid transparent;
4698
+  border-bottom: 7px solid #ccc;
4699
+  border-left: 7px solid transparent;
4700
+  border-bottom-color: rgba(0, 0, 0, 0.2);
4701
+  content: '';
4702
+}
4703
+
4704
+.navbar .nav > li > .dropdown-menu:after {
4705
+  position: absolute;
4706
+  top: -6px;
4707
+  left: 10px;
4708
+  display: inline-block;
4709
+  border-right: 6px solid transparent;
4710
+  border-bottom: 6px solid #ffffff;
4711
+  border-left: 6px solid transparent;
4712
+  content: '';
4713
+}
4714
+
4715
+.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
4716
+  top: auto;
4717
+  bottom: -7px;
4718
+  border-top: 7px solid #ccc;
4719
+  border-bottom: 0;
4720
+  border-top-color: rgba(0, 0, 0, 0.2);
4721
+}
4722
+
4723
+.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
4724
+  top: auto;
4725
+  bottom: -6px;
4726
+  border-top: 6px solid #ffffff;
4727
+  border-bottom: 0;
4728
+}
4729
+
4730
+.navbar .nav li.dropdown > a:hover .caret,
4731
+.navbar .nav li.dropdown > a:focus .caret {
4732
+  border-top-color: #333333;
4733
+  border-bottom-color: #333333;
4734
+}
4735
+
4736
+.navbar .nav li.dropdown.open > .dropdown-toggle,
4737
+.navbar .nav li.dropdown.active > .dropdown-toggle,
4738
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
4739
+  color: #555555;
4740
+  background-color: #e5e5e5;
4741
+}
4742
+
4743
+.navbar .nav li.dropdown > .dropdown-toggle .caret {
4744
+  border-top-color: #777777;
4745
+  border-bottom-color: #777777;
4746
+}
4747
+
4748
+.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
4749
+.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
4750
+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
4751
+  border-top-color: #555555;
4752
+  border-bottom-color: #555555;
4753
+}
4754
+
4755
+.navbar .pull-right > li > .dropdown-menu,
4756
+.navbar .nav > li > .dropdown-menu.pull-right {
4757
+  right: 0;
4758
+  left: auto;
4759
+}
4760
+
4761
+.navbar .pull-right > li > .dropdown-menu:before,
4762
+.navbar .nav > li > .dropdown-menu.pull-right:before {
4763
+  right: 12px;
4764
+  left: auto;
4765
+}
4766
+
4767
+.navbar .pull-right > li > .dropdown-menu:after,
4768
+.navbar .nav > li > .dropdown-menu.pull-right:after {
4769
+  right: 13px;
4770
+  left: auto;
4771
+}
4772
+
4773
+.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
4774
+.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
4775
+  right: 100%;
4776
+  left: auto;
4777
+  margin-right: -1px;
4778
+  margin-left: 0;
4779
+  -webkit-border-radius: 6px 0 6px 6px;
4780
+     -moz-border-radius: 6px 0 6px 6px;
4781
+          border-radius: 6px 0 6px 6px;
4782
+}
4783
+
4784
+.navbar-inverse .navbar-inner {
4785
+  background-color: #1b1b1b;
4786
+  background-image: -moz-linear-gradient(top, #222222, #111111);
4787
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
4788
+  background-image: -webkit-linear-gradient(top, #222222, #111111);
4789
+  background-image: -o-linear-gradient(top, #222222, #111111);
4790
+  background-image: linear-gradient(to bottom, #222222, #111111);
4791
+  background-repeat: repeat-x;
4792
+  border-color: #252525;
4793
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
4794
+}
4795
+
4796
+.navbar-inverse .brand,
4797
+.navbar-inverse .nav > li > a {
4798
+  color: #999999;
4799
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4800
+}
4801
+
4802
+.navbar-inverse .brand:hover,
4803
+.navbar-inverse .nav > li > a:hover,
4804
+.navbar-inverse .brand:focus,
4805
+.navbar-inverse .nav > li > a:focus {
4806
+  color: #ffffff;
4807
+}
4808
+
4809
+.navbar-inverse .brand {
4810
+  color: #999999;
4811
+}
4812
+
4813
+.navbar-inverse .navbar-text {
4814
+  color: #999999;
4815
+}
4816
+
4817
+.navbar-inverse .nav > li > a:focus,
4818
+.navbar-inverse .nav > li > a:hover {
4819
+  color: #ffffff;
4820
+  background-color: transparent;
4821
+}
4822
+
4823
+.navbar-inverse .nav .active > a,
4824
+.navbar-inverse .nav .active > a:hover,
4825
+.navbar-inverse .nav .active > a:focus {
4826
+  color: #ffffff;
4827
+  background-color: #111111;
4828
+}
4829
+
4830
+.navbar-inverse .navbar-link {
4831
+  color: #999999;
4832
+}
4833
+
4834
+.navbar-inverse .navbar-link:hover,
4835
+.navbar-inverse .navbar-link:focus {
4836
+  color: #ffffff;
4837
+}
4838
+
4839
+.navbar-inverse .divider-vertical {
4840
+  border-right-color: #222222;
4841
+  border-left-color: #111111;
4842
+}
4843
+
4844
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
4845
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
4846
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
4847
+  color: #ffffff;
4848
+  background-color: #111111;
4849
+}
4850
+
4851
+.navbar-inverse .nav li.dropdown > a:hover .caret,
4852
+.navbar-inverse .nav li.dropdown > a:focus .caret {
4853
+  border-top-color: #ffffff;
4854
+  border-bottom-color: #ffffff;
4855
+}
4856
+
4857
+.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
4858
+  border-top-color: #999999;
4859
+  border-bottom-color: #999999;
4860
+}
4861
+
4862
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
4863
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
4864
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
4865
+  border-top-color: #ffffff;
4866
+  border-bottom-color: #ffffff;
4867
+}
4868
+
4869
+.navbar-inverse .navbar-search .search-query {
4870
+  color: #ffffff;
4871
+  background-color: #515151;
4872
+  border-color: #111111;
4873
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4874
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4875
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4876
+  -webkit-transition: none;
4877
+     -moz-transition: none;
4878
+       -o-transition: none;
4879
+          transition: none;
4880
+}
4881
+
4882
+.navbar-inverse .navbar-search .search-query:-moz-placeholder {
4883
+  color: #cccccc;
4884
+}
4885
+
4886
+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
4887
+  color: #cccccc;
4888
+}
4889
+
4890
+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
4891
+  color: #cccccc;
4892
+}
4893
+
4894
+.navbar-inverse .navbar-search .search-query:focus,
4895
+.navbar-inverse .navbar-search .search-query.focused {
4896
+  padding: 5px 15px;
4897
+  color: #333333;
4898
+  text-shadow: 0 1px 0 #ffffff;
4899
+  background-color: #ffffff;
4900
+  border: 0;
4901
+  outline: 0;
4902
+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4903
+     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4904
+          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4905
+}
4906
+
4907
+.navbar-inverse .btn-navbar {
4908
+  color: #ffffff;
4909
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4910
+  background-color: #0e0e0e;
4911
+  *background-color: #040404;
4912
+  background-image: -moz-linear-gradient(top, #151515, #040404);
4913
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
4914
+  background-image: -webkit-linear-gradient(top, #151515, #040404);
4915
+  background-image: -o-linear-gradient(top, #151515, #040404);
4916
+  background-image: linear-gradient(to bottom, #151515, #040404);
4917
+  background-repeat: repeat-x;
4918
+  border-color: #040404 #040404 #000000;
4919
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
4920
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
4921
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
4922
+}
4923
+
4924
+.navbar-inverse .btn-navbar:hover,
4925
+.navbar-inverse .btn-navbar:focus,
4926
+.navbar-inverse .btn-navbar:active,
4927
+.navbar-inverse .btn-navbar.active,
4928
+.navbar-inverse .btn-navbar.disabled,
4929
+.navbar-inverse .btn-navbar[disabled] {
4930
+  color: #ffffff;
4931
+  background-color: #040404;
4932
+  *background-color: #000000;
4933
+}
4934
+
4935
+.navbar-inverse .btn-navbar:active,
4936
+.navbar-inverse .btn-navbar.active {
4937
+  background-color: #000000 \9;
4938
+}
4939
+
4940
+.breadcrumb {
4941
+  padding: 8px 15px;
4942
+  margin: 0 0 20px;
4943
+  list-style: none;
4944
+  background-color: #f5f5f5;
4945
+  -webkit-border-radius: 4px;
4946
+     -moz-border-radius: 4px;
4947
+          border-radius: 4px;
4948
+}
4949
+
4950
+.breadcrumb > li {
4951
+  display: inline-block;
4952
+  *display: inline;
4953
+  text-shadow: 0 1px 0 #ffffff;
4954
+  *zoom: 1;
4955
+}
4956
+
4957
+.breadcrumb > li > .divider {
4958
+  padding: 0 5px;
4959
+  color: #ccc;
4960
+}
4961
+
4962
+.breadcrumb > .active {
4963
+  color: #999999;
4964
+}
4965
+
4966
+.pagination {
4967
+  margin: 20px 0;
4968
+}
4969
+
4970
+.pagination ul {
4971
+  display: inline-block;
4972
+  *display: inline;
4973
+  margin-bottom: 0;
4974
+  margin-left: 0;
4975
+  -webkit-border-radius: 4px;
4976
+     -moz-border-radius: 4px;
4977
+          border-radius: 4px;
4978
+  *zoom: 1;
4979
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4980
+     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4981
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4982
+}
4983
+
4984
+.pagination ul > li {
4985
+  display: inline;
4986
+}
4987
+
4988
+.pagination ul > li > a,
4989
+.pagination ul > li > span {
4990
+  float: left;
4991
+  padding: 4px 12px;
4992
+  line-height: 20px;
4993
+  text-decoration: none;
4994
+  background-color: #ffffff;
4995
+  border: 1px solid #dddddd;
4996
+  border-left-width: 0;
4997
+}
4998
+
4999
+.pagination ul > li > a:hover,
5000
+.pagination ul > li > a:focus,
5001
+.pagination ul > .active > a,
5002
+.pagination ul > .active > span {
5003
+  background-color: #f5f5f5;
5004
+}
5005
+
5006
+.pagination ul > .active > a,
5007
+.pagination ul > .active > span {
5008
+  color: #999999;
5009
+  cursor: default;
5010
+}
5011
+
5012
+.pagination ul > .disabled > span,
5013
+.pagination ul > .disabled > a,
5014
+.pagination ul > .disabled > a:hover,
5015
+.pagination ul > .disabled > a:focus {
5016
+  color: #999999;
5017
+  cursor: default;
5018
+  background-color: transparent;
5019
+}
5020
+
5021
+.pagination ul > li:first-child > a,
5022
+.pagination ul > li:first-child > span {
5023
+  border-left-width: 1px;
5024
+  -webkit-border-bottom-left-radius: 4px;
5025
+          border-bottom-left-radius: 4px;
5026
+  -webkit-border-top-left-radius: 4px;
5027
+          border-top-left-radius: 4px;
5028
+  -moz-border-radius-bottomleft: 4px;
5029
+  -moz-border-radius-topleft: 4px;
5030
+}
5031
+
5032
+.pagination ul > li:last-child > a,
5033
+.pagination ul > li:last-child > span {
5034
+  -webkit-border-top-right-radius: 4px;
5035
+          border-top-right-radius: 4px;
5036
+  -webkit-border-bottom-right-radius: 4px;
5037
+          border-bottom-right-radius: 4px;
5038
+  -moz-border-radius-topright: 4px;
5039
+  -moz-border-radius-bottomright: 4px;
5040
+}
5041
+
5042
+.pagination-centered {
5043
+  text-align: center;
5044
+}
5045
+
5046
+.pagination-right {
5047
+  text-align: right;
5048
+}
5049
+
5050
+.pagination-large ul > li > a,
5051
+.pagination-large ul > li > span {
5052
+  padding: 11px 19px;
5053
+  font-size: 17.5px;
5054
+}
5055
+
5056
+.pagination-large ul > li:first-child > a,
5057
+.pagination-large ul > li:first-child > span {
5058
+  -webkit-border-bottom-left-radius: 6px;
5059
+          border-bottom-left-radius: 6px;
5060
+  -webkit-border-top-left-radius: 6px;
5061
+          border-top-left-radius: 6px;
5062
+  -moz-border-radius-bottomleft: 6px;
5063
+  -moz-border-radius-topleft: 6px;
5064
+}
5065
+
5066
+.pagination-large ul > li:last-child > a,
5067
+.pagination-large ul > li:last-child > span {
5068
+  -webkit-border-top-right-radius: 6px;
5069
+          border-top-right-radius: 6px;
5070
+  -webkit-border-bottom-right-radius: 6px;
5071
+          border-bottom-right-radius: 6px;
5072
+  -moz-border-radius-topright: 6px;
5073
+  -moz-border-radius-bottomright: 6px;
5074
+}
5075
+
5076
+.pagination-mini ul > li:first-child > a,
5077
+.pagination-small ul > li:first-child > a,
5078
+.pagination-mini ul > li:first-child > span,
5079
+.pagination-small ul > li:first-child > span {
5080
+  -webkit-border-bottom-left-radius: 3px;
5081
+          border-bottom-left-radius: 3px;
5082
+  -webkit-border-top-left-radius: 3px;
5083
+          border-top-left-radius: 3px;
5084
+  -moz-border-radius-bottomleft: 3px;
5085
+  -moz-border-radius-topleft: 3px;
5086
+}
5087
+
5088
+.pagination-mini ul > li:last-child > a,
5089
+.pagination-small ul > li:last-child > a,
5090
+.pagination-mini ul > li:last-child > span,
5091
+.pagination-small ul > li:last-child > span {
5092
+  -webkit-border-top-right-radius: 3px;
5093
+          border-top-right-radius: 3px;
5094
+  -webkit-border-bottom-right-radius: 3px;
5095
+          border-bottom-right-radius: 3px;
5096
+  -moz-border-radius-topright: 3px;
5097
+  -moz-border-radius-bottomright: 3px;
5098
+}
5099
+
5100
+.pagination-small ul > li > a,
5101
+.pagination-small ul > li > span {
5102
+  padding: 2px 10px;
5103
+  font-size: 11.9px;
5104
+}
5105
+
5106
+.pagination-mini ul > li > a,
5107
+.pagination-mini ul > li > span {
5108
+  padding: 0 6px;
5109
+  font-size: 10.5px;
5110
+}
5111
+
5112
+.pager {
5113
+  margin: 20px 0;
5114
+  text-align: center;
5115
+  list-style: none;
5116
+  *zoom: 1;
5117
+}
5118
+
5119
+.pager:before,
5120
+.pager:after {
5121
+  display: table;
5122
+  line-height: 0;
5123
+  content: "";
5124
+}
5125
+
5126
+.pager:after {
5127
+  clear: both;
5128
+}
5129
+
5130
+.pager li {
5131
+  display: inline;
5132
+}
5133
+
5134
+.pager li > a,
5135
+.pager li > span {
5136
+  display: inline-block;
5137
+  padding: 5px 14px;
5138
+  background-color: #fff;
5139
+  border: 1px solid #ddd;
5140
+  -webkit-border-radius: 15px;
5141
+     -moz-border-radius: 15px;
5142
+          border-radius: 15px;
5143
+}
5144
+
5145
+.pager li > a:hover,
5146
+.pager li > a:focus {
5147
+  text-decoration: none;
5148
+  background-color: #f5f5f5;
5149
+}
5150
+
5151
+.pager .next > a,
5152
+.pager .next > span {
5153
+  float: right;
5154
+}
5155
+
5156
+.pager .previous > a,
5157
+.pager .previous > span {
5158
+  float: left;
5159
+}
5160
+
5161
+.pager .disabled > a,
5162
+.pager .disabled > a:hover,
5163
+.pager .disabled > a:focus,
5164
+.pager .disabled > span {
5165
+  color: #999999;
5166
+  cursor: default;
5167
+  background-color: #fff;
5168
+}
5169
+
5170
+.modal-backdrop {
5171
+  position: fixed;
5172
+  top: 0;
5173
+  right: 0;
5174
+  bottom: 0;
5175
+  left: 0;
5176
+  z-index: 1040;
5177
+  background-color: #000000;
5178
+}
5179
+
5180
+.modal-backdrop.fade {
5181
+  opacity: 0;
5182
+}
5183
+
5184
+.modal-backdrop,
5185
+.modal-backdrop.fade.in {
5186
+  opacity: 0.8;
5187
+  filter: alpha(opacity=80);
5188
+}
5189
+
5190
+.modal {
5191
+  position: fixed;
5192
+  top: 10%;
5193
+  left: 50%;
5194
+  z-index: 1050;
5195
+  width: 560px;
5196
+  margin-left: -280px;
5197
+  background-color: #ffffff;
5198
+  border: 1px solid #999;
5199
+  border: 1px solid rgba(0, 0, 0, 0.3);
5200
+  *border: 1px solid #999;
5201
+  -webkit-border-radius: 6px;
5202
+     -moz-border-radius: 6px;
5203
+          border-radius: 6px;
5204
+  outline: none;
5205
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
5206
+     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
5207
+          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
5208
+  -webkit-background-clip: padding-box;
5209
+     -moz-background-clip: padding-box;
5210
+          background-clip: padding-box;
5211
+}
5212
+
5213
+.modal.fade {
5214
+  top: -25%;
5215
+  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
5216
+     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
5217
+       -o-transition: opacity 0.3s linear, top 0.3s ease-out;
5218
+          transition: opacity 0.3s linear, top 0.3s ease-out;
5219
+}
5220
+
5221
+.modal.fade.in {
5222
+  top: 10%;
5223
+}
5224
+
5225
+.modal-header {
5226
+  padding: 9px 15px;
5227
+  border-bottom: 1px solid #eee;
5228
+}
5229
+
5230
+.modal-header .close {
5231
+  margin-top: 2px;
5232
+}
5233
+
5234
+.modal-header h3 {
5235
+  margin: 0;
5236
+  line-height: 30px;
5237
+}
5238
+
5239
+.modal-body {
5240
+  position: relative;
5241
+  max-height: 400px;
5242
+  padding: 15px;
5243
+  overflow-y: auto;
5244
+}
5245
+
5246
+.modal-form {
5247
+  margin-bottom: 0;
5248
+}
5249
+
5250
+.modal-footer {
5251
+  padding: 14px 15px 15px;
5252
+  margin-bottom: 0;
5253
+  text-align: right;
5254
+  background-color: #f5f5f5;
5255
+  border-top: 1px solid #ddd;
5256
+  -webkit-border-radius: 0 0 6px 6px;
5257
+     -moz-border-radius: 0 0 6px 6px;
5258
+          border-radius: 0 0 6px 6px;
5259
+  *zoom: 1;
5260
+  -webkit-box-shadow: inset 0 1px 0 #ffffff;
5261
+     -moz-box-shadow: inset 0 1px 0 #ffffff;
5262
+          box-shadow: inset 0 1px 0 #ffffff;
5263
+}
5264
+
5265
+.modal-footer:before,
5266
+.modal-footer:after {
5267
+  display: table;
5268
+  line-height: 0;
5269
+  content: "";
5270
+}
5271
+
5272
+.modal-footer:after {
5273
+  clear: both;
5274
+}
5275
+
5276
+.modal-footer .btn + .btn {
5277
+  margin-bottom: 0;
5278
+  margin-left: 5px;
5279
+}
5280
+
5281
+.modal-footer .btn-group .btn + .btn {
5282
+  margin-left: -1px;
5283
+}
5284
+
5285
+.modal-footer .btn-block + .btn-block {
5286
+  margin-left: 0;
5287
+}
5288
+
5289
+.tooltip {
5290
+  position: absolute;
5291
+  z-index: 1030;
5292
+  display: block;
5293
+  font-size: 11px;
5294
+  line-height: 1.4;
5295
+  opacity: 0;
5296
+  filter: alpha(opacity=0);
5297
+  visibility: visible;
5298
+}
5299
+
5300
+.tooltip.in {
5301
+  opacity: 0.8;
5302
+  filter: alpha(opacity=80);
5303
+}
5304
+
5305
+.tooltip.top {
5306
+  padding: 5px 0;
5307
+  margin-top: -3px;
5308
+}
5309
+
5310
+.tooltip.right {
5311
+  padding: 0 5px;
5312
+  margin-left: 3px;
5313
+}
5314
+
5315
+.tooltip.bottom {
5316
+  padding: 5px 0;
5317
+  margin-top: 3px;
5318
+}
5319
+
5320
+.tooltip.left {
5321
+  padding: 0 5px;
5322
+  margin-left: -3px;
5323
+}
5324
+
5325
+.tooltip-inner {
5326
+  max-width: 200px;
5327
+  padding: 8px;
5328
+  color: #ffffff;
5329
+  text-align: center;
5330
+  text-decoration: none;
5331
+  background-color: #000000;
5332
+  -webkit-border-radius: 4px;
5333
+     -moz-border-radius: 4px;
5334
+          border-radius: 4px;
5335
+}
5336
+
5337
+.tooltip-arrow {
5338
+  position: absolute;
5339
+  width: 0;
5340
+  height: 0;
5341
+  border-color: transparent;
5342
+  border-style: solid;
5343
+}
5344
+
5345
+.tooltip.top .tooltip-arrow {
5346
+  bottom: 0;
5347
+  left: 50%;
5348
+  margin-left: -5px;
5349
+  border-top-color: #000000;
5350
+  border-width: 5px 5px 0;
5351
+}
5352
+
5353
+.tooltip.right .tooltip-arrow {
5354
+  top: 50%;
5355
+  left: 0;
5356
+  margin-top: -5px;
5357
+  border-right-color: #000000;
5358
+  border-width: 5px 5px 5px 0;
5359
+}
5360
+
5361
+.tooltip.left .tooltip-arrow {
5362
+  top: 50%;
5363
+  right: 0;
5364
+  margin-top: -5px;
5365
+  border-left-color: #000000;
5366
+  border-width: 5px 0 5px 5px;
5367
+}
5368
+
5369
+.tooltip.bottom .tooltip-arrow {
5370
+  top: 0;
5371
+  left: 50%;
5372
+  margin-left: -5px;
5373
+  border-bottom-color: #000000;
5374
+  border-width: 0 5px 5px;
5375
+}
5376
+
5377
+.popover {
5378
+  position: absolute;
5379
+  top: 0;
5380
+  left: 0;
5381
+  z-index: 1010;
5382
+  display: none;
5383
+  max-width: 276px;
5384
+  padding: 1px;
5385
+  text-align: left;
5386
+  white-space: normal;
5387
+  background-color: #ffffff;
5388
+  border: 1px solid #ccc;
5389
+  border: 1px solid rgba(0, 0, 0, 0.2);
5390
+  -webkit-border-radius: 6px;
5391
+     -moz-border-radius: 6px;
5392
+          border-radius: 6px;
5393
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5394
+     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5395
+          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5396
+  -webkit-background-clip: padding-box;
5397
+     -moz-background-clip: padding;
5398
+          background-clip: padding-box;
5399
+}
5400
+
5401
+.popover.top {
5402
+  margin-top: -10px;
5403
+}
5404
+
5405
+.popover.right {
5406
+  margin-left: 10px;
5407
+}
5408
+
5409
+.popover.bottom {
5410
+  margin-top: 10px;
5411
+}
5412
+
5413
+.popover.left {
5414
+  margin-left: -10px;
5415
+}
5416
+
5417
+.popover-title {
5418
+  padding: 8px 14px;
5419
+  margin: 0;
5420
+  font-size: 14px;
5421
+  font-weight: normal;
5422
+  line-height: 18px;
5423
+  background-color: #f7f7f7;
5424
+  border-bottom: 1px solid #ebebeb;
5425
+  -webkit-border-radius: 5px 5px 0 0;
5426
+     -moz-border-radius: 5px 5px 0 0;
5427
+          border-radius: 5px 5px 0 0;
5428
+}
5429
+
5430
+.popover-title:empty {
5431
+  display: none;
5432
+}
5433
+
5434
+.popover-content {
5435
+  padding: 9px 14px;
5436
+}
5437
+
5438
+.popover .arrow,
5439
+.popover .arrow:after {
5440
+  position: absolute;
5441
+  display: block;
5442
+  width: 0;
5443
+  height: 0;
5444
+  border-color: transparent;
5445
+  border-style: solid;
5446
+}
5447
+
5448
+.popover .arrow {
5449
+  border-width: 11px;
5450
+}
5451
+
5452
+.popover .arrow:after {
5453
+  border-width: 10px;
5454
+  content: "";
5455
+}
5456
+
5457
+.popover.top .arrow {
5458
+  bottom: -11px;
5459
+  left: 50%;
5460
+  margin-left: -11px;
5461
+  border-top-color: #999;
5462
+  border-top-color: rgba(0, 0, 0, 0.25);
5463
+  border-bottom-width: 0;
5464
+}
5465
+
5466
+.popover.top .arrow:after {
5467
+  bottom: 1px;
5468
+  margin-left: -10px;
5469
+  border-top-color: #ffffff;
5470
+  border-bottom-width: 0;
5471
+}
5472
+
5473
+.popover.right .arrow {
5474
+  top: 50%;
5475
+  left: -11px;
5476
+  margin-top: -11px;
5477
+  border-right-color: #999;
5478
+  border-right-color: rgba(0, 0, 0, 0.25);
5479
+  border-left-width: 0;
5480
+}
5481
+
5482
+.popover.right .arrow:after {
5483
+  bottom: -10px;
5484
+  left: 1px;
5485
+  border-right-color: #ffffff;
5486
+  border-left-width: 0;
5487
+}
5488
+
5489
+.popover.bottom .arrow {
5490
+  top: -11px;
5491
+  left: 50%;
5492
+  margin-left: -11px;
5493
+  border-bottom-color: #999;
5494
+  border-bottom-color: rgba(0, 0, 0, 0.25);
5495
+  border-top-width: 0;
5496
+}
5497
+
5498
+.popover.bottom .arrow:after {
5499
+  top: 1px;
5500
+  margin-left: -10px;
5501
+  border-bottom-color: #ffffff;
5502
+  border-top-width: 0;
5503
+}
5504
+
5505
+.popover.left .arrow {
5506
+  top: 50%;
5507
+  right: -11px;
5508
+  margin-top: -11px;
5509
+  border-left-color: #999;
5510
+  border-left-color: rgba(0, 0, 0, 0.25);
5511
+  border-right-width: 0;
5512
+}
5513
+
5514
+.popover.left .arrow:after {
5515
+  right: 1px;
5516
+  bottom: -10px;
5517
+  border-left-color: #ffffff;
5518
+  border-right-width: 0;
5519
+}
5520
+
5521
+.thumbnails {
5522
+  margin-left: -20px;
5523
+  list-style: none;
5524
+  *zoom: 1;
5525
+}
5526
+
5527
+.thumbnails:before,
5528
+.thumbnails:after {
5529
+  display: table;
5530
+  line-height: 0;
5531
+  content: "";
5532
+}
5533
+
5534
+.thumbnails:after {
5535
+  clear: both;
5536
+}
5537
+
5538
+.row-fluid .thumbnails {
5539
+  margin-left: 0;
5540
+}
5541
+
5542
+.thumbnails > li {
5543
+  float: left;
5544
+  margin-bottom: 20px;
5545
+  margin-left: 20px;
5546
+}
5547
+
5548
+.thumbnail {
5549
+  display: block;
5550
+  padding: 4px;
5551
+  line-height: 20px;
5552
+  border: 1px solid #ddd;
5553
+  -webkit-border-radius: 4px;
5554
+     -moz-border-radius: 4px;
5555
+          border-radius: 4px;
5556
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5557
+     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5558
+          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5559
+  -webkit-transition: all 0.2s ease-in-out;
5560
+     -moz-transition: all 0.2s ease-in-out;
5561
+       -o-transition: all 0.2s ease-in-out;
5562
+          transition: all 0.2s ease-in-out;
5563
+}
5564
+
5565
+a.thumbnail:hover,
5566
+a.thumbnail:focus {
5567
+  border-color: #0088cc;
5568
+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5569
+     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5570
+          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5571
+}
5572
+
5573
+.thumbnail > img {
5574
+  display: block;
5575
+  max-width: 100%;
5576
+  margin-right: auto;
5577
+  margin-left: auto;
5578
+}
5579
+
5580
+.thumbnail .caption {
5581
+  padding: 9px;
5582
+  color: #555555;
5583
+}
5584
+
5585
+.media,
5586
+.media-body {
5587
+  overflow: hidden;
5588
+  *overflow: visible;
5589
+  zoom: 1;
5590
+}
5591
+
5592
+.media,
5593
+.media .media {
5594
+  margin-top: 15px;
5595
+}
5596
+
5597
+.media:first-child {
5598
+  margin-top: 0;
5599
+}
5600
+
5601
+.media-object {
5602
+  display: block;
5603
+}
5604
+
5605
+.media-heading {
5606
+  margin: 0 0 5px;
5607
+}
5608
+
5609
+.media > .pull-left {
5610
+  margin-right: 10px;
5611
+}
5612
+
5613
+.media > .pull-right {
5614
+  margin-left: 10px;
5615
+}
5616
+
5617
+.media-list {
5618
+  margin-left: 0;
5619
+  list-style: none;
5620
+}
5621
+
5622
+.label,
5623
+.badge {
5624
+  display: inline-block;
5625
+  padding: 2px 4px;
5626
+  font-size: 11.844px;
5627
+  font-weight: bold;
5628
+  line-height: 14px;
5629
+  color: #ffffff;
5630
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
5631
+  white-space: nowrap;
5632
+  vertical-align: baseline;
5633
+  background-color: #999999;
5634
+}
5635
+
5636
+.label {
5637
+  -webkit-border-radius: 3px;
5638
+     -moz-border-radius: 3px;
5639
+          border-radius: 3px;
5640
+}
5641
+
5642
+.badge {
5643
+  padding-right: 9px;
5644
+  padding-left: 9px;
5645
+  -webkit-border-radius: 9px;
5646
+     -moz-border-radius: 9px;
5647
+          border-radius: 9px;
5648
+}
5649
+
5650
+.label:empty,
5651
+.badge:empty {
5652
+  display: none;
5653
+}
5654
+
5655
+a.label:hover,
5656
+a.label:focus,
5657
+a.badge:hover,
5658
+a.badge:focus {
5659
+  color: #ffffff;
5660
+  text-decoration: none;
5661
+  cursor: pointer;
5662
+}
5663
+
5664
+.label-important,
5665
+.badge-important {
5666
+  background-color: #b94a48;
5667
+}
5668
+
5669
+.label-important[href],
5670
+.badge-important[href] {
5671
+  background-color: #953b39;
5672
+}
5673
+
5674
+.label-warning,
5675
+.badge-warning {
5676
+  background-color: #f89406;
5677
+}
5678
+
5679
+.label-warning[href],
5680
+.badge-warning[href] {
5681
+  background-color: #c67605;
5682
+}
5683
+
5684
+.label-success,
5685
+.badge-success {
5686
+  background-color: #468847;
5687
+}
5688
+
5689
+.label-success[href],
5690
+.badge-success[href] {
5691
+  background-color: #356635;
5692
+}
5693
+
5694
+.label-info,
5695
+.badge-info {
5696
+  background-color: #3a87ad;
5697
+}
5698
+
5699
+.label-info[href],
5700
+.badge-info[href] {
5701
+  background-color: #2d6987;
5702
+}
5703
+
5704
+.label-inverse,
5705
+.badge-inverse {
5706
+  background-color: #333333;
5707
+}
5708
+
5709
+.label-inverse[href],
5710
+.badge-inverse[href] {
5711
+  background-color: #1a1a1a;
5712
+}
5713
+
5714
+.btn .label,
5715
+.btn .badge {
5716
+  position: relative;
5717
+  top: -1px;
5718
+}
5719
+
5720
+.btn-mini .label,
5721
+.btn-mini .badge {
5722
+  top: 0;
5723
+}
5724
+
5725
+@-webkit-keyframes progress-bar-stripes {
5726
+  from {
5727
+    background-position: 40px 0;
5728
+  }
5729
+  to {
5730
+    background-position: 0 0;
5731
+  }
5732
+}
5733
+
5734
+@-moz-keyframes progress-bar-stripes {
5735
+  from {
5736
+    background-position: 40px 0;
5737
+  }
5738
+  to {
5739
+    background-position: 0 0;
5740
+  }
5741
+}
5742
+
5743
+@-ms-keyframes progress-bar-stripes {
5744
+  from {
5745
+    background-position: 40px 0;
5746
+  }
5747
+  to {
5748
+    background-position: 0 0;
5749
+  }
5750
+}
5751
+
5752
+@-o-keyframes progress-bar-stripes {
5753
+  from {
5754
+    background-position: 0 0;
5755
+  }
5756
+  to {
5757
+    background-position: 40px 0;
5758
+  }
5759
+}
5760
+
5761
+@keyframes progress-bar-stripes {
5762
+  from {
5763
+    background-position: 40px 0;
5764
+  }
5765
+  to {
5766
+    background-position: 0 0;
5767
+  }
5768
+}
5769
+
5770
+.progress {
5771
+  height: 20px;
5772
+  margin-bottom: 20px;
5773
+  overflow: hidden;
5774
+  background-color: #f7f7f7;
5775
+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
5776
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
5777
+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
5778
+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
5779
+  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
5780
+  background-repeat: repeat-x;
5781
+  -webkit-border-radius: 4px;
5782
+     -moz-border-radius: 4px;
5783
+          border-radius: 4px;
5784
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
5785
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5786
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5787
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5788
+}
5789
+
5790
+.progress .bar {
5791
+  float: left;
5792
+  width: 0;
5793
+  height: 100%;
5794
+  font-size: 12px;
5795
+  color: #ffffff;
5796
+  text-align: center;
5797
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
5798
+  background-color: #0e90d2;
5799
+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
5800
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
5801
+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
5802
+  background-image: -o-linear-gradient(top, #149bdf, #0480be);
5803
+  background-image: linear-gradient(to bottom, #149bdf, #0480be);
5804
+  background-repeat: repeat-x;
5805
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
5806
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5807
+     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5808
+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5809
+  -webkit-box-sizing: border-box;
5810
+     -moz-box-sizing: border-box;
5811
+          box-sizing: border-box;
5812
+  -webkit-transition: width 0.6s ease;
5813
+     -moz-transition: width 0.6s ease;
5814
+       -o-transition: width 0.6s ease;
5815
+          transition: width 0.6s ease;
5816
+}
5817
+
5818
+.progress .bar + .bar {
5819
+  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5820
+     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5821
+          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5822
+}
5823
+
5824
+.progress-striped .bar {
5825
+  background-color: #149bdf;
5826
+  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));
5827
+  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);
5828
+  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);
5829
+  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);
5830
+  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);
5831
+  -webkit-background-size: 40px 40px;
5832
+     -moz-background-size: 40px 40px;
5833
+       -o-background-size: 40px 40px;
5834
+          background-size: 40px 40px;
5835
+}
5836
+
5837
+.progress.active .bar {
5838
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
5839
+     -moz-animation: progress-bar-stripes 2s linear infinite;
5840
+      -ms-animation: progress-bar-stripes 2s linear infinite;
5841
+       -o-animation: progress-bar-stripes 2s linear infinite;
5842
+          animation: progress-bar-stripes 2s linear infinite;
5843
+}
5844
+
5845
+.progress-danger .bar,
5846
+.progress .bar-danger {
5847
+  background-color: #dd514c;
5848
+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
5849
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
5850
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
5851
+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
5852
+  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
5853
+  background-repeat: repeat-x;
5854
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
5855
+}
5856
+
5857
+.progress-danger.progress-striped .bar,
5858
+.progress-striped .bar-danger {
5859
+  background-color: #ee5f5b;
5860
+  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));
5861
+  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);
5862
+  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);
5863
+  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);
5864
+  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);
5865
+}
5866
+
5867
+.progress-success .bar,
5868
+.progress .bar-success {
5869
+  background-color: #5eb95e;
5870
+  background-image: -moz-linear-gradient(top, #62c462, #57a957);
5871
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
5872
+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
5873
+  background-image: -o-linear-gradient(top, #62c462, #57a957);
5874
+  background-image: linear-gradient(to bottom, #62c462, #57a957);
5875
+  background-repeat: repeat-x;
5876
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
5877
+}
5878
+
5879
+.progress-success.progress-striped .bar,
5880
+.progress-striped .bar-success {
5881
+  background-color: #62c462;
5882
+  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));
5883
+  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);
5884
+  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);
5885
+  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);
5886
+  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);
5887
+}
5888
+
5889
+.progress-info .bar,
5890
+.progress .bar-info {
5891
+  background-color: #4bb1cf;
5892
+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
5893
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
5894
+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
5895
+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
5896
+  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
5897
+  background-repeat: repeat-x;
5898
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
5899
+}
5900
+
5901
+.progress-info.progress-striped .bar,
5902
+.progress-striped .bar-info {
5903
+  background-color: #5bc0de;
5904
+  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));
5905
+  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);
5906
+  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);
5907
+  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);
5908
+  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);
5909
+}
5910
+
5911
+.progress-warning .bar,
5912
+.progress .bar-warning {
5913
+  background-color: #faa732;
5914
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
5915
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
5916
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
5917
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
5918
+  background-image: linear-gradient(to bottom, #fbb450, #f89406);
5919
+  background-repeat: repeat-x;
5920
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
5921
+}
5922
+
5923
+.progress-warning.progress-striped .bar,
5924
+.progress-striped .bar-warning {
5925
+  background-color: #fbb450;
5926
+  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));
5927
+  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);
5928
+  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);
5929
+  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);
5930
+  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);
5931
+}
5932
+
5933
+.accordion {
5934
+  margin-bottom: 20px;
5935
+}
5936
+
5937
+.accordion-group {
5938
+  margin-bottom: 2px;
5939
+  border: 1px solid #e5e5e5;
5940
+  -webkit-border-radius: 4px;
5941
+     -moz-border-radius: 4px;
5942
+          border-radius: 4px;
5943
+}
5944
+
5945
+.accordion-heading {
5946
+  border-bottom: 0;
5947
+}
5948
+
5949
+.accordion-heading .accordion-toggle {
5950
+  display: block;
5951
+  padding: 8px 15px;
5952
+}
5953
+
5954
+.accordion-toggle {
5955
+  cursor: pointer;
5956
+}
5957
+
5958
+.accordion-inner {
5959
+  padding: 9px 15px;
5960
+  border-top: 1px solid #e5e5e5;
5961
+}
5962
+
5963
+.carousel {
5964
+  position: relative;
5965
+  margin-bottom: 20px;
5966
+  line-height: 1;
5967
+}
5968
+
5969
+.carousel-inner {
5970
+  position: relative;
5971
+  width: 100%;
5972
+  overflow: hidden;
5973
+}
5974
+
5975
+.carousel-inner > .item {
5976
+  position: relative;
5977
+  display: none;
5978
+  -webkit-transition: 0.6s ease-in-out left;
5979
+     -moz-transition: 0.6s ease-in-out left;
5980
+       -o-transition: 0.6s ease-in-out left;
5981
+          transition: 0.6s ease-in-out left;
5982
+}
5983
+
5984
+.carousel-inner > .item > img,
5985
+.carousel-inner > .item > a > img {
5986
+  display: block;
5987
+  line-height: 1;
5988
+}
5989
+
5990
+.carousel-inner > .active,
5991
+.carousel-inner > .next,
5992
+.carousel-inner > .prev {
5993
+  display: block;
5994
+}
5995
+
5996
+.carousel-inner > .active {
5997
+  left: 0;
5998
+}
5999
+
6000
+.carousel-inner > .next,
6001
+.carousel-inner > .prev {
6002
+  position: absolute;
6003
+  top: 0;
6004
+  width: 100%;
6005
+}
6006
+
6007
+.carousel-inner > .next {
6008
+  left: 100%;
6009
+}
6010
+
6011
+.carousel-inner > .prev {
6012
+  left: -100%;
6013
+}
6014
+
6015
+.carousel-inner > .next.left,
6016
+.carousel-inner > .prev.right {
6017
+  left: 0;
6018
+}
6019
+
6020
+.carousel-inner > .active.left {
6021
+  left: -100%;
6022
+}
6023
+
6024
+.carousel-inner > .active.right {
6025
+  left: 100%;
6026
+}
6027
+
6028
+.carousel-control {
6029
+  position: absolute;
6030
+  top: 40%;
6031
+  left: 15px;
6032
+  width: 40px;
6033
+  height: 40px;
6034
+  margin-top: -20px;
6035
+  font-size: 60px;
6036
+  font-weight: 100;
6037
+  line-height: 30px;
6038
+  color: #ffffff;
6039
+  text-align: center;
6040
+  background: #222222;
6041
+  border: 3px solid #ffffff;
6042
+  -webkit-border-radius: 23px;
6043
+     -moz-border-radius: 23px;
6044
+          border-radius: 23px;
6045
+  opacity: 0.5;
6046
+  filter: alpha(opacity=50);
6047
+}
6048
+
6049
+.carousel-control.right {
6050
+  right: 15px;
6051
+  left: auto;
6052
+}
6053
+
6054
+.carousel-control:hover,
6055
+.carousel-control:focus {
6056
+  color: #ffffff;
6057
+  text-decoration: none;
6058
+  opacity: 0.9;
6059
+  filter: alpha(opacity=90);
6060
+}
6061
+
6062
+.carousel-indicators {
6063
+  position: absolute;
6064
+  top: 15px;
6065
+  right: 15px;
6066
+  z-index: 5;
6067
+  margin: 0;
6068
+  list-style: none;
6069
+}
6070
+
6071
+.carousel-indicators li {
6072
+  display: block;
6073
+  float: left;
6074
+  width: 10px;
6075
+  height: 10px;
6076
+  margin-left: 5px;
6077
+  text-indent: -999px;
6078
+  background-color: #ccc;
6079
+  background-color: rgba(255, 255, 255, 0.25);
6080
+  border-radius: 5px;
6081
+}
6082
+
6083
+.carousel-indicators .active {
6084
+  background-color: #fff;
6085
+}
6086
+
6087
+.carousel-caption {
6088
+  position: absolute;
6089
+  right: 0;
6090
+  bottom: 0;
6091
+  left: 0;
6092
+  padding: 15px;
6093
+  background: #333333;
6094
+  background: rgba(0, 0, 0, 0.75);
6095
+}
6096
+
6097
+.carousel-caption h4,
6098
+.carousel-caption p {
6099
+  line-height: 20px;
6100
+  color: #ffffff;
6101
+}
6102
+
6103
+.carousel-caption h4 {
6104
+  margin: 0 0 5px;
6105
+}
6106
+
6107
+.carousel-caption p {
6108
+  margin-bottom: 0;
6109
+}
6110
+
6111
+.hero-unit {
6112
+  padding: 60px;
6113
+  margin-bottom: 30px;
6114
+  font-size: 18px;
6115
+  font-weight: 200;
6116
+  line-height: 30px;
6117
+  color: inherit;
6118
+  background-color: #eeeeee;
6119
+  -webkit-border-radius: 6px;
6120
+     -moz-border-radius: 6px;
6121
+          border-radius: 6px;
6122
+}
6123
+
6124
+.hero-unit h1 {
6125
+  margin-bottom: 0;
6126
+  font-size: 60px;
6127
+  line-height: 1;
6128
+  letter-spacing: -1px;
6129
+  color: inherit;
6130
+}
6131
+
6132
+.hero-unit li {
6133
+  line-height: 30px;
6134
+}
6135
+
6136
+.pull-right {
6137
+  float: right;
6138
+}
6139
+
6140
+.pull-left {
6141
+  float: left;
6142
+}
6143
+
6144
+.hide {
6145
+  display: none;
6146
+}
6147
+
6148
+.show {
6149
+  display: block;
6150
+}
6151
+
6152
+.invisible {
6153
+  visibility: hidden;
6154
+}
6155
+
6156
+.affix {
6157
+  position: fixed;
6158
+}
BIN
setup/public/img/glyphicons-halflings-white.png
BIN
setup/public/img/glyphicons-halflings.png
+2276
setup/public/js/bootstrap.js
... ...
@@ -0,0 +1,2276 @@
1
+/* ===================================================
2
+ * bootstrap-transition.js v2.3.1
3
+ * http://twitter.github.com/bootstrap/javascript.html#transitions
4
+ * ===================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ========================================================== */
19
+
20
+
21
+!function ($) {
22
+
23
+  "use strict"; // jshint ;_;
24
+
25
+
26
+  /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
27
+   * ======================================================= */
28
+
29
+  $(function () {
30
+
31
+    $.support.transition = (function () {
32
+
33
+      var transitionEnd = (function () {
34
+
35
+        var el = document.createElement('bootstrap')
36
+          , transEndEventNames = {
37
+               'WebkitTransition' : 'webkitTransitionEnd'
38
+            ,  'MozTransition'    : 'transitionend'
39
+            ,  'OTransition'      : 'oTransitionEnd otransitionend'
40
+            ,  'transition'       : 'transitionend'
41
+            }
42
+          , name
43
+
44
+        for (name in transEndEventNames){
45
+          if (el.style[name] !== undefined) {
46
+            return transEndEventNames[name]
47
+          }
48
+        }
49
+
50
+      }())
51
+
52
+      return transitionEnd && {
53
+        end: transitionEnd
54
+      }
55
+
56
+    })()
57
+
58
+  })
59
+
60
+}(window.jQuery);/* ==========================================================
61
+ * bootstrap-alert.js v2.3.1
62
+ * http://twitter.github.com/bootstrap/javascript.html#alerts
63
+ * ==========================================================
64
+ * Copyright 2012 Twitter, Inc.
65
+ *
66
+ * Licensed under the Apache License, Version 2.0 (the "License");
67
+ * you may not use this file except in compliance with the License.
68
+ * You may obtain a copy of the License at
69
+ *
70
+ * http://www.apache.org/licenses/LICENSE-2.0
71
+ *
72
+ * Unless required by applicable law or agreed to in writing, software
73
+ * distributed under the License is distributed on an "AS IS" BASIS,
74
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
75
+ * See the License for the specific language governing permissions and
76
+ * limitations under the License.
77
+ * ========================================================== */
78
+
79
+
80
+!function ($) {
81
+
82
+  "use strict"; // jshint ;_;
83
+
84
+
85
+ /* ALERT CLASS DEFINITION
86
+  * ====================== */
87
+
88
+  var dismiss = '[data-dismiss="alert"]'
89
+    , Alert = function (el) {
90
+        $(el).on('click', dismiss, this.close)
91
+      }
92
+
93
+  Alert.prototype.close = function (e) {
94
+    var $this = $(this)
95
+      , selector = $this.attr('data-target')
96
+      , $parent
97
+
98
+    if (!selector) {
99
+      selector = $this.attr('href')
100
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
101
+    }
102
+
103
+    $parent = $(selector)
104
+
105
+    e && e.preventDefault()
106
+
107
+    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
108
+
109
+    $parent.trigger(e = $.Event('close'))
110
+
111
+    if (e.isDefaultPrevented()) return
112
+
113
+    $parent.removeClass('in')
114
+
115
+    function removeElement() {
116
+      $parent
117
+        .trigger('closed')
118
+        .remove()
119
+    }
120
+
121
+    $.support.transition && $parent.hasClass('fade') ?
122
+      $parent.on($.support.transition.end, removeElement) :
123
+      removeElement()
124
+  }
125
+
126
+
127
+ /* ALERT PLUGIN DEFINITION
128
+  * ======================= */
129
+
130
+  var old = $.fn.alert
131
+
132
+  $.fn.alert = function (option) {
133
+    return this.each(function () {
134
+      var $this = $(this)
135
+        , data = $this.data('alert')
136
+      if (!data) $this.data('alert', (data = new Alert(this)))
137
+      if (typeof option == 'string') data[option].call($this)
138
+    })
139
+  }
140
+
141
+  $.fn.alert.Constructor = Alert
142
+
143
+
144
+ /* ALERT NO CONFLICT
145
+  * ================= */
146
+
147
+  $.fn.alert.noConflict = function () {
148
+    $.fn.alert = old
149
+    return this
150
+  }
151
+
152
+
153
+ /* ALERT DATA-API
154
+  * ============== */
155
+
156
+  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
157
+
158
+}(window.jQuery);/* ============================================================
159
+ * bootstrap-button.js v2.3.1
160
+ * http://twitter.github.com/bootstrap/javascript.html#buttons
161
+ * ============================================================
162
+ * Copyright 2012 Twitter, Inc.
163
+ *
164
+ * Licensed under the Apache License, Version 2.0 (the "License");
165
+ * you may not use this file except in compliance with the License.
166
+ * You may obtain a copy of the License at
167
+ *
168
+ * http://www.apache.org/licenses/LICENSE-2.0
169
+ *
170
+ * Unless required by applicable law or agreed to in writing, software
171
+ * distributed under the License is distributed on an "AS IS" BASIS,
172
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
173
+ * See the License for the specific language governing permissions and
174
+ * limitations under the License.
175
+ * ============================================================ */
176
+
177
+
178
+!function ($) {
179
+
180
+  "use strict"; // jshint ;_;
181
+
182
+
183
+ /* BUTTON PUBLIC CLASS DEFINITION
184
+  * ============================== */
185
+
186
+  var Button = function (element, options) {
187
+    this.$element = $(element)
188
+    this.options = $.extend({}, $.fn.button.defaults, options)
189
+  }
190
+
191
+  Button.prototype.setState = function (state) {
192
+    var d = 'disabled'
193
+      , $el = this.$element
194
+      , data = $el.data()
195
+      , val = $el.is('input') ? 'val' : 'html'
196
+
197
+    state = state + 'Text'
198
+    data.resetText || $el.data('resetText', $el[val]())
199
+
200
+    $el[val](data[state] || this.options[state])
201
+
202
+    // push to event loop to allow forms to submit
203
+    setTimeout(function () {
204
+      state == 'loadingText' ?
205
+        $el.addClass(d).attr(d, d) :
206
+        $el.removeClass(d).removeAttr(d)
207
+    }, 0)
208
+  }
209
+
210
+  Button.prototype.toggle = function () {
211
+    var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
212
+
213
+    $parent && $parent
214
+      .find('.active')
215
+      .removeClass('active')
216
+
217
+    this.$element.toggleClass('active')
218
+  }
219
+
220
+
221
+ /* BUTTON PLUGIN DEFINITION
222
+  * ======================== */
223
+
224
+  var old = $.fn.button
225
+
226
+  $.fn.button = function (option) {
227
+    return this.each(function () {
228
+      var $this = $(this)
229
+        , data = $this.data('button')
230
+        , options = typeof option == 'object' && option
231
+      if (!data) $this.data('button', (data = new Button(this, options)))
232
+      if (option == 'toggle') data.toggle()
233
+      else if (option) data.setState(option)
234
+    })
235
+  }
236
+
237
+  $.fn.button.defaults = {
238
+    loadingText: 'loading...'
239
+  }
240
+
241
+  $.fn.button.Constructor = Button
242
+
243
+
244
+ /* BUTTON NO CONFLICT
245
+  * ================== */
246
+
247
+  $.fn.button.noConflict = function () {
248
+    $.fn.button = old
249
+    return this
250
+  }
251
+
252
+
253
+ /* BUTTON DATA-API
254
+  * =============== */
255
+
256
+  $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
257
+    var $btn = $(e.target)
258
+    if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
259
+    $btn.button('toggle')
260
+  })
261
+
262
+}(window.jQuery);/* ==========================================================
263
+ * bootstrap-carousel.js v2.3.1
264
+ * http://twitter.github.com/bootstrap/javascript.html#carousel
265
+ * ==========================================================
266
+ * Copyright 2012 Twitter, Inc.
267
+ *
268
+ * Licensed under the Apache License, Version 2.0 (the "License");
269
+ * you may not use this file except in compliance with the License.
270
+ * You may obtain a copy of the License at
271
+ *
272
+ * http://www.apache.org/licenses/LICENSE-2.0
273
+ *
274
+ * Unless required by applicable law or agreed to in writing, software
275
+ * distributed under the License is distributed on an "AS IS" BASIS,
276
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
277
+ * See the License for the specific language governing permissions and
278
+ * limitations under the License.
279
+ * ========================================================== */
280
+
281
+
282
+!function ($) {
283
+
284
+  "use strict"; // jshint ;_;
285
+
286
+
287
+ /* CAROUSEL CLASS DEFINITION
288
+  * ========================= */
289
+
290
+  var Carousel = function (element, options) {
291
+    this.$element = $(element)
292
+    this.$indicators = this.$element.find('.carousel-indicators')
293
+    this.options = options
294
+    this.options.pause == 'hover' && this.$element
295
+      .on('mouseenter', $.proxy(this.pause, this))
296
+      .on('mouseleave', $.proxy(this.cycle, this))
297
+  }
298
+
299
+  Carousel.prototype = {
300
+
301
+    cycle: function (e) {
302
+      if (!e) this.paused = false
303
+      if (this.interval) clearInterval(this.interval);
304
+      this.options.interval
305
+        && !this.paused
306
+        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
307
+      return this
308
+    }
309
+
310
+  , getActiveIndex: function () {
311
+      this.$active = this.$element.find('.item.active')
312
+      this.$items = this.$active.parent().children()
313
+      return this.$items.index(this.$active)
314
+    }
315
+
316
+  , to: function (pos) {
317
+      var activeIndex = this.getActiveIndex()
318
+        , that = this
319
+
320
+      if (pos > (this.$items.length - 1) || pos < 0) return
321
+
322
+      if (this.sliding) {
323
+        return this.$element.one('slid', function () {
324
+          that.to(pos)
325
+        })
326
+      }
327
+
328
+      if (activeIndex == pos) {
329
+        return this.pause().cycle()
330
+      }
331
+
332
+      return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
333
+    }
334
+
335
+  , pause: function (e) {
336
+      if (!e) this.paused = true
337
+      if (this.$element.find('.next, .prev').length && $.support.transition.end) {
338
+        this.$element.trigger($.support.transition.end)
339
+        this.cycle(true)
340
+      }
341
+      clearInterval(this.interval)
342
+      this.interval = null
343
+      return this
344
+    }
345
+
346
+  , next: function () {
347
+      if (this.sliding) return
348
+      return this.slide('next')
349
+    }
350
+
351
+  , prev: function () {
352
+      if (this.sliding) return
353
+      return this.slide('prev')
354
+    }
355
+
356
+  , slide: function (type, next) {
357
+      var $active = this.$element.find('.item.active')
358
+        , $next = next || $active[type]()
359
+        , isCycling = this.interval
360
+        , direction = type == 'next' ? 'left' : 'right'
361
+        , fallback  = type == 'next' ? 'first' : 'last'
362
+        , that = this
363
+        , e
364
+
365
+      this.sliding = true
366
+
367
+      isCycling && this.pause()
368
+
369
+      $next = $next.length ? $next : this.$element.find('.item')[fallback]()
370
+
371
+      e = $.Event('slide', {
372
+        relatedTarget: $next[0]
373
+      , direction: direction
374
+      })
375
+
376
+      if ($next.hasClass('active')) return
377
+
378
+      if (this.$indicators.length) {
379
+        this.$indicators.find('.active').removeClass('active')
380
+        this.$element.one('slid', function () {
381
+          var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
382
+          $nextIndicator && $nextIndicator.addClass('active')
383
+        })
384
+      }
385
+
386
+      if ($.support.transition && this.$element.hasClass('slide')) {
387
+        this.$element.trigger(e)
388
+        if (e.isDefaultPrevented()) return
389
+        $next.addClass(type)
390
+        $next[0].offsetWidth // force reflow
391
+        $active.addClass(direction)
392
+        $next.addClass(direction)
393
+        this.$element.one($.support.transition.end, function () {
394
+          $next.removeClass([type, direction].join(' ')).addClass('active')
395
+          $active.removeClass(['active', direction].join(' '))
396
+          that.sliding = false
397
+          setTimeout(function () { that.$element.trigger('slid') }, 0)
398
+        })
399
+      } else {
400
+        this.$element.trigger(e)
401
+        if (e.isDefaultPrevented()) return
402
+        $active.removeClass('active')
403
+        $next.addClass('active')
404
+        this.sliding = false
405
+        this.$element.trigger('slid')
406
+      }
407
+
408
+      isCycling && this.cycle()
409
+
410
+      return this
411
+    }
412
+
413
+  }
414
+
415
+
416
+ /* CAROUSEL PLUGIN DEFINITION
417
+  * ========================== */
418
+
419
+  var old = $.fn.carousel
420
+
421
+  $.fn.carousel = function (option) {
422
+    return this.each(function () {
423
+      var $this = $(this)
424
+        , data = $this.data('carousel')
425
+        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
426
+        , action = typeof option == 'string' ? option : options.slide
427
+      if (!data) $this.data('carousel', (data = new Carousel(this, options)))
428
+      if (typeof option == 'number') data.to(option)
429
+      else if (action) data[action]()
430
+      else if (options.interval) data.pause().cycle()
431
+    })
432
+  }
433
+
434
+  $.fn.carousel.defaults = {
435
+    interval: 5000
436
+  , pause: 'hover'
437
+  }
438
+
439
+  $.fn.carousel.Constructor = Carousel
440
+
441
+
442
+ /* CAROUSEL NO CONFLICT
443
+  * ==================== */
444
+
445
+  $.fn.carousel.noConflict = function () {
446
+    $.fn.carousel = old
447
+    return this
448
+  }
449
+
450
+ /* CAROUSEL DATA-API
451
+  * ================= */
452
+
453
+  $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
454
+    var $this = $(this), href
455
+      , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
456
+      , options = $.extend({}, $target.data(), $this.data())
457
+      , slideIndex
458
+
459
+    $target.carousel(options)
460
+
461
+    if (slideIndex = $this.attr('data-slide-to')) {
462
+      $target.data('carousel').pause().to(slideIndex).cycle()
463
+    }
464
+
465
+    e.preventDefault()
466
+  })
467
+
468
+}(window.jQuery);/* =============================================================
469
+ * bootstrap-collapse.js v2.3.1
470
+ * http://twitter.github.com/bootstrap/javascript.html#collapse
471
+ * =============================================================
472
+ * Copyright 2012 Twitter, Inc.
473
+ *
474
+ * Licensed under the Apache License, Version 2.0 (the "License");
475
+ * you may not use this file except in compliance with the License.
476
+ * You may obtain a copy of the License at
477
+ *
478
+ * http://www.apache.org/licenses/LICENSE-2.0
479
+ *
480
+ * Unless required by applicable law or agreed to in writing, software
481
+ * distributed under the License is distributed on an "AS IS" BASIS,
482
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
483
+ * See the License for the specific language governing permissions and
484
+ * limitations under the License.
485
+ * ============================================================ */
486
+
487
+
488
+!function ($) {
489
+
490
+  "use strict"; // jshint ;_;
491
+
492
+
493
+ /* COLLAPSE PUBLIC CLASS DEFINITION
494
+  * ================================ */
495
+
496
+  var Collapse = function (element, options) {
497
+    this.$element = $(element)
498
+    this.options = $.extend({}, $.fn.collapse.defaults, options)
499
+
500
+    if (this.options.parent) {
501
+      this.$parent = $(this.options.parent)
502
+    }
503
+
504
+    this.options.toggle && this.toggle()
505
+  }
506
+
507
+  Collapse.prototype = {
508
+
509
+    constructor: Collapse
510
+
511
+  , dimension: function () {
512
+      var hasWidth = this.$element.hasClass('width')
513
+      return hasWidth ? 'width' : 'height'
514
+    }
515
+
516
+  , show: function () {
517
+      var dimension
518
+        , scroll
519
+        , actives
520
+        , hasData
521
+
522
+      if (this.transitioning || this.$element.hasClass('in')) return
523
+
524
+      dimension = this.dimension()
525
+      scroll = $.camelCase(['scroll', dimension].join('-'))
526
+      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
527
+
528
+      if (actives && actives.length) {
529
+        hasData = actives.data('collapse')
530
+        if (hasData && hasData.transitioning) return
531
+        actives.collapse('hide')
532
+        hasData || actives.data('collapse', null)
533
+      }
534
+
535
+      this.$element[dimension](0)
536
+      this.transition('addClass', $.Event('show'), 'shown')
537
+      $.support.transition && this.$element[dimension](this.$element[0][scroll])
538
+    }
539
+
540
+  , hide: function () {
541
+      var dimension
542
+      if (this.transitioning || !this.$element.hasClass('in')) return
543
+      dimension = this.dimension()
544
+      this.reset(this.$element[dimension]())
545
+      this.transition('removeClass', $.Event('hide'), 'hidden')
546
+      this.$element[dimension](0)
547
+    }
548
+
549
+  , reset: function (size) {
550
+      var dimension = this.dimension()
551
+
552
+      this.$element
553
+        .removeClass('collapse')
554
+        [dimension](size || 'auto')
555
+        [0].offsetWidth
556
+
557
+      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
558
+
559
+      return this
560
+    }
561
+
562
+  , transition: function (method, startEvent, completeEvent) {
563
+      var that = this
564
+        , complete = function () {
565
+            if (startEvent.type == 'show') that.reset()
566
+            that.transitioning = 0
567
+            that.$element.trigger(completeEvent)
568
+          }
569
+
570
+      this.$element.trigger(startEvent)
571
+
572
+      if (startEvent.isDefaultPrevented()) return
573
+
574
+      this.transitioning = 1
575
+
576
+      this.$element[method]('in')
577
+
578
+      $.support.transition && this.$element.hasClass('collapse') ?
579
+        this.$element.one($.support.transition.end, complete) :
580
+        complete()
581
+    }
582
+
583
+  , toggle: function () {
584
+      this[this.$element.hasClass('in') ? 'hide' : 'show']()
585
+    }
586
+
587
+  }
588
+
589
+
590
+ /* COLLAPSE PLUGIN DEFINITION
591
+  * ========================== */
592
+
593
+  var old = $.fn.collapse
594
+
595
+  $.fn.collapse = function (option) {
596
+    return this.each(function () {
597
+      var $this = $(this)
598
+        , data = $this.data('collapse')
599
+        , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
600
+      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
601
+      if (typeof option == 'string') data[option]()
602
+    })
603
+  }
604
+
605
+  $.fn.collapse.defaults = {
606
+    toggle: true
607
+  }
608
+
609
+  $.fn.collapse.Constructor = Collapse
610
+
611
+
612
+ /* COLLAPSE NO CONFLICT
613
+  * ==================== */
614
+
615
+  $.fn.collapse.noConflict = function () {
616
+    $.fn.collapse = old
617
+    return this
618
+  }
619
+
620
+
621
+ /* COLLAPSE DATA-API
622
+  * ================= */
623
+
624
+  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
625
+    var $this = $(this), href
626
+      , target = $this.attr('data-target')
627
+        || e.preventDefault()
628
+        || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
629
+      , option = $(target).data('collapse') ? 'toggle' : $this.data()
630
+    $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
631
+    $(target).collapse(option)
632
+  })
633
+
634
+}(window.jQuery);/* ============================================================
635
+ * bootstrap-dropdown.js v2.3.1
636
+ * http://twitter.github.com/bootstrap/javascript.html#dropdowns
637
+ * ============================================================
638
+ * Copyright 2012 Twitter, Inc.
639
+ *
640
+ * Licensed under the Apache License, Version 2.0 (the "License");
641
+ * you may not use this file except in compliance with the License.
642
+ * You may obtain a copy of the License at
643
+ *
644
+ * http://www.apache.org/licenses/LICENSE-2.0
645
+ *
646
+ * Unless required by applicable law or agreed to in writing, software
647
+ * distributed under the License is distributed on an "AS IS" BASIS,
648
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
649
+ * See the License for the specific language governing permissions and
650
+ * limitations under the License.
651
+ * ============================================================ */
652
+
653
+
654
+!function ($) {
655
+
656
+  "use strict"; // jshint ;_;
657
+
658
+
659
+ /* DROPDOWN CLASS DEFINITION
660
+  * ========================= */
661
+
662
+  var toggle = '[data-toggle=dropdown]'
663
+    , Dropdown = function (element) {
664
+        var $el = $(element).on('click.dropdown.data-api', this.toggle)
665
+        $('html').on('click.dropdown.data-api', function () {
666
+          $el.parent().removeClass('open')
667
+        })
668
+      }
669
+
670
+  Dropdown.prototype = {
671
+
672
+    constructor: Dropdown
673
+
674
+  , toggle: function (e) {
675
+      var $this = $(this)
676
+        , $parent
677
+        , isActive
678
+
679
+      if ($this.is('.disabled, :disabled')) return
680
+
681
+      $parent = getParent($this)
682
+
683
+      isActive = $parent.hasClass('open')
684
+
685
+      clearMenus()
686
+
687
+      if (!isActive) {
688
+        $parent.toggleClass('open')
689
+      }
690
+
691
+      $this.focus()
692
+
693
+      return false
694
+    }
695
+
696
+  , keydown: function (e) {
697
+      var $this
698
+        , $items
699
+        , $active
700
+        , $parent
701
+        , isActive
702
+        , index
703
+
704
+      if (!/(38|40|27)/.test(e.keyCode)) return
705
+
706
+      $this = $(this)
707
+
708
+      e.preventDefault()
709
+      e.stopPropagation()
710
+
711
+      if ($this.is('.disabled, :disabled')) return
712
+
713
+      $parent = getParent($this)
714
+
715
+      isActive = $parent.hasClass('open')
716
+
717
+      if (!isActive || (isActive && e.keyCode == 27)) {
718
+        if (e.which == 27) $parent.find(toggle).focus()
719
+        return $this.click()
720
+      }
721
+
722
+      $items = $('[role=menu] li:not(.divider):visible a', $parent)
723
+
724
+      if (!$items.length) return
725
+
726
+      index = $items.index($items.filter(':focus'))
727
+
728
+      if (e.keyCode == 38 && index > 0) index--                                        // up
729
+      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
730
+      if (!~index) index = 0
731
+
732
+      $items
733
+        .eq(index)
734
+        .focus()
735
+    }
736
+
737
+  }
738
+
739
+  function clearMenus() {
740
+    $(toggle).each(function () {
741
+      getParent($(this)).removeClass('open')
742
+    })
743
+  }
744
+
745
+  function getParent($this) {
746
+    var selector = $this.attr('data-target')
747
+      , $parent
748
+
749
+    if (!selector) {
750
+      selector = $this.attr('href')
751
+      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
752
+    }
753
+
754
+    $parent = selector && $(selector)
755
+
756
+    if (!$parent || !$parent.length) $parent = $this.parent()
757
+
758
+    return $parent
759
+  }
760
+
761
+
762
+  /* DROPDOWN PLUGIN DEFINITION
763
+   * ========================== */
764
+
765
+  var old = $.fn.dropdown
766
+
767
+  $.fn.dropdown = function (option) {
768
+    return this.each(function () {
769
+      var $this = $(this)
770
+        , data = $this.data('dropdown')
771
+      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
772
+      if (typeof option == 'string') data[option].call($this)
773
+    })
774
+  }
775
+
776
+  $.fn.dropdown.Constructor = Dropdown
777
+
778
+
779
+ /* DROPDOWN NO CONFLICT
780
+  * ==================== */
781
+
782
+  $.fn.dropdown.noConflict = function () {
783
+    $.fn.dropdown = old
784
+    return this
785
+  }
786
+
787
+
788
+  /* APPLY TO STANDARD DROPDOWN ELEMENTS
789
+   * =================================== */
790
+
791
+  $(document)
792
+    .on('click.dropdown.data-api', clearMenus)
793
+    .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
794
+    .on('click.dropdown-menu', function (e) { e.stopPropagation() })
795
+    .on('click.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
796
+    .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
797
+
798
+}(window.jQuery);
799
+/* =========================================================
800
+ * bootstrap-modal.js v2.3.1
801
+ * http://twitter.github.com/bootstrap/javascript.html#modals
802
+ * =========================================================
803
+ * Copyright 2012 Twitter, Inc.
804
+ *
805
+ * Licensed under the Apache License, Version 2.0 (the "License");
806
+ * you may not use this file except in compliance with the License.
807
+ * You may obtain a copy of the License at
808
+ *
809
+ * http://www.apache.org/licenses/LICENSE-2.0
810
+ *
811
+ * Unless required by applicable law or agreed to in writing, software
812
+ * distributed under the License is distributed on an "AS IS" BASIS,
813
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
814
+ * See the License for the specific language governing permissions and
815
+ * limitations under the License.
816
+ * ========================================================= */
817
+
818
+
819
+!function ($) {
820
+
821
+  "use strict"; // jshint ;_;
822
+
823
+
824
+ /* MODAL CLASS DEFINITION
825
+  * ====================== */
826
+
827
+  var Modal = function (element, options) {
828
+    this.options = options
829
+    this.$element = $(element)
830
+      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
831
+    this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
832
+  }
833
+
834
+  Modal.prototype = {
835
+
836
+      constructor: Modal
837
+
838
+    , toggle: function () {
839
+        return this[!this.isShown ? 'show' : 'hide']()
840
+      }
841
+
842
+    , show: function () {
843
+        var that = this
844
+          , e = $.Event('show')
845
+
846
+        this.$element.trigger(e)
847
+
848
+        if (this.isShown || e.isDefaultPrevented()) return
849
+
850
+        this.isShown = true
851
+
852
+        this.escape()
853
+
854
+        this.backdrop(function () {
855
+          var transition = $.support.transition && that.$element.hasClass('fade')
856
+
857
+          if (!that.$element.parent().length) {
858
+            that.$element.appendTo(document.body) //don't move modals dom position
859
+          }
860
+
861
+          that.$element.show()
862
+
863
+          if (transition) {
864
+            that.$element[0].offsetWidth // force reflow
865
+          }
866
+
867
+          that.$element
868
+            .addClass('in')
869
+            .attr('aria-hidden', false)
870
+
871
+          that.enforceFocus()
872
+
873
+          transition ?
874
+            that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
875
+            that.$element.focus().trigger('shown')
876
+
877
+        })
878
+      }
879
+
880
+    , hide: function (e) {
881
+        e && e.preventDefault()
882
+
883
+        var that = this
884
+
885
+        e = $.Event('hide')
886
+
887
+        this.$element.trigger(e)
888
+
889
+        if (!this.isShown || e.isDefaultPrevented()) return
890
+
891
+        this.isShown = false
892
+
893
+        this.escape()
894
+
895
+        $(document).off('focusin.modal')
896
+
897
+        this.$element
898
+          .removeClass('in')
899
+          .attr('aria-hidden', true)
900
+
901
+        $.support.transition && this.$element.hasClass('fade') ?
902
+          this.hideWithTransition() :
903
+          this.hideModal()
904
+      }
905
+
906
+    , enforceFocus: function () {
907
+        var that = this
908
+        $(document).on('focusin.modal', function (e) {
909
+          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
910
+            that.$element.focus()
911
+          }
912
+        })
913
+      }
914
+
915
+    , escape: function () {
916
+        var that = this
917
+        if (this.isShown && this.options.keyboard) {
918
+          this.$element.on('keyup.dismiss.modal', function ( e ) {
919
+            e.which == 27 && that.hide()
920
+          })
921
+        } else if (!this.isShown) {
922
+          this.$element.off('keyup.dismiss.modal')
923
+        }
924
+      }
925
+
926
+    , hideWithTransition: function () {
927
+        var that = this
928
+          , timeout = setTimeout(function () {
929
+              that.$element.off($.support.transition.end)
930
+              that.hideModal()
931
+            }, 500)
932
+
933
+        this.$element.one($.support.transition.end, function () {
934
+          clearTimeout(timeout)
935
+          that.hideModal()
936
+        })
937
+      }
938
+
939
+    , hideModal: function () {
940
+        var that = this
941
+        this.$element.hide()
942
+        this.backdrop(function () {
943
+          that.removeBackdrop()
944
+          that.$element.trigger('hidden')
945
+        })
946
+      }
947
+
948
+    , removeBackdrop: function () {
949
+        this.$backdrop && this.$backdrop.remove()
950
+        this.$backdrop = null
951
+      }
952
+
953
+    , backdrop: function (callback) {
954
+        var that = this
955
+          , animate = this.$element.hasClass('fade') ? 'fade' : ''
956
+
957
+        if (this.isShown && this.options.backdrop) {
958
+          var doAnimate = $.support.transition && animate
959
+
960
+          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
961
+            .appendTo(document.body)
962
+
963
+          this.$backdrop.click(
964
+            this.options.backdrop == 'static' ?
965
+              $.proxy(this.$element[0].focus, this.$element[0])
966
+            : $.proxy(this.hide, this)
967
+          )
968
+
969
+          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
970
+
971
+          this.$backdrop.addClass('in')
972
+
973
+          if (!callback) return
974
+
975
+          doAnimate ?
976
+            this.$backdrop.one($.support.transition.end, callback) :
977
+            callback()
978
+
979
+        } else if (!this.isShown && this.$backdrop) {
980
+          this.$backdrop.removeClass('in')
981
+
982
+          $.support.transition && this.$element.hasClass('fade')?
983
+            this.$backdrop.one($.support.transition.end, callback) :
984
+            callback()
985
+
986
+        } else if (callback) {
987
+          callback()
988
+        }
989
+      }
990
+  }
991
+
992
+
993
+ /* MODAL PLUGIN DEFINITION
994
+  * ======================= */
995
+
996
+  var old = $.fn.modal
997
+
998
+  $.fn.modal = function (option) {
999
+    return this.each(function () {
1000
+      var $this = $(this)
1001
+        , data = $this.data('modal')
1002
+        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
1003
+      if (!data) $this.data('modal', (data = new Modal(this, options)))
1004
+      if (typeof option == 'string') data[option]()
1005
+      else if (options.show) data.show()
1006
+    })
1007
+  }
1008
+
1009
+  $.fn.modal.defaults = {
1010
+      backdrop: true
1011
+    , keyboard: true
1012
+    , show: true
1013
+  }
1014
+
1015
+  $.fn.modal.Constructor = Modal
1016
+
1017
+
1018
+ /* MODAL NO CONFLICT
1019
+  * ================= */
1020
+
1021
+  $.fn.modal.noConflict = function () {
1022
+    $.fn.modal = old
1023
+    return this
1024
+  }
1025
+
1026
+
1027
+ /* MODAL DATA-API
1028
+  * ============== */
1029
+
1030
+  $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
1031
+    var $this = $(this)
1032
+      , href = $this.attr('href')
1033
+      , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1034
+      , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
1035
+
1036
+    e.preventDefault()
1037
+
1038
+    $target
1039
+      .modal(option)
1040
+      .one('hide', function () {
1041
+        $this.focus()
1042
+      })
1043
+  })
1044
+
1045
+}(window.jQuery);
1046
+/* ===========================================================
1047
+ * bootstrap-tooltip.js v2.3.1
1048
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
1049
+ * Inspired by the original jQuery.tipsy by Jason Frame
1050
+ * ===========================================================
1051
+ * Copyright 2012 Twitter, Inc.
1052
+ *
1053
+ * Licensed under the Apache License, Version 2.0 (the "License");
1054
+ * you may not use this file except in compliance with the License.
1055
+ * You may obtain a copy of the License at
1056
+ *
1057
+ * http://www.apache.org/licenses/LICENSE-2.0
1058
+ *
1059
+ * Unless required by applicable law or agreed to in writing, software
1060
+ * distributed under the License is distributed on an "AS IS" BASIS,
1061
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1062
+ * See the License for the specific language governing permissions and
1063
+ * limitations under the License.
1064
+ * ========================================================== */
1065
+
1066
+
1067
+!function ($) {
1068
+
1069
+  "use strict"; // jshint ;_;
1070
+
1071
+
1072
+ /* TOOLTIP PUBLIC CLASS DEFINITION
1073
+  * =============================== */
1074
+
1075
+  var Tooltip = function (element, options) {
1076
+    this.init('tooltip', element, options)
1077
+  }
1078
+
1079
+  Tooltip.prototype = {
1080
+
1081
+    constructor: Tooltip
1082
+
1083
+  , init: function (type, element, options) {
1084
+      var eventIn
1085
+        , eventOut
1086
+        , triggers
1087
+        , trigger
1088
+        , i
1089
+
1090
+      this.type = type
1091
+      this.$element = $(element)
1092
+      this.options = this.getOptions(options)
1093
+      this.enabled = true
1094
+
1095
+      triggers = this.options.trigger.split(' ')
1096
+
1097
+      for (i = triggers.length; i--;) {
1098
+        trigger = triggers[i]
1099
+        if (trigger == 'click') {
1100
+          this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1101
+        } else if (trigger != 'manual') {
1102
+          eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1103
+          eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1104
+          this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1105
+          this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1106
+        }
1107
+      }
1108
+
1109
+      this.options.selector ?
1110
+        (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1111
+        this.fixTitle()
1112
+    }
1113
+
1114
+  , getOptions: function (options) {
1115
+      options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
1116
+
1117
+      if (options.delay && typeof options.delay == 'number') {
1118
+        options.delay = {
1119
+          show: options.delay
1120
+        , hide: options.delay
1121
+        }
1122
+      }
1123
+
1124
+      return options
1125
+    }
1126
+
1127
+  , enter: function (e) {
1128
+      var defaults = $.fn[this.type].defaults
1129
+        , options = {}
1130
+        , self
1131
+
1132
+      this._options && $.each(this._options, function (key, value) {
1133
+        if (defaults[key] != value) options[key] = value
1134
+      }, this)
1135
+
1136
+      self = $(e.currentTarget)[this.type](options).data(this.type)
1137
+
1138
+      if (!self.options.delay || !self.options.delay.show) return self.show()
1139
+
1140
+      clearTimeout(this.timeout)
1141
+      self.hoverState = 'in'
1142
+      this.timeout = setTimeout(function() {
1143
+        if (self.hoverState == 'in') self.show()
1144
+      }, self.options.delay.show)
1145
+    }
1146
+
1147
+  , leave: function (e) {
1148
+      var self = $(e.currentTarget)[this.type](this._options).data(this.type)
1149
+
1150
+      if (this.timeout) clearTimeout(this.timeout)
1151
+      if (!self.options.delay || !self.options.delay.hide) return self.hide()
1152
+
1153
+      self.hoverState = 'out'
1154
+      this.timeout = setTimeout(function() {
1155
+        if (self.hoverState == 'out') self.hide()
1156
+      }, self.options.delay.hide)
1157
+    }
1158
+
1159
+  , show: function () {
1160
+      var $tip
1161
+        , pos
1162
+        , actualWidth
1163
+        , actualHeight
1164
+        , placement
1165
+        , tp
1166
+        , e = $.Event('show')
1167
+
1168
+      if (this.hasContent() && this.enabled) {
1169
+        this.$element.trigger(e)
1170
+        if (e.isDefaultPrevented()) return
1171
+        $tip = this.tip()
1172
+        this.setContent()
1173
+
1174
+        if (this.options.animation) {
1175
+          $tip.addClass('fade')
1176
+        }
1177
+
1178
+        placement = typeof this.options.placement == 'function' ?
1179
+          this.options.placement.call(this, $tip[0], this.$element[0]) :
1180
+          this.options.placement
1181
+
1182
+        $tip
1183
+          .detach()
1184
+          .css({ top: 0, left: 0, display: 'block' })
1185
+
1186
+        this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1187
+
1188
+        pos = this.getPosition()
1189
+
1190
+        actualWidth = $tip[0].offsetWidth
1191
+        actualHeight = $tip[0].offsetHeight
1192
+
1193
+        switch (placement) {
1194
+          case 'bottom':
1195
+            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
1196
+            break
1197
+          case 'top':
1198
+            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
1199
+            break
1200
+          case 'left':
1201
+            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
1202
+            break
1203
+          case 'right':
1204
+            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
1205
+            break
1206
+        }
1207
+
1208
+        this.applyPlacement(tp, placement)
1209
+        this.$element.trigger('shown')
1210
+      }
1211
+    }
1212
+
1213
+  , applyPlacement: function(offset, placement){
1214
+      var $tip = this.tip()
1215
+        , width = $tip[0].offsetWidth
1216
+        , height = $tip[0].offsetHeight
1217
+        , actualWidth
1218
+        , actualHeight
1219
+        , delta
1220
+        , replace
1221
+
1222
+      $tip
1223
+        .offset(offset)
1224
+        .addClass(placement)
1225
+        .addClass('in')
1226
+
1227
+      actualWidth = $tip[0].offsetWidth
1228
+      actualHeight = $tip[0].offsetHeight
1229
+
1230
+      if (placement == 'top' && actualHeight != height) {
1231
+        offset.top = offset.top + height - actualHeight
1232
+        replace = true
1233
+      }
1234
+
1235
+      if (placement == 'bottom' || placement == 'top') {
1236
+        delta = 0
1237
+
1238
+        if (offset.left < 0){
1239
+          delta = offset.left * -2
1240
+          offset.left = 0
1241
+          $tip.offset(offset)
1242
+          actualWidth = $tip[0].offsetWidth
1243
+          actualHeight = $tip[0].offsetHeight
1244
+        }
1245
+
1246
+        this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1247
+      } else {
1248
+        this.replaceArrow(actualHeight - height, actualHeight, 'top')
1249
+      }
1250
+
1251
+      if (replace) $tip.offset(offset)
1252
+    }
1253
+
1254
+  , replaceArrow: function(delta, dimension, position){
1255
+      this
1256
+        .arrow()
1257
+        .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
1258
+    }
1259
+
1260
+  , setContent: function () {
1261
+      var $tip = this.tip()
1262
+        , title = this.getTitle()
1263
+
1264
+      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1265
+      $tip.removeClass('fade in top bottom left right')
1266
+    }
1267
+
1268
+  , hide: function () {
1269
+      var that = this
1270
+        , $tip = this.tip()
1271
+        , e = $.Event('hide')
1272
+
1273
+      this.$element.trigger(e)
1274
+      if (e.isDefaultPrevented()) return
1275
+
1276
+      $tip.removeClass('in')
1277
+
1278
+      function removeWithAnimation() {
1279
+        var timeout = setTimeout(function () {
1280
+          $tip.off($.support.transition.end).detach()
1281
+        }, 500)
1282
+
1283
+        $tip.one($.support.transition.end, function () {
1284
+          clearTimeout(timeout)
1285
+          $tip.detach()
1286
+        })
1287
+      }
1288
+
1289
+      $.support.transition && this.$tip.hasClass('fade') ?
1290
+        removeWithAnimation() :
1291
+        $tip.detach()
1292
+
1293
+      this.$element.trigger('hidden')
1294
+
1295
+      return this
1296
+    }
1297
+
1298
+  , fixTitle: function () {
1299
+      var $e = this.$element
1300
+      if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1301
+        $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1302
+      }
1303
+    }
1304
+
1305
+  , hasContent: function () {
1306
+      return this.getTitle()
1307
+    }
1308
+
1309
+  , getPosition: function () {
1310
+      var el = this.$element[0]
1311
+      return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1312
+        width: el.offsetWidth
1313
+      , height: el.offsetHeight
1314
+      }, this.$element.offset())
1315
+    }
1316
+
1317
+  , getTitle: function () {
1318
+      var title
1319
+        , $e = this.$element
1320
+        , o = this.options
1321
+
1322
+      title = $e.attr('data-original-title')
1323
+        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
1324
+
1325
+      return title
1326
+    }
1327
+
1328
+  , tip: function () {
1329
+      return this.$tip = this.$tip || $(this.options.template)
1330
+    }
1331
+
1332
+  , arrow: function(){
1333
+      return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
1334
+    }
1335
+
1336
+  , validate: function () {
1337
+      if (!this.$element[0].parentNode) {
1338
+        this.hide()
1339
+        this.$element = null
1340
+        this.options = null
1341
+      }
1342
+    }
1343
+
1344
+  , enable: function () {
1345
+      this.enabled = true
1346
+    }
1347
+
1348
+  , disable: function () {
1349
+      this.enabled = false
1350
+    }
1351
+
1352
+  , toggleEnabled: function () {
1353
+      this.enabled = !this.enabled
1354
+    }
1355
+
1356
+  , toggle: function (e) {
1357
+      var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
1358
+      self.tip().hasClass('in') ? self.hide() : self.show()
1359
+    }
1360
+
1361
+  , destroy: function () {
1362
+      this.hide().$element.off('.' + this.type).removeData(this.type)
1363
+    }
1364
+
1365
+  }
1366
+
1367
+
1368
+ /* TOOLTIP PLUGIN DEFINITION
1369
+  * ========================= */
1370
+
1371
+  var old = $.fn.tooltip
1372
+
1373
+  $.fn.tooltip = function ( option ) {
1374
+    return this.each(function () {
1375
+      var $this = $(this)
1376
+        , data = $this.data('tooltip')
1377
+        , options = typeof option == 'object' && option
1378
+      if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
1379
+      if (typeof option == 'string') data[option]()
1380
+    })
1381
+  }
1382
+
1383
+  $.fn.tooltip.Constructor = Tooltip
1384
+
1385
+  $.fn.tooltip.defaults = {
1386
+    animation: true
1387
+  , placement: 'top'
1388
+  , selector: false
1389
+  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1390
+  , trigger: 'hover focus'
1391
+  , title: ''
1392
+  , delay: 0
1393
+  , html: false
1394
+  , container: false
1395
+  }
1396
+
1397
+
1398
+ /* TOOLTIP NO CONFLICT
1399
+  * =================== */
1400
+
1401
+  $.fn.tooltip.noConflict = function () {
1402
+    $.fn.tooltip = old
1403
+    return this
1404
+  }
1405
+
1406
+}(window.jQuery);
1407
+/* ===========================================================
1408
+ * bootstrap-popover.js v2.3.1
1409
+ * http://twitter.github.com/bootstrap/javascript.html#popovers
1410
+ * ===========================================================
1411
+ * Copyright 2012 Twitter, Inc.
1412
+ *
1413
+ * Licensed under the Apache License, Version 2.0 (the "License");
1414
+ * you may not use this file except in compliance with the License.
1415
+ * You may obtain a copy of the License at
1416
+ *
1417
+ * http://www.apache.org/licenses/LICENSE-2.0
1418
+ *
1419
+ * Unless required by applicable law or agreed to in writing, software
1420
+ * distributed under the License is distributed on an "AS IS" BASIS,
1421
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1422
+ * See the License for the specific language governing permissions and
1423
+ * limitations under the License.
1424
+ * =========================================================== */
1425
+
1426
+
1427
+!function ($) {
1428
+
1429
+  "use strict"; // jshint ;_;
1430
+
1431
+
1432
+ /* POPOVER PUBLIC CLASS DEFINITION
1433
+  * =============================== */
1434
+
1435
+  var Popover = function (element, options) {
1436
+    this.init('popover', element, options)
1437
+  }
1438
+
1439
+
1440
+  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
1441
+     ========================================== */
1442
+
1443
+  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
1444
+
1445
+    constructor: Popover
1446
+
1447
+  , setContent: function () {
1448
+      var $tip = this.tip()
1449
+        , title = this.getTitle()
1450
+        , content = this.getContent()
1451
+
1452
+      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1453
+      $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1454
+
1455
+      $tip.removeClass('fade top bottom left right in')
1456
+    }
1457
+
1458
+  , hasContent: function () {
1459
+      return this.getTitle() || this.getContent()
1460
+    }
1461
+
1462
+  , getContent: function () {
1463
+      var content
1464
+        , $e = this.$element
1465
+        , o = this.options
1466
+
1467
+      content = (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
1468
+        || $e.attr('data-content')
1469
+
1470
+      return content
1471
+    }
1472
+
1473
+  , tip: function () {
1474
+      if (!this.$tip) {
1475
+        this.$tip = $(this.options.template)
1476
+      }
1477
+      return this.$tip
1478
+    }
1479
+
1480
+  , destroy: function () {
1481
+      this.hide().$element.off('.' + this.type).removeData(this.type)
1482
+    }
1483
+
1484
+  })
1485
+
1486
+
1487
+ /* POPOVER PLUGIN DEFINITION
1488
+  * ======================= */
1489
+
1490
+  var old = $.fn.popover
1491
+
1492
+  $.fn.popover = function (option) {
1493
+    return this.each(function () {
1494
+      var $this = $(this)
1495
+        , data = $this.data('popover')
1496
+        , options = typeof option == 'object' && option
1497
+      if (!data) $this.data('popover', (data = new Popover(this, options)))
1498
+      if (typeof option == 'string') data[option]()
1499
+    })
1500
+  }
1501
+
1502
+  $.fn.popover.Constructor = Popover
1503
+
1504
+  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
1505
+    placement: 'right'
1506
+  , trigger: 'click'
1507
+  , content: ''
1508
+  , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1509
+  })
1510
+
1511
+
1512
+ /* POPOVER NO CONFLICT
1513
+  * =================== */
1514
+
1515
+  $.fn.popover.noConflict = function () {
1516
+    $.fn.popover = old
1517
+    return this
1518
+  }
1519
+
1520
+}(window.jQuery);
1521
+/* =============================================================
1522
+ * bootstrap-scrollspy.js v2.3.1
1523
+ * http://twitter.github.com/bootstrap/javascript.html#scrollspy
1524
+ * =============================================================
1525
+ * Copyright 2012 Twitter, Inc.
1526
+ *
1527
+ * Licensed under the Apache License, Version 2.0 (the "License");
1528
+ * you may not use this file except in compliance with the License.
1529
+ * You may obtain a copy of the License at
1530
+ *
1531
+ * http://www.apache.org/licenses/LICENSE-2.0
1532
+ *
1533
+ * Unless required by applicable law or agreed to in writing, software
1534
+ * distributed under the License is distributed on an "AS IS" BASIS,
1535
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1536
+ * See the License for the specific language governing permissions and
1537
+ * limitations under the License.
1538
+ * ============================================================== */
1539
+
1540
+
1541
+!function ($) {
1542
+
1543
+  "use strict"; // jshint ;_;
1544
+
1545
+
1546
+ /* SCROLLSPY CLASS DEFINITION
1547
+  * ========================== */
1548
+
1549
+  function ScrollSpy(element, options) {
1550
+    var process = $.proxy(this.process, this)
1551
+      , $element = $(element).is('body') ? $(window) : $(element)
1552
+      , href
1553
+    this.options = $.extend({}, $.fn.scrollspy.defaults, options)
1554
+    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
1555
+    this.selector = (this.options.target
1556
+      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1557
+      || '') + ' .nav li > a'
1558
+    this.$body = $('body')
1559
+    this.refresh()
1560
+    this.process()
1561
+  }
1562
+
1563
+  ScrollSpy.prototype = {
1564
+
1565
+      constructor: ScrollSpy
1566
+
1567
+    , refresh: function () {
1568
+        var self = this
1569
+          , $targets
1570
+
1571
+        this.offsets = $([])
1572
+        this.targets = $([])
1573
+
1574
+        $targets = this.$body
1575
+          .find(this.selector)
1576
+          .map(function () {
1577
+            var $el = $(this)
1578
+              , href = $el.data('target') || $el.attr('href')
1579
+              , $href = /^#\w/.test(href) && $(href)
1580
+            return ( $href
1581
+              && $href.length
1582
+              && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
1583
+          })
1584
+          .sort(function (a, b) { return a[0] - b[0] })
1585
+          .each(function () {
1586
+            self.offsets.push(this[0])
1587
+            self.targets.push(this[1])
1588
+          })
1589
+      }
1590
+
1591
+    , process: function () {
1592
+        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1593
+          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1594
+          , maxScroll = scrollHeight - this.$scrollElement.height()
1595
+          , offsets = this.offsets
1596
+          , targets = this.targets
1597
+          , activeTarget = this.activeTarget
1598
+          , i
1599
+
1600
+        if (scrollTop >= maxScroll) {
1601
+          return activeTarget != (i = targets.last()[0])
1602
+            && this.activate ( i )
1603
+        }
1604
+
1605
+        for (i = offsets.length; i--;) {
1606
+          activeTarget != targets[i]
1607
+            && scrollTop >= offsets[i]
1608
+            && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1609
+            && this.activate( targets[i] )
1610
+        }
1611
+      }
1612
+
1613
+    , activate: function (target) {
1614
+        var active
1615
+          , selector
1616
+
1617
+        this.activeTarget = target
1618
+
1619
+        $(this.selector)
1620
+          .parent('.active')
1621
+          .removeClass('active')
1622
+
1623
+        selector = this.selector
1624
+          + '[data-target="' + target + '"],'
1625
+          + this.selector + '[href="' + target + '"]'
1626
+
1627
+        active = $(selector)
1628
+          .parent('li')
1629
+          .addClass('active')
1630
+
1631
+        if (active.parent('.dropdown-menu').length)  {
1632
+          active = active.closest('li.dropdown').addClass('active')
1633
+        }
1634
+
1635
+        active.trigger('activate')
1636
+      }
1637
+
1638
+  }
1639
+
1640
+
1641
+ /* SCROLLSPY PLUGIN DEFINITION
1642
+  * =========================== */
1643
+
1644
+  var old = $.fn.scrollspy
1645
+
1646
+  $.fn.scrollspy = function (option) {
1647
+    return this.each(function () {
1648
+      var $this = $(this)
1649
+        , data = $this.data('scrollspy')
1650
+        , options = typeof option == 'object' && option
1651
+      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
1652
+      if (typeof option == 'string') data[option]()
1653
+    })
1654
+  }
1655
+
1656
+  $.fn.scrollspy.Constructor = ScrollSpy
1657
+
1658
+  $.fn.scrollspy.defaults = {
1659
+    offset: 10
1660
+  }
1661
+
1662
+
1663
+ /* SCROLLSPY NO CONFLICT
1664
+  * ===================== */
1665
+
1666
+  $.fn.scrollspy.noConflict = function () {
1667
+    $.fn.scrollspy = old
1668
+    return this
1669
+  }
1670
+
1671
+
1672
+ /* SCROLLSPY DATA-API
1673
+  * ================== */
1674
+
1675
+  $(window).on('load', function () {
1676
+    $('[data-spy="scroll"]').each(function () {
1677
+      var $spy = $(this)
1678
+      $spy.scrollspy($spy.data())
1679
+    })
1680
+  })
1681
+
1682
+}(window.jQuery);/* ========================================================
1683
+ * bootstrap-tab.js v2.3.1
1684
+ * http://twitter.github.com/bootstrap/javascript.html#tabs
1685
+ * ========================================================
1686
+ * Copyright 2012 Twitter, Inc.
1687
+ *
1688
+ * Licensed under the Apache License, Version 2.0 (the "License");
1689
+ * you may not use this file except in compliance with the License.
1690
+ * You may obtain a copy of the License at
1691
+ *
1692
+ * http://www.apache.org/licenses/LICENSE-2.0
1693
+ *
1694
+ * Unless required by applicable law or agreed to in writing, software
1695
+ * distributed under the License is distributed on an "AS IS" BASIS,
1696
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1697
+ * See the License for the specific language governing permissions and
1698
+ * limitations under the License.
1699
+ * ======================================================== */
1700
+
1701
+
1702
+!function ($) {
1703
+
1704
+  "use strict"; // jshint ;_;
1705
+
1706
+
1707
+ /* TAB CLASS DEFINITION
1708
+  * ==================== */
1709
+
1710
+  var Tab = function (element) {
1711
+    this.element = $(element)
1712
+  }
1713
+
1714
+  Tab.prototype = {
1715
+
1716
+    constructor: Tab
1717
+
1718
+  , show: function () {
1719
+      var $this = this.element
1720
+        , $ul = $this.closest('ul:not(.dropdown-menu)')
1721
+        , selector = $this.attr('data-target')
1722
+        , previous
1723
+        , $target
1724
+        , e
1725
+
1726
+      if (!selector) {
1727
+        selector = $this.attr('href')
1728
+        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1729
+      }
1730
+
1731
+      if ( $this.parent('li').hasClass('active') ) return
1732
+
1733
+      previous = $ul.find('.active:last a')[0]
1734
+
1735
+      e = $.Event('show', {
1736
+        relatedTarget: previous
1737
+      })
1738
+
1739
+      $this.trigger(e)
1740
+
1741
+      if (e.isDefaultPrevented()) return
1742
+
1743
+      $target = $(selector)
1744
+
1745
+      this.activate($this.parent('li'), $ul)
1746
+      this.activate($target, $target.parent(), function () {
1747
+        $this.trigger({
1748
+          type: 'shown'
1749
+        , relatedTarget: previous
1750
+        })
1751
+      })
1752
+    }
1753
+
1754
+  , activate: function ( element, container, callback) {
1755
+      var $active = container.find('> .active')
1756
+        , transition = callback
1757
+            && $.support.transition
1758
+            && $active.hasClass('fade')
1759
+
1760
+      function next() {
1761
+        $active
1762
+          .removeClass('active')
1763
+          .find('> .dropdown-menu > .active')
1764
+          .removeClass('active')
1765
+
1766
+        element.addClass('active')
1767
+
1768
+        if (transition) {
1769
+          element[0].offsetWidth // reflow for transition
1770
+          element.addClass('in')
1771
+        } else {
1772
+          element.removeClass('fade')
1773
+        }
1774
+
1775
+        if ( element.parent('.dropdown-menu') ) {
1776
+          element.closest('li.dropdown').addClass('active')
1777
+        }
1778
+
1779
+        callback && callback()
1780
+      }
1781
+
1782
+      transition ?
1783
+        $active.one($.support.transition.end, next) :
1784
+        next()
1785
+
1786
+      $active.removeClass('in')
1787
+    }
1788
+  }
1789
+
1790
+
1791
+ /* TAB PLUGIN DEFINITION
1792
+  * ===================== */
1793
+
1794
+  var old = $.fn.tab
1795
+
1796
+  $.fn.tab = function ( option ) {
1797
+    return this.each(function () {
1798
+      var $this = $(this)
1799
+        , data = $this.data('tab')
1800
+      if (!data) $this.data('tab', (data = new Tab(this)))
1801
+      if (typeof option == 'string') data[option]()
1802
+    })
1803
+  }
1804
+
1805
+  $.fn.tab.Constructor = Tab
1806
+
1807
+
1808
+ /* TAB NO CONFLICT
1809
+  * =============== */
1810
+
1811
+  $.fn.tab.noConflict = function () {
1812
+    $.fn.tab = old
1813
+    return this
1814
+  }
1815
+
1816
+
1817
+ /* TAB DATA-API
1818
+  * ============ */
1819
+
1820
+  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1821
+    e.preventDefault()
1822
+    $(this).tab('show')
1823
+  })
1824
+
1825
+}(window.jQuery);/* =============================================================
1826
+ * bootstrap-typeahead.js v2.3.1
1827
+ * http://twitter.github.com/bootstrap/javascript.html#typeahead
1828
+ * =============================================================
1829
+ * Copyright 2012 Twitter, Inc.
1830
+ *
1831
+ * Licensed under the Apache License, Version 2.0 (the "License");
1832
+ * you may not use this file except in compliance with the License.
1833
+ * You may obtain a copy of the License at
1834
+ *
1835
+ * http://www.apache.org/licenses/LICENSE-2.0
1836
+ *
1837
+ * Unless required by applicable law or agreed to in writing, software
1838
+ * distributed under the License is distributed on an "AS IS" BASIS,
1839
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1840
+ * See the License for the specific language governing permissions and
1841
+ * limitations under the License.
1842
+ * ============================================================ */
1843
+
1844
+
1845
+!function($){
1846
+
1847
+  "use strict"; // jshint ;_;
1848
+
1849
+
1850
+ /* TYPEAHEAD PUBLIC CLASS DEFINITION
1851
+  * ================================= */
1852
+
1853
+  var Typeahead = function (element, options) {
1854
+    this.$element = $(element)
1855
+    this.options = $.extend({}, $.fn.typeahead.defaults, options)
1856
+    this.matcher = this.options.matcher || this.matcher
1857
+    this.sorter = this.options.sorter || this.sorter
1858
+    this.highlighter = this.options.highlighter || this.highlighter
1859
+    this.updater = this.options.updater || this.updater
1860
+    this.source = this.options.source
1861
+    this.$menu = $(this.options.menu)
1862
+    this.shown = false
1863
+    this.listen()
1864
+  }
1865
+
1866
+  Typeahead.prototype = {
1867
+
1868
+    constructor: Typeahead
1869
+
1870
+  , select: function () {
1871
+      var val = this.$menu.find('.active').attr('data-value')
1872
+      this.$element
1873
+        .val(this.updater(val))
1874
+        .change()
1875
+      return this.hide()
1876
+    }
1877
+
1878
+  , updater: function (item) {
1879
+      return item
1880
+    }
1881
+
1882
+  , show: function () {
1883
+      var pos = $.extend({}, this.$element.position(), {
1884
+        height: this.$element[0].offsetHeight
1885
+      })
1886
+
1887
+      this.$menu
1888
+        .insertAfter(this.$element)
1889
+        .css({
1890
+          top: pos.top + pos.height
1891
+        , left: pos.left
1892
+        })
1893
+        .show()
1894
+
1895
+      this.shown = true
1896
+      return this
1897
+    }
1898
+
1899
+  , hide: function () {
1900
+      this.$menu.hide()
1901
+      this.shown = false
1902
+      return this
1903
+    }
1904
+
1905
+  , lookup: function (event) {
1906
+      var items
1907
+
1908
+      this.query = this.$element.val()
1909
+
1910
+      if (!this.query || this.query.length < this.options.minLength) {
1911
+        return this.shown ? this.hide() : this
1912
+      }
1913
+
1914
+      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
1915
+
1916
+      return items ? this.process(items) : this
1917
+    }
1918
+
1919
+  , process: function (items) {
1920
+      var that = this
1921
+
1922
+      items = $.grep(items, function (item) {
1923
+        return that.matcher(item)
1924
+      })
1925
+
1926
+      items = this.sorter(items)
1927
+
1928
+      if (!items.length) {
1929
+        return this.shown ? this.hide() : this
1930
+      }
1931
+
1932
+      return this.render(items.slice(0, this.options.items)).show()
1933
+    }
1934
+
1935
+  , matcher: function (item) {
1936
+      return ~item.toLowerCase().indexOf(this.query.toLowerCase())
1937
+    }
1938
+
1939
+  , sorter: function (items) {
1940
+      var beginswith = []
1941
+        , caseSensitive = []
1942
+        , caseInsensitive = []
1943
+        , item
1944
+
1945
+      while (item = items.shift()) {
1946
+        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
1947
+        else if (~item.indexOf(this.query)) caseSensitive.push(item)
1948
+        else caseInsensitive.push(item)
1949
+      }
1950
+
1951
+      return beginswith.concat(caseSensitive, caseInsensitive)
1952
+    }
1953
+
1954
+  , highlighter: function (item) {
1955
+      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
1956
+      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
1957
+        return '<strong>' + match + '</strong>'
1958
+      })
1959
+    }
1960
+
1961
+  , render: function (items) {
1962
+      var that = this
1963
+
1964
+      items = $(items).map(function (i, item) {
1965
+        i = $(that.options.item).attr('data-value', item)
1966
+        i.find('a').html(that.highlighter(item))
1967
+        return i[0]
1968
+      })
1969
+
1970
+      items.first().addClass('active')
1971
+      this.$menu.html(items)
1972
+      return this
1973
+    }
1974
+
1975
+  , next: function (event) {
1976
+      var active = this.$menu.find('.active').removeClass('active')
1977
+        , next = active.next()
1978
+
1979
+      if (!next.length) {
1980
+        next = $(this.$menu.find('li')[0])
1981
+      }
1982
+
1983
+      next.addClass('active')
1984
+    }
1985
+
1986
+  , prev: function (event) {
1987
+      var active = this.$menu.find('.active').removeClass('active')
1988
+        , prev = active.prev()
1989
+
1990
+      if (!prev.length) {
1991
+        prev = this.$menu.find('li').last()
1992
+      }
1993
+
1994
+      prev.addClass('active')
1995
+    }
1996
+
1997
+  , listen: function () {
1998
+      this.$element
1999
+        .on('focus',    $.proxy(this.focus, this))
2000
+        .on('blur',     $.proxy(this.blur, this))
2001
+        .on('keypress', $.proxy(this.keypress, this))
2002
+        .on('keyup',    $.proxy(this.keyup, this))
2003
+
2004
+      if (this.eventSupported('keydown')) {
2005
+        this.$element.on('keydown', $.proxy(this.keydown, this))
2006
+      }
2007
+
2008
+      this.$menu
2009
+        .on('click', $.proxy(this.click, this))
2010
+        .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
2011
+        .on('mouseleave', 'li', $.proxy(this.mouseleave, this))
2012
+    }
2013
+
2014
+  , eventSupported: function(eventName) {
2015
+      var isSupported = eventName in this.$element
2016
+      if (!isSupported) {
2017
+        this.$element.setAttribute(eventName, 'return;')
2018
+        isSupported = typeof this.$element[eventName] === 'function'
2019
+      }
2020
+      return isSupported
2021
+    }
2022
+
2023
+  , move: function (e) {
2024
+      if (!this.shown) return
2025
+
2026
+      switch(e.keyCode) {
2027
+        case 9: // tab
2028
+        case 13: // enter
2029
+        case 27: // escape
2030
+          e.preventDefault()
2031
+          break
2032
+
2033
+        case 38: // up arrow
2034
+          e.preventDefault()
2035
+          this.prev()
2036
+          break
2037
+
2038
+        case 40: // down arrow
2039
+          e.preventDefault()
2040
+          this.next()
2041
+          break
2042
+      }
2043
+
2044
+      e.stopPropagation()
2045
+    }
2046
+
2047
+  , keydown: function (e) {
2048
+      this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
2049
+      this.move(e)
2050
+    }
2051
+
2052
+  , keypress: function (e) {
2053
+      if (this.suppressKeyPressRepeat) return
2054
+      this.move(e)
2055
+    }
2056
+
2057
+  , keyup: function (e) {
2058
+      switch(e.keyCode) {
2059
+        case 40: // down arrow
2060
+        case 38: // up arrow
2061
+        case 16: // shift
2062
+        case 17: // ctrl
2063
+        case 18: // alt
2064
+          break
2065
+
2066
+        case 9: // tab
2067
+        case 13: // enter
2068
+          if (!this.shown) return
2069
+          this.select()
2070
+          break
2071
+
2072
+        case 27: // escape
2073
+          if (!this.shown) return
2074
+          this.hide()
2075
+          break
2076
+
2077
+        default:
2078
+          this.lookup()
2079
+      }
2080
+
2081
+      e.stopPropagation()
2082
+      e.preventDefault()
2083
+  }
2084
+
2085
+  , focus: function (e) {
2086
+      this.focused = true
2087
+    }
2088
+
2089
+  , blur: function (e) {
2090
+      this.focused = false
2091
+      if (!this.mousedover && this.shown) this.hide()
2092
+    }
2093
+
2094
+  , click: function (e) {
2095
+      e.stopPropagation()
2096
+      e.preventDefault()
2097
+      this.select()
2098
+      this.$element.focus()
2099
+    }
2100
+
2101
+  , mouseenter: function (e) {
2102
+      this.mousedover = true
2103
+      this.$menu.find('.active').removeClass('active')
2104
+      $(e.currentTarget).addClass('active')
2105
+    }
2106
+
2107
+  , mouseleave: function (e) {
2108
+      this.mousedover = false
2109
+      if (!this.focused && this.shown) this.hide()
2110
+    }
2111
+
2112
+  }
2113
+
2114
+
2115
+  /* TYPEAHEAD PLUGIN DEFINITION
2116
+   * =========================== */
2117
+
2118
+  var old = $.fn.typeahead
2119
+
2120
+  $.fn.typeahead = function (option) {
2121
+    return this.each(function () {
2122
+      var $this = $(this)
2123
+        , data = $this.data('typeahead')
2124
+        , options = typeof option == 'object' && option
2125
+      if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
2126
+      if (typeof option == 'string') data[option]()
2127
+    })
2128
+  }
2129
+
2130
+  $.fn.typeahead.defaults = {
2131
+    source: []
2132
+  , items: 8
2133
+  , menu: '<ul class="typeahead dropdown-menu"></ul>'
2134
+  , item: '<li><a href="#"></a></li>'
2135
+  , minLength: 1
2136
+  }
2137
+
2138
+  $.fn.typeahead.Constructor = Typeahead
2139
+
2140
+
2141
+ /* TYPEAHEAD NO CONFLICT
2142
+  * =================== */
2143
+
2144
+  $.fn.typeahead.noConflict = function () {
2145
+    $.fn.typeahead = old
2146
+    return this
2147
+  }
2148
+
2149
+
2150
+ /* TYPEAHEAD DATA-API
2151
+  * ================== */
2152
+
2153
+  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
2154
+    var $this = $(this)
2155
+    if ($this.data('typeahead')) return
2156
+    $this.typeahead($this.data())
2157
+  })
2158
+
2159
+}(window.jQuery);
2160
+/* ==========================================================
2161
+ * bootstrap-affix.js v2.3.1
2162
+ * http://twitter.github.com/bootstrap/javascript.html#affix
2163
+ * ==========================================================
2164
+ * Copyright 2012 Twitter, Inc.
2165
+ *
2166
+ * Licensed under the Apache License, Version 2.0 (the "License");
2167
+ * you may not use this file except in compliance with the License.
2168
+ * You may obtain a copy of the License at
2169
+ *
2170
+ * http://www.apache.org/licenses/LICENSE-2.0
2171
+ *
2172
+ * Unless required by applicable law or agreed to in writing, software
2173
+ * distributed under the License is distributed on an "AS IS" BASIS,
2174
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2175
+ * See the License for the specific language governing permissions and
2176
+ * limitations under the License.
2177
+ * ========================================================== */
2178
+
2179
+
2180
+!function ($) {
2181
+
2182
+  "use strict"; // jshint ;_;
2183
+
2184
+
2185
+ /* AFFIX CLASS DEFINITION
2186
+  * ====================== */
2187
+
2188
+  var Affix = function (element, options) {
2189
+    this.options = $.extend({}, $.fn.affix.defaults, options)
2190
+    this.$window = $(window)
2191
+      .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
2192
+      .on('click.affix.data-api',  $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
2193
+    this.$element = $(element)
2194
+    this.checkPosition()
2195
+  }
2196
+
2197
+  Affix.prototype.checkPosition = function () {
2198
+    if (!this.$element.is(':visible')) return
2199
+
2200
+    var scrollHeight = $(document).height()
2201
+      , scrollTop = this.$window.scrollTop()
2202
+      , position = this.$element.offset()
2203
+      , offset = this.options.offset
2204
+      , offsetBottom = offset.bottom
2205
+      , offsetTop = offset.top
2206
+      , reset = 'affix affix-top affix-bottom'
2207
+      , affix
2208
+
2209
+    if (typeof offset != 'object') offsetBottom = offsetTop = offset
2210
+    if (typeof offsetTop == 'function') offsetTop = offset.top()
2211
+    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
2212
+
2213
+    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
2214
+      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
2215
+      'bottom' : offsetTop != null && scrollTop <= offsetTop ?
2216
+      'top'    : false
2217
+
2218
+    if (this.affixed === affix) return
2219
+
2220
+    this.affixed = affix
2221
+    this.unpin = affix == 'bottom' ? position.top - scrollTop : null
2222
+
2223
+    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
2224
+  }
2225
+
2226
+
2227
+ /* AFFIX PLUGIN DEFINITION
2228
+  * ======================= */
2229
+
2230
+  var old = $.fn.affix
2231
+
2232
+  $.fn.affix = function (option) {
2233
+    return this.each(function () {
2234
+      var $this = $(this)
2235
+        , data = $this.data('affix')
2236
+        , options = typeof option == 'object' && option
2237
+      if (!data) $this.data('affix', (data = new Affix(this, options)))
2238
+      if (typeof option == 'string') data[option]()
2239
+    })
2240
+  }
2241
+
2242
+  $.fn.affix.Constructor = Affix
2243
+
2244
+  $.fn.affix.defaults = {
2245
+    offset: 0
2246
+  }
2247
+
2248
+
2249
+ /* AFFIX NO CONFLICT
2250
+  * ================= */
2251
+
2252
+  $.fn.affix.noConflict = function () {
2253
+    $.fn.affix = old
2254
+    return this
2255
+  }
2256
+
2257
+
2258
+ /* AFFIX DATA-API
2259
+  * ============== */
2260
+
2261
+  $(window).on('load', function () {
2262
+    $('[data-spy="affix"]').each(function () {
2263
+      var $spy = $(this)
2264
+        , data = $spy.data()
2265
+
2266
+      data.offset = data.offset || {}
2267
+
2268
+      data.offsetBottom && (data.offset.bottom = data.offsetBottom)
2269
+      data.offsetTop && (data.offset.top = data.offsetTop)
2270
+
2271
+      $spy.affix(data)
2272
+    })
2273
+  })
2274
+
2275
+
2276
+}(window.jQuery);
+4
setup/public/js/jquery-1.9.0.min.js
... ...
@@ -0,0 +1,4 @@
1
+/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */(function(e,t){"use strict";function n(e){var t=e.length,n=st.type(e);return st.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return st.each(e.match(lt)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(st.acceptData(e)){var o,a,s=st.expando,u="string"==typeof n,l=e.nodeType,c=l?st.cache:e,f=l?e[s]:e[s]&&s;if(f&&c[f]&&(i||c[f].data)||!u||r!==t)return f||(l?e[s]=f=K.pop()||st.guid++:f=s),c[f]||(c[f]={},l||(c[f].toJSON=st.noop)),("object"==typeof n||"function"==typeof n)&&(i?c[f]=st.extend(c[f],n):c[f].data=st.extend(c[f].data,n)),o=c[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[st.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[st.camelCase(n)])):a=o,a}}function o(e,t,n){if(st.acceptData(e)){var r,i,o,a=e.nodeType,u=a?st.cache:e,l=a?e[st.expando]:st.expando;if(u[l]){if(t&&(r=n?u[l]:u[l].data)){st.isArray(t)?t=t.concat(st.map(t,st.camelCase)):t in r?t=[t]:(t=st.camelCase(t),t=t in r?[t]:t.split(" "));for(i=0,o=t.length;o>i;i++)delete r[t[i]];if(!(n?s:st.isEmptyObject)(r))return}(n||(delete u[l].data,s(u[l])))&&(a?st.cleanData([e],!0):st.support.deleteExpando||u!=u.window?delete u[l]:u[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Nt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:wt.test(r)?st.parseJSON(r):r}catch(o){}st.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!st.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function l(){return!1}function c(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function f(e,t,n){if(t=t||0,st.isFunction(t))return st.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return st.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=st.grep(e,function(e){return 1===e.nodeType});if(Wt.test(t))return st.filter(t,r,!n);t=st.filter(t,r)}return st.grep(e,function(e){return st.inArray(e,t)>=0===n})}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function h(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function g(e){var t=nn.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)st._data(n,"globalEval",!t||st._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&&st.hasData(e)){var n,r,i,o=st._data(e),a=st._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)st.event.add(t,n,s[n][r])}a.data&&(a.data=st.extend({},a.data))}}function v(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!st.support.noCloneEvent&&t[st.expando]){r=st._data(t);for(i in r.events)st.removeEvent(t,i,r.handle);t.removeAttribute(st.expando)}"script"===n&&t.text!==e.text?(h(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),st.support.html5Clone&&e.innerHTML&&!st.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Zt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,i,o=0,a=e.getElementsByTagName!==t?e.getElementsByTagName(n||"*"):e.querySelectorAll!==t?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||st.nodeName(i,n)?a.push(i):st.merge(a,b(i,n));return n===t||n&&st.nodeName(e,n)?st.merge([e],a):a}function x(e){Zt.test(e.type)&&(e.defaultChecked=e.checked)}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Nn.length;i--;)if(t=Nn[i]+n,t in e)return t;return r}function w(e,t){return e=t||e,"none"===st.css(e,"display")||!st.contains(e.ownerDocument,e)}function N(e,t){for(var n,r=[],i=0,o=e.length;o>i;i++)n=e[i],n.style&&(r[i]=st._data(n,"olddisplay"),t?(r[i]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&w(n)&&(r[i]=st._data(n,"olddisplay",S(n.nodeName)))):r[i]||w(n)||st._data(n,"olddisplay",st.css(n,"display")));for(i=0;o>i;i++)n=e[i],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?r[i]||"":"none"));return e}function C(e,t,n){var r=mn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=st.css(e,n+wn[o],!0,i)),r?("content"===n&&(a-=st.css(e,"padding"+wn[o],!0,i)),"margin"!==n&&(a-=st.css(e,"border"+wn[o]+"Width",!0,i))):(a+=st.css(e,"padding"+wn[o],!0,i),"padding"!==n&&(a+=st.css(e,"border"+wn[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=ln(e),a=st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=un(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=a&&(st.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(a?"border":"content"),r,o)+"px"}function S(e){var t=V,n=bn[e];return n||(n=A(e,t),"none"!==n&&n||(cn=(cn||st("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(cn[0].contentWindow||cn[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=A(e,t),cn.detach()),bn[e]=n),n}function A(e,t){var n=st(t.createElement(e)).appendTo(t.body),r=st.css(n[0],"display");return n.remove(),r}function j(e,t,n,r){var i;if(st.isArray(t))st.each(t,function(t,i){n||kn.test(e)?r(e,i):j(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==st.type(t))r(e,t);else for(i in t)j(e+"["+i+"]",t[i],n,r)}function D(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(lt)||[];if(st.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function L(e,n,r,i){function o(u){var l;return a[u]=!0,st.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||s||a[c]?s?!(l=c):t:(n.dataTypes.unshift(c),o(c),!1)}),l}var a={},s=e===$n;return o(n.dataTypes[0])||!a["*"]&&o("*")}function H(e,n){var r,i,o=st.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);return i&&st.extend(!0,e,i),e}function M(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===l[0];)l.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){l.unshift(o);break}if(l[0]in r)a=l[0];else{for(o in r){if(!l[0]||e.converters[o+" "+l[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function q(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=u[++s];)if("*"!==i){if("*"!==l&&l!==i){if(n=a[l+" "+i]||a["* "+i],!n)for(r in a)if(o=r.split(" "),o[1]===i&&(n=a[l+" "+o[0]]||a["* "+o[0]])){n===!0?n=a[r]:a[r]!==!0&&(i=o[0],u.splice(s--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+l+" to "+i}}}l=i}return{state:"success",data:t}}function _(){try{return new e.XMLHttpRequest}catch(t){}}function F(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function O(){return setTimeout(function(){Qn=t}),Qn=st.now()}function B(e,t){st.each(t,function(t,n){for(var r=(rr[t]||[]).concat(rr["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function P(e,t,n){var r,i,o=0,a=nr.length,s=st.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Qn||O(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:st.extend({},t),opts:st.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Qn||O(),duration:n.duration,tweens:[],createTween:function(t,n){var r=st.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(R(c,l.opts.specialEasing);a>o;o++)if(r=nr[o].call(l,e,c,l.opts))return r;return B(l,c),st.isFunction(l.opts.start)&&l.opts.start.call(e,l),st.fx.timer(st.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function R(e,t){var n,r,i,o,a;for(n in e)if(r=st.camelCase(n),i=t[r],o=e[n],st.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=st.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function W(e,t,n){var r,i,o,a,s,u,l,c,f,p=this,d=e.style,h={},g=[],m=e.nodeType&&w(e);n.queue||(c=st._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,f=c.empty.fire,c.empty.fire=function(){c.unqueued||f()}),c.unqueued++,p.always(function(){p.always(function(){c.unqueued--,st.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===st.css(e,"display")&&"none"===st.css(e,"float")&&(st.support.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",st.support.shrinkWrapBlocks||p.done(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Zn.exec(o)){if(delete t[r],u=u||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=st._data(e,"fxshow")||st._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?st(e).show():p.done(function(){st(e).hide()}),p.done(function(){var t;st._removeData(e,"fxshow");for(t in h)st.style(e,t,h[t])});for(r=0;a>r;r++)i=g[r],l=p.createTween(i,m?s[i]:0),h[i]=s[i]||st.style(e,i),i in s||(s[i]=l.start,m&&(l.end=l.start,l.start="width"===i||"height"===i?1:0))}}function $(e,t,n,r,i){return new $.prototype.init(e,t,n,r,i)}function I(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=wn[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function z(e){return st.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var X,U,V=e.document,Y=e.location,J=e.jQuery,G=e.$,Q={},K=[],Z="1.9.0",et=K.concat,tt=K.push,nt=K.slice,rt=K.indexOf,it=Q.toString,ot=Q.hasOwnProperty,at=Z.trim,st=function(e,t){return new st.fn.init(e,t,X)},ut=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,lt=/\S+/g,ct=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ft=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,pt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,dt=/^[\],:{}\s]*$/,ht=/(?:^|:|,)(?:\s*\[)+/g,gt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,mt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,yt=/^-ms-/,vt=/-([\da-z])/gi,bt=function(e,t){return t.toUpperCase()},xt=function(){V.addEventListener?(V.removeEventListener("DOMContentLoaded",xt,!1),st.ready()):"complete"===V.readyState&&(V.detachEvent("onreadystatechange",xt),st.ready())};st.fn=st.prototype={jquery:Z,constructor:st,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ft.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof st?n[0]:n,st.merge(this,st.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:V,!0)),pt.test(i[1])&&st.isPlainObject(n))for(i in n)st.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=V.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=V,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):st.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),st.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return nt.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=st.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return st.each(this,e,t)},ready:function(e){return st.ready.promise().done(e),this},slice:function(){return this.pushStack(nt.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(st.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:tt,sort:[].sort,splice:[].splice},st.fn.init.prototype=st.fn,st.extend=st.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||st.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(e=arguments[u]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(st.isPlainObject(i)||(o=st.isArray(i)))?(o?(o=!1,a=r&&st.isArray(r)?r:[]):a=r&&st.isPlainObject(r)?r:{},s[n]=st.extend(c,a,i)):i!==t&&(s[n]=i));return s},st.extend({noConflict:function(t){return e.$===st&&(e.$=G),t&&e.jQuery===st&&(e.jQuery=J),st},isReady:!1,readyWait:1,holdReady:function(e){e?st.readyWait++:st.ready(!0)},ready:function(e){if(e===!0?!--st.readyWait:!st.isReady){if(!V.body)return setTimeout(st.ready);st.isReady=!0,e!==!0&&--st.readyWait>0||(U.resolveWith(V,[st]),st.fn.trigger&&st(V).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===st.type(e)},isArray:Array.isArray||function(e){return"array"===st.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[it.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==st.type(e)||e.nodeType||st.isWindow(e))return!1;try{if(e.constructor&&!ot.call(e,"constructor")&&!ot.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||ot.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||V;var r=pt.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=st.buildFragment([e],t,i),i&&st(i).remove(),st.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=st.trim(n),n&&dt.test(n.replace(gt,"@").replace(mt,"]").replace(ht,"")))?Function("return "+n)():(st.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||st.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&st.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(yt,"ms-").replace(vt,bt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:at&&!at.call("\ufeff\u00a0")?function(e){return null==e?"":at.call(e)}:function(e){return null==e?"":(e+"").replace(ct,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?st.merge(r,"string"==typeof e?[e]:e):tt.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(rt)return rt.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),u=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&(u[u.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(u[u.length]=i);return et.apply([],u)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),st.isFunction(e)?(i=nt.call(arguments,2),o=function(){return e.apply(n||this,i.concat(nt.call(arguments)))},o.guid=e.guid=e.guid||st.guid++,o):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===st.type(r)){o=!0;for(u in r)st.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,st.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(st(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),st.ready.promise=function(t){if(!U)if(U=st.Deferred(),"complete"===V.readyState)setTimeout(st.ready);else if(V.addEventListener)V.addEventListener("DOMContentLoaded",xt,!1),e.addEventListener("load",st.ready,!1);else{V.attachEvent("onreadystatechange",xt),e.attachEvent("onload",st.ready);var n=!1;try{n=null==e.frameElement&&V.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!st.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}st.ready()}}()}return U.promise(t)},st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()}),X=st(V);var Tt={};st.Callbacks=function(e){e="string"==typeof e?Tt[e]||r(e):st.extend({},e);var n,i,o,a,s,u,l=[],c=!e.once&&[],f=function(t){for(n=e.memory&&t,i=!0,u=a||0,a=0,s=l.length,o=!0;l&&s>u;u++)if(l[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,l&&(c?c.length&&f(c.shift()):n?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function r(t){st.each(t,function(t,n){var i=st.type(n);"function"===i?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==i&&r(n)})})(arguments),o?s=l.length:n&&(a=t,f(n))}return this},remove:function(){return l&&st.each(arguments,function(e,t){for(var n;(n=st.inArray(t,l,n))>-1;)l.splice(n,1),o&&(s>=n&&s--,u>=n&&u--)}),this},has:function(e){return st.inArray(e,l)>-1},empty:function(){return l=[],this},disable:function(){return l=c=n=t,this},disabled:function(){return!l},lock:function(){return c=t,n||p.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!c||(o?c.push(t):f(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},st.extend({Deferred:function(e){var t=[["resolve","done",st.Callbacks("once memory"),"resolved"],["reject","fail",st.Callbacks("once memory"),"rejected"],["notify","progress",st.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return st.Deferred(function(n){st.each(t,function(t,o){var a=o[0],s=st.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&st.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?st.extend(e,r):r}},i={};return r.pipe=r.then,st.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=nt.call(arguments),a=o.length,s=1!==a||e&&st.isFunction(e.promise)?a:0,u=1===s?e:st.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?nt.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=Array(a),n=Array(a),r=Array(a);a>i;i++)o[i]&&st.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(u.reject).progress(l(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}}),st.support=function(){var n,r,i,o,a,s,u,l,c,f,p=V.createElement("div");if(p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=p.getElementsByTagName("*"),i=p.getElementsByTagName("a")[0],!r||!i||!r.length)return{};o=V.createElement("select"),a=o.appendChild(V.createElement("option")),s=p.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",n={getSetAttribute:"t"!==p.className,leadingWhitespace:3===p.firstChild.nodeType,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:!!s.value,optSelected:a.selected,enctype:!!V.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==V.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===V.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},s.checked=!0,n.noCloneChecked=s.cloneNode(!0).checked,o.disabled=!0,n.optDisabled=!a.disabled;try{delete p.test}catch(d){n.deleteExpando=!1}s=V.createElement("input"),s.setAttribute("value",""),n.input=""===s.getAttribute("value"),s.value="t",s.setAttribute("type","radio"),n.radioValue="t"===s.value,s.setAttribute("checked","t"),s.setAttribute("name","t"),u=V.createDocumentFragment(),u.appendChild(s),n.appendChecked=s.checked,n.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,p.attachEvent&&(p.attachEvent("onclick",function(){n.noCloneEvent=!1}),p.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})p.setAttribute(l="on"+f,"t"),n[f+"Bubbles"]=l in e||p.attributes[l].expando===!1;return p.style.backgroundClip="content-box",p.cloneNode(!0).style.backgroundClip="",n.clearCloneStyle="content-box"===p.style.backgroundClip,st(function(){var r,i,o,a="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=V.getElementsByTagName("body")[0];s&&(r=V.createElement("div"),r.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(r).appendChild(p),p.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=p.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",n.reliableHiddenOffsets=c&&0===o[0].offsetHeight,p.innerHTML="",p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",n.boxSizing=4===p.offsetWidth,n.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(n.pixelPosition="1%"!==(e.getComputedStyle(p,null)||{}).top,n.boxSizingReliable="4px"===(e.getComputedStyle(p,null)||{width:"4px"}).width,i=p.appendChild(V.createElement("div")),i.style.cssText=p.style.cssText=a,i.style.marginRight=i.style.width="0",p.style.width="1px",n.reliableMarginRight=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight)),p.style.zoom!==t&&(p.innerHTML="",p.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",n.inlineBlockNeedsLayout=3===p.offsetWidth,p.style.display="block",p.innerHTML="<div></div>",p.firstChild.style.width="5px",n.shrinkWrapBlocks=3!==p.offsetWidth,s.style.zoom=1),s.removeChild(r),r=p=o=i=null)}),r=o=u=a=i=s=null,n}();var wt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Nt=/([A-Z])/g;st.extend({cache:{},expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?st.cache[e[st.expando]]:e[st.expando],!!e&&!s(e)},data:function(e,t,n){return i(e,t,n,!1)},removeData:function(e,t){return o(e,t,!1)},_data:function(e,t,n){return i(e,t,n,!0)},_removeData:function(e,t){return o(e,t,!0)},acceptData:function(e){var t=e.nodeName&&st.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),st.fn.extend({data:function(e,n){var r,i,o=this[0],s=0,u=null;if(e===t){if(this.length&&(u=st.data(o),1===o.nodeType&&!st._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>s;s++)i=r[s].name,i.indexOf("data-")||(i=st.camelCase(i.substring(5)),a(o,i,u[i]));st._data(o,"parsedAttrs",!0)}return u}return"object"==typeof e?this.each(function(){st.data(this,e)}):st.access(this,function(n){return n===t?o?a(o,e,st.data(o,e)):null:(this.each(function(){st.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){st.removeData(this,e)})}}),st.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=st._data(e,n),r&&(!i||st.isArray(r)?i=st._data(e,n,st.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=st.queue(e,t),r=n.length,i=n.shift(),o=st._queueHooks(e,t),a=function(){st.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return st._data(e,n)||st._data(e,n,{empty:st.Callbacks("once memory").add(function(){st._removeData(e,t+"queue"),st._removeData(e,n)})})}}),st.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?st.queue(this[0],e):n===t?this:this.each(function(){var t=st.queue(this,e,n);st._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&st.dequeue(this,e)})},dequeue:function(e){return this.each(function(){st.dequeue(this,e)})},delay:function(e,t){return e=st.fx?st.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=st.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=st._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var Ct,kt,Et=/[\t\r\n]/g,St=/\r/g,At=/^(?:input|select|textarea|button|object)$/i,jt=/^(?:a|area)$/i,Dt=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,Lt=/^(?:checked|selected)$/i,Ht=st.support.getSetAttribute,Mt=st.support.input;st.fn.extend({attr:function(e,t){return st.access(this,st.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){st.removeAttr(this,e)})},prop:function(e,t){return st.access(this,st.prop,e,t,arguments.length>1)},removeProp:function(e){return e=st.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=st.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?st.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return st.isFunction(e)?this.each(function(n){st(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=st(this),s=t,u=e.match(lt)||[];i=u[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else("undefined"===n||"boolean"===n)&&(this.className&&st._data(this,"__className__",this.className),this.className=this.className||e===!1?"":st._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Et," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=st.isFunction(e),this.each(function(r){var o,a=st(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":st.isArray(o)&&(o=st.map(o,function(e){return null==e?"":e+""})),n=st.valHooks[this.type]||st.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=st.valHooks[o.type]||st.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(St,""):null==r?"":r)}}}),st.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(st.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&st.nodeName(n.parentNode,"optgroup"))){if(t=st(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=st.makeArray(t);return st(e).find("option").each(function(){this.selected=st.inArray(st(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return e.getAttribute===t?st.prop(e,n,r):(a=1!==s||!st.isXMLDoc(e),a&&(n=n.toLowerCase(),o=st.attrHooks[n]||(Dt.test(n)?kt:Ct)),r===t?o&&a&&"get"in o&&null!==(i=o.get(e,n))?i:(e.getAttribute!==t&&(i=e.getAttribute(n)),null==i?t:i):null!==r?o&&a&&"set"in o&&(i=o.set(e,r,n))!==t?i:(e.setAttribute(n,r+""),r):(st.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(lt);if(o&&1===e.nodeType)for(;n=o[i++];)r=st.propFix[n]||n,Dt.test(n)?!Ht&&Lt.test(n)?e[st.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:st.attr(e,n,""),e.removeAttribute(Ht?n:r)},attrHooks:{type:{set:function(e,t){if(!st.support.radioValue&&"radio"===t&&st.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!st.isXMLDoc(e),a&&(n=st.propFix[n]||n,o=st.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):At.test(e.nodeName)||jt.test(e.nodeName)&&e.href?0:t}}}}),kt={get:function(e,n){var r=st.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?Mt&&Ht?null!=i:Lt.test(n)?e[st.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?st.removeAttr(e,n):Mt&&Ht||!Lt.test(n)?e.setAttribute(!Ht&&st.propFix[n]||n,n):e[st.camelCase("default-"+n)]=e[n]=!0,n}},Mt&&Ht||(st.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return st.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t
2
+},set:function(e,n,r){return st.nodeName(e,"input")?(e.defaultValue=n,t):Ct&&Ct.set(e,n,r)}}),Ht||(Ct=st.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},st.attrHooks.contenteditable={get:Ct.get,set:function(e,t,n){Ct.set(e,""===t?!1:t,n)}},st.each(["width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),st.support.hrefNormalized||(st.each(["href","src","width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),st.each(["href","src"],function(e,t){st.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),st.support.style||(st.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),st.support.optSelected||(st.propHooks.selected=st.extend(st.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),st.support.enctype||(st.propFix.enctype="encoding"),st.support.checkOn||st.each(["radio","checkbox"],function(){st.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),st.each(["radio","checkbox"],function(){st.valHooks[this]=st.extend(st.valHooks[this],{set:function(e,n){return st.isArray(n)?e.checked=st.inArray(st(e).val(),n)>=0:t}})});var qt=/^(?:input|select|textarea)$/i,_t=/^key/,Ft=/^(?:mouse|contextmenu)|click/,Ot=/^(?:focusinfocus|focusoutblur)$/,Bt=/^([^.]*)(?:\.(.+)|)$/;st.event={global:{},add:function(e,n,r,i,o){var a,s,u,l,c,f,p,d,h,g,m,y=3!==e.nodeType&&8!==e.nodeType&&st._data(e);if(y){for(r.handler&&(a=r,r=a.handler,o=a.selector),r.guid||(r.guid=st.guid++),(l=y.events)||(l=y.events={}),(s=y.handle)||(s=y.handle=function(e){return st===t||e&&st.event.triggered===e.type?t:st.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=(n||"").match(lt)||[""],c=n.length;c--;)u=Bt.exec(n[c])||[],h=m=u[1],g=(u[2]||"").split(".").sort(),p=st.event.special[h]||{},h=(o?p.delegateType:p.bindType)||h,p=st.event.special[h]||{},f=st.extend({type:h,origType:m,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&st.expr.match.needsContext.test(o),namespace:g.join(".")},a),(d=l[h])||(d=l[h]=[],d.delegateCount=0,p.setup&&p.setup.call(e,i,g,s)!==!1||(e.addEventListener?e.addEventListener(h,s,!1):e.attachEvent&&e.attachEvent("on"+h,s))),p.add&&(p.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?d.splice(d.delegateCount++,0,f):d.push(f),st.event.global[h]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=st.hasData(e)&&st._data(e);if(m&&(u=m.events)){for(t=(t||"").match(lt)||[""],l=t.length;l--;)if(s=Bt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(f=st.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||st.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)st.event.remove(e,d+t[l],n,r,!0);st.isEmptyObject(u)&&(delete m.handle,st._removeData(e,"events"))}},trigger:function(n,r,i,o){var a,s,u,l,c,f,p,d=[i||V],h=n.type||n,g=n.namespace?n.namespace.split("."):[];if(s=u=i=i||V,3!==i.nodeType&&8!==i.nodeType&&!Ot.test(h+st.event.triggered)&&(h.indexOf(".")>=0&&(g=h.split("."),h=g.shift(),g.sort()),c=0>h.indexOf(":")&&"on"+h,n=n[st.expando]?n:new st.Event(h,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=g.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:st.makeArray(r,[n]),p=st.event.special[h]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!st.isWindow(i)){for(l=p.delegateType||h,Ot.test(l+h)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(i.ownerDocument||V)&&d.push(u.defaultView||u.parentWindow||e)}for(a=0;(s=d[a++])&&!n.isPropagationStopped();)n.type=a>1?l:p.bindType||h,f=(st._data(s,"events")||{})[n.type]&&st._data(s,"handle"),f&&f.apply(s,r),f=c&&s[c],f&&st.acceptData(s)&&f.apply&&f.apply(s,r)===!1&&n.preventDefault();if(n.type=h,!(o||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===h&&st.nodeName(i,"a")||!st.acceptData(i)||!c||!i[h]||st.isWindow(i))){u=i[c],u&&(i[c]=null),st.event.triggered=h;try{i[h]()}catch(m){}st.event.triggered=t,u&&(i[c]=u)}return n.result}},dispatch:function(e){e=st.event.fix(e);var n,r,i,o,a,s=[],u=nt.call(arguments),l=(st._data(this,"events")||{})[e.type]||[],c=st.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=st.event.handlers.call(this,e,l),n=0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,r=0;(a=o.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,i=((st.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u),i!==t&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(i=[],r=0;u>r;r++)a=n[r],o=a.selector+" ",i[o]===t&&(i[o]=a.needsContext?st(o,this).index(l)>=0:st.find(o,this,null,[l]).length),i[o]&&i.push(a);i.length&&s.push({elem:l,handlers:i})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[st.expando])return e;var t,n,r=e,i=st.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=new st.Event(r),t=o.length;t--;)n=o[t],e[n]=r[n];return e.target||(e.target=r.srcElement||V),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||V,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return st.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==V.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===V.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=st.extend(new st.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?st.event.trigger(i,null,t):st.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},st.removeEvent=V.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,n,r){var i="on"+n;e.detachEvent&&(e[i]===t&&(e[i]=null),e.detachEvent(i,r))},st.Event=function(e,n){return this instanceof st.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?u:l):this.type=e,n&&st.extend(this,n),this.timeStamp=e&&e.timeStamp||st.now(),this[st.expando]=!0,t):new st.Event(e,n)},st.Event.prototype={isDefaultPrevented:l,isPropagationStopped:l,isImmediatePropagationStopped:l,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=u,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=u,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u,this.stopPropagation()}},st.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){st.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!st.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),st.support.submitBubbles||(st.event.special.submit={setup:function(){return st.nodeName(this,"form")?!1:(st.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=st.nodeName(n,"input")||st.nodeName(n,"button")?n.form:t;r&&!st._data(r,"submitBubbles")&&(st.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),st._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&st.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return st.nodeName(this,"form")?!1:(st.event.remove(this,"._submit"),t)}}),st.support.changeBubbles||(st.event.special.change={setup:function(){return qt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(st.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),st.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),st.event.simulate("change",this,e,!0)})),!1):(st.event.add(this,"beforeactivate._change",function(e){var t=e.target;qt.test(t.nodeName)&&!st._data(t,"changeBubbles")&&(st.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||st.event.simulate("change",this.parentNode,e,!0)}),st._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return st.event.remove(this,"._change"),!qt.test(this.nodeName)}}),st.support.focusinBubbles||st.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){st.event.simulate(t,e.target,st.event.fix(e),!0)};st.event.special[t]={setup:function(){0===n++&&V.addEventListener(e,r,!0)},teardown:function(){0===--n&&V.removeEventListener(e,r,!0)}}}),st.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(s in e)this.on(s,n,r,e[s],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=l;else if(!i)return this;return 1===o&&(a=i,i=function(e){return st().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=st.guid++)),this.each(function(){st.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,st(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=l),this.each(function(){st.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){st.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?st.event.trigger(e,n,r,!0):t},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),st.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){st.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)},_t.test(t)&&(st.event.fixHooks[t]=st.event.keyHooks),Ft.test(t)&&(st.event.fixHooks[t]=st.event.mouseHooks)}),function(e,t){function n(e){return ht.test(e+"")}function r(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>C.cacheLength&&delete e[t.shift()],e[n]=r}}function i(e){return e[P]=!0,e}function o(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,u,l,c,d,h,g;if((t?t.ownerDocument||t:R)!==L&&D(t),t=t||L,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!M&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Q.apply(n,K.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&W.getByClassName&&t.getElementsByClassName)return Q.apply(n,K.call(t.getElementsByClassName(a),0)),n}if(W.qsa&&!q.test(e)){if(c=!0,d=P,h=t,g=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=f(e),(c=t.getAttribute("id"))?d=c.replace(vt,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=l.length;u--;)l[u]=d+p(l[u]);h=dt.test(e)&&t.parentNode||t,g=l.join(",")}if(g)try{return Q.apply(n,K.call(h.querySelectorAll(g),0)),n}catch(m){}finally{c||t.removeAttribute("id")}}}return x(e.replace(at,"$1"),t,n,r)}function s(e,t){for(var n=e&&t&&e.nextSibling;n;n=n.nextSibling)if(n===t)return-1;return e?1:-1}function u(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e,t){var n,r,i,o,s,u,l,c=X[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=C.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(i=[])),n=!1,(r=lt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(at," ")}),s=s.slice(n.length));for(o in C.filter)!(r=pt[o].exec(s))||l[o]&&!(r=l[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):X(e,u).slice(0)}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=$+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(l=t[P]||(t[P]={}),(u=l[r])&&u[0]===c){if((s=u[1])===!0||s===N)return s===!0}else if(u=l[r]=[c],u[1]=e(t,n,a)||N,u[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function m(e,t,n,r,o,a){return r&&!r[P]&&(r=m(r)),o&&!o[P]&&(o=m(o,a)),i(function(i,a,s,u){var l,c,f,p=[],d=[],h=a.length,m=i||b(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?m:g(m,p,e,s,u),v=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r)for(l=g(v,d),r(l,[],s,u),c=l.length;c--;)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f));if(i){if(o||e){if(o){for(l=[],c=v.length;c--;)(f=v[c])&&l.push(y[c]=f);o(null,v=[],l,u)}for(c=v.length;c--;)(f=v[c])&&(l=o?Z.call(i,f):p[c])>-1&&(i[l]=!(a[l]=f))}}else v=g(v===a?v.splice(h,v.length):v),o?o(null,a,v,u):Q.apply(a,v)})}function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return Z.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):l(e,n,r))}];i>s;s++)if(n=C.relative[e[s].type])c=[d(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return m(s>1&&h(c),s>1&&p(e.slice(0,s-1)).replace(at,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}c.push(n)}return h(c)}function v(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,u,l,c){var f,p,d,h=[],m=0,y="0",v=i&&[],b=null!=c,x=j,T=i||o&&C.find.TAG("*",c&&s.parentNode||s),w=$+=null==x?1:Math.E;for(b&&(j=s!==L&&s,N=n);null!=(f=T[y]);y++){if(o&&f){for(p=0;d=e[p];p++)if(d(f,s,u)){l.push(f);break}b&&($=w,N=++n)}r&&((f=!d&&f)&&m--,i&&v.push(f))}if(m+=y,r&&y!==m){for(p=0;d=t[p];p++)d(v,h,s,u);if(i){if(m>0)for(;y--;)v[y]||h[y]||(h[y]=G.call(l));h=g(h)}Q.apply(l,h),b&&!i&&h.length>0&&m+t.length>1&&a.uniqueSort(l)}return b&&($=w,j=x),v};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function x(e,t,n,r){var i,o,a,s,u,l=f(e);if(!r&&1===l.length){if(o=l[0]=l[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&!M&&C.relative[o[1].type]){if(t=C.find.ID(a.matches[0].replace(xt,Tt),t)[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?-1:o.length-1;i>=0&&(a=o[i],!C.relative[s=a.type]);i--)if((u=C.find[s])&&(r=u(a.matches[0].replace(xt,Tt),dt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return Q.apply(n,K.call(r,0)),n;break}}return S(e,l)(r,t,M,n,dt.test(e)),n}function T(){}var w,N,C,k,E,S,A,j,D,L,H,M,q,_,F,O,B,P="sizzle"+-new Date,R=e.document,W={},$=0,I=0,z=r(),X=r(),U=r(),V=typeof t,Y=1<<31,J=[],G=J.pop,Q=J.push,K=J.slice,Z=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},et="[\\x20\\t\\r\\n\\f]",tt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",nt=tt.replace("w","w#"),rt="([*^$|!~]?=)",it="\\["+et+"*("+tt+")"+et+"*(?:"+rt+et+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+nt+")|)|)"+et+"*\\]",ot=":("+tt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+it.replace(3,8)+")*)|.*)\\)|)",at=RegExp("^"+et+"+|((?:^|[^\\\\])(?:\\\\.)*)"+et+"+$","g"),ut=RegExp("^"+et+"*,"+et+"*"),lt=RegExp("^"+et+"*([\\x20\\t\\r\\n\\f>+~])"+et+"*"),ct=RegExp(ot),ft=RegExp("^"+nt+"$"),pt={ID:RegExp("^#("+tt+")"),CLASS:RegExp("^\\.("+tt+")"),NAME:RegExp("^\\[name=['\"]?("+tt+")['\"]?\\]"),TAG:RegExp("^("+tt.replace("w","w*")+")"),ATTR:RegExp("^"+it),PSEUDO:RegExp("^"+ot),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+et+"*(even|odd|(([+-]|)(\\d*)n|)"+et+"*(?:([+-]|)"+et+"*(\\d+)|))"+et+"*\\)|)","i"),needsContext:RegExp("^"+et+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+et+"*((?:-\\d)?\\d*)"+et+"*\\)|)(?=[^-]|$)","i")},dt=/[\x20\t\r\n\f]*[+~]/,ht=/\{\s*\[native code\]\s*\}/,gt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,vt=/'|\\/g,bt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,Tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{K.call(H.childNodes,0)[0].nodeType}catch(wt){K=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}E=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=a.setDocument=function(e){var r=e?e.ownerDocument||e:R;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=r.documentElement,M=E(r),W.tagNameNoComments=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),W.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),W.getByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),W.getByName=o(function(e){e.id=P+0,e.innerHTML="<a name='"+P+"'></a><div name='"+P+"'></div>",H.insertBefore(e,H.firstChild);var t=r.getElementsByName&&r.getElementsByName(P).length===2+r.getElementsByName(P+0).length;return W.getIdNotName=!r.getElementById(P),H.removeChild(e),t}),C.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==V&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},W.getIdNotName?(C.find.ID=function(e,t){if(typeof t.getElementById!==V&&!M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){return e.getAttribute("id")===t}}):(C.find.ID=function(e,n){if(typeof n.getElementById!==V&&!M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==V&&r.getAttributeNode("id").value===e?[r]:t:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){var n=typeof e.getAttributeNode!==V&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=W.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==V?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i];i++)1===n.nodeType&&r.push(n);return r}return o},C.find.NAME=W.getByName&&function(e,n){return typeof n.getElementsByName!==V?n.getElementsByName(name):t},C.find.CLASS=W.getByClassName&&function(e,n){return typeof n.getElementsByClassName===V||M?t:n.getElementsByClassName(e)},_=[],q=[":focus"],(W.qsa=n(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||q.push("\\["+et+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||q.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&q.push("[*^$]="+et+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),q.push(",.*:")})),(W.matchesSelector=n(F=H.matchesSelector||H.mozMatchesSelector||H.webkitMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){W.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),_.push("!=",ot)}),q=RegExp(q.join("|")),_=RegExp(_.join("|")),O=n(H.contains)||H.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},B=H.compareDocumentPosition?function(e,t){var n;return e===t?(A=!0,0):(n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&n||e.parentNode&&11===e.parentNode.nodeType?e===r||O(R,e)?-1:t===r||O(R,t)?1:0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,u=[e],l=[t];if(e===t)return A=!0,0;if(e.sourceIndex&&t.sourceIndex)return(~t.sourceIndex||Y)-(O(R,e)&&~e.sourceIndex||Y);if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[i]===l[i];)i++;return i?s(u[i],l[i]):u[i]===R?-1:l[i]===R?1:0},A=!1,[0,0].sort(B),W.detectDuplicates=A,L):L},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==L&&D(e),t=t.replace(bt,"='$1']"),!(!W.matchesSelector||M||_&&_.test(t)||q.test(t)))try{var n=F.call(e,t);if(n||W.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,L,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==L&&D(e),O(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==L&&D(e),M||(t=t.toLowerCase()),(n=C.attrHandle[t])?n(e):M||W.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=1,i=0;if(A=!W.detectDuplicates,e.sort(B),A){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},k=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=k(t);return n},C=a.selectors={cacheLength:50,createPseudo:i,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,Tt),e[3]=(e[4]||e[5]||"").replace(xt,Tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ct.test(n)&&(t=f(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,Tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=z[e+" "];return t||(t=RegExp("(^|"+et+")"+e+"("+et+"|$)"))&&z(e,function(e){return t.test(e.className||typeof e.getAttribute!==V&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.substr(i.length-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===y:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[P]||(m[P]={}),l=c[e]||[],d=l[0]===$&&l[1],p=l[0]===$&&l[2],f=d&&m.childNodes[d];f=++d&&f&&f[g]||(p=d=0)||h.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[$,d,p];break}}else if(v&&(l=(t[P]||(t[P]={}))[e])&&l[0]===$)p=l[1];else for(;(f=++d&&f&&f[g]||(p=d=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==y:1!==f.nodeType)||!++p||(v&&((f[P]||(f[P]={}))[e]=[$,p]),f!==t)););return p-=i,p===r||0===p%r&&p/r>=0}}},PSEUDO:function(e,t){var n,r=C.pseudos[e]||C.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[P]?r(t):r.length>1?(n=[e,e,"",t],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=Z.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(at,"$1"));return r[P]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:i(function(e){return ft.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(xt,Tt).toLowerCase(),function(t){var n;do if(n=M?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return mt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[w]=u(w);for(w in{submit:!0,reset:!0})C.pseudos[w]=l(w);S=a.compile=function(e,t){var n,r=[],i=[],o=U[e+" "];if(!o){for(t||(t=f(e)),n=t.length;n--;)o=y(t[n]),o[P]?r.push(o):i.push(o);o=U(e,v(i,r))}return o},C.pseudos.nth=C.pseudos.eq,C.filters=T.prototype=C.pseudos,C.setFilters=new T,D(),a.attr=st.attr,st.find=a,st.expr=a.selectors,st.expr[":"]=st.expr.pseudos,st.unique=a.uniqueSort,st.text=a.getText,st.isXMLDoc=a.isXML,st.contains=a.contains}(e);var Pt=/Until$/,Rt=/^(?:parents|prev(?:Until|All))/,Wt=/^.[^:#\[\.,]*$/,$t=st.expr.match.needsContext,It={children:!0,contents:!0,next:!0,prev:!0};st.fn.extend({find:function(e){var t,n,r;if("string"!=typeof e)return r=this,this.pushStack(st(e).filter(function(){for(t=0;r.length>t;t++)if(st.contains(r[t],this))return!0}));for(n=[],t=0;this.length>t;t++)st.find(e,this[t],n);return n=this.pushStack(st.unique(n)),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=st(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(st.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(f(this,e,!1))},filter:function(e){return this.pushStack(f(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?$t.test(e)?st(e,this.context).index(this[0])>=0:st.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=$t.test(e)||"string"!=typeof e?st(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:st.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?st.unique(o):o)},index:function(e){return e?"string"==typeof e?st.inArray(this[0],st(e)):st.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?st(e,t):st.makeArray(e&&e.nodeType?[e]:e),r=st.merge(this.get(),n);return this.pushStack(st.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),st.fn.andSelf=st.fn.addBack,st.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return st.dir(e,"parentNode")},parentsUntil:function(e,t,n){return st.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")
3
+},nextAll:function(e){return st.dir(e,"nextSibling")},prevAll:function(e){return st.dir(e,"previousSibling")},nextUntil:function(e,t,n){return st.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return st.dir(e,"previousSibling",n)},siblings:function(e){return st.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return st.sibling(e.firstChild)},contents:function(e){return st.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:st.merge([],e.childNodes)}},function(e,t){st.fn[e]=function(n,r){var i=st.map(this,t,n);return Pt.test(e)||(r=n),r&&"string"==typeof r&&(i=st.filter(r,i)),i=this.length>1&&!It[e]?st.unique(i):i,this.length>1&&Rt.test(e)&&(i=i.reverse()),this.pushStack(i)}}),st.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?st.find.matchesSelector(t[0],e)?[t[0]]:[]:st.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!st(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var zt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Xt=/ jQuery\d+="(?:null|\d+)"/g,Ut=RegExp("<(?:"+zt+")[\\s/>]","i"),Vt=/^\s+/,Yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Jt=/<([\w:]+)/,Gt=/<tbody/i,Qt=/<|&#?\w+;/,Kt=/<(?:script|style|link)/i,Zt=/^(?:checkbox|radio)$/i,en=/checked\s*(?:[^=]|=\s*.checked.)/i,tn=/^$|\/(?:java|ecma)script/i,nn=/^true\/(.*)/,rn=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,on={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:st.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},an=p(V),sn=an.appendChild(V.createElement("div"));on.optgroup=on.option,on.tbody=on.tfoot=on.colgroup=on.caption=on.thead,on.th=on.td,st.fn.extend({text:function(e){return st.access(this,function(e){return e===t?st.text(this):this.empty().append((this[0]&&this[0].ownerDocument||V).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(st.isFunction(e))return this.each(function(t){st(this).wrapAll(e.call(this,t))});if(this[0]){var t=st(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return st.isFunction(e)?this.each(function(t){st(this).wrapInner(e.call(this,t))}):this.each(function(){var t=st(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=st.isFunction(e);return this.each(function(n){st(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){st.nodeName(this,"body")||st(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||st.filter(e,[n]).length>0)&&(t||1!==n.nodeType||st.cleanData(b(n)),n.parentNode&&(t&&st.contains(n.ownerDocument,n)&&m(b(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&st.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&st.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return st.clone(this,e,t)})},html:function(e){return st.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Xt,""):t;if(!("string"!=typeof e||Kt.test(e)||!st.support.htmlSerialize&&Ut.test(e)||!st.support.leadingWhitespace&&Vt.test(e)||on[(Jt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Yt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(st.cleanData(b(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=st.isFunction(e);return t||"string"==typeof e||(e=st(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;(n&&1===this.nodeType||11===this.nodeType)&&(st(this).remove(),t?t.parentNode.insertBefore(e,t):n.appendChild(e))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=et.apply([],e);var i,o,a,s,u,l,c=0,f=this.length,p=this,m=f-1,y=e[0],v=st.isFunction(y);if(v||!(1>=f||"string"!=typeof y||st.support.checkClone)&&en.test(y))return this.each(function(i){var o=p.eq(i);v&&(e[0]=y.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(f&&(i=st.buildFragment(e,this[0].ownerDocument,!1,this),o=i.firstChild,1===i.childNodes.length&&(i=o),o)){for(n=n&&st.nodeName(o,"tr"),a=st.map(b(i,"script"),h),s=a.length;f>c;c++)u=i,c!==m&&(u=st.clone(u,!0,!0),s&&st.merge(a,b(u,"script"))),r.call(n&&st.nodeName(this[c],"table")?d(this[c],"tbody"):this[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,st.map(a,g),c=0;s>c;c++)u=a[c],tn.test(u.type||"")&&!st._data(u,"globalEval")&&st.contains(l,u)&&(u.src?st.ajax({url:u.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):st.globalEval((u.text||u.textContent||u.innerHTML||"").replace(rn,"")));i=o=null}return this}}),st.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){st.fn[e]=function(e){for(var n,r=0,i=[],o=st(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),st(o[r])[t](n),tt.apply(i,n.get());return this.pushStack(i)}}),st.extend({clone:function(e,t,n){var r,i,o,a,s,u=st.contains(e.ownerDocument,e);if(st.support.html5Clone||st.isXMLDoc(e)||!Ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(sn.innerHTML=e.outerHTML,sn.removeChild(s=sn.firstChild)),!(st.support.noCloneEvent&&st.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||st.isXMLDoc(e)))for(r=b(s),i=b(e),a=0;null!=(o=i[a]);++a)r[a]&&v(o,r[a]);if(t)if(n)for(i=i||b(e),r=r||b(s),a=0;null!=(o=i[a]);a++)y(o,r[a]);else y(e,s);return r=b(s,"script"),r.length>0&&m(r,!u&&b(e,"script")),r=i=o=null,s},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,f=e.length,d=p(t),h=[],g=0;f>g;g++)if(o=e[g],o||0===o)if("object"===st.type(o))st.merge(h,o.nodeType?[o]:o);else if(Qt.test(o)){for(s=s||d.appendChild(t.createElement("div")),a=(Jt.exec(o)||["",""])[1].toLowerCase(),u=on[a]||on._default,s.innerHTML=u[1]+o.replace(Yt,"<$1></$2>")+u[2],c=u[0];c--;)s=s.lastChild;if(!st.support.leadingWhitespace&&Vt.test(o)&&h.push(t.createTextNode(Vt.exec(o)[0])),!st.support.tbody)for(o="table"!==a||Gt.test(o)?"<table>"!==u[1]||Gt.test(o)?0:s:s.firstChild,c=o&&o.childNodes.length;c--;)st.nodeName(l=o.childNodes[c],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(st.merge(h,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=d.lastChild}else h.push(t.createTextNode(o));for(s&&d.removeChild(s),st.support.appendChecked||st.grep(b(h,"input"),x),g=0;o=h[g++];)if((!r||-1===st.inArray(o,r))&&(i=st.contains(o.ownerDocument,o),s=b(d.appendChild(o),"script"),i&&m(s),n))for(c=0;o=s[c++];)tn.test(o.type||"")&&n.push(o);return s=null,d},cleanData:function(e,n){for(var r,i,o,a,s=0,u=st.expando,l=st.cache,c=st.support.deleteExpando,f=st.event.special;null!=(o=e[s]);s++)if((n||st.acceptData(o))&&(i=o[u],r=i&&l[i])){if(r.events)for(a in r.events)f[a]?st.event.remove(o,a):st.removeEvent(o,a,r.handle);l[i]&&(delete l[i],c?delete o[u]:o.removeAttribute!==t?o.removeAttribute(u):o[u]=null,K.push(i))}}});var un,ln,cn,fn=/alpha\([^)]*\)/i,pn=/opacity\s*=\s*([^)]*)/,dn=/^(top|right|bottom|left)$/,hn=/^(none|table(?!-c[ea]).+)/,gn=/^margin/,mn=RegExp("^("+ut+")(.*)$","i"),yn=RegExp("^("+ut+")(?!px)[a-z%]+$","i"),vn=RegExp("^([+-])=("+ut+")","i"),bn={BODY:"block"},xn={position:"absolute",visibility:"hidden",display:"block"},Tn={letterSpacing:0,fontWeight:400},wn=["Top","Right","Bottom","Left"],Nn=["Webkit","O","Moz","ms"];st.fn.extend({css:function(e,n){return st.access(this,function(e,n,r){var i,o,a={},s=0;if(st.isArray(n)){for(i=ln(e),o=n.length;o>s;s++)a[n[s]]=st.css(e,n[s],!1,i);return a}return r!==t?st.style(e,n,r):st.css(e,n)},e,n,arguments.length>1)},show:function(){return N(this,!0)},hide:function(){return N(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:w(this))?st(this).show():st(this).hide()})}}),st.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=un(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":st.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=st.camelCase(n),l=e.style;if(n=st.cssProps[u]||(st.cssProps[u]=T(l,u)),s=st.cssHooks[n]||st.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=vn.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(st.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||st.cssNumber[u]||(r+="px"),st.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=st.camelCase(n);return n=st.cssProps[u]||(st.cssProps[u]=T(e.style,u)),s=st.cssHooks[n]||st.cssHooks[u],s&&"get"in s&&(o=s.get(e,!0,r)),o===t&&(o=un(e,n,i)),"normal"===o&&n in Tn&&(o=Tn[n]),r?(a=parseFloat(o),r===!0||st.isNumeric(a)?a||0:o):o},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(ln=function(t){return e.getComputedStyle(t,null)},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||st.contains(e.ownerDocument,e)||(u=st.style(e,n)),yn.test(u)&&gn.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):V.documentElement.currentStyle&&(ln=function(e){return e.currentStyle},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),yn.test(u)&&!dn.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),st.each(["height","width"],function(e,n){st.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&hn.test(st.css(e,"display"))?st.swap(e,xn,function(){return E(e,n,i)}):E(e,n,i):t},set:function(e,t,r){var i=r&&ln(e);return C(e,t,r?k(e,n,r,st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,i),i):0)}}}),st.support.opacity||(st.cssHooks.opacity={get:function(e,t){return pn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=st.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===st.trim(o.replace(fn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=fn.test(o)?o.replace(fn,i):o+" "+i)}}),st(function(){st.support.reliableMarginRight||(st.cssHooks.marginRight={get:function(e,n){return n?st.swap(e,{display:"inline-block"},un,[e,"marginRight"]):t}}),!st.support.pixelPosition&&st.fn.position&&st.each(["top","left"],function(e,n){st.cssHooks[n]={get:function(e,r){return r?(r=un(e,n),yn.test(r)?st(e).position()[n]+"px":r):t}}})}),st.expr&&st.expr.filters&&(st.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!st.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||st.css(e,"display"))},st.expr.filters.visible=function(e){return!st.expr.filters.hidden(e)}),st.each({margin:"",padding:"",border:"Width"},function(e,t){st.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+wn[r]+t]=o[r]||o[r-2]||o[0];return i}},gn.test(e)||(st.cssHooks[e+t].set=C)});var Cn=/%20/g,kn=/\[\]$/,En=/\r?\n/g,Sn=/^(?:submit|button|image|reset)$/i,An=/^(?:input|select|textarea|keygen)/i;st.fn.extend({serialize:function(){return st.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=st.prop(this,"elements");return e?st.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!st(this).is(":disabled")&&An.test(this.nodeName)&&!Sn.test(e)&&(this.checked||!Zt.test(e))}).map(function(e,t){var n=st(this).val();return null==n?null:st.isArray(n)?st.map(n,function(e){return{name:t.name,value:e.replace(En,"\r\n")}}):{name:t.name,value:n.replace(En,"\r\n")}}).get()}}),st.param=function(e,n){var r,i=[],o=function(e,t){t=st.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=st.ajaxSettings&&st.ajaxSettings.traditional),st.isArray(e)||e.jquery&&!st.isPlainObject(e))st.each(e,function(){o(this.name,this.value)});else for(r in e)j(r,e[r],n,o);return i.join("&").replace(Cn,"+")};var jn,Dn,Ln=st.now(),Hn=/\?/,Mn=/#.*$/,qn=/([?&])_=[^&]*/,_n=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Fn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,On=/^(?:GET|HEAD)$/,Bn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Rn=st.fn.load,Wn={},$n={},In="*/".concat("*");try{Dn=Y.href}catch(zn){Dn=V.createElement("a"),Dn.href="",Dn=Dn.href}jn=Pn.exec(Dn.toLowerCase())||[],st.fn.load=function(e,n,r){if("string"!=typeof e&&Rn)return Rn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),st.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),s.length>0&&st.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){a=arguments,s.html(i?st("<div>").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
4
+//@ sourceMappingURL=jquery.min.map
+12
setup/setup.cgi
... ...
@@ -0,0 +1,12 @@
1
+#!/usr/bin/env perl
2
+
3
+use FindBin;
4
+use lib "$FindBin::Bin/../mojo/lib";
5
+BEGIN { $ENV{MOJO_MODE} = 'production' }
6
+use Mojolicious::Lite;
7
+use Carp 'croak';
8
+
9
+any '/' => 'index';
10
+
11
+app->start;
12
+
+19 -75
setup/setup.php
... ...
@@ -1,60 +1,25 @@
1 1
 <?php
2
-  # Config
3
-  $setup_dir = getcwd();
4
-  $script_dir = realpath($setup_dir . '/../script');
5
-  $app_home_dir = realpath($setup_dir . '/..');
6
-  $cpanm_path = "$app_home_dir/cpanm";
7
-  putenv("PERL_CPANM_HOME=$setup_dir");
2
+  ini_set( 'display_errors', 1 );
8 3
   
9
-  # Paramter
10
-  $op = $_REQUEST['op'];
11
-  
12
-  $current_path = $_SERVER["SCRIPT_NAME"];
13
-  $app_path = $current_path;
14
-  $app_path = preg_replace('/\/setup\/setup\.php/', '', $app_path) . '.cgi';
15
-  preg_match("/([0-9a-zA-Z-_]+\.cgi)$/", $app_path, $matches);
16
-  $script_base_name = $matches[0];
17
-  $script = "$script_dir/$script_base_name";
18
-  $to_script = realpath("$app_home_dir/../$script_base_name");
19
-  $output = array('');
20
-  $app_home_dir = getcwd() . '/..';
21
-  $setup_command_success = true;
22
-  
23
-  if($op == 'setup') {
24
-    
25
-    if (!chdir($app_home_dir)) {
26
-      throw new Exception("Can't cahgne directory");
27
-    }
28
-    exec("perl cpanm -n -l extlib Module::CoreList 2>&1", $output, $ret);
4
+  # Setup directory
5
+  if ($setup_dir = getcwd()) {
6
+    # Setup CGI script
7
+    $setup_cgi_script = "$setup_dir/setup.cgi";
29 8
     
30
-    $output = array();
31
-    if ($ret == 0) {
32
-      exec("perl -Iextlib/lib/perl5 cpanm -n -L extlib --installdeps . 2>&1", $output, $ret);
33
-      if ($ret == 0) {
34
-        if (copy($script, $to_script)) {
35
-          array_push($output, "$script is moved to $to_script");
36
-          if (chmod($to_script, 0755)) {
37
-            array_push($output, "change $to_script mode to 755");
38
-            $setup_command_success = true;
39
-          }
40
-          else {
41
-            array_push($output, "Can't change mode $to_script");
42
-            $setup_command_success = false;
43
-          }
44
-        }
45
-        else {
46
-          array_push($output, "Can't move $script to $to_script");
47
-          $setup_command_success = false;
48
-        }
49
-      }
50
-      else {
51
-        $setup_command_success = false;
52
-      }
9
+    # Chmod Setup CGI script
10
+    if (chmod($setup_cgi_script, 0755)) {
11
+      $setup_cgi_url = $_SERVER['PHP_SELF'];
12
+      $setup_cgi_url = preg_replace('/\.php$/', '.cgi', $setup_cgi_url);
13
+      header("Location: $setup_cgi_url");
14
+      exit();
53 15
     }
54 16
     else {
55
-      $setup_command_success = false;
17
+      $error = "Can't $setup_cgi_script mode to 755";
56 18
     }
57 19
   }
20
+  else {
21
+    $error = "Can't change directory";
22
+  }
58 23
 ?>
59 24
 
60 25
 <!DOCTYPE html>
... ...
@@ -73,31 +38,10 @@
73 38
     </div>
74 39
     <hr style="margin-top:0;margin-bottom:0">
75 40
     <div class="container">
76
-      <div class="text-center"><b><h3>Click!</h3></b></div>
77
-      <form action="<?php echo "$current_path?op=setup" ?>" method="post">
78
-        <div class="text-center" style="margin-bottom:10px">
79
-          <input type="submit" style="width:200px;height:50px;font-size:200%" value="Setup">
80
-        </div>
81
-      </form>
82
-
83
-<?php if ($op == 'setup') { ?>
84
-      <span class="label">Result</span>
85
-<pre style="height:300px;overflow:auto;margin-bottom:30px">
86
-<?php if (!$setup_command_success) { ?>
87
-<span style="color:red">Error, Setup failed.</span>
88
-<?php } ?>
89
-<?php if ($setup_command_success) { ?>
90
-<?php foreach ($output as $line) { ?>
91
-<?php echo htmlspecialchars($line) ?>
92
-
93
-<?php } ?>
94
-<?php } ?>
95
-</pre>
96
-<?php } ?>
97
-
98
-      <?php if ($op == 'setup' && $setup_command_success) { ?>
99
-        <div style="font-size:150%;margin-bottom:30px;">Go to <a href="<?php echo $app_path ?>">Application</a></div>
100
-      <?php } ?>
41
+      <div class="alert alert-error">
42
+        <button type="button" class="close" data-dismiss="alert">&times;</button>
43
+        <?php echo $error ?>
44
+      </div>
101 45
     </div>
102 46
   </body>
103 47
 </html>
+153
setup/templates/index.html.ep
... ...
@@ -0,0 +1,153 @@
1
+<%
2
+  use Cwd qw/getcwd realpath/;
3
+  use File::Copy 'copy';
4
+
5
+  # Setup directory
6
+  my $setup_dir = getcwd;
7
+
8
+  # Home directory
9
+  my $home_dir = realpath($setup_dir . '/..');
10
+  
11
+  # Script directory
12
+  my $script_dir = realpath($setup_dir . '/../script');
13
+  
14
+  # cpanm Path
15
+  my $cpanm_path = "$home_dir/cpanm";
16
+  
17
+  # cpanm home directory
18
+  $ENV{PERL_CPANM_HOME} = $setup_dir;
19
+  
20
+  # Parameter
21
+  my $op = param('op');
22
+  
23
+  # Setup script absolute path
24
+  my $setup_script_abs_path = url_for->to_string;
25
+  
26
+  # Application script absolute path
27
+  my $app_abs_path = $setup_script_abs_path;
28
+  $app_abs_path =~ s#\Q/setup/setup.cgi#.cgi#;
29
+  
30
+  # Application script name
31
+  my ($app_name) = $app_abs_path =~ /([0-9a-zA-Z-_]+\.cgi)$/;
32
+  
33
+  # Application script file
34
+  my $app_file = "$script_dir/$app_name";
35
+  
36
+  # Place application script is moved to 
37
+  my $app_to = realpath("$home_dir/../$app_name");
38
+  
39
+  # Outputs
40
+  my @outputs;
41
+  
42
+  # Error
43
+  my $error;
44
+  if ($op == 'setup') {
45
+    
46
+    # Change directory
47
+    if (chdir $home_dir) {
48
+    
49
+      # Install Module::CoreList
50
+      my $cmd = 'perl cpanm -n -l extlib Module::CoreList 2>&1';
51
+      if (open my $fh, "$cmd |") {
52
+        local $/;
53
+        my $output = <$fh>;
54
+        push @outputs, $output;
55
+        if (close $fh) {
56
+        
57
+          # Install modules
58
+          my $cmd = 'perl -Iextlib/lib/perl5 '
59
+            . 'cpanm -n -L extlib --installdeps . 2>&1';
60
+          if (open my $fh, "$cmd |") {
61
+            local $/;
62
+            my $output = <$fh>;
63
+            push @outputs, $output;
64
+            if (close $fh) {
65
+              
66
+              # Copy application file
67
+              if (copy $app_file, $app_to) {
68
+                push @outputs, "$app_file is moved to $app_to";
69
+                
70
+                # Change mode
71
+                if (chmod(0755, $app_to)) {
72
+                  push @outputs, "change $app_to mode to 755";
73
+                }
74
+                else {
75
+                  $error = 1;
76
+                  app->log->error("Can't change mode $app_to");
77
+                }
78
+              }
79
+              else {
80
+                $error = 1;
81
+                app->log->error("Can't move $app_file to $app_to");
82
+              }
83
+            }
84
+            else {
85
+              $error = 1;
86
+              app->log->error("Can't close pipe install modules: $!");
87
+            }
88
+          }
89
+          else {
90
+            my $error = 1;
91
+            app->log->error("Can't open pipe install modules: $!");
92
+          }
93
+        }
94
+        else {
95
+          $error = 1;
96
+          app->log->error("Can't close pipe install Module::CoreList: $!");
97
+        }
98
+      }
99
+      else {
100
+        $error = 1;
101
+        app->log->error("Can't open pipe install Module::CoreList: $!");
102
+      }
103
+    }
104
+    else {
105
+      $error = 1;
106
+      app->log->error("Can't cahgne directory: $!");
107
+    }
108
+  }
109
+%>
110
+
111
+<!DOCTYPE html>
112
+<html>
113
+  <head>
114
+    <meta charset="UTF-8">
115
+    <title>Setup Tool</title>
116
+    %= javascript '/js/jquery-1.9.0.min.js';
117
+    %= javascript '/js/bootstrap.js';
118
+    %= stylesheet '/css/bootstrap.css';
119
+    %= stylesheet '/css/bootstrap-responsive.css';
120
+  </head>
121
+  <body>
122
+    <div class="container">
123
+      <div class="text-center"><h1>Setup Tool</h1></div>
124
+    </div>
125
+    <hr style="margin-top:0;margin-bottom:0">
126
+    <div class="container">
127
+      <div class="text-center"><b><h3>Click!</h3></b></div>
128
+      <form action="<%= url_for->query(op => 'setup') %>" method="post">
129
+        <div class="text-center" style="margin-bottom:10px">
130
+          <input type="submit" style="width:200px;height:50px;font-size:200%" value="Setup">
131
+        </div>
132
+      </form>
133
+
134
+      % if ($op eq 'setup') {
135
+        <span class="label">Result</span>
136
+<pre style="height:300px;overflow:auto;margin-bottom:30px">
137
+% if ($error) {
138
+<span style="color:red">Error, Setup failed. See setup/log/production.log</span>
139
+% }
140
+% unless ($error) {
141
+% for my $line (@outputs) {
142
+%= $line
143
+% }
144
+% }
145
+</pre>
146
+      % }
147
+
148
+      % if ($op eq 'setup' && !$error) {
149
+        <div style="font-size:150%;margin-bottom:30px;">Go to <a href="<%= $app_abs_path %>">Application</a></div>
150
+      % }
151
+    </div>
152
+  </body>
153
+</html>
+7 -1
t/basic.t
... ...
@@ -1,4 +1,10 @@
1 1
 use Test::More 'no_plan';
2 2
 
3
-use_ok('Gitprep');
3
+use FindBin;
4
+use lib "$FindBin::Bin/../mojo/lib";
5
+use lib "$FindBin::Bin/../lib";
6
+use lib "$FindBin::Bin/../extlib/lib/perl5";
7
+
8
+use Test::Mojo;
4 9
 
10
+use_ok('Gitprep');