sassc-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +10 -0
  3. data/README.md +2 -2
  4. data/lib/sassc/rails.rb +3 -1
  5. data/lib/sassc/rails/functions.rb +0 -1
  6. data/lib/sassc/rails/importer.rb +69 -115
  7. data/lib/sassc/rails/railtie.rb +3 -1
  8. data/lib/sassc/rails/template.rb +1 -5
  9. data/lib/sassc/rails/version.rb +1 -1
  10. data/sassc-rails.gemspec +4 -1
  11. data/test/dummy/app/assets/fonts/fake-font.ttf +0 -0
  12. data/test/dummy/app/assets/stylesheets/_top_level_partial.scss +3 -0
  13. data/test/dummy/app/assets/stylesheets/css_application.css +11 -0
  14. data/test/dummy/app/assets/stylesheets/css_erb_handler.css.erb +3 -0
  15. data/test/dummy/app/assets/stylesheets/css_sass_erb_handler.sass.erb +2 -0
  16. data/test/dummy/app/assets/stylesheets/css_scss_erb_handler.scss.erb +3 -0
  17. data/test/dummy/app/assets/stylesheets/erb_render_with_context.css.erb +1804 -0
  18. data/test/dummy/app/assets/stylesheets/globbed/globbed.scss +3 -0
  19. data/test/dummy/app/assets/stylesheets/globbed/nested/nested_glob.scss +3 -0
  20. data/test/dummy/app/assets/stylesheets/imports_test.scss +19 -0
  21. data/test/dummy/app/assets/stylesheets/partials/_css_sass_import.sass +5 -0
  22. data/test/dummy/app/assets/stylesheets/partials/_sass_import.sass +2 -0
  23. data/test/dummy/app/assets/stylesheets/partials/_scss_import.scss +9 -0
  24. data/test/dummy/app/assets/stylesheets/partials/_without_css_ext.scss +3 -0
  25. data/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_sass.sass +2 -0
  26. data/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_scss.scss +3 -0
  27. data/test/dummy/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.scss +3 -0
  28. data/test/dummy/app/assets/stylesheets/sass_erb_handler.sass.erb +2 -0
  29. data/test/dummy/app/assets/stylesheets/scss_erb_handler.scss.erb +3 -0
  30. data/test/dummy/app/assets/stylesheets/subfolder/_defaults.scss +3 -0
  31. data/test/dummy/app/assets/stylesheets/subfolder/another_plain.css +3 -0
  32. data/test/dummy/app/assets/stylesheets/subfolder/plain.css +3 -0
  33. data/test/dummy/app/assets/stylesheets/subfolder/second_level.scss +2 -0
  34. data/test/sassc_rails_test.rb +150 -2
  35. data/test/test_helper.rb +3 -0
  36. metadata +79 -7
  37. data/lib/sassc/rails/logger.rb +0 -21
  38. data/test/dummy/rails_app.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 523c8a396ba041547d8802a7a0803a8f9d101d15
4
- data.tar.gz: e06a714560f3d93aca54ad05847a2d98e45761e2
3
+ metadata.gz: bcda473ec02c97dd9a753b7bf85efe4cfbc32e96
4
+ data.tar.gz: db721d0f683ec7a5d7626044e6e4b14220c5a29f
5
5
  SHA512:
6
- metadata.gz: 2bac2ce68c73bfa143fa97e0e8c929630b36bfd16607133439d56d716bedc51cd5a85adf82273700d1e5a8791cafe2f5c5b38bea68a87ed87f314f086cafdcc4
7
- data.tar.gz: 03edfdc187118fb73f5d00246476a62a556a75c9bb9d86f44df76994d1b25c546aca2954fa05afe666903d0302a373e650f80aca9936049190078ed9d1bbad93
6
+ metadata.gz: 59d3ff0498cecea7d03e1d3d8ce33aeabc50d3f9a14bfe079a4988626f94837acc4f0a72d3329ddd2b9f678ac343d3a894a6f2f3e6a93c4a8fc6c7cff4b891db
7
+ data.tar.gz: c05d5c0e5ba4dabc4df2436ca16e445f8c6c1961601e52b7c98bdc18413c81edb95277c7a2148f1dc394d98971759058ddbc93d22967a98e9ee27b1d575c83de
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+
3
+ bundler_args: "--binstubs --standalone --without documentation --path ../bundle"
4
+ script: "bundle exec rake test"
5
+ rvm:
6
+ - 2.0.0
7
+ - 2.1.5
8
+ - 2.2.0
9
+ notifications:
10
+ email: false
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # SassC::Rails
1
+ # SassC::Rails [![Build Status](https://travis-ci.org/bolandrm/sassc-rails.svg)](https://travis-ci.org/bolandrm/sassc-rails) [![Gem Version](https://badge.fury.io/rb/sassc-rails.svg)](http://badge.fury.io/rb/sassc-rails)
2
2
 
3
- ## WIP.
3
+ ### WIP.
4
4
 
5
5
  ## Installation
6
6
 
data/lib/sassc/rails.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require_relative "rails/version"
2
+
3
+ require "sassc"
2
4
  require_relative "rails/functions"
3
- #require_relative "rails/importer"
5
+ require_relative "rails/importer"
4
6
  require_relative "rails/template"
5
7
  require_relative "rails/railtie"
@@ -1,5 +1,4 @@
1
1
  require "sprockets/sass_template"
2
- require "sassc"
3
2
 
4
3
  module Sprockets
5
4
  class SassTemplate
@@ -1,146 +1,100 @@
1
- require 'active_support/deprecation/reporting'
2
- require 'sass'
3
- require 'sprockets/sass_importer'
4
1
  require 'tilt'
5
2
 
6
- module Sass
3
+ module SassC
7
4
  module Rails
8
- class SassImporter < Sass::Importers::Filesystem
9
- module Globbing
10
- GLOB = /(\A|\/)(\*|\*\*\/\*)\z/
11
-
12
- def find_relative(name, base, options)
13
- if options[:sprockets] && m = name.match(GLOB)
14
- path = name.sub(m[0], "")
15
- base = File.expand_path(path, File.dirname(base))
16
- glob_imports(base, m[2], options)
17
- else
18
- super
19
- end
20
- end
5
+ class Importer < SassC::Importer
6
+ class Extension
7
+ attr_reader :postfix
21
8
 
22
- def find(name, options)
23
- # globs must be relative
24
- return if name =~ GLOB
25
- super
9
+ def initialize(postfix)
10
+ @postfix = postfix
26
11
  end
27
12
 
28
- private
29
- def glob_imports(base, glob, options)
30
- contents = ""
31
- context = options[:sprockets][:context]
32
- each_globbed_file(base, glob, context) do |filename|
33
- next if filename == options[:filename]
34
- contents << "@import #{filename.inspect};\n"
35
- end
36
- return nil if contents == ""
37
- Sass::Engine.new(contents, options.merge(
38
- :filename => base,
39
- :importer => self,
40
- :syntax => :scss
41
- ))
42
- end
43
-
44
- def each_globbed_file(base, glob, context)
45
- raise ArgumentError unless glob == "*" || glob == "**/*"
46
-
47
- exts = extensions.keys.map { |ext| Regexp.escape(".#{ext}") }.join("|")
48
- sass_re = Regexp.compile("(#{exts})$")
49
-
50
- context.depend_on(base)
51
-
52
- Dir["#{base}/#{glob}"].sort.each do |path|
53
- if File.directory?(path)
54
- context.depend_on(path)
55
- elsif sass_re =~ path
56
- yield path
57
- end
58
- end
59
- end
13
+ def import_for(original_path, parent_path, full_path, options)
14
+ SassC::Importer::Import.new(full_path)
15
+ end
60
16
  end
61
17
 
62
- module ERB
63
- def extensions
64
- {
65
- 'css.erb' => :scss_erb,
66
- 'scss.erb' => :scss_erb,
67
- 'sass.erb' => :sass_erb
68
- }.merge(super)
18
+ class CSSExtension
19
+ def postfix
20
+ ".css"
69
21
  end
70
22
 
71
- def erb_extensions
72
- {
73
- :scss_erb => :scss,
74
- :sass_erb => :sass
75
- }
23
+ def import_for(original_path, parent_path, full_path, options)
24
+ import_path = full_path.gsub(/\.css$/,"")
25
+ SassC::Importer::Import.new(import_path)
76
26
  end
27
+ end
77
28
 
78
- def find_relative(*args)
79
- process_erb_engine(super)
29
+ class SassERBExtension < Extension
30
+ def import_for(original_path, parent_path, full_path, options)
31
+ template = Tilt::ERBTemplate.new(full_path)
32
+ parsed_erb = template.render(options[:sprockets][:context], {})
33
+ parsed_scss = SassC::Sass2Scss.convert(parsed_erb)
34
+ SassC::Importer::Import.new(full_path, source: parsed_scss)
80
35
  end
36
+ end
81
37
 
82
- def find(*args)
83
- process_erb_engine(super)
38
+ class ERBExtension < Extension
39
+ def import_for(original_path, parent_path, full_path, options)
40
+ template = Tilt::ERBTemplate.new(full_path)
41
+ parsed_erb = template.render(options[:sprockets][:context], {})
42
+ SassC::Importer::Import.new(full_path, source: parsed_erb)
84
43
  end
44
+ end
85
45
 
86
- private
87
- def process_erb_engine(engine)
88
- if engine && engine.options[:sprockets] && syntax = erb_extensions[engine.options[:syntax]]
89
- template = Tilt::ERBTemplate.new(engine.options[:filename])
90
- contents = template.render(engine.options[:sprockets][:context], {})
46
+ EXTENSIONS = [
47
+ Extension.new(".scss"),
48
+ Extension.new(".sass"),
49
+ CSSExtension.new,
50
+ ERBExtension.new(".scss.erb"),
51
+ SassERBExtension.new(".sass.erb"),
52
+ ERBExtension.new(".css.erb"),
53
+ ]
91
54
 
92
- Sass::Engine.new(contents, engine.options.merge(:syntax => syntax))
93
- else
94
- engine
95
- end
96
- end
97
- end
55
+ PREFIXS = [ "", "_" ]
98
56
 
99
- module Deprecated
100
- def extensions
101
- {
102
- 'css.scss' => :scss,
103
- 'css.sass' => :sass,
104
- 'css.scss.erb' => :scss_erb,
105
- 'css.sass.erb' => :sass_erb
106
- }.merge(super)
107
- end
57
+ def imports(path, parent_path)
58
+ parent_dir, _ = File.split(parent_path)
59
+ specified_dir, specified_file = File.split(path)
108
60
 
109
- def find_relative(*args)
110
- deprecate_extra_css_extension(super)
111
- end
61
+ search_paths = ([parent_dir] + load_paths).uniq
112
62
 
113
- def find(*args)
114
- deprecate_extra_css_extension(super)
63
+ if specified_dir != "."
64
+ search_paths.map! do |path|
65
+ File.join(path, specified_dir)
66
+ end
115
67
  end
116
68
 
117
- private
118
- def deprecate_extra_css_extension(engine)
119
- if engine && filename = engine.options[:filename]
120
- if filename.end_with?('.css.scss')
121
- msg = "Extra .css in SCSS file is unnecessary. Rename #{filename} to #{filename.sub('.css.scss', '.scss')}."
122
- elsif filename.end_with?('.css.sass')
123
- msg = "Extra .css in SASS file is unnecessary. Rename #{filename} to #{filename.sub('.css.sass', '.sass')}."
124
- elsif filename.end_with?('.css.scss.erb')
125
- msg = "Extra .css in SCSS/ERB file is unnecessary. Rename #{filename} to #{filename.sub('.css.scss.erb', '.scss.erb')}."
126
- elsif filename.end_with?('.css.sass.erb')
127
- msg = "Extra .css in SASS/ERB file is unnecessary. Rename #{filename} to #{filename.sub('.css.sass.erb', '.sass.erb')}."
128
- end
69
+ search_paths.each do |search_path|
70
+ PREFIXS.each do |prefix|
71
+ file_name = prefix + specified_file
129
72
 
130
- ActiveSupport::Deprecation.warn(msg) if msg
73
+ EXTENSIONS.each do |extension|
74
+ try_path = File.join(search_path, file_name + extension.postfix)
75
+ if File.exists?(try_path)
76
+ record_import_as_dependency try_path
77
+ return extension.import_for(path, parent_path, try_path, options)
78
+ end
131
79
  end
132
-
133
- engine
134
80
  end
81
+ end
82
+
83
+ Import.new(path)
135
84
  end
136
85
 
137
- include Deprecated
138
- include ERB
139
- include Globbing
86
+ private
87
+
88
+ def record_import_as_dependency(path)
89
+ context.depend_on path
90
+ end
91
+
92
+ def context
93
+ options[:sprockets][:context]
94
+ end
140
95
 
141
- # Allow .css files to be @import'd
142
- def extensions
143
- { 'css' => :scss }.merge(super)
96
+ def load_paths
97
+ options[:load_paths]
144
98
  end
145
99
  end
146
100
  end
@@ -53,8 +53,10 @@ module SassC::Rails
53
53
  end
54
54
 
55
55
  initializer :setup_compression, group: :all do |app|
56
+ app.config.assets.css_compressor = nil
57
+
56
58
  if !Rails.env.development?
57
- app.config.assets.css_compressor ||= :sass
59
+ app.config.sass.style = :compressed
58
60
  else
59
61
  # Use expanded output instead of the sass default of :nested unless specified
60
62
  app.config.sass.style ||= :expanded
@@ -11,6 +11,7 @@ module SassC::Rails
11
11
  filename: input[:filename],
12
12
  syntax: self.class.syntax,
13
13
  load_paths: input[:environment].paths,
14
+ importer: SassC::Rails::Importer,
14
15
  sprockets: {
15
16
  context: context,
16
17
  environment: input[:environment],
@@ -24,11 +25,6 @@ module SassC::Rails
24
25
  engine.render
25
26
  end
26
27
 
27
- # Track all imported files
28
- engine.dependencies.map do |dependency|
29
- context.metadata[:dependency_paths] << dependency.options[:filename]
30
- end
31
-
32
28
  context.metadata.merge(data: css)
33
29
  end
34
30
 
@@ -1,5 +1,5 @@
1
1
  module SassC
2
2
  module Rails
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
data/sassc-rails.gemspec CHANGED
@@ -23,12 +23,15 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_development_dependency "minitest", "~> 5.5.1"
25
25
  spec.add_development_dependency 'rails'
26
+ spec.add_development_dependency 'mocha'
26
27
 
27
28
  # unfortunately we require sass for now, so that we can
28
29
  # reuse portions of the sprockets template
29
30
  spec.add_dependency 'sass'
30
31
 
31
- spec.add_dependency "sassc", "0.0.7"
32
+ spec.add_dependency 'tilt' # For ERB
33
+
34
+ spec.add_dependency "sassc", "1.0.0"
32
35
  spec.add_dependency 'railties'
33
36
  spec.add_dependency 'sprockets', '3.0.0.beta.6'
34
37
  end
File without changes
@@ -0,0 +1,3 @@
1
+ .top-level {
2
+ font-color: bold;
3
+ }
@@ -0,0 +1,11 @@
1
+ /*
2
+ *= require partials/_sass_import
3
+ *= require partials/_scss_import
4
+ *= require_tree ./globbed
5
+ *= require subfolder/plain
6
+ *= require subfolder/second_level
7
+ */
8
+
9
+ .css-application {
10
+ background: #fff;
11
+ }
@@ -0,0 +1,3 @@
1
+ .css-erb-handler {
2
+ margin: <%= 0 %>;
3
+ }
@@ -0,0 +1,2 @@
1
+ .css-sass-erb-handler
2
+ margin: <%= 0 %>
@@ -0,0 +1,3 @@
1
+ .css-scss-erb-handler {
2
+ margin: <%= 0 %>;
3
+ }
@@ -0,0 +1,1804 @@
1
+ /*!
2
+ * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+ /* FONT PATH
6
+ * -------------------------- */
7
+ //= depend_on_asset "fake-font.ttf"
8
+
9
+ <% v = 1 %>
10
+ @font-face {
11
+ font-family: 'FontAwesome';
12
+ src: url('<%= font_path('fontawesome-webfont.eot') %>?v=<%= v %>');
13
+ src: url('<%= font_path('fontawesome-webfont.eot') %>?#iefix&v=<%= v %>') format('embedded-opentype'), url('<%= font_path('fontawesome-webfont.woff2') %>?v=<%= v %>') format('woff2'), url('<%= font_path('fontawesome-webfont.woff') %>?v=<%= v %>') format('woff'), url('<%= font_path('fontawesome-webfont.ttf') %>?v=<%= v %>') format('truetype'), url('<%= font_path('fontawesome-webfont.svg') %>?v=<%= v %>#fontawesomeregular') format('svg');
14
+ font-weight: normal;
15
+ font-style: normal;
16
+ }
17
+ .fa {
18
+ display: inline-block;
19
+ font: normal normal normal 14px/1 FontAwesome;
20
+ font-size: inherit;
21
+ text-rendering: auto;
22
+ -webkit-font-smoothing: antialiased;
23
+ -moz-osx-font-smoothing: grayscale;
24
+ transform: translate(0, 0);
25
+ }
26
+ /* makes the font 33% larger relative to the icon container */
27
+ .fa-lg {
28
+ font-size: 1.33333333em;
29
+ line-height: 0.75em;
30
+ vertical-align: -15%;
31
+ }
32
+ .fa-2x {
33
+ font-size: 2em;
34
+ }
35
+ .fa-3x {
36
+ font-size: 3em;
37
+ }
38
+ .fa-4x {
39
+ font-size: 4em;
40
+ }
41
+ .fa-5x {
42
+ font-size: 5em;
43
+ }
44
+ .fa-fw {
45
+ width: 1.28571429em;
46
+ text-align: center;
47
+ }
48
+ .fa-ul {
49
+ padding-left: 0;
50
+ margin-left: 2.14285714em;
51
+ list-style-type: none;
52
+ }
53
+ .fa-ul > li {
54
+ position: relative;
55
+ }
56
+ .fa-li {
57
+ position: absolute;
58
+ left: -2.14285714em;
59
+ width: 2.14285714em;
60
+ top: 0.14285714em;
61
+ text-align: center;
62
+ }
63
+ .fa-li.fa-lg {
64
+ left: -1.85714286em;
65
+ }
66
+ .fa-border {
67
+ padding: .2em .25em .15em;
68
+ border: solid 0.08em #eeeeee;
69
+ border-radius: .1em;
70
+ }
71
+ .pull-right {
72
+ float: right;
73
+ }
74
+ .pull-left {
75
+ float: left;
76
+ }
77
+ .fa.pull-left {
78
+ margin-right: .3em;
79
+ }
80
+ .fa.pull-right {
81
+ margin-left: .3em;
82
+ }
83
+ .fa-spin {
84
+ -webkit-animation: fa-spin 2s infinite linear;
85
+ animation: fa-spin 2s infinite linear;
86
+ }
87
+ .fa-pulse {
88
+ -webkit-animation: fa-spin 1s infinite steps(8);
89
+ animation: fa-spin 1s infinite steps(8);
90
+ }
91
+ @-webkit-keyframes fa-spin {
92
+ 0% {
93
+ -webkit-transform: rotate(0deg);
94
+ transform: rotate(0deg);
95
+ }
96
+ 100% {
97
+ -webkit-transform: rotate(359deg);
98
+ transform: rotate(359deg);
99
+ }
100
+ }
101
+ @keyframes fa-spin {
102
+ 0% {
103
+ -webkit-transform: rotate(0deg);
104
+ transform: rotate(0deg);
105
+ }
106
+ 100% {
107
+ -webkit-transform: rotate(359deg);
108
+ transform: rotate(359deg);
109
+ }
110
+ }
111
+ .fa-rotate-90 {
112
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
113
+ -webkit-transform: rotate(90deg);
114
+ -ms-transform: rotate(90deg);
115
+ transform: rotate(90deg);
116
+ }
117
+ .fa-rotate-180 {
118
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
119
+ -webkit-transform: rotate(180deg);
120
+ -ms-transform: rotate(180deg);
121
+ transform: rotate(180deg);
122
+ }
123
+ .fa-rotate-270 {
124
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
125
+ -webkit-transform: rotate(270deg);
126
+ -ms-transform: rotate(270deg);
127
+ transform: rotate(270deg);
128
+ }
129
+ .fa-flip-horizontal {
130
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
131
+ -webkit-transform: scale(-1, 1);
132
+ -ms-transform: scale(-1, 1);
133
+ transform: scale(-1, 1);
134
+ }
135
+ .fa-flip-vertical {
136
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
137
+ -webkit-transform: scale(1, -1);
138
+ -ms-transform: scale(1, -1);
139
+ transform: scale(1, -1);
140
+ }
141
+ :root .fa-rotate-90,
142
+ :root .fa-rotate-180,
143
+ :root .fa-rotate-270,
144
+ :root .fa-flip-horizontal,
145
+ :root .fa-flip-vertical {
146
+ filter: none;
147
+ }
148
+ .fa-stack {
149
+ position: relative;
150
+ display: inline-block;
151
+ width: 2em;
152
+ height: 2em;
153
+ line-height: 2em;
154
+ vertical-align: middle;
155
+ }
156
+ .fa-stack-1x,
157
+ .fa-stack-2x {
158
+ position: absolute;
159
+ left: 0;
160
+ width: 100%;
161
+ text-align: center;
162
+ }
163
+ .fa-stack-1x {
164
+ line-height: inherit;
165
+ }
166
+ .fa-stack-2x {
167
+ font-size: 2em;
168
+ }
169
+ .fa-inverse {
170
+ color: #ffffff;
171
+ }
172
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
173
+ readers do not read off random characters that represent icons */
174
+ .fa-glass:before {
175
+ content: "\f000";
176
+ }
177
+ .fa-music:before {
178
+ content: "\f001";
179
+ }
180
+ .fa-search:before {
181
+ content: "\f002";
182
+ }
183
+ .fa-envelope-o:before {
184
+ content: "\f003";
185
+ }
186
+ .fa-heart:before {
187
+ content: "\f004";
188
+ }
189
+ .fa-star:before {
190
+ content: "\f005";
191
+ }
192
+ .fa-star-o:before {
193
+ content: "\f006";
194
+ }
195
+ .fa-user:before {
196
+ content: "\f007";
197
+ }
198
+ .fa-film:before {
199
+ content: "\f008";
200
+ }
201
+ .fa-th-large:before {
202
+ content: "\f009";
203
+ }
204
+ .fa-th:before {
205
+ content: "\f00a";
206
+ }
207
+ .fa-th-list:before {
208
+ content: "\f00b";
209
+ }
210
+ .fa-check:before {
211
+ content: "\f00c";
212
+ }
213
+ .fa-remove:before,
214
+ .fa-close:before,
215
+ .fa-times:before {
216
+ content: "\f00d";
217
+ }
218
+ .fa-search-plus:before {
219
+ content: "\f00e";
220
+ }
221
+ .fa-search-minus:before {
222
+ content: "\f010";
223
+ }
224
+ .fa-power-off:before {
225
+ content: "\f011";
226
+ }
227
+ .fa-signal:before {
228
+ content: "\f012";
229
+ }
230
+ .fa-gear:before,
231
+ .fa-cog:before {
232
+ content: "\f013";
233
+ }
234
+ .fa-trash-o:before {
235
+ content: "\f014";
236
+ }
237
+ .fa-home:before {
238
+ content: "\f015";
239
+ }
240
+ .fa-file-o:before {
241
+ content: "\f016";
242
+ }
243
+ .fa-clock-o:before {
244
+ content: "\f017";
245
+ }
246
+ .fa-road:before {
247
+ content: "\f018";
248
+ }
249
+ .fa-download:before {
250
+ content: "\f019";
251
+ }
252
+ .fa-arrow-circle-o-down:before {
253
+ content: "\f01a";
254
+ }
255
+ .fa-arrow-circle-o-up:before {
256
+ content: "\f01b";
257
+ }
258
+ .fa-inbox:before {
259
+ content: "\f01c";
260
+ }
261
+ .fa-play-circle-o:before {
262
+ content: "\f01d";
263
+ }
264
+ .fa-rotate-right:before,
265
+ .fa-repeat:before {
266
+ content: "\f01e";
267
+ }
268
+ .fa-refresh:before {
269
+ content: "\f021";
270
+ }
271
+ .fa-list-alt:before {
272
+ content: "\f022";
273
+ }
274
+ .fa-lock:before {
275
+ content: "\f023";
276
+ }
277
+ .fa-flag:before {
278
+ content: "\f024";
279
+ }
280
+ .fa-headphones:before {
281
+ content: "\f025";
282
+ }
283
+ .fa-volume-off:before {
284
+ content: "\f026";
285
+ }
286
+ .fa-volume-down:before {
287
+ content: "\f027";
288
+ }
289
+ .fa-volume-up:before {
290
+ content: "\f028";
291
+ }
292
+ .fa-qrcode:before {
293
+ content: "\f029";
294
+ }
295
+ .fa-barcode:before {
296
+ content: "\f02a";
297
+ }
298
+ .fa-tag:before {
299
+ content: "\f02b";
300
+ }
301
+ .fa-tags:before {
302
+ content: "\f02c";
303
+ }
304
+ .fa-book:before {
305
+ content: "\f02d";
306
+ }
307
+ .fa-bookmark:before {
308
+ content: "\f02e";
309
+ }
310
+ .fa-print:before {
311
+ content: "\f02f";
312
+ }
313
+ .fa-camera:before {
314
+ content: "\f030";
315
+ }
316
+ .fa-font:before {
317
+ content: "\f031";
318
+ }
319
+ .fa-bold:before {
320
+ content: "\f032";
321
+ }
322
+ .fa-italic:before {
323
+ content: "\f033";
324
+ }
325
+ .fa-text-height:before {
326
+ content: "\f034";
327
+ }
328
+ .fa-text-width:before {
329
+ content: "\f035";
330
+ }
331
+ .fa-align-left:before {
332
+ content: "\f036";
333
+ }
334
+ .fa-align-center:before {
335
+ content: "\f037";
336
+ }
337
+ .fa-align-right:before {
338
+ content: "\f038";
339
+ }
340
+ .fa-align-justify:before {
341
+ content: "\f039";
342
+ }
343
+ .fa-list:before {
344
+ content: "\f03a";
345
+ }
346
+ .fa-dedent:before,
347
+ .fa-outdent:before {
348
+ content: "\f03b";
349
+ }
350
+ .fa-indent:before {
351
+ content: "\f03c";
352
+ }
353
+ .fa-video-camera:before {
354
+ content: "\f03d";
355
+ }
356
+ .fa-photo:before,
357
+ .fa-image:before,
358
+ .fa-picture-o:before {
359
+ content: "\f03e";
360
+ }
361
+ .fa-pencil:before {
362
+ content: "\f040";
363
+ }
364
+ .fa-map-marker:before {
365
+ content: "\f041";
366
+ }
367
+ .fa-adjust:before {
368
+ content: "\f042";
369
+ }
370
+ .fa-tint:before {
371
+ content: "\f043";
372
+ }
373
+ .fa-edit:before,
374
+ .fa-pencil-square-o:before {
375
+ content: "\f044";
376
+ }
377
+ .fa-share-square-o:before {
378
+ content: "\f045";
379
+ }
380
+ .fa-check-square-o:before {
381
+ content: "\f046";
382
+ }
383
+ .fa-arrows:before {
384
+ content: "\f047";
385
+ }
386
+ .fa-step-backward:before {
387
+ content: "\f048";
388
+ }
389
+ .fa-fast-backward:before {
390
+ content: "\f049";
391
+ }
392
+ .fa-backward:before {
393
+ content: "\f04a";
394
+ }
395
+ .fa-play:before {
396
+ content: "\f04b";
397
+ }
398
+ .fa-pause:before {
399
+ content: "\f04c";
400
+ }
401
+ .fa-stop:before {
402
+ content: "\f04d";
403
+ }
404
+ .fa-forward:before {
405
+ content: "\f04e";
406
+ }
407
+ .fa-fast-forward:before {
408
+ content: "\f050";
409
+ }
410
+ .fa-step-forward:before {
411
+ content: "\f051";
412
+ }
413
+ .fa-eject:before {
414
+ content: "\f052";
415
+ }
416
+ .fa-chevron-left:before {
417
+ content: "\f053";
418
+ }
419
+ .fa-chevron-right:before {
420
+ content: "\f054";
421
+ }
422
+ .fa-plus-circle:before {
423
+ content: "\f055";
424
+ }
425
+ .fa-minus-circle:before {
426
+ content: "\f056";
427
+ }
428
+ .fa-times-circle:before {
429
+ content: "\f057";
430
+ }
431
+ .fa-check-circle:before {
432
+ content: "\f058";
433
+ }
434
+ .fa-question-circle:before {
435
+ content: "\f059";
436
+ }
437
+ .fa-info-circle:before {
438
+ content: "\f05a";
439
+ }
440
+ .fa-crosshairs:before {
441
+ content: "\f05b";
442
+ }
443
+ .fa-times-circle-o:before {
444
+ content: "\f05c";
445
+ }
446
+ .fa-check-circle-o:before {
447
+ content: "\f05d";
448
+ }
449
+ .fa-ban:before {
450
+ content: "\f05e";
451
+ }
452
+ .fa-arrow-left:before {
453
+ content: "\f060";
454
+ }
455
+ .fa-arrow-right:before {
456
+ content: "\f061";
457
+ }
458
+ .fa-arrow-up:before {
459
+ content: "\f062";
460
+ }
461
+ .fa-arrow-down:before {
462
+ content: "\f063";
463
+ }
464
+ .fa-mail-forward:before,
465
+ .fa-share:before {
466
+ content: "\f064";
467
+ }
468
+ .fa-expand:before {
469
+ content: "\f065";
470
+ }
471
+ .fa-compress:before {
472
+ content: "\f066";
473
+ }
474
+ .fa-plus:before {
475
+ content: "\f067";
476
+ }
477
+ .fa-minus:before {
478
+ content: "\f068";
479
+ }
480
+ .fa-asterisk:before {
481
+ content: "\f069";
482
+ }
483
+ .fa-exclamation-circle:before {
484
+ content: "\f06a";
485
+ }
486
+ .fa-gift:before {
487
+ content: "\f06b";
488
+ }
489
+ .fa-leaf:before {
490
+ content: "\f06c";
491
+ }
492
+ .fa-fire:before {
493
+ content: "\f06d";
494
+ }
495
+ .fa-eye:before {
496
+ content: "\f06e";
497
+ }
498
+ .fa-eye-slash:before {
499
+ content: "\f070";
500
+ }
501
+ .fa-warning:before,
502
+ .fa-exclamation-triangle:before {
503
+ content: "\f071";
504
+ }
505
+ .fa-plane:before {
506
+ content: "\f072";
507
+ }
508
+ .fa-calendar:before {
509
+ content: "\f073";
510
+ }
511
+ .fa-random:before {
512
+ content: "\f074";
513
+ }
514
+ .fa-comment:before {
515
+ content: "\f075";
516
+ }
517
+ .fa-magnet:before {
518
+ content: "\f076";
519
+ }
520
+ .fa-chevron-up:before {
521
+ content: "\f077";
522
+ }
523
+ .fa-chevron-down:before {
524
+ content: "\f078";
525
+ }
526
+ .fa-retweet:before {
527
+ content: "\f079";
528
+ }
529
+ .fa-shopping-cart:before {
530
+ content: "\f07a";
531
+ }
532
+ .fa-folder:before {
533
+ content: "\f07b";
534
+ }
535
+ .fa-folder-open:before {
536
+ content: "\f07c";
537
+ }
538
+ .fa-arrows-v:before {
539
+ content: "\f07d";
540
+ }
541
+ .fa-arrows-h:before {
542
+ content: "\f07e";
543
+ }
544
+ .fa-bar-chart-o:before,
545
+ .fa-bar-chart:before {
546
+ content: "\f080";
547
+ }
548
+ .fa-twitter-square:before {
549
+ content: "\f081";
550
+ }
551
+ .fa-facebook-square:before {
552
+ content: "\f082";
553
+ }
554
+ .fa-camera-retro:before {
555
+ content: "\f083";
556
+ }
557
+ .fa-key:before {
558
+ content: "\f084";
559
+ }
560
+ .fa-gears:before,
561
+ .fa-cogs:before {
562
+ content: "\f085";
563
+ }
564
+ .fa-comments:before {
565
+ content: "\f086";
566
+ }
567
+ .fa-thumbs-o-up:before {
568
+ content: "\f087";
569
+ }
570
+ .fa-thumbs-o-down:before {
571
+ content: "\f088";
572
+ }
573
+ .fa-star-half:before {
574
+ content: "\f089";
575
+ }
576
+ .fa-heart-o:before {
577
+ content: "\f08a";
578
+ }
579
+ .fa-sign-out:before {
580
+ content: "\f08b";
581
+ }
582
+ .fa-linkedin-square:before {
583
+ content: "\f08c";
584
+ }
585
+ .fa-thumb-tack:before {
586
+ content: "\f08d";
587
+ }
588
+ .fa-external-link:before {
589
+ content: "\f08e";
590
+ }
591
+ .fa-sign-in:before {
592
+ content: "\f090";
593
+ }
594
+ .fa-trophy:before {
595
+ content: "\f091";
596
+ }
597
+ .fa-github-square:before {
598
+ content: "\f092";
599
+ }
600
+ .fa-upload:before {
601
+ content: "\f093";
602
+ }
603
+ .fa-lemon-o:before {
604
+ content: "\f094";
605
+ }
606
+ .fa-phone:before {
607
+ content: "\f095";
608
+ }
609
+ .fa-square-o:before {
610
+ content: "\f096";
611
+ }
612
+ .fa-bookmark-o:before {
613
+ content: "\f097";
614
+ }
615
+ .fa-phone-square:before {
616
+ content: "\f098";
617
+ }
618
+ .fa-twitter:before {
619
+ content: "\f099";
620
+ }
621
+ .fa-facebook-f:before,
622
+ .fa-facebook:before {
623
+ content: "\f09a";
624
+ }
625
+ .fa-github:before {
626
+ content: "\f09b";
627
+ }
628
+ .fa-unlock:before {
629
+ content: "\f09c";
630
+ }
631
+ .fa-credit-card:before {
632
+ content: "\f09d";
633
+ }
634
+ .fa-rss:before {
635
+ content: "\f09e";
636
+ }
637
+ .fa-hdd-o:before {
638
+ content: "\f0a0";
639
+ }
640
+ .fa-bullhorn:before {
641
+ content: "\f0a1";
642
+ }
643
+ .fa-bell:before {
644
+ content: "\f0f3";
645
+ }
646
+ .fa-certificate:before {
647
+ content: "\f0a3";
648
+ }
649
+ .fa-hand-o-right:before {
650
+ content: "\f0a4";
651
+ }
652
+ .fa-hand-o-left:before {
653
+ content: "\f0a5";
654
+ }
655
+ .fa-hand-o-up:before {
656
+ content: "\f0a6";
657
+ }
658
+ .fa-hand-o-down:before {
659
+ content: "\f0a7";
660
+ }
661
+ .fa-arrow-circle-left:before {
662
+ content: "\f0a8";
663
+ }
664
+ .fa-arrow-circle-right:before {
665
+ content: "\f0a9";
666
+ }
667
+ .fa-arrow-circle-up:before {
668
+ content: "\f0aa";
669
+ }
670
+ .fa-arrow-circle-down:before {
671
+ content: "\f0ab";
672
+ }
673
+ .fa-globe:before {
674
+ content: "\f0ac";
675
+ }
676
+ .fa-wrench:before {
677
+ content: "\f0ad";
678
+ }
679
+ .fa-tasks:before {
680
+ content: "\f0ae";
681
+ }
682
+ .fa-filter:before {
683
+ content: "\f0b0";
684
+ }
685
+ .fa-briefcase:before {
686
+ content: "\f0b1";
687
+ }
688
+ .fa-arrows-alt:before {
689
+ content: "\f0b2";
690
+ }
691
+ .fa-group:before,
692
+ .fa-users:before {
693
+ content: "\f0c0";
694
+ }
695
+ .fa-chain:before,
696
+ .fa-link:before {
697
+ content: "\f0c1";
698
+ }
699
+ .fa-cloud:before {
700
+ content: "\f0c2";
701
+ }
702
+ .fa-flask:before {
703
+ content: "\f0c3";
704
+ }
705
+ .fa-cut:before,
706
+ .fa-scissors:before {
707
+ content: "\f0c4";
708
+ }
709
+ .fa-copy:before,
710
+ .fa-files-o:before {
711
+ content: "\f0c5";
712
+ }
713
+ .fa-paperclip:before {
714
+ content: "\f0c6";
715
+ }
716
+ .fa-save:before,
717
+ .fa-floppy-o:before {
718
+ content: "\f0c7";
719
+ }
720
+ .fa-square:before {
721
+ content: "\f0c8";
722
+ }
723
+ .fa-navicon:before,
724
+ .fa-reorder:before,
725
+ .fa-bars:before {
726
+ content: "\f0c9";
727
+ }
728
+ .fa-list-ul:before {
729
+ content: "\f0ca";
730
+ }
731
+ .fa-list-ol:before {
732
+ content: "\f0cb";
733
+ }
734
+ .fa-strikethrough:before {
735
+ content: "\f0cc";
736
+ }
737
+ .fa-underline:before {
738
+ content: "\f0cd";
739
+ }
740
+ .fa-table:before {
741
+ content: "\f0ce";
742
+ }
743
+ .fa-magic:before {
744
+ content: "\f0d0";
745
+ }
746
+ .fa-truck:before {
747
+ content: "\f0d1";
748
+ }
749
+ .fa-pinterest:before {
750
+ content: "\f0d2";
751
+ }
752
+ .fa-pinterest-square:before {
753
+ content: "\f0d3";
754
+ }
755
+ .fa-google-plus-square:before {
756
+ content: "\f0d4";
757
+ }
758
+ .fa-google-plus:before {
759
+ content: "\f0d5";
760
+ }
761
+ .fa-money:before {
762
+ content: "\f0d6";
763
+ }
764
+ .fa-caret-down:before {
765
+ content: "\f0d7";
766
+ }
767
+ .fa-caret-up:before {
768
+ content: "\f0d8";
769
+ }
770
+ .fa-caret-left:before {
771
+ content: "\f0d9";
772
+ }
773
+ .fa-caret-right:before {
774
+ content: "\f0da";
775
+ }
776
+ .fa-columns:before {
777
+ content: "\f0db";
778
+ }
779
+ .fa-unsorted:before,
780
+ .fa-sort:before {
781
+ content: "\f0dc";
782
+ }
783
+ .fa-sort-down:before,
784
+ .fa-sort-desc:before {
785
+ content: "\f0dd";
786
+ }
787
+ .fa-sort-up:before,
788
+ .fa-sort-asc:before {
789
+ content: "\f0de";
790
+ }
791
+ .fa-envelope:before {
792
+ content: "\f0e0";
793
+ }
794
+ .fa-linkedin:before {
795
+ content: "\f0e1";
796
+ }
797
+ .fa-rotate-left:before,
798
+ .fa-undo:before {
799
+ content: "\f0e2";
800
+ }
801
+ .fa-legal:before,
802
+ .fa-gavel:before {
803
+ content: "\f0e3";
804
+ }
805
+ .fa-dashboard:before,
806
+ .fa-tachometer:before {
807
+ content: "\f0e4";
808
+ }
809
+ .fa-comment-o:before {
810
+ content: "\f0e5";
811
+ }
812
+ .fa-comments-o:before {
813
+ content: "\f0e6";
814
+ }
815
+ .fa-flash:before,
816
+ .fa-bolt:before {
817
+ content: "\f0e7";
818
+ }
819
+ .fa-sitemap:before {
820
+ content: "\f0e8";
821
+ }
822
+ .fa-umbrella:before {
823
+ content: "\f0e9";
824
+ }
825
+ .fa-paste:before,
826
+ .fa-clipboard:before {
827
+ content: "\f0ea";
828
+ }
829
+ .fa-lightbulb-o:before {
830
+ content: "\f0eb";
831
+ }
832
+ .fa-exchange:before {
833
+ content: "\f0ec";
834
+ }
835
+ .fa-cloud-download:before {
836
+ content: "\f0ed";
837
+ }
838
+ .fa-cloud-upload:before {
839
+ content: "\f0ee";
840
+ }
841
+ .fa-user-md:before {
842
+ content: "\f0f0";
843
+ }
844
+ .fa-stethoscope:before {
845
+ content: "\f0f1";
846
+ }
847
+ .fa-suitcase:before {
848
+ content: "\f0f2";
849
+ }
850
+ .fa-bell-o:before {
851
+ content: "\f0a2";
852
+ }
853
+ .fa-coffee:before {
854
+ content: "\f0f4";
855
+ }
856
+ .fa-cutlery:before {
857
+ content: "\f0f5";
858
+ }
859
+ .fa-file-text-o:before {
860
+ content: "\f0f6";
861
+ }
862
+ .fa-building-o:before {
863
+ content: "\f0f7";
864
+ }
865
+ .fa-hospital-o:before {
866
+ content: "\f0f8";
867
+ }
868
+ .fa-ambulance:before {
869
+ content: "\f0f9";
870
+ }
871
+ .fa-medkit:before {
872
+ content: "\f0fa";
873
+ }
874
+ .fa-fighter-jet:before {
875
+ content: "\f0fb";
876
+ }
877
+ .fa-beer:before {
878
+ content: "\f0fc";
879
+ }
880
+ .fa-h-square:before {
881
+ content: "\f0fd";
882
+ }
883
+ .fa-plus-square:before {
884
+ content: "\f0fe";
885
+ }
886
+ .fa-angle-double-left:before {
887
+ content: "\f100";
888
+ }
889
+ .fa-angle-double-right:before {
890
+ content: "\f101";
891
+ }
892
+ .fa-angle-double-up:before {
893
+ content: "\f102";
894
+ }
895
+ .fa-angle-double-down:before {
896
+ content: "\f103";
897
+ }
898
+ .fa-angle-left:before {
899
+ content: "\f104";
900
+ }
901
+ .fa-angle-right:before {
902
+ content: "\f105";
903
+ }
904
+ .fa-angle-up:before {
905
+ content: "\f106";
906
+ }
907
+ .fa-angle-down:before {
908
+ content: "\f107";
909
+ }
910
+ .fa-desktop:before {
911
+ content: "\f108";
912
+ }
913
+ .fa-laptop:before {
914
+ content: "\f109";
915
+ }
916
+ .fa-tablet:before {
917
+ content: "\f10a";
918
+ }
919
+ .fa-mobile-phone:before,
920
+ .fa-mobile:before {
921
+ content: "\f10b";
922
+ }
923
+ .fa-circle-o:before {
924
+ content: "\f10c";
925
+ }
926
+ .fa-quote-left:before {
927
+ content: "\f10d";
928
+ }
929
+ .fa-quote-right:before {
930
+ content: "\f10e";
931
+ }
932
+ .fa-spinner:before {
933
+ content: "\f110";
934
+ }
935
+ .fa-circle:before {
936
+ content: "\f111";
937
+ }
938
+ .fa-mail-reply:before,
939
+ .fa-reply:before {
940
+ content: "\f112";
941
+ }
942
+ .fa-github-alt:before {
943
+ content: "\f113";
944
+ }
945
+ .fa-folder-o:before {
946
+ content: "\f114";
947
+ }
948
+ .fa-folder-open-o:before {
949
+ content: "\f115";
950
+ }
951
+ .fa-smile-o:before {
952
+ content: "\f118";
953
+ }
954
+ .fa-frown-o:before {
955
+ content: "\f119";
956
+ }
957
+ .fa-meh-o:before {
958
+ content: "\f11a";
959
+ }
960
+ .fa-gamepad:before {
961
+ content: "\f11b";
962
+ }
963
+ .fa-keyboard-o:before {
964
+ content: "\f11c";
965
+ }
966
+ .fa-flag-o:before {
967
+ content: "\f11d";
968
+ }
969
+ .fa-flag-checkered:before {
970
+ content: "\f11e";
971
+ }
972
+ .fa-terminal:before {
973
+ content: "\f120";
974
+ }
975
+ .fa-code:before {
976
+ content: "\f121";
977
+ }
978
+ .fa-mail-reply-all:before,
979
+ .fa-reply-all:before {
980
+ content: "\f122";
981
+ }
982
+ .fa-star-half-empty:before,
983
+ .fa-star-half-full:before,
984
+ .fa-star-half-o:before {
985
+ content: "\f123";
986
+ }
987
+ .fa-location-arrow:before {
988
+ content: "\f124";
989
+ }
990
+ .fa-crop:before {
991
+ content: "\f125";
992
+ }
993
+ .fa-code-fork:before {
994
+ content: "\f126";
995
+ }
996
+ .fa-unlink:before,
997
+ .fa-chain-broken:before {
998
+ content: "\f127";
999
+ }
1000
+ .fa-question:before {
1001
+ content: "\f128";
1002
+ }
1003
+ .fa-info:before {
1004
+ content: "\f129";
1005
+ }
1006
+ .fa-exclamation:before {
1007
+ content: "\f12a";
1008
+ }
1009
+ .fa-superscript:before {
1010
+ content: "\f12b";
1011
+ }
1012
+ .fa-subscript:before {
1013
+ content: "\f12c";
1014
+ }
1015
+ .fa-eraser:before {
1016
+ content: "\f12d";
1017
+ }
1018
+ .fa-puzzle-piece:before {
1019
+ content: "\f12e";
1020
+ }
1021
+ .fa-microphone:before {
1022
+ content: "\f130";
1023
+ }
1024
+ .fa-microphone-slash:before {
1025
+ content: "\f131";
1026
+ }
1027
+ .fa-shield:before {
1028
+ content: "\f132";
1029
+ }
1030
+ .fa-calendar-o:before {
1031
+ content: "\f133";
1032
+ }
1033
+ .fa-fire-extinguisher:before {
1034
+ content: "\f134";
1035
+ }
1036
+ .fa-rocket:before {
1037
+ content: "\f135";
1038
+ }
1039
+ .fa-maxcdn:before {
1040
+ content: "\f136";
1041
+ }
1042
+ .fa-chevron-circle-left:before {
1043
+ content: "\f137";
1044
+ }
1045
+ .fa-chevron-circle-right:before {
1046
+ content: "\f138";
1047
+ }
1048
+ .fa-chevron-circle-up:before {
1049
+ content: "\f139";
1050
+ }
1051
+ .fa-chevron-circle-down:before {
1052
+ content: "\f13a";
1053
+ }
1054
+ .fa-html5:before {
1055
+ content: "\f13b";
1056
+ }
1057
+ .fa-css3:before {
1058
+ content: "\f13c";
1059
+ }
1060
+ .fa-anchor:before {
1061
+ content: "\f13d";
1062
+ }
1063
+ .fa-unlock-alt:before {
1064
+ content: "\f13e";
1065
+ }
1066
+ .fa-bullseye:before {
1067
+ content: "\f140";
1068
+ }
1069
+ .fa-ellipsis-h:before {
1070
+ content: "\f141";
1071
+ }
1072
+ .fa-ellipsis-v:before {
1073
+ content: "\f142";
1074
+ }
1075
+ .fa-rss-square:before {
1076
+ content: "\f143";
1077
+ }
1078
+ .fa-play-circle:before {
1079
+ content: "\f144";
1080
+ }
1081
+ .fa-ticket:before {
1082
+ content: "\f145";
1083
+ }
1084
+ .fa-minus-square:before {
1085
+ content: "\f146";
1086
+ }
1087
+ .fa-minus-square-o:before {
1088
+ content: "\f147";
1089
+ }
1090
+ .fa-level-up:before {
1091
+ content: "\f148";
1092
+ }
1093
+ .fa-level-down:before {
1094
+ content: "\f149";
1095
+ }
1096
+ .fa-check-square:before {
1097
+ content: "\f14a";
1098
+ }
1099
+ .fa-pencil-square:before {
1100
+ content: "\f14b";
1101
+ }
1102
+ .fa-external-link-square:before {
1103
+ content: "\f14c";
1104
+ }
1105
+ .fa-share-square:before {
1106
+ content: "\f14d";
1107
+ }
1108
+ .fa-compass:before {
1109
+ content: "\f14e";
1110
+ }
1111
+ .fa-toggle-down:before,
1112
+ .fa-caret-square-o-down:before {
1113
+ content: "\f150";
1114
+ }
1115
+ .fa-toggle-up:before,
1116
+ .fa-caret-square-o-up:before {
1117
+ content: "\f151";
1118
+ }
1119
+ .fa-toggle-right:before,
1120
+ .fa-caret-square-o-right:before {
1121
+ content: "\f152";
1122
+ }
1123
+ .fa-euro:before,
1124
+ .fa-eur:before {
1125
+ content: "\f153";
1126
+ }
1127
+ .fa-gbp:before {
1128
+ content: "\f154";
1129
+ }
1130
+ .fa-dollar:before,
1131
+ .fa-usd:before {
1132
+ content: "\f155";
1133
+ }
1134
+ .fa-rupee:before,
1135
+ .fa-inr:before {
1136
+ content: "\f156";
1137
+ }
1138
+ .fa-cny:before,
1139
+ .fa-rmb:before,
1140
+ .fa-yen:before,
1141
+ .fa-jpy:before {
1142
+ content: "\f157";
1143
+ }
1144
+ .fa-ruble:before,
1145
+ .fa-rouble:before,
1146
+ .fa-rub:before {
1147
+ content: "\f158";
1148
+ }
1149
+ .fa-won:before,
1150
+ .fa-krw:before {
1151
+ content: "\f159";
1152
+ }
1153
+ .fa-bitcoin:before,
1154
+ .fa-btc:before {
1155
+ content: "\f15a";
1156
+ }
1157
+ .fa-file:before {
1158
+ content: "\f15b";
1159
+ }
1160
+ .fa-file-text:before {
1161
+ content: "\f15c";
1162
+ }
1163
+ .fa-sort-alpha-asc:before {
1164
+ content: "\f15d";
1165
+ }
1166
+ .fa-sort-alpha-desc:before {
1167
+ content: "\f15e";
1168
+ }
1169
+ .fa-sort-amount-asc:before {
1170
+ content: "\f160";
1171
+ }
1172
+ .fa-sort-amount-desc:before {
1173
+ content: "\f161";
1174
+ }
1175
+ .fa-sort-numeric-asc:before {
1176
+ content: "\f162";
1177
+ }
1178
+ .fa-sort-numeric-desc:before {
1179
+ content: "\f163";
1180
+ }
1181
+ .fa-thumbs-up:before {
1182
+ content: "\f164";
1183
+ }
1184
+ .fa-thumbs-down:before {
1185
+ content: "\f165";
1186
+ }
1187
+ .fa-youtube-square:before {
1188
+ content: "\f166";
1189
+ }
1190
+ .fa-youtube:before {
1191
+ content: "\f167";
1192
+ }
1193
+ .fa-xing:before {
1194
+ content: "\f168";
1195
+ }
1196
+ .fa-xing-square:before {
1197
+ content: "\f169";
1198
+ }
1199
+ .fa-youtube-play:before {
1200
+ content: "\f16a";
1201
+ }
1202
+ .fa-dropbox:before {
1203
+ content: "\f16b";
1204
+ }
1205
+ .fa-stack-overflow:before {
1206
+ content: "\f16c";
1207
+ }
1208
+ .fa-instagram:before {
1209
+ content: "\f16d";
1210
+ }
1211
+ .fa-flickr:before {
1212
+ content: "\f16e";
1213
+ }
1214
+ .fa-adn:before {
1215
+ content: "\f170";
1216
+ }
1217
+ .fa-bitbucket:before {
1218
+ content: "\f171";
1219
+ }
1220
+ .fa-bitbucket-square:before {
1221
+ content: "\f172";
1222
+ }
1223
+ .fa-tumblr:before {
1224
+ content: "\f173";
1225
+ }
1226
+ .fa-tumblr-square:before {
1227
+ content: "\f174";
1228
+ }
1229
+ .fa-long-arrow-down:before {
1230
+ content: "\f175";
1231
+ }
1232
+ .fa-long-arrow-up:before {
1233
+ content: "\f176";
1234
+ }
1235
+ .fa-long-arrow-left:before {
1236
+ content: "\f177";
1237
+ }
1238
+ .fa-long-arrow-right:before {
1239
+ content: "\f178";
1240
+ }
1241
+ .fa-apple:before {
1242
+ content: "\f179";
1243
+ }
1244
+ .fa-windows:before {
1245
+ content: "\f17a";
1246
+ }
1247
+ .fa-android:before {
1248
+ content: "\f17b";
1249
+ }
1250
+ .fa-linux:before {
1251
+ content: "\f17c";
1252
+ }
1253
+ .fa-dribbble:before {
1254
+ content: "\f17d";
1255
+ }
1256
+ .fa-skype:before {
1257
+ content: "\f17e";
1258
+ }
1259
+ .fa-foursquare:before {
1260
+ content: "\f180";
1261
+ }
1262
+ .fa-trello:before {
1263
+ content: "\f181";
1264
+ }
1265
+ .fa-female:before {
1266
+ content: "\f182";
1267
+ }
1268
+ .fa-male:before {
1269
+ content: "\f183";
1270
+ }
1271
+ .fa-gittip:before,
1272
+ .fa-gratipay:before {
1273
+ content: "\f184";
1274
+ }
1275
+ .fa-sun-o:before {
1276
+ content: "\f185";
1277
+ }
1278
+ .fa-moon-o:before {
1279
+ content: "\f186";
1280
+ }
1281
+ .fa-archive:before {
1282
+ content: "\f187";
1283
+ }
1284
+ .fa-bug:before {
1285
+ content: "\f188";
1286
+ }
1287
+ .fa-vk:before {
1288
+ content: "\f189";
1289
+ }
1290
+ .fa-weibo:before {
1291
+ content: "\f18a";
1292
+ }
1293
+ .fa-renren:before {
1294
+ content: "\f18b";
1295
+ }
1296
+ .fa-pagelines:before {
1297
+ content: "\f18c";
1298
+ }
1299
+ .fa-stack-exchange:before {
1300
+ content: "\f18d";
1301
+ }
1302
+ .fa-arrow-circle-o-right:before {
1303
+ content: "\f18e";
1304
+ }
1305
+ .fa-arrow-circle-o-left:before {
1306
+ content: "\f190";
1307
+ }
1308
+ .fa-toggle-left:before,
1309
+ .fa-caret-square-o-left:before {
1310
+ content: "\f191";
1311
+ }
1312
+ .fa-dot-circle-o:before {
1313
+ content: "\f192";
1314
+ }
1315
+ .fa-wheelchair:before {
1316
+ content: "\f193";
1317
+ }
1318
+ .fa-vimeo-square:before {
1319
+ content: "\f194";
1320
+ }
1321
+ .fa-turkish-lira:before,
1322
+ .fa-try:before {
1323
+ content: "\f195";
1324
+ }
1325
+ .fa-plus-square-o:before {
1326
+ content: "\f196";
1327
+ }
1328
+ .fa-space-shuttle:before {
1329
+ content: "\f197";
1330
+ }
1331
+ .fa-slack:before {
1332
+ content: "\f198";
1333
+ }
1334
+ .fa-envelope-square:before {
1335
+ content: "\f199";
1336
+ }
1337
+ .fa-wordpress:before {
1338
+ content: "\f19a";
1339
+ }
1340
+ .fa-openid:before {
1341
+ content: "\f19b";
1342
+ }
1343
+ .fa-institution:before,
1344
+ .fa-bank:before,
1345
+ .fa-university:before {
1346
+ content: "\f19c";
1347
+ }
1348
+ .fa-mortar-board:before,
1349
+ .fa-graduation-cap:before {
1350
+ content: "\f19d";
1351
+ }
1352
+ .fa-yahoo:before {
1353
+ content: "\f19e";
1354
+ }
1355
+ .fa-google:before {
1356
+ content: "\f1a0";
1357
+ }
1358
+ .fa-reddit:before {
1359
+ content: "\f1a1";
1360
+ }
1361
+ .fa-reddit-square:before {
1362
+ content: "\f1a2";
1363
+ }
1364
+ .fa-stumbleupon-circle:before {
1365
+ content: "\f1a3";
1366
+ }
1367
+ .fa-stumbleupon:before {
1368
+ content: "\f1a4";
1369
+ }
1370
+ .fa-delicious:before {
1371
+ content: "\f1a5";
1372
+ }
1373
+ .fa-digg:before {
1374
+ content: "\f1a6";
1375
+ }
1376
+ .fa-pied-piper:before {
1377
+ content: "\f1a7";
1378
+ }
1379
+ .fa-pied-piper-alt:before {
1380
+ content: "\f1a8";
1381
+ }
1382
+ .fa-drupal:before {
1383
+ content: "\f1a9";
1384
+ }
1385
+ .fa-joomla:before {
1386
+ content: "\f1aa";
1387
+ }
1388
+ .fa-language:before {
1389
+ content: "\f1ab";
1390
+ }
1391
+ .fa-fax:before {
1392
+ content: "\f1ac";
1393
+ }
1394
+ .fa-building:before {
1395
+ content: "\f1ad";
1396
+ }
1397
+ .fa-child:before {
1398
+ content: "\f1ae";
1399
+ }
1400
+ .fa-paw:before {
1401
+ content: "\f1b0";
1402
+ }
1403
+ .fa-spoon:before {
1404
+ content: "\f1b1";
1405
+ }
1406
+ .fa-cube:before {
1407
+ content: "\f1b2";
1408
+ }
1409
+ .fa-cubes:before {
1410
+ content: "\f1b3";
1411
+ }
1412
+ .fa-behance:before {
1413
+ content: "\f1b4";
1414
+ }
1415
+ .fa-behance-square:before {
1416
+ content: "\f1b5";
1417
+ }
1418
+ .fa-steam:before {
1419
+ content: "\f1b6";
1420
+ }
1421
+ .fa-steam-square:before {
1422
+ content: "\f1b7";
1423
+ }
1424
+ .fa-recycle:before {
1425
+ content: "\f1b8";
1426
+ }
1427
+ .fa-automobile:before,
1428
+ .fa-car:before {
1429
+ content: "\f1b9";
1430
+ }
1431
+ .fa-cab:before,
1432
+ .fa-taxi:before {
1433
+ content: "\f1ba";
1434
+ }
1435
+ .fa-tree:before {
1436
+ content: "\f1bb";
1437
+ }
1438
+ .fa-spotify:before {
1439
+ content: "\f1bc";
1440
+ }
1441
+ .fa-deviantart:before {
1442
+ content: "\f1bd";
1443
+ }
1444
+ .fa-soundcloud:before {
1445
+ content: "\f1be";
1446
+ }
1447
+ .fa-database:before {
1448
+ content: "\f1c0";
1449
+ }
1450
+ .fa-file-pdf-o:before {
1451
+ content: "\f1c1";
1452
+ }
1453
+ .fa-file-word-o:before {
1454
+ content: "\f1c2";
1455
+ }
1456
+ .fa-file-excel-o:before {
1457
+ content: "\f1c3";
1458
+ }
1459
+ .fa-file-powerpoint-o:before {
1460
+ content: "\f1c4";
1461
+ }
1462
+ .fa-file-photo-o:before,
1463
+ .fa-file-picture-o:before,
1464
+ .fa-file-image-o:before {
1465
+ content: "\f1c5";
1466
+ }
1467
+ .fa-file-zip-o:before,
1468
+ .fa-file-archive-o:before {
1469
+ content: "\f1c6";
1470
+ }
1471
+ .fa-file-sound-o:before,
1472
+ .fa-file-audio-o:before {
1473
+ content: "\f1c7";
1474
+ }
1475
+ .fa-file-movie-o:before,
1476
+ .fa-file-video-o:before {
1477
+ content: "\f1c8";
1478
+ }
1479
+ .fa-file-code-o:before {
1480
+ content: "\f1c9";
1481
+ }
1482
+ .fa-vine:before {
1483
+ content: "\f1ca";
1484
+ }
1485
+ .fa-codepen:before {
1486
+ content: "\f1cb";
1487
+ }
1488
+ .fa-jsfiddle:before {
1489
+ content: "\f1cc";
1490
+ }
1491
+ .fa-life-bouy:before,
1492
+ .fa-life-buoy:before,
1493
+ .fa-life-saver:before,
1494
+ .fa-support:before,
1495
+ .fa-life-ring:before {
1496
+ content: "\f1cd";
1497
+ }
1498
+ .fa-circle-o-notch:before {
1499
+ content: "\f1ce";
1500
+ }
1501
+ .fa-ra:before,
1502
+ .fa-rebel:before {
1503
+ content: "\f1d0";
1504
+ }
1505
+ .fa-ge:before,
1506
+ .fa-empire:before {
1507
+ content: "\f1d1";
1508
+ }
1509
+ .fa-git-square:before {
1510
+ content: "\f1d2";
1511
+ }
1512
+ .fa-git:before {
1513
+ content: "\f1d3";
1514
+ }
1515
+ .fa-hacker-news:before {
1516
+ content: "\f1d4";
1517
+ }
1518
+ .fa-tencent-weibo:before {
1519
+ content: "\f1d5";
1520
+ }
1521
+ .fa-qq:before {
1522
+ content: "\f1d6";
1523
+ }
1524
+ .fa-wechat:before,
1525
+ .fa-weixin:before {
1526
+ content: "\f1d7";
1527
+ }
1528
+ .fa-send:before,
1529
+ .fa-paper-plane:before {
1530
+ content: "\f1d8";
1531
+ }
1532
+ .fa-send-o:before,
1533
+ .fa-paper-plane-o:before {
1534
+ content: "\f1d9";
1535
+ }
1536
+ .fa-history:before {
1537
+ content: "\f1da";
1538
+ }
1539
+ .fa-genderless:before,
1540
+ .fa-circle-thin:before {
1541
+ content: "\f1db";
1542
+ }
1543
+ .fa-header:before {
1544
+ content: "\f1dc";
1545
+ }
1546
+ .fa-paragraph:before {
1547
+ content: "\f1dd";
1548
+ }
1549
+ .fa-sliders:before {
1550
+ content: "\f1de";
1551
+ }
1552
+ .fa-share-alt:before {
1553
+ content: "\f1e0";
1554
+ }
1555
+ .fa-share-alt-square:before {
1556
+ content: "\f1e1";
1557
+ }
1558
+ .fa-bomb:before {
1559
+ content: "\f1e2";
1560
+ }
1561
+ .fa-soccer-ball-o:before,
1562
+ .fa-futbol-o:before {
1563
+ content: "\f1e3";
1564
+ }
1565
+ .fa-tty:before {
1566
+ content: "\f1e4";
1567
+ }
1568
+ .fa-binoculars:before {
1569
+ content: "\f1e5";
1570
+ }
1571
+ .fa-plug:before {
1572
+ content: "\f1e6";
1573
+ }
1574
+ .fa-slideshare:before {
1575
+ content: "\f1e7";
1576
+ }
1577
+ .fa-twitch:before {
1578
+ content: "\f1e8";
1579
+ }
1580
+ .fa-yelp:before {
1581
+ content: "\f1e9";
1582
+ }
1583
+ .fa-newspaper-o:before {
1584
+ content: "\f1ea";
1585
+ }
1586
+ .fa-wifi:before {
1587
+ content: "\f1eb";
1588
+ }
1589
+ .fa-calculator:before {
1590
+ content: "\f1ec";
1591
+ }
1592
+ .fa-paypal:before {
1593
+ content: "\f1ed";
1594
+ }
1595
+ .fa-google-wallet:before {
1596
+ content: "\f1ee";
1597
+ }
1598
+ .fa-cc-visa:before {
1599
+ content: "\f1f0";
1600
+ }
1601
+ .fa-cc-mastercard:before {
1602
+ content: "\f1f1";
1603
+ }
1604
+ .fa-cc-discover:before {
1605
+ content: "\f1f2";
1606
+ }
1607
+ .fa-cc-amex:before {
1608
+ content: "\f1f3";
1609
+ }
1610
+ .fa-cc-paypal:before {
1611
+ content: "\f1f4";
1612
+ }
1613
+ .fa-cc-stripe:before {
1614
+ content: "\f1f5";
1615
+ }
1616
+ .fa-bell-slash:before {
1617
+ content: "\f1f6";
1618
+ }
1619
+ .fa-bell-slash-o:before {
1620
+ content: "\f1f7";
1621
+ }
1622
+ .fa-trash:before {
1623
+ content: "\f1f8";
1624
+ }
1625
+ .fa-copyright:before {
1626
+ content: "\f1f9";
1627
+ }
1628
+ .fa-at:before {
1629
+ content: "\f1fa";
1630
+ }
1631
+ .fa-eyedropper:before {
1632
+ content: "\f1fb";
1633
+ }
1634
+ .fa-paint-brush:before {
1635
+ content: "\f1fc";
1636
+ }
1637
+ .fa-birthday-cake:before {
1638
+ content: "\f1fd";
1639
+ }
1640
+ .fa-area-chart:before {
1641
+ content: "\f1fe";
1642
+ }
1643
+ .fa-pie-chart:before {
1644
+ content: "\f200";
1645
+ }
1646
+ .fa-line-chart:before {
1647
+ content: "\f201";
1648
+ }
1649
+ .fa-lastfm:before {
1650
+ content: "\f202";
1651
+ }
1652
+ .fa-lastfm-square:before {
1653
+ content: "\f203";
1654
+ }
1655
+ .fa-toggle-off:before {
1656
+ content: "\f204";
1657
+ }
1658
+ .fa-toggle-on:before {
1659
+ content: "\f205";
1660
+ }
1661
+ .fa-bicycle:before {
1662
+ content: "\f206";
1663
+ }
1664
+ .fa-bus:before {
1665
+ content: "\f207";
1666
+ }
1667
+ .fa-ioxhost:before {
1668
+ content: "\f208";
1669
+ }
1670
+ .fa-angellist:before {
1671
+ content: "\f209";
1672
+ }
1673
+ .fa-cc:before {
1674
+ content: "\f20a";
1675
+ }
1676
+ .fa-shekel:before,
1677
+ .fa-sheqel:before,
1678
+ .fa-ils:before {
1679
+ content: "\f20b";
1680
+ }
1681
+ .fa-meanpath:before {
1682
+ content: "\f20c";
1683
+ }
1684
+ .fa-buysellads:before {
1685
+ content: "\f20d";
1686
+ }
1687
+ .fa-connectdevelop:before {
1688
+ content: "\f20e";
1689
+ }
1690
+ .fa-dashcube:before {
1691
+ content: "\f210";
1692
+ }
1693
+ .fa-forumbee:before {
1694
+ content: "\f211";
1695
+ }
1696
+ .fa-leanpub:before {
1697
+ content: "\f212";
1698
+ }
1699
+ .fa-sellsy:before {
1700
+ content: "\f213";
1701
+ }
1702
+ .fa-shirtsinbulk:before {
1703
+ content: "\f214";
1704
+ }
1705
+ .fa-simplybuilt:before {
1706
+ content: "\f215";
1707
+ }
1708
+ .fa-skyatlas:before {
1709
+ content: "\f216";
1710
+ }
1711
+ .fa-cart-plus:before {
1712
+ content: "\f217";
1713
+ }
1714
+ .fa-cart-arrow-down:before {
1715
+ content: "\f218";
1716
+ }
1717
+ .fa-diamond:before {
1718
+ content: "\f219";
1719
+ }
1720
+ .fa-ship:before {
1721
+ content: "\f21a";
1722
+ }
1723
+ .fa-user-secret:before {
1724
+ content: "\f21b";
1725
+ }
1726
+ .fa-motorcycle:before {
1727
+ content: "\f21c";
1728
+ }
1729
+ .fa-street-view:before {
1730
+ content: "\f21d";
1731
+ }
1732
+ .fa-heartbeat:before {
1733
+ content: "\f21e";
1734
+ }
1735
+ .fa-venus:before {
1736
+ content: "\f221";
1737
+ }
1738
+ .fa-mars:before {
1739
+ content: "\f222";
1740
+ }
1741
+ .fa-mercury:before {
1742
+ content: "\f223";
1743
+ }
1744
+ .fa-transgender:before {
1745
+ content: "\f224";
1746
+ }
1747
+ .fa-transgender-alt:before {
1748
+ content: "\f225";
1749
+ }
1750
+ .fa-venus-double:before {
1751
+ content: "\f226";
1752
+ }
1753
+ .fa-mars-double:before {
1754
+ content: "\f227";
1755
+ }
1756
+ .fa-venus-mars:before {
1757
+ content: "\f228";
1758
+ }
1759
+ .fa-mars-stroke:before {
1760
+ content: "\f229";
1761
+ }
1762
+ .fa-mars-stroke-v:before {
1763
+ content: "\f22a";
1764
+ }
1765
+ .fa-mars-stroke-h:before {
1766
+ content: "\f22b";
1767
+ }
1768
+ .fa-neuter:before {
1769
+ content: "\f22c";
1770
+ }
1771
+ .fa-facebook-official:before {
1772
+ content: "\f230";
1773
+ }
1774
+ .fa-pinterest-p:before {
1775
+ content: "\f231";
1776
+ }
1777
+ .fa-whatsapp:before {
1778
+ content: "\f232";
1779
+ }
1780
+ .fa-server:before {
1781
+ content: "\f233";
1782
+ }
1783
+ .fa-user-plus:before {
1784
+ content: "\f234";
1785
+ }
1786
+ .fa-user-times:before {
1787
+ content: "\f235";
1788
+ }
1789
+ .fa-hotel:before,
1790
+ .fa-bed:before {
1791
+ content: "\f236";
1792
+ }
1793
+ .fa-viacoin:before {
1794
+ content: "\f237";
1795
+ }
1796
+ .fa-train:before {
1797
+ content: "\f238";
1798
+ }
1799
+ .fa-subway:before {
1800
+ content: "\f239";
1801
+ }
1802
+ .fa-medium:before {
1803
+ content: "\f23a";
1804
+ }