├── README.md ├── Thumbs.db ├── archive ├── README - hotfix.md ├── README - master.md ├── README - persistence.md ├── speechcommands - Copy.html ├── speechcommands from github 3-14-17.html ├── speechcommands from hotfix branch.html ├── speechcommands from persistence branch .html └── speechcommands-Stage.html ├── fiducials.pdf ├── find.html ├── font-awesome └── font-awesome-4.4.0 │ ├── HELP-US-OUT.txt │ ├── css │ ├── font-awesome.css │ └── font-awesome.min.css │ ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 │ ├── less │ ├── animated.less │ ├── bordered-pulled.less │ ├── core.less │ ├── fixed-width.less │ ├── font-awesome.less │ ├── icons.less │ ├── larger.less │ ├── list.less │ ├── mixins.less │ ├── path.less │ ├── rotated-flipped.less │ ├── stacked.less │ └── variables.less │ └── scss │ ├── _animated.scss │ ├── _bordered-pulled.scss │ ├── _core.scss │ ├── _fixed-width.scss │ ├── _icons.scss │ ├── _larger.scss │ ├── _list.scss │ ├── _mixins.scss │ ├── _path.scss │ ├── _rotated-flipped.scss │ ├── _stacked.scss │ ├── _variables.scss │ └── font-awesome.scss ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── mic-animate.gif ├── mic-slash.gif ├── mic.gif ├── navigation extract.txt ├── scripts ├── bootbox.min.js ├── bootstrap.min.css ├── bootstrap.min.js ├── eventemitter2.js ├── eventemitter2.min.js ├── font-awesome.min.css ├── fontawesome-webfont.woff2 ├── jquery-ui.css ├── jquery-ui.min.js ├── jquery.min.js ├── roslib.js └── roslib.min.js └── speechcommands.html /README.md: -------------------------------------------------------------------------------- 1 | # Speech Commands 2 | 3 | Speech Commands runs in a Chrome browser under Android, Windows, 4 | or Linux on whatever computer or phone you are using to control the robot. 5 | IOS is not supported, as it does not support the Web Speech API. Speech Commands uses rosbridge to communicate with the robot. 6 | 7 | If you use an Android phone, the vocabulary can be downloaded, so speech recognition can take place locally. 8 | 9 | The program is contained in a single web page, at present called speechcommands.html, which is loaded from a web server. 10 | The web server (usually) runs on the robot. Thus the program can be loaded whenever the robot is present. 11 | Because of the use of the microphone, HTTPS must be used, which in turn requires WSS for the web socket to communicate with the robot. Because of this, both the server and rosbridge must be set up to accomodate SSL, hence the extra steps in the installation below. 12 | 13 | ##Usage 14 | Follow these instructions to install and run speech commands. 15 | 16 | ### Installation: 17 | 18 | * Note the robot's IP address for later use as a url. 19 | * Install Rosbridge: 20 | 21 | sudo apt-get install ros-kinetic-rosbridge-suite 22 | * Install the apache2 web server. This also installs the ssl-certs package, which sets up the snakeoil certificate and key. 23 | 24 | sudo apt-get install apache2 25 | * Enable the apache2 ssl module 26 | 27 | sudo a2enmod ssl 28 | * Configure apache2 for HTTPS 29 | 30 | sudo make-ssl-cert generate-default-snakeoil --force-overwrite 31 | sudo a2ensite default-ssl 32 | * Restart the service. You should not need to enter a passphrase. 33 | 34 | sudo service apache2 restart 35 | * Test the server by addressing it from a browser, for instance http://10.0.0.25/index.html. You should get the apache2 default page. 36 | * (TODO The default page should be replaced by one that has been customized.) 37 | * Test again using HTTPS. The result should be a security warning, since you are not using a certified ssl key. 38 | * Copy speechcommands.html from wherever it is to /var/www/html on the robot. 39 | * Copy the /scripts and the /fonts folders as subfolders to /var/www/html on the robot. 40 | 41 | Set up a self-signed certificate ("snakeoil") to allow ssl communications between the browser and the robot. 42 | 43 | * Copy /etc/ssl/private/ssl-cert-snakeoil.key to /etc/ssl/certs/ (may need sudo) 44 | * chmod /etc/ssl/certs/ssl-cert-snakeoil.key so it is readable. /etc/ssl/certs/ssl-cert-snakeoil.pem should already be readable. 45 | 46 | sudo chmod 644 /etc/ssl/certs/ssl-cert-snakeoil.key 47 | * Modify these 3 lines of the rosbridge launch file, to tell rosbridge where to find the certificate and key: 48 | (The rosbridge launch file is at /opt/ros/kinetic/share/rosbridge_server/launch/rosbridge_websocket.launch) 49 | 50 | 51 | 52 | 53 | 54 | 55 | * Install tf2_web_republisher 56 | 57 | sudo apt-get install ros-kinetic-tf2-web-republisher 58 | 59 | 60 | ### Startup 61 | 62 | Each time you wish to start using speech commands: 63 | 64 | * Bring up your robot. On Loki, you would run loki_base. 65 | 66 | * Launch the rosbridge_server on the robot: (Refer to http://wiki.ros.org/rosbridge_suite/Tutorials/RunningRosbridge) 67 | 68 | roslaunch rosbridge_server rosbridge_websocket.launch 69 | * Run the tf2_web_republisher on the robot: 70 | 71 | rosrun tf2_web_republisher tf2_web_republisher 72 | * In the Chrome browser on your laptop or Android phone, load the speechcommands.html page, using https with the robot's url. The first time, the browser will respond with an error message, which essentially asks you to OK trusting the self-signed certificate. 73 | * in the speechcommands.html page, enter the url with port number (usually 9090) 74 | 75 | :9090 76 | into the Robot URL box and click the Connect button. The button should now say Disconnect, and you should hear "Connected". 77 | If you intend using speech, use "wss" or "https" for the robot's websocket address; 78 | otherwise you can still click the arrows if you use "ws" or "http". 79 | 80 | ### Running 81 | * Click any arrow to move the robot. 82 | * Click the Microphone to use speech. You will be requested to allow the use of the mike. Do it. 83 | * Say, "forward", or other commands. Check the Help for valid commands. 84 | * In environments where there is a lot of competing speech, you can turn on the "Wakeup Word" feature, in Settings. When it is on, all commands must be prefaced by the wakeup word, "robot". 85 | 86 | #To Do / Issues 87 | Though you can set waypoints, they are not persistent across shutdown/restart. 88 | 89 | #Dependencies 90 | 91 | In the robot: rosbridge_server and tf2_web_republisher. 92 | In the browser: See the *link* and *script* statements in the code. 93 | 94 | # Build 95 | 96 | # License 97 | 98 | # Authors 99 | Joe Landau 100 | jrlandau@gmail.com 101 | 7/5/16 102 | -------------------------------------------------------------------------------- /Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/Thumbs.db -------------------------------------------------------------------------------- /archive/README - hotfix.md: -------------------------------------------------------------------------------- 1 | # Speech Commands 2 | 3 | Speech Commands runs in a Chrome browser under Android, Windows, 4 | or Linux on whatever computer or phone you are using to control the robot. 5 | IOS is not supported, as it does not support the Web Speech API. Speech Commands uses rosbridge to communicate with the robot. 6 | 7 | If you use an Android phone, the vocabulary can be downloaded, so speech recognition can take place locally. 8 | 9 | The program is contained in a single web page, at present called speechcommands.html, which is loaded from a web server. 10 | The web server (usually) runs on the robot. Thus the program can be loaded whenever the robot is present. 11 | Because of the use of the microphone, HTTPS must be used, which in turn requires WSS for the web socket to communicate with the robot. Because of this, both the server and rosbridge must be set up to accomodate SSL, hence the extra steps in the installation below. 12 | 13 | ##Usage 14 | Follow these instructions to install and run speech commands. 15 | 16 | ### Installation: 17 | 18 | * Note the robot's IP address for later use as a url. 19 | * Install Rosbridge: 20 | 21 | sudo apt-get install ros-indigo-rosbridge-suite. 22 | * Install the apache2 web server. This also installs the ssl-certs package, which sets up the snakeoil certificate and key. 23 | 24 | sudo apt-get install apache2. 25 | * Enable the apache2 ssl module 26 | 27 | sudo a2enmod ssl 28 | * Configure apache2 for HTTPS 29 | 30 | sudo a2ensite default-ssl 31 | * Restart the service. You should not need to enter a passphrase. 32 | 33 | sudo service apache2 restart 34 | * Test the server by addressing it from a browser, for instance http://10.0.0.25/index.html. You should get the apache2 default page. 35 | * (TODO The default page should be replaced by one that has been customized.) 36 | * Test again using HTTPS. The result should be a security warning, since you are not using a certified ssl key. 37 | * Copy speechcommands.html from wherever it is to /var/www/html on the robot. 38 | * Copy the /scripts and the /fonts folders as subfolders to /var/www/html on the robot. 39 | 40 | * Copy /etc/ssl/private/ssl-cert-snakeoil.key to /etc/ssl/certs/ (may need sudo) 41 | * chmod /etc/ssl/certs/ssl-cert-snakeoil.key so it is readable. /etc/ssl/certs/ssl-cert-snakeoil.pem should already be readable. 42 | 43 | sudo chmod 644 /etc/ssl/certs/ssl-cert-snakeoil.key 44 | * Modify these 3 lines of the rosbridge launch file: 45 | (The rosbridge launch file is at /opt/ros/indigo/share/rosbridge_server/launch/rosbridge_websocket.launch) 46 | 47 | 48 | 49 | 50 | 51 | 52 | * Install tf2_web_republisher 53 | 54 | sudo apt-get install ros-indigo-tf2-web-republisher 55 | 56 | 57 | ### Startup 58 | 59 | Each time you wish to start using speech commands: 60 | 61 | * Bring up your robot. On Loki, you would run loki_base. 62 | 63 | * Launch the rosbridge_server on the robot: (Refer to http://wiki.ros.org/rosbridge_suite/Tutorials/RunningRosbridge) 64 | 65 | roslaunch rosbridge_server rosbridge_websocket.launch. 66 | * Run the tf2_web_republisher on the robot: 67 | 68 | rosrun tf2_web_republisher tf2_web_republisher 69 | * In the Chrome browser on your laptop or Android phone, load the speechcommands.html page, using https with the robot's url. 70 | * in the speechcommands.html page, enter the url with port number (usually 9090) 71 | 72 | :9090 73 | into the Robot URL box and click the Connect button. The button should now say Disconnect, and you should hear "Connected". 74 | If you intend using speech, use "wss" or "https" for the robot's websocket address; 75 | otherwise you can still click the arrows if you use "ws" or "http". 76 | 77 | ### Running 78 | * Click any arrow to move the robot. 79 | * Click the Microphone to use speech. You will be requested to allow the use of the mike. Do it. 80 | * Say, "forward", or other commands. Check the Help for valid commands. 81 | * In environments where there is a lot of competing speech, you can turn on the "Wakeup Word" feature, in Settings. When it is on, all commands must be prefaced by the wakeup word, "robot". 82 | 83 | #To Do / Issues 84 | Though you can set waypoints, they are not persistent across shutdown/restart. 85 | 86 | #Dependencies 87 | 88 | In the robot: rosbridge_server and tf2_web_republisher. 89 | In the browser: See the *link* and *script* statements in the code. 90 | 91 | # Build 92 | 93 | # License 94 | 95 | # Authors 96 | Joe Landau 97 | jrlandau@gmail.com 98 | 7/5/16 99 | -------------------------------------------------------------------------------- /archive/README - master.md: -------------------------------------------------------------------------------- 1 | # Speech Commands 2 | 3 | Speech Commands runs in a Chrome browser under Android, Windows, 4 | or Linux on whatever computer or phone you are using to control the robot. 5 | IOS is not supported, as it does not support the Web Speech API. Speech Commands uses rosbridge to communicate with the robot. 6 | 7 | If you use an Android phone, the vocabulary can be downloaded, so speech recognition can take place locally. 8 | 9 | The program is contained in a single web page, at present called speechcommands.html, which is loaded from a web server. 10 | The web server (usually) runs on the robot. Thus the program can be loaded whenever the robot is present. 11 | Because of the use of the microphone, HTTPS must be used, which in turn requires WSS for the web socket to communicate with the robot. Because of this, both the server and rosbridge must be set up to accomodate SSL, hence the extra steps in the installation below. 12 | 13 | ##Usage 14 | Follow these instructions to install and run speech commands. 15 | 16 | ### Installation: 17 | 18 | * Note the robot's IP address for later use as a url. 19 | * Install Rosbridge: 20 | 21 | sudo apt-get install ros-indigo-rosbridge-suite. 22 | * Install the apache2 web server. This also installs the ssl-certs package, which sets up the snakeoil certificate and key. 23 | 24 | sudo apt-get install apache2. 25 | * Enable the apache2 ssl module 26 | 27 | sudo a2enmod ssl 28 | * Configure apache2 for HTTPS 29 | 30 | sudo a2ensite default-ssl 31 | * Restart the service. You should not need to enter a passphrase. 32 | 33 | sudo service apache2 restart 34 | * Test the server by addressing it from a browser, for instance http://10.0.0.25/index.html. You should get the apache2 default page. 35 | * (TODO The default page should be replaced by one that has been customized.) 36 | * Test again using HTTPS. The result should be a security warning, since you are not using a certified ssl key. 37 | * Copy speechcommands.html from wherever it is to /var/www/html on the robot. 38 | * Copy the /scripts and the /fonts folders as subfolders to /var/www/html on the robot. 39 | 40 | Set up a self-signed certificate ("snakeoil") to allow ssl communications between the browser and the robot. 41 | 42 | * Copy /etc/ssl/private/ssl-cert-snakeoil.key to /etc/ssl/certs/ (may need sudo) 43 | * chmod /etc/ssl/certs/ssl-cert-snakeoil.key so it is readable. /etc/ssl/certs/ssl-cert-snakeoil.pem should already be readable. 44 | 45 | sudo chmod 644 /etc/ssl/certs/ssl-cert-snakeoil.key 46 | * Modify these 3 lines of the rosbridge launch file, to tell rosbridge where to find the certificate and key: 47 | (The rosbridge launch file is at /opt/ros/indigo/share/rosbridge_server/launch/rosbridge_websocket.launch) 48 | 49 | 50 | 51 | 52 | 53 | 54 | * Install tf2_web_republisher 55 | 56 | sudo apt-get install ros-indigo-tf2-web-republisher 57 | 58 | 59 | ### Startup 60 | 61 | Each time you wish to start using speech commands: 62 | 63 | * Bring up your robot. On Loki, you would run loki_base. 64 | 65 | * Launch the rosbridge_server on the robot: (Refer to http://wiki.ros.org/rosbridge_suite/Tutorials/RunningRosbridge) 66 | 67 | roslaunch rosbridge_server rosbridge_websocket.launch. 68 | * Run the tf2_web_republisher on the robot: 69 | 70 | rosrun tf2_web_republisher tf2_web_republisher 71 | * In the Chrome browser on your laptop or Android phone, load the speechcommands.html page, using https with the robot's url. The first time, the browser will respond with an error message, which essentially asks you to OK trusting the self-signed certificate. 72 | * in the speechcommands.html page, enter the url with port number (usually 9090) 73 | 74 | :9090 75 | into the Robot URL box and click the Connect button. The button should now say Disconnect, and you should hear "Connected". 76 | If you intend using speech, use "wss" or "https" for the robot's websocket address; 77 | otherwise you can still click the arrows if you use "ws" or "http". 78 | 79 | ### Running 80 | * Click any arrow to move the robot. 81 | * Click the Microphone to use speech. You will be requested to allow the use of the mike. Do it. 82 | * Say, "forward", or other commands. Check the Help for valid commands. 83 | * In environments where there is a lot of competing speech, you can turn on the "Wakeup Word" feature, in Settings. When it is on, all commands must be prefaced by the wakeup word, "robot". 84 | 85 | #To Do / Issues 86 | Though you can set waypoints, they are not persistent across shutdown/restart. 87 | 88 | #Dependencies 89 | 90 | In the robot: rosbridge_server and tf2_web_republisher. 91 | In the browser: See the *link* and *script* statements in the code. 92 | 93 | # Build 94 | 95 | # License 96 | 97 | # Authors 98 | Joe Landau 99 | jrlandau@gmail.com 100 | 7/5/16 101 | -------------------------------------------------------------------------------- /archive/README - persistence.md: -------------------------------------------------------------------------------- 1 | # Speech Commands 2 | 3 | Speech Commands runs in a Chrome browser under Android, Windows, 4 | or Linux on whatever computer or phone you are using to control the robot. 5 | IOS is not supported, as it does not support the Web Speech API. Speech Commands uses rosbridge to communicate with the robot. 6 | 7 | If you use an Android phone, the vocabulary can be downloaded, so speech recognition can take place locally. 8 | 9 | The program is contained in a single web page, at present called speechcommands.html, which is loaded from a web server. 10 | The web server (usually) runs on the robot. Thus the program can be loaded whenever the robot is present. 11 | Because of the use of the microphone, HTTPS must be used, which in turn requires WSS for the web socket to communicate with the robot. Because of this, both the server and rosbridge must be set up to accomodate SSL, hence the extra steps in the installation below. 12 | 13 | ##Usage 14 | Follow these instructions to install and run speech commands. 15 | 16 | ### Installation: 17 | 18 | * Note the robot's IP address for later use as a url. 19 | * Install Rosbridge: 20 | 21 | sudo apt-get install ros-indigo-rosbridge-suite. 22 | * Install the apache2 web server. This also installs the ssl-certs package, which sets up the snakeoil certificate and key. 23 | 24 | sudo apt-get install apache2. 25 | * Enable the apache2 ssl module 26 | 27 | sudo a2enmod ssl 28 | * Configure apache2 for HTTPS 29 | 30 | sudo a2ensite default-ssl 31 | * Restart the service. You should not need to enter a passphrase. 32 | 33 | sudo service apache2 restart 34 | * Test the server by addressing it from a browser, for instance http://10.0.0.25/index.html. You should get the apache2 default page. 35 | * (TODO The default page should be replaced by one that has been customized.) 36 | * Test again using HTTPS. The result should be a security warning, since you are not using a certified ssl key. 37 | * Copy speechcommands.html from wherever it is to /var/www/html on the robot. 38 | * Copy the /scripts and the /fonts folders as subfolders to /var/www/html on the robot. 39 | 40 | * Copy /etc/ssl/private/ssl-cert-snakeoil.key to /etc/ssl/certs/ (may need sudo) 41 | * chmod /etc/ssl/certs/ssl-cert-snakeoil.key so it is readable. /etc/ssl/certs/ssl-cert-snakeoil.pem should already be readable. 42 | 43 | sudo chmod 644 /etc/ssl/certs/ssl-cert-snakeoil.key 44 | * Modify these 3 lines of the rosbridge launch file: 45 | (The rosbridge launch file is at /opt/ros/indigo/share/rosbridge_server/launch/rosbridge_websocket.launch) 46 | 47 | 48 | 49 | 50 | 51 | 52 | * Install tf2_web_republisher 53 | 54 | sudo apt-get install ros-indigo-tf2-web-republisher 55 | 56 | 57 | ### Startup 58 | 59 | Each time you wish to start using speech commands: 60 | 61 | * Bring up your robot. On Loki, you would run loki_base. 62 | 63 | * Launch the rosbridge_server on the robot: (Refer to http://wiki.ros.org/rosbridge_suite/Tutorials/RunningRosbridge) 64 | 65 | roslaunch rosbridge_server rosbridge_websocket.launch. 66 | * Run the tf2_web_republisher on the robot: 67 | 68 | rosrun tf2_web_republisher tf2_web_republisher 69 | * In the Chrome browser on your laptop or Android phone, load the speechcommands.html page, using https with the robot's url. 70 | * in the speechcommands.html page, enter the url with port number (usually 9090) 71 | 72 | :9090 73 | into the Robot URL box and click the Connect button. The button should now say Disconnect, and you should hear "Connected". 74 | If you intend using speech, use "wss" or "https" for the robot's websocket address; 75 | otherwise you can still click the arrows if you use "ws" or "http". 76 | 77 | ### Running 78 | * Click any arrow to move the robot. 79 | * Click the Microphone to use speech. You will be requested to allow the use of the mike. Do it. 80 | * Say, "forward", or other commands. Check the Help for valid commands. 81 | * In environments where there is a lot of competing speech, you can turn on the "Wakeup Word" feature, in Settings. When it is on, all commands must be prefaced by the wakeup word, "robot". 82 | 83 | #To Do / Issues 84 | Though you can set waypoints, they are not persistent across shutdown/restart. 85 | 86 | #Dependencies 87 | 88 | In the robot: rosbridge_server and tf2_web_republisher. 89 | In the browser: See the *link* and *script* statements in the code. 90 | 91 | # Build 92 | 93 | # License 94 | 95 | # Authors 96 | Joe Landau 97 | jrlandau@gmail.com 98 | 7/5/16 99 | -------------------------------------------------------------------------------- /fiducials.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fiducials.pdf -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.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.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.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}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.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}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-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-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.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,.fa-gratipay: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-y-combinator-square:before,.fa-yc-square:before,.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"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} 5 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/font-awesome/font-awesome-4.4.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/font-awesome/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | @fa-font-size-base: 14px; 6 | @fa-line-height-base: 1; 7 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.4.0/fonts"; // for referencing Bootstrap CDN font files directly 8 | @fa-css-prefix: fa; 9 | @fa-version: "4.4.0"; 10 | @fa-border-color: #eee; 11 | @fa-inverse: #fff; 12 | @fa-li-width: (30em / 14); 13 | 14 | @fa-var-500px: "\f26e"; 15 | @fa-var-adjust: "\f042"; 16 | @fa-var-adn: "\f170"; 17 | @fa-var-align-center: "\f037"; 18 | @fa-var-align-justify: "\f039"; 19 | @fa-var-align-left: "\f036"; 20 | @fa-var-align-right: "\f038"; 21 | @fa-var-amazon: "\f270"; 22 | @fa-var-ambulance: "\f0f9"; 23 | @fa-var-anchor: "\f13d"; 24 | @fa-var-android: "\f17b"; 25 | @fa-var-angellist: "\f209"; 26 | @fa-var-angle-double-down: "\f103"; 27 | @fa-var-angle-double-left: "\f100"; 28 | @fa-var-angle-double-right: "\f101"; 29 | @fa-var-angle-double-up: "\f102"; 30 | @fa-var-angle-down: "\f107"; 31 | @fa-var-angle-left: "\f104"; 32 | @fa-var-angle-right: "\f105"; 33 | @fa-var-angle-up: "\f106"; 34 | @fa-var-apple: "\f179"; 35 | @fa-var-archive: "\f187"; 36 | @fa-var-area-chart: "\f1fe"; 37 | @fa-var-arrow-circle-down: "\f0ab"; 38 | @fa-var-arrow-circle-left: "\f0a8"; 39 | @fa-var-arrow-circle-o-down: "\f01a"; 40 | @fa-var-arrow-circle-o-left: "\f190"; 41 | @fa-var-arrow-circle-o-right: "\f18e"; 42 | @fa-var-arrow-circle-o-up: "\f01b"; 43 | @fa-var-arrow-circle-right: "\f0a9"; 44 | @fa-var-arrow-circle-up: "\f0aa"; 45 | @fa-var-arrow-down: "\f063"; 46 | @fa-var-arrow-left: "\f060"; 47 | @fa-var-arrow-right: "\f061"; 48 | @fa-var-arrow-up: "\f062"; 49 | @fa-var-arrows: "\f047"; 50 | @fa-var-arrows-alt: "\f0b2"; 51 | @fa-var-arrows-h: "\f07e"; 52 | @fa-var-arrows-v: "\f07d"; 53 | @fa-var-asterisk: "\f069"; 54 | @fa-var-at: "\f1fa"; 55 | @fa-var-automobile: "\f1b9"; 56 | @fa-var-backward: "\f04a"; 57 | @fa-var-balance-scale: "\f24e"; 58 | @fa-var-ban: "\f05e"; 59 | @fa-var-bank: "\f19c"; 60 | @fa-var-bar-chart: "\f080"; 61 | @fa-var-bar-chart-o: "\f080"; 62 | @fa-var-barcode: "\f02a"; 63 | @fa-var-bars: "\f0c9"; 64 | @fa-var-battery-0: "\f244"; 65 | @fa-var-battery-1: "\f243"; 66 | @fa-var-battery-2: "\f242"; 67 | @fa-var-battery-3: "\f241"; 68 | @fa-var-battery-4: "\f240"; 69 | @fa-var-battery-empty: "\f244"; 70 | @fa-var-battery-full: "\f240"; 71 | @fa-var-battery-half: "\f242"; 72 | @fa-var-battery-quarter: "\f243"; 73 | @fa-var-battery-three-quarters: "\f241"; 74 | @fa-var-bed: "\f236"; 75 | @fa-var-beer: "\f0fc"; 76 | @fa-var-behance: "\f1b4"; 77 | @fa-var-behance-square: "\f1b5"; 78 | @fa-var-bell: "\f0f3"; 79 | @fa-var-bell-o: "\f0a2"; 80 | @fa-var-bell-slash: "\f1f6"; 81 | @fa-var-bell-slash-o: "\f1f7"; 82 | @fa-var-bicycle: "\f206"; 83 | @fa-var-binoculars: "\f1e5"; 84 | @fa-var-birthday-cake: "\f1fd"; 85 | @fa-var-bitbucket: "\f171"; 86 | @fa-var-bitbucket-square: "\f172"; 87 | @fa-var-bitcoin: "\f15a"; 88 | @fa-var-black-tie: "\f27e"; 89 | @fa-var-bold: "\f032"; 90 | @fa-var-bolt: "\f0e7"; 91 | @fa-var-bomb: "\f1e2"; 92 | @fa-var-book: "\f02d"; 93 | @fa-var-bookmark: "\f02e"; 94 | @fa-var-bookmark-o: "\f097"; 95 | @fa-var-briefcase: "\f0b1"; 96 | @fa-var-btc: "\f15a"; 97 | @fa-var-bug: "\f188"; 98 | @fa-var-building: "\f1ad"; 99 | @fa-var-building-o: "\f0f7"; 100 | @fa-var-bullhorn: "\f0a1"; 101 | @fa-var-bullseye: "\f140"; 102 | @fa-var-bus: "\f207"; 103 | @fa-var-buysellads: "\f20d"; 104 | @fa-var-cab: "\f1ba"; 105 | @fa-var-calculator: "\f1ec"; 106 | @fa-var-calendar: "\f073"; 107 | @fa-var-calendar-check-o: "\f274"; 108 | @fa-var-calendar-minus-o: "\f272"; 109 | @fa-var-calendar-o: "\f133"; 110 | @fa-var-calendar-plus-o: "\f271"; 111 | @fa-var-calendar-times-o: "\f273"; 112 | @fa-var-camera: "\f030"; 113 | @fa-var-camera-retro: "\f083"; 114 | @fa-var-car: "\f1b9"; 115 | @fa-var-caret-down: "\f0d7"; 116 | @fa-var-caret-left: "\f0d9"; 117 | @fa-var-caret-right: "\f0da"; 118 | @fa-var-caret-square-o-down: "\f150"; 119 | @fa-var-caret-square-o-left: "\f191"; 120 | @fa-var-caret-square-o-right: "\f152"; 121 | @fa-var-caret-square-o-up: "\f151"; 122 | @fa-var-caret-up: "\f0d8"; 123 | @fa-var-cart-arrow-down: "\f218"; 124 | @fa-var-cart-plus: "\f217"; 125 | @fa-var-cc: "\f20a"; 126 | @fa-var-cc-amex: "\f1f3"; 127 | @fa-var-cc-diners-club: "\f24c"; 128 | @fa-var-cc-discover: "\f1f2"; 129 | @fa-var-cc-jcb: "\f24b"; 130 | @fa-var-cc-mastercard: "\f1f1"; 131 | @fa-var-cc-paypal: "\f1f4"; 132 | @fa-var-cc-stripe: "\f1f5"; 133 | @fa-var-cc-visa: "\f1f0"; 134 | @fa-var-certificate: "\f0a3"; 135 | @fa-var-chain: "\f0c1"; 136 | @fa-var-chain-broken: "\f127"; 137 | @fa-var-check: "\f00c"; 138 | @fa-var-check-circle: "\f058"; 139 | @fa-var-check-circle-o: "\f05d"; 140 | @fa-var-check-square: "\f14a"; 141 | @fa-var-check-square-o: "\f046"; 142 | @fa-var-chevron-circle-down: "\f13a"; 143 | @fa-var-chevron-circle-left: "\f137"; 144 | @fa-var-chevron-circle-right: "\f138"; 145 | @fa-var-chevron-circle-up: "\f139"; 146 | @fa-var-chevron-down: "\f078"; 147 | @fa-var-chevron-left: "\f053"; 148 | @fa-var-chevron-right: "\f054"; 149 | @fa-var-chevron-up: "\f077"; 150 | @fa-var-child: "\f1ae"; 151 | @fa-var-chrome: "\f268"; 152 | @fa-var-circle: "\f111"; 153 | @fa-var-circle-o: "\f10c"; 154 | @fa-var-circle-o-notch: "\f1ce"; 155 | @fa-var-circle-thin: "\f1db"; 156 | @fa-var-clipboard: "\f0ea"; 157 | @fa-var-clock-o: "\f017"; 158 | @fa-var-clone: "\f24d"; 159 | @fa-var-close: "\f00d"; 160 | @fa-var-cloud: "\f0c2"; 161 | @fa-var-cloud-download: "\f0ed"; 162 | @fa-var-cloud-upload: "\f0ee"; 163 | @fa-var-cny: "\f157"; 164 | @fa-var-code: "\f121"; 165 | @fa-var-code-fork: "\f126"; 166 | @fa-var-codepen: "\f1cb"; 167 | @fa-var-coffee: "\f0f4"; 168 | @fa-var-cog: "\f013"; 169 | @fa-var-cogs: "\f085"; 170 | @fa-var-columns: "\f0db"; 171 | @fa-var-comment: "\f075"; 172 | @fa-var-comment-o: "\f0e5"; 173 | @fa-var-commenting: "\f27a"; 174 | @fa-var-commenting-o: "\f27b"; 175 | @fa-var-comments: "\f086"; 176 | @fa-var-comments-o: "\f0e6"; 177 | @fa-var-compass: "\f14e"; 178 | @fa-var-compress: "\f066"; 179 | @fa-var-connectdevelop: "\f20e"; 180 | @fa-var-contao: "\f26d"; 181 | @fa-var-copy: "\f0c5"; 182 | @fa-var-copyright: "\f1f9"; 183 | @fa-var-creative-commons: "\f25e"; 184 | @fa-var-credit-card: "\f09d"; 185 | @fa-var-crop: "\f125"; 186 | @fa-var-crosshairs: "\f05b"; 187 | @fa-var-css3: "\f13c"; 188 | @fa-var-cube: "\f1b2"; 189 | @fa-var-cubes: "\f1b3"; 190 | @fa-var-cut: "\f0c4"; 191 | @fa-var-cutlery: "\f0f5"; 192 | @fa-var-dashboard: "\f0e4"; 193 | @fa-var-dashcube: "\f210"; 194 | @fa-var-database: "\f1c0"; 195 | @fa-var-dedent: "\f03b"; 196 | @fa-var-delicious: "\f1a5"; 197 | @fa-var-desktop: "\f108"; 198 | @fa-var-deviantart: "\f1bd"; 199 | @fa-var-diamond: "\f219"; 200 | @fa-var-digg: "\f1a6"; 201 | @fa-var-dollar: "\f155"; 202 | @fa-var-dot-circle-o: "\f192"; 203 | @fa-var-download: "\f019"; 204 | @fa-var-dribbble: "\f17d"; 205 | @fa-var-dropbox: "\f16b"; 206 | @fa-var-drupal: "\f1a9"; 207 | @fa-var-edit: "\f044"; 208 | @fa-var-eject: "\f052"; 209 | @fa-var-ellipsis-h: "\f141"; 210 | @fa-var-ellipsis-v: "\f142"; 211 | @fa-var-empire: "\f1d1"; 212 | @fa-var-envelope: "\f0e0"; 213 | @fa-var-envelope-o: "\f003"; 214 | @fa-var-envelope-square: "\f199"; 215 | @fa-var-eraser: "\f12d"; 216 | @fa-var-eur: "\f153"; 217 | @fa-var-euro: "\f153"; 218 | @fa-var-exchange: "\f0ec"; 219 | @fa-var-exclamation: "\f12a"; 220 | @fa-var-exclamation-circle: "\f06a"; 221 | @fa-var-exclamation-triangle: "\f071"; 222 | @fa-var-expand: "\f065"; 223 | @fa-var-expeditedssl: "\f23e"; 224 | @fa-var-external-link: "\f08e"; 225 | @fa-var-external-link-square: "\f14c"; 226 | @fa-var-eye: "\f06e"; 227 | @fa-var-eye-slash: "\f070"; 228 | @fa-var-eyedropper: "\f1fb"; 229 | @fa-var-facebook: "\f09a"; 230 | @fa-var-facebook-f: "\f09a"; 231 | @fa-var-facebook-official: "\f230"; 232 | @fa-var-facebook-square: "\f082"; 233 | @fa-var-fast-backward: "\f049"; 234 | @fa-var-fast-forward: "\f050"; 235 | @fa-var-fax: "\f1ac"; 236 | @fa-var-feed: "\f09e"; 237 | @fa-var-female: "\f182"; 238 | @fa-var-fighter-jet: "\f0fb"; 239 | @fa-var-file: "\f15b"; 240 | @fa-var-file-archive-o: "\f1c6"; 241 | @fa-var-file-audio-o: "\f1c7"; 242 | @fa-var-file-code-o: "\f1c9"; 243 | @fa-var-file-excel-o: "\f1c3"; 244 | @fa-var-file-image-o: "\f1c5"; 245 | @fa-var-file-movie-o: "\f1c8"; 246 | @fa-var-file-o: "\f016"; 247 | @fa-var-file-pdf-o: "\f1c1"; 248 | @fa-var-file-photo-o: "\f1c5"; 249 | @fa-var-file-picture-o: "\f1c5"; 250 | @fa-var-file-powerpoint-o: "\f1c4"; 251 | @fa-var-file-sound-o: "\f1c7"; 252 | @fa-var-file-text: "\f15c"; 253 | @fa-var-file-text-o: "\f0f6"; 254 | @fa-var-file-video-o: "\f1c8"; 255 | @fa-var-file-word-o: "\f1c2"; 256 | @fa-var-file-zip-o: "\f1c6"; 257 | @fa-var-files-o: "\f0c5"; 258 | @fa-var-film: "\f008"; 259 | @fa-var-filter: "\f0b0"; 260 | @fa-var-fire: "\f06d"; 261 | @fa-var-fire-extinguisher: "\f134"; 262 | @fa-var-firefox: "\f269"; 263 | @fa-var-flag: "\f024"; 264 | @fa-var-flag-checkered: "\f11e"; 265 | @fa-var-flag-o: "\f11d"; 266 | @fa-var-flash: "\f0e7"; 267 | @fa-var-flask: "\f0c3"; 268 | @fa-var-flickr: "\f16e"; 269 | @fa-var-floppy-o: "\f0c7"; 270 | @fa-var-folder: "\f07b"; 271 | @fa-var-folder-o: "\f114"; 272 | @fa-var-folder-open: "\f07c"; 273 | @fa-var-folder-open-o: "\f115"; 274 | @fa-var-font: "\f031"; 275 | @fa-var-fonticons: "\f280"; 276 | @fa-var-forumbee: "\f211"; 277 | @fa-var-forward: "\f04e"; 278 | @fa-var-foursquare: "\f180"; 279 | @fa-var-frown-o: "\f119"; 280 | @fa-var-futbol-o: "\f1e3"; 281 | @fa-var-gamepad: "\f11b"; 282 | @fa-var-gavel: "\f0e3"; 283 | @fa-var-gbp: "\f154"; 284 | @fa-var-ge: "\f1d1"; 285 | @fa-var-gear: "\f013"; 286 | @fa-var-gears: "\f085"; 287 | @fa-var-genderless: "\f22d"; 288 | @fa-var-get-pocket: "\f265"; 289 | @fa-var-gg: "\f260"; 290 | @fa-var-gg-circle: "\f261"; 291 | @fa-var-gift: "\f06b"; 292 | @fa-var-git: "\f1d3"; 293 | @fa-var-git-square: "\f1d2"; 294 | @fa-var-github: "\f09b"; 295 | @fa-var-github-alt: "\f113"; 296 | @fa-var-github-square: "\f092"; 297 | @fa-var-gittip: "\f184"; 298 | @fa-var-glass: "\f000"; 299 | @fa-var-globe: "\f0ac"; 300 | @fa-var-google: "\f1a0"; 301 | @fa-var-google-plus: "\f0d5"; 302 | @fa-var-google-plus-square: "\f0d4"; 303 | @fa-var-google-wallet: "\f1ee"; 304 | @fa-var-graduation-cap: "\f19d"; 305 | @fa-var-gratipay: "\f184"; 306 | @fa-var-group: "\f0c0"; 307 | @fa-var-h-square: "\f0fd"; 308 | @fa-var-hacker-news: "\f1d4"; 309 | @fa-var-hand-grab-o: "\f255"; 310 | @fa-var-hand-lizard-o: "\f258"; 311 | @fa-var-hand-o-down: "\f0a7"; 312 | @fa-var-hand-o-left: "\f0a5"; 313 | @fa-var-hand-o-right: "\f0a4"; 314 | @fa-var-hand-o-up: "\f0a6"; 315 | @fa-var-hand-paper-o: "\f256"; 316 | @fa-var-hand-peace-o: "\f25b"; 317 | @fa-var-hand-pointer-o: "\f25a"; 318 | @fa-var-hand-rock-o: "\f255"; 319 | @fa-var-hand-scissors-o: "\f257"; 320 | @fa-var-hand-spock-o: "\f259"; 321 | @fa-var-hand-stop-o: "\f256"; 322 | @fa-var-hdd-o: "\f0a0"; 323 | @fa-var-header: "\f1dc"; 324 | @fa-var-headphones: "\f025"; 325 | @fa-var-heart: "\f004"; 326 | @fa-var-heart-o: "\f08a"; 327 | @fa-var-heartbeat: "\f21e"; 328 | @fa-var-history: "\f1da"; 329 | @fa-var-home: "\f015"; 330 | @fa-var-hospital-o: "\f0f8"; 331 | @fa-var-hotel: "\f236"; 332 | @fa-var-hourglass: "\f254"; 333 | @fa-var-hourglass-1: "\f251"; 334 | @fa-var-hourglass-2: "\f252"; 335 | @fa-var-hourglass-3: "\f253"; 336 | @fa-var-hourglass-end: "\f253"; 337 | @fa-var-hourglass-half: "\f252"; 338 | @fa-var-hourglass-o: "\f250"; 339 | @fa-var-hourglass-start: "\f251"; 340 | @fa-var-houzz: "\f27c"; 341 | @fa-var-html5: "\f13b"; 342 | @fa-var-i-cursor: "\f246"; 343 | @fa-var-ils: "\f20b"; 344 | @fa-var-image: "\f03e"; 345 | @fa-var-inbox: "\f01c"; 346 | @fa-var-indent: "\f03c"; 347 | @fa-var-industry: "\f275"; 348 | @fa-var-info: "\f129"; 349 | @fa-var-info-circle: "\f05a"; 350 | @fa-var-inr: "\f156"; 351 | @fa-var-instagram: "\f16d"; 352 | @fa-var-institution: "\f19c"; 353 | @fa-var-internet-explorer: "\f26b"; 354 | @fa-var-intersex: "\f224"; 355 | @fa-var-ioxhost: "\f208"; 356 | @fa-var-italic: "\f033"; 357 | @fa-var-joomla: "\f1aa"; 358 | @fa-var-jpy: "\f157"; 359 | @fa-var-jsfiddle: "\f1cc"; 360 | @fa-var-key: "\f084"; 361 | @fa-var-keyboard-o: "\f11c"; 362 | @fa-var-krw: "\f159"; 363 | @fa-var-language: "\f1ab"; 364 | @fa-var-laptop: "\f109"; 365 | @fa-var-lastfm: "\f202"; 366 | @fa-var-lastfm-square: "\f203"; 367 | @fa-var-leaf: "\f06c"; 368 | @fa-var-leanpub: "\f212"; 369 | @fa-var-legal: "\f0e3"; 370 | @fa-var-lemon-o: "\f094"; 371 | @fa-var-level-down: "\f149"; 372 | @fa-var-level-up: "\f148"; 373 | @fa-var-life-bouy: "\f1cd"; 374 | @fa-var-life-buoy: "\f1cd"; 375 | @fa-var-life-ring: "\f1cd"; 376 | @fa-var-life-saver: "\f1cd"; 377 | @fa-var-lightbulb-o: "\f0eb"; 378 | @fa-var-line-chart: "\f201"; 379 | @fa-var-link: "\f0c1"; 380 | @fa-var-linkedin: "\f0e1"; 381 | @fa-var-linkedin-square: "\f08c"; 382 | @fa-var-linux: "\f17c"; 383 | @fa-var-list: "\f03a"; 384 | @fa-var-list-alt: "\f022"; 385 | @fa-var-list-ol: "\f0cb"; 386 | @fa-var-list-ul: "\f0ca"; 387 | @fa-var-location-arrow: "\f124"; 388 | @fa-var-lock: "\f023"; 389 | @fa-var-long-arrow-down: "\f175"; 390 | @fa-var-long-arrow-left: "\f177"; 391 | @fa-var-long-arrow-right: "\f178"; 392 | @fa-var-long-arrow-up: "\f176"; 393 | @fa-var-magic: "\f0d0"; 394 | @fa-var-magnet: "\f076"; 395 | @fa-var-mail-forward: "\f064"; 396 | @fa-var-mail-reply: "\f112"; 397 | @fa-var-mail-reply-all: "\f122"; 398 | @fa-var-male: "\f183"; 399 | @fa-var-map: "\f279"; 400 | @fa-var-map-marker: "\f041"; 401 | @fa-var-map-o: "\f278"; 402 | @fa-var-map-pin: "\f276"; 403 | @fa-var-map-signs: "\f277"; 404 | @fa-var-mars: "\f222"; 405 | @fa-var-mars-double: "\f227"; 406 | @fa-var-mars-stroke: "\f229"; 407 | @fa-var-mars-stroke-h: "\f22b"; 408 | @fa-var-mars-stroke-v: "\f22a"; 409 | @fa-var-maxcdn: "\f136"; 410 | @fa-var-meanpath: "\f20c"; 411 | @fa-var-medium: "\f23a"; 412 | @fa-var-medkit: "\f0fa"; 413 | @fa-var-meh-o: "\f11a"; 414 | @fa-var-mercury: "\f223"; 415 | @fa-var-microphone: "\f130"; 416 | @fa-var-microphone-slash: "\f131"; 417 | @fa-var-minus: "\f068"; 418 | @fa-var-minus-circle: "\f056"; 419 | @fa-var-minus-square: "\f146"; 420 | @fa-var-minus-square-o: "\f147"; 421 | @fa-var-mobile: "\f10b"; 422 | @fa-var-mobile-phone: "\f10b"; 423 | @fa-var-money: "\f0d6"; 424 | @fa-var-moon-o: "\f186"; 425 | @fa-var-mortar-board: "\f19d"; 426 | @fa-var-motorcycle: "\f21c"; 427 | @fa-var-mouse-pointer: "\f245"; 428 | @fa-var-music: "\f001"; 429 | @fa-var-navicon: "\f0c9"; 430 | @fa-var-neuter: "\f22c"; 431 | @fa-var-newspaper-o: "\f1ea"; 432 | @fa-var-object-group: "\f247"; 433 | @fa-var-object-ungroup: "\f248"; 434 | @fa-var-odnoklassniki: "\f263"; 435 | @fa-var-odnoklassniki-square: "\f264"; 436 | @fa-var-opencart: "\f23d"; 437 | @fa-var-openid: "\f19b"; 438 | @fa-var-opera: "\f26a"; 439 | @fa-var-optin-monster: "\f23c"; 440 | @fa-var-outdent: "\f03b"; 441 | @fa-var-pagelines: "\f18c"; 442 | @fa-var-paint-brush: "\f1fc"; 443 | @fa-var-paper-plane: "\f1d8"; 444 | @fa-var-paper-plane-o: "\f1d9"; 445 | @fa-var-paperclip: "\f0c6"; 446 | @fa-var-paragraph: "\f1dd"; 447 | @fa-var-paste: "\f0ea"; 448 | @fa-var-pause: "\f04c"; 449 | @fa-var-paw: "\f1b0"; 450 | @fa-var-paypal: "\f1ed"; 451 | @fa-var-pencil: "\f040"; 452 | @fa-var-pencil-square: "\f14b"; 453 | @fa-var-pencil-square-o: "\f044"; 454 | @fa-var-phone: "\f095"; 455 | @fa-var-phone-square: "\f098"; 456 | @fa-var-photo: "\f03e"; 457 | @fa-var-picture-o: "\f03e"; 458 | @fa-var-pie-chart: "\f200"; 459 | @fa-var-pied-piper: "\f1a7"; 460 | @fa-var-pied-piper-alt: "\f1a8"; 461 | @fa-var-pinterest: "\f0d2"; 462 | @fa-var-pinterest-p: "\f231"; 463 | @fa-var-pinterest-square: "\f0d3"; 464 | @fa-var-plane: "\f072"; 465 | @fa-var-play: "\f04b"; 466 | @fa-var-play-circle: "\f144"; 467 | @fa-var-play-circle-o: "\f01d"; 468 | @fa-var-plug: "\f1e6"; 469 | @fa-var-plus: "\f067"; 470 | @fa-var-plus-circle: "\f055"; 471 | @fa-var-plus-square: "\f0fe"; 472 | @fa-var-plus-square-o: "\f196"; 473 | @fa-var-power-off: "\f011"; 474 | @fa-var-print: "\f02f"; 475 | @fa-var-puzzle-piece: "\f12e"; 476 | @fa-var-qq: "\f1d6"; 477 | @fa-var-qrcode: "\f029"; 478 | @fa-var-question: "\f128"; 479 | @fa-var-question-circle: "\f059"; 480 | @fa-var-quote-left: "\f10d"; 481 | @fa-var-quote-right: "\f10e"; 482 | @fa-var-ra: "\f1d0"; 483 | @fa-var-random: "\f074"; 484 | @fa-var-rebel: "\f1d0"; 485 | @fa-var-recycle: "\f1b8"; 486 | @fa-var-reddit: "\f1a1"; 487 | @fa-var-reddit-square: "\f1a2"; 488 | @fa-var-refresh: "\f021"; 489 | @fa-var-registered: "\f25d"; 490 | @fa-var-remove: "\f00d"; 491 | @fa-var-renren: "\f18b"; 492 | @fa-var-reorder: "\f0c9"; 493 | @fa-var-repeat: "\f01e"; 494 | @fa-var-reply: "\f112"; 495 | @fa-var-reply-all: "\f122"; 496 | @fa-var-retweet: "\f079"; 497 | @fa-var-rmb: "\f157"; 498 | @fa-var-road: "\f018"; 499 | @fa-var-rocket: "\f135"; 500 | @fa-var-rotate-left: "\f0e2"; 501 | @fa-var-rotate-right: "\f01e"; 502 | @fa-var-rouble: "\f158"; 503 | @fa-var-rss: "\f09e"; 504 | @fa-var-rss-square: "\f143"; 505 | @fa-var-rub: "\f158"; 506 | @fa-var-ruble: "\f158"; 507 | @fa-var-rupee: "\f156"; 508 | @fa-var-safari: "\f267"; 509 | @fa-var-save: "\f0c7"; 510 | @fa-var-scissors: "\f0c4"; 511 | @fa-var-search: "\f002"; 512 | @fa-var-search-minus: "\f010"; 513 | @fa-var-search-plus: "\f00e"; 514 | @fa-var-sellsy: "\f213"; 515 | @fa-var-send: "\f1d8"; 516 | @fa-var-send-o: "\f1d9"; 517 | @fa-var-server: "\f233"; 518 | @fa-var-share: "\f064"; 519 | @fa-var-share-alt: "\f1e0"; 520 | @fa-var-share-alt-square: "\f1e1"; 521 | @fa-var-share-square: "\f14d"; 522 | @fa-var-share-square-o: "\f045"; 523 | @fa-var-shekel: "\f20b"; 524 | @fa-var-sheqel: "\f20b"; 525 | @fa-var-shield: "\f132"; 526 | @fa-var-ship: "\f21a"; 527 | @fa-var-shirtsinbulk: "\f214"; 528 | @fa-var-shopping-cart: "\f07a"; 529 | @fa-var-sign-in: "\f090"; 530 | @fa-var-sign-out: "\f08b"; 531 | @fa-var-signal: "\f012"; 532 | @fa-var-simplybuilt: "\f215"; 533 | @fa-var-sitemap: "\f0e8"; 534 | @fa-var-skyatlas: "\f216"; 535 | @fa-var-skype: "\f17e"; 536 | @fa-var-slack: "\f198"; 537 | @fa-var-sliders: "\f1de"; 538 | @fa-var-slideshare: "\f1e7"; 539 | @fa-var-smile-o: "\f118"; 540 | @fa-var-soccer-ball-o: "\f1e3"; 541 | @fa-var-sort: "\f0dc"; 542 | @fa-var-sort-alpha-asc: "\f15d"; 543 | @fa-var-sort-alpha-desc: "\f15e"; 544 | @fa-var-sort-amount-asc: "\f160"; 545 | @fa-var-sort-amount-desc: "\f161"; 546 | @fa-var-sort-asc: "\f0de"; 547 | @fa-var-sort-desc: "\f0dd"; 548 | @fa-var-sort-down: "\f0dd"; 549 | @fa-var-sort-numeric-asc: "\f162"; 550 | @fa-var-sort-numeric-desc: "\f163"; 551 | @fa-var-sort-up: "\f0de"; 552 | @fa-var-soundcloud: "\f1be"; 553 | @fa-var-space-shuttle: "\f197"; 554 | @fa-var-spinner: "\f110"; 555 | @fa-var-spoon: "\f1b1"; 556 | @fa-var-spotify: "\f1bc"; 557 | @fa-var-square: "\f0c8"; 558 | @fa-var-square-o: "\f096"; 559 | @fa-var-stack-exchange: "\f18d"; 560 | @fa-var-stack-overflow: "\f16c"; 561 | @fa-var-star: "\f005"; 562 | @fa-var-star-half: "\f089"; 563 | @fa-var-star-half-empty: "\f123"; 564 | @fa-var-star-half-full: "\f123"; 565 | @fa-var-star-half-o: "\f123"; 566 | @fa-var-star-o: "\f006"; 567 | @fa-var-steam: "\f1b6"; 568 | @fa-var-steam-square: "\f1b7"; 569 | @fa-var-step-backward: "\f048"; 570 | @fa-var-step-forward: "\f051"; 571 | @fa-var-stethoscope: "\f0f1"; 572 | @fa-var-sticky-note: "\f249"; 573 | @fa-var-sticky-note-o: "\f24a"; 574 | @fa-var-stop: "\f04d"; 575 | @fa-var-street-view: "\f21d"; 576 | @fa-var-strikethrough: "\f0cc"; 577 | @fa-var-stumbleupon: "\f1a4"; 578 | @fa-var-stumbleupon-circle: "\f1a3"; 579 | @fa-var-subscript: "\f12c"; 580 | @fa-var-subway: "\f239"; 581 | @fa-var-suitcase: "\f0f2"; 582 | @fa-var-sun-o: "\f185"; 583 | @fa-var-superscript: "\f12b"; 584 | @fa-var-support: "\f1cd"; 585 | @fa-var-table: "\f0ce"; 586 | @fa-var-tablet: "\f10a"; 587 | @fa-var-tachometer: "\f0e4"; 588 | @fa-var-tag: "\f02b"; 589 | @fa-var-tags: "\f02c"; 590 | @fa-var-tasks: "\f0ae"; 591 | @fa-var-taxi: "\f1ba"; 592 | @fa-var-television: "\f26c"; 593 | @fa-var-tencent-weibo: "\f1d5"; 594 | @fa-var-terminal: "\f120"; 595 | @fa-var-text-height: "\f034"; 596 | @fa-var-text-width: "\f035"; 597 | @fa-var-th: "\f00a"; 598 | @fa-var-th-large: "\f009"; 599 | @fa-var-th-list: "\f00b"; 600 | @fa-var-thumb-tack: "\f08d"; 601 | @fa-var-thumbs-down: "\f165"; 602 | @fa-var-thumbs-o-down: "\f088"; 603 | @fa-var-thumbs-o-up: "\f087"; 604 | @fa-var-thumbs-up: "\f164"; 605 | @fa-var-ticket: "\f145"; 606 | @fa-var-times: "\f00d"; 607 | @fa-var-times-circle: "\f057"; 608 | @fa-var-times-circle-o: "\f05c"; 609 | @fa-var-tint: "\f043"; 610 | @fa-var-toggle-down: "\f150"; 611 | @fa-var-toggle-left: "\f191"; 612 | @fa-var-toggle-off: "\f204"; 613 | @fa-var-toggle-on: "\f205"; 614 | @fa-var-toggle-right: "\f152"; 615 | @fa-var-toggle-up: "\f151"; 616 | @fa-var-trademark: "\f25c"; 617 | @fa-var-train: "\f238"; 618 | @fa-var-transgender: "\f224"; 619 | @fa-var-transgender-alt: "\f225"; 620 | @fa-var-trash: "\f1f8"; 621 | @fa-var-trash-o: "\f014"; 622 | @fa-var-tree: "\f1bb"; 623 | @fa-var-trello: "\f181"; 624 | @fa-var-tripadvisor: "\f262"; 625 | @fa-var-trophy: "\f091"; 626 | @fa-var-truck: "\f0d1"; 627 | @fa-var-try: "\f195"; 628 | @fa-var-tty: "\f1e4"; 629 | @fa-var-tumblr: "\f173"; 630 | @fa-var-tumblr-square: "\f174"; 631 | @fa-var-turkish-lira: "\f195"; 632 | @fa-var-tv: "\f26c"; 633 | @fa-var-twitch: "\f1e8"; 634 | @fa-var-twitter: "\f099"; 635 | @fa-var-twitter-square: "\f081"; 636 | @fa-var-umbrella: "\f0e9"; 637 | @fa-var-underline: "\f0cd"; 638 | @fa-var-undo: "\f0e2"; 639 | @fa-var-university: "\f19c"; 640 | @fa-var-unlink: "\f127"; 641 | @fa-var-unlock: "\f09c"; 642 | @fa-var-unlock-alt: "\f13e"; 643 | @fa-var-unsorted: "\f0dc"; 644 | @fa-var-upload: "\f093"; 645 | @fa-var-usd: "\f155"; 646 | @fa-var-user: "\f007"; 647 | @fa-var-user-md: "\f0f0"; 648 | @fa-var-user-plus: "\f234"; 649 | @fa-var-user-secret: "\f21b"; 650 | @fa-var-user-times: "\f235"; 651 | @fa-var-users: "\f0c0"; 652 | @fa-var-venus: "\f221"; 653 | @fa-var-venus-double: "\f226"; 654 | @fa-var-venus-mars: "\f228"; 655 | @fa-var-viacoin: "\f237"; 656 | @fa-var-video-camera: "\f03d"; 657 | @fa-var-vimeo: "\f27d"; 658 | @fa-var-vimeo-square: "\f194"; 659 | @fa-var-vine: "\f1ca"; 660 | @fa-var-vk: "\f189"; 661 | @fa-var-volume-down: "\f027"; 662 | @fa-var-volume-off: "\f026"; 663 | @fa-var-volume-up: "\f028"; 664 | @fa-var-warning: "\f071"; 665 | @fa-var-wechat: "\f1d7"; 666 | @fa-var-weibo: "\f18a"; 667 | @fa-var-weixin: "\f1d7"; 668 | @fa-var-whatsapp: "\f232"; 669 | @fa-var-wheelchair: "\f193"; 670 | @fa-var-wifi: "\f1eb"; 671 | @fa-var-wikipedia-w: "\f266"; 672 | @fa-var-windows: "\f17a"; 673 | @fa-var-won: "\f159"; 674 | @fa-var-wordpress: "\f19a"; 675 | @fa-var-wrench: "\f0ad"; 676 | @fa-var-xing: "\f168"; 677 | @fa-var-xing-square: "\f169"; 678 | @fa-var-y-combinator: "\f23b"; 679 | @fa-var-y-combinator-square: "\f1d4"; 680 | @fa-var-yahoo: "\f19e"; 681 | @fa-var-yc: "\f23b"; 682 | @fa-var-yc-square: "\f1d4"; 683 | @fa-var-yelp: "\f1e9"; 684 | @fa-var-yen: "\f157"; 685 | @fa-var-youtube: "\f167"; 686 | @fa-var-youtube-play: "\f16a"; 687 | @fa-var-youtube-square: "\f166"; 688 | 689 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | $fa-font-path: "../fonts" !default; 5 | $fa-font-size-base: 14px !default; 6 | $fa-line-height-base: 1 !default; 7 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.4.0/fonts" !default; // for referencing Bootstrap CDN font files directly 8 | $fa-css-prefix: fa !default; 9 | $fa-version: "4.4.0" !default; 10 | $fa-border-color: #eee !default; 11 | $fa-inverse: #fff !default; 12 | $fa-li-width: (30em / 14) !default; 13 | 14 | $fa-var-500px: "\f26e"; 15 | $fa-var-adjust: "\f042"; 16 | $fa-var-adn: "\f170"; 17 | $fa-var-align-center: "\f037"; 18 | $fa-var-align-justify: "\f039"; 19 | $fa-var-align-left: "\f036"; 20 | $fa-var-align-right: "\f038"; 21 | $fa-var-amazon: "\f270"; 22 | $fa-var-ambulance: "\f0f9"; 23 | $fa-var-anchor: "\f13d"; 24 | $fa-var-android: "\f17b"; 25 | $fa-var-angellist: "\f209"; 26 | $fa-var-angle-double-down: "\f103"; 27 | $fa-var-angle-double-left: "\f100"; 28 | $fa-var-angle-double-right: "\f101"; 29 | $fa-var-angle-double-up: "\f102"; 30 | $fa-var-angle-down: "\f107"; 31 | $fa-var-angle-left: "\f104"; 32 | $fa-var-angle-right: "\f105"; 33 | $fa-var-angle-up: "\f106"; 34 | $fa-var-apple: "\f179"; 35 | $fa-var-archive: "\f187"; 36 | $fa-var-area-chart: "\f1fe"; 37 | $fa-var-arrow-circle-down: "\f0ab"; 38 | $fa-var-arrow-circle-left: "\f0a8"; 39 | $fa-var-arrow-circle-o-down: "\f01a"; 40 | $fa-var-arrow-circle-o-left: "\f190"; 41 | $fa-var-arrow-circle-o-right: "\f18e"; 42 | $fa-var-arrow-circle-o-up: "\f01b"; 43 | $fa-var-arrow-circle-right: "\f0a9"; 44 | $fa-var-arrow-circle-up: "\f0aa"; 45 | $fa-var-arrow-down: "\f063"; 46 | $fa-var-arrow-left: "\f060"; 47 | $fa-var-arrow-right: "\f061"; 48 | $fa-var-arrow-up: "\f062"; 49 | $fa-var-arrows: "\f047"; 50 | $fa-var-arrows-alt: "\f0b2"; 51 | $fa-var-arrows-h: "\f07e"; 52 | $fa-var-arrows-v: "\f07d"; 53 | $fa-var-asterisk: "\f069"; 54 | $fa-var-at: "\f1fa"; 55 | $fa-var-automobile: "\f1b9"; 56 | $fa-var-backward: "\f04a"; 57 | $fa-var-balance-scale: "\f24e"; 58 | $fa-var-ban: "\f05e"; 59 | $fa-var-bank: "\f19c"; 60 | $fa-var-bar-chart: "\f080"; 61 | $fa-var-bar-chart-o: "\f080"; 62 | $fa-var-barcode: "\f02a"; 63 | $fa-var-bars: "\f0c9"; 64 | $fa-var-battery-0: "\f244"; 65 | $fa-var-battery-1: "\f243"; 66 | $fa-var-battery-2: "\f242"; 67 | $fa-var-battery-3: "\f241"; 68 | $fa-var-battery-4: "\f240"; 69 | $fa-var-battery-empty: "\f244"; 70 | $fa-var-battery-full: "\f240"; 71 | $fa-var-battery-half: "\f242"; 72 | $fa-var-battery-quarter: "\f243"; 73 | $fa-var-battery-three-quarters: "\f241"; 74 | $fa-var-bed: "\f236"; 75 | $fa-var-beer: "\f0fc"; 76 | $fa-var-behance: "\f1b4"; 77 | $fa-var-behance-square: "\f1b5"; 78 | $fa-var-bell: "\f0f3"; 79 | $fa-var-bell-o: "\f0a2"; 80 | $fa-var-bell-slash: "\f1f6"; 81 | $fa-var-bell-slash-o: "\f1f7"; 82 | $fa-var-bicycle: "\f206"; 83 | $fa-var-binoculars: "\f1e5"; 84 | $fa-var-birthday-cake: "\f1fd"; 85 | $fa-var-bitbucket: "\f171"; 86 | $fa-var-bitbucket-square: "\f172"; 87 | $fa-var-bitcoin: "\f15a"; 88 | $fa-var-black-tie: "\f27e"; 89 | $fa-var-bold: "\f032"; 90 | $fa-var-bolt: "\f0e7"; 91 | $fa-var-bomb: "\f1e2"; 92 | $fa-var-book: "\f02d"; 93 | $fa-var-bookmark: "\f02e"; 94 | $fa-var-bookmark-o: "\f097"; 95 | $fa-var-briefcase: "\f0b1"; 96 | $fa-var-btc: "\f15a"; 97 | $fa-var-bug: "\f188"; 98 | $fa-var-building: "\f1ad"; 99 | $fa-var-building-o: "\f0f7"; 100 | $fa-var-bullhorn: "\f0a1"; 101 | $fa-var-bullseye: "\f140"; 102 | $fa-var-bus: "\f207"; 103 | $fa-var-buysellads: "\f20d"; 104 | $fa-var-cab: "\f1ba"; 105 | $fa-var-calculator: "\f1ec"; 106 | $fa-var-calendar: "\f073"; 107 | $fa-var-calendar-check-o: "\f274"; 108 | $fa-var-calendar-minus-o: "\f272"; 109 | $fa-var-calendar-o: "\f133"; 110 | $fa-var-calendar-plus-o: "\f271"; 111 | $fa-var-calendar-times-o: "\f273"; 112 | $fa-var-camera: "\f030"; 113 | $fa-var-camera-retro: "\f083"; 114 | $fa-var-car: "\f1b9"; 115 | $fa-var-caret-down: "\f0d7"; 116 | $fa-var-caret-left: "\f0d9"; 117 | $fa-var-caret-right: "\f0da"; 118 | $fa-var-caret-square-o-down: "\f150"; 119 | $fa-var-caret-square-o-left: "\f191"; 120 | $fa-var-caret-square-o-right: "\f152"; 121 | $fa-var-caret-square-o-up: "\f151"; 122 | $fa-var-caret-up: "\f0d8"; 123 | $fa-var-cart-arrow-down: "\f218"; 124 | $fa-var-cart-plus: "\f217"; 125 | $fa-var-cc: "\f20a"; 126 | $fa-var-cc-amex: "\f1f3"; 127 | $fa-var-cc-diners-club: "\f24c"; 128 | $fa-var-cc-discover: "\f1f2"; 129 | $fa-var-cc-jcb: "\f24b"; 130 | $fa-var-cc-mastercard: "\f1f1"; 131 | $fa-var-cc-paypal: "\f1f4"; 132 | $fa-var-cc-stripe: "\f1f5"; 133 | $fa-var-cc-visa: "\f1f0"; 134 | $fa-var-certificate: "\f0a3"; 135 | $fa-var-chain: "\f0c1"; 136 | $fa-var-chain-broken: "\f127"; 137 | $fa-var-check: "\f00c"; 138 | $fa-var-check-circle: "\f058"; 139 | $fa-var-check-circle-o: "\f05d"; 140 | $fa-var-check-square: "\f14a"; 141 | $fa-var-check-square-o: "\f046"; 142 | $fa-var-chevron-circle-down: "\f13a"; 143 | $fa-var-chevron-circle-left: "\f137"; 144 | $fa-var-chevron-circle-right: "\f138"; 145 | $fa-var-chevron-circle-up: "\f139"; 146 | $fa-var-chevron-down: "\f078"; 147 | $fa-var-chevron-left: "\f053"; 148 | $fa-var-chevron-right: "\f054"; 149 | $fa-var-chevron-up: "\f077"; 150 | $fa-var-child: "\f1ae"; 151 | $fa-var-chrome: "\f268"; 152 | $fa-var-circle: "\f111"; 153 | $fa-var-circle-o: "\f10c"; 154 | $fa-var-circle-o-notch: "\f1ce"; 155 | $fa-var-circle-thin: "\f1db"; 156 | $fa-var-clipboard: "\f0ea"; 157 | $fa-var-clock-o: "\f017"; 158 | $fa-var-clone: "\f24d"; 159 | $fa-var-close: "\f00d"; 160 | $fa-var-cloud: "\f0c2"; 161 | $fa-var-cloud-download: "\f0ed"; 162 | $fa-var-cloud-upload: "\f0ee"; 163 | $fa-var-cny: "\f157"; 164 | $fa-var-code: "\f121"; 165 | $fa-var-code-fork: "\f126"; 166 | $fa-var-codepen: "\f1cb"; 167 | $fa-var-coffee: "\f0f4"; 168 | $fa-var-cog: "\f013"; 169 | $fa-var-cogs: "\f085"; 170 | $fa-var-columns: "\f0db"; 171 | $fa-var-comment: "\f075"; 172 | $fa-var-comment-o: "\f0e5"; 173 | $fa-var-commenting: "\f27a"; 174 | $fa-var-commenting-o: "\f27b"; 175 | $fa-var-comments: "\f086"; 176 | $fa-var-comments-o: "\f0e6"; 177 | $fa-var-compass: "\f14e"; 178 | $fa-var-compress: "\f066"; 179 | $fa-var-connectdevelop: "\f20e"; 180 | $fa-var-contao: "\f26d"; 181 | $fa-var-copy: "\f0c5"; 182 | $fa-var-copyright: "\f1f9"; 183 | $fa-var-creative-commons: "\f25e"; 184 | $fa-var-credit-card: "\f09d"; 185 | $fa-var-crop: "\f125"; 186 | $fa-var-crosshairs: "\f05b"; 187 | $fa-var-css3: "\f13c"; 188 | $fa-var-cube: "\f1b2"; 189 | $fa-var-cubes: "\f1b3"; 190 | $fa-var-cut: "\f0c4"; 191 | $fa-var-cutlery: "\f0f5"; 192 | $fa-var-dashboard: "\f0e4"; 193 | $fa-var-dashcube: "\f210"; 194 | $fa-var-database: "\f1c0"; 195 | $fa-var-dedent: "\f03b"; 196 | $fa-var-delicious: "\f1a5"; 197 | $fa-var-desktop: "\f108"; 198 | $fa-var-deviantart: "\f1bd"; 199 | $fa-var-diamond: "\f219"; 200 | $fa-var-digg: "\f1a6"; 201 | $fa-var-dollar: "\f155"; 202 | $fa-var-dot-circle-o: "\f192"; 203 | $fa-var-download: "\f019"; 204 | $fa-var-dribbble: "\f17d"; 205 | $fa-var-dropbox: "\f16b"; 206 | $fa-var-drupal: "\f1a9"; 207 | $fa-var-edit: "\f044"; 208 | $fa-var-eject: "\f052"; 209 | $fa-var-ellipsis-h: "\f141"; 210 | $fa-var-ellipsis-v: "\f142"; 211 | $fa-var-empire: "\f1d1"; 212 | $fa-var-envelope: "\f0e0"; 213 | $fa-var-envelope-o: "\f003"; 214 | $fa-var-envelope-square: "\f199"; 215 | $fa-var-eraser: "\f12d"; 216 | $fa-var-eur: "\f153"; 217 | $fa-var-euro: "\f153"; 218 | $fa-var-exchange: "\f0ec"; 219 | $fa-var-exclamation: "\f12a"; 220 | $fa-var-exclamation-circle: "\f06a"; 221 | $fa-var-exclamation-triangle: "\f071"; 222 | $fa-var-expand: "\f065"; 223 | $fa-var-expeditedssl: "\f23e"; 224 | $fa-var-external-link: "\f08e"; 225 | $fa-var-external-link-square: "\f14c"; 226 | $fa-var-eye: "\f06e"; 227 | $fa-var-eye-slash: "\f070"; 228 | $fa-var-eyedropper: "\f1fb"; 229 | $fa-var-facebook: "\f09a"; 230 | $fa-var-facebook-f: "\f09a"; 231 | $fa-var-facebook-official: "\f230"; 232 | $fa-var-facebook-square: "\f082"; 233 | $fa-var-fast-backward: "\f049"; 234 | $fa-var-fast-forward: "\f050"; 235 | $fa-var-fax: "\f1ac"; 236 | $fa-var-feed: "\f09e"; 237 | $fa-var-female: "\f182"; 238 | $fa-var-fighter-jet: "\f0fb"; 239 | $fa-var-file: "\f15b"; 240 | $fa-var-file-archive-o: "\f1c6"; 241 | $fa-var-file-audio-o: "\f1c7"; 242 | $fa-var-file-code-o: "\f1c9"; 243 | $fa-var-file-excel-o: "\f1c3"; 244 | $fa-var-file-image-o: "\f1c5"; 245 | $fa-var-file-movie-o: "\f1c8"; 246 | $fa-var-file-o: "\f016"; 247 | $fa-var-file-pdf-o: "\f1c1"; 248 | $fa-var-file-photo-o: "\f1c5"; 249 | $fa-var-file-picture-o: "\f1c5"; 250 | $fa-var-file-powerpoint-o: "\f1c4"; 251 | $fa-var-file-sound-o: "\f1c7"; 252 | $fa-var-file-text: "\f15c"; 253 | $fa-var-file-text-o: "\f0f6"; 254 | $fa-var-file-video-o: "\f1c8"; 255 | $fa-var-file-word-o: "\f1c2"; 256 | $fa-var-file-zip-o: "\f1c6"; 257 | $fa-var-files-o: "\f0c5"; 258 | $fa-var-film: "\f008"; 259 | $fa-var-filter: "\f0b0"; 260 | $fa-var-fire: "\f06d"; 261 | $fa-var-fire-extinguisher: "\f134"; 262 | $fa-var-firefox: "\f269"; 263 | $fa-var-flag: "\f024"; 264 | $fa-var-flag-checkered: "\f11e"; 265 | $fa-var-flag-o: "\f11d"; 266 | $fa-var-flash: "\f0e7"; 267 | $fa-var-flask: "\f0c3"; 268 | $fa-var-flickr: "\f16e"; 269 | $fa-var-floppy-o: "\f0c7"; 270 | $fa-var-folder: "\f07b"; 271 | $fa-var-folder-o: "\f114"; 272 | $fa-var-folder-open: "\f07c"; 273 | $fa-var-folder-open-o: "\f115"; 274 | $fa-var-font: "\f031"; 275 | $fa-var-fonticons: "\f280"; 276 | $fa-var-forumbee: "\f211"; 277 | $fa-var-forward: "\f04e"; 278 | $fa-var-foursquare: "\f180"; 279 | $fa-var-frown-o: "\f119"; 280 | $fa-var-futbol-o: "\f1e3"; 281 | $fa-var-gamepad: "\f11b"; 282 | $fa-var-gavel: "\f0e3"; 283 | $fa-var-gbp: "\f154"; 284 | $fa-var-ge: "\f1d1"; 285 | $fa-var-gear: "\f013"; 286 | $fa-var-gears: "\f085"; 287 | $fa-var-genderless: "\f22d"; 288 | $fa-var-get-pocket: "\f265"; 289 | $fa-var-gg: "\f260"; 290 | $fa-var-gg-circle: "\f261"; 291 | $fa-var-gift: "\f06b"; 292 | $fa-var-git: "\f1d3"; 293 | $fa-var-git-square: "\f1d2"; 294 | $fa-var-github: "\f09b"; 295 | $fa-var-github-alt: "\f113"; 296 | $fa-var-github-square: "\f092"; 297 | $fa-var-gittip: "\f184"; 298 | $fa-var-glass: "\f000"; 299 | $fa-var-globe: "\f0ac"; 300 | $fa-var-google: "\f1a0"; 301 | $fa-var-google-plus: "\f0d5"; 302 | $fa-var-google-plus-square: "\f0d4"; 303 | $fa-var-google-wallet: "\f1ee"; 304 | $fa-var-graduation-cap: "\f19d"; 305 | $fa-var-gratipay: "\f184"; 306 | $fa-var-group: "\f0c0"; 307 | $fa-var-h-square: "\f0fd"; 308 | $fa-var-hacker-news: "\f1d4"; 309 | $fa-var-hand-grab-o: "\f255"; 310 | $fa-var-hand-lizard-o: "\f258"; 311 | $fa-var-hand-o-down: "\f0a7"; 312 | $fa-var-hand-o-left: "\f0a5"; 313 | $fa-var-hand-o-right: "\f0a4"; 314 | $fa-var-hand-o-up: "\f0a6"; 315 | $fa-var-hand-paper-o: "\f256"; 316 | $fa-var-hand-peace-o: "\f25b"; 317 | $fa-var-hand-pointer-o: "\f25a"; 318 | $fa-var-hand-rock-o: "\f255"; 319 | $fa-var-hand-scissors-o: "\f257"; 320 | $fa-var-hand-spock-o: "\f259"; 321 | $fa-var-hand-stop-o: "\f256"; 322 | $fa-var-hdd-o: "\f0a0"; 323 | $fa-var-header: "\f1dc"; 324 | $fa-var-headphones: "\f025"; 325 | $fa-var-heart: "\f004"; 326 | $fa-var-heart-o: "\f08a"; 327 | $fa-var-heartbeat: "\f21e"; 328 | $fa-var-history: "\f1da"; 329 | $fa-var-home: "\f015"; 330 | $fa-var-hospital-o: "\f0f8"; 331 | $fa-var-hotel: "\f236"; 332 | $fa-var-hourglass: "\f254"; 333 | $fa-var-hourglass-1: "\f251"; 334 | $fa-var-hourglass-2: "\f252"; 335 | $fa-var-hourglass-3: "\f253"; 336 | $fa-var-hourglass-end: "\f253"; 337 | $fa-var-hourglass-half: "\f252"; 338 | $fa-var-hourglass-o: "\f250"; 339 | $fa-var-hourglass-start: "\f251"; 340 | $fa-var-houzz: "\f27c"; 341 | $fa-var-html5: "\f13b"; 342 | $fa-var-i-cursor: "\f246"; 343 | $fa-var-ils: "\f20b"; 344 | $fa-var-image: "\f03e"; 345 | $fa-var-inbox: "\f01c"; 346 | $fa-var-indent: "\f03c"; 347 | $fa-var-industry: "\f275"; 348 | $fa-var-info: "\f129"; 349 | $fa-var-info-circle: "\f05a"; 350 | $fa-var-inr: "\f156"; 351 | $fa-var-instagram: "\f16d"; 352 | $fa-var-institution: "\f19c"; 353 | $fa-var-internet-explorer: "\f26b"; 354 | $fa-var-intersex: "\f224"; 355 | $fa-var-ioxhost: "\f208"; 356 | $fa-var-italic: "\f033"; 357 | $fa-var-joomla: "\f1aa"; 358 | $fa-var-jpy: "\f157"; 359 | $fa-var-jsfiddle: "\f1cc"; 360 | $fa-var-key: "\f084"; 361 | $fa-var-keyboard-o: "\f11c"; 362 | $fa-var-krw: "\f159"; 363 | $fa-var-language: "\f1ab"; 364 | $fa-var-laptop: "\f109"; 365 | $fa-var-lastfm: "\f202"; 366 | $fa-var-lastfm-square: "\f203"; 367 | $fa-var-leaf: "\f06c"; 368 | $fa-var-leanpub: "\f212"; 369 | $fa-var-legal: "\f0e3"; 370 | $fa-var-lemon-o: "\f094"; 371 | $fa-var-level-down: "\f149"; 372 | $fa-var-level-up: "\f148"; 373 | $fa-var-life-bouy: "\f1cd"; 374 | $fa-var-life-buoy: "\f1cd"; 375 | $fa-var-life-ring: "\f1cd"; 376 | $fa-var-life-saver: "\f1cd"; 377 | $fa-var-lightbulb-o: "\f0eb"; 378 | $fa-var-line-chart: "\f201"; 379 | $fa-var-link: "\f0c1"; 380 | $fa-var-linkedin: "\f0e1"; 381 | $fa-var-linkedin-square: "\f08c"; 382 | $fa-var-linux: "\f17c"; 383 | $fa-var-list: "\f03a"; 384 | $fa-var-list-alt: "\f022"; 385 | $fa-var-list-ol: "\f0cb"; 386 | $fa-var-list-ul: "\f0ca"; 387 | $fa-var-location-arrow: "\f124"; 388 | $fa-var-lock: "\f023"; 389 | $fa-var-long-arrow-down: "\f175"; 390 | $fa-var-long-arrow-left: "\f177"; 391 | $fa-var-long-arrow-right: "\f178"; 392 | $fa-var-long-arrow-up: "\f176"; 393 | $fa-var-magic: "\f0d0"; 394 | $fa-var-magnet: "\f076"; 395 | $fa-var-mail-forward: "\f064"; 396 | $fa-var-mail-reply: "\f112"; 397 | $fa-var-mail-reply-all: "\f122"; 398 | $fa-var-male: "\f183"; 399 | $fa-var-map: "\f279"; 400 | $fa-var-map-marker: "\f041"; 401 | $fa-var-map-o: "\f278"; 402 | $fa-var-map-pin: "\f276"; 403 | $fa-var-map-signs: "\f277"; 404 | $fa-var-mars: "\f222"; 405 | $fa-var-mars-double: "\f227"; 406 | $fa-var-mars-stroke: "\f229"; 407 | $fa-var-mars-stroke-h: "\f22b"; 408 | $fa-var-mars-stroke-v: "\f22a"; 409 | $fa-var-maxcdn: "\f136"; 410 | $fa-var-meanpath: "\f20c"; 411 | $fa-var-medium: "\f23a"; 412 | $fa-var-medkit: "\f0fa"; 413 | $fa-var-meh-o: "\f11a"; 414 | $fa-var-mercury: "\f223"; 415 | $fa-var-microphone: "\f130"; 416 | $fa-var-microphone-slash: "\f131"; 417 | $fa-var-minus: "\f068"; 418 | $fa-var-minus-circle: "\f056"; 419 | $fa-var-minus-square: "\f146"; 420 | $fa-var-minus-square-o: "\f147"; 421 | $fa-var-mobile: "\f10b"; 422 | $fa-var-mobile-phone: "\f10b"; 423 | $fa-var-money: "\f0d6"; 424 | $fa-var-moon-o: "\f186"; 425 | $fa-var-mortar-board: "\f19d"; 426 | $fa-var-motorcycle: "\f21c"; 427 | $fa-var-mouse-pointer: "\f245"; 428 | $fa-var-music: "\f001"; 429 | $fa-var-navicon: "\f0c9"; 430 | $fa-var-neuter: "\f22c"; 431 | $fa-var-newspaper-o: "\f1ea"; 432 | $fa-var-object-group: "\f247"; 433 | $fa-var-object-ungroup: "\f248"; 434 | $fa-var-odnoklassniki: "\f263"; 435 | $fa-var-odnoklassniki-square: "\f264"; 436 | $fa-var-opencart: "\f23d"; 437 | $fa-var-openid: "\f19b"; 438 | $fa-var-opera: "\f26a"; 439 | $fa-var-optin-monster: "\f23c"; 440 | $fa-var-outdent: "\f03b"; 441 | $fa-var-pagelines: "\f18c"; 442 | $fa-var-paint-brush: "\f1fc"; 443 | $fa-var-paper-plane: "\f1d8"; 444 | $fa-var-paper-plane-o: "\f1d9"; 445 | $fa-var-paperclip: "\f0c6"; 446 | $fa-var-paragraph: "\f1dd"; 447 | $fa-var-paste: "\f0ea"; 448 | $fa-var-pause: "\f04c"; 449 | $fa-var-paw: "\f1b0"; 450 | $fa-var-paypal: "\f1ed"; 451 | $fa-var-pencil: "\f040"; 452 | $fa-var-pencil-square: "\f14b"; 453 | $fa-var-pencil-square-o: "\f044"; 454 | $fa-var-phone: "\f095"; 455 | $fa-var-phone-square: "\f098"; 456 | $fa-var-photo: "\f03e"; 457 | $fa-var-picture-o: "\f03e"; 458 | $fa-var-pie-chart: "\f200"; 459 | $fa-var-pied-piper: "\f1a7"; 460 | $fa-var-pied-piper-alt: "\f1a8"; 461 | $fa-var-pinterest: "\f0d2"; 462 | $fa-var-pinterest-p: "\f231"; 463 | $fa-var-pinterest-square: "\f0d3"; 464 | $fa-var-plane: "\f072"; 465 | $fa-var-play: "\f04b"; 466 | $fa-var-play-circle: "\f144"; 467 | $fa-var-play-circle-o: "\f01d"; 468 | $fa-var-plug: "\f1e6"; 469 | $fa-var-plus: "\f067"; 470 | $fa-var-plus-circle: "\f055"; 471 | $fa-var-plus-square: "\f0fe"; 472 | $fa-var-plus-square-o: "\f196"; 473 | $fa-var-power-off: "\f011"; 474 | $fa-var-print: "\f02f"; 475 | $fa-var-puzzle-piece: "\f12e"; 476 | $fa-var-qq: "\f1d6"; 477 | $fa-var-qrcode: "\f029"; 478 | $fa-var-question: "\f128"; 479 | $fa-var-question-circle: "\f059"; 480 | $fa-var-quote-left: "\f10d"; 481 | $fa-var-quote-right: "\f10e"; 482 | $fa-var-ra: "\f1d0"; 483 | $fa-var-random: "\f074"; 484 | $fa-var-rebel: "\f1d0"; 485 | $fa-var-recycle: "\f1b8"; 486 | $fa-var-reddit: "\f1a1"; 487 | $fa-var-reddit-square: "\f1a2"; 488 | $fa-var-refresh: "\f021"; 489 | $fa-var-registered: "\f25d"; 490 | $fa-var-remove: "\f00d"; 491 | $fa-var-renren: "\f18b"; 492 | $fa-var-reorder: "\f0c9"; 493 | $fa-var-repeat: "\f01e"; 494 | $fa-var-reply: "\f112"; 495 | $fa-var-reply-all: "\f122"; 496 | $fa-var-retweet: "\f079"; 497 | $fa-var-rmb: "\f157"; 498 | $fa-var-road: "\f018"; 499 | $fa-var-rocket: "\f135"; 500 | $fa-var-rotate-left: "\f0e2"; 501 | $fa-var-rotate-right: "\f01e"; 502 | $fa-var-rouble: "\f158"; 503 | $fa-var-rss: "\f09e"; 504 | $fa-var-rss-square: "\f143"; 505 | $fa-var-rub: "\f158"; 506 | $fa-var-ruble: "\f158"; 507 | $fa-var-rupee: "\f156"; 508 | $fa-var-safari: "\f267"; 509 | $fa-var-save: "\f0c7"; 510 | $fa-var-scissors: "\f0c4"; 511 | $fa-var-search: "\f002"; 512 | $fa-var-search-minus: "\f010"; 513 | $fa-var-search-plus: "\f00e"; 514 | $fa-var-sellsy: "\f213"; 515 | $fa-var-send: "\f1d8"; 516 | $fa-var-send-o: "\f1d9"; 517 | $fa-var-server: "\f233"; 518 | $fa-var-share: "\f064"; 519 | $fa-var-share-alt: "\f1e0"; 520 | $fa-var-share-alt-square: "\f1e1"; 521 | $fa-var-share-square: "\f14d"; 522 | $fa-var-share-square-o: "\f045"; 523 | $fa-var-shekel: "\f20b"; 524 | $fa-var-sheqel: "\f20b"; 525 | $fa-var-shield: "\f132"; 526 | $fa-var-ship: "\f21a"; 527 | $fa-var-shirtsinbulk: "\f214"; 528 | $fa-var-shopping-cart: "\f07a"; 529 | $fa-var-sign-in: "\f090"; 530 | $fa-var-sign-out: "\f08b"; 531 | $fa-var-signal: "\f012"; 532 | $fa-var-simplybuilt: "\f215"; 533 | $fa-var-sitemap: "\f0e8"; 534 | $fa-var-skyatlas: "\f216"; 535 | $fa-var-skype: "\f17e"; 536 | $fa-var-slack: "\f198"; 537 | $fa-var-sliders: "\f1de"; 538 | $fa-var-slideshare: "\f1e7"; 539 | $fa-var-smile-o: "\f118"; 540 | $fa-var-soccer-ball-o: "\f1e3"; 541 | $fa-var-sort: "\f0dc"; 542 | $fa-var-sort-alpha-asc: "\f15d"; 543 | $fa-var-sort-alpha-desc: "\f15e"; 544 | $fa-var-sort-amount-asc: "\f160"; 545 | $fa-var-sort-amount-desc: "\f161"; 546 | $fa-var-sort-asc: "\f0de"; 547 | $fa-var-sort-desc: "\f0dd"; 548 | $fa-var-sort-down: "\f0dd"; 549 | $fa-var-sort-numeric-asc: "\f162"; 550 | $fa-var-sort-numeric-desc: "\f163"; 551 | $fa-var-sort-up: "\f0de"; 552 | $fa-var-soundcloud: "\f1be"; 553 | $fa-var-space-shuttle: "\f197"; 554 | $fa-var-spinner: "\f110"; 555 | $fa-var-spoon: "\f1b1"; 556 | $fa-var-spotify: "\f1bc"; 557 | $fa-var-square: "\f0c8"; 558 | $fa-var-square-o: "\f096"; 559 | $fa-var-stack-exchange: "\f18d"; 560 | $fa-var-stack-overflow: "\f16c"; 561 | $fa-var-star: "\f005"; 562 | $fa-var-star-half: "\f089"; 563 | $fa-var-star-half-empty: "\f123"; 564 | $fa-var-star-half-full: "\f123"; 565 | $fa-var-star-half-o: "\f123"; 566 | $fa-var-star-o: "\f006"; 567 | $fa-var-steam: "\f1b6"; 568 | $fa-var-steam-square: "\f1b7"; 569 | $fa-var-step-backward: "\f048"; 570 | $fa-var-step-forward: "\f051"; 571 | $fa-var-stethoscope: "\f0f1"; 572 | $fa-var-sticky-note: "\f249"; 573 | $fa-var-sticky-note-o: "\f24a"; 574 | $fa-var-stop: "\f04d"; 575 | $fa-var-street-view: "\f21d"; 576 | $fa-var-strikethrough: "\f0cc"; 577 | $fa-var-stumbleupon: "\f1a4"; 578 | $fa-var-stumbleupon-circle: "\f1a3"; 579 | $fa-var-subscript: "\f12c"; 580 | $fa-var-subway: "\f239"; 581 | $fa-var-suitcase: "\f0f2"; 582 | $fa-var-sun-o: "\f185"; 583 | $fa-var-superscript: "\f12b"; 584 | $fa-var-support: "\f1cd"; 585 | $fa-var-table: "\f0ce"; 586 | $fa-var-tablet: "\f10a"; 587 | $fa-var-tachometer: "\f0e4"; 588 | $fa-var-tag: "\f02b"; 589 | $fa-var-tags: "\f02c"; 590 | $fa-var-tasks: "\f0ae"; 591 | $fa-var-taxi: "\f1ba"; 592 | $fa-var-television: "\f26c"; 593 | $fa-var-tencent-weibo: "\f1d5"; 594 | $fa-var-terminal: "\f120"; 595 | $fa-var-text-height: "\f034"; 596 | $fa-var-text-width: "\f035"; 597 | $fa-var-th: "\f00a"; 598 | $fa-var-th-large: "\f009"; 599 | $fa-var-th-list: "\f00b"; 600 | $fa-var-thumb-tack: "\f08d"; 601 | $fa-var-thumbs-down: "\f165"; 602 | $fa-var-thumbs-o-down: "\f088"; 603 | $fa-var-thumbs-o-up: "\f087"; 604 | $fa-var-thumbs-up: "\f164"; 605 | $fa-var-ticket: "\f145"; 606 | $fa-var-times: "\f00d"; 607 | $fa-var-times-circle: "\f057"; 608 | $fa-var-times-circle-o: "\f05c"; 609 | $fa-var-tint: "\f043"; 610 | $fa-var-toggle-down: "\f150"; 611 | $fa-var-toggle-left: "\f191"; 612 | $fa-var-toggle-off: "\f204"; 613 | $fa-var-toggle-on: "\f205"; 614 | $fa-var-toggle-right: "\f152"; 615 | $fa-var-toggle-up: "\f151"; 616 | $fa-var-trademark: "\f25c"; 617 | $fa-var-train: "\f238"; 618 | $fa-var-transgender: "\f224"; 619 | $fa-var-transgender-alt: "\f225"; 620 | $fa-var-trash: "\f1f8"; 621 | $fa-var-trash-o: "\f014"; 622 | $fa-var-tree: "\f1bb"; 623 | $fa-var-trello: "\f181"; 624 | $fa-var-tripadvisor: "\f262"; 625 | $fa-var-trophy: "\f091"; 626 | $fa-var-truck: "\f0d1"; 627 | $fa-var-try: "\f195"; 628 | $fa-var-tty: "\f1e4"; 629 | $fa-var-tumblr: "\f173"; 630 | $fa-var-tumblr-square: "\f174"; 631 | $fa-var-turkish-lira: "\f195"; 632 | $fa-var-tv: "\f26c"; 633 | $fa-var-twitch: "\f1e8"; 634 | $fa-var-twitter: "\f099"; 635 | $fa-var-twitter-square: "\f081"; 636 | $fa-var-umbrella: "\f0e9"; 637 | $fa-var-underline: "\f0cd"; 638 | $fa-var-undo: "\f0e2"; 639 | $fa-var-university: "\f19c"; 640 | $fa-var-unlink: "\f127"; 641 | $fa-var-unlock: "\f09c"; 642 | $fa-var-unlock-alt: "\f13e"; 643 | $fa-var-unsorted: "\f0dc"; 644 | $fa-var-upload: "\f093"; 645 | $fa-var-usd: "\f155"; 646 | $fa-var-user: "\f007"; 647 | $fa-var-user-md: "\f0f0"; 648 | $fa-var-user-plus: "\f234"; 649 | $fa-var-user-secret: "\f21b"; 650 | $fa-var-user-times: "\f235"; 651 | $fa-var-users: "\f0c0"; 652 | $fa-var-venus: "\f221"; 653 | $fa-var-venus-double: "\f226"; 654 | $fa-var-venus-mars: "\f228"; 655 | $fa-var-viacoin: "\f237"; 656 | $fa-var-video-camera: "\f03d"; 657 | $fa-var-vimeo: "\f27d"; 658 | $fa-var-vimeo-square: "\f194"; 659 | $fa-var-vine: "\f1ca"; 660 | $fa-var-vk: "\f189"; 661 | $fa-var-volume-down: "\f027"; 662 | $fa-var-volume-off: "\f026"; 663 | $fa-var-volume-up: "\f028"; 664 | $fa-var-warning: "\f071"; 665 | $fa-var-wechat: "\f1d7"; 666 | $fa-var-weibo: "\f18a"; 667 | $fa-var-weixin: "\f1d7"; 668 | $fa-var-whatsapp: "\f232"; 669 | $fa-var-wheelchair: "\f193"; 670 | $fa-var-wifi: "\f1eb"; 671 | $fa-var-wikipedia-w: "\f266"; 672 | $fa-var-windows: "\f17a"; 673 | $fa-var-won: "\f159"; 674 | $fa-var-wordpress: "\f19a"; 675 | $fa-var-wrench: "\f0ad"; 676 | $fa-var-xing: "\f168"; 677 | $fa-var-xing-square: "\f169"; 678 | $fa-var-y-combinator: "\f23b"; 679 | $fa-var-y-combinator-square: "\f1d4"; 680 | $fa-var-yahoo: "\f19e"; 681 | $fa-var-yc: "\f23b"; 682 | $fa-var-yc-square: "\f1d4"; 683 | $fa-var-yelp: "\f1e9"; 684 | $fa-var-yen: "\f157"; 685 | $fa-var-youtube: "\f167"; 686 | $fa-var-youtube-play: "\f16a"; 687 | $fa-var-youtube-square: "\f166"; 688 | 689 | -------------------------------------------------------------------------------- /font-awesome/font-awesome-4.4.0/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /mic-animate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/mic-animate.gif -------------------------------------------------------------------------------- /mic-slash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/mic-slash.gif -------------------------------------------------------------------------------- /mic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/mic.gif -------------------------------------------------------------------------------- /navigation extract.txt: -------------------------------------------------------------------------------- 1 | function getPose(callbackPosition) { 2 | // ---------------------------------------------------------------------- 3 | // Subscribing to the robot's Pose-- this method uses tfClient 4 | // Calls the callback with the stringified pose 5 | // ---------------------------------------------------------------------- 6 | // A ROSLIB.TFClient object is used to subscribe to TFs from ROS. The fixedFrame 7 | // is the frame all requested transforms will be relative to. 8 | // The thresholds are the amount a TF must change in order to be republished. 9 | if (connected) { 10 | var tfClient = new ROSLIB.TFClient({ 11 | ros : ros, 12 | fixedFrame : 'map', 13 | angularThres : 0.01, // threshold--smaller movements won't be reported 14 | transThres : 0.01 15 | }); 16 | var msgString; 17 | 18 | // We subscribe to the TF between the fixed frame ('map') and the 'base_link' frame. 19 | // Any transforms between these two frames greater than the specified threshold will 20 | // trigger the callback. The message returned is a ROS TF message. 21 | 22 | tfClient.subscribe('base_link', function(message) { 23 | tfClient.unsubscribe('base_link'); // we only need this once 24 | msgString = JSON.stringify(message); 25 | console.log ("tfClient pose in " + tfClient.fixedFrame + ": " + msgString); 26 | callbackPosition (msgString); 27 | }); 28 | } 29 | } 30 | 31 | function moveRobotToPose (movePose) { 32 | var prevStatus = ""; 33 | var moveToPoseClient = new ROSLIB.ActionClient({ 34 | // object with following keys: * ros - the ROSLIB.Ros connection handle * serverName - the action server name * actionName - the action message name * timeout - the timeout length when connecting to the action server 35 | ros : ros, 36 | serverName : 'move_base', 37 | actionName : 'move_base_msgs/MoveBaseAction' 38 | }); 39 | 40 | var goal = new ROSLIB.Goal({ 41 | actionClient : moveToPoseClient, 42 | goalMessage : { 43 | target_pose : { 44 | header : { 45 | frame_id : '/map' 46 | }, 47 | pose : movePose // move_base_msg 48 | } 49 | } 50 | }); 51 | 52 | goal.on('status', function(status) { 53 | statusString = 'Move to pose status: ' + JSON.stringify(status); 54 | if (statusString !== prevStatus) { 55 | prevStatus = statusString; 56 | if (status.status == 4) { 57 | say (status.text); 58 | } 59 | console.log (statusString); 60 | } 61 | // moveClient.cancel (); this does not stop the damn messages anyhow 62 | }); 63 | goal.send(); 64 | console.log ('moveRobotToPose goal sent'); 65 | } 66 | 67 | function moveRobotFromPose (distance, angle) { 68 | if (connected) { 69 | var statusCount = 0; 70 | var prevStatus = ""; 71 | var moveClient = new ROSLIB.ActionClient({ 72 | ros : ros, 73 | serverName : 'move_base', 74 | actionName : 'move_base_msgs/MoveBaseAction' 75 | }); 76 | function yawToQuaternion(yaw) { 77 | return { x : 0, 78 | y : 0, 79 | z : Math.sin (yaw/2), 80 | w : Math.cos (yaw/2) 81 | }; 82 | } 83 | var goal = new ROSLIB.Goal({ 84 | actionClient : moveClient, 85 | goalMessage : { 86 | target_pose : { 87 | header : { 88 | frame_id : '/base_link', // '/base_footprint', doesn't seem to work on Loki, tho it does on Stage 89 | }, 90 | pose : { 91 | position : { 92 | x : distance, 93 | y : 0, 94 | z : 0 95 | }, 96 | orientation : yawToQuaternion (angle) 97 | } 98 | } 99 | } 100 | }); 101 | 102 | goal.on('status', function(status) { 103 | statusCount++; 104 | statusString = 'Move robot status: ' + JSON.stringify(status); 105 | if (statusString !== prevStatus) { 106 | prevStatus = statusString; 107 | if (status.status == 4) { 108 | say (status.text); 109 | } 110 | console.log (statusCount + ": " + statusString); 111 | } 112 | // moveClient.cancel (); this does not stop the damn messages 113 | }); 114 | 115 | goal.send(); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /scripts/bootbox.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * bootbox.js v4.4.0 3 | * 4 | * http://bootboxjs.com/license.txt 5 | */ 6 | !function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p}); -------------------------------------------------------------------------------- /scripts/eventemitter2.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * EventEmitter2 3 | * https://github.com/hij1nx/EventEmitter2 4 | * 5 | * Copyright (c) 2013 hij1nx 6 | * Licensed under the MIT license. 7 | */ 8 | ;!function(undefined) { 9 | 10 | var isArray = Array.isArray ? Array.isArray : function _isArray(obj) { 11 | return Object.prototype.toString.call(obj) === "[object Array]"; 12 | }; 13 | var defaultMaxListeners = 10; 14 | 15 | function init() { 16 | this._events = {}; 17 | if (this._conf) { 18 | configure.call(this, this._conf); 19 | } 20 | } 21 | 22 | function configure(conf) { 23 | if (conf) { 24 | 25 | this._conf = conf; 26 | 27 | conf.delimiter && (this.delimiter = conf.delimiter); 28 | conf.maxListeners && (this._events.maxListeners = conf.maxListeners); 29 | conf.wildcard && (this.wildcard = conf.wildcard); 30 | conf.newListener && (this.newListener = conf.newListener); 31 | 32 | if (this.wildcard) { 33 | this.listenerTree = {}; 34 | } 35 | } 36 | } 37 | 38 | function EventEmitter(conf) { 39 | this._events = {}; 40 | this.newListener = false; 41 | configure.call(this, conf); 42 | } 43 | 44 | // 45 | // Attention, function return type now is array, always ! 46 | // It has zero elements if no any matches found and one or more 47 | // elements (leafs) if there are matches 48 | // 49 | function searchListenerTree(handlers, type, tree, i) { 50 | if (!tree) { 51 | return []; 52 | } 53 | var listeners=[], leaf, len, branch, xTree, xxTree, isolatedBranch, endReached, 54 | typeLength = type.length, currentType = type[i], nextType = type[i+1]; 55 | if (i === typeLength && tree._listeners) { 56 | // 57 | // If at the end of the event(s) list and the tree has listeners 58 | // invoke those listeners. 59 | // 60 | if (typeof tree._listeners === 'function') { 61 | handlers && handlers.push(tree._listeners); 62 | return [tree]; 63 | } else { 64 | for (leaf = 0, len = tree._listeners.length; leaf < len; leaf++) { 65 | handlers && handlers.push(tree._listeners[leaf]); 66 | } 67 | return [tree]; 68 | } 69 | } 70 | 71 | if ((currentType === '*' || currentType === '**') || tree[currentType]) { 72 | // 73 | // If the event emitted is '*' at this part 74 | // or there is a concrete match at this patch 75 | // 76 | if (currentType === '*') { 77 | for (branch in tree) { 78 | if (branch !== '_listeners' && tree.hasOwnProperty(branch)) { 79 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+1)); 80 | } 81 | } 82 | return listeners; 83 | } else if(currentType === '**') { 84 | endReached = (i+1 === typeLength || (i+2 === typeLength && nextType === '*')); 85 | if(endReached && tree._listeners) { 86 | // The next element has a _listeners, add it to the handlers. 87 | listeners = listeners.concat(searchListenerTree(handlers, type, tree, typeLength)); 88 | } 89 | 90 | for (branch in tree) { 91 | if (branch !== '_listeners' && tree.hasOwnProperty(branch)) { 92 | if(branch === '*' || branch === '**') { 93 | if(tree[branch]._listeners && !endReached) { 94 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], typeLength)); 95 | } 96 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i)); 97 | } else if(branch === nextType) { 98 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+2)); 99 | } else { 100 | // No match on this one, shift into the tree but not in the type array. 101 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i)); 102 | } 103 | } 104 | } 105 | return listeners; 106 | } 107 | 108 | listeners = listeners.concat(searchListenerTree(handlers, type, tree[currentType], i+1)); 109 | } 110 | 111 | xTree = tree['*']; 112 | if (xTree) { 113 | // 114 | // If the listener tree will allow any match for this part, 115 | // then recursively explore all branches of the tree 116 | // 117 | searchListenerTree(handlers, type, xTree, i+1); 118 | } 119 | 120 | xxTree = tree['**']; 121 | if(xxTree) { 122 | if(i < typeLength) { 123 | if(xxTree._listeners) { 124 | // If we have a listener on a '**', it will catch all, so add its handler. 125 | searchListenerTree(handlers, type, xxTree, typeLength); 126 | } 127 | 128 | // Build arrays of matching next branches and others. 129 | for(branch in xxTree) { 130 | if(branch !== '_listeners' && xxTree.hasOwnProperty(branch)) { 131 | if(branch === nextType) { 132 | // We know the next element will match, so jump twice. 133 | searchListenerTree(handlers, type, xxTree[branch], i+2); 134 | } else if(branch === currentType) { 135 | // Current node matches, move into the tree. 136 | searchListenerTree(handlers, type, xxTree[branch], i+1); 137 | } else { 138 | isolatedBranch = {}; 139 | isolatedBranch[branch] = xxTree[branch]; 140 | searchListenerTree(handlers, type, { '**': isolatedBranch }, i+1); 141 | } 142 | } 143 | } 144 | } else if(xxTree._listeners) { 145 | // We have reached the end and still on a '**' 146 | searchListenerTree(handlers, type, xxTree, typeLength); 147 | } else if(xxTree['*'] && xxTree['*']._listeners) { 148 | searchListenerTree(handlers, type, xxTree['*'], typeLength); 149 | } 150 | } 151 | 152 | return listeners; 153 | } 154 | 155 | function growListenerTree(type, listener) { 156 | 157 | type = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); 158 | 159 | // 160 | // Looks for two consecutive '**', if so, don't add the event at all. 161 | // 162 | for(var i = 0, len = type.length; i+1 < len; i++) { 163 | if(type[i] === '**' && type[i+1] === '**') { 164 | return; 165 | } 166 | } 167 | 168 | var tree = this.listenerTree; 169 | var name = type.shift(); 170 | 171 | while (name) { 172 | 173 | if (!tree[name]) { 174 | tree[name] = {}; 175 | } 176 | 177 | tree = tree[name]; 178 | 179 | if (type.length === 0) { 180 | 181 | if (!tree._listeners) { 182 | tree._listeners = listener; 183 | } 184 | else if(typeof tree._listeners === 'function') { 185 | tree._listeners = [tree._listeners, listener]; 186 | } 187 | else if (isArray(tree._listeners)) { 188 | 189 | tree._listeners.push(listener); 190 | 191 | if (!tree._listeners.warned) { 192 | 193 | var m = defaultMaxListeners; 194 | 195 | if (typeof this._events.maxListeners !== 'undefined') { 196 | m = this._events.maxListeners; 197 | } 198 | 199 | if (m > 0 && tree._listeners.length > m) { 200 | 201 | tree._listeners.warned = true; 202 | console.error('(node) warning: possible EventEmitter memory ' + 203 | 'leak detected. %d listeners added. ' + 204 | 'Use emitter.setMaxListeners() to increase limit.', 205 | tree._listeners.length); 206 | console.trace(); 207 | } 208 | } 209 | } 210 | return true; 211 | } 212 | name = type.shift(); 213 | } 214 | return true; 215 | } 216 | 217 | // By default EventEmitters will print a warning if more than 218 | // 10 listeners are added to it. This is a useful default which 219 | // helps finding memory leaks. 220 | // 221 | // Obviously not all Emitters should be limited to 10. This function allows 222 | // that to be increased. Set to zero for unlimited. 223 | 224 | EventEmitter.prototype.delimiter = '.'; 225 | 226 | EventEmitter.prototype.setMaxListeners = function(n) { 227 | this._events || init.call(this); 228 | this._events.maxListeners = n; 229 | if (!this._conf) this._conf = {}; 230 | this._conf.maxListeners = n; 231 | }; 232 | 233 | EventEmitter.prototype.event = ''; 234 | 235 | EventEmitter.prototype.once = function(event, fn) { 236 | this.many(event, 1, fn); 237 | return this; 238 | }; 239 | 240 | EventEmitter.prototype.many = function(event, ttl, fn) { 241 | var self = this; 242 | 243 | if (typeof fn !== 'function') { 244 | throw new Error('many only accepts instances of Function'); 245 | } 246 | 247 | function listener() { 248 | if (--ttl === 0) { 249 | self.off(event, listener); 250 | } 251 | fn.apply(this, arguments); 252 | } 253 | 254 | listener._origin = fn; 255 | 256 | this.on(event, listener); 257 | 258 | return self; 259 | }; 260 | 261 | EventEmitter.prototype.emit = function() { 262 | 263 | this._events || init.call(this); 264 | 265 | var type = arguments[0]; 266 | 267 | if (type === 'newListener' && !this.newListener) { 268 | if (!this._events.newListener) { return false; } 269 | } 270 | 271 | // Loop through the *_all* functions and invoke them. 272 | if (this._all) { 273 | var l = arguments.length; 274 | var args = new Array(l - 1); 275 | for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; 276 | for (i = 0, l = this._all.length; i < l; i++) { 277 | this.event = type; 278 | this._all[i].apply(this, args); 279 | } 280 | } 281 | 282 | // If there is no 'error' event listener then throw. 283 | if (type === 'error') { 284 | 285 | if (!this._all && 286 | !this._events.error && 287 | !(this.wildcard && this.listenerTree.error)) { 288 | 289 | if (arguments[1] instanceof Error) { 290 | throw arguments[1]; // Unhandled 'error' event 291 | } else { 292 | throw new Error("Uncaught, unspecified 'error' event."); 293 | } 294 | return false; 295 | } 296 | } 297 | 298 | var handler; 299 | 300 | if(this.wildcard) { 301 | handler = []; 302 | var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); 303 | searchListenerTree.call(this, handler, ns, this.listenerTree, 0); 304 | } 305 | else { 306 | handler = this._events[type]; 307 | } 308 | 309 | if (typeof handler === 'function') { 310 | this.event = type; 311 | if (arguments.length === 1) { 312 | handler.call(this); 313 | } 314 | else if (arguments.length > 1) 315 | switch (arguments.length) { 316 | case 2: 317 | handler.call(this, arguments[1]); 318 | break; 319 | case 3: 320 | handler.call(this, arguments[1], arguments[2]); 321 | break; 322 | // slower 323 | default: 324 | var l = arguments.length; 325 | var args = new Array(l - 1); 326 | for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; 327 | handler.apply(this, args); 328 | } 329 | return true; 330 | } 331 | else if (handler) { 332 | var l = arguments.length; 333 | var args = new Array(l - 1); 334 | for (var i = 1; i < l; i++) args[i - 1] = arguments[i]; 335 | 336 | var listeners = handler.slice(); 337 | for (var i = 0, l = listeners.length; i < l; i++) { 338 | this.event = type; 339 | listeners[i].apply(this, args); 340 | } 341 | return (listeners.length > 0) || !!this._all; 342 | } 343 | else { 344 | return !!this._all; 345 | } 346 | 347 | }; 348 | 349 | EventEmitter.prototype.on = function(type, listener) { 350 | 351 | if (typeof type === 'function') { 352 | this.onAny(type); 353 | return this; 354 | } 355 | 356 | if (typeof listener !== 'function') { 357 | throw new Error('on only accepts instances of Function'); 358 | } 359 | this._events || init.call(this); 360 | 361 | // To avoid recursion in the case that type == "newListeners"! Before 362 | // adding it to the listeners, first emit "newListeners". 363 | this.emit('newListener', type, listener); 364 | 365 | if(this.wildcard) { 366 | growListenerTree.call(this, type, listener); 367 | return this; 368 | } 369 | 370 | if (!this._events[type]) { 371 | // Optimize the case of one listener. Don't need the extra array object. 372 | this._events[type] = listener; 373 | } 374 | else if(typeof this._events[type] === 'function') { 375 | // Adding the second element, need to change to array. 376 | this._events[type] = [this._events[type], listener]; 377 | } 378 | else if (isArray(this._events[type])) { 379 | // If we've already got an array, just append. 380 | this._events[type].push(listener); 381 | 382 | // Check for listener leak 383 | if (!this._events[type].warned) { 384 | 385 | var m = defaultMaxListeners; 386 | 387 | if (typeof this._events.maxListeners !== 'undefined') { 388 | m = this._events.maxListeners; 389 | } 390 | 391 | if (m > 0 && this._events[type].length > m) { 392 | 393 | this._events[type].warned = true; 394 | console.error('(node) warning: possible EventEmitter memory ' + 395 | 'leak detected. %d listeners added. ' + 396 | 'Use emitter.setMaxListeners() to increase limit.', 397 | this._events[type].length); 398 | console.trace(); 399 | } 400 | } 401 | } 402 | return this; 403 | }; 404 | 405 | EventEmitter.prototype.onAny = function(fn) { 406 | 407 | if (typeof fn !== 'function') { 408 | throw new Error('onAny only accepts instances of Function'); 409 | } 410 | 411 | if(!this._all) { 412 | this._all = []; 413 | } 414 | 415 | // Add the function to the event listener collection. 416 | this._all.push(fn); 417 | return this; 418 | }; 419 | 420 | EventEmitter.prototype.addListener = EventEmitter.prototype.on; 421 | 422 | EventEmitter.prototype.off = function(type, listener) { 423 | if (typeof listener !== 'function') { 424 | throw new Error('removeListener only takes instances of Function'); 425 | } 426 | 427 | var handlers,leafs=[]; 428 | 429 | if(this.wildcard) { 430 | var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); 431 | leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0); 432 | } 433 | else { 434 | // does not use listeners(), so no side effect of creating _events[type] 435 | if (!this._events[type]) return this; 436 | handlers = this._events[type]; 437 | leafs.push({_listeners:handlers}); 438 | } 439 | 440 | for (var iLeaf=0; iLeaf 0) { 495 | fns = this._all; 496 | for(i = 0, l = fns.length; i < l; i++) { 497 | if(fn === fns[i]) { 498 | fns.splice(i, 1); 499 | return this; 500 | } 501 | } 502 | } else { 503 | this._all = []; 504 | } 505 | return this; 506 | }; 507 | 508 | EventEmitter.prototype.removeListener = EventEmitter.prototype.off; 509 | 510 | EventEmitter.prototype.removeAllListeners = function(type) { 511 | if (arguments.length === 0) { 512 | !this._events || init.call(this); 513 | return this; 514 | } 515 | 516 | if(this.wildcard) { 517 | var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice(); 518 | var leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0); 519 | 520 | for (var iLeaf=0; iLeaf0&&o._listeners.length>a){o._listeners.warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",o._listeners.length);console.trace()}}}return true}u=e.shift()}return true}var t=Array.isArray?Array.isArray:function(t){return Object.prototype.toString.call(t)==="[object Array]"};var n=10;s.prototype.delimiter=".";s.prototype.setMaxListeners=function(e){this._events||r.call(this);this._events.maxListeners=e;if(!this._conf)this._conf={};this._conf.maxListeners=e};s.prototype.event="";s.prototype.once=function(e,t){this.many(e,1,t);return this};s.prototype.many=function(e,t,n){function i(){if(--t===0){r.off(e,i)}n.apply(this,arguments)}var r=this;if(typeof n!=="function"){throw new Error("many only accepts instances of Function")}i._origin=n;this.on(e,i);return r};s.prototype.emit=function(){this._events||r.call(this);var e=arguments[0];if(e==="newListener"&&!this.newListener){if(!this._events.newListener){return false}}if(this._all){var t=arguments.length;var n=new Array(t-1);for(var i=1;i1)switch(arguments.length){case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:var t=arguments.length;var n=new Array(t-1);for(var i=1;i0||!!this._all}else{return!!this._all}};s.prototype.on=function(e,i){if(typeof e==="function"){this.onAny(e);return this}if(typeof i!=="function"){throw new Error("on only accepts instances of Function")}this._events||r.call(this);this.emit("newListener",e,i);if(this.wildcard){u.call(this,e,i);return this}if(!this._events[e]){this._events[e]=i}else if(typeof this._events[e]==="function"){this._events[e]=[this._events[e],i]}else if(t(this._events[e])){this._events[e].push(i);if(!this._events[e].warned){var s=n;if(typeof this._events.maxListeners!=="undefined"){s=this._events.maxListeners}if(s>0&&this._events[e].length>s){this._events[e].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[e].length);console.trace()}}}return this};s.prototype.onAny=function(e){if(typeof e!=="function"){throw new Error("onAny only accepts instances of Function")}if(!this._all){this._all=[]}this._all.push(e);return this};s.prototype.addListener=s.prototype.on;s.prototype.off=function(e,n){if(typeof n!=="function"){throw new Error("removeListener only takes instances of Function")}var r,i=[];if(this.wildcard){var s=typeof e==="string"?e.split(this.delimiter):e.slice();i=o.call(this,null,s,this.listenerTree,0)}else{if(!this._events[e])return this;r=this._events[e];i.push({_listeners:r})}for(var u=0;u0){r=this._all;for(t=0,n=r.length;tli{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}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-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-f:before,.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,.fa-gratipay: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-genderless:before,.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"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} -------------------------------------------------------------------------------- /scripts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UbiquityRobotics/speech_commands/f141ddfe09365f1f556de14ed0e38dd501d16fea/scripts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /scripts/jquery-ui.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.8.24 - 2012-09-28 2 | * https://github.com/jquery/jquery-ui 3 | * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.tabs.css, jquery.ui.theme.css 4 | * Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ 5 | 6 | /* Layout helpers 7 | ----------------------------------*/ 8 | .ui-helper-hidden { display: none; } 9 | .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } 10 | .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } 11 | .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } 12 | .ui-helper-clearfix:after { clear: both; } 13 | .ui-helper-clearfix { zoom: 1; } 14 | .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } 15 | 16 | 17 | /* Interaction Cues 18 | ----------------------------------*/ 19 | .ui-state-disabled { cursor: default !important; } 20 | 21 | 22 | /* Icons 23 | ----------------------------------*/ 24 | 25 | /* states and images */ 26 | .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } 27 | 28 | 29 | /* Misc visuals 30 | ----------------------------------*/ 31 | 32 | /* Overlays */ 33 | .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 34 | 35 | /* IE/Win - Fix animation bug - #4615 */ 36 | .ui-accordion { width: 100%; } 37 | .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } 38 | .ui-accordion .ui-accordion-li-fix { display: inline; } 39 | .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } 40 | .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } 41 | .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } 42 | .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } 43 | .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } 44 | .ui-accordion .ui-accordion-content-active { display: block; } 45 | 46 | .ui-autocomplete { position: absolute; cursor: default; } 47 | 48 | /* workarounds */ 49 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ 50 | 51 | /* 52 | * jQuery UI Menu 1.8.24 53 | * 54 | * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 55 | * Dual licensed under the MIT or GPL Version 2 licenses. 56 | * http://jquery.org/license 57 | * 58 | * http://docs.jquery.com/UI/Menu#theming 59 | */ 60 | .ui-menu { 61 | list-style:none; 62 | padding: 2px; 63 | margin: 0; 64 | display:block; 65 | float: left; 66 | } 67 | .ui-menu .ui-menu { 68 | margin-top: -3px; 69 | } 70 | .ui-menu .ui-menu-item { 71 | margin:0; 72 | padding: 0; 73 | zoom: 1; 74 | float: left; 75 | clear: left; 76 | width: 100%; 77 | } 78 | .ui-menu .ui-menu-item a { 79 | text-decoration:none; 80 | display:block; 81 | padding:.2em .4em; 82 | line-height:1.5; 83 | zoom:1; 84 | } 85 | .ui-menu .ui-menu-item a.ui-state-hover, 86 | .ui-menu .ui-menu-item a.ui-state-active { 87 | font-weight: normal; 88 | margin: -1px; 89 | } 90 | 91 | .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ 92 | .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ 93 | button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ 94 | .ui-button-icons-only { width: 3.4em; } 95 | button.ui-button-icons-only { width: 3.7em; } 96 | 97 | /*button text element */ 98 | .ui-button .ui-button-text { display: block; line-height: 1.4; } 99 | .ui-button-text-only .ui-button-text { padding: .4em 1em; } 100 | .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } 101 | .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } 102 | .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } 103 | .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } 104 | /* no icon support for input elements, provide padding by default */ 105 | input.ui-button { padding: .4em 1em; } 106 | 107 | /*button icon element(s) */ 108 | .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } 109 | .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } 110 | .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } 111 | .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 112 | .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 113 | 114 | /*button sets*/ 115 | .ui-buttonset { margin-right: 7px; } 116 | .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } 117 | 118 | /* workarounds */ 119 | button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ 120 | 121 | .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } 122 | .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } 123 | .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } 124 | .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } 125 | .ui-datepicker .ui-datepicker-prev { left:2px; } 126 | .ui-datepicker .ui-datepicker-next { right:2px; } 127 | .ui-datepicker .ui-datepicker-prev-hover { left:1px; } 128 | .ui-datepicker .ui-datepicker-next-hover { right:1px; } 129 | .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } 130 | .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } 131 | .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } 132 | .ui-datepicker select.ui-datepicker-month-year {width: 100%;} 133 | .ui-datepicker select.ui-datepicker-month, 134 | .ui-datepicker select.ui-datepicker-year { width: 49%;} 135 | .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } 136 | .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } 137 | .ui-datepicker td { border: 0; padding: 1px; } 138 | .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } 139 | .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } 140 | .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } 141 | .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } 142 | 143 | /* with multiple calendars */ 144 | .ui-datepicker.ui-datepicker-multi { width:auto; } 145 | .ui-datepicker-multi .ui-datepicker-group { float:left; } 146 | .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } 147 | .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } 148 | .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } 149 | .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } 150 | .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } 151 | .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } 152 | .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } 153 | .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } 154 | 155 | /* RTL support */ 156 | .ui-datepicker-rtl { direction: rtl; } 157 | .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } 158 | .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } 159 | .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } 160 | .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } 161 | .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } 162 | .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } 163 | .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } 164 | .ui-datepicker-rtl .ui-datepicker-group { float:right; } 165 | .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 166 | .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 167 | 168 | /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ 169 | .ui-datepicker-cover { 170 | position: absolute; /*must have*/ 171 | z-index: -1; /*must have*/ 172 | filter: mask(); /*must have*/ 173 | top: -4px; /*must have*/ 174 | left: -4px; /*must have*/ 175 | width: 200px; /*must have*/ 176 | height: 200px; /*must have*/ 177 | } 178 | .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } 179 | .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } 180 | .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 181 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } 182 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 183 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } 184 | .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } 185 | .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } 186 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 187 | .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 188 | .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 189 | .ui-draggable .ui-dialog-titlebar { cursor: move; } 190 | 191 | .ui-progressbar { height:2em; text-align: left; overflow: hidden; } 192 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } 193 | .ui-resizable { position: relative;} 194 | .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } 195 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 196 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 197 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 198 | .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 199 | .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 200 | .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 201 | .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 202 | .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 203 | .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} 204 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 205 | 206 | .ui-slider { position: relative; text-align: left; } 207 | .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } 208 | .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } 209 | 210 | .ui-slider-horizontal { height: .8em; } 211 | .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } 212 | .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } 213 | .ui-slider-horizontal .ui-slider-range-min { left: 0; } 214 | .ui-slider-horizontal .ui-slider-range-max { right: 0; } 215 | 216 | .ui-slider-vertical { width: .8em; height: 100px; } 217 | .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } 218 | .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } 219 | .ui-slider-vertical .ui-slider-range-min { bottom: 0; } 220 | .ui-slider-vertical .ui-slider-range-max { top: 0; } 221 | .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 222 | .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } 223 | .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } 224 | .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } 225 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } 226 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } 227 | .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ 228 | .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } 229 | .ui-tabs .ui-tabs-hide { display: none !important; } 230 | 231 | /* Component containers 232 | ----------------------------------*/ 233 | .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } 234 | .ui-widget .ui-widget { font-size: 1em; } 235 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } 236 | .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } 237 | .ui-widget-content a { color: #222222/*{fcContent}*/; } 238 | .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } 239 | .ui-widget-header a { color: #222222/*{fcHeader}*/; } 240 | 241 | /* Interaction states 242 | ----------------------------------*/ 243 | .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } 244 | .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } 245 | .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } 246 | .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } 247 | .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } 248 | .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } 249 | .ui-widget :active { outline: none; } 250 | 251 | /* Interaction Cues 252 | ----------------------------------*/ 253 | .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } 254 | .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } 255 | .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } 256 | .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } 257 | .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } 258 | .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } 259 | .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } 260 | .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } 261 | 262 | /* Icons 263 | ----------------------------------*/ 264 | 265 | /* states and images */ 266 | .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } 267 | .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } 268 | .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } 269 | .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } 270 | .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } 271 | .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } 272 | .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } 273 | .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } 274 | 275 | /* positioning */ 276 | .ui-icon-carat-1-n { background-position: 0 0; } 277 | .ui-icon-carat-1-ne { background-position: -16px 0; } 278 | .ui-icon-carat-1-e { background-position: -32px 0; } 279 | .ui-icon-carat-1-se { background-position: -48px 0; } 280 | .ui-icon-carat-1-s { background-position: -64px 0; } 281 | .ui-icon-carat-1-sw { background-position: -80px 0; } 282 | .ui-icon-carat-1-w { background-position: -96px 0; } 283 | .ui-icon-carat-1-nw { background-position: -112px 0; } 284 | .ui-icon-carat-2-n-s { background-position: -128px 0; } 285 | .ui-icon-carat-2-e-w { background-position: -144px 0; } 286 | .ui-icon-triangle-1-n { background-position: 0 -16px; } 287 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } 288 | .ui-icon-triangle-1-e { background-position: -32px -16px; } 289 | .ui-icon-triangle-1-se { background-position: -48px -16px; } 290 | .ui-icon-triangle-1-s { background-position: -64px -16px; } 291 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } 292 | .ui-icon-triangle-1-w { background-position: -96px -16px; } 293 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } 294 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } 295 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } 296 | .ui-icon-arrow-1-n { background-position: 0 -32px; } 297 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } 298 | .ui-icon-arrow-1-e { background-position: -32px -32px; } 299 | .ui-icon-arrow-1-se { background-position: -48px -32px; } 300 | .ui-icon-arrow-1-s { background-position: -64px -32px; } 301 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } 302 | .ui-icon-arrow-1-w { background-position: -96px -32px; } 303 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } 304 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } 305 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } 306 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } 307 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } 308 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } 309 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } 310 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } 311 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } 312 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; } 313 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } 314 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } 315 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } 316 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } 317 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } 318 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } 319 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } 320 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } 321 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } 322 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } 323 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } 324 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } 325 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } 326 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } 327 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } 328 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } 329 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } 330 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } 331 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } 332 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } 333 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } 334 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } 335 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } 336 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } 337 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } 338 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } 339 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } 340 | .ui-icon-arrow-4 { background-position: 0 -80px; } 341 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } 342 | .ui-icon-extlink { background-position: -32px -80px; } 343 | .ui-icon-newwin { background-position: -48px -80px; } 344 | .ui-icon-refresh { background-position: -64px -80px; } 345 | .ui-icon-shuffle { background-position: -80px -80px; } 346 | .ui-icon-transfer-e-w { background-position: -96px -80px; } 347 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } 348 | .ui-icon-folder-collapsed { background-position: 0 -96px; } 349 | .ui-icon-folder-open { background-position: -16px -96px; } 350 | .ui-icon-document { background-position: -32px -96px; } 351 | .ui-icon-document-b { background-position: -48px -96px; } 352 | .ui-icon-note { background-position: -64px -96px; } 353 | .ui-icon-mail-closed { background-position: -80px -96px; } 354 | .ui-icon-mail-open { background-position: -96px -96px; } 355 | .ui-icon-suitcase { background-position: -112px -96px; } 356 | .ui-icon-comment { background-position: -128px -96px; } 357 | .ui-icon-person { background-position: -144px -96px; } 358 | .ui-icon-print { background-position: -160px -96px; } 359 | .ui-icon-trash { background-position: -176px -96px; } 360 | .ui-icon-locked { background-position: -192px -96px; } 361 | .ui-icon-unlocked { background-position: -208px -96px; } 362 | .ui-icon-bookmark { background-position: -224px -96px; } 363 | .ui-icon-tag { background-position: -240px -96px; } 364 | .ui-icon-home { background-position: 0 -112px; } 365 | .ui-icon-flag { background-position: -16px -112px; } 366 | .ui-icon-calendar { background-position: -32px -112px; } 367 | .ui-icon-cart { background-position: -48px -112px; } 368 | .ui-icon-pencil { background-position: -64px -112px; } 369 | .ui-icon-clock { background-position: -80px -112px; } 370 | .ui-icon-disk { background-position: -96px -112px; } 371 | .ui-icon-calculator { background-position: -112px -112px; } 372 | .ui-icon-zoomin { background-position: -128px -112px; } 373 | .ui-icon-zoomout { background-position: -144px -112px; } 374 | .ui-icon-search { background-position: -160px -112px; } 375 | .ui-icon-wrench { background-position: -176px -112px; } 376 | .ui-icon-gear { background-position: -192px -112px; } 377 | .ui-icon-heart { background-position: -208px -112px; } 378 | .ui-icon-star { background-position: -224px -112px; } 379 | .ui-icon-link { background-position: -240px -112px; } 380 | .ui-icon-cancel { background-position: 0 -128px; } 381 | .ui-icon-plus { background-position: -16px -128px; } 382 | .ui-icon-plusthick { background-position: -32px -128px; } 383 | .ui-icon-minus { background-position: -48px -128px; } 384 | .ui-icon-minusthick { background-position: -64px -128px; } 385 | .ui-icon-close { background-position: -80px -128px; } 386 | .ui-icon-closethick { background-position: -96px -128px; } 387 | .ui-icon-key { background-position: -112px -128px; } 388 | .ui-icon-lightbulb { background-position: -128px -128px; } 389 | .ui-icon-scissors { background-position: -144px -128px; } 390 | .ui-icon-clipboard { background-position: -160px -128px; } 391 | .ui-icon-copy { background-position: -176px -128px; } 392 | .ui-icon-contact { background-position: -192px -128px; } 393 | .ui-icon-image { background-position: -208px -128px; } 394 | .ui-icon-video { background-position: -224px -128px; } 395 | .ui-icon-script { background-position: -240px -128px; } 396 | .ui-icon-alert { background-position: 0 -144px; } 397 | .ui-icon-info { background-position: -16px -144px; } 398 | .ui-icon-notice { background-position: -32px -144px; } 399 | .ui-icon-help { background-position: -48px -144px; } 400 | .ui-icon-check { background-position: -64px -144px; } 401 | .ui-icon-bullet { background-position: -80px -144px; } 402 | .ui-icon-radio-off { background-position: -96px -144px; } 403 | .ui-icon-radio-on { background-position: -112px -144px; } 404 | .ui-icon-pin-w { background-position: -128px -144px; } 405 | .ui-icon-pin-s { background-position: -144px -144px; } 406 | .ui-icon-play { background-position: 0 -160px; } 407 | .ui-icon-pause { background-position: -16px -160px; } 408 | .ui-icon-seek-next { background-position: -32px -160px; } 409 | .ui-icon-seek-prev { background-position: -48px -160px; } 410 | .ui-icon-seek-end { background-position: -64px -160px; } 411 | .ui-icon-seek-start { background-position: -80px -160px; } 412 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ 413 | .ui-icon-seek-first { background-position: -80px -160px; } 414 | .ui-icon-stop { background-position: -96px -160px; } 415 | .ui-icon-eject { background-position: -112px -160px; } 416 | .ui-icon-volume-off { background-position: -128px -160px; } 417 | .ui-icon-volume-on { background-position: -144px -160px; } 418 | .ui-icon-power { background-position: 0 -176px; } 419 | .ui-icon-signal-diag { background-position: -16px -176px; } 420 | .ui-icon-signal { background-position: -32px -176px; } 421 | .ui-icon-battery-0 { background-position: -48px -176px; } 422 | .ui-icon-battery-1 { background-position: -64px -176px; } 423 | .ui-icon-battery-2 { background-position: -80px -176px; } 424 | .ui-icon-battery-3 { background-position: -96px -176px; } 425 | .ui-icon-circle-plus { background-position: 0 -192px; } 426 | .ui-icon-circle-minus { background-position: -16px -192px; } 427 | .ui-icon-circle-close { background-position: -32px -192px; } 428 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } 429 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } 430 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } 431 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } 432 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } 433 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } 434 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } 435 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } 436 | .ui-icon-circle-zoomin { background-position: -176px -192px; } 437 | .ui-icon-circle-zoomout { background-position: -192px -192px; } 438 | .ui-icon-circle-check { background-position: -208px -192px; } 439 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } 440 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } 441 | .ui-icon-circlesmall-close { background-position: -32px -208px; } 442 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } 443 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } 444 | .ui-icon-squaresmall-close { background-position: -80px -208px; } 445 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } 446 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } 447 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } 448 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } 449 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } 450 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } 451 | 452 | 453 | /* Misc visuals 454 | ----------------------------------*/ 455 | 456 | /* Corner radius */ 457 | .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } 458 | .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } 459 | .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } 460 | .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } 461 | 462 | /* Overlays */ 463 | .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } 464 | .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } -------------------------------------------------------------------------------- /scripts/roslib.min.js: -------------------------------------------------------------------------------- 1 | !function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gb.secs?!1:a.secs0&&(this.minval=parseFloat(b[0].getAttribute("lower")),this.maxval=parseFloat(b[0].getAttribute("upper")))}b.exports=d},{}],30:[function(a,b,c){function d(a){this.name=a.xml.getAttribute("name"),this.visuals=[];for(var b=a.xml.getElementsByTagName("visual"),c=0;c0&&(this.textureFilename=b[0].getAttribute("filename"));var c=a.xml.getElementsByTagName("color");c.length>0&&(this.color=new e({xml:c[0]}))}var e=a("./UrdfColor");d.prototype.isLink=function(){return null===this.color&&null===this.textureFilename};var f=a("object-assign");d.prototype.assign=function(a){return f(this,a)},b.exports=d},{"./UrdfColor":27,"object-assign":1}],32:[function(a,b,c){function d(a){this.scale=null,this.type=f.URDF_MESH,this.filename=a.xml.getAttribute("filename");var b=a.xml.getAttribute("scale");if(b){var c=b.split(" ");this.scale=new e({x:parseFloat(c[0]),y:parseFloat(c[1]),z:parseFloat(c[2])})}}var e=a("../math/Vector3"),f=a("./UrdfTypes");b.exports=d},{"../math/Vector3":21,"./UrdfTypes":35}],33:[function(a,b,c){function d(a){a=a||{};var b=a.xml,c=a.string;if(this.materials={},this.links={},this.joints={},c){var d=new h;b=d.parseFromString(c,"text/xml")}var j=b.evaluate("//robot",b,null,i,null).singleNodeValue;this.name=j.getAttribute("name");for(var k=j.childNodes,l=0;l0){for(var A=z[0],B=null,C=0;C0&&(this.material=new j({xml:F[0]}))}var e=a("../math/Pose"),f=a("../math/Vector3"),g=a("../math/Quaternion"),h=a("./UrdfCylinder"),i=a("./UrdfBox"),j=a("./UrdfMaterial"),k=a("./UrdfMesh"),l=a("./UrdfSphere");b.exports=d},{"../math/Pose":18,"../math/Quaternion":19,"../math/Vector3":21,"./UrdfBox":26,"./UrdfCylinder":28,"./UrdfMaterial":31,"./UrdfMesh":32,"./UrdfSphere":34}],37:[function(a,b,c){b.exports=a("object-assign")({UrdfBox:a("./UrdfBox"),UrdfColor:a("./UrdfColor"),UrdfCylinder:a("./UrdfCylinder"),UrdfLink:a("./UrdfLink"),UrdfMaterial:a("./UrdfMaterial"),UrdfMesh:a("./UrdfMesh"),UrdfModel:a("./UrdfModel"),UrdfSphere:a("./UrdfSphere"),UrdfVisual:a("./UrdfVisual")},a("./UrdfTypes"))},{"./UrdfBox":26,"./UrdfColor":27,"./UrdfCylinder":28,"./UrdfLink":30,"./UrdfMaterial":31,"./UrdfMesh":32,"./UrdfModel":33,"./UrdfSphere":34,"./UrdfTypes":35,"./UrdfVisual":36,"object-assign":1}],38:[function(a,b,c){(function(a){b.exports={EventEmitter2:a.EventEmitter2}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],39:[function(a,b,c){(function(a){b.exports=a.WebSocket}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],40:[function(a,b,c){b.exports=function(){return document.createElement("canvas")}},{}]},{},[4]); --------------------------------------------------------------------------------