ralber 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/ralber.rb +46 -0
- data/lib/ralber/album.rb +215 -0
- data/lib/ralber/commands/create_command.rb +39 -0
- data/lib/ralber/commands/publish_command.rb +72 -0
- data/lib/ralber/commands/update_command.rb +31 -0
- data/lib/ralber/image.rb +155 -0
- data/lib/ralber/observable.rb +17 -0
- data/lib/ralber/publisher.rb +167 -0
- data/lib/ralber/template.rb +56 -0
- data/templates/default/css/pure/pure-min.css +11 -0
- data/templates/default/css/styles.css +165 -0
- data/templates/default/detail.html.erb +41 -0
- data/templates/default/fonts/FiraSans-Light.eot +0 -0
- data/templates/default/fonts/FiraSans-Light.otf +0 -0
- data/templates/default/fonts/FiraSans-Light.ttf +0 -0
- data/templates/default/fonts/FiraSans-Light.woff +0 -0
- data/templates/default/fonts/FiraSans-LightItalic.eot +0 -0
- data/templates/default/fonts/FiraSans-LightItalic.otf +0 -0
- data/templates/default/fonts/FiraSans-LightItalic.ttf +0 -0
- data/templates/default/fonts/FiraSans-LightItalic.woff +0 -0
- data/templates/default/fonts/font-awesome-4.2.0/css/font-awesome.min.css +4 -0
- data/templates/default/fonts/font-awesome-4.2.0/fonts/FontAwesome.otf +0 -0
- data/templates/default/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.eot +0 -0
- data/templates/default/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.svg +520 -0
- data/templates/default/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.ttf +0 -0
- data/templates/default/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.woff +0 -0
- data/templates/default/index.html.erb +61 -0
- data/templates/default/template.json +25 -0
- data/templates/fancybox-dark/css/pure/pure-min.css +11 -0
- data/templates/fancybox-dark/css/styles.css +165 -0
- data/templates/fancybox-dark/detail.html.erb +41 -0
- data/templates/fancybox-dark/fancybox/CHANGELOG.md +125 -0
- data/templates/fancybox-dark/fancybox/README.md +217 -0
- data/templates/fancybox-dark/fancybox/lib/jquery-1.10.1.min.js +6 -0
- data/templates/fancybox-dark/fancybox/lib/jquery-1.9.0.min.js +4 -0
- data/templates/fancybox-dark/fancybox/lib/jquery.mousewheel-3.0.6.pack.js +13 -0
- data/templates/fancybox-dark/fancybox/source/blank.gif +0 -0
- data/templates/fancybox-dark/fancybox/source/fancybox_loading.gif +0 -0
- data/templates/fancybox-dark/fancybox/source/fancybox_loading@2x.gif +0 -0
- data/templates/fancybox-dark/fancybox/source/fancybox_overlay.png +0 -0
- data/templates/fancybox-dark/fancybox/source/fancybox_sprite.png +0 -0
- data/templates/fancybox-dark/fancybox/source/fancybox_sprite@2x.png +0 -0
- data/templates/fancybox-dark/fancybox/source/helpers/fancybox_buttons.png +0 -0
- data/templates/fancybox-dark/fancybox/source/helpers/jquery.fancybox-buttons.css +97 -0
- data/templates/fancybox-dark/fancybox/source/helpers/jquery.fancybox-buttons.js +122 -0
- data/templates/fancybox-dark/fancybox/source/helpers/jquery.fancybox-media.js +199 -0
- data/templates/fancybox-dark/fancybox/source/helpers/jquery.fancybox-thumbs.css +55 -0
- data/templates/fancybox-dark/fancybox/source/helpers/jquery.fancybox-thumbs.js +162 -0
- data/templates/fancybox-dark/fancybox/source/jquery.fancybox.css +274 -0
- data/templates/fancybox-dark/fancybox/source/jquery.fancybox.js +2020 -0
- data/templates/fancybox-dark/fancybox/source/jquery.fancybox.pack.js +46 -0
- data/templates/fancybox-dark/fonts/FiraSans-Light.eot +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-Light.otf +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-Light.ttf +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-Light.woff +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-LightItalic.eot +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-LightItalic.otf +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-LightItalic.ttf +0 -0
- data/templates/fancybox-dark/fonts/FiraSans-LightItalic.woff +0 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/css/font-awesome.min.css +4 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/fonts/FontAwesome.otf +0 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.eot +0 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.svg +520 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.ttf +0 -0
- data/templates/fancybox-dark/fonts/font-awesome-4.2.0/fonts/fontawesome-webfont.woff +0 -0
- data/templates/fancybox-dark/index.html.erb +79 -0
- data/templates/fancybox-dark/template.json +20 -0
- metadata +167 -0
@@ -0,0 +1,167 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'json'
|
5
|
+
require 'erb'
|
6
|
+
require 'fileutils'
|
7
|
+
require 'ralber/album'
|
8
|
+
require 'ralber/template'
|
9
|
+
require 'ralber/observable'
|
10
|
+
|
11
|
+
module Ralber
|
12
|
+
|
13
|
+
##
|
14
|
+
# Represents a Publisher. The publisher takes a template and an album
|
15
|
+
# and processes / publishes the final content (html, images)
|
16
|
+
class Publisher
|
17
|
+
include Observable
|
18
|
+
|
19
|
+
attr_reader :album, :template
|
20
|
+
attr_writer :force
|
21
|
+
|
22
|
+
def initialize(album,template)
|
23
|
+
raise RuntimeError if not album.is_a?(Album)
|
24
|
+
raise RuntimeError if not template.is_a?(Template)
|
25
|
+
@album = album
|
26
|
+
@template = template
|
27
|
+
@force = false
|
28
|
+
end
|
29
|
+
|
30
|
+
def publish_to(path)
|
31
|
+
self.inform_listeners(:using_template,"Using template in #{@template.path}")
|
32
|
+
|
33
|
+
self.ensure_path(path)
|
34
|
+
self.copy_static_template_files_to(path)
|
35
|
+
self.publish_images_to(path)
|
36
|
+
self.publish_index_to(path)
|
37
|
+
self.publish_detail_pages_to(path)
|
38
|
+
end
|
39
|
+
|
40
|
+
def publish_images_to(path)
|
41
|
+
imgdir = @template.config['image_dir']
|
42
|
+
self.inform_listeners(:publish_images_to,"Creating image versions: #{@template.images_config.keys.join(', ')} in #{path}/#{imgdir}")
|
43
|
+
@template.images_config.each {|name,conf|
|
44
|
+
destdir = File.join(path,imgdir,name)
|
45
|
+
self.create_images(destdir,conf,name )
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def publish_index_to(path)
|
50
|
+
if @template.index_config
|
51
|
+
self.inform_listeners(:publish_index_to,"Page size: #{page_size}, #{pages} pages with #{@album.images.length} images.")
|
52
|
+
page_tpl = ERB.new(File.read(File.join(@template.path,'index.html.erb')))
|
53
|
+
album = @album
|
54
|
+
(1..pages).each {|page_nr|
|
55
|
+
images = @album.images[((page_nr-1)*page_size)...((page_nr-1)*page_size+page_size)]
|
56
|
+
name = index_page(page_nr)
|
57
|
+
outpath = File.join(path,name)
|
58
|
+
page_content = page_tpl.result(binding)
|
59
|
+
File.write(outpath,page_content)
|
60
|
+
self.inform_listeners(:publish_index_to,"Index page written: #{outpath}")
|
61
|
+
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def publish_detail_pages_to(path)
|
67
|
+
if @template.detail_config
|
68
|
+
page_tpl = ERB.new(File.read(File.join(@template.path,'detail.html.erb')))
|
69
|
+
@album.images.each_with_index {|image, index|
|
70
|
+
page_nr = index/page_size+1
|
71
|
+
images = @album.images
|
72
|
+
name = detail_page(index)
|
73
|
+
outpath = File.join(path,name)
|
74
|
+
page_content = page_tpl.result(binding)
|
75
|
+
File.write(outpath,page_content)
|
76
|
+
self.inform_listeners(:publish_detail_to,"Detail page written: #{outpath}")
|
77
|
+
}
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def page_size
|
82
|
+
size = 20
|
83
|
+
|
84
|
+
# template defines single page (pagesize = -1)
|
85
|
+
if @template.config['index']['pagesize'] == -1
|
86
|
+
return @album.images.length
|
87
|
+
end
|
88
|
+
|
89
|
+
# else regular page size, either from the album or the default from template:
|
90
|
+
if @album.album_info['index'] && @album.album_info['index']['pagesize']
|
91
|
+
return @album.album_info['index']['pagesize']
|
92
|
+
else
|
93
|
+
return @template.config['index']['pagesize'] || size
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
def pages
|
99
|
+
(@album.images.length / page_size().to_f).ceil
|
100
|
+
end
|
101
|
+
|
102
|
+
def index_page(page_nr)
|
103
|
+
name_tpl = ERB.new(@template.config['index']['filename_template'])
|
104
|
+
return name_tpl.result(binding)
|
105
|
+
end
|
106
|
+
|
107
|
+
def detail_page(index)
|
108
|
+
name_tpl = ERB.new(@template.config['detail']['filename_template'])
|
109
|
+
return name_tpl.result(binding)
|
110
|
+
end
|
111
|
+
|
112
|
+
def image_info(image, version = nil)
|
113
|
+
version_info = @template.config['images'][version] if version
|
114
|
+
format = (version_info['format']).to_sym if version_info['format']
|
115
|
+
filename = image.get_resized_name(File.basename(image.path), format)
|
116
|
+
imagebase = @template.config['image_dir']
|
117
|
+
info = {
|
118
|
+
'filename' => filename,
|
119
|
+
'rel_path' => (version_info ? File.join(imagebase,version,filename) : nil)
|
120
|
+
}
|
121
|
+
return info
|
122
|
+
end
|
123
|
+
|
124
|
+
def create_images(destdir,conf,name)
|
125
|
+
@album.images.each {|img|
|
126
|
+
info = self.image_info(img,name)
|
127
|
+
format = (conf['format']).to_sym if conf['format']
|
128
|
+
destfile = File.join(destdir,img.get_resized_name(img.path,format))
|
129
|
+
if (File.exists?(destfile) && @force != true)
|
130
|
+
self.inform_listeners(:create_resized_version, "Skipping #{name}: #{info['rel_path']}, File exists");
|
131
|
+
else
|
132
|
+
self.ensure_path(destdir)
|
133
|
+
self.inform_listeners(:create_resized_version,"Working on: #{name}: #{info['rel_path']}")
|
134
|
+
img.create_resized_version(format,conf['dimension'],destdir)
|
135
|
+
end
|
136
|
+
}
|
137
|
+
end
|
138
|
+
|
139
|
+
def copy_static_template_files_to(path)
|
140
|
+
self.inform_listeners(:copy_static_template_files_to,"Copy static template files to #{path}")
|
141
|
+
self.ensure_path(path)
|
142
|
+
FileUtils.cp_r(File.join(@template.path,'.'),path)
|
143
|
+
self.clean_dest_path(path)
|
144
|
+
end
|
145
|
+
|
146
|
+
##
|
147
|
+
# Cleans unwanted template files from the destination path
|
148
|
+
def clean_dest_path(path)
|
149
|
+
[
|
150
|
+
File.join(path,'template.json'),
|
151
|
+
File.join(path,'index.html.erb'),
|
152
|
+
File.join(path,'detail.html.erb')
|
153
|
+
].each do |f|
|
154
|
+
File.delete(f) if File.exists?(f)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
|
159
|
+
def ensure_path(path)
|
160
|
+
FileUtils.mkpath(path) unless File.exists?(path)
|
161
|
+
end
|
162
|
+
|
163
|
+
def save_album
|
164
|
+
@album.write_albuminfo
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Ralber
|
7
|
+
|
8
|
+
##
|
9
|
+
# Represents a template
|
10
|
+
class Template
|
11
|
+
attr_reader :path,:config,:images_config
|
12
|
+
|
13
|
+
|
14
|
+
def initialize(path, template_path = nil)
|
15
|
+
@path = path
|
16
|
+
@path = File.join(template_path,path) if not File.exists?(@path)
|
17
|
+
raise StandardError, "File does not exits" if not File.exists?(@path)
|
18
|
+
@path = File.expand_path(@path)
|
19
|
+
raise StandardError, "template.json not found" if not File.exists?(self.json_path)
|
20
|
+
@config = self.read_config
|
21
|
+
end
|
22
|
+
|
23
|
+
def json_path
|
24
|
+
File.join(@path,'template.json')
|
25
|
+
end
|
26
|
+
|
27
|
+
def read_config
|
28
|
+
begin
|
29
|
+
conf = JSON.parse(File.read(self.json_path))
|
30
|
+
rescue Exception=> e
|
31
|
+
raise RuntimeError, "Could not parse template.json file: #{e.message}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def images_config
|
36
|
+
raise RuntimeError,"template.json does not contain an 'images' config" unless @config.key?('images')
|
37
|
+
@config['images']
|
38
|
+
end
|
39
|
+
|
40
|
+
def index_config
|
41
|
+
if @config.has_key?('index')
|
42
|
+
@config['index']
|
43
|
+
else
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def detail_config
|
49
|
+
if @config.has_key?('detail')
|
50
|
+
@config['detail']
|
51
|
+
else
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/*!
|
2
|
+
Pure v0.5.0
|
3
|
+
Copyright 2014 Yahoo! Inc. All rights reserved.
|
4
|
+
Licensed under the BSD License.
|
5
|
+
https://github.com/yui/pure/blob/master/LICENSE.md
|
6
|
+
*/
|
7
|
+
/*!
|
8
|
+
normalize.css v1.1.3 | MIT License | git.io/normalize
|
9
|
+
Copyright (c) Nicolas Gallagher and Jonathan Neal
|
10
|
+
*/
|
11
|
+
/*! normalize.css v1.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-family:inherit;font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input:not([type]):focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border-color:#ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=text],.pure-group input[type=password],.pure-group input[type=email],.pure-group input[type=url],.pure-group input[type=date],.pure-group input[type=month],.pure-group input[type=time],.pure-group input[type=datetime],.pure-group input[type=datetime-local],.pure-group input[type=week],.pure-group input[type=number],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=color]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width:480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid #000}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}
|
@@ -0,0 +1,165 @@
|
|
1
|
+
@font-face{
|
2
|
+
font-family: 'Fira Sans';
|
3
|
+
src: url('../fonts/FiraSans-Light.eot');
|
4
|
+
src: local('Fira Sans Light'),
|
5
|
+
url('../fonts/FiraSans-Light.eot') format('embedded-opentype'),
|
6
|
+
url('../fonts/FiraSans-Light.woff') format('woff'),
|
7
|
+
url('../fonts/FiraSans-Light.ttf') format('truetype');
|
8
|
+
font-weight: 300;
|
9
|
+
font-style: normal;
|
10
|
+
}
|
11
|
+
|
12
|
+
@font-face{
|
13
|
+
font-family: 'Fira Sans';
|
14
|
+
src: url('../fonts/FiraSans-LightItalic.eot');
|
15
|
+
src: local('Fira Sans Light Italic'),
|
16
|
+
url('../fonts/FiraSans-LightItalic.eot') format('embedded-opentype'),
|
17
|
+
url('../fonts/FiraSans-LightItalic.woff') format('woff'),
|
18
|
+
url('../fonts/FiraSans-LightItalic.ttf') format('truetype');
|
19
|
+
font-weight: 300;
|
20
|
+
font-style: italic;
|
21
|
+
}
|
22
|
+
|
23
|
+
html,body {
|
24
|
+
background-color: #1d1e1a;
|
25
|
+
color: #eee;
|
26
|
+
text-align: center;
|
27
|
+
font-family: "Fira Sans";
|
28
|
+
margin-top: 2rem;
|
29
|
+
}
|
30
|
+
|
31
|
+
a{
|
32
|
+
color: #aaa;
|
33
|
+
}
|
34
|
+
|
35
|
+
.indexpage .title {
|
36
|
+
font-weight: normal;
|
37
|
+
font-size: 3rem;
|
38
|
+
margin-top: 0.5em;
|
39
|
+
margin-bottom: 0.2em;
|
40
|
+
margin-left: 10%;
|
41
|
+
margin-right: 10%;
|
42
|
+
border-bottom: 1px solid #eee;
|
43
|
+
}
|
44
|
+
|
45
|
+
.indexpage .subtitle {
|
46
|
+
font-weight: normal;
|
47
|
+
font-size: 1.5rem;
|
48
|
+
margin-top: 0.5em;
|
49
|
+
margin-bottom: 1em;
|
50
|
+
}
|
51
|
+
|
52
|
+
.indextable {
|
53
|
+
max-width: 1024px;
|
54
|
+
margin: auto;
|
55
|
+
}
|
56
|
+
|
57
|
+
.index {
|
58
|
+
max-width: 250px;
|
59
|
+
text-align: center;
|
60
|
+
}
|
61
|
+
|
62
|
+
.index a {
|
63
|
+
border: 1px solid transparent;
|
64
|
+
display: block;
|
65
|
+
padding: 5px;
|
66
|
+
margin: 5px;
|
67
|
+
color: #eee;
|
68
|
+
text-decoration: none;
|
69
|
+
}
|
70
|
+
|
71
|
+
.index a:hover {
|
72
|
+
border: 1px solid white;
|
73
|
+
background-color: #333;
|
74
|
+
}
|
75
|
+
|
76
|
+
.index img {
|
77
|
+
border: 8px solid white;
|
78
|
+
margin: auto;
|
79
|
+
}
|
80
|
+
|
81
|
+
.index .caption {
|
82
|
+
font-size: 0.8rem;
|
83
|
+
color: #888;
|
84
|
+
margin-top: 0.3rem;
|
85
|
+
}
|
86
|
+
|
87
|
+
.indexpage .nav {
|
88
|
+
margin-left: 0.5rem;
|
89
|
+
margin-right: 0.5rem;
|
90
|
+
margin-bottom: 0.2rem;
|
91
|
+
margin-top: 3rem;
|
92
|
+
font-size: 1rem;
|
93
|
+
border-bottom: 1pt solid #888;
|
94
|
+
}
|
95
|
+
.indexpage .nav .paginator {
|
96
|
+
text-align: left;
|
97
|
+
}
|
98
|
+
|
99
|
+
.indexpage .nav a {
|
100
|
+
color: #2d8125;
|
101
|
+
font-size: 1.5rem;
|
102
|
+
}
|
103
|
+
.indexpage .nav a:hover {
|
104
|
+
color: #41bc35;
|
105
|
+
}
|
106
|
+
|
107
|
+
.indexpage .nav .imageinfo {
|
108
|
+
text-align: right;
|
109
|
+
}
|
110
|
+
|
111
|
+
.detailpage .container {
|
112
|
+
max-width: 1024px;
|
113
|
+
margin: auto;
|
114
|
+
}
|
115
|
+
|
116
|
+
.detailpage .nav {
|
117
|
+
text-align: left;
|
118
|
+
}
|
119
|
+
|
120
|
+
.detailpage .nav .album-title a {
|
121
|
+
font-weight: bold;
|
122
|
+
color: #888;
|
123
|
+
text-decoration: none;
|
124
|
+
font-size: 1rem;
|
125
|
+
}
|
126
|
+
|
127
|
+
.detailpage .nav .paginator a {
|
128
|
+
color: #2d8125;
|
129
|
+
font-size: 1.5rem;
|
130
|
+
}
|
131
|
+
.detailpage .nav .paginator a:hover {
|
132
|
+
color: #41bc35;
|
133
|
+
}
|
134
|
+
|
135
|
+
.detailpage .title {
|
136
|
+
font-weight: normal;
|
137
|
+
font-size: 3rem;
|
138
|
+
margin-top: 0.5em;
|
139
|
+
margin-bottom: 0.2em;
|
140
|
+
margin-left: 10%;
|
141
|
+
margin-right: 10%;
|
142
|
+
}
|
143
|
+
|
144
|
+
.detailpage .subtitle {
|
145
|
+
font-weight: normal;
|
146
|
+
font-size: 1rem;
|
147
|
+
margin-top: 0.5em;
|
148
|
+
margin-bottom: 1em;
|
149
|
+
}
|
150
|
+
|
151
|
+
.detailpage .image img {
|
152
|
+
border: 10px solid white;
|
153
|
+
margin: auto;
|
154
|
+
}
|
155
|
+
|
156
|
+
footer {
|
157
|
+
margin-top: 2rem;
|
158
|
+
color: #555;
|
159
|
+
border-top: 1px solid #555;
|
160
|
+
font-size: 0.8rem;
|
161
|
+
}
|
162
|
+
|
163
|
+
footer a {
|
164
|
+
color: #aaa;
|
165
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<link rel="stylesheet" href="css/pure/pure-min.css">
|
5
|
+
<link rel="stylesheet" href="css/styles.css">
|
6
|
+
<link rel="stylesheet" href="fonts/font-awesome-4.2.0/css/font-awesome.min.css">
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
8
|
+
<meta charset="utf-8">
|
9
|
+
<title><%= image.title %> - <%= album.title %></title>
|
10
|
+
</head>
|
11
|
+
<body class="detailpage">
|
12
|
+
<div class="container">
|
13
|
+
<div class="nav">
|
14
|
+
<div class="album-title"><a href="index.html"><%= album.title %></a></div>
|
15
|
+
<div class="paginator">
|
16
|
+
<% if index > 0%><a href="<%= detail_page(index-1) %>"><i class="fa fa-chevron-left"></i></a><% end %>
|
17
|
+
<a href="<%= index_page(page_nr) %>"><i class="fa fa-chevron-up"></i></a>
|
18
|
+
<% if index < images.length-1 %><a href="<%= detail_page(index+1) %>"><i class="fa fa-chevron-right"></i></a><% end %>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<h1 class="title"><%= image.title %></h1>
|
22
|
+
|
23
|
+
<%
|
24
|
+
detailinfo = image_info(image,'detail')
|
25
|
+
originalinfo = image_info(image,'original')
|
26
|
+
%>
|
27
|
+
<div>
|
28
|
+
<div class="image">
|
29
|
+
<a href="<%= originalinfo['rel_path'] %>">
|
30
|
+
<img class="pure-img" src="<%= detailinfo['rel_path'] %>" alt="<%= detailinfo['filename'] %>" title="<%= image.description %>"/>
|
31
|
+
</a>
|
32
|
+
</div>
|
33
|
+
<div class="subtitle"><%= image.description %></div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<footer>
|
38
|
+
<%= album.copyright %> <%= album.author %> - created with <a href="https://github.com/bylexus/ralber">ralber</a>
|
39
|
+
</footer>
|
40
|
+
</body>
|
41
|
+
</html>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
|
3
|
+
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
4
|
+
*/@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}
|
Binary file
|