├── .gitignore ├── README.md ├── app.js ├── app.json ├── app.wxss ├── config.js.example ├── images ├── cover.png ├── defalut.png ├── icon-img.png ├── logo.png ├── qrCode.jpg ├── tips.png └── uploadImg.png ├── lib └── fontAwesome │ └── wxss │ └── font-awesome.min.wxss ├── pages ├── authorizetip │ ├── authorizetip.js │ ├── authorizetip.json │ ├── authorizetip.wxml │ └── authorizetip.wxss ├── comment │ ├── comment.js │ ├── comment.json │ ├── comment.wxml │ └── comment.wxss ├── index │ ├── index.js │ ├── index.json │ ├── index.wxml │ └── index.wxss ├── vote │ ├── vote.js │ ├── vote.json │ ├── vote.wxml │ └── vote.wxss ├── voteDetail │ ├── voteDetail.js │ ├── voteDetail.json │ ├── voteDetail.wxml │ └── voteDetail.wxss └── voterDetail │ ├── voterDetail.js │ ├── voterDetail.json │ ├── voterDetail.wxml │ └── voterDetail.wxss ├── sitemap.json └── utils ├── numbertofix.wxs └── util.js /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | config.js 3 | project.config.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 阳光投票小程序 2 | 3 | ### 2019/03/27 修改日志 4 | 5 | 1.因服务器到期,升级了服务器和域名;
6 | 2.把投票选项的字数由20个,提升到了40;因为有用户反馈20字有点受限制;
7 | 3.优化了一些体验,比如tab切换闪屏;
8 | 4.增加了用户反馈入口;
9 | 5.目前用户数4021 10 | 11 | ### 2018/6/15 修改日志 12 | 13 | 1.添加用户反馈功能; 14 | 15 | ### 2018/6/12 上线一月有余,成功突破1千用户!:tada: 16 | 17 | ![阳光投票二维码](https://minivote.sun309.com/storage/images/analysis.jpeg) 18 | 19 | 20 | ### 2018/5/8 小程序正式发布上线 21 | 22 | ![阳光投票二维码](https://minivote.sun309.com/storage/images/qrcode.jpeg) 23 | 24 | ### 2018/5/29 修改日志 :bulb: 25 | 26 | 1.修改用户授权逻辑;
27 | 2.优化用户体验:比如:在投票投票详情页进行投票,返回首页列表时不刷新页面即可看到结果;
28 | 3.页面跳转逻辑优化
29 | 30 | 31 | ### 2018/5/27 修改日志 32 | 33 | 1.修改用户授权逻辑;
34 | 2.添加敏感词过滤功能(https://developers.weixin.qq.com/miniprogram/dev/api/imgSecCheck.html);
35 | 3.图片改用懒加载 36 | 37 | 38 | ### 2018/5/10 修改日志 39 | 40 | 1:添加默认头像 41 | 42 | ### 2018/4/27 修改日志 43 | 44 | #### 解决以下问题: 45 | 46 | 1:首页列表查看投票统计和分享按钮不太好点(扩大点击面积)
47 | 2:首页模块,如果没有数据,需要提示信息
48 | 3:首页底部创建投票按钮太小,不方便点击
49 | 4:首页列表投票结果显示用色比较乱,花花绿绿 (改用这个色系['#9dc8c8', '#58c9b9', '#519d9e', '#d1b6e1'])
50 | 5:投票顶部,微信昵称和发布时间字体太小
51 | 6:投票结果百分比,显示整数,向上取整(使用wxs文件)
52 | 53 | ### 2018/4/28 修改日志 54 | 55 | #### 解决以下问题: 56 | 57 | 1:解决小程序启动时onLaunch和index页面onLoad执行先后顺序导致的bug;
58 | 2: 首页添加投票删除入口及功能;
59 | 3:一些样式问题的优化 60 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | const config = require('./config.js'); 2 | App({ 3 | globalData: { 4 | userInfo: null, 5 | encryptedData: '', 6 | iv: '', 7 | userAuthorization: '' 8 | }, 9 | //启动 10 | onLaunch: function() { 11 | this.getUserInfo() 12 | }, 13 | //获取用户信息 14 | getUserInfo: function() { 15 | var self = this 16 | wx.getSetting({ 17 | success(res) { 18 | //判断用户是否已授权获取用户信息 19 | if (res.authSetting['scope.userInfo']) { 20 | //已授权,可以直接获取用户信息不用弹框 21 | self.userAuthCb(); 22 | } else { 23 | //未授权 24 | wx.authorize({ 25 | scope: 'scope.userInfo', 26 | success() { 27 | // 用户已经同意小程序获取用户信息 28 | self.userAuthCb(); 29 | }, 30 | fail() { 31 | //拒绝授权 32 | wx.redirectTo({ 33 | url: '/pages/authorizetip/authorizetip', 34 | }) 35 | } 36 | }) 37 | } 38 | } 39 | }) 40 | }, 41 | userAuthCb: function() { 42 | let that = this; 43 | let baseUrl = config.getBaseUrl; 44 | wx.showLoading({ 45 | title: '加载中', 46 | }) 47 | wx.getUserInfo({ 48 | success: function(res) { 49 | that.globalData.userInfo = res.userInfo; 50 | that.globalData.encryptedData = res.encryptedData; 51 | that.globalData.iv = res.iv; 52 | if (res.encryptedData && res.iv) { 53 | wx.login({ 54 | success: function(res) { 55 | if (res.code) { 56 | //将用户基本信息回传给服务器,并获取assess_token 57 | wx.request({ 58 | url: baseUrl + '/auth/api/token', 59 | method: 'POST', 60 | data: { 61 | code: res.code, 62 | encryptedData: that.globalData.encryptedData, 63 | iv: that.globalData.iv 64 | }, 65 | header: { 66 | 'accept': 'application/json' 67 | }, 68 | success: function(res) { 69 | let authorizationValue = res.data.access_token; 70 | let currentPagesLen = getCurrentPages().length; 71 | if (authorizationValue) { 72 | wx.setStorageSync('access_token', authorizationValue); 73 | wx.setStorageSync('authorization', "Bearer " + authorizationValue); 74 | that.globalData.userAuthorization = "Bearer " + authorizationValue; 75 | //判断是否有页面优先生成,如果生成则重新加载一次 76 | if (currentPagesLen !== 0) { 77 | wx.hideLoading(); 78 | getCurrentPages()[currentPagesLen - 1].onLoad() 79 | } 80 | } else { 81 | console.log('身份验证失败') 82 | } 83 | } 84 | }) 85 | } 86 | } 87 | }) 88 | } 89 | } 90 | }) 91 | } 92 | }) -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/index/index", 4 | "pages/comment/comment", 5 | "pages/voteDetail/voteDetail", 6 | "pages/authorizetip/authorizetip", 7 | "pages/voterDetail/voterDetail", 8 | "pages/vote/vote" 9 | ], 10 | "window": { 11 | "backgroundTextStyle": "light", 12 | "navigationBarBackgroundColor": "#ffffff", 13 | "navigationBarTitleText": "WeChat", 14 | "navigationBarTextStyle": "black" 15 | }, 16 | "sitemapLocation": "sitemap.json" 17 | } -------------------------------------------------------------------------------- /config.js.example: -------------------------------------------------------------------------------- 1 | //开发环境:接口URL 2 | const getBaseDevUrl = '******'; 3 | //正式环境:接口URL 4 | const getBaseUrl = '******'; 5 | 6 | module.exports = { 7 | getBaseDevUrl, 8 | getBaseUrl 9 | } -------------------------------------------------------------------------------- /images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/cover.png -------------------------------------------------------------------------------- /images/defalut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/defalut.png -------------------------------------------------------------------------------- /images/icon-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/icon-img.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/logo.png -------------------------------------------------------------------------------- /images/qrCode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/qrCode.jpg -------------------------------------------------------------------------------- /images/tips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/tips.png -------------------------------------------------------------------------------- /images/uploadImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a958330481/votingNow/ed14eea3478ef0fe797a33a5c8b868cfc7563d26/images/uploadImg.png -------------------------------------------------------------------------------- /lib/fontAwesome/wxss/font-awesome.min.wxss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @font-face { 7 | font-family: 'FontAwesome'; 8 | src: url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.eot?v=4.7.0'); 9 | src: url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); 10 | font-weight: normal; 11 | font-style: normal 12 | } 13 | 14 | .fa { 15 | display: inline-block; 16 | font: normal normal normal 14px/1 FontAwesome; 17 | font-size: inherit; 18 | text-rendering: auto; 19 | -webkit-font-smoothing: antialiased; 20 | -moz-osx-font-smoothing: grayscale 21 | } 22 | 23 | .fa-lg { 24 | font-size: 1.33333333em; 25 | line-height: .75em; 26 | vertical-align: -15% 27 | } 28 | 29 | .fa-2x { 30 | font-size: 2em 31 | } 32 | 33 | .fa-3x { 34 | font-size: 3em 35 | } 36 | 37 | .fa-4x { 38 | font-size: 4em 39 | } 40 | 41 | .fa-5x { 42 | font-size: 5em 43 | } 44 | 45 | .fa-fw { 46 | width: 1.28571429em; 47 | text-align: center 48 | } 49 | 50 | .fa-ul { 51 | padding-left: 0; 52 | margin-left: 2.14285714em; 53 | list-style-type: none 54 | } 55 | 56 | .fa-ul>li { 57 | position: relative 58 | } 59 | 60 | .fa-li { 61 | position: absolute; 62 | left: -2.14285714em; 63 | width: 2.14285714em; 64 | top: .14285714em; 65 | text-align: center 66 | } 67 | 68 | .fa-li.fa-lg { 69 | left: -1.85714286em 70 | } 71 | 72 | .fa-border { 73 | padding: .2em .25em .15em; 74 | border: solid .08em #eee; 75 | border-radius: .1em 76 | } 77 | 78 | .fa-pull-left { 79 | float: left 80 | } 81 | 82 | .fa-pull-right { 83 | float: right 84 | } 85 | 86 | .fa.fa-pull-left { 87 | margin-right: .3em 88 | } 89 | 90 | .fa.fa-pull-right { 91 | margin-left: .3em 92 | } 93 | 94 | .pull-right { 95 | float: right 96 | } 97 | 98 | .pull-left { 99 | float: left 100 | } 101 | 102 | .fa.pull-left { 103 | margin-right: .3em 104 | } 105 | 106 | .fa.pull-right { 107 | margin-left: .3em 108 | } 109 | 110 | .fa-spin { 111 | -webkit-animation: fa-spin 2s infinite linear; 112 | animation: fa-spin 2s infinite linear 113 | } 114 | 115 | .fa-pulse { 116 | -webkit-animation: fa-spin 1s infinite steps(8); 117 | animation: fa-spin 1s infinite steps(8) 118 | } 119 | 120 | @-webkit-keyframes fa-spin { 121 | 0% { 122 | -webkit-transform: rotate(0deg); 123 | transform: rotate(0deg) 124 | } 125 | 100% { 126 | -webkit-transform: rotate(359deg); 127 | transform: rotate(359deg) 128 | } 129 | } 130 | 131 | @keyframes fa-spin { 132 | 0% { 133 | -webkit-transform: rotate(0deg); 134 | transform: rotate(0deg) 135 | } 136 | 100% { 137 | -webkit-transform: rotate(359deg); 138 | transform: rotate(359deg) 139 | } 140 | } 141 | 142 | .fa-rotate-90 { 143 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; 144 | -webkit-transform: rotate(90deg); 145 | -ms-transform: rotate(90deg); 146 | transform: rotate(90deg) 147 | } 148 | 149 | .fa-rotate-180 { 150 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; 151 | -webkit-transform: rotate(180deg); 152 | -ms-transform: rotate(180deg); 153 | transform: rotate(180deg) 154 | } 155 | 156 | .fa-rotate-270 { 157 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; 158 | -webkit-transform: rotate(270deg); 159 | -ms-transform: rotate(270deg); 160 | transform: rotate(270deg) 161 | } 162 | 163 | .fa-flip-horizontal { 164 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; 165 | -webkit-transform: scale(-1, 1); 166 | -ms-transform: scale(-1, 1); 167 | transform: scale(-1, 1) 168 | } 169 | 170 | .fa-flip-vertical { 171 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; 172 | -webkit-transform: scale(1, -1); 173 | -ms-transform: scale(1, -1); 174 | transform: scale(1, -1) 175 | } 176 | 177 | :root .fa-rotate-90, 178 | :root .fa-rotate-180, 179 | :root .fa-rotate-270, 180 | :root .fa-flip-horizontal, 181 | :root .fa-flip-vertical { 182 | filter: none 183 | } 184 | 185 | .fa-stack { 186 | position: relative; 187 | display: inline-block; 188 | width: 2em; 189 | height: 2em; 190 | line-height: 2em; 191 | vertical-align: middle 192 | } 193 | 194 | .fa-stack-1x, 195 | .fa-stack-2x { 196 | position: absolute; 197 | left: 0; 198 | width: 100%; 199 | text-align: center 200 | } 201 | 202 | .fa-stack-1x { 203 | line-height: inherit 204 | } 205 | 206 | .fa-stack-2x { 207 | font-size: 2em 208 | } 209 | 210 | .fa-inverse { 211 | color: #fff 212 | } 213 | 214 | .fa-glass:before { 215 | content: "\f000" 216 | } 217 | 218 | .fa-music:before { 219 | content: "\f001" 220 | } 221 | 222 | .fa-search:before { 223 | content: "\f002" 224 | } 225 | 226 | .fa-envelope-o:before { 227 | content: "\f003" 228 | } 229 | 230 | .fa-heart:before { 231 | content: "\f004" 232 | } 233 | 234 | .fa-star:before { 235 | content: "\f005" 236 | } 237 | 238 | .fa-star-o:before { 239 | content: "\f006" 240 | } 241 | 242 | .fa-user:before { 243 | content: "\f007" 244 | } 245 | 246 | .fa-film:before { 247 | content: "\f008" 248 | } 249 | 250 | .fa-th-large:before { 251 | content: "\f009" 252 | } 253 | 254 | .fa-th:before { 255 | content: "\f00a" 256 | } 257 | 258 | .fa-th-list:before { 259 | content: "\f00b" 260 | } 261 | 262 | .fa-check:before { 263 | content: "\f00c" 264 | } 265 | 266 | .fa-remove:before, 267 | .fa-close:before, 268 | .fa-times:before { 269 | content: "\f00d" 270 | } 271 | 272 | .fa-search-plus:before { 273 | content: "\f00e" 274 | } 275 | 276 | .fa-search-minus:before { 277 | content: "\f010" 278 | } 279 | 280 | .fa-power-off:before { 281 | content: "\f011" 282 | } 283 | 284 | .fa-signal:before { 285 | content: "\f012" 286 | } 287 | 288 | .fa-gear:before, 289 | .fa-cog:before { 290 | content: "\f013" 291 | } 292 | 293 | .fa-trash-o:before { 294 | content: "\f014" 295 | } 296 | 297 | .fa-home:before { 298 | content: "\f015" 299 | } 300 | 301 | .fa-file-o:before { 302 | content: "\f016" 303 | } 304 | 305 | .fa-clock-o:before { 306 | content: "\f017" 307 | } 308 | 309 | .fa-road:before { 310 | content: "\f018" 311 | } 312 | 313 | .fa-download:before { 314 | content: "\f019" 315 | } 316 | 317 | .fa-arrow-circle-o-down:before { 318 | content: "\f01a" 319 | } 320 | 321 | .fa-arrow-circle-o-up:before { 322 | content: "\f01b" 323 | } 324 | 325 | .fa-inbox:before { 326 | content: "\f01c" 327 | } 328 | 329 | .fa-play-circle-o:before { 330 | content: "\f01d" 331 | } 332 | 333 | .fa-rotate-right:before, 334 | .fa-repeat:before { 335 | content: "\f01e" 336 | } 337 | 338 | .fa-refresh:before { 339 | content: "\f021" 340 | } 341 | 342 | .fa-list-alt:before { 343 | content: "\f022" 344 | } 345 | 346 | .fa-lock:before { 347 | content: "\f023" 348 | } 349 | 350 | .fa-flag:before { 351 | content: "\f024" 352 | } 353 | 354 | .fa-headphones:before { 355 | content: "\f025" 356 | } 357 | 358 | .fa-volume-off:before { 359 | content: "\f026" 360 | } 361 | 362 | .fa-volume-down:before { 363 | content: "\f027" 364 | } 365 | 366 | .fa-volume-up:before { 367 | content: "\f028" 368 | } 369 | 370 | .fa-qrcode:before { 371 | content: "\f029" 372 | } 373 | 374 | .fa-barcode:before { 375 | content: "\f02a" 376 | } 377 | 378 | .fa-tag:before { 379 | content: "\f02b" 380 | } 381 | 382 | .fa-tags:before { 383 | content: "\f02c" 384 | } 385 | 386 | .fa-book:before { 387 | content: "\f02d" 388 | } 389 | 390 | .fa-bookmark:before { 391 | content: "\f02e" 392 | } 393 | 394 | .fa-print:before { 395 | content: "\f02f" 396 | } 397 | 398 | .fa-camera:before { 399 | content: "\f030" 400 | } 401 | 402 | .fa-font:before { 403 | content: "\f031" 404 | } 405 | 406 | .fa-bold:before { 407 | content: "\f032" 408 | } 409 | 410 | .fa-italic:before { 411 | content: "\f033" 412 | } 413 | 414 | .fa-text-height:before { 415 | content: "\f034" 416 | } 417 | 418 | .fa-text-width:before { 419 | content: "\f035" 420 | } 421 | 422 | .fa-align-left:before { 423 | content: "\f036" 424 | } 425 | 426 | .fa-align-center:before { 427 | content: "\f037" 428 | } 429 | 430 | .fa-align-right:before { 431 | content: "\f038" 432 | } 433 | 434 | .fa-align-justify:before { 435 | content: "\f039" 436 | } 437 | 438 | .fa-list:before { 439 | content: "\f03a" 440 | } 441 | 442 | .fa-dedent:before, 443 | .fa-outdent:before { 444 | content: "\f03b" 445 | } 446 | 447 | .fa-indent:before { 448 | content: "\f03c" 449 | } 450 | 451 | .fa-video-camera:before { 452 | content: "\f03d" 453 | } 454 | 455 | .fa-photo:before, 456 | .fa-image:before, 457 | .fa-picture-o:before { 458 | content: "\f03e" 459 | } 460 | 461 | .fa-pencil:before { 462 | content: "\f040" 463 | } 464 | 465 | .fa-map-marker:before { 466 | content: "\f041" 467 | } 468 | 469 | .fa-adjust:before { 470 | content: "\f042" 471 | } 472 | 473 | .fa-tint:before { 474 | content: "\f043" 475 | } 476 | 477 | .fa-edit:before, 478 | .fa-pencil-square-o:before { 479 | content: "\f044" 480 | } 481 | 482 | .fa-share-square-o:before { 483 | content: "\f045" 484 | } 485 | 486 | .fa-check-square-o:before { 487 | content: "\f046" 488 | } 489 | 490 | .fa-arrows:before { 491 | content: "\f047" 492 | } 493 | 494 | .fa-step-backward:before { 495 | content: "\f048" 496 | } 497 | 498 | .fa-fast-backward:before { 499 | content: "\f049" 500 | } 501 | 502 | .fa-backward:before { 503 | content: "\f04a" 504 | } 505 | 506 | .fa-play:before { 507 | content: "\f04b" 508 | } 509 | 510 | .fa-pause:before { 511 | content: "\f04c" 512 | } 513 | 514 | .fa-stop:before { 515 | content: "\f04d" 516 | } 517 | 518 | .fa-forward:before { 519 | content: "\f04e" 520 | } 521 | 522 | .fa-fast-forward:before { 523 | content: "\f050" 524 | } 525 | 526 | .fa-step-forward:before { 527 | content: "\f051" 528 | } 529 | 530 | .fa-eject:before { 531 | content: "\f052" 532 | } 533 | 534 | .fa-chevron-left:before { 535 | content: "\f053" 536 | } 537 | 538 | .fa-chevron-right:before { 539 | content: "\f054" 540 | } 541 | 542 | .fa-plus-circle:before { 543 | content: "\f055" 544 | } 545 | 546 | .fa-minus-circle:before { 547 | content: "\f056" 548 | } 549 | 550 | .fa-times-circle:before { 551 | content: "\f057" 552 | } 553 | 554 | .fa-check-circle:before { 555 | content: "\f058" 556 | } 557 | 558 | .fa-question-circle:before { 559 | content: "\f059" 560 | } 561 | 562 | .fa-info-circle:before { 563 | content: "\f05a" 564 | } 565 | 566 | .fa-crosshairs:before { 567 | content: "\f05b" 568 | } 569 | 570 | .fa-times-circle-o:before { 571 | content: "\f05c" 572 | } 573 | 574 | .fa-check-circle-o:before { 575 | content: "\f05d" 576 | } 577 | 578 | .fa-ban:before { 579 | content: "\f05e" 580 | } 581 | 582 | .fa-arrow-left:before { 583 | content: "\f060" 584 | } 585 | 586 | .fa-arrow-right:before { 587 | content: "\f061" 588 | } 589 | 590 | .fa-arrow-up:before { 591 | content: "\f062" 592 | } 593 | 594 | .fa-arrow-down:before { 595 | content: "\f063" 596 | } 597 | 598 | .fa-mail-forward:before, 599 | .fa-share:before { 600 | content: "\f064" 601 | } 602 | 603 | .fa-expand:before { 604 | content: "\f065" 605 | } 606 | 607 | .fa-compress:before { 608 | content: "\f066" 609 | } 610 | 611 | .fa-plus:before { 612 | content: "\f067" 613 | } 614 | 615 | .fa-minus:before { 616 | content: "\f068" 617 | } 618 | 619 | .fa-asterisk:before { 620 | content: "\f069" 621 | } 622 | 623 | .fa-exclamation-circle:before { 624 | content: "\f06a" 625 | } 626 | 627 | .fa-gift:before { 628 | content: "\f06b" 629 | } 630 | 631 | .fa-leaf:before { 632 | content: "\f06c" 633 | } 634 | 635 | .fa-fire:before { 636 | content: "\f06d" 637 | } 638 | 639 | .fa-eye:before { 640 | content: "\f06e" 641 | } 642 | 643 | .fa-eye-slash:before { 644 | content: "\f070" 645 | } 646 | 647 | .fa-warning:before, 648 | .fa-exclamation-triangle:before { 649 | content: "\f071" 650 | } 651 | 652 | .fa-plane:before { 653 | content: "\f072" 654 | } 655 | 656 | .fa-calendar:before { 657 | content: "\f073" 658 | } 659 | 660 | .fa-random:before { 661 | content: "\f074" 662 | } 663 | 664 | .fa-comment:before { 665 | content: "\f075" 666 | } 667 | 668 | .fa-magnet:before { 669 | content: "\f076" 670 | } 671 | 672 | .fa-chevron-up:before { 673 | content: "\f077" 674 | } 675 | 676 | .fa-chevron-down:before { 677 | content: "\f078" 678 | } 679 | 680 | .fa-retweet:before { 681 | content: "\f079" 682 | } 683 | 684 | .fa-shopping-cart:before { 685 | content: "\f07a" 686 | } 687 | 688 | .fa-folder:before { 689 | content: "\f07b" 690 | } 691 | 692 | .fa-folder-open:before { 693 | content: "\f07c" 694 | } 695 | 696 | .fa-arrows-v:before { 697 | content: "\f07d" 698 | } 699 | 700 | .fa-arrows-h:before { 701 | content: "\f07e" 702 | } 703 | 704 | .fa-bar-chart-o:before, 705 | .fa-bar-chart:before { 706 | content: "\f080" 707 | } 708 | 709 | .fa-twitter-square:before { 710 | content: "\f081" 711 | } 712 | 713 | .fa-facebook-square:before { 714 | content: "\f082" 715 | } 716 | 717 | .fa-camera-retro:before { 718 | content: "\f083" 719 | } 720 | 721 | .fa-key:before { 722 | content: "\f084" 723 | } 724 | 725 | .fa-gears:before, 726 | .fa-cogs:before { 727 | content: "\f085" 728 | } 729 | 730 | .fa-comments:before { 731 | content: "\f086" 732 | } 733 | 734 | .fa-thumbs-o-up:before { 735 | content: "\f087" 736 | } 737 | 738 | .fa-thumbs-o-down:before { 739 | content: "\f088" 740 | } 741 | 742 | .fa-star-half:before { 743 | content: "\f089" 744 | } 745 | 746 | .fa-heart-o:before { 747 | content: "\f08a" 748 | } 749 | 750 | .fa-sign-out:before { 751 | content: "\f08b" 752 | } 753 | 754 | .fa-linkedin-square:before { 755 | content: "\f08c" 756 | } 757 | 758 | .fa-thumb-tack:before { 759 | content: "\f08d" 760 | } 761 | 762 | .fa-external-link:before { 763 | content: "\f08e" 764 | } 765 | 766 | .fa-sign-in:before { 767 | content: "\f090" 768 | } 769 | 770 | .fa-trophy:before { 771 | content: "\f091" 772 | } 773 | 774 | .fa-github-square:before { 775 | content: "\f092" 776 | } 777 | 778 | .fa-upload:before { 779 | content: "\f093" 780 | } 781 | 782 | .fa-lemon-o:before { 783 | content: "\f094" 784 | } 785 | 786 | .fa-phone:before { 787 | content: "\f095" 788 | } 789 | 790 | .fa-square-o:before { 791 | content: "\f096" 792 | } 793 | 794 | .fa-bookmark-o:before { 795 | content: "\f097" 796 | } 797 | 798 | .fa-phone-square:before { 799 | content: "\f098" 800 | } 801 | 802 | .fa-twitter:before { 803 | content: "\f099" 804 | } 805 | 806 | .fa-facebook-f:before, 807 | .fa-facebook:before { 808 | content: "\f09a" 809 | } 810 | 811 | .fa-github:before { 812 | content: "\f09b" 813 | } 814 | 815 | .fa-unlock:before { 816 | content: "\f09c" 817 | } 818 | 819 | .fa-credit-card:before { 820 | content: "\f09d" 821 | } 822 | 823 | .fa-feed:before, 824 | .fa-rss:before { 825 | content: "\f09e" 826 | } 827 | 828 | .fa-hdd-o:before { 829 | content: "\f0a0" 830 | } 831 | 832 | .fa-bullhorn:before { 833 | content: "\f0a1" 834 | } 835 | 836 | .fa-bell:before { 837 | content: "\f0f3" 838 | } 839 | 840 | .fa-certificate:before { 841 | content: "\f0a3" 842 | } 843 | 844 | .fa-hand-o-right:before { 845 | content: "\f0a4" 846 | } 847 | 848 | .fa-hand-o-left:before { 849 | content: "\f0a5" 850 | } 851 | 852 | .fa-hand-o-up:before { 853 | content: "\f0a6" 854 | } 855 | 856 | .fa-hand-o-down:before { 857 | content: "\f0a7" 858 | } 859 | 860 | .fa-arrow-circle-left:before { 861 | content: "\f0a8" 862 | } 863 | 864 | .fa-arrow-circle-right:before { 865 | content: "\f0a9" 866 | } 867 | 868 | .fa-arrow-circle-up:before { 869 | content: "\f0aa" 870 | } 871 | 872 | .fa-arrow-circle-down:before { 873 | content: "\f0ab" 874 | } 875 | 876 | .fa-globe:before { 877 | content: "\f0ac" 878 | } 879 | 880 | .fa-wrench:before { 881 | content: "\f0ad" 882 | } 883 | 884 | .fa-tasks:before { 885 | content: "\f0ae" 886 | } 887 | 888 | .fa-filter:before { 889 | content: "\f0b0" 890 | } 891 | 892 | .fa-briefcase:before { 893 | content: "\f0b1" 894 | } 895 | 896 | .fa-arrows-alt:before { 897 | content: "\f0b2" 898 | } 899 | 900 | .fa-group:before, 901 | .fa-users:before { 902 | content: "\f0c0" 903 | } 904 | 905 | .fa-chain:before, 906 | .fa-link:before { 907 | content: "\f0c1" 908 | } 909 | 910 | .fa-cloud:before { 911 | content: "\f0c2" 912 | } 913 | 914 | .fa-flask:before { 915 | content: "\f0c3" 916 | } 917 | 918 | .fa-cut:before, 919 | .fa-scissors:before { 920 | content: "\f0c4" 921 | } 922 | 923 | .fa-copy:before, 924 | .fa-files-o:before { 925 | content: "\f0c5" 926 | } 927 | 928 | .fa-paperclip:before { 929 | content: "\f0c6" 930 | } 931 | 932 | .fa-save:before, 933 | .fa-floppy-o:before { 934 | content: "\f0c7" 935 | } 936 | 937 | .fa-square:before { 938 | content: "\f0c8" 939 | } 940 | 941 | .fa-navicon:before, 942 | .fa-reorder:before, 943 | .fa-bars:before { 944 | content: "\f0c9" 945 | } 946 | 947 | .fa-list-ul:before { 948 | content: "\f0ca" 949 | } 950 | 951 | .fa-list-ol:before { 952 | content: "\f0cb" 953 | } 954 | 955 | .fa-strikethrough:before { 956 | content: "\f0cc" 957 | } 958 | 959 | .fa-underline:before { 960 | content: "\f0cd" 961 | } 962 | 963 | .fa-table:before { 964 | content: "\f0ce" 965 | } 966 | 967 | .fa-magic:before { 968 | content: "\f0d0" 969 | } 970 | 971 | .fa-truck:before { 972 | content: "\f0d1" 973 | } 974 | 975 | .fa-pinterest:before { 976 | content: "\f0d2" 977 | } 978 | 979 | .fa-pinterest-square:before { 980 | content: "\f0d3" 981 | } 982 | 983 | .fa-google-plus-square:before { 984 | content: "\f0d4" 985 | } 986 | 987 | .fa-google-plus:before { 988 | content: "\f0d5" 989 | } 990 | 991 | .fa-money:before { 992 | content: "\f0d6" 993 | } 994 | 995 | .fa-caret-down:before { 996 | content: "\f0d7" 997 | } 998 | 999 | .fa-caret-up:before { 1000 | content: "\f0d8" 1001 | } 1002 | 1003 | .fa-caret-left:before { 1004 | content: "\f0d9" 1005 | } 1006 | 1007 | .fa-caret-right:before { 1008 | content: "\f0da" 1009 | } 1010 | 1011 | .fa-columns:before { 1012 | content: "\f0db" 1013 | } 1014 | 1015 | .fa-unsorted:before, 1016 | .fa-sort:before { 1017 | content: "\f0dc" 1018 | } 1019 | 1020 | .fa-sort-down:before, 1021 | .fa-sort-desc:before { 1022 | content: "\f0dd" 1023 | } 1024 | 1025 | .fa-sort-up:before, 1026 | .fa-sort-asc:before { 1027 | content: "\f0de" 1028 | } 1029 | 1030 | .fa-envelope:before { 1031 | content: "\f0e0" 1032 | } 1033 | 1034 | .fa-linkedin:before { 1035 | content: "\f0e1" 1036 | } 1037 | 1038 | .fa-rotate-left:before, 1039 | .fa-undo:before { 1040 | content: "\f0e2" 1041 | } 1042 | 1043 | .fa-legal:before, 1044 | .fa-gavel:before { 1045 | content: "\f0e3" 1046 | } 1047 | 1048 | .fa-dashboard:before, 1049 | .fa-tachometer:before { 1050 | content: "\f0e4" 1051 | } 1052 | 1053 | .fa-comment-o:before { 1054 | content: "\f0e5" 1055 | } 1056 | 1057 | .fa-comments-o:before { 1058 | content: "\f0e6" 1059 | } 1060 | 1061 | .fa-flash:before, 1062 | .fa-bolt:before { 1063 | content: "\f0e7" 1064 | } 1065 | 1066 | .fa-sitemap:before { 1067 | content: "\f0e8" 1068 | } 1069 | 1070 | .fa-umbrella:before { 1071 | content: "\f0e9" 1072 | } 1073 | 1074 | .fa-paste:before, 1075 | .fa-clipboard:before { 1076 | content: "\f0ea" 1077 | } 1078 | 1079 | .fa-lightbulb-o:before { 1080 | content: "\f0eb" 1081 | } 1082 | 1083 | .fa-exchange:before { 1084 | content: "\f0ec" 1085 | } 1086 | 1087 | .fa-cloud-download:before { 1088 | content: "\f0ed" 1089 | } 1090 | 1091 | .fa-cloud-upload:before { 1092 | content: "\f0ee" 1093 | } 1094 | 1095 | .fa-user-md:before { 1096 | content: "\f0f0" 1097 | } 1098 | 1099 | .fa-stethoscope:before { 1100 | content: "\f0f1" 1101 | } 1102 | 1103 | .fa-suitcase:before { 1104 | content: "\f0f2" 1105 | } 1106 | 1107 | .fa-bell-o:before { 1108 | content: "\f0a2" 1109 | } 1110 | 1111 | .fa-coffee:before { 1112 | content: "\f0f4" 1113 | } 1114 | 1115 | .fa-cutlery:before { 1116 | content: "\f0f5" 1117 | } 1118 | 1119 | .fa-file-text-o:before { 1120 | content: "\f0f6" 1121 | } 1122 | 1123 | .fa-building-o:before { 1124 | content: "\f0f7" 1125 | } 1126 | 1127 | .fa-hospital-o:before { 1128 | content: "\f0f8" 1129 | } 1130 | 1131 | .fa-ambulance:before { 1132 | content: "\f0f9" 1133 | } 1134 | 1135 | .fa-medkit:before { 1136 | content: "\f0fa" 1137 | } 1138 | 1139 | .fa-fighter-jet:before { 1140 | content: "\f0fb" 1141 | } 1142 | 1143 | .fa-beer:before { 1144 | content: "\f0fc" 1145 | } 1146 | 1147 | .fa-h-square:before { 1148 | content: "\f0fd" 1149 | } 1150 | 1151 | .fa-plus-square:before { 1152 | content: "\f0fe" 1153 | } 1154 | 1155 | .fa-angle-double-left:before { 1156 | content: "\f100" 1157 | } 1158 | 1159 | .fa-angle-double-right:before { 1160 | content: "\f101" 1161 | } 1162 | 1163 | .fa-angle-double-up:before { 1164 | content: "\f102" 1165 | } 1166 | 1167 | .fa-angle-double-down:before { 1168 | content: "\f103" 1169 | } 1170 | 1171 | .fa-angle-left:before { 1172 | content: "\f104" 1173 | } 1174 | 1175 | .fa-angle-right:before { 1176 | content: "\f105" 1177 | } 1178 | 1179 | .fa-angle-up:before { 1180 | content: "\f106" 1181 | } 1182 | 1183 | .fa-angle-down:before { 1184 | content: "\f107" 1185 | } 1186 | 1187 | .fa-desktop:before { 1188 | content: "\f108" 1189 | } 1190 | 1191 | .fa-laptop:before { 1192 | content: "\f109" 1193 | } 1194 | 1195 | .fa-tablet:before { 1196 | content: "\f10a" 1197 | } 1198 | 1199 | .fa-mobile-phone:before, 1200 | .fa-mobile:before { 1201 | content: "\f10b" 1202 | } 1203 | 1204 | .fa-circle-o:before { 1205 | content: "\f10c" 1206 | } 1207 | 1208 | .fa-quote-left:before { 1209 | content: "\f10d" 1210 | } 1211 | 1212 | .fa-quote-right:before { 1213 | content: "\f10e" 1214 | } 1215 | 1216 | .fa-spinner:before { 1217 | content: "\f110" 1218 | } 1219 | 1220 | .fa-circle:before { 1221 | content: "\f111" 1222 | } 1223 | 1224 | .fa-mail-reply:before, 1225 | .fa-reply:before { 1226 | content: "\f112" 1227 | } 1228 | 1229 | .fa-github-alt:before { 1230 | content: "\f113" 1231 | } 1232 | 1233 | .fa-folder-o:before { 1234 | content: "\f114" 1235 | } 1236 | 1237 | .fa-folder-open-o:before { 1238 | content: "\f115" 1239 | } 1240 | 1241 | .fa-smile-o:before { 1242 | content: "\f118" 1243 | } 1244 | 1245 | .fa-frown-o:before { 1246 | content: "\f119" 1247 | } 1248 | 1249 | .fa-meh-o:before { 1250 | content: "\f11a" 1251 | } 1252 | 1253 | .fa-gamepad:before { 1254 | content: "\f11b" 1255 | } 1256 | 1257 | .fa-keyboard-o:before { 1258 | content: "\f11c" 1259 | } 1260 | 1261 | .fa-flag-o:before { 1262 | content: "\f11d" 1263 | } 1264 | 1265 | .fa-flag-checkered:before { 1266 | content: "\f11e" 1267 | } 1268 | 1269 | .fa-terminal:before { 1270 | content: "\f120" 1271 | } 1272 | 1273 | .fa-code:before { 1274 | content: "\f121" 1275 | } 1276 | 1277 | .fa-mail-reply-all:before, 1278 | .fa-reply-all:before { 1279 | content: "\f122" 1280 | } 1281 | 1282 | .fa-star-half-empty:before, 1283 | .fa-star-half-full:before, 1284 | .fa-star-half-o:before { 1285 | content: "\f123" 1286 | } 1287 | 1288 | .fa-location-arrow:before { 1289 | content: "\f124" 1290 | } 1291 | 1292 | .fa-crop:before { 1293 | content: "\f125" 1294 | } 1295 | 1296 | .fa-code-fork:before { 1297 | content: "\f126" 1298 | } 1299 | 1300 | .fa-unlink:before, 1301 | .fa-chain-broken:before { 1302 | content: "\f127" 1303 | } 1304 | 1305 | .fa-question:before { 1306 | content: "\f128" 1307 | } 1308 | 1309 | .fa-info:before { 1310 | content: "\f129" 1311 | } 1312 | 1313 | .fa-exclamation:before { 1314 | content: "\f12a" 1315 | } 1316 | 1317 | .fa-superscript:before { 1318 | content: "\f12b" 1319 | } 1320 | 1321 | .fa-subscript:before { 1322 | content: "\f12c" 1323 | } 1324 | 1325 | .fa-eraser:before { 1326 | content: "\f12d" 1327 | } 1328 | 1329 | .fa-puzzle-piece:before { 1330 | content: "\f12e" 1331 | } 1332 | 1333 | .fa-microphone:before { 1334 | content: "\f130" 1335 | } 1336 | 1337 | .fa-microphone-slash:before { 1338 | content: "\f131" 1339 | } 1340 | 1341 | .fa-shield:before { 1342 | content: "\f132" 1343 | } 1344 | 1345 | .fa-calendar-o:before { 1346 | content: "\f133" 1347 | } 1348 | 1349 | .fa-fire-extinguisher:before { 1350 | content: "\f134" 1351 | } 1352 | 1353 | .fa-rocket:before { 1354 | content: "\f135" 1355 | } 1356 | 1357 | .fa-maxcdn:before { 1358 | content: "\f136" 1359 | } 1360 | 1361 | .fa-chevron-circle-left:before { 1362 | content: "\f137" 1363 | } 1364 | 1365 | .fa-chevron-circle-right:before { 1366 | content: "\f138" 1367 | } 1368 | 1369 | .fa-chevron-circle-up:before { 1370 | content: "\f139" 1371 | } 1372 | 1373 | .fa-chevron-circle-down:before { 1374 | content: "\f13a" 1375 | } 1376 | 1377 | .fa-html5:before { 1378 | content: "\f13b" 1379 | } 1380 | 1381 | .fa-css3:before { 1382 | content: "\f13c" 1383 | } 1384 | 1385 | .fa-anchor:before { 1386 | content: "\f13d" 1387 | } 1388 | 1389 | .fa-unlock-alt:before { 1390 | content: "\f13e" 1391 | } 1392 | 1393 | .fa-bullseye:before { 1394 | content: "\f140" 1395 | } 1396 | 1397 | .fa-ellipsis-h:before { 1398 | content: "\f141" 1399 | } 1400 | 1401 | .fa-ellipsis-v:before { 1402 | content: "\f142" 1403 | } 1404 | 1405 | .fa-rss-square:before { 1406 | content: "\f143" 1407 | } 1408 | 1409 | .fa-play-circle:before { 1410 | content: "\f144" 1411 | } 1412 | 1413 | .fa-ticket:before { 1414 | content: "\f145" 1415 | } 1416 | 1417 | .fa-minus-square:before { 1418 | content: "\f146" 1419 | } 1420 | 1421 | .fa-minus-square-o:before { 1422 | content: "\f147" 1423 | } 1424 | 1425 | .fa-level-up:before { 1426 | content: "\f148" 1427 | } 1428 | 1429 | .fa-level-down:before { 1430 | content: "\f149" 1431 | } 1432 | 1433 | .fa-check-square:before { 1434 | content: "\f14a" 1435 | } 1436 | 1437 | .fa-pencil-square:before { 1438 | content: "\f14b" 1439 | } 1440 | 1441 | .fa-external-link-square:before { 1442 | content: "\f14c" 1443 | } 1444 | 1445 | .fa-share-square:before { 1446 | content: "\f14d" 1447 | } 1448 | 1449 | .fa-compass:before { 1450 | content: "\f14e" 1451 | } 1452 | 1453 | .fa-toggle-down:before, 1454 | .fa-caret-square-o-down:before { 1455 | content: "\f150" 1456 | } 1457 | 1458 | .fa-toggle-up:before, 1459 | .fa-caret-square-o-up:before { 1460 | content: "\f151" 1461 | } 1462 | 1463 | .fa-toggle-right:before, 1464 | .fa-caret-square-o-right:before { 1465 | content: "\f152" 1466 | } 1467 | 1468 | .fa-euro:before, 1469 | .fa-eur:before { 1470 | content: "\f153" 1471 | } 1472 | 1473 | .fa-gbp:before { 1474 | content: "\f154" 1475 | } 1476 | 1477 | .fa-dollar:before, 1478 | .fa-usd:before { 1479 | content: "\f155" 1480 | } 1481 | 1482 | .fa-rupee:before, 1483 | .fa-inr:before { 1484 | content: "\f156" 1485 | } 1486 | 1487 | .fa-cny:before, 1488 | .fa-rmb:before, 1489 | .fa-yen:before, 1490 | .fa-jpy:before { 1491 | content: "\f157" 1492 | } 1493 | 1494 | .fa-ruble:before, 1495 | .fa-rouble:before, 1496 | .fa-rub:before { 1497 | content: "\f158" 1498 | } 1499 | 1500 | .fa-won:before, 1501 | .fa-krw:before { 1502 | content: "\f159" 1503 | } 1504 | 1505 | .fa-bitcoin:before, 1506 | .fa-btc:before { 1507 | content: "\f15a" 1508 | } 1509 | 1510 | .fa-file:before { 1511 | content: "\f15b" 1512 | } 1513 | 1514 | .fa-file-text:before { 1515 | content: "\f15c" 1516 | } 1517 | 1518 | .fa-sort-alpha-asc:before { 1519 | content: "\f15d" 1520 | } 1521 | 1522 | .fa-sort-alpha-desc:before { 1523 | content: "\f15e" 1524 | } 1525 | 1526 | .fa-sort-amount-asc:before { 1527 | content: "\f160" 1528 | } 1529 | 1530 | .fa-sort-amount-desc:before { 1531 | content: "\f161" 1532 | } 1533 | 1534 | .fa-sort-numeric-asc:before { 1535 | content: "\f162" 1536 | } 1537 | 1538 | .fa-sort-numeric-desc:before { 1539 | content: "\f163" 1540 | } 1541 | 1542 | .fa-thumbs-up:before { 1543 | content: "\f164" 1544 | } 1545 | 1546 | .fa-thumbs-down:before { 1547 | content: "\f165" 1548 | } 1549 | 1550 | .fa-youtube-square:before { 1551 | content: "\f166" 1552 | } 1553 | 1554 | .fa-youtube:before { 1555 | content: "\f167" 1556 | } 1557 | 1558 | .fa-xing:before { 1559 | content: "\f168" 1560 | } 1561 | 1562 | .fa-xing-square:before { 1563 | content: "\f169" 1564 | } 1565 | 1566 | .fa-youtube-play:before { 1567 | content: "\f16a" 1568 | } 1569 | 1570 | .fa-dropbox:before { 1571 | content: "\f16b" 1572 | } 1573 | 1574 | .fa-stack-overflow:before { 1575 | content: "\f16c" 1576 | } 1577 | 1578 | .fa-instagram:before { 1579 | content: "\f16d" 1580 | } 1581 | 1582 | .fa-flickr:before { 1583 | content: "\f16e" 1584 | } 1585 | 1586 | .fa-adn:before { 1587 | content: "\f170" 1588 | } 1589 | 1590 | .fa-bitbucket:before { 1591 | content: "\f171" 1592 | } 1593 | 1594 | .fa-bitbucket-square:before { 1595 | content: "\f172" 1596 | } 1597 | 1598 | .fa-tumblr:before { 1599 | content: "\f173" 1600 | } 1601 | 1602 | .fa-tumblr-square:before { 1603 | content: "\f174" 1604 | } 1605 | 1606 | .fa-long-arrow-down:before { 1607 | content: "\f175" 1608 | } 1609 | 1610 | .fa-long-arrow-up:before { 1611 | content: "\f176" 1612 | } 1613 | 1614 | .fa-long-arrow-left:before { 1615 | content: "\f177" 1616 | } 1617 | 1618 | .fa-long-arrow-right:before { 1619 | content: "\f178" 1620 | } 1621 | 1622 | .fa-apple:before { 1623 | content: "\f179" 1624 | } 1625 | 1626 | .fa-windows:before { 1627 | content: "\f17a" 1628 | } 1629 | 1630 | .fa-android:before { 1631 | content: "\f17b" 1632 | } 1633 | 1634 | .fa-linux:before { 1635 | content: "\f17c" 1636 | } 1637 | 1638 | .fa-dribbble:before { 1639 | content: "\f17d" 1640 | } 1641 | 1642 | .fa-skype:before { 1643 | content: "\f17e" 1644 | } 1645 | 1646 | .fa-foursquare:before { 1647 | content: "\f180" 1648 | } 1649 | 1650 | .fa-trello:before { 1651 | content: "\f181" 1652 | } 1653 | 1654 | .fa-female:before { 1655 | content: "\f182" 1656 | } 1657 | 1658 | .fa-male:before { 1659 | content: "\f183" 1660 | } 1661 | 1662 | .fa-gittip:before, 1663 | .fa-gratipay:before { 1664 | content: "\f184" 1665 | } 1666 | 1667 | .fa-sun-o:before { 1668 | content: "\f185" 1669 | } 1670 | 1671 | .fa-moon-o:before { 1672 | content: "\f186" 1673 | } 1674 | 1675 | .fa-archive:before { 1676 | content: "\f187" 1677 | } 1678 | 1679 | .fa-bug:before { 1680 | content: "\f188" 1681 | } 1682 | 1683 | .fa-vk:before { 1684 | content: "\f189" 1685 | } 1686 | 1687 | .fa-weibo:before { 1688 | content: "\f18a" 1689 | } 1690 | 1691 | .fa-renren:before { 1692 | content: "\f18b" 1693 | } 1694 | 1695 | .fa-pagelines:before { 1696 | content: "\f18c" 1697 | } 1698 | 1699 | .fa-stack-exchange:before { 1700 | content: "\f18d" 1701 | } 1702 | 1703 | .fa-arrow-circle-o-right:before { 1704 | content: "\f18e" 1705 | } 1706 | 1707 | .fa-arrow-circle-o-left:before { 1708 | content: "\f190" 1709 | } 1710 | 1711 | .fa-toggle-left:before, 1712 | .fa-caret-square-o-left:before { 1713 | content: "\f191" 1714 | } 1715 | 1716 | .fa-dot-circle-o:before { 1717 | content: "\f192" 1718 | } 1719 | 1720 | .fa-wheelchair:before { 1721 | content: "\f193" 1722 | } 1723 | 1724 | .fa-vimeo-square:before { 1725 | content: "\f194" 1726 | } 1727 | 1728 | .fa-turkish-lira:before, 1729 | .fa-try:before { 1730 | content: "\f195" 1731 | } 1732 | 1733 | .fa-plus-square-o:before { 1734 | content: "\f196" 1735 | } 1736 | 1737 | .fa-space-shuttle:before { 1738 | content: "\f197" 1739 | } 1740 | 1741 | .fa-slack:before { 1742 | content: "\f198" 1743 | } 1744 | 1745 | .fa-envelope-square:before { 1746 | content: "\f199" 1747 | } 1748 | 1749 | .fa-wordpress:before { 1750 | content: "\f19a" 1751 | } 1752 | 1753 | .fa-openid:before { 1754 | content: "\f19b" 1755 | } 1756 | 1757 | .fa-institution:before, 1758 | .fa-bank:before, 1759 | .fa-university:before { 1760 | content: "\f19c" 1761 | } 1762 | 1763 | .fa-mortar-board:before, 1764 | .fa-graduation-cap:before { 1765 | content: "\f19d" 1766 | } 1767 | 1768 | .fa-yahoo:before { 1769 | content: "\f19e" 1770 | } 1771 | 1772 | .fa-google:before { 1773 | content: "\f1a0" 1774 | } 1775 | 1776 | .fa-reddit:before { 1777 | content: "\f1a1" 1778 | } 1779 | 1780 | .fa-reddit-square:before { 1781 | content: "\f1a2" 1782 | } 1783 | 1784 | .fa-stumbleupon-circle:before { 1785 | content: "\f1a3" 1786 | } 1787 | 1788 | .fa-stumbleupon:before { 1789 | content: "\f1a4" 1790 | } 1791 | 1792 | .fa-delicious:before { 1793 | content: "\f1a5" 1794 | } 1795 | 1796 | .fa-digg:before { 1797 | content: "\f1a6" 1798 | } 1799 | 1800 | .fa-pied-piper-pp:before { 1801 | content: "\f1a7" 1802 | } 1803 | 1804 | .fa-pied-piper-alt:before { 1805 | content: "\f1a8" 1806 | } 1807 | 1808 | .fa-drupal:before { 1809 | content: "\f1a9" 1810 | } 1811 | 1812 | .fa-joomla:before { 1813 | content: "\f1aa" 1814 | } 1815 | 1816 | .fa-language:before { 1817 | content: "\f1ab" 1818 | } 1819 | 1820 | .fa-fax:before { 1821 | content: "\f1ac" 1822 | } 1823 | 1824 | .fa-building:before { 1825 | content: "\f1ad" 1826 | } 1827 | 1828 | .fa-child:before { 1829 | content: "\f1ae" 1830 | } 1831 | 1832 | .fa-paw:before { 1833 | content: "\f1b0" 1834 | } 1835 | 1836 | .fa-spoon:before { 1837 | content: "\f1b1" 1838 | } 1839 | 1840 | .fa-cube:before { 1841 | content: "\f1b2" 1842 | } 1843 | 1844 | .fa-cubes:before { 1845 | content: "\f1b3" 1846 | } 1847 | 1848 | .fa-behance:before { 1849 | content: "\f1b4" 1850 | } 1851 | 1852 | .fa-behance-square:before { 1853 | content: "\f1b5" 1854 | } 1855 | 1856 | .fa-steam:before { 1857 | content: "\f1b6" 1858 | } 1859 | 1860 | .fa-steam-square:before { 1861 | content: "\f1b7" 1862 | } 1863 | 1864 | .fa-recycle:before { 1865 | content: "\f1b8" 1866 | } 1867 | 1868 | .fa-automobile:before, 1869 | .fa-car:before { 1870 | content: "\f1b9" 1871 | } 1872 | 1873 | .fa-cab:before, 1874 | .fa-taxi:before { 1875 | content: "\f1ba" 1876 | } 1877 | 1878 | .fa-tree:before { 1879 | content: "\f1bb" 1880 | } 1881 | 1882 | .fa-spotify:before { 1883 | content: "\f1bc" 1884 | } 1885 | 1886 | .fa-deviantart:before { 1887 | content: "\f1bd" 1888 | } 1889 | 1890 | .fa-soundcloud:before { 1891 | content: "\f1be" 1892 | } 1893 | 1894 | .fa-database:before { 1895 | content: "\f1c0" 1896 | } 1897 | 1898 | .fa-file-pdf-o:before { 1899 | content: "\f1c1" 1900 | } 1901 | 1902 | .fa-file-word-o:before { 1903 | content: "\f1c2" 1904 | } 1905 | 1906 | .fa-file-excel-o:before { 1907 | content: "\f1c3" 1908 | } 1909 | 1910 | .fa-file-powerpoint-o:before { 1911 | content: "\f1c4" 1912 | } 1913 | 1914 | .fa-file-photo-o:before, 1915 | .fa-file-picture-o:before, 1916 | .fa-file-image-o:before { 1917 | content: "\f1c5" 1918 | } 1919 | 1920 | .fa-file-zip-o:before, 1921 | .fa-file-archive-o:before { 1922 | content: "\f1c6" 1923 | } 1924 | 1925 | .fa-file-sound-o:before, 1926 | .fa-file-audio-o:before { 1927 | content: "\f1c7" 1928 | } 1929 | 1930 | .fa-file-movie-o:before, 1931 | .fa-file-video-o:before { 1932 | content: "\f1c8" 1933 | } 1934 | 1935 | .fa-file-code-o:before { 1936 | content: "\f1c9" 1937 | } 1938 | 1939 | .fa-vine:before { 1940 | content: "\f1ca" 1941 | } 1942 | 1943 | .fa-codepen:before { 1944 | content: "\f1cb" 1945 | } 1946 | 1947 | .fa-jsfiddle:before { 1948 | content: "\f1cc" 1949 | } 1950 | 1951 | .fa-life-bouy:before, 1952 | .fa-life-buoy:before, 1953 | .fa-life-saver:before, 1954 | .fa-support:before, 1955 | .fa-life-ring:before { 1956 | content: "\f1cd" 1957 | } 1958 | 1959 | .fa-circle-o-notch:before { 1960 | content: "\f1ce" 1961 | } 1962 | 1963 | .fa-ra:before, 1964 | .fa-resistance:before, 1965 | .fa-rebel:before { 1966 | content: "\f1d0" 1967 | } 1968 | 1969 | .fa-ge:before, 1970 | .fa-empire:before { 1971 | content: "\f1d1" 1972 | } 1973 | 1974 | .fa-git-square:before { 1975 | content: "\f1d2" 1976 | } 1977 | 1978 | .fa-git:before { 1979 | content: "\f1d3" 1980 | } 1981 | 1982 | .fa-y-combinator-square:before, 1983 | .fa-yc-square:before, 1984 | .fa-hacker-news:before { 1985 | content: "\f1d4" 1986 | } 1987 | 1988 | .fa-tencent-weibo:before { 1989 | content: "\f1d5" 1990 | } 1991 | 1992 | .fa-qq:before { 1993 | content: "\f1d6" 1994 | } 1995 | 1996 | .fa-wechat:before, 1997 | .fa-weixin:before { 1998 | content: "\f1d7" 1999 | } 2000 | 2001 | .fa-send:before, 2002 | .fa-paper-plane:before { 2003 | content: "\f1d8" 2004 | } 2005 | 2006 | .fa-send-o:before, 2007 | .fa-paper-plane-o:before { 2008 | content: "\f1d9" 2009 | } 2010 | 2011 | .fa-history:before { 2012 | content: "\f1da" 2013 | } 2014 | 2015 | .fa-circle-thin:before { 2016 | content: "\f1db" 2017 | } 2018 | 2019 | .fa-header:before { 2020 | content: "\f1dc" 2021 | } 2022 | 2023 | .fa-paragraph:before { 2024 | content: "\f1dd" 2025 | } 2026 | 2027 | .fa-sliders:before { 2028 | content: "\f1de" 2029 | } 2030 | 2031 | .fa-share-alt:before { 2032 | content: "\f1e0" 2033 | } 2034 | 2035 | .fa-share-alt-square:before { 2036 | content: "\f1e1" 2037 | } 2038 | 2039 | .fa-bomb:before { 2040 | content: "\f1e2" 2041 | } 2042 | 2043 | .fa-soccer-ball-o:before, 2044 | .fa-futbol-o:before { 2045 | content: "\f1e3" 2046 | } 2047 | 2048 | .fa-tty:before { 2049 | content: "\f1e4" 2050 | } 2051 | 2052 | .fa-binoculars:before { 2053 | content: "\f1e5" 2054 | } 2055 | 2056 | .fa-plug:before { 2057 | content: "\f1e6" 2058 | } 2059 | 2060 | .fa-slideshare:before { 2061 | content: "\f1e7" 2062 | } 2063 | 2064 | .fa-twitch:before { 2065 | content: "\f1e8" 2066 | } 2067 | 2068 | .fa-yelp:before { 2069 | content: "\f1e9" 2070 | } 2071 | 2072 | .fa-newspaper-o:before { 2073 | content: "\f1ea" 2074 | } 2075 | 2076 | .fa-wifi:before { 2077 | content: "\f1eb" 2078 | } 2079 | 2080 | .fa-calculator:before { 2081 | content: "\f1ec" 2082 | } 2083 | 2084 | .fa-paypal:before { 2085 | content: "\f1ed" 2086 | } 2087 | 2088 | .fa-google-wallet:before { 2089 | content: "\f1ee" 2090 | } 2091 | 2092 | .fa-cc-visa:before { 2093 | content: "\f1f0" 2094 | } 2095 | 2096 | .fa-cc-mastercard:before { 2097 | content: "\f1f1" 2098 | } 2099 | 2100 | .fa-cc-discover:before { 2101 | content: "\f1f2" 2102 | } 2103 | 2104 | .fa-cc-amex:before { 2105 | content: "\f1f3" 2106 | } 2107 | 2108 | .fa-cc-paypal:before { 2109 | content: "\f1f4" 2110 | } 2111 | 2112 | .fa-cc-stripe:before { 2113 | content: "\f1f5" 2114 | } 2115 | 2116 | .fa-bell-slash:before { 2117 | content: "\f1f6" 2118 | } 2119 | 2120 | .fa-bell-slash-o:before { 2121 | content: "\f1f7" 2122 | } 2123 | 2124 | .fa-trash:before { 2125 | content: "\f1f8" 2126 | } 2127 | 2128 | .fa-copyright:before { 2129 | content: "\f1f9" 2130 | } 2131 | 2132 | .fa-at:before { 2133 | content: "\f1fa" 2134 | } 2135 | 2136 | .fa-eyedropper:before { 2137 | content: "\f1fb" 2138 | } 2139 | 2140 | .fa-paint-brush:before { 2141 | content: "\f1fc" 2142 | } 2143 | 2144 | .fa-birthday-cake:before { 2145 | content: "\f1fd" 2146 | } 2147 | 2148 | .fa-area-chart:before { 2149 | content: "\f1fe" 2150 | } 2151 | 2152 | .fa-pie-chart:before { 2153 | content: "\f200" 2154 | } 2155 | 2156 | .fa-line-chart:before { 2157 | content: "\f201" 2158 | } 2159 | 2160 | .fa-lastfm:before { 2161 | content: "\f202" 2162 | } 2163 | 2164 | .fa-lastfm-square:before { 2165 | content: "\f203" 2166 | } 2167 | 2168 | .fa-toggle-off:before { 2169 | content: "\f204" 2170 | } 2171 | 2172 | .fa-toggle-on:before { 2173 | content: "\f205" 2174 | } 2175 | 2176 | .fa-bicycle:before { 2177 | content: "\f206" 2178 | } 2179 | 2180 | .fa-bus:before { 2181 | content: "\f207" 2182 | } 2183 | 2184 | .fa-ioxhost:before { 2185 | content: "\f208" 2186 | } 2187 | 2188 | .fa-angellist:before { 2189 | content: "\f209" 2190 | } 2191 | 2192 | .fa-cc:before { 2193 | content: "\f20a" 2194 | } 2195 | 2196 | .fa-shekel:before, 2197 | .fa-sheqel:before, 2198 | .fa-ils:before { 2199 | content: "\f20b" 2200 | } 2201 | 2202 | .fa-meanpath:before { 2203 | content: "\f20c" 2204 | } 2205 | 2206 | .fa-buysellads:before { 2207 | content: "\f20d" 2208 | } 2209 | 2210 | .fa-connectdevelop:before { 2211 | content: "\f20e" 2212 | } 2213 | 2214 | .fa-dashcube:before { 2215 | content: "\f210" 2216 | } 2217 | 2218 | .fa-forumbee:before { 2219 | content: "\f211" 2220 | } 2221 | 2222 | .fa-leanpub:before { 2223 | content: "\f212" 2224 | } 2225 | 2226 | .fa-sellsy:before { 2227 | content: "\f213" 2228 | } 2229 | 2230 | .fa-shirtsinbulk:before { 2231 | content: "\f214" 2232 | } 2233 | 2234 | .fa-simplybuilt:before { 2235 | content: "\f215" 2236 | } 2237 | 2238 | .fa-skyatlas:before { 2239 | content: "\f216" 2240 | } 2241 | 2242 | .fa-cart-plus:before { 2243 | content: "\f217" 2244 | } 2245 | 2246 | .fa-cart-arrow-down:before { 2247 | content: "\f218" 2248 | } 2249 | 2250 | .fa-diamond:before { 2251 | content: "\f219" 2252 | } 2253 | 2254 | .fa-ship:before { 2255 | content: "\f21a" 2256 | } 2257 | 2258 | .fa-user-secret:before { 2259 | content: "\f21b" 2260 | } 2261 | 2262 | .fa-motorcycle:before { 2263 | content: "\f21c" 2264 | } 2265 | 2266 | .fa-street-view:before { 2267 | content: "\f21d" 2268 | } 2269 | 2270 | .fa-heartbeat:before { 2271 | content: "\f21e" 2272 | } 2273 | 2274 | .fa-venus:before { 2275 | content: "\f221" 2276 | } 2277 | 2278 | .fa-mars:before { 2279 | content: "\f222" 2280 | } 2281 | 2282 | .fa-mercury:before { 2283 | content: "\f223" 2284 | } 2285 | 2286 | .fa-intersex:before, 2287 | .fa-transgender:before { 2288 | content: "\f224" 2289 | } 2290 | 2291 | .fa-transgender-alt:before { 2292 | content: "\f225" 2293 | } 2294 | 2295 | .fa-venus-double:before { 2296 | content: "\f226" 2297 | } 2298 | 2299 | .fa-mars-double:before { 2300 | content: "\f227" 2301 | } 2302 | 2303 | .fa-venus-mars:before { 2304 | content: "\f228" 2305 | } 2306 | 2307 | .fa-mars-stroke:before { 2308 | content: "\f229" 2309 | } 2310 | 2311 | .fa-mars-stroke-v:before { 2312 | content: "\f22a" 2313 | } 2314 | 2315 | .fa-mars-stroke-h:before { 2316 | content: "\f22b" 2317 | } 2318 | 2319 | .fa-neuter:before { 2320 | content: "\f22c" 2321 | } 2322 | 2323 | .fa-genderless:before { 2324 | content: "\f22d" 2325 | } 2326 | 2327 | .fa-facebook-official:before { 2328 | content: "\f230" 2329 | } 2330 | 2331 | .fa-pinterest-p:before { 2332 | content: "\f231" 2333 | } 2334 | 2335 | .fa-whatsapp:before { 2336 | content: "\f232" 2337 | } 2338 | 2339 | .fa-server:before { 2340 | content: "\f233" 2341 | } 2342 | 2343 | .fa-user-plus:before { 2344 | content: "\f234" 2345 | } 2346 | 2347 | .fa-user-times:before { 2348 | content: "\f235" 2349 | } 2350 | 2351 | .fa-hotel:before, 2352 | .fa-bed:before { 2353 | content: "\f236" 2354 | } 2355 | 2356 | .fa-viacoin:before { 2357 | content: "\f237" 2358 | } 2359 | 2360 | .fa-train:before { 2361 | content: "\f238" 2362 | } 2363 | 2364 | .fa-subway:before { 2365 | content: "\f239" 2366 | } 2367 | 2368 | .fa-medium:before { 2369 | content: "\f23a" 2370 | } 2371 | 2372 | .fa-yc:before, 2373 | .fa-y-combinator:before { 2374 | content: "\f23b" 2375 | } 2376 | 2377 | .fa-optin-monster:before { 2378 | content: "\f23c" 2379 | } 2380 | 2381 | .fa-opencart:before { 2382 | content: "\f23d" 2383 | } 2384 | 2385 | .fa-expeditedssl:before { 2386 | content: "\f23e" 2387 | } 2388 | 2389 | .fa-battery-4:before, 2390 | .fa-battery:before, 2391 | .fa-battery-full:before { 2392 | content: "\f240" 2393 | } 2394 | 2395 | .fa-battery-3:before, 2396 | .fa-battery-three-quarters:before { 2397 | content: "\f241" 2398 | } 2399 | 2400 | .fa-battery-2:before, 2401 | .fa-battery-half:before { 2402 | content: "\f242" 2403 | } 2404 | 2405 | .fa-battery-1:before, 2406 | .fa-battery-quarter:before { 2407 | content: "\f243" 2408 | } 2409 | 2410 | .fa-battery-0:before, 2411 | .fa-battery-empty:before { 2412 | content: "\f244" 2413 | } 2414 | 2415 | .fa-mouse-pointer:before { 2416 | content: "\f245" 2417 | } 2418 | 2419 | .fa-i-cursor:before { 2420 | content: "\f246" 2421 | } 2422 | 2423 | .fa-object-group:before { 2424 | content: "\f247" 2425 | } 2426 | 2427 | .fa-object-ungroup:before { 2428 | content: "\f248" 2429 | } 2430 | 2431 | .fa-sticky-note:before { 2432 | content: "\f249" 2433 | } 2434 | 2435 | .fa-sticky-note-o:before { 2436 | content: "\f24a" 2437 | } 2438 | 2439 | .fa-cc-jcb:before { 2440 | content: "\f24b" 2441 | } 2442 | 2443 | .fa-cc-diners-club:before { 2444 | content: "\f24c" 2445 | } 2446 | 2447 | .fa-clone:before { 2448 | content: "\f24d" 2449 | } 2450 | 2451 | .fa-balance-scale:before { 2452 | content: "\f24e" 2453 | } 2454 | 2455 | .fa-hourglass-o:before { 2456 | content: "\f250" 2457 | } 2458 | 2459 | .fa-hourglass-1:before, 2460 | .fa-hourglass-start:before { 2461 | content: "\f251" 2462 | } 2463 | 2464 | .fa-hourglass-2:before, 2465 | .fa-hourglass-half:before { 2466 | content: "\f252" 2467 | } 2468 | 2469 | .fa-hourglass-3:before, 2470 | .fa-hourglass-end:before { 2471 | content: "\f253" 2472 | } 2473 | 2474 | .fa-hourglass:before { 2475 | content: "\f254" 2476 | } 2477 | 2478 | .fa-hand-grab-o:before, 2479 | .fa-hand-rock-o:before { 2480 | content: "\f255" 2481 | } 2482 | 2483 | .fa-hand-stop-o:before, 2484 | .fa-hand-paper-o:before { 2485 | content: "\f256" 2486 | } 2487 | 2488 | .fa-hand-scissors-o:before { 2489 | content: "\f257" 2490 | } 2491 | 2492 | .fa-hand-lizard-o:before { 2493 | content: "\f258" 2494 | } 2495 | 2496 | .fa-hand-spock-o:before { 2497 | content: "\f259" 2498 | } 2499 | 2500 | .fa-hand-pointer-o:before { 2501 | content: "\f25a" 2502 | } 2503 | 2504 | .fa-hand-peace-o:before { 2505 | content: "\f25b" 2506 | } 2507 | 2508 | .fa-trademark:before { 2509 | content: "\f25c" 2510 | } 2511 | 2512 | .fa-registered:before { 2513 | content: "\f25d" 2514 | } 2515 | 2516 | .fa-creative-commons:before { 2517 | content: "\f25e" 2518 | } 2519 | 2520 | .fa-gg:before { 2521 | content: "\f260" 2522 | } 2523 | 2524 | .fa-gg-circle:before { 2525 | content: "\f261" 2526 | } 2527 | 2528 | .fa-tripadvisor:before { 2529 | content: "\f262" 2530 | } 2531 | 2532 | .fa-odnoklassniki:before { 2533 | content: "\f263" 2534 | } 2535 | 2536 | .fa-odnoklassniki-square:before { 2537 | content: "\f264" 2538 | } 2539 | 2540 | .fa-get-pocket:before { 2541 | content: "\f265" 2542 | } 2543 | 2544 | .fa-wikipedia-w:before { 2545 | content: "\f266" 2546 | } 2547 | 2548 | .fa-safari:before { 2549 | content: "\f267" 2550 | } 2551 | 2552 | .fa-chrome:before { 2553 | content: "\f268" 2554 | } 2555 | 2556 | .fa-firefox:before { 2557 | content: "\f269" 2558 | } 2559 | 2560 | .fa-opera:before { 2561 | content: "\f26a" 2562 | } 2563 | 2564 | .fa-internet-explorer:before { 2565 | content: "\f26b" 2566 | } 2567 | 2568 | .fa-tv:before, 2569 | .fa-television:before { 2570 | content: "\f26c" 2571 | } 2572 | 2573 | .fa-contao:before { 2574 | content: "\f26d" 2575 | } 2576 | 2577 | .fa-500px:before { 2578 | content: "\f26e" 2579 | } 2580 | 2581 | .fa-amazon:before { 2582 | content: "\f270" 2583 | } 2584 | 2585 | .fa-calendar-plus-o:before { 2586 | content: "\f271" 2587 | } 2588 | 2589 | .fa-calendar-minus-o:before { 2590 | content: "\f272" 2591 | } 2592 | 2593 | .fa-calendar-times-o:before { 2594 | content: "\f273" 2595 | } 2596 | 2597 | .fa-calendar-check-o:before { 2598 | content: "\f274" 2599 | } 2600 | 2601 | .fa-industry:before { 2602 | content: "\f275" 2603 | } 2604 | 2605 | .fa-map-pin:before { 2606 | content: "\f276" 2607 | } 2608 | 2609 | .fa-map-signs:before { 2610 | content: "\f277" 2611 | } 2612 | 2613 | .fa-map-o:before { 2614 | content: "\f278" 2615 | } 2616 | 2617 | .fa-map:before { 2618 | content: "\f279" 2619 | } 2620 | 2621 | .fa-commenting:before { 2622 | content: "\f27a" 2623 | } 2624 | 2625 | .fa-commenting-o:before { 2626 | content: "\f27b" 2627 | } 2628 | 2629 | .fa-houzz:before { 2630 | content: "\f27c" 2631 | } 2632 | 2633 | .fa-vimeo:before { 2634 | content: "\f27d" 2635 | } 2636 | 2637 | .fa-black-tie:before { 2638 | content: "\f27e" 2639 | } 2640 | 2641 | .fa-fonticons:before { 2642 | content: "\f280" 2643 | } 2644 | 2645 | .fa-reddit-alien:before { 2646 | content: "\f281" 2647 | } 2648 | 2649 | .fa-edge:before { 2650 | content: "\f282" 2651 | } 2652 | 2653 | .fa-credit-card-alt:before { 2654 | content: "\f283" 2655 | } 2656 | 2657 | .fa-codiepie:before { 2658 | content: "\f284" 2659 | } 2660 | 2661 | .fa-modx:before { 2662 | content: "\f285" 2663 | } 2664 | 2665 | .fa-fort-awesome:before { 2666 | content: "\f286" 2667 | } 2668 | 2669 | .fa-usb:before { 2670 | content: "\f287" 2671 | } 2672 | 2673 | .fa-product-hunt:before { 2674 | content: "\f288" 2675 | } 2676 | 2677 | .fa-mixcloud:before { 2678 | content: "\f289" 2679 | } 2680 | 2681 | .fa-scribd:before { 2682 | content: "\f28a" 2683 | } 2684 | 2685 | .fa-pause-circle:before { 2686 | content: "\f28b" 2687 | } 2688 | 2689 | .fa-pause-circle-o:before { 2690 | content: "\f28c" 2691 | } 2692 | 2693 | .fa-stop-circle:before { 2694 | content: "\f28d" 2695 | } 2696 | 2697 | .fa-stop-circle-o:before { 2698 | content: "\f28e" 2699 | } 2700 | 2701 | .fa-shopping-bag:before { 2702 | content: "\f290" 2703 | } 2704 | 2705 | .fa-shopping-basket:before { 2706 | content: "\f291" 2707 | } 2708 | 2709 | .fa-hashtag:before { 2710 | content: "\f292" 2711 | } 2712 | 2713 | .fa-bluetooth:before { 2714 | content: "\f293" 2715 | } 2716 | 2717 | .fa-bluetooth-b:before { 2718 | content: "\f294" 2719 | } 2720 | 2721 | .fa-percent:before { 2722 | content: "\f295" 2723 | } 2724 | 2725 | .fa-gitlab:before { 2726 | content: "\f296" 2727 | } 2728 | 2729 | .fa-wpbeginner:before { 2730 | content: "\f297" 2731 | } 2732 | 2733 | .fa-wpforms:before { 2734 | content: "\f298" 2735 | } 2736 | 2737 | .fa-envira:before { 2738 | content: "\f299" 2739 | } 2740 | 2741 | .fa-universal-access:before { 2742 | content: "\f29a" 2743 | } 2744 | 2745 | .fa-wheelchair-alt:before { 2746 | content: "\f29b" 2747 | } 2748 | 2749 | .fa-question-circle-o:before { 2750 | content: "\f29c" 2751 | } 2752 | 2753 | .fa-blind:before { 2754 | content: "\f29d" 2755 | } 2756 | 2757 | .fa-audio-description:before { 2758 | content: "\f29e" 2759 | } 2760 | 2761 | .fa-volume-control-phone:before { 2762 | content: "\f2a0" 2763 | } 2764 | 2765 | .fa-braille:before { 2766 | content: "\f2a1" 2767 | } 2768 | 2769 | .fa-assistive-listening-systems:before { 2770 | content: "\f2a2" 2771 | } 2772 | 2773 | .fa-asl-interpreting:before, 2774 | .fa-american-sign-language-interpreting:before { 2775 | content: "\f2a3" 2776 | } 2777 | 2778 | .fa-deafness:before, 2779 | .fa-hard-of-hearing:before, 2780 | .fa-deaf:before { 2781 | content: "\f2a4" 2782 | } 2783 | 2784 | .fa-glide:before { 2785 | content: "\f2a5" 2786 | } 2787 | 2788 | .fa-glide-g:before { 2789 | content: "\f2a6" 2790 | } 2791 | 2792 | .fa-signing:before, 2793 | .fa-sign-language:before { 2794 | content: "\f2a7" 2795 | } 2796 | 2797 | .fa-low-vision:before { 2798 | content: "\f2a8" 2799 | } 2800 | 2801 | .fa-viadeo:before { 2802 | content: "\f2a9" 2803 | } 2804 | 2805 | .fa-viadeo-square:before { 2806 | content: "\f2aa" 2807 | } 2808 | 2809 | .fa-snapchat:before { 2810 | content: "\f2ab" 2811 | } 2812 | 2813 | .fa-snapchat-ghost:before { 2814 | content: "\f2ac" 2815 | } 2816 | 2817 | .fa-snapchat-square:before { 2818 | content: "\f2ad" 2819 | } 2820 | 2821 | .fa-pied-piper:before { 2822 | content: "\f2ae" 2823 | } 2824 | 2825 | .fa-first-order:before { 2826 | content: "\f2b0" 2827 | } 2828 | 2829 | .fa-yoast:before { 2830 | content: "\f2b1" 2831 | } 2832 | 2833 | .fa-themeisle:before { 2834 | content: "\f2b2" 2835 | } 2836 | 2837 | .fa-google-plus-circle:before, 2838 | .fa-google-plus-official:before { 2839 | content: "\f2b3" 2840 | } 2841 | 2842 | .fa-fa:before, 2843 | .fa-font-awesome:before { 2844 | content: "\f2b4" 2845 | } 2846 | 2847 | .fa-handshake-o:before { 2848 | content: "\f2b5" 2849 | } 2850 | 2851 | .fa-envelope-open:before { 2852 | content: "\f2b6" 2853 | } 2854 | 2855 | .fa-envelope-open-o:before { 2856 | content: "\f2b7" 2857 | } 2858 | 2859 | .fa-linode:before { 2860 | content: "\f2b8" 2861 | } 2862 | 2863 | .fa-address-book:before { 2864 | content: "\f2b9" 2865 | } 2866 | 2867 | .fa-address-book-o:before { 2868 | content: "\f2ba" 2869 | } 2870 | 2871 | .fa-vcard:before, 2872 | .fa-address-card:before { 2873 | content: "\f2bb" 2874 | } 2875 | 2876 | .fa-vcard-o:before, 2877 | .fa-address-card-o:before { 2878 | content: "\f2bc" 2879 | } 2880 | 2881 | .fa-user-circle:before { 2882 | content: "\f2bd" 2883 | } 2884 | 2885 | .fa-user-circle-o:before { 2886 | content: "\f2be" 2887 | } 2888 | 2889 | .fa-user-o:before { 2890 | content: "\f2c0" 2891 | } 2892 | 2893 | .fa-id-badge:before { 2894 | content: "\f2c1" 2895 | } 2896 | 2897 | .fa-drivers-license:before, 2898 | .fa-id-card:before { 2899 | content: "\f2c2" 2900 | } 2901 | 2902 | .fa-drivers-license-o:before, 2903 | .fa-id-card-o:before { 2904 | content: "\f2c3" 2905 | } 2906 | 2907 | .fa-quora:before { 2908 | content: "\f2c4" 2909 | } 2910 | 2911 | .fa-free-code-camp:before { 2912 | content: "\f2c5" 2913 | } 2914 | 2915 | .fa-telegram:before { 2916 | content: "\f2c6" 2917 | } 2918 | 2919 | .fa-thermometer-4:before, 2920 | .fa-thermometer:before, 2921 | .fa-thermometer-full:before { 2922 | content: "\f2c7" 2923 | } 2924 | 2925 | .fa-thermometer-3:before, 2926 | .fa-thermometer-three-quarters:before { 2927 | content: "\f2c8" 2928 | } 2929 | 2930 | .fa-thermometer-2:before, 2931 | .fa-thermometer-half:before { 2932 | content: "\f2c9" 2933 | } 2934 | 2935 | .fa-thermometer-1:before, 2936 | .fa-thermometer-quarter:before { 2937 | content: "\f2ca" 2938 | } 2939 | 2940 | .fa-thermometer-0:before, 2941 | .fa-thermometer-empty:before { 2942 | content: "\f2cb" 2943 | } 2944 | 2945 | .fa-shower:before { 2946 | content: "\f2cc" 2947 | } 2948 | 2949 | .fa-bathtub:before, 2950 | .fa-s15:before, 2951 | .fa-bath:before { 2952 | content: "\f2cd" 2953 | } 2954 | 2955 | .fa-podcast:before { 2956 | content: "\f2ce" 2957 | } 2958 | 2959 | .fa-window-maximize:before { 2960 | content: "\f2d0" 2961 | } 2962 | 2963 | .fa-window-minimize:before { 2964 | content: "\f2d1" 2965 | } 2966 | 2967 | .fa-window-restore:before { 2968 | content: "\f2d2" 2969 | } 2970 | 2971 | .fa-times-rectangle:before, 2972 | .fa-window-close:before { 2973 | content: "\f2d3" 2974 | } 2975 | 2976 | .fa-times-rectangle-o:before, 2977 | .fa-window-close-o:before { 2978 | content: "\f2d4" 2979 | } 2980 | 2981 | .fa-bandcamp:before { 2982 | content: "\f2d5" 2983 | } 2984 | 2985 | .fa-grav:before { 2986 | content: "\f2d6" 2987 | } 2988 | 2989 | .fa-etsy:before { 2990 | content: "\f2d7" 2991 | } 2992 | 2993 | .fa-imdb:before { 2994 | content: "\f2d8" 2995 | } 2996 | 2997 | .fa-ravelry:before { 2998 | content: "\f2d9" 2999 | } 3000 | 3001 | .fa-eercast:before { 3002 | content: "\f2da" 3003 | } 3004 | 3005 | .fa-microchip:before { 3006 | content: "\f2db" 3007 | } 3008 | 3009 | .fa-snowflake-o:before { 3010 | content: "\f2dc" 3011 | } 3012 | 3013 | .fa-superpowers:before { 3014 | content: "\f2dd" 3015 | } 3016 | 3017 | .fa-wpexplorer:before { 3018 | content: "\f2de" 3019 | } 3020 | 3021 | .fa-meetup:before { 3022 | content: "\f2e0" 3023 | } 3024 | 3025 | .sr-only { 3026 | position: absolute; 3027 | width: 1px; 3028 | height: 1px; 3029 | padding: 0; 3030 | margin: -1px; 3031 | overflow: hidden; 3032 | clip: rect(0, 0, 0, 0); 3033 | border: 0 3034 | } 3035 | 3036 | .sr-only-focusable:active, 3037 | .sr-only-focusable:focus { 3038 | position: static; 3039 | width: auto; 3040 | height: auto; 3041 | margin: 0; 3042 | overflow: visible; 3043 | clip: auto 3044 | } -------------------------------------------------------------------------------- /pages/authorizetip/authorizetip.js: -------------------------------------------------------------------------------- 1 | const util = require('../../utils/util.js') 2 | const app = getApp() 3 | Page({ 4 | //跳转设置页面授权 5 | onGotUserInfo: function(e) { 6 | if (e.detail.errMsg.indexOf('ok') > -1) { 7 | wx.showToast({ 8 | title: '授权成功', 9 | icon: 'success', 10 | duration: 1500, 11 | mask: true 12 | }) 13 | wx.getSetting({ 14 | success: function(res) { 15 | if (res.authSetting['scope.userInfo']) { 16 | wx.showToast({ 17 | title: '授权成功', 18 | icon: 'success', 19 | duration: 1500, 20 | mask: true 21 | }); 22 | //尝试再次登录 23 | wx.reLaunch({ 24 | url: '/pages/index/index' 25 | }) 26 | app.userAuthCb(); 27 | } else { 28 | return; 29 | } 30 | } 31 | }) 32 | } else { 33 | wx.showToast({ 34 | title: '授权失败', 35 | icon: 'none', 36 | duration: 1500, 37 | mask: true 38 | }) 39 | } 40 | } 41 | }) -------------------------------------------------------------------------------- /pages/authorizetip/authorizetip.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "阳光投票", 3 | "navigationBarBackgroundColor": "#7087f4", 4 | "navigationBarTextStyle": "white", 5 | "backgroundTextStyle": "light", 6 | "enablePullDownRefresh": false 7 | } -------------------------------------------------------------------------------- /pages/authorizetip/authorizetip.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 需要您的授权才能使用哦~ 4 | 5 | -------------------------------------------------------------------------------- /pages/authorizetip/authorizetip.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #e1e8f6; 3 | } 4 | 5 | .no-vote-tip { 6 | margin-top: 80rpx; 7 | } 8 | 9 | .no-vote-tip button { 10 | position: absolute; 11 | top: 640rpx; 12 | right: 0; 13 | left: 0; 14 | margin: auto; 15 | width: 412rpx; 16 | height: 84rpx; 17 | line-height: 84rpx; 18 | background-color: #7087f4; 19 | } 20 | 21 | .no-vote-tip text { 22 | position: absolute; 23 | top: 520rpx; 24 | right: 0; 25 | left: 0; 26 | font-size: 30rpx; 27 | color: #707070; 28 | text-align: center; 29 | } -------------------------------------------------------------------------------- /pages/comment/comment.js: -------------------------------------------------------------------------------- 1 | //logs.js 2 | const util = require('../../utils/util.js') 3 | 4 | Page({ 5 | data: { 6 | newVoteTitle: '', 7 | desTextareaState: false, 8 | addNewVoteState: false, 9 | textareaFocusFlag: false, 10 | newVoteWords: 0, 11 | newVoteWordsState: false, 12 | newVoteContent: '', 13 | newVotes: [], 14 | desTextareaData: '', 15 | voteTypeChoosed: 0, 16 | voteTitleLen: 0, 17 | voteDesLen: 0, 18 | desTextareaDataLen: 0, 19 | voteImgs: [], 20 | voteImgPaths: [], 21 | saveBtnState: true, 22 | startDate: '', 23 | valiDate: '', 24 | voteTypes: [ 25 | { name: 'F', value: '公开', checked: true }, 26 | { name: 'T', value: '私密' } 27 | ] 28 | }, 29 | radioChange: function(e) { 30 | let self = this; 31 | let choosedValue = e.detail.value; 32 | if (e.detail.value === "T") { 33 | wx.showModal({ 34 | content: '私密投票只有自己和被分享的朋友才能看到哦~', 35 | success: function(res) { 36 | if (res.confirm) { 37 | self.setData({ 38 | voteTypeChoosed: choosedValue 39 | }) 40 | return; 41 | } else if (res.cancel) { 42 | self.setData({ 43 | voteTypes: [ 44 | { name: 'F', value: '公开', checked: true }, 45 | { name: 'T', value: '私密' } 46 | ] 47 | }) 48 | } 49 | } 50 | }) 51 | } else { 52 | self.setData({ 53 | voteTypeChoosed: choosedValue 54 | }) 55 | } 56 | }, 57 | bindTitleInput: function(e) { 58 | let self = this; 59 | self.setData({ 60 | newVoteTitle: e.detail.value, 61 | voteTitleLen: e.detail.cursor 62 | }) 63 | }, 64 | bindDesTextAreaInput: function(e) { 65 | let self = this; 66 | let desTextLen = e.detail.cursor; 67 | self.setData({ 68 | desTextareaData: e.detail.value, 69 | desTextareaDataLen: e.detail.cursor 70 | }) 71 | }, 72 | bindTextAreaInput: function(e) { 73 | var self = this; 74 | self.setData({ 75 | newVoteWords: e.detail.cursor, 76 | newVoteContent: e.detail.value 77 | }) 78 | if (self.data.newVoteWords === 40) { 79 | self.setData({ 80 | newVoteWordsState: true 81 | }) 82 | } else { 83 | self.setData({ 84 | newVoteWordsState: false 85 | }) 86 | } 87 | }, 88 | onLoad: function() { 89 | let self = this; 90 | let authorization = wx.getStorageSync('authorization'); 91 | const startDate = new Date().toLocaleDateString().replace(/\//g, '-'); 92 | //const endDate = new Date().toLocaleDateString().replace(/\//g, '-'); 93 | self.setData({ 94 | userAuthorization: authorization, 95 | startDate: startDate 96 | }) 97 | }, 98 | addNewVote: function() { 99 | var self = this; 100 | self.setData({ 101 | desTextareaState: !this.data.desTextareaState, 102 | addNewVoteState: !this.data.addNewVoteState, 103 | }) 104 | }, 105 | confirmAddNewVote: function() { 106 | let voteContent = this.data.newVoteContent; 107 | let voteItem = {}; 108 | var self = this; 109 | if (voteContent) { 110 | voteItem.title = voteContent; 111 | } else { 112 | wx.showToast({ 113 | title: '请填写选项内容', 114 | icon: 'none', 115 | duration: 1500 116 | }) 117 | setTimeout(function() { 118 | wx.hideLoading() 119 | }, 2000) 120 | return; 121 | } 122 | self.data.newVotes.push(voteItem); 123 | self.setData({ 124 | desTextareaState: !self.data.desTextareaState, 125 | addNewVoteState: !self.data.addNewVoteState, 126 | newVoteContent: '', 127 | newVotes: self.data.newVotes, 128 | addNewVoteState: false, 129 | newVoteWords: 0, 130 | }); 131 | 132 | }, 133 | closeMask: function() { 134 | var self = this; 135 | self.setData({ 136 | addNewVoteState: false, 137 | newVoteContent: '', 138 | newVoteWords: 0, 139 | newVoteWordsState: false, 140 | desTextareaState: false, 141 | }) 142 | }, 143 | showMask: function() { 144 | var self = this; 145 | self.setData({ 146 | addNewVoteState: false 147 | }) 148 | }, 149 | bindTextAreablur: function() { 150 | var self = this; 151 | self.setData({ 152 | textareaFocusFlag: false 153 | }) 154 | }, 155 | bindTextAreaFocus: function() { 156 | this.setData({ 157 | textareaFocusFlag: true 158 | }) 159 | }, 160 | uploadImg: function() { 161 | var self = this; 162 | let authorization = wx.getStorageSync('authorization'); 163 | 164 | wx.chooseImage({ 165 | count: 1, // 最多可以选择的图片张数 166 | sizeType: ['compressed'], // compressed 压缩 167 | sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 168 | success: function(res) { 169 | let tempFilePaths = res.tempFilePaths 170 | wx.showLoading({ 171 | title: '图片正在上传', 172 | }); 173 | util.request({ // 防止 token 过期 174 | url: util.baseUrl + '/api/me', 175 | method: 'GET', 176 | success: function(res) { 177 | self.data.userAuthorization = wx.getStorageSync('authorization'); 178 | 179 | wx.uploadFile({ 180 | url: util.baseUrl + '/api/images/store', 181 | filePath: tempFilePaths[0], 182 | name: 'image', 183 | header: { 184 | Authorization: authorization 185 | }, 186 | formData: { 187 | 'image': tempFilePaths[0] 188 | }, 189 | success: function(res) { 190 | let resData = JSON.parse(res.data); 191 | let pathObj = {}; 192 | if (res.statusCode === 200) { 193 | let imgUrl = resData.host + resData.path; 194 | wx.hideLoading(); 195 | wx.showToast({ 196 | title: '成功', 197 | icon: 'success' 198 | }); 199 | self.data.voteImgs.push(imgUrl); 200 | pathObj.path = resData.path; 201 | self.data.voteImgPaths.push(pathObj); 202 | self.setData({ 203 | voteImgs: self.data.voteImgs, 204 | voteImgPaths: self.data.voteImgPaths 205 | }) 206 | } else { 207 | wx.showModal({ 208 | title: '提示', 209 | content: '上传失败,请重新上传', 210 | showCancel: false 211 | }) 212 | } 213 | }, 214 | complete: function() { 215 | wx.hideToast(); 216 | } 217 | }) 218 | } 219 | }); 220 | }, 221 | fail: function() { 222 | wx.showToast({ 223 | title: '图片上传失败,请稍后再次上传', 224 | icon: 'none', 225 | duration: 1500 226 | }) 227 | } 228 | }) 229 | }, 230 | bindPreviewImage: function(e) { 231 | var self = this; 232 | wx.previewImage({ 233 | current: e.currentTarget.dataset.src, // 当前显示图片的http链接 234 | urls: self.data.voteImgs // 需要预览的图片http链接列表 235 | }) 236 | }, 237 | delImage: function(e) { 238 | let self = this; 239 | let i = e.currentTarget.dataset.index; 240 | let path = e.currentTarget.dataset.path; 241 | let voteImgs = self.data.voteImgs; 242 | wx.showModal({ 243 | title: '温馨提示', 244 | content: '确认删除该张图片?', 245 | success: function(res) { 246 | if (res.confirm) { 247 | util.request({ 248 | url: util.baseUrl + '/api/image?path=' + path, 249 | method: 'DELETE', 250 | success: function(res) { 251 | if (res.statusCode === 200) { 252 | wx.showToast({ 253 | title: '图片删除成功', 254 | icon: 'success' 255 | }); 256 | voteImgs.splice(i, 1) 257 | self.data.voteImgPaths.splice(i, 1) 258 | self.setData({ 259 | voteImgs: voteImgs, 260 | voteImgPaths: self.data.voteImgPaths 261 | }) 262 | } 263 | }, 264 | complete: function() { 265 | wx.hideToast(); 266 | } 267 | }) 268 | } 269 | } 270 | }) 271 | }, 272 | //设置投票有效期 273 | bindvaliDateChange: function(e) { 274 | let self = this; 275 | let val = e.detail.value; 276 | console.log(val) 277 | self.setData({ 278 | valiDate: val 279 | }) 280 | }, 281 | confirmDelItem: function(e) { 282 | let self = this; 283 | let index = e.currentTarget.dataset.index; 284 | let delData = self.data.newVotes; 285 | wx.showModal({ 286 | title: '温馨提示', 287 | content: '确认删除该投票选项?', 288 | success: function(res) { 289 | if (res.confirm) { 290 | delData.splice(index, 1) 291 | self.setData({ 292 | newVotes: delData 293 | }) 294 | } 295 | } 296 | }) 297 | }, 298 | publishNewVote: function() { 299 | /** 300 | * 标题:newVoteTitle 301 | * 类型:voteTypeChoosed 302 | * 描述:desTextareaData 303 | * 选项:newVotes 304 | */ 305 | let self = this; 306 | let newVoteTitle = self.data.newVoteTitle; 307 | let voteTypeChoosed = self.data.voteTypeChoosed == 0 ? 'F' : self.data.voteTypeChoosed; 308 | let desTextareaData = self.data.desTextareaData; 309 | let newVotes = self.data.newVotes; 310 | let createTime = util.formatTime(new Date()); 311 | if (newVoteTitle == "") { 312 | wx.showToast({ 313 | title: '请输入【投票标题】后再提交', 314 | icon: 'none', 315 | duration: 1500 316 | }) 317 | return; 318 | } else if (self.data.voteTitleLen < 3) { 319 | wx.showToast({ 320 | title: '【投票标题】至少三个字', 321 | icon: 'none', 322 | duration: 1500 323 | }) 324 | return; 325 | } 326 | if (newVotes.length < 2) { 327 | wx.showToast({ 328 | title: '【投票选项】至少两项!', 329 | icon: 'none', 330 | duration: 1500 331 | }) 332 | return; 333 | } 334 | self.setData({ 335 | saveBtnState: false 336 | }); 337 | util.request({ 338 | url: util.baseUrl + '/api/votes', 339 | data: { 340 | title: newVoteTitle, 341 | is_private: voteTypeChoosed, 342 | content: desTextareaData, 343 | options: newVotes, 344 | images: self.data.voteImgPaths 345 | }, 346 | method: 'POST', 347 | success: function(res) { 348 | if (res.statusCode === 422) { 349 | self.setData({ 350 | saveBtnState: true 351 | }); 352 | wx.showModal({ 353 | content: '投票内容包含敏感信息;请先修改再发布', 354 | showCancel: false, 355 | confirmColor: '#7087f4' 356 | }); 357 | return; 358 | } 359 | if (res.statusCode === 200) { 360 | self.setData({ 361 | saveBtnState: true 362 | }) 363 | wx.showToast({ 364 | title: '发布成功', 365 | icon: 'success', 366 | duration: 1500, 367 | mask: true 368 | }) 369 | if (self.data.voteTypeChoosed === 'T') { 370 | wx.reLaunch({ 371 | url: '/pages/index/index?funType=mine' 372 | }) 373 | } else { 374 | wx.reLaunch({ 375 | url: '/pages/index/index?funType=all' 376 | }) 377 | } 378 | } 379 | } 380 | }) 381 | } 382 | }) -------------------------------------------------------------------------------- /pages/comment/comment.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "阳光投票", 3 | "navigationBarBackgroundColor": "#7087f4", 4 | "navigationBarTextStyle": "white", 5 | "backgroundTextStyle": "light" 6 | } -------------------------------------------------------------------------------- /pages/comment/comment.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |