├── .gitignore ├── .gitmodules ├── README.md ├── chrome-extension ├── README.md └── Source │ ├── content_script.js │ ├── icon.png │ ├── icon128.png │ ├── icon16.png │ ├── icon48.png │ ├── icon64.png │ ├── logo.png │ ├── manifest.json │ └── static │ ├── FuckAdBlock │ ├── .DS_Store │ ├── .gitattributes │ └── fuckadblock.js │ ├── adblock-to-bitcoin.css │ ├── bitcoinaddress.js │ ├── .DS_Store │ ├── .gitignore │ ├── .node-inspectorrc │ ├── .npmignore │ ├── dist │ │ ├── .DS_Store │ │ └── demo.js │ └── qrcode.js │ ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 │ ├── jquery.min.js │ └── shared │ ├── bootstrap.min.js │ └── font-awesome.css ├── crossdomain.xml ├── demo.html ├── wordpress-plugin.zip └── wordpress-plugin ├── README.md ├── adblock-to-bitcoin.php ├── helpers.php ├── readme.txt ├── screenshot-1.png ├── screenshot-2.png ├── screenshot-3.png ├── screenshot-4.png ├── settings.php └── static ├── FuckAdBlock ├── .DS_Store ├── .gitattributes └── fuckadblock.js ├── adblock-to-bitcoin.css ├── adblock-to-bitcoin.js ├── bitcoinaddress.js ├── .DS_Store ├── .gitignore ├── .node-inspectorrc ├── .npmignore ├── dist │ ├── .DS_Store │ └── demo.js └── qrcode.js ├── demo.html ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 └── shared ├── alwaysshow.js ├── bootstrap.min.js └── font-awesome.css /.gitignore: -------------------------------------------------------------------------------- 1 | sftp-config.json 2 | wordpress/sftp-config.json 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "bitcoinaddress.js"] 2 | path = bitcoinaddress.js 3 | url = https://github.com/miohtama/bitcoinaddress.js.git 4 | [submodule "FuckAdBlock"] 5 | path = FuckAdBlock 6 | url = https://github.com/sitexw/FuckAdBlock.git 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Updated 1/2/2016 - Install a2b directly on your browser with the a2b Chrome Extension](https://github.com/owocki/adblock-to-bitcoin/tree/master/chrome-extension) 2 | 3 | # [Updated 1/1/2016 - Install a2b directly from Wordpress Plugin Directory](https://wordpress.org/plugins/block-ads-to-bitcoin/) 4 | 5 | # Updated 12/19/2015 -- Wordpress Plugin Released 6 | 7 | # Updated 12/10/2015 -- Publishers Wanted 8 | 9 | # What 10 | 11 | 12 | 13 | A project that turns ads into bitcoin donation solicitations when adblockers are enabled. Turns 14 | 15 | # Install 16 | 17 | [Install directly from Wordpress Plugin Directory](https://wordpress.org/plugins/block-ads-to-bitcoin/) 18 | 19 | #### Example 1 20 | 21 | 22 | 23 | into 24 | 25 | 26 | 27 | #### Example 2 28 | 29 | into 30 | 31 | #### Example 3 32 | 33 | into 34 | 35 | 36 | 37 | ## Why 38 | 39 | Thesis of this project is that _publishers that have a *loyal* following might be able to get close to PPC unit economics with bitcoin donations_. 40 | 41 | While we are building relationships with publishers to test this thesis empirically, I've conducting a rather-unscientific poll suggesting that a small sample of users would be willing to pay for ad-free content, but not if they are forced: 42 | 43 | 44 | 45 | # Forked from 46 | 47 | Special thanks to these guys, who did much of the work and upon whom this project is based: 48 | 49 | * https://github.com/sitexw/FuckAdBlock 50 | * https://github.com/miohtama/bitcoinaddress.js 51 | 52 | # Try it 53 | 54 | On a mac: 55 | 56 | ```bash 57 | 58 | git clone git@github.com:owocki/adblock-to-bitcoin.git 59 | cd adblock-to-bitcoin 60 | git submodule init 61 | git submodule update 62 | 63 | ``` 64 | 65 | #Demo 66 | 67 | Demo code is at [https://github.com/owocki/adblock-to-bitcoin/blob/master/demo.html](https://github.com/owocki/adblock-to-bitcoin/blob/master/demo.html) and live demo is at [http://experiments.owocki.com/adblock-to-bitcoin/demo.html](http://experiments.owocki.com/adblock-to-bitcoin/demo.html) 68 | 69 | ## Supported Browsers / Adblockers 70 | 71 | Demo code is tested with Adblock Plus and uBlock on Google Chrome on a Mac. Any other combinations, use at your own risk (and this is open source software, feel free to submit PRs). 72 | 73 | # How you can help 74 | 75 | * _Engineer?_ Can you help with cross-browser compatibility and bringing this project to multiple browsers? 76 | * _Publisher?_ Give adblock-to-bitcoin a try with our [Wordpress Plugin)(https://github.com/owocki/adblock-to-bitcoin/blob/master/wordpress-plugin)] 77 | * _Data Scientist?_ We need DATA! The thesis behind this project is brands that have a loyal following could test different suggested payments / different copy, and might be able to get close to PPC unit economics. [Contact me on twitter](http://twitter.com/owocki)] 78 | * _Bitcoin Enthusiast?_ Help us grow the universe of real-worlduse cases for BTC. If you see this tool on a website, donate. 79 | * _Media/Publishing Enthusiast?_ Help us migrate the publishing industry into the 21st century. Refer `adblock-to-bitcoin` and our [Wordpress Plugin)(https://github.com/owocki/adblock-to-bitcoin/blob/master/wordpress-plugin)] to a publisher-friend or write about the project. 80 | 81 | # Get in touch 82 | 83 | [Contact @owocki on twitter](http://twitter.com/owocki). If there is enough interest, I will set up a google group for the project. 84 | 85 | # Donate 86 | 87 | You can donate to the author at `1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE`. Suggested donation for use on your ad-supported site: *0.045 BTC* 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /chrome-extension/README.md: -------------------------------------------------------------------------------- 1 | # Noble Adblocker chrome extension 2 | 3 | 4 | 5 | # What 6 | 7 | An adblocker for Google Chrome that turns ads into bitcoin solicitations. This chrome extension (1) adblocks ads and (2) allows users to send bitcoin to publishers (at their discretion) in return for their content. 8 | 9 | Turns 10 | 11 | into 12 | 13 | and 14 | 15 | into 16 | 17 | 18 | # How 19 | 20 | We collect donations into [1Mfe1HsWidckKohULYniDmDN3aExsJeQpN](https://blockchain.info/address/1Mfe1HsWidckKohULYniDmDN3aExsJeQpN). Once a month, when the balance for any specific domain goes is above 0.01 BTC (about $4.50 at time of authorship), we send the balance to the publisher. 21 | 22 | In the future, this plugin will allow publishers to register their own BTC addressess and collect donations in real time. 23 | -------------------------------------------------------------------------------- /chrome-extension/Source/content_script.js: -------------------------------------------------------------------------------- 1 | ad_ids = [ 'rhs_block', // google right hand side 2 | 'tads', // google top ads 3 | 'pagelet_ego_pane', //facebook right hand side 4 | 'ad', //google adsense 5 | ] 6 | ad_classes = [ 'ego_column', //facebook right hand side 7 | 'ego_unit_container', //facebook right hand side 8 | 'adfuel-rendered', //cnn, right hand side 9 | 'ad', //google adsense 10 | ] 11 | partial_ids=['google_ads_iframe_', //google ad 12 | ] 13 | partial_classes=['google_ads_iframe_', //google ad 14 | ] 15 | 16 | function render_bitcoin_solicitation(ele){ 17 | if(ele.className.indexOf('a2b_me') > -1){ 18 | return; 19 | } 20 | var width = ele.offsetWidth; 21 | var height = ele.offsetHeight; 22 | if(width < 100 || height< 100){ 23 | ele.innerHTML = ''; 24 | return; 25 | } 26 | if(document.adcount> 2){ //only display 3 bitcoin solicitations per page. 27 | ele.innerHTML = ''; 28 | return; 29 | } 30 | document.adcount++; 31 | 32 | var bat = document.createElement("div"); 33 | bat.innerHTML = ''; 74 | document.getElementsByTagName('body')[0].appendChild(bat); 75 | 76 | if(height<200){ 77 | height = 200; 78 | } 79 | var padding_top="20px"; 80 | if(height>330){ 81 | padding_top=parseInt((height-330)/2)+"px"; 82 | } 83 | 84 | var domain = document.domain.replace('www.',''); 85 | var bitcoin_address = '1Mfe1HsWidckKohULYniDmDN3aExsJeQpN'; //todo -- give publishers the ability to register their domains for an address. 86 | var sol_class = ''; 87 | var suggested_donation_amount = '0.50'; 88 | ele.className = ele.className + ' a2b_me'; 89 | ele.innerHTML = '
'+ 90 | '

Hey there! You have an ad blocker enabled. '+domain+' is an ad-supported site. Would you consider giving a small donation to cover their servers, power, rent, staff, and protect their independence? Suggested donation $'+suggested_donation_amount+'.'+ 91 | '

'+ 92 | ' '+bitcoin_address+''+ 93 | '

'+ 94 | '
'; 95 | 96 | $('.bitcoin-address, .bitcoin-address-container').each(function(e){ 97 | $(this).attr('data-bc-message',document.location); 98 | }); 99 | 100 | } 101 | 102 | function blockIds(element, index, array){ 103 | var ele = document.getElementById(element); 104 | if(!ele) 105 | return; 106 | render_bitcoin_solicitation(ele); 107 | } 108 | function blockClasses(element, index, array){ 109 | var eles = document.getElementsByClassName(element); 110 | for (var i = 0; i < eles.length; i++) { 111 | var ele = eles[i]; 112 | render_bitcoin_solicitation(ele); 113 | } 114 | } 115 | 116 | document.adcount = 0; 117 | function check_for_ads(){ 118 | //whole classes 119 | ad_ids.forEach(blockIds); 120 | ad_classes.forEach(blockClasses); 121 | 122 | //partial ids 123 | for (var i = 0; i < partial_ids.length; i++) { 124 | partial_id = partial_ids[i] 125 | var eles = $('[id*="'+partial_id+'"]') 126 | for (var k = 0; k < eles.length; k++) { 127 | var ele = eles[k]; 128 | render_bitcoin_solicitation(ele); 129 | } 130 | } 131 | 132 | //partial classes 133 | for (var i = 0; i < partial_classes.length; i++) { 134 | partial_class = partial_classes[i] 135 | var eles = $('[id*="'+partial_class+'"]') 136 | for (var k = 0; k < eles.length; k++) { 137 | var ele = eles[k]; 138 | render_bitcoin_solicitation(ele); 139 | } 140 | } 141 | setTimeout(check_for_ads,1000); 142 | } 143 | check_for_ads(); 144 | 145 | 146 | -------------------------------------------------------------------------------- /chrome-extension/Source/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon.png -------------------------------------------------------------------------------- /chrome-extension/Source/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon128.png -------------------------------------------------------------------------------- /chrome-extension/Source/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon16.png -------------------------------------------------------------------------------- /chrome-extension/Source/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon48.png -------------------------------------------------------------------------------- /chrome-extension/Source/icon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon64.png -------------------------------------------------------------------------------- /chrome-extension/Source/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/logo.png -------------------------------------------------------------------------------- /chrome-extension/Source/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Noble AdBlocker", 4 | "version": "0.21", 5 | "description": "Noble AdBlocker is an ethcial ad blocker. This chrome extension (1) adblocks ads and (2) allows donate bitcoin to publishers.", 6 | "web_accessible_resources": [ "static/fonts/*", "static/fonts/fontawesome-webfont.woff" ], 7 | "icons": { "16": "icon16.png", 8 | "48": "icon48.png", 9 | "128": "icon128.png" }, 10 | "content_scripts": 11 | [ 12 | { 13 | "matches": ["*://*/*"], 14 | "js": ["static/jquery.min.js", "static/shared/bootstrap.min.js", "static/bitcoinaddress.js/dist/demo.js", "content_script.js"], 15 | "css": ["static/adblock-to-bitcoin.css", "static/shared/font-awesome.css"], 16 | "run_at": "document_end" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /chrome-extension/Source/static/FuckAdBlock/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/FuckAdBlock/.DS_Store -------------------------------------------------------------------------------- /chrome-extension/Source/static/FuckAdBlock/.gitattributes: -------------------------------------------------------------------------------- 1 | test.html linguist-vendored 2 | -------------------------------------------------------------------------------- /chrome-extension/Source/static/FuckAdBlock/fuckadblock.js: -------------------------------------------------------------------------------- 1 | /* 2 | * FuckAdBlock 3.2.0 3 | * Copyright (c) 2015 Valentin Allaire 4 | * Released under the MIT license 5 | * https://github.com/sitexw/FuckAdBlock 6 | */ 7 | 8 | (function(window) { 9 | var FuckAdBlock = function(options) { 10 | this._options = { 11 | checkOnLoad: false, 12 | resetOnEnd: false, 13 | loopCheckTime: 50, 14 | loopMaxNumber: 5, 15 | baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links', 16 | baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;', 17 | debug: false 18 | }; 19 | this._var = { 20 | version: '3.2.0', 21 | bait: null, 22 | checking: false, 23 | loop: null, 24 | loopNumber: 0, 25 | event: { detected: [], notDetected: [] } 26 | }; 27 | if(options !== undefined) { 28 | this.setOption(options); 29 | } 30 | var self = this; 31 | var eventCallback = function() { 32 | setTimeout(function() { 33 | if(self._options.checkOnLoad === true) { 34 | if(self._options.debug === true) { 35 | self._log('onload->eventCallback', 'A check loading is launched'); 36 | } 37 | if(self._var.bait === null) { 38 | self._creatBait(); 39 | } 40 | setTimeout(function() { 41 | self.check(); 42 | }, 1); 43 | } 44 | }, 1); 45 | }; 46 | if(window.addEventListener !== undefined) { 47 | window.addEventListener('load', eventCallback, false); 48 | } else { 49 | window.attachEvent('onload', eventCallback); 50 | } 51 | }; 52 | FuckAdBlock.prototype._options = null; 53 | FuckAdBlock.prototype._var = null; 54 | FuckAdBlock.prototype._bait = null; 55 | 56 | FuckAdBlock.prototype._log = function(method, message) { 57 | console.log('[FuckAdBlock]['+method+'] '+message); 58 | }; 59 | 60 | FuckAdBlock.prototype.setOption = function(options, value) { 61 | if(value !== undefined) { 62 | var key = options; 63 | options = {}; 64 | options[key] = value; 65 | } 66 | for(var option in options) { 67 | this._options[option] = options[option]; 68 | if(this._options.debug === true) { 69 | this._log('setOption', 'The option "'+option+'" he was assigned to "'+options[option]+'"'); 70 | } 71 | } 72 | return this; 73 | }; 74 | 75 | FuckAdBlock.prototype._creatBait = function() { 76 | var bait = document.createElement('div'); 77 | bait.setAttribute('class', this._options.baitClass); 78 | bait.setAttribute('style', this._options.baitStyle); 79 | this._var.bait = window.document.body.appendChild(bait); 80 | 81 | this._var.bait.offsetParent; 82 | this._var.bait.offsetHeight; 83 | this._var.bait.offsetLeft; 84 | this._var.bait.offsetTop; 85 | this._var.bait.offsetWidth; 86 | this._var.bait.clientHeight; 87 | this._var.bait.clientWidth; 88 | 89 | if(this._options.debug === true) { 90 | this._log('_creatBait', 'Bait has been created'); 91 | } 92 | }; 93 | FuckAdBlock.prototype._destroyBait = function() { 94 | window.document.body.removeChild(this._var.bait); 95 | this._var.bait = null; 96 | 97 | if(this._options.debug === true) { 98 | this._log('_destroyBait', 'Bait has been removed'); 99 | } 100 | }; 101 | 102 | FuckAdBlock.prototype.check = function(loop) { 103 | if(loop === undefined) { 104 | loop = true; 105 | } 106 | 107 | if(this._options.debug === true) { 108 | this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop'); 109 | } 110 | 111 | if(this._var.checking === true) { 112 | if(this._options.debug === true) { 113 | this._log('check', 'A check was canceled because there is already an ongoing'); 114 | } 115 | return false; 116 | } 117 | this._var.checking = true; 118 | 119 | if(this._var.bait === null) { 120 | this._creatBait(); 121 | } 122 | 123 | var self = this; 124 | this._var.loopNumber = 0; 125 | if(loop === true) { 126 | this._var.loop = setInterval(function() { 127 | self._checkBait(loop); 128 | }, this._options.loopCheckTime); 129 | } 130 | setTimeout(function() { 131 | self._checkBait(loop); 132 | }, 1); 133 | if(this._options.debug === true) { 134 | this._log('check', 'A check is in progress ...'); 135 | } 136 | 137 | return true; 138 | }; 139 | FuckAdBlock.prototype._checkBait = function(loop) { 140 | var detected = false; 141 | 142 | if(this._var.bait === null) { 143 | this._creatBait(); 144 | } 145 | 146 | if(window.document.body.getAttribute('abp') !== null 147 | || this._var.bait.offsetParent === null 148 | || this._var.bait.offsetHeight == 0 149 | || this._var.bait.offsetLeft == 0 150 | || this._var.bait.offsetTop == 0 151 | || this._var.bait.offsetWidth == 0 152 | || this._var.bait.clientHeight == 0 153 | || this._var.bait.clientWidth == 0) { 154 | detected = true; 155 | } 156 | if(window.getComputedStyle !== undefined) { 157 | var baitTemp = window.getComputedStyle(this._var.bait, null); 158 | if(baitTemp.getPropertyValue('display') == 'none' 159 | || baitTemp.getPropertyValue('visibility') == 'hidden') { 160 | detected = true; 161 | } 162 | } 163 | 164 | if(this._options.debug === true) { 165 | this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative')); 166 | } 167 | 168 | if(loop === true) { 169 | this._var.loopNumber++; 170 | if(this._var.loopNumber >= this._options.loopMaxNumber) { 171 | this._stopLoop(); 172 | } 173 | } 174 | 175 | if(detected === true) { 176 | this._stopLoop(); 177 | this._destroyBait(); 178 | this.emitEvent(true); 179 | if(loop === true) { 180 | this._var.checking = false; 181 | } 182 | } else if(this._var.loop === null || loop === false) { 183 | this._destroyBait(); 184 | this.emitEvent(false); 185 | if(loop === true) { 186 | this._var.checking = false; 187 | } 188 | } 189 | }; 190 | FuckAdBlock.prototype._stopLoop = function(detected) { 191 | clearInterval(this._var.loop); 192 | this._var.loop = null; 193 | this._var.loopNumber = 0; 194 | 195 | if(this._options.debug === true) { 196 | this._log('_stopLoop', 'A loop has been stopped'); 197 | } 198 | }; 199 | 200 | FuckAdBlock.prototype.emitEvent = function(detected) { 201 | if(this._options.debug === true) { 202 | this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called'); 203 | } 204 | 205 | var fns = this._var.event[(detected===true?'detected':'notDetected')]; 206 | for(var i in fns) { 207 | if(this._options.debug === true) { 208 | this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length); 209 | } 210 | if(fns.hasOwnProperty(i)) { 211 | fns[i](); 212 | } 213 | } 214 | if(this._options.resetOnEnd === true) { 215 | this.clearEvent(); 216 | } 217 | return this; 218 | }; 219 | FuckAdBlock.prototype.clearEvent = function() { 220 | this._var.event.detected = []; 221 | this._var.event.notDetected = []; 222 | 223 | if(this._options.debug === true) { 224 | this._log('clearEvent', 'The event list has been cleared'); 225 | } 226 | }; 227 | 228 | FuckAdBlock.prototype.on = function(detected, fn) { 229 | this._var.event[(detected===true?'detected':'notDetected')].push(fn); 230 | if(this._options.debug === true) { 231 | this._log('on', 'A type of event "'+(detected===true?'detected':'notDetected')+'" was added'); 232 | } 233 | 234 | return this; 235 | }; 236 | FuckAdBlock.prototype.onDetected = function(fn) { 237 | return this.on(true, fn); 238 | }; 239 | FuckAdBlock.prototype.onNotDetected = function(fn) { 240 | return this.on(false, fn); 241 | }; 242 | 243 | window.FuckAdBlock = FuckAdBlock; 244 | 245 | if(window.fuckAdBlock === undefined) { 246 | window.fuckAdBlock = new FuckAdBlock({ 247 | checkOnLoad: true, 248 | resetOnEnd: true 249 | }); 250 | } 251 | })(window); 252 | -------------------------------------------------------------------------------- /chrome-extension/Source/static/adblock-to-bitcoin.css: -------------------------------------------------------------------------------- 1 | 2 | /* http://davidwalsh.name/html5-hidden */ 3 | *[hidden] { display: none; } 4 | 5 | /* Action hints are slidedowns, hidden by default */ 6 | .bitcoin-action-hint { 7 | display: none; 8 | } 9 | 10 | /* Show dashed underlining so people get a hint it's clickable */ 11 | .bitcoin-address-container .bitcoin-address { 12 | border-bottom: 1px dashed gray; 13 | cursor: pointer; 14 | } 15 | 16 | /* Center QR code image */ 17 | .bitcoin-address-qr-container > img, 18 | .bitcoin-address-qr-container > canvas { 19 | margin: 0 auto; 20 | max-width: 200px; 21 | } 22 | 23 | /* bitcoinprices.js - for bitcoinprices, donation nominated in USD */ 24 | .clickable-price { 25 | cursor: pointer; 26 | border-bottom: 1px #888 dashed; 27 | } 28 | 29 | /* Demo page splash styling */ 30 | #bitcoin-icon { 31 | font-size: 128px; 32 | color: #F7931A; 33 | } 34 | 35 | #bitcoin-icon .fa-circle { 36 | text-shadow: 0 3px 3px rgba(32, 32, 32, 0.3); 37 | } 38 | .example-row { 39 | margin: 30px 0; 40 | } 41 | 42 | .example-heading { 43 | color: #357ebd; 44 | } 45 | 46 | /* adblock-to-bitcoin sizes */ 47 | .ad_container { 48 | 49 | } 50 | .bitcoin_solicitation{ 51 | background-color: #fafafa; 52 | padding: 10px; 53 | word-wrap: break-word; 54 | text-align: center; 55 | overflow-y: scroll; 56 | } 57 | .bitcoin_solicitation span.hidden{ 58 | display: none !important; 59 | } 60 | 61 | .bitcoin_solicitation a{ 62 | color: #428bca; 63 | text-decoration: none 64 | } 65 | 66 | .bitcoin_solicitation .poweredby{ 67 | font-size: 70%; 68 | margin-top: 5px; 69 | } 70 | 71 | 72 | .bitcoin_solicitation.adblock_enabled{ 73 | display:block; 74 | background-color: #f5f5f5; 75 | border: 1px solid #e3e3e3; 76 | border-radius: 4px; 77 | padding: 6px; 78 | text-align:center; 79 | } 80 | .bitcoin_solicitation.leaderboard,{ 81 | width: 728px; 82 | height: 90px; 83 | } 84 | .bitcoin_solicitation.large-rectangle{ 85 | padding-top: 10% ; 86 | padding-bottom: 10% ; 87 | width: 336px; 88 | height: 280px; 89 | } 90 | .bitcoin_solicitation.mobile-banner{ 91 | width: 320px; 92 | height: 100px; 93 | font-size: 75%; 94 | } 95 | .bitcoin_solicitation.mobile-banner .bitcoin-address-action{ 96 | display: none; 97 | } 98 | .bitcoin_solicitation.large-skyscraper{ 99 | padding-top: 20% ; 100 | padding-bottom: 20% ; 101 | width: 300px; 102 | height: 600px; 103 | } 104 | .sitename, .smallbitcoin{ 105 | font-style: italic; 106 | } 107 | -------------------------------------------------------------------------------- /chrome-extension/Source/static/bitcoinaddress.js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/bitcoinaddress.js/.DS_Store -------------------------------------------------------------------------------- /chrome-extension/Source/static/bitcoinaddress.js/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log -------------------------------------------------------------------------------- /chrome-extension/Source/static/bitcoinaddress.js/.node-inspectorrc: -------------------------------------------------------------------------------- 1 | { 2 | "save-live-edit": true 3 | } -------------------------------------------------------------------------------- /chrome-extension/Source/static/bitcoinaddress.js/.npmignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /chrome-extension/Source/static/bitcoinaddress.js/dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/bitcoinaddress.js/dist/.DS_Store -------------------------------------------------------------------------------- /chrome-extension/Source/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /chrome-extension/Source/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /chrome-extension/Source/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /chrome-extension/Source/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /chrome-extension/Source/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /chrome-extension/Source/static/shared/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.3 (http://getbootstrap.com) 3 | * Copyright 2013 Twitter, Inc. 4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0 5 | */ 6 | 7 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); -------------------------------------------------------------------------------- /chrome-extension/Source/static/shared/font-awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | /* FONT PATH 6 | * -------------------------- */ 7 | @font-face { 8 | font-family: 'FontAwesome'; 9 | src: url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.eot'); 10 | src: url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.woff') format('woff'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.ttf') format('truetype'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | .fa { 15 | display: inline-block; 16 | font-family: FontAwesome; 17 | font-style: normal; 18 | font-weight: normal; 19 | line-height: 1; 20 | -webkit-font-smoothing: antialiased; 21 | -moz-osx-font-smoothing: grayscale; 22 | } 23 | /* makes the font 33% larger relative to the icon container */ 24 | .fa-lg { 25 | font-size: 1.3333333333333333em; 26 | line-height: 0.75em; 27 | vertical-align: -15%; 28 | } 29 | .fa-2x { 30 | font-size: 2em; 31 | } 32 | .fa-3x { 33 | font-size: 3em; 34 | } 35 | .fa-4x { 36 | font-size: 4em; 37 | } 38 | .fa-5x { 39 | font-size: 5em; 40 | } 41 | .fa-fw { 42 | width: 1.2857142857142858em; 43 | text-align: center; 44 | } 45 | .fa-ul { 46 | padding-left: 0; 47 | margin-left: 2.142857142857143em; 48 | list-style-type: none; 49 | } 50 | .fa-ul > li { 51 | position: relative; 52 | } 53 | .fa-li { 54 | position: absolute; 55 | left: -2.142857142857143em; 56 | width: 2.142857142857143em; 57 | top: 0.14285714285714285em; 58 | text-align: center; 59 | } 60 | .fa-li.fa-lg { 61 | left: -1.8571428571428572em; 62 | } 63 | .fa-border { 64 | padding: .2em .25em .15em; 65 | border: solid 0.08em #eeeeee; 66 | border-radius: .1em; 67 | } 68 | .pull-right { 69 | float: right; 70 | } 71 | .pull-left { 72 | float: left; 73 | } 74 | .fa.pull-left { 75 | margin-right: .3em; 76 | } 77 | .fa.pull-right { 78 | margin-left: .3em; 79 | } 80 | .fa-spin { 81 | -webkit-animation: spin 2s infinite linear; 82 | -moz-animation: spin 2s infinite linear; 83 | -o-animation: spin 2s infinite linear; 84 | animation: spin 2s infinite linear; 85 | } 86 | @-moz-keyframes spin { 87 | 0% { 88 | -moz-transform: rotate(0deg); 89 | } 90 | 100% { 91 | -moz-transform: rotate(359deg); 92 | } 93 | } 94 | @-webkit-keyframes spin { 95 | 0% { 96 | -webkit-transform: rotate(0deg); 97 | } 98 | 100% { 99 | -webkit-transform: rotate(359deg); 100 | } 101 | } 102 | @-o-keyframes spin { 103 | 0% { 104 | -o-transform: rotate(0deg); 105 | } 106 | 100% { 107 | -o-transform: rotate(359deg); 108 | } 109 | } 110 | @-ms-keyframes spin { 111 | 0% { 112 | -ms-transform: rotate(0deg); 113 | } 114 | 100% { 115 | -ms-transform: rotate(359deg); 116 | } 117 | } 118 | @keyframes spin { 119 | 0% { 120 | transform: rotate(0deg); 121 | } 122 | 100% { 123 | transform: rotate(359deg); 124 | } 125 | } 126 | .fa-rotate-90 { 127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); 128 | -webkit-transform: rotate(90deg); 129 | -moz-transform: rotate(90deg); 130 | -ms-transform: rotate(90deg); 131 | -o-transform: rotate(90deg); 132 | transform: rotate(90deg); 133 | } 134 | .fa-rotate-180 { 135 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 136 | -webkit-transform: rotate(180deg); 137 | -moz-transform: rotate(180deg); 138 | -ms-transform: rotate(180deg); 139 | -o-transform: rotate(180deg); 140 | transform: rotate(180deg); 141 | } 142 | .fa-rotate-270 { 143 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 144 | -webkit-transform: rotate(270deg); 145 | -moz-transform: rotate(270deg); 146 | -ms-transform: rotate(270deg); 147 | -o-transform: rotate(270deg); 148 | transform: rotate(270deg); 149 | } 150 | .fa-flip-horizontal { 151 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); 152 | -webkit-transform: scale(-1, 1); 153 | -moz-transform: scale(-1, 1); 154 | -ms-transform: scale(-1, 1); 155 | -o-transform: scale(-1, 1); 156 | transform: scale(-1, 1); 157 | } 158 | .fa-flip-vertical { 159 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); 160 | -webkit-transform: scale(1, -1); 161 | -moz-transform: scale(1, -1); 162 | -ms-transform: scale(1, -1); 163 | -o-transform: scale(1, -1); 164 | transform: scale(1, -1); 165 | } 166 | .fa-stack { 167 | position: relative; 168 | display: inline-block; 169 | width: 2em; 170 | height: 2em; 171 | line-height: 2em; 172 | vertical-align: middle; 173 | } 174 | .fa-stack-1x, 175 | .fa-stack-2x { 176 | position: absolute; 177 | left: 0; 178 | width: 100%; 179 | text-align: center; 180 | } 181 | .fa-stack-1x { 182 | line-height: inherit; 183 | } 184 | .fa-stack-2x { 185 | font-size: 2em; 186 | } 187 | .fa-inverse { 188 | color: #ffffff; 189 | } 190 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 191 | readers do not read off random characters that represent icons */ 192 | .fa-glass:before { 193 | content: "\f000"; 194 | } 195 | .fa-music:before { 196 | content: "\f001"; 197 | } 198 | .fa-search:before { 199 | content: "\f002"; 200 | } 201 | .fa-envelope-o:before { 202 | content: "\f003"; 203 | } 204 | .fa-heart:before { 205 | content: "\f004"; 206 | } 207 | .fa-star:before { 208 | content: "\f005"; 209 | } 210 | .fa-star-o:before { 211 | content: "\f006"; 212 | } 213 | .fa-user:before { 214 | content: "\f007"; 215 | } 216 | .fa-film:before { 217 | content: "\f008"; 218 | } 219 | .fa-th-large:before { 220 | content: "\f009"; 221 | } 222 | .fa-th:before { 223 | content: "\f00a"; 224 | } 225 | .fa-th-list:before { 226 | content: "\f00b"; 227 | } 228 | .fa-check:before { 229 | content: "\f00c"; 230 | } 231 | .fa-times:before { 232 | content: "\f00d"; 233 | } 234 | .fa-search-plus:before { 235 | content: "\f00e"; 236 | } 237 | .fa-search-minus:before { 238 | content: "\f010"; 239 | } 240 | .fa-power-off:before { 241 | content: "\f011"; 242 | } 243 | .fa-signal:before { 244 | content: "\f012"; 245 | } 246 | .fa-gear:before, 247 | .fa-cog:before { 248 | content: "\f013"; 249 | } 250 | .fa-trash-o:before { 251 | content: "\f014"; 252 | } 253 | .fa-home:before { 254 | content: "\f015"; 255 | } 256 | .fa-file-o:before { 257 | content: "\f016"; 258 | } 259 | .fa-clock-o:before { 260 | content: "\f017"; 261 | } 262 | .fa-road:before { 263 | content: "\f018"; 264 | } 265 | .fa-download:before { 266 | content: "\f019"; 267 | } 268 | .fa-arrow-circle-o-down:before { 269 | content: "\f01a"; 270 | } 271 | .fa-arrow-circle-o-up:before { 272 | content: "\f01b"; 273 | } 274 | .fa-inbox:before { 275 | content: "\f01c"; 276 | } 277 | .fa-play-circle-o:before { 278 | content: "\f01d"; 279 | } 280 | .fa-rotate-right:before, 281 | .fa-repeat:before { 282 | content: "\f01e"; 283 | } 284 | .fa-refresh:before { 285 | content: "\f021"; 286 | } 287 | .fa-list-alt:before { 288 | content: "\f022"; 289 | } 290 | .fa-lock:before { 291 | content: "\f023"; 292 | } 293 | .fa-flag:before { 294 | content: "\f024"; 295 | } 296 | .fa-headphones:before { 297 | content: "\f025"; 298 | } 299 | .fa-volume-off:before { 300 | content: "\f026"; 301 | } 302 | .fa-volume-down:before { 303 | content: "\f027"; 304 | } 305 | .fa-volume-up:before { 306 | content: "\f028"; 307 | } 308 | .fa-qrcode:before { 309 | content: "\f029"; 310 | } 311 | .fa-barcode:before { 312 | content: "\f02a"; 313 | } 314 | .fa-tag:before { 315 | content: "\f02b"; 316 | } 317 | .fa-tags:before { 318 | content: "\f02c"; 319 | } 320 | .fa-book:before { 321 | content: "\f02d"; 322 | } 323 | .fa-bookmark:before { 324 | content: "\f02e"; 325 | } 326 | .fa-print:before { 327 | content: "\f02f"; 328 | } 329 | .fa-camera:before { 330 | content: "\f030"; 331 | } 332 | .fa-font:before { 333 | content: "\f031"; 334 | } 335 | .fa-bold:before { 336 | content: "\f032"; 337 | } 338 | .fa-italic:before { 339 | content: "\f033"; 340 | } 341 | .fa-text-height:before { 342 | content: "\f034"; 343 | } 344 | .fa-text-width:before { 345 | content: "\f035"; 346 | } 347 | .fa-align-left:before { 348 | content: "\f036"; 349 | } 350 | .fa-align-center:before { 351 | content: "\f037"; 352 | } 353 | .fa-align-right:before { 354 | content: "\f038"; 355 | } 356 | .fa-align-justify:before { 357 | content: "\f039"; 358 | } 359 | .fa-list:before { 360 | content: "\f03a"; 361 | } 362 | .fa-dedent:before, 363 | .fa-outdent:before { 364 | content: "\f03b"; 365 | } 366 | .fa-indent:before { 367 | content: "\f03c"; 368 | } 369 | .fa-video-camera:before { 370 | content: "\f03d"; 371 | } 372 | .fa-picture-o:before { 373 | content: "\f03e"; 374 | } 375 | .fa-pencil:before { 376 | content: "\f040"; 377 | } 378 | .fa-map-marker:before { 379 | content: "\f041"; 380 | } 381 | .fa-adjust:before { 382 | content: "\f042"; 383 | } 384 | .fa-tint:before { 385 | content: "\f043"; 386 | } 387 | .fa-edit:before, 388 | .fa-pencil-square-o:before { 389 | content: "\f044"; 390 | } 391 | .fa-share-square-o:before { 392 | content: "\f045"; 393 | } 394 | .fa-check-square-o:before { 395 | content: "\f046"; 396 | } 397 | .fa-arrows:before { 398 | content: "\f047"; 399 | } 400 | .fa-step-backward:before { 401 | content: "\f048"; 402 | } 403 | .fa-fast-backward:before { 404 | content: "\f049"; 405 | } 406 | .fa-backward:before { 407 | content: "\f04a"; 408 | } 409 | .fa-play:before { 410 | content: "\f04b"; 411 | } 412 | .fa-pause:before { 413 | content: "\f04c"; 414 | } 415 | .fa-stop:before { 416 | content: "\f04d"; 417 | } 418 | .fa-forward:before { 419 | content: "\f04e"; 420 | } 421 | .fa-fast-forward:before { 422 | content: "\f050"; 423 | } 424 | .fa-step-forward:before { 425 | content: "\f051"; 426 | } 427 | .fa-eject:before { 428 | content: "\f052"; 429 | } 430 | .fa-chevron-left:before { 431 | content: "\f053"; 432 | } 433 | .fa-chevron-right:before { 434 | content: "\f054"; 435 | } 436 | .fa-plus-circle:before { 437 | content: "\f055"; 438 | } 439 | .fa-minus-circle:before { 440 | content: "\f056"; 441 | } 442 | .fa-times-circle:before { 443 | content: "\f057"; 444 | } 445 | .fa-check-circle:before { 446 | content: "\f058"; 447 | } 448 | .fa-question-circle:before { 449 | content: "\f059"; 450 | } 451 | .fa-info-circle:before { 452 | content: "\f05a"; 453 | } 454 | .fa-crosshairs:before { 455 | content: "\f05b"; 456 | } 457 | .fa-times-circle-o:before { 458 | content: "\f05c"; 459 | } 460 | .fa-check-circle-o:before { 461 | content: "\f05d"; 462 | } 463 | .fa-ban:before { 464 | content: "\f05e"; 465 | } 466 | .fa-arrow-left:before { 467 | content: "\f060"; 468 | } 469 | .fa-arrow-right:before { 470 | content: "\f061"; 471 | } 472 | .fa-arrow-up:before { 473 | content: "\f062"; 474 | } 475 | .fa-arrow-down:before { 476 | content: "\f063"; 477 | } 478 | .fa-mail-forward:before, 479 | .fa-share:before { 480 | content: "\f064"; 481 | } 482 | .fa-expand:before { 483 | content: "\f065"; 484 | } 485 | .fa-compress:before { 486 | content: "\f066"; 487 | } 488 | .fa-plus:before { 489 | content: "\f067"; 490 | } 491 | .fa-minus:before { 492 | content: "\f068"; 493 | } 494 | .fa-asterisk:before { 495 | content: "\f069"; 496 | } 497 | .fa-exclamation-circle:before { 498 | content: "\f06a"; 499 | } 500 | .fa-gift:before { 501 | content: "\f06b"; 502 | } 503 | .fa-leaf:before { 504 | content: "\f06c"; 505 | } 506 | .fa-fire:before { 507 | content: "\f06d"; 508 | } 509 | .fa-eye:before { 510 | content: "\f06e"; 511 | } 512 | .fa-eye-slash:before { 513 | content: "\f070"; 514 | } 515 | .fa-warning:before, 516 | .fa-exclamation-triangle:before { 517 | content: "\f071"; 518 | } 519 | .fa-plane:before { 520 | content: "\f072"; 521 | } 522 | .fa-calendar:before { 523 | content: "\f073"; 524 | } 525 | .fa-random:before { 526 | content: "\f074"; 527 | } 528 | .fa-comment:before { 529 | content: "\f075"; 530 | } 531 | .fa-magnet:before { 532 | content: "\f076"; 533 | } 534 | .fa-chevron-up:before { 535 | content: "\f077"; 536 | } 537 | .fa-chevron-down:before { 538 | content: "\f078"; 539 | } 540 | .fa-retweet:before { 541 | content: "\f079"; 542 | } 543 | .fa-shopping-cart:before { 544 | content: "\f07a"; 545 | } 546 | .fa-folder:before { 547 | content: "\f07b"; 548 | } 549 | .fa-folder-open:before { 550 | content: "\f07c"; 551 | } 552 | .fa-arrows-v:before { 553 | content: "\f07d"; 554 | } 555 | .fa-arrows-h:before { 556 | content: "\f07e"; 557 | } 558 | .fa-bar-chart-o:before { 559 | content: "\f080"; 560 | } 561 | .fa-twitter-square:before { 562 | content: "\f081"; 563 | } 564 | .fa-facebook-square:before { 565 | content: "\f082"; 566 | } 567 | .fa-camera-retro:before { 568 | content: "\f083"; 569 | } 570 | .fa-key:before { 571 | content: "\f084"; 572 | } 573 | .fa-gears:before, 574 | .fa-cogs:before { 575 | content: "\f085"; 576 | } 577 | .fa-comments:before { 578 | content: "\f086"; 579 | } 580 | .fa-thumbs-o-up:before { 581 | content: "\f087"; 582 | } 583 | .fa-thumbs-o-down:before { 584 | content: "\f088"; 585 | } 586 | .fa-star-half:before { 587 | content: "\f089"; 588 | } 589 | .fa-heart-o:before { 590 | content: "\f08a"; 591 | } 592 | .fa-sign-out:before { 593 | content: "\f08b"; 594 | } 595 | .fa-linkedin-square:before { 596 | content: "\f08c"; 597 | } 598 | .fa-thumb-tack:before { 599 | content: "\f08d"; 600 | } 601 | .fa-external-link:before { 602 | content: "\f08e"; 603 | } 604 | .fa-sign-in:before { 605 | content: "\f090"; 606 | } 607 | .fa-trophy:before { 608 | content: "\f091"; 609 | } 610 | .fa-github-square:before { 611 | content: "\f092"; 612 | } 613 | .fa-upload:before { 614 | content: "\f093"; 615 | } 616 | .fa-lemon-o:before { 617 | content: "\f094"; 618 | } 619 | .fa-phone:before { 620 | content: "\f095"; 621 | } 622 | .fa-square-o:before { 623 | content: "\f096"; 624 | } 625 | .fa-bookmark-o:before { 626 | content: "\f097"; 627 | } 628 | .fa-phone-square:before { 629 | content: "\f098"; 630 | } 631 | .fa-twitter:before { 632 | content: "\f099"; 633 | } 634 | .fa-facebook:before { 635 | content: "\f09a"; 636 | } 637 | .fa-github:before { 638 | content: "\f09b"; 639 | } 640 | .fa-unlock:before { 641 | content: "\f09c"; 642 | } 643 | .fa-credit-card:before { 644 | content: "\f09d"; 645 | } 646 | .fa-rss:before { 647 | content: "\f09e"; 648 | } 649 | .fa-hdd-o:before { 650 | content: "\f0a0"; 651 | } 652 | .fa-bullhorn:before { 653 | content: "\f0a1"; 654 | } 655 | .fa-bell:before { 656 | content: "\f0f3"; 657 | } 658 | .fa-certificate:before { 659 | content: "\f0a3"; 660 | } 661 | .fa-hand-o-right:before { 662 | content: "\f0a4"; 663 | } 664 | .fa-hand-o-left:before { 665 | content: "\f0a5"; 666 | } 667 | .fa-hand-o-up:before { 668 | content: "\f0a6"; 669 | } 670 | .fa-hand-o-down:before { 671 | content: "\f0a7"; 672 | } 673 | .fa-arrow-circle-left:before { 674 | content: "\f0a8"; 675 | } 676 | .fa-arrow-circle-right:before { 677 | content: "\f0a9"; 678 | } 679 | .fa-arrow-circle-up:before { 680 | content: "\f0aa"; 681 | } 682 | .fa-arrow-circle-down:before { 683 | content: "\f0ab"; 684 | } 685 | .fa-globe:before { 686 | content: "\f0ac"; 687 | } 688 | .fa-wrench:before { 689 | content: "\f0ad"; 690 | } 691 | .fa-tasks:before { 692 | content: "\f0ae"; 693 | } 694 | .fa-filter:before { 695 | content: "\f0b0"; 696 | } 697 | .fa-briefcase:before { 698 | content: "\f0b1"; 699 | } 700 | .fa-arrows-alt:before { 701 | content: "\f0b2"; 702 | } 703 | .fa-group:before, 704 | .fa-users:before { 705 | content: "\f0c0"; 706 | } 707 | .fa-chain:before, 708 | .fa-link:before { 709 | content: "\f0c1"; 710 | } 711 | .fa-cloud:before { 712 | content: "\f0c2"; 713 | } 714 | .fa-flask:before { 715 | content: "\f0c3"; 716 | } 717 | .fa-cut:before, 718 | .fa-scissors:before { 719 | content: "\f0c4"; 720 | } 721 | .fa-copy:before, 722 | .fa-files-o:before { 723 | content: "\f0c5"; 724 | } 725 | .fa-paperclip:before { 726 | content: "\f0c6"; 727 | } 728 | .fa-save:before, 729 | .fa-floppy-o:before { 730 | content: "\f0c7"; 731 | } 732 | .fa-square:before { 733 | content: "\f0c8"; 734 | } 735 | .fa-bars:before { 736 | content: "\f0c9"; 737 | } 738 | .fa-list-ul:before { 739 | content: "\f0ca"; 740 | } 741 | .fa-list-ol:before { 742 | content: "\f0cb"; 743 | } 744 | .fa-strikethrough:before { 745 | content: "\f0cc"; 746 | } 747 | .fa-underline:before { 748 | content: "\f0cd"; 749 | } 750 | .fa-table:before { 751 | content: "\f0ce"; 752 | } 753 | .fa-magic:before { 754 | content: "\f0d0"; 755 | } 756 | .fa-truck:before { 757 | content: "\f0d1"; 758 | } 759 | .fa-pinterest:before { 760 | content: "\f0d2"; 761 | } 762 | .fa-pinterest-square:before { 763 | content: "\f0d3"; 764 | } 765 | .fa-google-plus-square:before { 766 | content: "\f0d4"; 767 | } 768 | .fa-google-plus:before { 769 | content: "\f0d5"; 770 | } 771 | .fa-money:before { 772 | content: "\f0d6"; 773 | } 774 | .fa-caret-down:before { 775 | content: "\f0d7"; 776 | } 777 | .fa-caret-up:before { 778 | content: "\f0d8"; 779 | } 780 | .fa-caret-left:before { 781 | content: "\f0d9"; 782 | } 783 | .fa-caret-right:before { 784 | content: "\f0da"; 785 | } 786 | .fa-columns:before { 787 | content: "\f0db"; 788 | } 789 | .fa-unsorted:before, 790 | .fa-sort:before { 791 | content: "\f0dc"; 792 | } 793 | .fa-sort-down:before, 794 | .fa-sort-asc:before { 795 | content: "\f0dd"; 796 | } 797 | .fa-sort-up:before, 798 | .fa-sort-desc:before { 799 | content: "\f0de"; 800 | } 801 | .fa-envelope:before { 802 | content: "\f0e0"; 803 | } 804 | .fa-linkedin:before { 805 | content: "\f0e1"; 806 | } 807 | .fa-rotate-left:before, 808 | .fa-undo:before { 809 | content: "\f0e2"; 810 | } 811 | .fa-legal:before, 812 | .fa-gavel:before { 813 | content: "\f0e3"; 814 | } 815 | .fa-dashboard:before, 816 | .fa-tachometer:before { 817 | content: "\f0e4"; 818 | } 819 | .fa-comment-o:before { 820 | content: "\f0e5"; 821 | } 822 | .fa-comments-o:before { 823 | content: "\f0e6"; 824 | } 825 | .fa-flash:before, 826 | .fa-bolt:before { 827 | content: "\f0e7"; 828 | } 829 | .fa-sitemap:before { 830 | content: "\f0e8"; 831 | } 832 | .fa-umbrella:before { 833 | content: "\f0e9"; 834 | } 835 | .fa-paste:before, 836 | .fa-clipboard:before { 837 | content: "\f0ea"; 838 | } 839 | .fa-lightbulb-o:before { 840 | content: "\f0eb"; 841 | } 842 | .fa-exchange:before { 843 | content: "\f0ec"; 844 | } 845 | .fa-cloud-download:before { 846 | content: "\f0ed"; 847 | } 848 | .fa-cloud-upload:before { 849 | content: "\f0ee"; 850 | } 851 | .fa-user-md:before { 852 | content: "\f0f0"; 853 | } 854 | .fa-stethoscope:before { 855 | content: "\f0f1"; 856 | } 857 | .fa-suitcase:before { 858 | content: "\f0f2"; 859 | } 860 | .fa-bell-o:before { 861 | content: "\f0a2"; 862 | } 863 | .fa-coffee:before { 864 | content: "\f0f4"; 865 | } 866 | .fa-cutlery:before { 867 | content: "\f0f5"; 868 | } 869 | .fa-file-text-o:before { 870 | content: "\f0f6"; 871 | } 872 | .fa-building-o:before { 873 | content: "\f0f7"; 874 | } 875 | .fa-hospital-o:before { 876 | content: "\f0f8"; 877 | } 878 | .fa-ambulance:before { 879 | content: "\f0f9"; 880 | } 881 | .fa-medkit:before { 882 | content: "\f0fa"; 883 | } 884 | .fa-fighter-jet:before { 885 | content: "\f0fb"; 886 | } 887 | .fa-beer:before { 888 | content: "\f0fc"; 889 | } 890 | .fa-h-square:before { 891 | content: "\f0fd"; 892 | } 893 | .fa-plus-square:before { 894 | content: "\f0fe"; 895 | } 896 | .fa-angle-double-left:before { 897 | content: "\f100"; 898 | } 899 | .fa-angle-double-right:before { 900 | content: "\f101"; 901 | } 902 | .fa-angle-double-up:before { 903 | content: "\f102"; 904 | } 905 | .fa-angle-double-down:before { 906 | content: "\f103"; 907 | } 908 | .fa-angle-left:before { 909 | content: "\f104"; 910 | } 911 | .fa-angle-right:before { 912 | content: "\f105"; 913 | } 914 | .fa-angle-up:before { 915 | content: "\f106"; 916 | } 917 | .fa-angle-down:before { 918 | content: "\f107"; 919 | } 920 | .fa-desktop:before { 921 | content: "\f108"; 922 | } 923 | .fa-laptop:before { 924 | content: "\f109"; 925 | } 926 | .fa-tablet:before { 927 | content: "\f10a"; 928 | } 929 | .fa-mobile-phone:before, 930 | .fa-mobile:before { 931 | content: "\f10b"; 932 | } 933 | .fa-circle-o:before { 934 | content: "\f10c"; 935 | } 936 | .fa-quote-left:before { 937 | content: "\f10d"; 938 | } 939 | .fa-quote-right:before { 940 | content: "\f10e"; 941 | } 942 | .fa-spinner:before { 943 | content: "\f110"; 944 | } 945 | .fa-circle:before { 946 | content: "\f111"; 947 | } 948 | .fa-mail-reply:before, 949 | .fa-reply:before { 950 | content: "\f112"; 951 | } 952 | .fa-github-alt:before { 953 | content: "\f113"; 954 | } 955 | .fa-folder-o:before { 956 | content: "\f114"; 957 | } 958 | .fa-folder-open-o:before { 959 | content: "\f115"; 960 | } 961 | .fa-smile-o:before { 962 | content: "\f118"; 963 | } 964 | .fa-frown-o:before { 965 | content: "\f119"; 966 | } 967 | .fa-meh-o:before { 968 | content: "\f11a"; 969 | } 970 | .fa-gamepad:before { 971 | content: "\f11b"; 972 | } 973 | .fa-keyboard-o:before { 974 | content: "\f11c"; 975 | } 976 | .fa-flag-o:before { 977 | content: "\f11d"; 978 | } 979 | .fa-flag-checkered:before { 980 | content: "\f11e"; 981 | } 982 | .fa-terminal:before { 983 | content: "\f120"; 984 | } 985 | .fa-code:before { 986 | content: "\f121"; 987 | } 988 | .fa-reply-all:before { 989 | content: "\f122"; 990 | } 991 | .fa-mail-reply-all:before { 992 | content: "\f122"; 993 | } 994 | .fa-star-half-empty:before, 995 | .fa-star-half-full:before, 996 | .fa-star-half-o:before { 997 | content: "\f123"; 998 | } 999 | .fa-location-arrow:before { 1000 | content: "\f124"; 1001 | } 1002 | .fa-crop:before { 1003 | content: "\f125"; 1004 | } 1005 | .fa-code-fork:before { 1006 | content: "\f126"; 1007 | } 1008 | .fa-unlink:before, 1009 | .fa-chain-broken:before { 1010 | content: "\f127"; 1011 | } 1012 | .fa-question:before { 1013 | content: "\f128"; 1014 | } 1015 | .fa-info:before { 1016 | content: "\f129"; 1017 | } 1018 | .fa-exclamation:before { 1019 | content: "\f12a"; 1020 | } 1021 | .fa-superscript:before { 1022 | content: "\f12b"; 1023 | } 1024 | .fa-subscript:before { 1025 | content: "\f12c"; 1026 | } 1027 | .fa-eraser:before { 1028 | content: "\f12d"; 1029 | } 1030 | .fa-puzzle-piece:before { 1031 | content: "\f12e"; 1032 | } 1033 | .fa-microphone:before { 1034 | content: "\f130"; 1035 | } 1036 | .fa-microphone-slash:before { 1037 | content: "\f131"; 1038 | } 1039 | .fa-shield:before { 1040 | content: "\f132"; 1041 | } 1042 | .fa-calendar-o:before { 1043 | content: "\f133"; 1044 | } 1045 | .fa-fire-extinguisher:before { 1046 | content: "\f134"; 1047 | } 1048 | .fa-rocket:before { 1049 | content: "\f135"; 1050 | } 1051 | .fa-maxcdn:before { 1052 | content: "\f136"; 1053 | } 1054 | .fa-chevron-circle-left:before { 1055 | content: "\f137"; 1056 | } 1057 | .fa-chevron-circle-right:before { 1058 | content: "\f138"; 1059 | } 1060 | .fa-chevron-circle-up:before { 1061 | content: "\f139"; 1062 | } 1063 | .fa-chevron-circle-down:before { 1064 | content: "\f13a"; 1065 | } 1066 | .fa-html5:before { 1067 | content: "\f13b"; 1068 | } 1069 | .fa-css3:before { 1070 | content: "\f13c"; 1071 | } 1072 | .fa-anchor:before { 1073 | content: "\f13d"; 1074 | } 1075 | .fa-unlock-alt:before { 1076 | content: "\f13e"; 1077 | } 1078 | .fa-bullseye:before { 1079 | content: "\f140"; 1080 | } 1081 | .fa-ellipsis-h:before { 1082 | content: "\f141"; 1083 | } 1084 | .fa-ellipsis-v:before { 1085 | content: "\f142"; 1086 | } 1087 | .fa-rss-square:before { 1088 | content: "\f143"; 1089 | } 1090 | .fa-play-circle:before { 1091 | content: "\f144"; 1092 | } 1093 | .fa-ticket:before { 1094 | content: "\f145"; 1095 | } 1096 | .fa-minus-square:before { 1097 | content: "\f146"; 1098 | } 1099 | .fa-minus-square-o:before { 1100 | content: "\f147"; 1101 | } 1102 | .fa-level-up:before { 1103 | content: "\f148"; 1104 | } 1105 | .fa-level-down:before { 1106 | content: "\f149"; 1107 | } 1108 | .fa-check-square:before { 1109 | content: "\f14a"; 1110 | } 1111 | .fa-pencil-square:before { 1112 | content: "\f14b"; 1113 | } 1114 | .fa-external-link-square:before { 1115 | content: "\f14c"; 1116 | } 1117 | .fa-share-square:before { 1118 | content: "\f14d"; 1119 | } 1120 | .fa-compass:before { 1121 | content: "\f14e"; 1122 | } 1123 | .fa-toggle-down:before, 1124 | .fa-caret-square-o-down:before { 1125 | content: "\f150"; 1126 | } 1127 | .fa-toggle-up:before, 1128 | .fa-caret-square-o-up:before { 1129 | content: "\f151"; 1130 | } 1131 | .fa-toggle-right:before, 1132 | .fa-caret-square-o-right:before { 1133 | content: "\f152"; 1134 | } 1135 | .fa-euro:before, 1136 | .fa-eur:before { 1137 | content: "\f153"; 1138 | } 1139 | .fa-gbp:before { 1140 | content: "\f154"; 1141 | } 1142 | .fa-dollar:before, 1143 | .fa-usd:before { 1144 | content: "\f155"; 1145 | } 1146 | .fa-rupee:before, 1147 | .fa-inr:before { 1148 | content: "\f156"; 1149 | } 1150 | .fa-cny:before, 1151 | .fa-rmb:before, 1152 | .fa-yen:before, 1153 | .fa-jpy:before { 1154 | content: "\f157"; 1155 | } 1156 | .fa-ruble:before, 1157 | .fa-rouble:before, 1158 | .fa-rub:before { 1159 | content: "\f158"; 1160 | } 1161 | .fa-won:before, 1162 | .fa-krw:before { 1163 | content: "\f159"; 1164 | } 1165 | .fa-bitcoin:before, 1166 | .fa-btc:before { 1167 | content: "\f15a"; 1168 | } 1169 | .fa-file:before { 1170 | content: "\f15b"; 1171 | } 1172 | .fa-file-text:before { 1173 | content: "\f15c"; 1174 | } 1175 | .fa-sort-alpha-asc:before { 1176 | content: "\f15d"; 1177 | } 1178 | .fa-sort-alpha-desc:before { 1179 | content: "\f15e"; 1180 | } 1181 | .fa-sort-amount-asc:before { 1182 | content: "\f160"; 1183 | } 1184 | .fa-sort-amount-desc:before { 1185 | content: "\f161"; 1186 | } 1187 | .fa-sort-numeric-asc:before { 1188 | content: "\f162"; 1189 | } 1190 | .fa-sort-numeric-desc:before { 1191 | content: "\f163"; 1192 | } 1193 | .fa-thumbs-up:before { 1194 | content: "\f164"; 1195 | } 1196 | .fa-thumbs-down:before { 1197 | content: "\f165"; 1198 | } 1199 | .fa-youtube-square:before { 1200 | content: "\f166"; 1201 | } 1202 | .fa-youtube:before { 1203 | content: "\f167"; 1204 | } 1205 | .fa-xing:before { 1206 | content: "\f168"; 1207 | } 1208 | .fa-xing-square:before { 1209 | content: "\f169"; 1210 | } 1211 | .fa-youtube-play:before { 1212 | content: "\f16a"; 1213 | } 1214 | .fa-dropbox:before { 1215 | content: "\f16b"; 1216 | } 1217 | .fa-stack-overflow:before { 1218 | content: "\f16c"; 1219 | } 1220 | .fa-instagram:before { 1221 | content: "\f16d"; 1222 | } 1223 | .fa-flickr:before { 1224 | content: "\f16e"; 1225 | } 1226 | .fa-adn:before { 1227 | content: "\f170"; 1228 | } 1229 | .fa-bitbucket:before { 1230 | content: "\f171"; 1231 | } 1232 | .fa-bitbucket-square:before { 1233 | content: "\f172"; 1234 | } 1235 | .fa-tumblr:before { 1236 | content: "\f173"; 1237 | } 1238 | .fa-tumblr-square:before { 1239 | content: "\f174"; 1240 | } 1241 | .fa-long-arrow-down:before { 1242 | content: "\f175"; 1243 | } 1244 | .fa-long-arrow-up:before { 1245 | content: "\f176"; 1246 | } 1247 | .fa-long-arrow-left:before { 1248 | content: "\f177"; 1249 | } 1250 | .fa-long-arrow-right:before { 1251 | content: "\f178"; 1252 | } 1253 | .fa-apple:before { 1254 | content: "\f179"; 1255 | } 1256 | .fa-windows:before { 1257 | content: "\f17a"; 1258 | } 1259 | .fa-android:before { 1260 | content: "\f17b"; 1261 | } 1262 | .fa-linux:before { 1263 | content: "\f17c"; 1264 | } 1265 | .fa-dribbble:before { 1266 | content: "\f17d"; 1267 | } 1268 | .fa-skype:before { 1269 | content: "\f17e"; 1270 | } 1271 | .fa-foursquare:before { 1272 | content: "\f180"; 1273 | } 1274 | .fa-trello:before { 1275 | content: "\f181"; 1276 | } 1277 | .fa-female:before { 1278 | content: "\f182"; 1279 | } 1280 | .fa-male:before { 1281 | content: "\f183"; 1282 | } 1283 | .fa-gittip:before { 1284 | content: "\f184"; 1285 | } 1286 | .fa-sun-o:before { 1287 | content: "\f185"; 1288 | } 1289 | .fa-moon-o:before { 1290 | content: "\f186"; 1291 | } 1292 | .fa-archive:before { 1293 | content: "\f187"; 1294 | } 1295 | .fa-bug:before { 1296 | content: "\f188"; 1297 | } 1298 | .fa-vk:before { 1299 | content: "\f189"; 1300 | } 1301 | .fa-weibo:before { 1302 | content: "\f18a"; 1303 | } 1304 | .fa-renren:before { 1305 | content: "\f18b"; 1306 | } 1307 | .fa-pagelines:before { 1308 | content: "\f18c"; 1309 | } 1310 | .fa-stack-exchange:before { 1311 | content: "\f18d"; 1312 | } 1313 | .fa-arrow-circle-o-right:before { 1314 | content: "\f18e"; 1315 | } 1316 | .fa-arrow-circle-o-left:before { 1317 | content: "\f190"; 1318 | } 1319 | .fa-toggle-left:before, 1320 | .fa-caret-square-o-left:before { 1321 | content: "\f191"; 1322 | } 1323 | .fa-dot-circle-o:before { 1324 | content: "\f192"; 1325 | } 1326 | .fa-wheelchair:before { 1327 | content: "\f193"; 1328 | } 1329 | .fa-vimeo-square:before { 1330 | content: "\f194"; 1331 | } 1332 | .fa-turkish-lira:before, 1333 | .fa-try:before { 1334 | content: "\f195"; 1335 | } 1336 | .fa-plus-square-o:before { 1337 | content: "\f196"; 1338 | } 1339 | -------------------------------------------------------------------------------- /crossdomain.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | adblock-to-bitcoin 6 | 7 | 8 | 9 | 10 | 102 | 103 | 104 | 105 | 128 | 129 | 130 |
131 | 132 |
133 |
134 |
135 |
136 |

adblock-to-bitcoin

137 |

Turn adblocked ads into bitcoin donation solicitations

138 |

View on Github

139 | 140 |
141 |
142 | 143 | 144 | 145 | 146 |
147 |
148 |
149 |
150 | 151 |

Examples

152 | 153 |
154 |
155 |

156 | Example: 728x90 ad 157 |

158 |
159 | 165 | 166 | 169 |
170 |
171 |

Hey there! You have an ad blocker enabled. Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05. 172 |

173 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 174 |

175 |
176 |
177 |
178 | 179 |
180 |
181 |

182 | Example: 336x280 ad 183 |

184 |
185 | 191 | 192 | 195 |
196 |
197 |

Hey there! You've blocked 384 ads on this site Owocki.com supports your right to use adblockers, but would you consider supporting the costs of serving 384 articles via a small bitcoin donation? Suggested donation (384 articles): $0.50. 198 |

199 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 200 |

201 |
202 |
203 |
204 | 205 |
206 |
207 |

208 | Example: 320x100 ad 209 |

210 |
211 | 217 | 218 | 221 |
222 |
223 |

Hey there! You have an ad blocker enabled. Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05. 224 |

225 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 226 |

227 |
228 |
229 |
230 | 231 |
232 |
233 |

234 | Example: 300x600 ad 235 |

236 |
237 | 243 | 244 | 247 |
248 |
249 |

Hey there! You have an ad blocker enabled. Owocki.com is $1000.00 away from it's quarterly fundraising goal. Your donations cover our servers, power, rent, staff, and protect our independence. Would you consider a small bitcoin donation? Suggested donation (Q4 2015): $1.50. 250 |

251 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 252 |

253 |
254 |
255 |
256 | 257 | 258 | 263 |
264 | 265 | 266 | 307 | 308 | 309 | 310 | 311 | 312 | 340 | 341 | 342 | 343 | 344 | 356 | 357 | -------------------------------------------------------------------------------- /wordpress-plugin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin.zip -------------------------------------------------------------------------------- /wordpress-plugin/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Block Ads to Bitcoin wordpress plug 3 | 4 | # What 5 | 6 | Implements [adblock-to-bitcoin](https://github.com/owocki/adblock-to-bitcoin) natively on a wordpress blog. 7 | 8 | # Download 9 | 10 | Download plugin [here](http://bits.owocki.com/0i451Y1n1V1J/wordpress-plugin.zip). 11 | 12 | # How 13 | 14 | 1. Install/Activate the plugin. 15 | 1. In your WP Admin, navigate to _Settings > Block Ads to Bitcoin _. 16 | 1. Update your bitcoin address, and any other settings you may care to modify (copy, suggested donation amount, etc). 17 | 1. Don't have a bitcoin address? Create an account with coinbase, and get one here. 18 | 1. Add code to your templates whereever you'd like the plugin to display a bitcoin solicitation: 19 | 20 | 21 | ### Leaderboard (728 x 90px) 22 | 23 | ``` 24 | 25 | ``` 26 | 27 | ### Large Rectangle (336px x 280px) 28 | ``` 29 | 30 | ``` 31 | 32 | ### Leaderboard (320 x 100px) 33 | ``` 34 | 35 | ``` 36 | 37 | ### Large SkyScraper (300 x 600px) 38 | ``` 39 | 40 | ``` 41 | 42 | -------------------------------------------------------------------------------- /wordpress-plugin/adblock-to-bitcoin.php: -------------------------------------------------------------------------------- 1 | Block Ads to Bitcoin. 6 | * Version: 0.2 7 | * Author: owocki 8 | * Author URI: http://owocki.com 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 | */ 14 | 15 | 16 | /* debug, remove in production */ 17 | 18 | 19 | require_once plugin_dir_path( __FILE__ ) . "helpers.php"; 20 | require_once plugin_dir_path( __FILE__ ) . "settings.php"; 21 | 22 | 23 | function a2b_add_script_footer() { 24 | global $post; 25 | if (!isset($post)) return; 26 | 27 | echo a2b_get_bitcoin_address_template(); 28 | } 29 | add_action('wp_footer', 'a2b_add_script_footer'); 30 | add_action( 'wp_enqueue_scripts', 'a2b_queue_css' ); 31 | add_action( 'wp_enqueue_scripts', 'a2b_queue_js' ); 32 | 33 | ?> 34 | -------------------------------------------------------------------------------- /wordpress-plugin/helpers.php: -------------------------------------------------------------------------------- 1 | '; 9 | } 10 | return $address; 11 | } 12 | 13 | function a2b_get_suggested_donation_amount(){ 14 | $options = get_option( 'a2b_option_group' ); 15 | $suggested_donation_amount = $options['suggested_donation_amount']; 16 | if(!$suggested_donation_amount){ 17 | $suggested_donation_amount = '0.50'; 18 | } 19 | return $suggested_donation_amount; 20 | } 21 | 22 | function a2b_get_default_copy($sol_size=False){ 23 | $suggested_donation_amount = a2b_get_suggested_donation_amount(); 24 | $copy = 'Hey there! You have an ad blocker enabled. '.get_bloginfo('name').' supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? 25 | Suggested donation: $'.$suggested_donation_amount.' .'; 26 | return $copy; 27 | } 28 | 29 | 30 | function a2b_get_copy($sol_size){ 31 | $options = get_option( 'a2b_option_group' ); 32 | $copy = $options['copy']; 33 | if(!$copy){ 34 | $copy=a2b_get_default_copy($sol_size); 35 | } 36 | return $copy; 37 | } 38 | 39 | 40 | function a2b_should_display_even_if_adblock_is_off(){ 41 | $options = get_option( 'a2b_option_group' ); 42 | return (bool)$options['display_always']; 43 | } 44 | 45 | function a2b_display_powered_by(){ 46 | $options = get_option( 'a2b_option_group' ); 47 | return (bool)$options['powered_by']; 48 | } 49 | 50 | 51 | function a2b_get_plugin_staticfiles_url(){ 52 | return plugin_dir_url( __FILE__ ).'static/' ; 53 | } 54 | 55 | 56 | function a2b_queue_js(){ 57 | if(a2b_should_display_even_if_adblock_is_off()){ 58 | wp_enqueue_script( 'always_show', a2b_get_plugin_staticfiles_url().'shared/alwaysshow.js' ); 59 | } 60 | 61 | wp_enqueue_script( 'always_show', a2b_get_plugin_staticfiles_url().'shared/alwaysshow.js' ); 62 | wp_enqueue_script( 'bitcoinaddress', a2b_get_plugin_staticfiles_url().'bitcoinaddress.js/dist/demo.js' ); 63 | wp_enqueue_script( 'fuckadblock', a2b_get_plugin_staticfiles_url().'FuckAdBlock/fuckadblock.js' ); 64 | wp_enqueue_script( 'bootstrap', a2b_get_plugin_staticfiles_url().'shared/bootstrap.min.js' ); 65 | wp_enqueue_script( 'a2b', a2b_get_plugin_staticfiles_url().'adblock-to-bitcoin.js' ); 66 | } 67 | 68 | function a2b_queue_css(){ 69 | wp_enqueue_style('font-awesome',a2b_get_plugin_staticfiles_url().'shared/font-awesome.css'); 70 | wp_enqueue_style('a2b',a2b_get_plugin_staticfiles_url().'adblock-to-bitcoin.css'); 71 | } 72 | 73 | function a2b_get_bitcoin_address_template(){ 74 | return ' 75 | 76 | 117 | '; 118 | } 119 | 120 | function a2b_get_bitcion_solicitation($sol_size='leaderboard'){ 121 | $suggested_donation_amount = a2b_get_suggested_donation_amount(); 122 | $bitcoin_address = a2b_get_bitcoin_address(); 123 | $copy = a2b_get_copy($sol_size); 124 | return ' 125 |
126 |

'.$copy.' 127 | 128 |

129 | '.$bitcoin_address.' 130 | ' . (a2b_display_powered_by() ? ' (powered by adblock-to-bitcoin)' : '') .' 131 |

132 |
133 | '; 134 | } 135 | 136 | function a2b_leaderboard(){ 137 | return a2b_get_bitcion_solicitation('leaderboard'); 138 | } 139 | 140 | function a2b_large_rectangle(){ 141 | return a2b_get_bitcion_solicitation('large-rectangle'); 142 | } 143 | 144 | function a2b_mobile_banner(){ 145 | return a2b_get_bitcion_solicitation('mobile-banner'); 146 | } 147 | function a2b_large_skyscraper(){ 148 | return a2b_get_bitcion_solicitation('large-skyscraper'); 149 | } 150 | 151 | ?> 152 | -------------------------------------------------------------------------------- /wordpress-plugin/readme.txt: -------------------------------------------------------------------------------- 1 | === Plugin Name === 2 | Contributors: owocki 3 | Donate link: http://github.com/owocki 4 | Tags: blocked ads, adblock, bitcoin, monetization 5 | Requires at least: 4.4 6 | Tested up to: 4.4 7 | Stable tag: 4.4 8 | License: GPLv2 or later 9 | License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 | 11 | Block Ads to Bitcoin is a wordpress blocks that allows publishers to monetize unused adspace when adblockers are on. 12 | 13 | == Description == 14 | 15 | Block Ads to Bitcoin is a wordpress blocks that allows publishers to monetize unused adspace when adblockers are on. It turns ads into bitcoin donation solicitations when adblockers are enabled. 16 | 17 | * Supports 4 ad sizes natively 18 | * Allows customized suggested donation amounts. 19 | * Allows customized ad copy. 20 | * Supports multiple adblockers. 21 | 22 | == Installation == 23 | 24 | 25 | 1. Install/Activate the plugin. 26 | 2. In your WP Admin, navigate to _Settings > Block Ads to Bitcoin _. 27 | 3. Update your bitcoin address, and any other settings you may care to modify (copy, suggested donation amount, etc). 28 | 1. Don't have a bitcoin address? Create an account with coinbase and get one here: https://support.coinbase.com/customer/portal/articles/1027432-where-is-my-wallet-address-. 29 | 4. Add code to your templates whereever you'd like the plugin to display a bitcoin solicitation. Here are some examples: 30 | 31 | 32 | ### Leaderboard (728 x 90px) 33 | 34 | `` 35 | 36 | ### Large Rectangle (336px x 280px) 37 | 38 | `` 39 | 40 | ### Leaderboard (320 x 100px) 41 | 42 | `` 43 | 44 | ### Large SkyScraper (300 x 600px) 45 | 46 | `` 47 | 48 | 49 | == Frequently Asked Questions == 50 | 51 | = What is bitcoin? = 52 | 53 | Bitcoin is a form of digital currency, created and held electronically. No one controls it. Bitcoins aren’t printed, like dollars or euros – they’re produced by people, and increasingly businesses, running computers all around the world, using software that solves mathematical problems. 54 | 55 | = Why bitcoin? = 56 | 57 | It’s cheap 58 | 59 | With credit card transactions, your merchant account bills you on a per-transaction basis. Some merchant accounts will charge a fee for debit card transactions, as you have to pay a ‘swipe fee’. Bitcoin transaction fees are minimal, or in some cases free. 60 | 61 | It’s as private as you want it to be 62 | 63 | Sometimes, we don’t want people knowing what we have purchased. Bitcoin is a relatively private currency. On the one hand, it is transparent – thanks to the blockchain, everyone knows how much a particular bitcoin address holds in transactions. They know where those transactions came from, and where they’re sent. On the other hand, unlike conventional bank accounts, no one knows who holds a particular bitcoin address. 64 | 65 | You don’t need to trust anyone else 66 | 67 | In a conventional banking system, you have to trust people to handle your money properly along the way. You have to trust the bank, for example. You might have to trust a third-party payment processor. You’ll often have to trust the merchant too. 68 | 69 | [More on why bitcion is an important payment layer here](http://www.coindesk.com/information/why-use-bitcoin/) 70 | 71 | = Why adblockers? = 72 | 73 | We are in a macro environment in which publishers are openly wondering where their revenues are going to come from in 20 years. On a micro scale, there has been a lot of ink (and bits) spilled about the resounding need for change in the ad and publishing space *today*. Some analysis’ have shown that 9.26% of impressions were found to be ad-blocked, with some sites reaching as high as 50% While there is innovation happening in online payments, no one has yet connected the dots in a meaningful way. 74 | 75 | = Why Block Ads to Bitcoin = 76 | 77 | Block Ads to Bitcoin is a free and easy way to monetize ad space that is unused due to adblockers. 78 | 79 | = How much can I expect to monetize with Block Ads to Bitcoin? = 80 | 81 | I've seen CPMs of over $2.00. More details here => http://owocki.com/adblock-to-bitcoin-2-dollar-cpms-via-micropayments/ 82 | 83 | 84 | == Screenshots == 85 | 86 | 1. screenshot-1.png 87 | 2. screenshot-2.png 88 | 3. screenshot-3.png 89 | 3. screenshot-4.png 90 | 91 | == Changelog == 92 | 93 | = 0.2 = 94 | * Wordpress submission guideilnes https://github.com/owocki/adblock-to-bitcoin/pull/4/files 95 | 96 | = 0.1 = 97 | * Plugin MVP 98 | 99 | == Upgrade Notice == 100 | 101 | = 0.1 = 102 | * Plugin MVP 103 | 104 | -------------------------------------------------------------------------------- /wordpress-plugin/screenshot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-1.png -------------------------------------------------------------------------------- /wordpress-plugin/screenshot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-2.png -------------------------------------------------------------------------------- /wordpress-plugin/screenshot-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-3.png -------------------------------------------------------------------------------- /wordpress-plugin/screenshot-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-4.png -------------------------------------------------------------------------------- /wordpress-plugin/settings.php: -------------------------------------------------------------------------------- 1 | options = get_option( 'a2b_option_group' ); 40 | ?> 41 |
42 |

Configuration Settings

43 | is_active()){ 45 | ?> 46 |
WARNING: This plugin is not active. To make it active, make sure you have entered (1) a valid bitcoin address, (2) a valid suggested donation amount, and (3) valid ad copy.
47 | 50 |
51 | 56 | ' > 57 | 60 |
61 |
62 | Block Ads to Bitcoin on github.'); 148 | } 149 | 150 | 151 | public function is_active(){ 152 | $is_active = is_numeric($this->options['suggested_donation_amount']) && 153 | $this->options['bitcoin_address'] != '' && 154 | ( $this->options['copy'] && $this->options['copy'] != ''); 155 | return $is_active; 156 | } 157 | 158 | /** 159 | * Get the settings option array and print one of its values 160 | */ 161 | public function bitcoin_address_callback() 162 | { 163 | $is_set = ( $this->options['bitcoin_address'] && $this->options['bitcoin_address'] != ''); 164 | printf( 165 | '', 166 | $is_set ? esc_attr( $this->options['bitcoin_address']) : a2b_get_bitcoin_address() 167 | ); 168 | } 169 | 170 | /** 171 | * Get the settings option array and print one of its values 172 | */ 173 | public function copy_callback() 174 | { 175 | $is_set = ( $this->options['copy'] && $this->options['copy'] != ''); 176 | $val = $is_set ? esc_attr( $this->options['copy']) : a2b_get_default_copy(); 177 | printf( 178 | '', 179 | $val 180 | ); 181 | } 182 | 183 | 184 | /** 185 | * Get the settings option array and print one of its values 186 | */ 187 | public function suggested_donation_amount_callback() 188 | { 189 | $is_set = ( $this->options['suggested_donation_amount'] && $this->options['suggested_donation_amount'] != ''); 190 | printf( 191 | '$', 192 | $is_set ? esc_attr( $this->options['suggested_donation_amount']) : '0.50' 193 | ); 194 | } 195 | 196 | /** 197 | * Get the settings option array and print one of its values 198 | */ 199 | public function display_settings_callback() 200 | { 201 | printf( 202 | '', 203 | isset( $this->options['display_always'] ) ? 'checked' : '' 204 | ); 205 | } 206 | 207 | /** 208 | * Get the settings option array and print one of its values 209 | */ 210 | public function powered_by_callback() 211 | { 212 | printf( 213 | '', 214 | isset( $this->options['powered_by'] ) ? 'checked' : '' 215 | ); 216 | } 217 | } 218 | 219 | if( is_admin() ) 220 | $a2b_settings_page = new a2bSettings(); 221 | if($_POST){ 222 | if(function_exists('wp_verify_nonce')){ 223 | wp_verify_nonce( $_REQUEST['a2b_wpnonce'], 'admin_page_a2b' ); 224 | } 225 | } 226 | 227 | 228 | ?> 229 | -------------------------------------------------------------------------------- /wordpress-plugin/static/FuckAdBlock/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/FuckAdBlock/.DS_Store -------------------------------------------------------------------------------- /wordpress-plugin/static/FuckAdBlock/.gitattributes: -------------------------------------------------------------------------------- 1 | test.html linguist-vendored 2 | -------------------------------------------------------------------------------- /wordpress-plugin/static/FuckAdBlock/fuckadblock.js: -------------------------------------------------------------------------------- 1 | /* 2 | * FuckAdBlock 3.2.0 3 | * Copyright (c) 2015 Valentin Allaire 4 | * Released under the MIT license 5 | * https://github.com/sitexw/FuckAdBlock 6 | */ 7 | 8 | (function(window) { 9 | var FuckAdBlock = function(options) { 10 | this._options = { 11 | checkOnLoad: false, 12 | resetOnEnd: false, 13 | loopCheckTime: 50, 14 | loopMaxNumber: 5, 15 | baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links', 16 | baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;', 17 | debug: false 18 | }; 19 | this._var = { 20 | version: '3.2.0', 21 | bait: null, 22 | checking: false, 23 | loop: null, 24 | loopNumber: 0, 25 | event: { detected: [], notDetected: [] } 26 | }; 27 | if(options !== undefined) { 28 | this.setOption(options); 29 | } 30 | var self = this; 31 | var eventCallback = function() { 32 | setTimeout(function() { 33 | if(self._options.checkOnLoad === true) { 34 | if(self._options.debug === true) { 35 | self._log('onload->eventCallback', 'A check loading is launched'); 36 | } 37 | if(self._var.bait === null) { 38 | self._creatBait(); 39 | } 40 | setTimeout(function() { 41 | self.check(); 42 | }, 1); 43 | } 44 | }, 1); 45 | }; 46 | if(window.addEventListener !== undefined) { 47 | window.addEventListener('load', eventCallback, false); 48 | } else { 49 | window.attachEvent('onload', eventCallback); 50 | } 51 | }; 52 | FuckAdBlock.prototype._options = null; 53 | FuckAdBlock.prototype._var = null; 54 | FuckAdBlock.prototype._bait = null; 55 | 56 | FuckAdBlock.prototype._log = function(method, message) { 57 | console.log('[FuckAdBlock]['+method+'] '+message); 58 | }; 59 | 60 | FuckAdBlock.prototype.setOption = function(options, value) { 61 | if(value !== undefined) { 62 | var key = options; 63 | options = {}; 64 | options[key] = value; 65 | } 66 | for(var option in options) { 67 | this._options[option] = options[option]; 68 | if(this._options.debug === true) { 69 | this._log('setOption', 'The option "'+option+'" he was assigned to "'+options[option]+'"'); 70 | } 71 | } 72 | return this; 73 | }; 74 | 75 | FuckAdBlock.prototype._creatBait = function() { 76 | var bait = document.createElement('div'); 77 | bait.setAttribute('class', this._options.baitClass); 78 | bait.setAttribute('style', this._options.baitStyle); 79 | this._var.bait = window.document.body.appendChild(bait); 80 | 81 | this._var.bait.offsetParent; 82 | this._var.bait.offsetHeight; 83 | this._var.bait.offsetLeft; 84 | this._var.bait.offsetTop; 85 | this._var.bait.offsetWidth; 86 | this._var.bait.clientHeight; 87 | this._var.bait.clientWidth; 88 | 89 | if(this._options.debug === true) { 90 | this._log('_creatBait', 'Bait has been created'); 91 | } 92 | }; 93 | FuckAdBlock.prototype._destroyBait = function() { 94 | window.document.body.removeChild(this._var.bait); 95 | this._var.bait = null; 96 | 97 | if(this._options.debug === true) { 98 | this._log('_destroyBait', 'Bait has been removed'); 99 | } 100 | }; 101 | 102 | FuckAdBlock.prototype.check = function(loop) { 103 | if(loop === undefined) { 104 | loop = true; 105 | } 106 | 107 | if(this._options.debug === true) { 108 | this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop'); 109 | } 110 | 111 | if(this._var.checking === true) { 112 | if(this._options.debug === true) { 113 | this._log('check', 'A check was canceled because there is already an ongoing'); 114 | } 115 | return false; 116 | } 117 | this._var.checking = true; 118 | 119 | if(this._var.bait === null) { 120 | this._creatBait(); 121 | } 122 | 123 | var self = this; 124 | this._var.loopNumber = 0; 125 | if(loop === true) { 126 | this._var.loop = setInterval(function() { 127 | self._checkBait(loop); 128 | }, this._options.loopCheckTime); 129 | } 130 | setTimeout(function() { 131 | self._checkBait(loop); 132 | }, 1); 133 | if(this._options.debug === true) { 134 | this._log('check', 'A check is in progress ...'); 135 | } 136 | 137 | return true; 138 | }; 139 | FuckAdBlock.prototype._checkBait = function(loop) { 140 | var detected = false; 141 | 142 | if(this._var.bait === null) { 143 | this._creatBait(); 144 | } 145 | 146 | if(window.document.body.getAttribute('abp') !== null 147 | || this._var.bait.offsetParent === null 148 | || this._var.bait.offsetHeight == 0 149 | || this._var.bait.offsetLeft == 0 150 | || this._var.bait.offsetTop == 0 151 | || this._var.bait.offsetWidth == 0 152 | || this._var.bait.clientHeight == 0 153 | || this._var.bait.clientWidth == 0) { 154 | detected = true; 155 | } 156 | if(window.getComputedStyle !== undefined) { 157 | var baitTemp = window.getComputedStyle(this._var.bait, null); 158 | if(baitTemp.getPropertyValue('display') == 'none' 159 | || baitTemp.getPropertyValue('visibility') == 'hidden') { 160 | detected = true; 161 | } 162 | } 163 | 164 | if(this._options.debug === true) { 165 | this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative')); 166 | } 167 | 168 | if(loop === true) { 169 | this._var.loopNumber++; 170 | if(this._var.loopNumber >= this._options.loopMaxNumber) { 171 | this._stopLoop(); 172 | } 173 | } 174 | 175 | if(detected === true) { 176 | this._stopLoop(); 177 | this._destroyBait(); 178 | this.emitEvent(true); 179 | if(loop === true) { 180 | this._var.checking = false; 181 | } 182 | } else if(this._var.loop === null || loop === false) { 183 | this._destroyBait(); 184 | this.emitEvent(false); 185 | if(loop === true) { 186 | this._var.checking = false; 187 | } 188 | } 189 | }; 190 | FuckAdBlock.prototype._stopLoop = function(detected) { 191 | clearInterval(this._var.loop); 192 | this._var.loop = null; 193 | this._var.loopNumber = 0; 194 | 195 | if(this._options.debug === true) { 196 | this._log('_stopLoop', 'A loop has been stopped'); 197 | } 198 | }; 199 | 200 | FuckAdBlock.prototype.emitEvent = function(detected) { 201 | if(this._options.debug === true) { 202 | this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called'); 203 | } 204 | 205 | var fns = this._var.event[(detected===true?'detected':'notDetected')]; 206 | for(var i in fns) { 207 | if(this._options.debug === true) { 208 | this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length); 209 | } 210 | if(fns.hasOwnProperty(i)) { 211 | fns[i](); 212 | } 213 | } 214 | if(this._options.resetOnEnd === true) { 215 | this.clearEvent(); 216 | } 217 | return this; 218 | }; 219 | FuckAdBlock.prototype.clearEvent = function() { 220 | this._var.event.detected = []; 221 | this._var.event.notDetected = []; 222 | 223 | if(this._options.debug === true) { 224 | this._log('clearEvent', 'The event list has been cleared'); 225 | } 226 | }; 227 | 228 | FuckAdBlock.prototype.on = function(detected, fn) { 229 | this._var.event[(detected===true?'detected':'notDetected')].push(fn); 230 | if(this._options.debug === true) { 231 | this._log('on', 'A type of event "'+(detected===true?'detected':'notDetected')+'" was added'); 232 | } 233 | 234 | return this; 235 | }; 236 | FuckAdBlock.prototype.onDetected = function(fn) { 237 | return this.on(true, fn); 238 | }; 239 | FuckAdBlock.prototype.onNotDetected = function(fn) { 240 | return this.on(false, fn); 241 | }; 242 | 243 | window.FuckAdBlock = FuckAdBlock; 244 | 245 | if(window.fuckAdBlock === undefined) { 246 | window.fuckAdBlock = new FuckAdBlock({ 247 | checkOnLoad: true, 248 | resetOnEnd: true 249 | }); 250 | } 251 | })(window); 252 | -------------------------------------------------------------------------------- /wordpress-plugin/static/adblock-to-bitcoin.css: -------------------------------------------------------------------------------- 1 | /* bitcoinaddress css styles */ 2 | body { 3 | padding-top: 60px; 4 | } 5 | 6 | /* http://davidwalsh.name/html5-hidden */ 7 | *[hidden] { display: none; } 8 | 9 | /* Action hints are slidedowns, hidden by default */ 10 | .bitcoin-action-hint { 11 | display: none; 12 | } 13 | 14 | /* Show dashed underlining so people get a hint it's clickable */ 15 | .bitcoin-address-container .bitcoin-address { 16 | border-bottom: 1px dashed gray; 17 | cursor: pointer; 18 | } 19 | 20 | /* Center QR code image */ 21 | .bitcoin-address-qr-container > img, 22 | .bitcoin-address-qr-container > canvas { 23 | margin: 0 auto; 24 | } 25 | 26 | /* bitcoinprices.js - for bitcoinprices, donation nominated in USD */ 27 | .clickable-price { 28 | cursor: pointer; 29 | border-bottom: 1px #888 dashed; 30 | } 31 | 32 | /* Demo page splash styling */ 33 | #bitcoin-icon { 34 | font-size: 128px; 35 | color: #F7931A; 36 | } 37 | 38 | #bitcoin-icon .fa-circle { 39 | text-shadow: 0 3px 3px rgba(32, 32, 32, 0.3); 40 | } 41 | .example-row { 42 | margin: 30px 0; 43 | } 44 | 45 | .example-heading { 46 | color: #357ebd; 47 | } 48 | 49 | /* adblock-to-bitcoin sizes */ 50 | .ad_container { 51 | 52 | } 53 | .bitcoin_solicitation{ 54 | display:none; 55 | background-color: #eee; 56 | padding: 2px; 57 | word-wrap: break-word; 58 | } 59 | .bitcoin_solicitation span.hidden{ 60 | display: none !important; 61 | } 62 | 63 | .bitcoin_solicitation a{ 64 | color: #428bca; 65 | text-decoration: none 66 | } 67 | 68 | .bitcoin_solicitation .poweredby{ 69 | font-size: 70%; 70 | margin-top: 5px; 71 | } 72 | 73 | 74 | .bitcoin_solicitation.adblock_enabled{ 75 | display:block; 76 | background-color: #f5f5f5; 77 | border: 1px solid #e3e3e3; 78 | border-radius: 4px; 79 | padding: 6px; 80 | text-align:center; 81 | } 82 | .bitcoin_solicitation.leaderboard,{ 83 | width: 728px; 84 | height: 90px; 85 | } 86 | .bitcoin_solicitation.large-rectangle{ 87 | padding-top: 10% ; 88 | padding-bottom: 10% ; 89 | width: 336px; 90 | height: 280px; 91 | } 92 | .bitcoin_solicitation.mobile-banner{ 93 | width: 320px; 94 | height: 100px; 95 | font-size: 75%; 96 | } 97 | .bitcoin_solicitation.mobile-banner .bitcoin-address-action{ 98 | display: none; 99 | } 100 | .bitcoin_solicitation.large-skyscraper{ 101 | padding-top: 20% ; 102 | padding-bottom: 20% ; 103 | width: 300px; 104 | height: 600px; 105 | } 106 | .sitename, .smallbitcoin{ 107 | font-style: italic; 108 | } 109 | -------------------------------------------------------------------------------- /wordpress-plugin/static/adblock-to-bitcoin.js: -------------------------------------------------------------------------------- 1 | function showSolicitations() { 2 | $('.bitcoin_solicitation').addClass('adblock_enabled'); 3 | } 4 | function adBlockDetected() { 5 | showSolicitations(); 6 | } 7 | function adBlockNotDetected() { 8 | } 9 | 10 | // attach the document URL to qr-code generating attributes such that it will be sent by default in bitcoin payments. 11 | // this will allow publishers to know what content is generating BTC for them. 12 | $(document).ready(function(){ 13 | $('.bitcoin-address, .bitcoin-address-container').each(function(e){ 14 | $(this).attr('data-bc-message',document.location); 15 | }); 16 | 17 | if(document.always_show_bitcoin_solicitations){ 18 | showSolicitations(); 19 | } else if(typeof fuckAdBlock === 'undefined') { 20 | adBlockDetected(); 21 | } else { 22 | fuckAdBlock.setOption({ debug: true }); 23 | fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected); 24 | } 25 | 26 | function checkAgain() { 27 | $('#fuck-adb-enabled').hide(); 28 | $('#fuck-adb-not-enabled').hide(); 29 | // setTimeout 300ms for the recheck is visible when you click on the button 30 | setTimeout(function() { 31 | if(typeof fuckAdBlock === 'undefined') { 32 | adBlockDetected(); 33 | } else { 34 | fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected); 35 | fuckAdBlock.check(); 36 | } 37 | }, 300); 38 | } 39 | 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /wordpress-plugin/static/bitcoinaddress.js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/bitcoinaddress.js/.DS_Store -------------------------------------------------------------------------------- /wordpress-plugin/static/bitcoinaddress.js/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log -------------------------------------------------------------------------------- /wordpress-plugin/static/bitcoinaddress.js/.node-inspectorrc: -------------------------------------------------------------------------------- 1 | { 2 | "save-live-edit": true 3 | } -------------------------------------------------------------------------------- /wordpress-plugin/static/bitcoinaddress.js/.npmignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /wordpress-plugin/static/bitcoinaddress.js/dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/bitcoinaddress.js/dist/.DS_Store -------------------------------------------------------------------------------- /wordpress-plugin/static/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | adblock-to-bitcoin 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 36 | 37 | 38 |
39 | 40 |
41 |
42 |
43 |
44 |

adblock-to-bitcoin

45 |

Turn adblocked ads into bitcoin donation solicitations

46 |

View on Github

47 | 48 |
49 |
50 | 51 | 52 | 53 | 54 |
55 |
56 |
57 |
58 | 59 |

Examples

60 | 61 |
62 |
63 |

64 | Example: 728x90 ad 65 |

66 |
67 | 73 | 74 | 77 |
78 |
79 |

Hey there! You have an ad blocker enabled. Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05. 80 |

81 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 82 |

83 |
84 |
85 |
86 | 87 |
88 |
89 |

90 | Example: 336x280 ad 91 |

92 |
93 | 99 | 100 | 103 |
104 |
105 |

Hey there! You've blocked 384 ads on this site Owocki.com supports your right to use adblockers, but would you consider supporting the costs of serving 384 articles via a small bitcoin donation? Suggested donation (384 articles): $0.50. 106 |

107 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 108 |

109 |
110 |
111 |
112 | 113 |
114 |
115 |

116 | Example: 320x100 ad 117 |

118 |
119 | 125 | 126 | 129 |
130 |
131 |

Hey there! You have an ad blocker enabled. Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05. 132 |

133 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 134 |

135 |
136 |
137 |
138 | 139 |
140 |
141 |

142 | Example: 300x600 ad 143 |

144 |
145 | 151 | 152 | 155 |
156 |
157 |

Hey there! You have an ad blocker enabled. Owocki.com is $1000.00 away from it's quarterly fundraising goal. Your donations cover our servers, power, rent, staff, and protect our independence. Would you consider a small bitcoin donation? Suggested donation (Q4 2015): $1.50. 158 |

159 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE 160 |

161 |
162 |
163 |
164 | 165 | 166 | 171 |
172 | 173 | 174 | 215 | 216 | 217 | 218 | 219 | 220 | 248 | 249 | 250 | 251 | 252 | 264 | 265 | -------------------------------------------------------------------------------- /wordpress-plugin/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /wordpress-plugin/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /wordpress-plugin/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /wordpress-plugin/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /wordpress-plugin/static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /wordpress-plugin/static/shared/alwaysshow.js: -------------------------------------------------------------------------------- 1 | document.always_show_bitcoin_solicitations=1; -------------------------------------------------------------------------------- /wordpress-plugin/static/shared/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.3 (http://getbootstrap.com) 3 | * Copyright 2013 Twitter, Inc. 4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0 5 | */ 6 | 7 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); -------------------------------------------------------------------------------- /wordpress-plugin/static/shared/font-awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | /* FONT PATH 6 | * -------------------------- */ 7 | @font-face { 8 | font-family: 'FontAwesome'; 9 | src: url('../fonts/fontawesome-webfont.eot?v=4.0.3'); 10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | .fa { 15 | display: inline-block; 16 | font-family: FontAwesome; 17 | font-style: normal; 18 | font-weight: normal; 19 | line-height: 1; 20 | -webkit-font-smoothing: antialiased; 21 | -moz-osx-font-smoothing: grayscale; 22 | } 23 | /* makes the font 33% larger relative to the icon container */ 24 | .fa-lg { 25 | font-size: 1.3333333333333333em; 26 | line-height: 0.75em; 27 | vertical-align: -15%; 28 | } 29 | .fa-2x { 30 | font-size: 2em; 31 | } 32 | .fa-3x { 33 | font-size: 3em; 34 | } 35 | .fa-4x { 36 | font-size: 4em; 37 | } 38 | .fa-5x { 39 | font-size: 5em; 40 | } 41 | .fa-fw { 42 | width: 1.2857142857142858em; 43 | text-align: center; 44 | } 45 | .fa-ul { 46 | padding-left: 0; 47 | margin-left: 2.142857142857143em; 48 | list-style-type: none; 49 | } 50 | .fa-ul > li { 51 | position: relative; 52 | } 53 | .fa-li { 54 | position: absolute; 55 | left: -2.142857142857143em; 56 | width: 2.142857142857143em; 57 | top: 0.14285714285714285em; 58 | text-align: center; 59 | } 60 | .fa-li.fa-lg { 61 | left: -1.8571428571428572em; 62 | } 63 | .fa-border { 64 | padding: .2em .25em .15em; 65 | border: solid 0.08em #eeeeee; 66 | border-radius: .1em; 67 | } 68 | .pull-right { 69 | float: right; 70 | } 71 | .pull-left { 72 | float: left; 73 | } 74 | .fa.pull-left { 75 | margin-right: .3em; 76 | } 77 | .fa.pull-right { 78 | margin-left: .3em; 79 | } 80 | .fa-spin { 81 | -webkit-animation: spin 2s infinite linear; 82 | -moz-animation: spin 2s infinite linear; 83 | -o-animation: spin 2s infinite linear; 84 | animation: spin 2s infinite linear; 85 | } 86 | @-moz-keyframes spin { 87 | 0% { 88 | -moz-transform: rotate(0deg); 89 | } 90 | 100% { 91 | -moz-transform: rotate(359deg); 92 | } 93 | } 94 | @-webkit-keyframes spin { 95 | 0% { 96 | -webkit-transform: rotate(0deg); 97 | } 98 | 100% { 99 | -webkit-transform: rotate(359deg); 100 | } 101 | } 102 | @-o-keyframes spin { 103 | 0% { 104 | -o-transform: rotate(0deg); 105 | } 106 | 100% { 107 | -o-transform: rotate(359deg); 108 | } 109 | } 110 | @-ms-keyframes spin { 111 | 0% { 112 | -ms-transform: rotate(0deg); 113 | } 114 | 100% { 115 | -ms-transform: rotate(359deg); 116 | } 117 | } 118 | @keyframes spin { 119 | 0% { 120 | transform: rotate(0deg); 121 | } 122 | 100% { 123 | transform: rotate(359deg); 124 | } 125 | } 126 | .fa-rotate-90 { 127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); 128 | -webkit-transform: rotate(90deg); 129 | -moz-transform: rotate(90deg); 130 | -ms-transform: rotate(90deg); 131 | -o-transform: rotate(90deg); 132 | transform: rotate(90deg); 133 | } 134 | .fa-rotate-180 { 135 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 136 | -webkit-transform: rotate(180deg); 137 | -moz-transform: rotate(180deg); 138 | -ms-transform: rotate(180deg); 139 | -o-transform: rotate(180deg); 140 | transform: rotate(180deg); 141 | } 142 | .fa-rotate-270 { 143 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 144 | -webkit-transform: rotate(270deg); 145 | -moz-transform: rotate(270deg); 146 | -ms-transform: rotate(270deg); 147 | -o-transform: rotate(270deg); 148 | transform: rotate(270deg); 149 | } 150 | .fa-flip-horizontal { 151 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); 152 | -webkit-transform: scale(-1, 1); 153 | -moz-transform: scale(-1, 1); 154 | -ms-transform: scale(-1, 1); 155 | -o-transform: scale(-1, 1); 156 | transform: scale(-1, 1); 157 | } 158 | .fa-flip-vertical { 159 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); 160 | -webkit-transform: scale(1, -1); 161 | -moz-transform: scale(1, -1); 162 | -ms-transform: scale(1, -1); 163 | -o-transform: scale(1, -1); 164 | transform: scale(1, -1); 165 | } 166 | .fa-stack { 167 | position: relative; 168 | display: inline-block; 169 | width: 2em; 170 | height: 2em; 171 | line-height: 2em; 172 | vertical-align: middle; 173 | } 174 | .fa-stack-1x, 175 | .fa-stack-2x { 176 | position: absolute; 177 | left: 0; 178 | width: 100%; 179 | text-align: center; 180 | } 181 | .fa-stack-1x { 182 | line-height: inherit; 183 | } 184 | .fa-stack-2x { 185 | font-size: 2em; 186 | } 187 | .fa-inverse { 188 | color: #ffffff; 189 | } 190 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 191 | readers do not read off random characters that represent icons */ 192 | .fa-glass:before { 193 | content: "\f000"; 194 | } 195 | .fa-music:before { 196 | content: "\f001"; 197 | } 198 | .fa-search:before { 199 | content: "\f002"; 200 | } 201 | .fa-envelope-o:before { 202 | content: "\f003"; 203 | } 204 | .fa-heart:before { 205 | content: "\f004"; 206 | } 207 | .fa-star:before { 208 | content: "\f005"; 209 | } 210 | .fa-star-o:before { 211 | content: "\f006"; 212 | } 213 | .fa-user:before { 214 | content: "\f007"; 215 | } 216 | .fa-film:before { 217 | content: "\f008"; 218 | } 219 | .fa-th-large:before { 220 | content: "\f009"; 221 | } 222 | .fa-th:before { 223 | content: "\f00a"; 224 | } 225 | .fa-th-list:before { 226 | content: "\f00b"; 227 | } 228 | .fa-check:before { 229 | content: "\f00c"; 230 | } 231 | .fa-times:before { 232 | content: "\f00d"; 233 | } 234 | .fa-search-plus:before { 235 | content: "\f00e"; 236 | } 237 | .fa-search-minus:before { 238 | content: "\f010"; 239 | } 240 | .fa-power-off:before { 241 | content: "\f011"; 242 | } 243 | .fa-signal:before { 244 | content: "\f012"; 245 | } 246 | .fa-gear:before, 247 | .fa-cog:before { 248 | content: "\f013"; 249 | } 250 | .fa-trash-o:before { 251 | content: "\f014"; 252 | } 253 | .fa-home:before { 254 | content: "\f015"; 255 | } 256 | .fa-file-o:before { 257 | content: "\f016"; 258 | } 259 | .fa-clock-o:before { 260 | content: "\f017"; 261 | } 262 | .fa-road:before { 263 | content: "\f018"; 264 | } 265 | .fa-download:before { 266 | content: "\f019"; 267 | } 268 | .fa-arrow-circle-o-down:before { 269 | content: "\f01a"; 270 | } 271 | .fa-arrow-circle-o-up:before { 272 | content: "\f01b"; 273 | } 274 | .fa-inbox:before { 275 | content: "\f01c"; 276 | } 277 | .fa-play-circle-o:before { 278 | content: "\f01d"; 279 | } 280 | .fa-rotate-right:before, 281 | .fa-repeat:before { 282 | content: "\f01e"; 283 | } 284 | .fa-refresh:before { 285 | content: "\f021"; 286 | } 287 | .fa-list-alt:before { 288 | content: "\f022"; 289 | } 290 | .fa-lock:before { 291 | content: "\f023"; 292 | } 293 | .fa-flag:before { 294 | content: "\f024"; 295 | } 296 | .fa-headphones:before { 297 | content: "\f025"; 298 | } 299 | .fa-volume-off:before { 300 | content: "\f026"; 301 | } 302 | .fa-volume-down:before { 303 | content: "\f027"; 304 | } 305 | .fa-volume-up:before { 306 | content: "\f028"; 307 | } 308 | .fa-qrcode:before { 309 | content: "\f029"; 310 | } 311 | .fa-barcode:before { 312 | content: "\f02a"; 313 | } 314 | .fa-tag:before { 315 | content: "\f02b"; 316 | } 317 | .fa-tags:before { 318 | content: "\f02c"; 319 | } 320 | .fa-book:before { 321 | content: "\f02d"; 322 | } 323 | .fa-bookmark:before { 324 | content: "\f02e"; 325 | } 326 | .fa-print:before { 327 | content: "\f02f"; 328 | } 329 | .fa-camera:before { 330 | content: "\f030"; 331 | } 332 | .fa-font:before { 333 | content: "\f031"; 334 | } 335 | .fa-bold:before { 336 | content: "\f032"; 337 | } 338 | .fa-italic:before { 339 | content: "\f033"; 340 | } 341 | .fa-text-height:before { 342 | content: "\f034"; 343 | } 344 | .fa-text-width:before { 345 | content: "\f035"; 346 | } 347 | .fa-align-left:before { 348 | content: "\f036"; 349 | } 350 | .fa-align-center:before { 351 | content: "\f037"; 352 | } 353 | .fa-align-right:before { 354 | content: "\f038"; 355 | } 356 | .fa-align-justify:before { 357 | content: "\f039"; 358 | } 359 | .fa-list:before { 360 | content: "\f03a"; 361 | } 362 | .fa-dedent:before, 363 | .fa-outdent:before { 364 | content: "\f03b"; 365 | } 366 | .fa-indent:before { 367 | content: "\f03c"; 368 | } 369 | .fa-video-camera:before { 370 | content: "\f03d"; 371 | } 372 | .fa-picture-o:before { 373 | content: "\f03e"; 374 | } 375 | .fa-pencil:before { 376 | content: "\f040"; 377 | } 378 | .fa-map-marker:before { 379 | content: "\f041"; 380 | } 381 | .fa-adjust:before { 382 | content: "\f042"; 383 | } 384 | .fa-tint:before { 385 | content: "\f043"; 386 | } 387 | .fa-edit:before, 388 | .fa-pencil-square-o:before { 389 | content: "\f044"; 390 | } 391 | .fa-share-square-o:before { 392 | content: "\f045"; 393 | } 394 | .fa-check-square-o:before { 395 | content: "\f046"; 396 | } 397 | .fa-arrows:before { 398 | content: "\f047"; 399 | } 400 | .fa-step-backward:before { 401 | content: "\f048"; 402 | } 403 | .fa-fast-backward:before { 404 | content: "\f049"; 405 | } 406 | .fa-backward:before { 407 | content: "\f04a"; 408 | } 409 | .fa-play:before { 410 | content: "\f04b"; 411 | } 412 | .fa-pause:before { 413 | content: "\f04c"; 414 | } 415 | .fa-stop:before { 416 | content: "\f04d"; 417 | } 418 | .fa-forward:before { 419 | content: "\f04e"; 420 | } 421 | .fa-fast-forward:before { 422 | content: "\f050"; 423 | } 424 | .fa-step-forward:before { 425 | content: "\f051"; 426 | } 427 | .fa-eject:before { 428 | content: "\f052"; 429 | } 430 | .fa-chevron-left:before { 431 | content: "\f053"; 432 | } 433 | .fa-chevron-right:before { 434 | content: "\f054"; 435 | } 436 | .fa-plus-circle:before { 437 | content: "\f055"; 438 | } 439 | .fa-minus-circle:before { 440 | content: "\f056"; 441 | } 442 | .fa-times-circle:before { 443 | content: "\f057"; 444 | } 445 | .fa-check-circle:before { 446 | content: "\f058"; 447 | } 448 | .fa-question-circle:before { 449 | content: "\f059"; 450 | } 451 | .fa-info-circle:before { 452 | content: "\f05a"; 453 | } 454 | .fa-crosshairs:before { 455 | content: "\f05b"; 456 | } 457 | .fa-times-circle-o:before { 458 | content: "\f05c"; 459 | } 460 | .fa-check-circle-o:before { 461 | content: "\f05d"; 462 | } 463 | .fa-ban:before { 464 | content: "\f05e"; 465 | } 466 | .fa-arrow-left:before { 467 | content: "\f060"; 468 | } 469 | .fa-arrow-right:before { 470 | content: "\f061"; 471 | } 472 | .fa-arrow-up:before { 473 | content: "\f062"; 474 | } 475 | .fa-arrow-down:before { 476 | content: "\f063"; 477 | } 478 | .fa-mail-forward:before, 479 | .fa-share:before { 480 | content: "\f064"; 481 | } 482 | .fa-expand:before { 483 | content: "\f065"; 484 | } 485 | .fa-compress:before { 486 | content: "\f066"; 487 | } 488 | .fa-plus:before { 489 | content: "\f067"; 490 | } 491 | .fa-minus:before { 492 | content: "\f068"; 493 | } 494 | .fa-asterisk:before { 495 | content: "\f069"; 496 | } 497 | .fa-exclamation-circle:before { 498 | content: "\f06a"; 499 | } 500 | .fa-gift:before { 501 | content: "\f06b"; 502 | } 503 | .fa-leaf:before { 504 | content: "\f06c"; 505 | } 506 | .fa-fire:before { 507 | content: "\f06d"; 508 | } 509 | .fa-eye:before { 510 | content: "\f06e"; 511 | } 512 | .fa-eye-slash:before { 513 | content: "\f070"; 514 | } 515 | .fa-warning:before, 516 | .fa-exclamation-triangle:before { 517 | content: "\f071"; 518 | } 519 | .fa-plane:before { 520 | content: "\f072"; 521 | } 522 | .fa-calendar:before { 523 | content: "\f073"; 524 | } 525 | .fa-random:before { 526 | content: "\f074"; 527 | } 528 | .fa-comment:before { 529 | content: "\f075"; 530 | } 531 | .fa-magnet:before { 532 | content: "\f076"; 533 | } 534 | .fa-chevron-up:before { 535 | content: "\f077"; 536 | } 537 | .fa-chevron-down:before { 538 | content: "\f078"; 539 | } 540 | .fa-retweet:before { 541 | content: "\f079"; 542 | } 543 | .fa-shopping-cart:before { 544 | content: "\f07a"; 545 | } 546 | .fa-folder:before { 547 | content: "\f07b"; 548 | } 549 | .fa-folder-open:before { 550 | content: "\f07c"; 551 | } 552 | .fa-arrows-v:before { 553 | content: "\f07d"; 554 | } 555 | .fa-arrows-h:before { 556 | content: "\f07e"; 557 | } 558 | .fa-bar-chart-o:before { 559 | content: "\f080"; 560 | } 561 | .fa-twitter-square:before { 562 | content: "\f081"; 563 | } 564 | .fa-facebook-square:before { 565 | content: "\f082"; 566 | } 567 | .fa-camera-retro:before { 568 | content: "\f083"; 569 | } 570 | .fa-key:before { 571 | content: "\f084"; 572 | } 573 | .fa-gears:before, 574 | .fa-cogs:before { 575 | content: "\f085"; 576 | } 577 | .fa-comments:before { 578 | content: "\f086"; 579 | } 580 | .fa-thumbs-o-up:before { 581 | content: "\f087"; 582 | } 583 | .fa-thumbs-o-down:before { 584 | content: "\f088"; 585 | } 586 | .fa-star-half:before { 587 | content: "\f089"; 588 | } 589 | .fa-heart-o:before { 590 | content: "\f08a"; 591 | } 592 | .fa-sign-out:before { 593 | content: "\f08b"; 594 | } 595 | .fa-linkedin-square:before { 596 | content: "\f08c"; 597 | } 598 | .fa-thumb-tack:before { 599 | content: "\f08d"; 600 | } 601 | .fa-external-link:before { 602 | content: "\f08e"; 603 | } 604 | .fa-sign-in:before { 605 | content: "\f090"; 606 | } 607 | .fa-trophy:before { 608 | content: "\f091"; 609 | } 610 | .fa-github-square:before { 611 | content: "\f092"; 612 | } 613 | .fa-upload:before { 614 | content: "\f093"; 615 | } 616 | .fa-lemon-o:before { 617 | content: "\f094"; 618 | } 619 | .fa-phone:before { 620 | content: "\f095"; 621 | } 622 | .fa-square-o:before { 623 | content: "\f096"; 624 | } 625 | .fa-bookmark-o:before { 626 | content: "\f097"; 627 | } 628 | .fa-phone-square:before { 629 | content: "\f098"; 630 | } 631 | .fa-twitter:before { 632 | content: "\f099"; 633 | } 634 | .fa-facebook:before { 635 | content: "\f09a"; 636 | } 637 | .fa-github:before { 638 | content: "\f09b"; 639 | } 640 | .fa-unlock:before { 641 | content: "\f09c"; 642 | } 643 | .fa-credit-card:before { 644 | content: "\f09d"; 645 | } 646 | .fa-rss:before { 647 | content: "\f09e"; 648 | } 649 | .fa-hdd-o:before { 650 | content: "\f0a0"; 651 | } 652 | .fa-bullhorn:before { 653 | content: "\f0a1"; 654 | } 655 | .fa-bell:before { 656 | content: "\f0f3"; 657 | } 658 | .fa-certificate:before { 659 | content: "\f0a3"; 660 | } 661 | .fa-hand-o-right:before { 662 | content: "\f0a4"; 663 | } 664 | .fa-hand-o-left:before { 665 | content: "\f0a5"; 666 | } 667 | .fa-hand-o-up:before { 668 | content: "\f0a6"; 669 | } 670 | .fa-hand-o-down:before { 671 | content: "\f0a7"; 672 | } 673 | .fa-arrow-circle-left:before { 674 | content: "\f0a8"; 675 | } 676 | .fa-arrow-circle-right:before { 677 | content: "\f0a9"; 678 | } 679 | .fa-arrow-circle-up:before { 680 | content: "\f0aa"; 681 | } 682 | .fa-arrow-circle-down:before { 683 | content: "\f0ab"; 684 | } 685 | .fa-globe:before { 686 | content: "\f0ac"; 687 | } 688 | .fa-wrench:before { 689 | content: "\f0ad"; 690 | } 691 | .fa-tasks:before { 692 | content: "\f0ae"; 693 | } 694 | .fa-filter:before { 695 | content: "\f0b0"; 696 | } 697 | .fa-briefcase:before { 698 | content: "\f0b1"; 699 | } 700 | .fa-arrows-alt:before { 701 | content: "\f0b2"; 702 | } 703 | .fa-group:before, 704 | .fa-users:before { 705 | content: "\f0c0"; 706 | } 707 | .fa-chain:before, 708 | .fa-link:before { 709 | content: "\f0c1"; 710 | } 711 | .fa-cloud:before { 712 | content: "\f0c2"; 713 | } 714 | .fa-flask:before { 715 | content: "\f0c3"; 716 | } 717 | .fa-cut:before, 718 | .fa-scissors:before { 719 | content: "\f0c4"; 720 | } 721 | .fa-copy:before, 722 | .fa-files-o:before { 723 | content: "\f0c5"; 724 | } 725 | .fa-paperclip:before { 726 | content: "\f0c6"; 727 | } 728 | .fa-save:before, 729 | .fa-floppy-o:before { 730 | content: "\f0c7"; 731 | } 732 | .fa-square:before { 733 | content: "\f0c8"; 734 | } 735 | .fa-bars:before { 736 | content: "\f0c9"; 737 | } 738 | .fa-list-ul:before { 739 | content: "\f0ca"; 740 | } 741 | .fa-list-ol:before { 742 | content: "\f0cb"; 743 | } 744 | .fa-strikethrough:before { 745 | content: "\f0cc"; 746 | } 747 | .fa-underline:before { 748 | content: "\f0cd"; 749 | } 750 | .fa-table:before { 751 | content: "\f0ce"; 752 | } 753 | .fa-magic:before { 754 | content: "\f0d0"; 755 | } 756 | .fa-truck:before { 757 | content: "\f0d1"; 758 | } 759 | .fa-pinterest:before { 760 | content: "\f0d2"; 761 | } 762 | .fa-pinterest-square:before { 763 | content: "\f0d3"; 764 | } 765 | .fa-google-plus-square:before { 766 | content: "\f0d4"; 767 | } 768 | .fa-google-plus:before { 769 | content: "\f0d5"; 770 | } 771 | .fa-money:before { 772 | content: "\f0d6"; 773 | } 774 | .fa-caret-down:before { 775 | content: "\f0d7"; 776 | } 777 | .fa-caret-up:before { 778 | content: "\f0d8"; 779 | } 780 | .fa-caret-left:before { 781 | content: "\f0d9"; 782 | } 783 | .fa-caret-right:before { 784 | content: "\f0da"; 785 | } 786 | .fa-columns:before { 787 | content: "\f0db"; 788 | } 789 | .fa-unsorted:before, 790 | .fa-sort:before { 791 | content: "\f0dc"; 792 | } 793 | .fa-sort-down:before, 794 | .fa-sort-asc:before { 795 | content: "\f0dd"; 796 | } 797 | .fa-sort-up:before, 798 | .fa-sort-desc:before { 799 | content: "\f0de"; 800 | } 801 | .fa-envelope:before { 802 | content: "\f0e0"; 803 | } 804 | .fa-linkedin:before { 805 | content: "\f0e1"; 806 | } 807 | .fa-rotate-left:before, 808 | .fa-undo:before { 809 | content: "\f0e2"; 810 | } 811 | .fa-legal:before, 812 | .fa-gavel:before { 813 | content: "\f0e3"; 814 | } 815 | .fa-dashboard:before, 816 | .fa-tachometer:before { 817 | content: "\f0e4"; 818 | } 819 | .fa-comment-o:before { 820 | content: "\f0e5"; 821 | } 822 | .fa-comments-o:before { 823 | content: "\f0e6"; 824 | } 825 | .fa-flash:before, 826 | .fa-bolt:before { 827 | content: "\f0e7"; 828 | } 829 | .fa-sitemap:before { 830 | content: "\f0e8"; 831 | } 832 | .fa-umbrella:before { 833 | content: "\f0e9"; 834 | } 835 | .fa-paste:before, 836 | .fa-clipboard:before { 837 | content: "\f0ea"; 838 | } 839 | .fa-lightbulb-o:before { 840 | content: "\f0eb"; 841 | } 842 | .fa-exchange:before { 843 | content: "\f0ec"; 844 | } 845 | .fa-cloud-download:before { 846 | content: "\f0ed"; 847 | } 848 | .fa-cloud-upload:before { 849 | content: "\f0ee"; 850 | } 851 | .fa-user-md:before { 852 | content: "\f0f0"; 853 | } 854 | .fa-stethoscope:before { 855 | content: "\f0f1"; 856 | } 857 | .fa-suitcase:before { 858 | content: "\f0f2"; 859 | } 860 | .fa-bell-o:before { 861 | content: "\f0a2"; 862 | } 863 | .fa-coffee:before { 864 | content: "\f0f4"; 865 | } 866 | .fa-cutlery:before { 867 | content: "\f0f5"; 868 | } 869 | .fa-file-text-o:before { 870 | content: "\f0f6"; 871 | } 872 | .fa-building-o:before { 873 | content: "\f0f7"; 874 | } 875 | .fa-hospital-o:before { 876 | content: "\f0f8"; 877 | } 878 | .fa-ambulance:before { 879 | content: "\f0f9"; 880 | } 881 | .fa-medkit:before { 882 | content: "\f0fa"; 883 | } 884 | .fa-fighter-jet:before { 885 | content: "\f0fb"; 886 | } 887 | .fa-beer:before { 888 | content: "\f0fc"; 889 | } 890 | .fa-h-square:before { 891 | content: "\f0fd"; 892 | } 893 | .fa-plus-square:before { 894 | content: "\f0fe"; 895 | } 896 | .fa-angle-double-left:before { 897 | content: "\f100"; 898 | } 899 | .fa-angle-double-right:before { 900 | content: "\f101"; 901 | } 902 | .fa-angle-double-up:before { 903 | content: "\f102"; 904 | } 905 | .fa-angle-double-down:before { 906 | content: "\f103"; 907 | } 908 | .fa-angle-left:before { 909 | content: "\f104"; 910 | } 911 | .fa-angle-right:before { 912 | content: "\f105"; 913 | } 914 | .fa-angle-up:before { 915 | content: "\f106"; 916 | } 917 | .fa-angle-down:before { 918 | content: "\f107"; 919 | } 920 | .fa-desktop:before { 921 | content: "\f108"; 922 | } 923 | .fa-laptop:before { 924 | content: "\f109"; 925 | } 926 | .fa-tablet:before { 927 | content: "\f10a"; 928 | } 929 | .fa-mobile-phone:before, 930 | .fa-mobile:before { 931 | content: "\f10b"; 932 | } 933 | .fa-circle-o:before { 934 | content: "\f10c"; 935 | } 936 | .fa-quote-left:before { 937 | content: "\f10d"; 938 | } 939 | .fa-quote-right:before { 940 | content: "\f10e"; 941 | } 942 | .fa-spinner:before { 943 | content: "\f110"; 944 | } 945 | .fa-circle:before { 946 | content: "\f111"; 947 | } 948 | .fa-mail-reply:before, 949 | .fa-reply:before { 950 | content: "\f112"; 951 | } 952 | .fa-github-alt:before { 953 | content: "\f113"; 954 | } 955 | .fa-folder-o:before { 956 | content: "\f114"; 957 | } 958 | .fa-folder-open-o:before { 959 | content: "\f115"; 960 | } 961 | .fa-smile-o:before { 962 | content: "\f118"; 963 | } 964 | .fa-frown-o:before { 965 | content: "\f119"; 966 | } 967 | .fa-meh-o:before { 968 | content: "\f11a"; 969 | } 970 | .fa-gamepad:before { 971 | content: "\f11b"; 972 | } 973 | .fa-keyboard-o:before { 974 | content: "\f11c"; 975 | } 976 | .fa-flag-o:before { 977 | content: "\f11d"; 978 | } 979 | .fa-flag-checkered:before { 980 | content: "\f11e"; 981 | } 982 | .fa-terminal:before { 983 | content: "\f120"; 984 | } 985 | .fa-code:before { 986 | content: "\f121"; 987 | } 988 | .fa-reply-all:before { 989 | content: "\f122"; 990 | } 991 | .fa-mail-reply-all:before { 992 | content: "\f122"; 993 | } 994 | .fa-star-half-empty:before, 995 | .fa-star-half-full:before, 996 | .fa-star-half-o:before { 997 | content: "\f123"; 998 | } 999 | .fa-location-arrow:before { 1000 | content: "\f124"; 1001 | } 1002 | .fa-crop:before { 1003 | content: "\f125"; 1004 | } 1005 | .fa-code-fork:before { 1006 | content: "\f126"; 1007 | } 1008 | .fa-unlink:before, 1009 | .fa-chain-broken:before { 1010 | content: "\f127"; 1011 | } 1012 | .fa-question:before { 1013 | content: "\f128"; 1014 | } 1015 | .fa-info:before { 1016 | content: "\f129"; 1017 | } 1018 | .fa-exclamation:before { 1019 | content: "\f12a"; 1020 | } 1021 | .fa-superscript:before { 1022 | content: "\f12b"; 1023 | } 1024 | .fa-subscript:before { 1025 | content: "\f12c"; 1026 | } 1027 | .fa-eraser:before { 1028 | content: "\f12d"; 1029 | } 1030 | .fa-puzzle-piece:before { 1031 | content: "\f12e"; 1032 | } 1033 | .fa-microphone:before { 1034 | content: "\f130"; 1035 | } 1036 | .fa-microphone-slash:before { 1037 | content: "\f131"; 1038 | } 1039 | .fa-shield:before { 1040 | content: "\f132"; 1041 | } 1042 | .fa-calendar-o:before { 1043 | content: "\f133"; 1044 | } 1045 | .fa-fire-extinguisher:before { 1046 | content: "\f134"; 1047 | } 1048 | .fa-rocket:before { 1049 | content: "\f135"; 1050 | } 1051 | .fa-maxcdn:before { 1052 | content: "\f136"; 1053 | } 1054 | .fa-chevron-circle-left:before { 1055 | content: "\f137"; 1056 | } 1057 | .fa-chevron-circle-right:before { 1058 | content: "\f138"; 1059 | } 1060 | .fa-chevron-circle-up:before { 1061 | content: "\f139"; 1062 | } 1063 | .fa-chevron-circle-down:before { 1064 | content: "\f13a"; 1065 | } 1066 | .fa-html5:before { 1067 | content: "\f13b"; 1068 | } 1069 | .fa-css3:before { 1070 | content: "\f13c"; 1071 | } 1072 | .fa-anchor:before { 1073 | content: "\f13d"; 1074 | } 1075 | .fa-unlock-alt:before { 1076 | content: "\f13e"; 1077 | } 1078 | .fa-bullseye:before { 1079 | content: "\f140"; 1080 | } 1081 | .fa-ellipsis-h:before { 1082 | content: "\f141"; 1083 | } 1084 | .fa-ellipsis-v:before { 1085 | content: "\f142"; 1086 | } 1087 | .fa-rss-square:before { 1088 | content: "\f143"; 1089 | } 1090 | .fa-play-circle:before { 1091 | content: "\f144"; 1092 | } 1093 | .fa-ticket:before { 1094 | content: "\f145"; 1095 | } 1096 | .fa-minus-square:before { 1097 | content: "\f146"; 1098 | } 1099 | .fa-minus-square-o:before { 1100 | content: "\f147"; 1101 | } 1102 | .fa-level-up:before { 1103 | content: "\f148"; 1104 | } 1105 | .fa-level-down:before { 1106 | content: "\f149"; 1107 | } 1108 | .fa-check-square:before { 1109 | content: "\f14a"; 1110 | } 1111 | .fa-pencil-square:before { 1112 | content: "\f14b"; 1113 | } 1114 | .fa-external-link-square:before { 1115 | content: "\f14c"; 1116 | } 1117 | .fa-share-square:before { 1118 | content: "\f14d"; 1119 | } 1120 | .fa-compass:before { 1121 | content: "\f14e"; 1122 | } 1123 | .fa-toggle-down:before, 1124 | .fa-caret-square-o-down:before { 1125 | content: "\f150"; 1126 | } 1127 | .fa-toggle-up:before, 1128 | .fa-caret-square-o-up:before { 1129 | content: "\f151"; 1130 | } 1131 | .fa-toggle-right:before, 1132 | .fa-caret-square-o-right:before { 1133 | content: "\f152"; 1134 | } 1135 | .fa-euro:before, 1136 | .fa-eur:before { 1137 | content: "\f153"; 1138 | } 1139 | .fa-gbp:before { 1140 | content: "\f154"; 1141 | } 1142 | .fa-dollar:before, 1143 | .fa-usd:before { 1144 | content: "\f155"; 1145 | } 1146 | .fa-rupee:before, 1147 | .fa-inr:before { 1148 | content: "\f156"; 1149 | } 1150 | .fa-cny:before, 1151 | .fa-rmb:before, 1152 | .fa-yen:before, 1153 | .fa-jpy:before { 1154 | content: "\f157"; 1155 | } 1156 | .fa-ruble:before, 1157 | .fa-rouble:before, 1158 | .fa-rub:before { 1159 | content: "\f158"; 1160 | } 1161 | .fa-won:before, 1162 | .fa-krw:before { 1163 | content: "\f159"; 1164 | } 1165 | .fa-bitcoin:before, 1166 | .fa-btc:before { 1167 | content: "\f15a"; 1168 | } 1169 | .fa-file:before { 1170 | content: "\f15b"; 1171 | } 1172 | .fa-file-text:before { 1173 | content: "\f15c"; 1174 | } 1175 | .fa-sort-alpha-asc:before { 1176 | content: "\f15d"; 1177 | } 1178 | .fa-sort-alpha-desc:before { 1179 | content: "\f15e"; 1180 | } 1181 | .fa-sort-amount-asc:before { 1182 | content: "\f160"; 1183 | } 1184 | .fa-sort-amount-desc:before { 1185 | content: "\f161"; 1186 | } 1187 | .fa-sort-numeric-asc:before { 1188 | content: "\f162"; 1189 | } 1190 | .fa-sort-numeric-desc:before { 1191 | content: "\f163"; 1192 | } 1193 | .fa-thumbs-up:before { 1194 | content: "\f164"; 1195 | } 1196 | .fa-thumbs-down:before { 1197 | content: "\f165"; 1198 | } 1199 | .fa-youtube-square:before { 1200 | content: "\f166"; 1201 | } 1202 | .fa-youtube:before { 1203 | content: "\f167"; 1204 | } 1205 | .fa-xing:before { 1206 | content: "\f168"; 1207 | } 1208 | .fa-xing-square:before { 1209 | content: "\f169"; 1210 | } 1211 | .fa-youtube-play:before { 1212 | content: "\f16a"; 1213 | } 1214 | .fa-dropbox:before { 1215 | content: "\f16b"; 1216 | } 1217 | .fa-stack-overflow:before { 1218 | content: "\f16c"; 1219 | } 1220 | .fa-instagram:before { 1221 | content: "\f16d"; 1222 | } 1223 | .fa-flickr:before { 1224 | content: "\f16e"; 1225 | } 1226 | .fa-adn:before { 1227 | content: "\f170"; 1228 | } 1229 | .fa-bitbucket:before { 1230 | content: "\f171"; 1231 | } 1232 | .fa-bitbucket-square:before { 1233 | content: "\f172"; 1234 | } 1235 | .fa-tumblr:before { 1236 | content: "\f173"; 1237 | } 1238 | .fa-tumblr-square:before { 1239 | content: "\f174"; 1240 | } 1241 | .fa-long-arrow-down:before { 1242 | content: "\f175"; 1243 | } 1244 | .fa-long-arrow-up:before { 1245 | content: "\f176"; 1246 | } 1247 | .fa-long-arrow-left:before { 1248 | content: "\f177"; 1249 | } 1250 | .fa-long-arrow-right:before { 1251 | content: "\f178"; 1252 | } 1253 | .fa-apple:before { 1254 | content: "\f179"; 1255 | } 1256 | .fa-windows:before { 1257 | content: "\f17a"; 1258 | } 1259 | .fa-android:before { 1260 | content: "\f17b"; 1261 | } 1262 | .fa-linux:before { 1263 | content: "\f17c"; 1264 | } 1265 | .fa-dribbble:before { 1266 | content: "\f17d"; 1267 | } 1268 | .fa-skype:before { 1269 | content: "\f17e"; 1270 | } 1271 | .fa-foursquare:before { 1272 | content: "\f180"; 1273 | } 1274 | .fa-trello:before { 1275 | content: "\f181"; 1276 | } 1277 | .fa-female:before { 1278 | content: "\f182"; 1279 | } 1280 | .fa-male:before { 1281 | content: "\f183"; 1282 | } 1283 | .fa-gittip:before { 1284 | content: "\f184"; 1285 | } 1286 | .fa-sun-o:before { 1287 | content: "\f185"; 1288 | } 1289 | .fa-moon-o:before { 1290 | content: "\f186"; 1291 | } 1292 | .fa-archive:before { 1293 | content: "\f187"; 1294 | } 1295 | .fa-bug:before { 1296 | content: "\f188"; 1297 | } 1298 | .fa-vk:before { 1299 | content: "\f189"; 1300 | } 1301 | .fa-weibo:before { 1302 | content: "\f18a"; 1303 | } 1304 | .fa-renren:before { 1305 | content: "\f18b"; 1306 | } 1307 | .fa-pagelines:before { 1308 | content: "\f18c"; 1309 | } 1310 | .fa-stack-exchange:before { 1311 | content: "\f18d"; 1312 | } 1313 | .fa-arrow-circle-o-right:before { 1314 | content: "\f18e"; 1315 | } 1316 | .fa-arrow-circle-o-left:before { 1317 | content: "\f190"; 1318 | } 1319 | .fa-toggle-left:before, 1320 | .fa-caret-square-o-left:before { 1321 | content: "\f191"; 1322 | } 1323 | .fa-dot-circle-o:before { 1324 | content: "\f192"; 1325 | } 1326 | .fa-wheelchair:before { 1327 | content: "\f193"; 1328 | } 1329 | .fa-vimeo-square:before { 1330 | content: "\f194"; 1331 | } 1332 | .fa-turkish-lira:before, 1333 | .fa-try:before { 1334 | content: "\f195"; 1335 | } 1336 | .fa-plus-square-o:before { 1337 | content: "\f196"; 1338 | } 1339 | --------------------------------------------------------------------------------