├── .gitignore
├── 5.0-
├── 1x1.gif
├── 2x2.png
├── 32x32.png
├── 3x2.png
├── Wechat.js
├── YTB_TST.txt
├── addthis_widget.js
├── amazon_ads.js
├── ampproject_v0.js
├── chartbeat.js
├── disqus_embed.js
├── disqus_forums_embed.js
├── doubleclick_instream_ad_status.js
├── echo_request_value.js
├── echo_response_value.js
├── empty
├── fuckadblock.js
├── google-analytics_analytics.js
├── google-analytics_cx_api.js
├── google-analytics_ga.js
├── google-analytics_inpage_linkid.js
├── googlesyndication_adsbygoogle.js
├── googletagmanager_gtm.js
├── googletagservices_gpt.js
├── hd-main.js
├── ligatus_angular-tag.js
├── monkeybroker.js
├── nano-setInterval-booster.js
├── nano-setTimeout-booster.js
├── no-floc.js
├── nobab.js
├── noeval-silent.js
├── noeval.js
├── nofab.js
├── noop-0.1s.mp3
├── noop-0.1s.mp4
├── noop-1s.mp4
├── noop.html
├── noop.js
├── noop.txt
├── nowebrtc.js
├── outbrain-widget.js
├── popads-dummy.js
├── popads.js
├── pornhub.js
├── renren.js
├── scorecardresearch_beacon.js
└── window.open-defuser.js
├── AD
├── 1x1.gif
├── 2x2.png
├── 32x32.png
├── 3x2.png
├── YouTube.js
├── addthis_widget.js
├── amazon_ads.js
├── ampproject_v0.js
├── chartbeat.js
├── disqus_embed.js
├── disqus_forums_embed.js
├── doubleclick_instream_ad_status.js
├── empty
├── google-analytics_analytics.js
├── google-analytics_cx_api.js
├── google-analytics_ga.js
├── google-analytics_inpage_linkid.js
├── googlesyndication_adsbygoogle.js
├── googletagmanager_gtm.js
├── googletagservices_gpt.js
├── hd-main.js
├── ligatus_angular-tag.js
├── monkeybroker.js
├── nano-setInterval-booster.js
├── nano-setTimeout-booster.js
├── nobab.js
├── noeval-silent.js
├── noeval.js
├── nofab.js
├── noop-0.1s.mp3
├── noop-1s.mp4
├── noop.html
├── noop.js
├── noop.txt
├── outbrain-widget.js
├── popads-dummy.js
├── popads.js
├── scorecardresearch_beacon.js
└── window.open-defuser.js
├── CERT
└── cert_tr.sh
├── CSS
└── sizzle_mini.js
├── H5-
└── ad_player.js
├── KP-
├── AR.js
├── Remove_AD.js
├── YouTube_ skip.js
├── baidu_ad.js
├── disable_qq_beacon.js
├── fuck.ts
├── fuck_css_mini.js
├── fuckcss.js
├── fuckcss.min.js
├── hack_plus.user.js
├── hide.js
├── hide_mini.js
├── hide_w.js
├── iqiyi.js
├── mars-.js
├── mars.js
├── null.jpg
├── pcweb.wonder.js
├── playersdk.js
├── setup.js
├── sizzle_mini
├── skip_video_h5.js
├── test.txt
├── youku_skip_ad.js
└── youtube_css.js
├── README.md
├── backup
├── daily.txt
├── daily.txt.md5
├── koolproxy.txt
├── koolproxy.txt.md5
├── kp.dat
├── kp.dat.md5
└── test.txt
├── binary
├── KoolProxy_Readme
├── KoolProxy_Readme.docx
├── install
│ ├── koolproxy_AX32.tar.gz
│ ├── koolproxy_X86.tar.gz
│ ├── koolproxy_arm380.tar.gz
│ ├── koolproxy_arm384.tar.gz
│ └── koolproxy_hnd.tar.gz
└── v3.8.5
│ ├── aarch64
│ ├── arm
│ ├── mips
│ ├── mipsel
│ ├── x86
│ └── x86_64
├── daily.txt
├── daily.txt.md5
├── docs
└── image
│ ├── 80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif
│ ├── alipay.jpg
│ ├── koolproxy_rules.jpg
│ └── wechat.jpg
├── koolproxy.conf
├── koolproxy.conf.md5
├── koolproxy.txt
├── koolproxy.txt.md5
├── kp.dat
├── kp.dat.md5
├── md5.sh
├── swf
├── 17173.in.Live.swf
├── 17173.in.Vod.swf
├── 17173.out.Live.swf
├── 17173.out.Vod.swf
├── 17173_in_20150522.swf
├── 17173_out_20150522.swf
├── iqiyi5.swf
├── ku6-p.swf
├── ku6.swf
└── test.txt
├── tool
├── Router_Dog.apk
├── koolproxy_ipset.conf
├── koolproxy_ipset.conf.md
├── koolproxy_ipset_ip.list
├── koolproxy_ipset_ip.md
├── koolproxy_white_ip_update.list
├── koolproxy_white_ip_update.md
├── koolproxy_white_update.conf
├── koolproxy_white_update.conf.md
├── node_modules.tar.gz
├── packages
│ ├── node-npm_v12.19.0-1_x86_64.ipk
│ ├── node_v12.19.0-1_x86_64.ipk
│ └── signdog.md5
├── signdog
├── signdog.md5
└── upx
├── upload_rules.txt
├── user.txt
└── video_fuck
├── adguard.js
├── blank.m4v
├── fuck.mp4
├── fuck_II.mp4
├── null.mp3
├── skip_youtube.js
└── twitch_ad.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/5.0-/1x1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/1x1.gif
--------------------------------------------------------------------------------
/5.0-/2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/2x2.png
--------------------------------------------------------------------------------
/5.0-/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/32x32.png
--------------------------------------------------------------------------------
/5.0-/3x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/3x2.png
--------------------------------------------------------------------------------
/5.0-/Wechat.js:
--------------------------------------------------------------------------------
1 | var obj = JSON.parse($response.body);
2 | obj.advertisement_num = 0;
3 | obj.advertisement_info = [];
4 | delete obj.appid;
5 | $done({body: JSON.stringify(obj)});
--------------------------------------------------------------------------------
/5.0-/YTB_TST.txt:
--------------------------------------------------------------------------------
1 | !!!!!!KoolProxy 5.0 experimental rules!!!!!!!
2 | !!!!!!Separation filter core!!!!!!!
3 | &traceId=*&union_lens=lensId:*$reload=&af=1&pid=mm_18780958_10950171_55588314$enable>>>>password
4 | //AyIGZRprFDJWWA1FBCVbV0IUWVALHFRBEwQAQB1AWQkFa0NLSWVcfBILYFAEUR8oVkdpW1V6HGUOHjdSGVsWCyIFVh5dHQsQDl0raxUBIkw7GmsVCxIHXB5eFAASN1UfXRAEFg9XGl0dAxI3UhtSJQIXD10TXhELExtcHlwVARU3ZStYJTIiB1UrWyVdVloIK1kUAxYO$TR>>>>password
5 | //PXFG&p=AyIGZRprFDJWWA1FBCVbV0IUWVALHFRBEwQAQB1AWQkFa0NLSWVcfBILYFAEUR8oVkdpW1V6HGUOHjdSGVsWCyIFVh5dHQsQDl0raxUBIkw7GmsVCxIHXB5eFAASN1UfXRAEFg9XGl0dAxI3UhtSJQIXD10TXhELExtcHlwVARU3ZStYJTIiB1UrWyVdVloIK1kUAxYO$TR>>>>password
6 | /^https://ai\.youtube.com\/\Wpid\W(?!.*mm_18780958).*/$reload=https://ai.koolproxy.com/?pid=mm_18780958_10950171_55588314{(1)}{(2)}{(3)(skip)}{(time)}
7 | ||https://ads.doubleclick.net
8 | ||https://s.ytimg.com
9 | ||https://ad.youtube.com
10 | ||https://ads.youtube.com
11 | ||https://clients1.google.com
12 | ||https://dts.innovid.com
13 | ||https://googleads4.g.doubleclick.net
14 | ||https://pagead2.googlesyndication.com
15 | ||https://pixel.moatads.com
16 | ||https://rtd.tubemogul.com
17 | ||https://s.innovid.com
18 | ||https://pubads.g.doubleclick.net
19 | ||https://ssl.google-analytics.com
20 | ||https://www-google-analytics.l.google.com
21 | ||https://stats.g.doubleclick.net
22 | ||https://clients.l.google.com
23 | ||https://pagead.l.doubleclick.net
24 | ||https://www-googletagmanager.l.google.com
25 | ||https://googleadapis.l.google.com
26 | ||https://s0.2mdn.net
27 | ||https://googleads.g.doubleclick.net
28 | ||https://files.adform.net
29 | ||https://secure-ds.serving-sys.com
30 | ||https://securepubads.g.doubleclick.net
31 | ||https://s.youtube.com
32 | ||https://2975c.v.fwmrm.net
33 | ||https://static.doubleclick.net
34 | ||https://googleadservices.com
35 | ||https://ad-g.doubleclick.net
36 | ||https://ad.doubleclick.net
37 | ||https://ad.mo.doubleclick.net
38 | ||https://doubleclick.net
39 | ||https://pagead.googlesyndication.com
40 | ||https://pagead1.googlesyndication.com
41 | ||https://www.googleadservices.com
42 | ||https://youtube-nocookie.com
43 | ||https://www.youtube-nocookie.com
44 | ||https://analytic-google.com
45 | ||https://www.analytic-google.com
46 | ||https://www.googletagservices.com
47 | ||https://fwmrm.net
48 | ||https://innovid.com
49 | ||https://2mdn.net
50 | ||https://fwmrm.net
51 | ||https://innovid.com
52 | ||https://2mdn.net
--------------------------------------------------------------------------------
/5.0-/addthis_widget.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.addthis = {
27 | addEventListener: noopfn,
28 | button: noopfn,
29 | init: noopfn,
30 | layers: noopfn,
31 | ready: noopfn,
32 | sharecounters: {
33 | getShareCounts: noopfn
34 | },
35 | toolbox: noopfn,
36 | update: noopfn
37 | };
38 | })();
39 |
--------------------------------------------------------------------------------
/5.0-/amazon_ads.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | if ( amznads ) {
25 | return;
26 | }
27 | var w = window;
28 | var noopfn = function() {
29 | ;
30 | }.bind();
31 | var amznads = {
32 | appendScriptTag: noopfn,
33 | appendTargetingToAdServerUrl: noopfn,
34 | appendTargetingToQueryString: noopfn,
35 | clearTargetingFromGPTAsync: noopfn,
36 | doAllTasks: noopfn,
37 | doGetAdsAsync: noopfn,
38 | doTask: noopfn,
39 | detectIframeAndGetURL: noopfn,
40 | getAds: noopfn,
41 | getAdsAsync: noopfn,
42 | getAdForSlot: noopfn,
43 | getAdsCallback: noopfn,
44 | getDisplayAds: noopfn,
45 | getDisplayAdsAsync: noopfn,
46 | getDisplayAdsCallback: noopfn,
47 | getKeys: noopfn,
48 | getReferrerURL: noopfn,
49 | getScriptSource: noopfn,
50 | getTargeting: noopfn,
51 | getTokens: noopfn,
52 | getValidMilliseconds: noopfn,
53 | getVideoAds: noopfn,
54 | getVideoAdsAsync: noopfn,
55 | getVideoAdsCallback: noopfn,
56 | handleCallBack: noopfn,
57 | hasAds: noopfn,
58 | renderAd: noopfn,
59 | saveAds: noopfn,
60 | setTargeting: noopfn,
61 | setTargetingForGPTAsync: noopfn,
62 | setTargetingForGPTSync: noopfn,
63 | tryGetAdsAsync: noopfn,
64 | updateAds: noopfn
65 | };
66 | w.amznads = amznads;
67 | w.amzn_ads = w.amzn_ads || noopfn;
68 | w.aax_write = w.aax_write || noopfn;
69 | w.aax_render_ad = w.aax_render_ad || noopfn;
70 | })();
71 |
--------------------------------------------------------------------------------
/5.0-/ampproject_v0.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const head = document.head;
25 | if ( !head ) { return; }
26 | const style = document.createElement('style');
27 | style.textContent = [
28 | 'body {',
29 | ' animation: none !important;',
30 | ' overflow: unset !important;',
31 | '}'
32 | ].join('\n');
33 | head.appendChild(style);
34 | })();
35 |
--------------------------------------------------------------------------------
/5.0-/chartbeat.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.pSUPERFLY = {
27 | activity: noopfn,
28 | virtualPage: noopfn
29 | };
30 | })();
31 |
--------------------------------------------------------------------------------
/5.0-/disqus_embed.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const p = document.getElementById(window.disqus_container_id || 'disqus_thread');
25 | if ( p === null ) { return; }
26 | const b = document.createElement('button');
27 | b.textContent = 'Disqus blocked by uBlock Origin: click to unblock';
28 | b.type = 'button';
29 | p.appendChild(b);
30 | const loadDisqus = function(ev) {
31 | b.removeEventListener('click', loadDisqus);
32 | p.removeChild(b);
33 | const script = document.createElement('script');
34 | script.async = true;
35 | const t = Date.now().toString();
36 | script.src = '//' + window.disqus_shortname + '.disqus.com/embed.js?_=1457540' + t.slice(-6);
37 | document.body.appendChild(script);
38 | ev.preventDefault();
39 | ev.stopPropagation();
40 | };
41 | b.addEventListener('click', loadDisqus);
42 | })();
43 |
--------------------------------------------------------------------------------
/5.0-/disqus_forums_embed.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 |
21 | Completely experimental: load Disqus on demand only. Purpose is to avoid
22 | connecting to Disqus' servers, unless the user explicitly asks for the
23 | comments to be loaded.
24 | Works with following filters:
25 | ||disqus.com/forums/*embed.js$script,redirect=disqus.com/forums/*embed.js
26 | ||disqus.com/embed.js$script,redirect=disqus.com/embed.js
27 | ||disqus.com/count.js$script
28 | @@||disqus.com/embed.js?_=1457540*$script
29 | If you want a site you regularly visit to always have the comment loaded,
30 | just use an exception static filter. Example for wired.com:
31 | @@||wired.disqus.com/embed.js
32 |
33 | */
34 |
35 | (function() {
36 | 'use strict';
37 | const ee = document.getElementsByTagName('script');
38 | let i = ee.length, src;
39 | while ( i-- ) {
40 | src = ee[i].src || '';
41 | if ( src === '' ) {
42 | continue;
43 | }
44 | if ( src.lastIndexOf('disqus.com/embed.js') === (src.length - 19) ) {
45 | return;
46 | }
47 | }
48 | const e = document.createElement('script');
49 | e.async = true;
50 | e.src = '//' + window.disqus_shortname + '.disqus.com/embed.js';
51 | document.body.appendChild(e);
52 | })();
53 |
--------------------------------------------------------------------------------
/5.0-/doubleclick_instream_ad_status.js:
--------------------------------------------------------------------------------
1 | window.google_ad_status = 1;
2 |
--------------------------------------------------------------------------------
/5.0-/echo_request_value.js:
--------------------------------------------------------------------------------
1 | // 打印输出Request相关变量
2 | console.log("Scheme: " + $request.scheme);
3 | console.log("Method: " + $request.method);
4 | console.log("URL: " + $request.url);
5 | console.log("Path: " + $request.path);
6 | console.log("Headers: " + JSON.stringify($request.headers));
--------------------------------------------------------------------------------
/5.0-/echo_response_value.js:
--------------------------------------------------------------------------------
1 | // 打印输出Response相关变量
2 | console.log("Status Code: " + $response.statusCode);
3 | console.log("Headers: " + JSON.stringify($response.headers));
4 | console.log("Body: " + $response.body);
--------------------------------------------------------------------------------
/5.0-/empty:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/empty
--------------------------------------------------------------------------------
/5.0-/fuckadblock.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var noopfn = function() {
3 | ;
4 | };
5 | //
6 | var Fab = function() {};
7 | Fab.prototype.check = noopfn;
8 | Fab.prototype.clearEvent = noopfn;
9 | Fab.prototype.emitEvent = noopfn;
10 | Fab.prototype.on = function(a, b) {
11 | if ( !a ) { b(); }
12 | return this;
13 | };
14 | Fab.prototype.onDetected = function() {
15 | return this;
16 | };
17 | Fab.prototype.onNotDetected = function(a) {
18 | a();
19 | return this;
20 | };
21 | Fab.prototype.setOption = noopfn;
22 | var fab = new Fab(),
23 | getSetFab = {
24 | get: function() { return Fab; },
25 | set: function() {}
26 | },
27 | getsetfab = {
28 | get: function() { return fab; },
29 | set: function() {}
30 | };
31 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; }
32 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); }
33 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; }
34 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); }
35 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; }
36 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); }
37 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; }
38 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); }
39 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; }
40 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); }
41 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; }
42 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); }
43 | })();
--------------------------------------------------------------------------------
/5.0-/google-analytics_analytics.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | // https://developers.google.com/analytics/devguides/collection/analyticsjs/
25 | const noopfn = function() {
26 | };
27 | const noopnullfn = function() {
28 | return null;
29 | };
30 | //
31 | const Tracker = function() {
32 | };
33 | const p = Tracker.prototype;
34 | p.get = noopfn;
35 | p.set = noopfn;
36 | p.send = noopfn;
37 | //
38 | const w = window;
39 | const gaName = w.GoogleAnalyticsObject || 'ga';
40 | const gaQueue = w[gaName];
41 | const ga = function() {
42 | const len = arguments.length;
43 | if ( len === 0 ) { return; }
44 | const args = Array.from(arguments);
45 | let fn;
46 | let a = args[len-1];
47 | if ( a instanceof Object && a.hitCallback instanceof Function ) {
48 | fn = a.hitCallback;
49 | } else {
50 | const pos = args.indexOf('hitCallback');
51 | if ( pos !== -1 && args[pos+1] instanceof Function ) {
52 | fn = args[pos+1];
53 | }
54 | }
55 | if ( fn instanceof Function === false ) { return; }
56 | try {
57 | fn();
58 | } catch (ex) {
59 | }
60 | };
61 | ga.create = function() {
62 | return new Tracker();
63 | };
64 | ga.getByName = noopnullfn;
65 | ga.getAll = function() {
66 | return [];
67 | };
68 | ga.remove = noopfn;
69 | // https://github.com/uBlockOrigin/uAssets/issues/2107
70 | ga.loaded = true;
71 | w[gaName] = ga;
72 | // https://github.com/gorhill/uBlock/issues/3075
73 | const dl = w.dataLayer;
74 | if ( dl instanceof Object && dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
75 | dl.hide.end();
76 | }
77 | // empty ga queue
78 | if ( gaQueue instanceof Function && Array.isArray(gaQueue.q) ) {
79 | for ( const entry of gaQueue.q ) {
80 | ga(...entry);
81 | }
82 | }
83 | })();
84 |
--------------------------------------------------------------------------------
/5.0-/google-analytics_cx_api.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.cxApi = {
27 | chooseVariation: function() {
28 | return 0;
29 | },
30 | getChosenVariation: noopfn,
31 | setAllowHash: noopfn,
32 | setChosenVariation: noopfn,
33 | setCookiePath: noopfn,
34 | setDomainName: noopfn
35 | };
36 | })();
37 |
--------------------------------------------------------------------------------
/5.0-/google-analytics_ga.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | //
27 | const Gaq = function() {
28 | };
29 | Gaq.prototype.Na = noopfn;
30 | Gaq.prototype.O = noopfn;
31 | Gaq.prototype.Sa = noopfn;
32 | Gaq.prototype.Ta = noopfn;
33 | Gaq.prototype.Va = noopfn;
34 | Gaq.prototype._createAsyncTracker = noopfn;
35 | Gaq.prototype._getAsyncTracker = noopfn;
36 | Gaq.prototype._getPlugin = noopfn;
37 | Gaq.prototype.push = function(a) {
38 | if ( typeof a === 'function' ) {
39 | a(); return;
40 | }
41 | if ( Array.isArray(a) === false ) {
42 | return;
43 | }
44 | // https://twitter.com/catovitch/status/776442930345218048
45 | // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
46 | if ( a[0] === '_link' && typeof a[1] === 'string' ) {
47 | window.location.assign(a[1]);
48 | }
49 | // https://github.com/gorhill/uBlock/issues/2162
50 | if ( a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function' ) {
51 | a[2]();
52 | }
53 | };
54 | //
55 | const tracker = (function() {
56 | const out = {};
57 | const api = [
58 | '_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic',
59 | '_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic',
60 | '_cookiePathCopy _deleteCustomVar _getName _setAccount',
61 | '_getAccount _getClientInfo _getDetectFlash _getDetectTitle',
62 | '_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion',
63 | '_getVisitorCustomVar _initData _link _linkByPost',
64 | '_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey',
65 | '_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey',
66 | '_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo',
67 | '_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar',
68 | '_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath',
69 | '_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode',
70 | '_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout',
71 | '_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime',
72 | '_trackPageview _trackSocial _trackTiming _trackTrans',
73 | '_visitCode'
74 | ].join(' ').split(/\s+/);
75 | let i = api.length;
76 | while ( i-- ) {
77 | out[api[i]] = noopfn;
78 | }
79 | out._getLinkerUrl = function(a) {
80 | return a;
81 | };
82 | return out;
83 | })();
84 | //
85 | const Gat = function() {
86 | };
87 | Gat.prototype._anonymizeIP = noopfn;
88 | Gat.prototype._createTracker = noopfn;
89 | Gat.prototype._forceSSL = noopfn;
90 | Gat.prototype._getPlugin = noopfn;
91 | Gat.prototype._getTracker = function() {
92 | return tracker;
93 | };
94 | Gat.prototype._getTrackerByName = function() {
95 | return tracker;
96 | };
97 | Gat.prototype._getTrackers = noopfn;
98 | Gat.prototype.aa = noopfn;
99 | Gat.prototype.ab = noopfn;
100 | Gat.prototype.hb = noopfn;
101 | Gat.prototype.la = noopfn;
102 | Gat.prototype.oa = noopfn;
103 | Gat.prototype.pa = noopfn;
104 | Gat.prototype.u = noopfn;
105 | const gat = new Gat();
106 | window._gat = gat;
107 | //
108 | const gaq = new Gaq();
109 | (function() {
110 | const aa = window._gaq || [];
111 | if ( Array.isArray(aa) ) {
112 | while ( aa[0] ) {
113 | gaq.push(aa.shift());
114 | }
115 | }
116 | })();
117 | window._gaq = gaq.qf = gaq;
118 | })();
119 |
--------------------------------------------------------------------------------
/5.0-/google-analytics_inpage_linkid.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window._gaq = window._gaq || {
25 | push: function() {
26 | }
27 | };
28 | })();
29 |
--------------------------------------------------------------------------------
/5.0-/googlesyndication_adsbygoogle.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.adsbygoogle = window.adsbygoogle || {
25 | length: 0,
26 | loaded: true,
27 | push: function Si() {
28 | /*
29 | client = client || google_ad_client || google_ad_client;
30 | slotname = slotname || google_ad_slot;
31 | tag_origin = tag_origin || google_tag_origin
32 | */
33 | this.length += 1;
34 | }
35 | };
36 | const phs = document.querySelectorAll('.adsbygoogle');
37 | const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;';
38 | for ( let i = 0; i < phs.length; i++ ) {
39 | const fr = document.createElement('iframe');
40 | const id = `aswift_${(i+1)}`;
41 | if ( document.querySelector(`iframe#${id}`) !== null ) { continue; }
42 | fr.id = id;
43 | fr.style = css;
44 | const cfr = document.createElement('iframe');
45 | cfr.id = `google_ads_frame${i}`;
46 | fr.appendChild(cfr);
47 | document.body.appendChild(fr);
48 | }
49 | })();
50 |
--------------------------------------------------------------------------------
/5.0-/googletagmanager_gtm.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const w = window;
27 | w.ga = w.ga || noopfn;
28 | const dl = w.dataLayer;
29 | if ( dl instanceof Object === false ) { return; }
30 | if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
31 | dl.hide.end();
32 | }
33 | if ( typeof dl.push === 'function' ) {
34 | dl.push = function(o) {
35 | if (
36 | o instanceof Object &&
37 | typeof o.eventCallback === 'function'
38 | ) {
39 | setTimeout(o.eventCallback, 1);
40 | }
41 | };
42 | }
43 | })();
44 |
--------------------------------------------------------------------------------
/5.0-/googletagservices_gpt.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | // https://developers.google.com/doubleclick-gpt/reference
25 | const noopfn = function() {
26 | }.bind();
27 | const noopthisfn = function() {
28 | return this;
29 | };
30 | const noopnullfn = function() {
31 | return null;
32 | };
33 | const nooparrayfn = function() {
34 | return [];
35 | };
36 | const noopstrfn = function() {
37 | return '';
38 | };
39 | //
40 | const companionAdsService = {
41 | addEventListener: noopthisfn,
42 | enableSyncLoading: noopfn,
43 | setRefreshUnfilledSlots: noopfn
44 | };
45 | const contentService = {
46 | addEventListener: noopthisfn,
47 | setContent: noopfn
48 | };
49 | const PassbackSlot = function() {
50 | };
51 | let p = PassbackSlot.prototype;
52 | p.display = noopfn;
53 | p.get = noopnullfn;
54 | p.set = noopthisfn;
55 | p.setClickUrl = noopthisfn;
56 | p.setTagForChildDirectedTreatment = noopthisfn;
57 | p.setTargeting = noopthisfn;
58 | p.updateTargetingFromMap = noopthisfn;
59 | const pubAdsService = {
60 | addEventListener: noopthisfn,
61 | clear: noopfn,
62 | clearCategoryExclusions: noopthisfn,
63 | clearTagForChildDirectedTreatment: noopthisfn,
64 | clearTargeting: noopthisfn,
65 | collapseEmptyDivs: noopfn,
66 | defineOutOfPagePassback: function() { return new PassbackSlot(); },
67 | definePassback: function() { return new PassbackSlot(); },
68 | disableInitialLoad: noopfn,
69 | display: noopfn,
70 | enableAsyncRendering: noopfn,
71 | enableSingleRequest: noopfn,
72 | enableSyncRendering: noopfn,
73 | enableVideoAds: noopfn,
74 | get: noopnullfn,
75 | getAttributeKeys: nooparrayfn,
76 | getTargeting: noopfn,
77 | getTargetingKeys: nooparrayfn,
78 | getSlots: nooparrayfn,
79 | refresh: noopfn,
80 | set: noopthisfn,
81 | setCategoryExclusion: noopthisfn,
82 | setCentering: noopfn,
83 | setCookieOptions: noopthisfn,
84 | setForceSafeFrame: noopthisfn,
85 | setLocation: noopthisfn,
86 | setPublisherProvidedId: noopthisfn,
87 | setRequestNonPersonalizedAds: noopthisfn,
88 | setSafeFrameConfig: noopthisfn,
89 | setTagForChildDirectedTreatment: noopthisfn,
90 | setTargeting: noopthisfn,
91 | setVideoContent: noopthisfn,
92 | updateCorrelator: noopfn
93 | };
94 | const SizeMappingBuilder = function() {
95 | };
96 | p = SizeMappingBuilder.prototype;
97 | p.addSize = noopthisfn;
98 | p.build = noopnullfn;
99 | const Slot = function() {
100 | };
101 | p = Slot.prototype;
102 | p.addService = noopthisfn;
103 | p.clearCategoryExclusions = noopthisfn;
104 | p.clearTargeting = noopthisfn;
105 | p.defineSizeMapping = noopthisfn;
106 | p.get = noopnullfn;
107 | p.getAdUnitPath = nooparrayfn;
108 | p.getAttributeKeys = nooparrayfn;
109 | p.getCategoryExclusions = nooparrayfn;
110 | p.getDomId = noopstrfn;
111 | p.getSlotElementId = noopstrfn;
112 | p.getSlotId = noopthisfn;
113 | p.getTargeting = nooparrayfn;
114 | p.getTargetingKeys = nooparrayfn;
115 | p.set = noopthisfn;
116 | p.setCategoryExclusion = noopthisfn;
117 | p.setClickUrl = noopthisfn;
118 | p.setCollapseEmptyDiv = noopthisfn;
119 | p.setTargeting = noopthisfn;
120 | //
121 | const gpt = window.googletag || {};
122 | const cmd = gpt.cmd || [];
123 | gpt.apiReady = true;
124 | gpt.cmd = [];
125 | gpt.cmd.push = function(a) {
126 | try {
127 | a();
128 | } catch (ex) {
129 | }
130 | return 1;
131 | };
132 | gpt.companionAds = function() { return companionAdsService; };
133 | gpt.content = function() { return contentService; };
134 | gpt.defineOutOfPageSlot = function() { return new Slot(); };
135 | gpt.defineSlot = function() { return new Slot(); };
136 | gpt.destroySlots = noopfn;
137 | gpt.disablePublisherConsole = noopfn;
138 | gpt.display = noopfn;
139 | gpt.enableServices = noopfn;
140 | gpt.getVersion = noopstrfn;
141 | gpt.pubads = function() { return pubAdsService; };
142 | gpt.pubadsReady = true;
143 | gpt.setAdIframeTitle = noopfn;
144 | gpt.sizeMapping = function() { return new SizeMappingBuilder(); };
145 | window.googletag = gpt;
146 | while ( cmd.length !== 0 ) {
147 | gpt.cmd.push(cmd.shift());
148 | }
149 | })();
150 |
--------------------------------------------------------------------------------
/5.0-/hd-main.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const l = {};
25 | const noopfn = function() {
26 | };
27 | const props = [
28 | "$j","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Nj","Oc","Pc","Pe",
29 | "Qc","Qe","Rc","Re","Ri","Sc","Tc","Uc","Vc","Wc","Wg","Xc","Xg","Yc","Yd",
30 | "ad","ae","bd","bf","cd","dd","ed","ef","ek","fd","fg","fh","fk","gd","hd",
31 | "ig","ij","jd","kd","ke","ld","md","mi","nd","od","oh","pd","pf","qd","rd",
32 | "sd","td","ud","vd","wd","wg","xd","xh","yd","zd",
33 | "$d","$e","$k","Ae","Af","Aj","Be","Ce","De","Ee","Ek","Eo","Ep","Fe","Fo",
34 | "Ge","Gh","Hk","Ie","Ip","Je","Ke","Kk","Kq","Le","Lh","Lk","Me","Mm","Ne",
35 | "Oe","Pe","Qe","Re","Rp","Se","Te","Ue","Ve","Vp","We","Xd","Xe","Yd","Ye",
36 | "Zd","Ze","Zf","Zk","ae","af","al","be","bf","bg","ce","cp","df","di","ee",
37 | "ef","fe","ff","gf","gm","he","hf","ie","je","jf","ke","kf","kl","le","lf",
38 | "lk","mf","mg","mn","nf","oe","of","pe","pf","pg","qe","qf","re","rf","se",
39 | "sf","te","tf","ti","ue","uf","ve","vf","we","wf","wg","wi","xe","ye","yf",
40 | "yk","yl","ze","zf","zk"
41 | ];
42 | for ( let i = 0; i < props.length; i++ ) {
43 | l[props[i]] = noopfn;
44 | }
45 | window.L = window.J = l;
46 | })();
47 |
--------------------------------------------------------------------------------
/5.0-/ligatus_angular-tag.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | self.adProtect = true;
25 | Object.defineProperties(window, {
26 | uabpdl: { value: true },
27 | uabDetect: { value: true }
28 | });
29 | })();
30 |
--------------------------------------------------------------------------------
/5.0-/monkeybroker.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.pbjs = { libLoaded: true };
27 | const mb = window.MonkeyBroker || {
28 | addAttribute: noopfn,
29 | addSlot: function(a) {
30 | this.slots[a.slot] = {};
31 | },
32 | defineSlot: noopfn,
33 | fillSlot: noopfn,
34 | go: noopfn,
35 | inventoryConditionalPlacement: noopfn,
36 | registerSizeCallback: noopfn,
37 | registerSlotCallback: noopfn,
38 | slots: {},
39 | version: ''
40 | };
41 | mb.regSlotsMap = mb.slots;
42 | window.MonkeyBroker = mb;
43 | })();
44 |
--------------------------------------------------------------------------------
/5.0-/nano-setInterval-booster.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // Based on uAssets
3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
4 | var z = window.setInterval,
5 | needle = '{{1}}',
6 | delay = parseInt('{{2}}', 10),
7 | boost = parseFloat('{{3}}');
8 | if ( needle === '' || needle === '{{1}}' ) {
9 | needle = '.?';
10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) {
11 | needle = needle.slice(1, -1);
12 | } else {
13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
14 | }
15 | needle = new RegExp(needle);
16 | if ( isNaN(delay) || !isFinite(delay) ) {
17 | delay = 1000;
18 | }
19 | if ( isNaN(boost) || !isFinite(boost) ) {
20 | boost = 0.05;
21 | }
22 | if ( boost < 0.02 ) {
23 | boost = 0.02;
24 | }
25 | if ( boost > 50 ) {
26 | boost = 50;
27 | }
28 | window.setInterval = function(a, b) {
29 | if ( b === delay && needle.test(a.toString()) ) {
30 | b *= boost;
31 | }
32 | return z.apply(this, arguments);
33 | }.bind(window);
34 | })();
--------------------------------------------------------------------------------
/5.0-/nano-setTimeout-booster.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // Based on uAssets
3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
4 | var z = window.setTimeout,
5 | needle = '{{1}}',
6 | delay = parseInt('{{2}}', 10),
7 | boost = parseFloat('{{3}}');
8 | if ( needle === '' || needle === '{{1}}' ) {
9 | needle = '.?';
10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) {
11 | needle = needle.slice(1, -1);
12 | } else {
13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
14 | }
15 | needle = new RegExp(needle);
16 | if ( isNaN(delay) || !isFinite(delay) ) {
17 | delay = 1000;
18 | }
19 | if ( isNaN(boost) || !isFinite(boost) ) {
20 | boost = 0.05;
21 | }
22 | if ( boost < 0.02 ) {
23 | boost = 0.02;
24 | }
25 | if ( boost > 50 ) {
26 | boost = 50;
27 | }
28 | window.setTimeout = function(a, b) {
29 | if ( b === delay && needle.test(a.toString()) ) {
30 | b *= boost;
31 | }
32 | return z.apply(this, arguments);
33 | }.bind(window);
34 | })();
--------------------------------------------------------------------------------
/5.0-/no-floc.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | if ( Document instanceof Object === false ) { return; }
3 | if ( Document.prototype.interestCohort instanceof Function === false ) {
4 | return;
5 | }
6 | Document.prototype.interestCohort = new Proxy(
7 | Document.prototype.interestCohort,
8 | {
9 | apply: function() {
10 | return Promise.reject();
11 | }
12 | }
13 | );
14 | })();
--------------------------------------------------------------------------------
/5.0-/nobab.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const signatures = [
25 | [ 'blockadblock' ],
26 | [ 'babasbm' ],
27 | [ /getItem\('babn'\)/ ],
28 | [
29 | 'getElementById',
30 | 'String.fromCharCode',
31 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
32 | 'charAt',
33 | 'DOMContentLoaded',
34 | 'AdBlock',
35 | 'addEventListener',
36 | 'doScroll',
37 | 'fromCharCode',
38 | '<<2|r>>4',
39 | 'sessionStorage',
40 | 'clientWidth',
41 | 'localStorage',
42 | 'Math',
43 | 'random'
44 | ],
45 | ];
46 | const check = function(s) {
47 | for ( let i = 0; i < signatures.length; i++ ) {
48 | const tokens = signatures[i];
49 | let match = 0;
50 | for ( let j = 0; j < tokens.length; j++ ) {
51 | const token = tokens[j];
52 | const pos = token instanceof RegExp
53 | ? s.search(token)
54 | : s.indexOf(token);
55 | if ( pos !== -1 ) { match += 1; }
56 | }
57 | if ( (match / tokens.length) >= 0.8 ) { return true; }
58 | }
59 | return false;
60 | };
61 | window.eval = new Proxy(window.eval, { // jshint ignore: line
62 | apply: function(target, thisArg, args) {
63 | const a = args[0];
64 | if ( typeof a !== 'string' || !check(a) ) {
65 | return target.apply(thisArg, args);
66 | }
67 | if ( document.body ) {
68 | document.body.style.removeProperty('visibility');
69 | }
70 | let el = document.getElementById('babasbmsgx');
71 | if ( el ) {
72 | el.parentNode.removeChild(el);
73 | }
74 | }
75 | });
76 | window.setTimeout = new Proxy(window.setTimeout, {
77 | apply: function(target, thisArg, args) {
78 | const a = args[0];
79 | if (
80 | typeof a !== 'string' ||
81 | /\.bab_elementid.$/.test(a) === false
82 | ) {
83 | return target.apply(thisArg, args);
84 | }
85 | }
86 | });
87 | })();
88 |
--------------------------------------------------------------------------------
/5.0-/noeval-silent.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.eval = new Proxy(window.eval, { // jshint ignore: line
25 | apply: function() {
26 | }
27 | });
28 | })();
29 |
--------------------------------------------------------------------------------
/5.0-/noeval.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const log = console.log.bind(console);
25 | window.eval = new Proxy(window.eval, { // jshint ignore: line
26 | apply: function(target, thisArg, args) {
27 | log(`Document tried to eval... ${args[0]}\n`);
28 | }
29 | });
30 | })();
31 |
--------------------------------------------------------------------------------
/5.0-/nofab.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const Fab = function() {};
27 | Fab.prototype.check = noopfn;
28 | Fab.prototype.clearEvent = noopfn;
29 | Fab.prototype.emitEvent = noopfn;
30 | Fab.prototype.on = function(a, b) {
31 | if ( !a ) { b(); }
32 | return this;
33 | };
34 | Fab.prototype.onDetected = function() {
35 | return this;
36 | };
37 | Fab.prototype.onNotDetected = function(a) {
38 | a();
39 | return this;
40 | };
41 | Fab.prototype.setOption = noopfn;
42 | const fab = new Fab(),
43 | getSetFab = {
44 | get: function() { return Fab; },
45 | set: function() {}
46 | },
47 | getsetfab = {
48 | get: function() { return fab; },
49 | set: function() {}
50 | };
51 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; }
52 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); }
53 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; }
54 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); }
55 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; }
56 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); }
57 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; }
58 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); }
59 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; }
60 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); }
61 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; }
62 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); }
63 | })();
64 |
--------------------------------------------------------------------------------
/5.0-/noop-0.1s.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-0.1s.mp3
--------------------------------------------------------------------------------
/5.0-/noop-0.1s.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-0.1s.mp4
--------------------------------------------------------------------------------
/5.0-/noop-1s.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/5.0-/noop-1s.mp4
--------------------------------------------------------------------------------
/5.0-/noop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/5.0-/noop.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | 'use strict';
3 | })();
4 |
--------------------------------------------------------------------------------
/5.0-/noop.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/5.0-/nowebrtc.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var rtcName = window.RTCPeerConnection ? 'RTCPeerConnection' : (
3 | window.webkitRTCPeerConnection ? 'webkitRTCPeerConnection' : ''
4 | );
5 | if ( rtcName === '' ) { return; }
6 | var log = console.log.bind(console);
7 | var pc = function(cfg) {
8 | log('Document tried to create an RTCPeerConnection: %o', cfg);
9 | };
10 | var noop = function() {
11 | ;
12 | };
13 | pc.prototype = {
14 | close: noop,
15 | createDataChannel: noop,
16 | createOffer: noop,
17 | setRemoteDescription: noop
18 | };
19 | var z = window[rtcName];
20 | window[rtcName] = pc.bind(window);
21 | if ( z.prototype ) {
22 | z.prototype.createDataChannel = function(a, b) {
23 | return {
24 | close: function() {},
25 | send: function() {}
26 | };
27 | }.bind(null);
28 | }
29 | })();
--------------------------------------------------------------------------------
/5.0-/outbrain-widget.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const obr = {};
27 | const methods = [
28 | 'callClick', 'callLoadMore', 'callRecs', 'callUserZapping',
29 | 'callWhatIs', 'cancelRecommendation', 'cancelRecs', 'closeCard',
30 | 'closeModal', 'closeTbx', 'errorInjectionHandler', 'getCountOfRecs',
31 | 'getStat', 'imageError', 'manualVideoClicked', 'onOdbReturn',
32 | 'onVideoClick', 'pagerLoad', 'recClicked', 'refreshSpecificWidget',
33 | 'refreshWidget', 'reloadWidget', 'researchWidget', 'returnedError',
34 | 'returnedHtmlData', 'returnedIrdData', 'returnedJsonData', 'scrollLoad',
35 | 'showDescription', 'showRecInIframe', 'userZappingMessage', 'zappingFormAction'
36 | ];
37 | obr.extern = {
38 | video: {
39 | getVideoRecs: noopfn,
40 | videoClicked: noopfn
41 | }
42 | };
43 | methods.forEach(function(a) {
44 | obr.extern[a] = noopfn;
45 | });
46 | window.OBR = window.OBR || obr;
47 | })();
48 |
--------------------------------------------------------------------------------
/5.0-/popads-dummy.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | delete window.PopAds;
25 | delete window.popns;
26 | Object.defineProperties(window, {
27 | PopAds: { value: {} },
28 | popns: { value: {} }
29 | });
30 | })();
31 |
--------------------------------------------------------------------------------
/5.0-/popads.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const magic = String.fromCharCode(Date.now() % 26 + 97) +
25 | Math.floor(Math.random() * 982451653 + 982451653).toString(36);
26 | const oe = window.onerror;
27 | window.onerror = function(msg, src, line, col, error) {
28 | if ( typeof msg === 'string' && msg.indexOf(magic) !== -1 ) { return true; }
29 | if ( oe instanceof Function ) {
30 | return oe(msg, src, line, col, error);
31 | }
32 | }.bind();
33 | const throwMagic = function() { throw magic; };
34 | delete window.PopAds;
35 | delete window.popns;
36 | Object.defineProperties(window, {
37 | PopAds: { set: throwMagic },
38 | popns: { set: throwMagic }
39 | });
40 | })();
41 |
--------------------------------------------------------------------------------
/5.0-/pornhub.js:
--------------------------------------------------------------------------------
1 | window.opera = true;
2 | Object.defineProperty(window,'tj_ads',{get:function(){return[]}});
3 | Object.defineProperty(Object.prototype, 'loadPopUnder', { get: function(){ return function() {}; }, set: function(){ return function() {}; }});
4 | Object.defineProperty(window, 'UAParser', { get: function() { return function() { }; } });
--------------------------------------------------------------------------------
/5.0-/renren.js:
--------------------------------------------------------------------------------
1 | var body = $response.body;
2 | var url = $request.url;
3 |
4 | if (url.indexOf('/ad/getAll') != -1) {
5 | var obj = JSON.parse(body);
6 | obj.data.adList = [];
7 | body = JSON.stringify(obj);
8 | } else if (url.indexOf('/user/privilege/list') != -1) {
9 | var obj = JSON.parse(body);
10 | obj.data = [{
11 | "action": "play",
12 | "effectObject": "video",
13 | "id": 1,
14 | "function": "originalPainting",
15 | "func": "originalPainting",
16 | "endTime": 1667341767582,
17 | "description": "解锁原画",
18 | "icon": "jiesuoyuanhua"
19 | }, {
20 | "action": "play",
21 | "effectObject": "video",
22 | "id": 4,
23 | "function": "noLimit",
24 | "func": "noLimit",
25 | "endTime": 1567341767582,
26 | "description": "看剧无限制",
27 | "icon": "kanjuwuxianzhi"
28 | }, {
29 | "action": "play",
30 | "effectObject": "growth",
31 | "id": 37,
32 | "function": "0.4",
33 | "func": "0.4",
34 | "endTime": 1667341767582,
35 | "description": "看剧经验+40%",
36 | "icon": "jingyanzhijiacheng"
37 | }, {
38 | "action": "send",
39 | "effectObject": "danmu",
40 | "id": 43,
41 | "function": "superBarrageBlue",
42 | "func": "superBarrageBlue",
43 | "endTime": 1667341767582,
44 | "description": "超级弹幕",
45 | "icon": "chaojidanmu"
46 | }, {
47 | "action": "play",
48 | "effectObject": "video",
49 | "id": 23,
50 | "function": "noAd",
51 | "func": "noAd",
52 | "endTime": 1667341767582,
53 | "description": "看剧无广告",
54 | "icon": "kanjuwuguanggao"
55 | }];
56 |
57 | }else if(url.indexOf('/rrtv-video/v4plus/season/detail') != -1){
58 | var obj = JSON.parse(body);
59 |
60 | obj.data['season']['feeMode'] = 'restriction';
61 | }
62 |
63 |
64 | body = JSON.stringify(obj);
65 |
66 | $done({
67 | body
68 | });
69 |
--------------------------------------------------------------------------------
/5.0-/scorecardresearch_beacon.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.COMSCORE = {
25 | purge: function() {
26 | window._comscore = [];
27 | },
28 | beacon: function() {
29 | }
30 | };
31 | })();
32 |
--------------------------------------------------------------------------------
/5.0-/window.open-defuser.js:
--------------------------------------------------------------------------------
1 | //window.open-defuser.js application/javascript
2 | (function() {
3 | var wo = window.open,
4 | target = '{{1}}',
5 | needle = '{{2}}';
6 | if ( target === '' || target === '{{1}}' ) {
7 | target = false;
8 | } else {
9 | target = !(+target);
10 | }
11 | if ( needle === '' || needle === '{{2}}' ) {
12 | needle = '.?';
13 | } else if ( /^\/.+\/$/.test(needle) ) {
14 | needle = needle.slice(1,-1);
15 | } else {
16 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
17 | }
18 | needle = new RegExp(needle);
19 | window.open = (function(a) {
20 | if ( needle.test(a) === target ) {
21 | return wo.apply(window, arguments);
22 | }
23 | }).bind(window);
24 | })();
25 |
--------------------------------------------------------------------------------
/AD/1x1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/1x1.gif
--------------------------------------------------------------------------------
/AD/2x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/2x2.png
--------------------------------------------------------------------------------
/AD/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/32x32.png
--------------------------------------------------------------------------------
/AD/3x2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/3x2.png
--------------------------------------------------------------------------------
/AD/YouTube.js:
--------------------------------------------------------------------------------
1 | if ($request.url.indexOf("&oad") != -1) {
2 | $done({ response: {body: ""} });
3 | } else if ($request.url.indexOf("&ctier") != -1) {
4 | let url = $request.url.replace(/ctier=[A-Z]/, "ctier=A");
5 | $done({ response: { status: 302, headers: { Location: url } } });
6 | } else {
7 | $done({})
8 | }
9 |
--------------------------------------------------------------------------------
/AD/addthis_widget.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.addthis = {
27 | addEventListener: noopfn,
28 | button: noopfn,
29 | init: noopfn,
30 | layers: noopfn,
31 | ready: noopfn,
32 | sharecounters: {
33 | getShareCounts: noopfn
34 | },
35 | toolbox: noopfn,
36 | update: noopfn
37 | };
38 | })();
39 |
--------------------------------------------------------------------------------
/AD/amazon_ads.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | if ( amznads ) {
25 | return;
26 | }
27 | var w = window;
28 | var noopfn = function() {
29 | ;
30 | }.bind();
31 | var amznads = {
32 | appendScriptTag: noopfn,
33 | appendTargetingToAdServerUrl: noopfn,
34 | appendTargetingToQueryString: noopfn,
35 | clearTargetingFromGPTAsync: noopfn,
36 | doAllTasks: noopfn,
37 | doGetAdsAsync: noopfn,
38 | doTask: noopfn,
39 | detectIframeAndGetURL: noopfn,
40 | getAds: noopfn,
41 | getAdsAsync: noopfn,
42 | getAdForSlot: noopfn,
43 | getAdsCallback: noopfn,
44 | getDisplayAds: noopfn,
45 | getDisplayAdsAsync: noopfn,
46 | getDisplayAdsCallback: noopfn,
47 | getKeys: noopfn,
48 | getReferrerURL: noopfn,
49 | getScriptSource: noopfn,
50 | getTargeting: noopfn,
51 | getTokens: noopfn,
52 | getValidMilliseconds: noopfn,
53 | getVideoAds: noopfn,
54 | getVideoAdsAsync: noopfn,
55 | getVideoAdsCallback: noopfn,
56 | handleCallBack: noopfn,
57 | hasAds: noopfn,
58 | renderAd: noopfn,
59 | saveAds: noopfn,
60 | setTargeting: noopfn,
61 | setTargetingForGPTAsync: noopfn,
62 | setTargetingForGPTSync: noopfn,
63 | tryGetAdsAsync: noopfn,
64 | updateAds: noopfn
65 | };
66 | w.amznads = amznads;
67 | w.amzn_ads = w.amzn_ads || noopfn;
68 | w.aax_write = w.aax_write || noopfn;
69 | w.aax_render_ad = w.aax_render_ad || noopfn;
70 | })();
71 |
--------------------------------------------------------------------------------
/AD/ampproject_v0.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const head = document.head;
25 | if ( !head ) { return; }
26 | const style = document.createElement('style');
27 | style.textContent = [
28 | 'body {',
29 | ' animation: none !important;',
30 | ' overflow: unset !important;',
31 | '}'
32 | ].join('\n');
33 | head.appendChild(style);
34 | })();
35 |
--------------------------------------------------------------------------------
/AD/chartbeat.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.pSUPERFLY = {
27 | activity: noopfn,
28 | virtualPage: noopfn
29 | };
30 | })();
31 |
--------------------------------------------------------------------------------
/AD/disqus_embed.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const p = document.getElementById(window.disqus_container_id || 'disqus_thread');
25 | if ( p === null ) { return; }
26 | const b = document.createElement('button');
27 | b.textContent = 'Disqus blocked by uBlock Origin: click to unblock';
28 | b.type = 'button';
29 | p.appendChild(b);
30 | const loadDisqus = function(ev) {
31 | b.removeEventListener('click', loadDisqus);
32 | p.removeChild(b);
33 | const script = document.createElement('script');
34 | script.async = true;
35 | const t = Date.now().toString();
36 | script.src = '//' + window.disqus_shortname + '.disqus.com/embed.js?_=1457540' + t.slice(-6);
37 | document.body.appendChild(script);
38 | ev.preventDefault();
39 | ev.stopPropagation();
40 | };
41 | b.addEventListener('click', loadDisqus);
42 | })();
43 |
--------------------------------------------------------------------------------
/AD/disqus_forums_embed.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 |
21 | Completely experimental: load Disqus on demand only. Purpose is to avoid
22 | connecting to Disqus' servers, unless the user explicitly asks for the
23 | comments to be loaded.
24 | Works with following filters:
25 | ||disqus.com/forums/*embed.js$script,redirect=disqus.com/forums/*embed.js
26 | ||disqus.com/embed.js$script,redirect=disqus.com/embed.js
27 | ||disqus.com/count.js$script
28 | @@||disqus.com/embed.js?_=1457540*$script
29 | If you want a site you regularly visit to always have the comment loaded,
30 | just use an exception static filter. Example for wired.com:
31 | @@||wired.disqus.com/embed.js
32 |
33 | */
34 |
35 | (function() {
36 | 'use strict';
37 | const ee = document.getElementsByTagName('script');
38 | let i = ee.length, src;
39 | while ( i-- ) {
40 | src = ee[i].src || '';
41 | if ( src === '' ) {
42 | continue;
43 | }
44 | if ( src.lastIndexOf('disqus.com/embed.js') === (src.length - 19) ) {
45 | return;
46 | }
47 | }
48 | const e = document.createElement('script');
49 | e.async = true;
50 | e.src = '//' + window.disqus_shortname + '.disqus.com/embed.js';
51 | document.body.appendChild(e);
52 | })();
53 |
--------------------------------------------------------------------------------
/AD/doubleclick_instream_ad_status.js:
--------------------------------------------------------------------------------
1 | window.google_ad_status = 1;
2 |
--------------------------------------------------------------------------------
/AD/empty:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/empty
--------------------------------------------------------------------------------
/AD/google-analytics_analytics.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | // https://developers.google.com/analytics/devguides/collection/analyticsjs/
25 | const noopfn = function() {
26 | };
27 | const noopnullfn = function() {
28 | return null;
29 | };
30 | //
31 | const Tracker = function() {
32 | };
33 | const p = Tracker.prototype;
34 | p.get = noopfn;
35 | p.set = noopfn;
36 | p.send = noopfn;
37 | //
38 | const w = window;
39 | const gaName = w.GoogleAnalyticsObject || 'ga';
40 | const gaQueue = w[gaName];
41 | const ga = function() {
42 | const len = arguments.length;
43 | if ( len === 0 ) { return; }
44 | const args = Array.from(arguments);
45 | let fn;
46 | let a = args[len-1];
47 | if ( a instanceof Object && a.hitCallback instanceof Function ) {
48 | fn = a.hitCallback;
49 | } else {
50 | const pos = args.indexOf('hitCallback');
51 | if ( pos !== -1 && args[pos+1] instanceof Function ) {
52 | fn = args[pos+1];
53 | }
54 | }
55 | if ( fn instanceof Function === false ) { return; }
56 | try {
57 | fn();
58 | } catch (ex) {
59 | }
60 | };
61 | ga.create = function() {
62 | return new Tracker();
63 | };
64 | ga.getByName = noopnullfn;
65 | ga.getAll = function() {
66 | return [];
67 | };
68 | ga.remove = noopfn;
69 | // https://github.com/uBlockOrigin/uAssets/issues/2107
70 | ga.loaded = true;
71 | w[gaName] = ga;
72 | // https://github.com/gorhill/uBlock/issues/3075
73 | const dl = w.dataLayer;
74 | if ( dl instanceof Object && dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
75 | dl.hide.end();
76 | }
77 | // empty ga queue
78 | if ( gaQueue instanceof Function && Array.isArray(gaQueue.q) ) {
79 | for ( const entry of gaQueue.q ) {
80 | ga(...entry);
81 | }
82 | }
83 | })();
84 |
--------------------------------------------------------------------------------
/AD/google-analytics_cx_api.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.cxApi = {
27 | chooseVariation: function() {
28 | return 0;
29 | },
30 | getChosenVariation: noopfn,
31 | setAllowHash: noopfn,
32 | setChosenVariation: noopfn,
33 | setCookiePath: noopfn,
34 | setDomainName: noopfn
35 | };
36 | })();
37 |
--------------------------------------------------------------------------------
/AD/google-analytics_ga.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | //
27 | const Gaq = function() {
28 | };
29 | Gaq.prototype.Na = noopfn;
30 | Gaq.prototype.O = noopfn;
31 | Gaq.prototype.Sa = noopfn;
32 | Gaq.prototype.Ta = noopfn;
33 | Gaq.prototype.Va = noopfn;
34 | Gaq.prototype._createAsyncTracker = noopfn;
35 | Gaq.prototype._getAsyncTracker = noopfn;
36 | Gaq.prototype._getPlugin = noopfn;
37 | Gaq.prototype.push = function(a) {
38 | if ( typeof a === 'function' ) {
39 | a(); return;
40 | }
41 | if ( Array.isArray(a) === false ) {
42 | return;
43 | }
44 | // https://twitter.com/catovitch/status/776442930345218048
45 | // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
46 | if ( a[0] === '_link' && typeof a[1] === 'string' ) {
47 | window.location.assign(a[1]);
48 | }
49 | // https://github.com/gorhill/uBlock/issues/2162
50 | if ( a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function' ) {
51 | a[2]();
52 | }
53 | };
54 | //
55 | const tracker = (function() {
56 | const out = {};
57 | const api = [
58 | '_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic',
59 | '_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic',
60 | '_cookiePathCopy _deleteCustomVar _getName _setAccount',
61 | '_getAccount _getClientInfo _getDetectFlash _getDetectTitle',
62 | '_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion',
63 | '_getVisitorCustomVar _initData _link _linkByPost',
64 | '_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey',
65 | '_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey',
66 | '_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo',
67 | '_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar',
68 | '_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath',
69 | '_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode',
70 | '_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout',
71 | '_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime',
72 | '_trackPageview _trackSocial _trackTiming _trackTrans',
73 | '_visitCode'
74 | ].join(' ').split(/\s+/);
75 | let i = api.length;
76 | while ( i-- ) {
77 | out[api[i]] = noopfn;
78 | }
79 | out._getLinkerUrl = function(a) {
80 | return a;
81 | };
82 | return out;
83 | })();
84 | //
85 | const Gat = function() {
86 | };
87 | Gat.prototype._anonymizeIP = noopfn;
88 | Gat.prototype._createTracker = noopfn;
89 | Gat.prototype._forceSSL = noopfn;
90 | Gat.prototype._getPlugin = noopfn;
91 | Gat.prototype._getTracker = function() {
92 | return tracker;
93 | };
94 | Gat.prototype._getTrackerByName = function() {
95 | return tracker;
96 | };
97 | Gat.prototype._getTrackers = noopfn;
98 | Gat.prototype.aa = noopfn;
99 | Gat.prototype.ab = noopfn;
100 | Gat.prototype.hb = noopfn;
101 | Gat.prototype.la = noopfn;
102 | Gat.prototype.oa = noopfn;
103 | Gat.prototype.pa = noopfn;
104 | Gat.prototype.u = noopfn;
105 | const gat = new Gat();
106 | window._gat = gat;
107 | //
108 | const gaq = new Gaq();
109 | (function() {
110 | const aa = window._gaq || [];
111 | if ( Array.isArray(aa) ) {
112 | while ( aa[0] ) {
113 | gaq.push(aa.shift());
114 | }
115 | }
116 | })();
117 | window._gaq = gaq.qf = gaq;
118 | })();
119 |
--------------------------------------------------------------------------------
/AD/google-analytics_inpage_linkid.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window._gaq = window._gaq || {
25 | push: function() {
26 | }
27 | };
28 | })();
29 |
--------------------------------------------------------------------------------
/AD/googlesyndication_adsbygoogle.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.adsbygoogle = window.adsbygoogle || {
25 | length: 0,
26 | loaded: true,
27 | push: function Si() {
28 | /*
29 | client = client || google_ad_client || google_ad_client;
30 | slotname = slotname || google_ad_slot;
31 | tag_origin = tag_origin || google_tag_origin
32 | */
33 | this.length += 1;
34 | }
35 | };
36 | const phs = document.querySelectorAll('.adsbygoogle');
37 | const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;';
38 | for ( let i = 0; i < phs.length; i++ ) {
39 | const fr = document.createElement('iframe');
40 | const id = `aswift_${(i+1)}`;
41 | if ( document.querySelector(`iframe#${id}`) !== null ) { continue; }
42 | fr.id = id;
43 | fr.style = css;
44 | const cfr = document.createElement('iframe');
45 | cfr.id = `google_ads_frame${i}`;
46 | fr.appendChild(cfr);
47 | document.body.appendChild(fr);
48 | }
49 | })();
50 |
--------------------------------------------------------------------------------
/AD/googletagmanager_gtm.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const w = window;
27 | w.ga = w.ga || noopfn;
28 | const dl = w.dataLayer;
29 | if ( dl instanceof Object === false ) { return; }
30 | if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
31 | dl.hide.end();
32 | }
33 | if ( typeof dl.push === 'function' ) {
34 | dl.push = function(o) {
35 | if (
36 | o instanceof Object &&
37 | typeof o.eventCallback === 'function'
38 | ) {
39 | setTimeout(o.eventCallback, 1);
40 | }
41 | };
42 | }
43 | })();
44 |
--------------------------------------------------------------------------------
/AD/googletagservices_gpt.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | // https://developers.google.com/doubleclick-gpt/reference
25 | const noopfn = function() {
26 | }.bind();
27 | const noopthisfn = function() {
28 | return this;
29 | };
30 | const noopnullfn = function() {
31 | return null;
32 | };
33 | const nooparrayfn = function() {
34 | return [];
35 | };
36 | const noopstrfn = function() {
37 | return '';
38 | };
39 | //
40 | const companionAdsService = {
41 | addEventListener: noopthisfn,
42 | enableSyncLoading: noopfn,
43 | setRefreshUnfilledSlots: noopfn
44 | };
45 | const contentService = {
46 | addEventListener: noopthisfn,
47 | setContent: noopfn
48 | };
49 | const PassbackSlot = function() {
50 | };
51 | let p = PassbackSlot.prototype;
52 | p.display = noopfn;
53 | p.get = noopnullfn;
54 | p.set = noopthisfn;
55 | p.setClickUrl = noopthisfn;
56 | p.setTagForChildDirectedTreatment = noopthisfn;
57 | p.setTargeting = noopthisfn;
58 | p.updateTargetingFromMap = noopthisfn;
59 | const pubAdsService = {
60 | addEventListener: noopthisfn,
61 | clear: noopfn,
62 | clearCategoryExclusions: noopthisfn,
63 | clearTagForChildDirectedTreatment: noopthisfn,
64 | clearTargeting: noopthisfn,
65 | collapseEmptyDivs: noopfn,
66 | defineOutOfPagePassback: function() { return new PassbackSlot(); },
67 | definePassback: function() { return new PassbackSlot(); },
68 | disableInitialLoad: noopfn,
69 | display: noopfn,
70 | enableAsyncRendering: noopfn,
71 | enableSingleRequest: noopfn,
72 | enableSyncRendering: noopfn,
73 | enableVideoAds: noopfn,
74 | get: noopnullfn,
75 | getAttributeKeys: nooparrayfn,
76 | getTargeting: noopfn,
77 | getTargetingKeys: nooparrayfn,
78 | getSlots: nooparrayfn,
79 | refresh: noopfn,
80 | set: noopthisfn,
81 | setCategoryExclusion: noopthisfn,
82 | setCentering: noopfn,
83 | setCookieOptions: noopthisfn,
84 | setForceSafeFrame: noopthisfn,
85 | setLocation: noopthisfn,
86 | setPublisherProvidedId: noopthisfn,
87 | setRequestNonPersonalizedAds: noopthisfn,
88 | setSafeFrameConfig: noopthisfn,
89 | setTagForChildDirectedTreatment: noopthisfn,
90 | setTargeting: noopthisfn,
91 | setVideoContent: noopthisfn,
92 | updateCorrelator: noopfn
93 | };
94 | const SizeMappingBuilder = function() {
95 | };
96 | p = SizeMappingBuilder.prototype;
97 | p.addSize = noopthisfn;
98 | p.build = noopnullfn;
99 | const Slot = function() {
100 | };
101 | p = Slot.prototype;
102 | p.addService = noopthisfn;
103 | p.clearCategoryExclusions = noopthisfn;
104 | p.clearTargeting = noopthisfn;
105 | p.defineSizeMapping = noopthisfn;
106 | p.get = noopnullfn;
107 | p.getAdUnitPath = nooparrayfn;
108 | p.getAttributeKeys = nooparrayfn;
109 | p.getCategoryExclusions = nooparrayfn;
110 | p.getDomId = noopstrfn;
111 | p.getSlotElementId = noopstrfn;
112 | p.getSlotId = noopthisfn;
113 | p.getTargeting = nooparrayfn;
114 | p.getTargetingKeys = nooparrayfn;
115 | p.set = noopthisfn;
116 | p.setCategoryExclusion = noopthisfn;
117 | p.setClickUrl = noopthisfn;
118 | p.setCollapseEmptyDiv = noopthisfn;
119 | p.setTargeting = noopthisfn;
120 | //
121 | const gpt = window.googletag || {};
122 | const cmd = gpt.cmd || [];
123 | gpt.apiReady = true;
124 | gpt.cmd = [];
125 | gpt.cmd.push = function(a) {
126 | try {
127 | a();
128 | } catch (ex) {
129 | }
130 | return 1;
131 | };
132 | gpt.companionAds = function() { return companionAdsService; };
133 | gpt.content = function() { return contentService; };
134 | gpt.defineOutOfPageSlot = function() { return new Slot(); };
135 | gpt.defineSlot = function() { return new Slot(); };
136 | gpt.destroySlots = noopfn;
137 | gpt.disablePublisherConsole = noopfn;
138 | gpt.display = noopfn;
139 | gpt.enableServices = noopfn;
140 | gpt.getVersion = noopstrfn;
141 | gpt.pubads = function() { return pubAdsService; };
142 | gpt.pubadsReady = true;
143 | gpt.setAdIframeTitle = noopfn;
144 | gpt.sizeMapping = function() { return new SizeMappingBuilder(); };
145 | window.googletag = gpt;
146 | while ( cmd.length !== 0 ) {
147 | gpt.cmd.push(cmd.shift());
148 | }
149 | })();
150 |
--------------------------------------------------------------------------------
/AD/hd-main.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const l = {};
25 | const noopfn = function() {
26 | };
27 | const props = [
28 | "$j","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Nj","Oc","Pc","Pe",
29 | "Qc","Qe","Rc","Re","Ri","Sc","Tc","Uc","Vc","Wc","Wg","Xc","Xg","Yc","Yd",
30 | "ad","ae","bd","bf","cd","dd","ed","ef","ek","fd","fg","fh","fk","gd","hd",
31 | "ig","ij","jd","kd","ke","ld","md","mi","nd","od","oh","pd","pf","qd","rd",
32 | "sd","td","ud","vd","wd","wg","xd","xh","yd","zd",
33 | "$d","$e","$k","Ae","Af","Aj","Be","Ce","De","Ee","Ek","Eo","Ep","Fe","Fo",
34 | "Ge","Gh","Hk","Ie","Ip","Je","Ke","Kk","Kq","Le","Lh","Lk","Me","Mm","Ne",
35 | "Oe","Pe","Qe","Re","Rp","Se","Te","Ue","Ve","Vp","We","Xd","Xe","Yd","Ye",
36 | "Zd","Ze","Zf","Zk","ae","af","al","be","bf","bg","ce","cp","df","di","ee",
37 | "ef","fe","ff","gf","gm","he","hf","ie","je","jf","ke","kf","kl","le","lf",
38 | "lk","mf","mg","mn","nf","oe","of","pe","pf","pg","qe","qf","re","rf","se",
39 | "sf","te","tf","ti","ue","uf","ve","vf","we","wf","wg","wi","xe","ye","yf",
40 | "yk","yl","ze","zf","zk"
41 | ];
42 | for ( let i = 0; i < props.length; i++ ) {
43 | l[props[i]] = noopfn;
44 | }
45 | window.L = window.J = l;
46 | })();
47 |
--------------------------------------------------------------------------------
/AD/ligatus_angular-tag.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | self.adProtect = true;
25 | Object.defineProperties(window, {
26 | uabpdl: { value: true },
27 | uabDetect: { value: true }
28 | });
29 | })();
30 |
--------------------------------------------------------------------------------
/AD/monkeybroker.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | window.pbjs = { libLoaded: true };
27 | const mb = window.MonkeyBroker || {
28 | addAttribute: noopfn,
29 | addSlot: function(a) {
30 | this.slots[a.slot] = {};
31 | },
32 | defineSlot: noopfn,
33 | fillSlot: noopfn,
34 | go: noopfn,
35 | inventoryConditionalPlacement: noopfn,
36 | registerSizeCallback: noopfn,
37 | registerSlotCallback: noopfn,
38 | slots: {},
39 | version: ''
40 | };
41 | mb.regSlotsMap = mb.slots;
42 | window.MonkeyBroker = mb;
43 | })();
44 |
--------------------------------------------------------------------------------
/AD/nano-setInterval-booster.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // Based on uAssets
3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
4 | var z = window.setInterval,
5 | needle = '{{1}}',
6 | delay = parseInt('{{2}}', 10),
7 | boost = parseFloat('{{3}}');
8 | if ( needle === '' || needle === '{{1}}' ) {
9 | needle = '.?';
10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) {
11 | needle = needle.slice(1, -1);
12 | } else {
13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
14 | }
15 | needle = new RegExp(needle);
16 | if ( isNaN(delay) || !isFinite(delay) ) {
17 | delay = 1000;
18 | }
19 | if ( isNaN(boost) || !isFinite(boost) ) {
20 | boost = 0.05;
21 | }
22 | if ( boost < 0.02 ) {
23 | boost = 0.02;
24 | }
25 | if ( boost > 50 ) {
26 | boost = 50;
27 | }
28 | window.setInterval = function(a, b) {
29 | if ( b === delay && needle.test(a.toString()) ) {
30 | b *= boost;
31 | }
32 | return z.apply(this, arguments);
33 | }.bind(window);
34 | })();
--------------------------------------------------------------------------------
/AD/nano-setTimeout-booster.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // Based on uAssets
3 | // License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
4 | var z = window.setTimeout,
5 | needle = '{{1}}',
6 | delay = parseInt('{{2}}', 10),
7 | boost = parseFloat('{{3}}');
8 | if ( needle === '' || needle === '{{1}}' ) {
9 | needle = '.?';
10 | } else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) {
11 | needle = needle.slice(1, -1);
12 | } else {
13 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
14 | }
15 | needle = new RegExp(needle);
16 | if ( isNaN(delay) || !isFinite(delay) ) {
17 | delay = 1000;
18 | }
19 | if ( isNaN(boost) || !isFinite(boost) ) {
20 | boost = 0.05;
21 | }
22 | if ( boost < 0.02 ) {
23 | boost = 0.02;
24 | }
25 | if ( boost > 50 ) {
26 | boost = 50;
27 | }
28 | window.setTimeout = function(a, b) {
29 | if ( b === delay && needle.test(a.toString()) ) {
30 | b *= boost;
31 | }
32 | return z.apply(this, arguments);
33 | }.bind(window);
34 | })();
--------------------------------------------------------------------------------
/AD/nobab.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const signatures = [
25 | [ 'blockadblock' ],
26 | [ 'babasbm' ],
27 | [ /getItem\('babn'\)/ ],
28 | [
29 | 'getElementById',
30 | 'String.fromCharCode',
31 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
32 | 'charAt',
33 | 'DOMContentLoaded',
34 | 'AdBlock',
35 | 'addEventListener',
36 | 'doScroll',
37 | 'fromCharCode',
38 | '<<2|r>>4',
39 | 'sessionStorage',
40 | 'clientWidth',
41 | 'localStorage',
42 | 'Math',
43 | 'random'
44 | ],
45 | ];
46 | const check = function(s) {
47 | for ( let i = 0; i < signatures.length; i++ ) {
48 | const tokens = signatures[i];
49 | let match = 0;
50 | for ( let j = 0; j < tokens.length; j++ ) {
51 | const token = tokens[j];
52 | const pos = token instanceof RegExp
53 | ? s.search(token)
54 | : s.indexOf(token);
55 | if ( pos !== -1 ) { match += 1; }
56 | }
57 | if ( (match / tokens.length) >= 0.8 ) { return true; }
58 | }
59 | return false;
60 | };
61 | window.eval = new Proxy(window.eval, { // jshint ignore: line
62 | apply: function(target, thisArg, args) {
63 | const a = args[0];
64 | if ( typeof a !== 'string' || !check(a) ) {
65 | return target.apply(thisArg, args);
66 | }
67 | if ( document.body ) {
68 | document.body.style.removeProperty('visibility');
69 | }
70 | let el = document.getElementById('babasbmsgx');
71 | if ( el ) {
72 | el.parentNode.removeChild(el);
73 | }
74 | }
75 | });
76 | window.setTimeout = new Proxy(window.setTimeout, {
77 | apply: function(target, thisArg, args) {
78 | const a = args[0];
79 | if (
80 | typeof a !== 'string' ||
81 | /\.bab_elementid.$/.test(a) === false
82 | ) {
83 | return target.apply(thisArg, args);
84 | }
85 | }
86 | });
87 | })();
88 |
--------------------------------------------------------------------------------
/AD/noeval-silent.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.eval = new Proxy(window.eval, { // jshint ignore: line
25 | apply: function() {
26 | }
27 | });
28 | })();
29 |
--------------------------------------------------------------------------------
/AD/noeval.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const log = console.log.bind(console);
25 | window.eval = new Proxy(window.eval, { // jshint ignore: line
26 | apply: function(target, thisArg, args) {
27 | log(`Document tried to eval... ${args[0]}\n`);
28 | }
29 | });
30 | })();
31 |
--------------------------------------------------------------------------------
/AD/nofab.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const Fab = function() {};
27 | Fab.prototype.check = noopfn;
28 | Fab.prototype.clearEvent = noopfn;
29 | Fab.prototype.emitEvent = noopfn;
30 | Fab.prototype.on = function(a, b) {
31 | if ( !a ) { b(); }
32 | return this;
33 | };
34 | Fab.prototype.onDetected = function() {
35 | return this;
36 | };
37 | Fab.prototype.onNotDetected = function(a) {
38 | a();
39 | return this;
40 | };
41 | Fab.prototype.setOption = noopfn;
42 | const fab = new Fab(),
43 | getSetFab = {
44 | get: function() { return Fab; },
45 | set: function() {}
46 | },
47 | getsetfab = {
48 | get: function() { return fab; },
49 | set: function() {}
50 | };
51 | if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; }
52 | else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); }
53 | if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; }
54 | else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); }
55 | if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; }
56 | else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); }
57 | if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; }
58 | else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); }
59 | if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; }
60 | else { Object.defineProperty(window, 'blockAdBlock', getsetfab); }
61 | if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; }
62 | else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); }
63 | })();
64 |
--------------------------------------------------------------------------------
/AD/noop-0.1s.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/noop-0.1s.mp3
--------------------------------------------------------------------------------
/AD/noop-1s.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/AD/noop-1s.mp4
--------------------------------------------------------------------------------
/AD/noop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AD/noop.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | 'use strict';
3 | })();
4 |
--------------------------------------------------------------------------------
/AD/noop.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AD/outbrain-widget.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const noopfn = function() {
25 | };
26 | const obr = {};
27 | const methods = [
28 | 'callClick', 'callLoadMore', 'callRecs', 'callUserZapping',
29 | 'callWhatIs', 'cancelRecommendation', 'cancelRecs', 'closeCard',
30 | 'closeModal', 'closeTbx', 'errorInjectionHandler', 'getCountOfRecs',
31 | 'getStat', 'imageError', 'manualVideoClicked', 'onOdbReturn',
32 | 'onVideoClick', 'pagerLoad', 'recClicked', 'refreshSpecificWidget',
33 | 'refreshWidget', 'reloadWidget', 'researchWidget', 'returnedError',
34 | 'returnedHtmlData', 'returnedIrdData', 'returnedJsonData', 'scrollLoad',
35 | 'showDescription', 'showRecInIframe', 'userZappingMessage', 'zappingFormAction'
36 | ];
37 | obr.extern = {
38 | video: {
39 | getVideoRecs: noopfn,
40 | videoClicked: noopfn
41 | }
42 | };
43 | methods.forEach(function(a) {
44 | obr.extern[a] = noopfn;
45 | });
46 | window.OBR = window.OBR || obr;
47 | })();
48 |
--------------------------------------------------------------------------------
/AD/popads-dummy.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | delete window.PopAds;
25 | delete window.popns;
26 | Object.defineProperties(window, {
27 | PopAds: { value: {} },
28 | popns: { value: {} }
29 | });
30 | })();
31 |
--------------------------------------------------------------------------------
/AD/popads.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | const magic = String.fromCharCode(Date.now() % 26 + 97) +
25 | Math.floor(Math.random() * 982451653 + 982451653).toString(36);
26 | const oe = window.onerror;
27 | window.onerror = function(msg, src, line, col, error) {
28 | if ( typeof msg === 'string' && msg.indexOf(magic) !== -1 ) { return true; }
29 | if ( oe instanceof Function ) {
30 | return oe(msg, src, line, col, error);
31 | }
32 | }.bind();
33 | const throwMagic = function() { throw magic; };
34 | delete window.PopAds;
35 | delete window.popns;
36 | Object.defineProperties(window, {
37 | PopAds: { set: throwMagic },
38 | popns: { set: throwMagic }
39 | });
40 | })();
41 |
--------------------------------------------------------------------------------
/AD/scorecardresearch_beacon.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | window.COMSCORE = {
25 | purge: function() {
26 | window._comscore = [];
27 | },
28 | beacon: function() {
29 | }
30 | };
31 | })();
32 |
--------------------------------------------------------------------------------
/AD/window.open-defuser.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 |
3 | uBlock Origin - a browser extension to block requests.
4 | Copyright (C) 2019-present Raymond Hill
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see {http://www.gnu.org/licenses/}.
18 |
19 | Home: https://github.com/gorhill/uBlock
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | let result = parseInt('{{1}}', 10);
25 | result = isNaN(result) === false && result === 0;
26 | let needle = '{{2}}';
27 | if ( needle === '' || needle === '{{2}}' ) {
28 | needle = '.?';
29 | } else if ( /^\/.+\/$/.test(needle) ) {
30 | needle = needle.slice(1,-1);
31 | } else {
32 | needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
33 | }
34 | needle = new RegExp(needle);
35 | window.open = new Proxy(window.open, {
36 | apply: function(target, thisArg, args) {
37 | const url = args[0];
38 | if ( needle.test(url) === result ) {
39 | return target.apply(thisArg, args);
40 | }
41 | }
42 | });
43 | })();
44 |
--------------------------------------------------------------------------------
/CERT/cert_tr.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | rm -rf ca.cer > /dev/null
4 | cp ca.crt ca.cer
5 | md5=`openssl x509 -subject_hash_old -in ca.cer | head -1`
6 | cp ca.cer $md5.0
7 | openssl x509 -text -in ca.cer -out /dev/null >> $md5.0
8 | rm -rf ca.cer
9 | echo "Success"
--------------------------------------------------------------------------------
/CSS/sizzle_mini.js:
--------------------------------------------------------------------------------
1 | /*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */
2 | !function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window);
3 | //# sourceMappingURL=sizzle.min.map
--------------------------------------------------------------------------------
/H5-/ad_player.js:
--------------------------------------------------------------------------------
1 | var KoolProxy_defineProperty_adv=function(){var p,q=Object.defineProperty;if("function"==typeof WeakMap)p=WeakMap;else{var r=0,t=function(){this.a=(r+=Math.random()).toString()};t.prototype.set=function(a,b){var d=a[this.a];d&&d[0]===a?d[1]=b:q(a,this.a,{value:[a,b],writable:!0});return this};t.prototype.get=function(a){var b;return(b=a[this.a])&&b[0]===a?b[1]:void 0};t.prototype.has=function(a){var b=a[this.a];return b?b[0]===a:!1};p=t}function u(a){this.b=a;this.h=Object.create(null)}function v(a,b,d,e){this.a=a;this.i=b;this.c=d;this.f=e}function w(){this.g=/^([^\\\.]|\\.)*?\./;this.j=/\\(.)/g;this.a=new p}function x(a,b){var d=b.f;if(d&&!("beforeGet"in d||"beforeSet"in d))return z(d);var e={get:function(){var c=b.f;c&&c.beforeGet&&c.beforeGet.call(this,b.a.b);a:if(c=b.g)c=A(c)?c.value:c.get?c.get.call(this):void 0;else{c=b.a.b;if(b.i in c&&(c=B(c),null!==c)){var d=C.call(c,b.i);c=d?d.call(this):c[b.i];break a}c=void 0}(this===b.a.b||D.call(b.a.b,this))&&E(a,c,b.c);return c},set:function(c){if(this===b.a.b||D.call(b.a.b,this)){b.f&&b.f.beforeSet&&(c=b.f.beforeSet.call(this,c,this));var d=b.g;d&&A(d)&&d.value===c?c=!0:(d=F(b,c,this),G(c)&&(c=H(a,c),I(a,c,b.c)),c=d)}else c=F(b,c,this);return c}};d&&J(d,e,K);return e}function I(a,b,d){for(var e in d.h){var c=d.h[e];if(b.h[e]){var h=a,g=b.h[e],k=c;!k.f||g.f||"undefined"===typeof g.a.b||g.g||(g.g=z(k.f));g.c&&k.c&&g.c!==k.c&&I(h,g.c,k.c)}else{g=h=void 0;k=a;var f=b,l=c.i,m="undefined"!==typeof f.b,y=!1;m&&(g=L(f.b,l))&&!g.configurable&&(y=!0,h=f.b[l]);var n=y?H(k,h):new u(c.c.b);I(k,n,c.c);n=new v(f,l,n,c.f);f.h[l]=n;m&&(n.g=g,m=x(k,n),y?E(k,h,c.c):(q(f.b,l,m),g&&A(g)&&(M(m,g.value,f.b),E(k,g.value,c.c))))}}}function E(a,b,d){G(b)&&(b=H(a,b),I(a,b,d))}function F(a,b,d){var e=a.g;if(!e){e=B(a.a.b);if(null!==e&&(e=N.call(e,a.i)))return e.call(d,b);if(!O(a.a.b))return!1;a.g={value:b,configurable:!0,writable:!0,enumerable:!0};return!0}return M(e,b,d)}function H(a,b){var d=a.a.get(b);d||(d=new u(b),a.a.set(b,d));return d}function A(a){return"undefined"!==typeof a.writable}function J(a,b,d){for(var e=0,c=d.length;e 88) {
18 | inHackcss.C(FloatCssList + AdvCssList + Css_style, 'h');
19 | document.body.removeChild(test_hackcss)
20 | } else {
21 | document.body.removeChild(test_hackcss)
22 | }
23 | var white_doc_Style = 'display:block!important;max-height:none!important;max-width:none!important;overflow:auto!important;position:relative;left:auto';
24 | var regexp_true = /ad|hongbao|tuiguang/i;
25 | var regexp_false = /load|head/i;
26 | setTimeout(function(){
27 | if( (regexp_true.test(document.body.className) && !regexp_false.test(document.body.className)) || (regexp_true.test(document.body.id) && !regexp_false.test(document.body.id)) ) {
28 | document.body.style.cssText += white_doc_Style
29 | } else if ( (regexp_true.test(document.documentElement.className) && !regexp_false.test(document.documentElement.className)) || (regexp_true.test(document.documentElement.id) && !regexp_false.test(document.documentElement.id)) ) {
30 | document.documentElement.style.cssText += white_doc_Style
31 | }
32 | }, 10)
33 | }
34 | })
--------------------------------------------------------------------------------
/KP-/Remove_AD.js:
--------------------------------------------------------------------------------
1 | var KoolProxy_defineProperty = function() {
2 | var p, q = Object.defineProperty;
3 | if ("function" == typeof WeakMap) p = WeakMap;
4 | else {
5 | var r = 0,
6 | t = function() {
7 | this.a = (r += Math.random()).toString()
8 | };
9 | t.prototype.set = function(a, b) {
10 | var d = a[this.a];
11 | d && d[0] === a ? d[1] = b : q(a, this.a, {
12 | value: [a, b],
13 | writable: !0
14 | });
15 | return this
16 | };
17 | t.prototype.get = function(a) {
18 | var b;
19 | return (b = a[this.a]) && b[0] === a ? b[1] : void 0
20 | };
21 | t.prototype.has = function(a) {
22 | var b = a[this.a];
23 | return b ? b[0] === a : !1
24 | };
25 | p = t
26 | }
27 |
28 | function u(a) {
29 | this.b = a;
30 | this.h = Object.create(null)
31 | }
32 |
33 | function v(a, b, d, e) {
34 | this.a = a;
35 | this.i = b;
36 | this.c = d;
37 | this.f = e
38 | }
39 |
40 | function w() {
41 | this.g = /^([^\\\.]|\\.)*?\./;
42 | this.j = /\\(.)/g;
43 | this.a = new p
44 | }
45 |
46 | function x(a, b) {
47 | var d = b.f;
48 | if (d && !("beforeGet" in d || "beforeSet" in d)) return z(d);
49 | var e = {
50 | get: function() {
51 | var c = b.f;
52 | c && c.beforeGet && c.beforeGet.call(this, b.a.b);
53 | a: if (c = b.g) c = A(c) ? c.value : c.get ? c.get.call(this) : void 0;
54 | else {
55 | c = b.a.b;
56 | if (b.i in c && (c = B(c), null !== c)) {
57 | var d = C.call(c, b.i);
58 | c = d ? d.call(this) : c[b.i];
59 | break a
60 | }
61 | c = void 0
62 | }(this === b.a.b || D.call(b.a.b, this)) && E(a, c, b.c);
63 | return c
64 | },
65 | set: function(c) {
66 | if (this === b.a.b || D.call(b.a.b, this)) {
67 | b.f && b.f.beforeSet && (c = b.f.beforeSet.call(this, c, this));
68 | var d = b.g;
69 | d && A(d) && d.value === c ? c = !0 : (d = F(b, c, this), G(c) && (c = H(a, c), I(a, c, b.c)), c = d)
70 | } else c = F(b, c, this);
71 | return c
72 | }
73 | };
74 | d && J(d, e, K);
75 | return e
76 | }
77 |
78 | function I(a, b, d) {
79 | for (var e in d.h) {
80 | var c = d.h[e];
81 | if (b.h[e]) {
82 | var h = a,
83 | g = b.h[e],
84 | k = c;
85 | !k.f || g.f || "undefined" === typeof g.a.b || g.g || (g.g = z(k.f));
86 | g.c && k.c && g.c !== k.c && I(h, g.c, k.c)
87 | } else {
88 | g = h = void 0;
89 | k = a;
90 | var f = b,
91 | l = c.i,
92 | m = "undefined" !== typeof f.b,
93 | y = !1;
94 | m && (g = L(f.b, l)) && !g.configurable && (y = !0, h = f.b[l]);
95 | var n = y ? H(k, h) : new u(c.c.b);
96 | I(k, n, c.c);
97 | n = new v(f, l, n, c.f);
98 | f.h[l] = n;
99 | m && (n.g = g, m = x(k, n), y ? E(k, h, c.c) : (q(f.b, l, m), g && A(g) && (M(m, g.value, f.b), E(k, g.value, c.c))))
100 | }
101 | }
102 | }
103 |
104 | function E(a, b, d) {
105 | G(b) && (b = H(a, b), I(a, b, d))
106 | }
107 |
108 | function F(a, b, d) {
109 | var e = a.g;
110 | if (!e) {
111 | e = B(a.a.b);
112 | if (null !== e && (e = N.call(e, a.i))) return e.call(d, b);
113 | if (!O(a.a.b)) return !1;
114 | a.g = {
115 | value: b,
116 | configurable: !0,
117 | writable: !0,
118 | enumerable: !0
119 | };
120 | return !0
121 | }
122 | return M(e, b, d)
123 | }
124 |
125 | function H(a, b) {
126 | var d = a.a.get(b);
127 | d || (d = new u(b), a.a.set(b, d));
128 | return d
129 | }
130 |
131 | function A(a) {
132 | return "undefined" !== typeof a.writable
133 | }
134 |
135 | function J(a, b, d) {
136 | for (var e = 0, c = d.length; e < c; e++) {
137 | var h = d[e];
138 | h in a && (b[h] = a[h])
139 | }
140 | }
141 |
142 | function z(a) {
143 | if (a) {
144 | var b = {};
145 | J(a, b, P);
146 | return b
147 | }
148 | }
149 |
150 | function M(a, b, d) {
151 | if (A(a)) return a.writable ? (a.value = b, !0) : !1;
152 | if (!a.set) return !1;
153 | a.set.call(d, b);
154 | return !0
155 | }
156 | var P = "configurable enumerable value get set writable".split(" "),
157 | K = P.slice(0, 2),
158 | L = Object.getOwnPropertyDescriptor,
159 | O = Object.isExtensible,
160 | B = Object.getPrototypeOf,
161 | D = Object.prototype.isPrototypeOf,
162 | C = Object.prototype.__lookupGetter__ || function(a) {
163 | return (a = Q(this, a)) && a.get ? a.get : void 0
164 | },
165 | N = Object.prototype.__lookupSetter__ || function(a) {
166 | return (a = Q(this, a)) && a.set ? a.set : void 0
167 | };
168 |
169 | function Q(a, b) {
170 | if (b in a) {
171 | for (; !w.hasOwnProperty.call(a, b);) a = B(a);
172 | return L(a, b)
173 | }
174 | }
175 |
176 | function G(a) {
177 | var b = typeof a;
178 | return "function" === b || "object" === b && null !== a ? !0 : !1
179 | }
180 | var R;
181 | return function(a, b, d) {
182 | R || (R = new w);
183 | var e = R;
184 | d = d || window;
185 | var c = new u;
186 | a += ".";
187 | var h = c || new u;
188 | for (var g = e.g, k = e.j, f, l, m; a;) {
189 | f = g.exec(a);
190 | if (null === f) throw 1;
191 | f = f[0].length;
192 | l = a.slice(0, f - 1).replace(k, "$1");
193 | a = a.slice(f);
194 | (f = h.h[l]) ? m = f.c: (m = new u, f = new v(h, l, m), h.h[l] = f);
195 | h = m
196 | }
197 | if (!f) throw 1;
198 | a = f;
199 | a.f = b;
200 | E(e, d, c)
201 | };
202 | }();
--------------------------------------------------------------------------------
/KP-/YouTube_ skip.js:
--------------------------------------------------------------------------------
1 | var WL_YTASP = true;
2 |
3 | const observer = new MutationObserver((mutations) => {
4 | mutations.forEach((mutation) => {
5 | if (document.contains(document.getElementsByClassName('ytp-ad-skip-button ytp-button')[0])) {
6 | document.getElementsByClassName('ytp-ad-skip-button ytp-button')[0].click();
7 | }
8 | if (document.contains(document.getElementsByClassName('ytp-ad-overlay-close-button')[0])) {
9 | document.getElementsByClassName('ytp-ad-overlay-close-button')[0].click();
10 | }
11 | document.getElementsByTagName("video")[0].playbackRate = pbs.value;
12 | });
13 | });
14 | const config = {childList:true,subtree:true};
15 | observer.observe(document.body, config);
16 |
--------------------------------------------------------------------------------
/KP-/baidu_ad.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name 百度广告(首尾推广及右侧广告)清理
3 | // @name:en Kill Baidu AD
4 | // @name:zh-TW 百度廣告(首尾推廣及右側廣告)清理
5 | // @namespace hoothin
6 | // @version 0.86
7 | // @description 彻底清理百度搜索(www.baidu.com)结果首尾的推广广告、二次顽固广告与右侧广告,并防止反复
8 | // @description:en Just Kill Baidu AD
9 | // @description:zh-TW 徹底清理百度搜索(www.baidu.com)結果首尾的推廣廣告、二次頑固廣告與右側廣告,並防止反復
10 | // @author hoothin
11 | // @include http*://www.baidu.com/*
12 | // @include http*://m.baidu.com/*
13 | // @grant none
14 | // @run-at document-start
15 | // @license MIT License
16 | // @compatible chrome 测试通过
17 | // @compatible firefox 测试通过
18 | // @compatible opera 未测试
19 | // @compatible safari 未测试
20 | // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=rixixi@sina.com&item_name=Greasy+Fork+donation
21 | // @contributionAmount 1
22 | // ==/UserScript==
23 |
24 | (function() {
25 | 'use strict';
26 | var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
27 | var observer = new MutationObserver(function(records){
28 | clearAD();
29 | });
30 | var option = {
31 | 'childList': true,
32 | 'subtree': true
33 | };
34 | document.onreadystatechange = function(){
35 | if(document.readyState == "interactive"){
36 | observer.observe(document.body, option);
37 | }
38 | };
39 |
40 | function clearAD(){
41 | var mAds=document.querySelectorAll(".ec_wise_ad,.ec_youxuan_card"),i;
42 | for(i=0;idiv,#content_left>table");
47 | for(i=0;ispan");
54 | if(span && span.innerHTML=="广告"){
55 | item.remove();
56 | }
57 | [].forEach.call(item.querySelectorAll("a>span"),function(span){
58 | if(span && (span.innerHTML=="广告" || span.getAttribute("data-tuiguang"))){
59 | item.remove();
60 | }
61 | });
62 | }
63 | }
64 |
65 | var eb = document.querySelectorAll("#content_right>table>tbody>tr>td>div");
66 | for(i=0;i{clearAD();},2000);
74 | })();
--------------------------------------------------------------------------------
/KP-/disable_qq_beacon.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | "use strict";
3 | // 视频网站有所不同
4 | const Interceptor = {
5 | image: {
6 | anti_createElement() {
7 | document.createElement = new Proxy(document.createElement, {
8 | apply(...args) {
9 | const node = Reflect.apply(...args);
10 | if (args.length === 3 && args[2][0] === "img")
11 | Object.defineProperty(node, "src", { set(v) {} });
12 | return node;
13 | },
14 | });
15 | },
16 | anti_construct() {
17 | window.Image = new Proxy(window.Image, {
18 | construct(target, args) {
19 | let img = new target(...args);
20 | if (args.length === 2 && args[1] === 1 && args[0] === 1)
21 | Object.defineProperty(img, "src", { set(v) {} });
22 | return img;
23 | },
24 | });
25 | },
26 | initial() {
27 | this.anti_construct();
28 | this.anti_createElement();
29 | },
30 | },
31 | object() {
32 | const trap = (v) => {
33 | Object.defineProperties(v.prototype, {
34 | fail: {
35 | value: () => {
36 | throw new Error("fuck tencent");
37 | },
38 | },
39 | action: {
40 | value: () => null,
41 | },
42 | check: {
43 | value: () => null,
44 | },
45 | });
46 | };
47 | let o = null;
48 | Object.defineProperty(window, "Beacon", {
49 | set(a) {
50 | o = a;
51 | trap(a);
52 | },
53 | get() {
54 | return o;
55 | },
56 | });
57 | },
58 | anti_interval() {
59 | window.setInterval = new Proxy(window.setInterval, {
60 | apply(...args) {
61 | if (args.length === 3) args[2][1] = 10000000;
62 | Reflect.apply(...args);
63 | },
64 | });
65 | },
66 | network: {
67 | anti_fecth() {
68 | const fetch = window.fetch;
69 | window.fetch = (...args) =>
70 | (async (args) => {
71 | const url = args[0];
72 | const ad_list = ["trace", "beacon"];
73 | if (ad_list.some((e) => url.includes(e)))
74 | throw new SyntaxError("fuck tencent");
75 | else return await fetch(...args);
76 | })(args);
77 | },
78 | anti_xmlHTTP() {
79 | window.XMLHttpRequest = class extends window.XMLHttpRequest {
80 | open(...args) {
81 | const url = args[1];
82 | const ad_list = ["trace", "beacon"];
83 | if (ad_list.some((e) => url.includes(e)))
84 | throw new SyntaxError("fuck tencent");
85 | else return super.open(...args);
86 | }
87 | };
88 | },
89 | },
90 | start() {
91 | this.object();
92 | this.image.initial();
93 | if (location.hostname === "v.qq.com") this.network.anti_xmlHTTP();
94 | else {
95 | this.anti_interval();
96 | this.network.anti_fecth();
97 | this.network.anti_xmlHTTP();
98 | }
99 | },
100 | };
101 | Interceptor.start();
102 | })();
103 |
--------------------------------------------------------------------------------
/KP-/fuck.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/KP-/fuck.ts
--------------------------------------------------------------------------------
/KP-/hide_w.js:
--------------------------------------------------------------------------------
1 | //全局白名单
2 | window.$$All_W = ["www.gaoqingkong.com","www.76mao.com","www.rs05.com","www.ckck.vip","gaoqing.la","static.cnbetacdn.com","duomai.com","tiexue.net"];
3 |
4 | //CSP白名单
5 | window.$$CSP_W = ["hao.centbrowser.cn"];
6 |
7 | //疑似广告白名单
8 | window.$$RAI_W = ["hao.centbrowser.cn","lanzous.com"];
9 |
10 | //全局广告白名单
11 | window.$$ADV_W = ["hao.centbrowser.cn","static.cnbetacdn.com","autohome.com.cn"];
12 |
13 | //阻止document.write加载外部脚本白名单
14 | window.$$WRS_W = ["hao.centbrowser.cn","www.imeiju.cc","duomai.com","51cto.com"];
15 |
16 | //阻止非同源弹窗白名单
17 | window.$$WWO_W = ["www.76mao.com","hao.centbrowser.cn"];
18 |
19 | //浮动元素白名单
20 | window.$$Float_W = ["hao.centbrowser.cn"];
--------------------------------------------------------------------------------
/KP-/iqiyi.js:
--------------------------------------------------------------------------------
1 | window.yiclear_onLoad=function(func) { if (window.addEventListener) { window.addEventListener('DOMContentLoaded', func); } };
2 | yiclear_onLoad(function(){YiClear_defineProperty('QiyiPlayerLoader.manager.players.flashbox.package.ad.adMap',{get:function(){return;}});})
3 | yiclear_onLoad(function(){var _setinterval=window.setInterval;window.setInterval=function(a,b){var str=a.toString();if(str.indexOf("timerComplete")>0){return _setinterval(a,1)}return _setinterval(a,b)};});
--------------------------------------------------------------------------------
/KP-/null.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/KP-/null.jpg
--------------------------------------------------------------------------------
/KP-/sizzle_mini:
--------------------------------------------------------------------------------
1 | /*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */
2 | !function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window);
3 | //# sourceMappingURL=sizzle.min.map
--------------------------------------------------------------------------------
/KP-/skip_video_h5.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @author http://wwww.koolproxy.com
3 | // @match *://*.iqiyi.com/*
4 | // @match *://*.youku.com/*
5 | // @match *://v.qq.com/*
6 | // @grant none
7 | // @description auto skip video ads!
8 | // ==/UserScript==
9 |
10 | (function() {
11 | 'use strict'
12 | let method1 = function () {
13 | window._setTimeout = window.setTimeout
14 | window.setTimeout = function (handler, timeout, ...arg) {
15 | window._setTimeout(handler, timeout / 30, ...arg)
16 | }
17 | }
18 | let method2 = function () {
19 | window._setInterval = window.setInterval
20 | window.setInterval = function (handler, timeout, ...arg) {
21 | window._setInterval(handler, timeout / 30, ...arg)
22 | }
23 | }
24 | let method3 = function () {
25 | window.rate = 0
26 | window.Date.now = ()=>{return new window.Date().getTime() + (window.rate += 10000)}
27 | setInterval(()=>{window.rate = 0}, 600000)
28 | }
29 | let youku = function () {
30 | window.onload = function () {
31 | if (!document.querySelectorAll('video')[1]) {
32 | setInterval(()=>{document.querySelectorAll('video')[1].playbackRate = 16},100)
33 | } else {
34 | method1()
35 | }
36 | }
37 | }
38 | let qq = function () {
39 | setInterval(()=>{
40 | if (document.querySelectorAll('video')[0].status == 'IDLE') {
41 | setInterval(()=>{
42 | document.querySelectorAll('video')[2].playbackRate = 16
43 | document.querySelectorAll('video')[3].playbackRate = 16
44 | },100)
45 | }
46 | },100)
47 | }
48 | let host = location.host
49 | switch (host) {
50 | case 'v.youku.com':
51 | youku()
52 | break
53 | case 'v.qq.com' :
54 | qq()
55 | break
56 | case 'www.iqiyi.com' :
57 | method3()
58 | break
59 | default :
60 | break
61 | }
62 | })();
--------------------------------------------------------------------------------
/KP-/test.txt:
--------------------------------------------------------------------------------
1 | it's ok
--------------------------------------------------------------------------------
/KP-/youku_skip_ad.js:
--------------------------------------------------------------------------------
1 | var YiClear_defineProperty=function(){var p,q=Object.defineProperty;if("function"==typeof WeakMap)p=WeakMap;else{var r=0,t=function(){this.a=(r+=Math.random()).toString()};t.prototype.set=function(a,b){var d=a[this.a];d&&d[0]===a?d[1]=b:q(a,this.a,{value:[a,b],writable:!0});return this};t.prototype.get=function(a){var b;return(b=a[this.a])&&b[0]===a?b[1]:void 0};t.prototype.has=function(a){var b=a[this.a];return b?b[0]===a:!1};p=t}function u(a){this.b=a;this.h=Object.create(null)}function v(a,b,d,e){this.a=a;this.i=b;this.c=d;this.f=e}function w(){this.g=/^([^\\\.]|\\.)*?\./;this.j=/\\(.)/g;this.a=new p}function x(a,b){var d=b.f;if(d&&!("beforeGet"in d||"beforeSet"in d))return z(d);var e={get:function(){var c=b.f;c&&c.beforeGet&&c.beforeGet.call(this,b.a.b);a:if(c=b.g)c=A(c)?c.value:c.get?c.get.call(this):void 0;else{c=b.a.b;if(b.i in c&&(c=B(c),null!==c)){var d=C.call(c,b.i);c=d?d.call(this):c[b.i];break a}c=void 0}(this===b.a.b||D.call(b.a.b,this))&&E(a,c,b.c);return c},set:function(c){if(this===b.a.b||D.call(b.a.b,this)){b.f&&b.f.beforeSet&&(c=b.f.beforeSet.call(this,c,this));var d=b.g;d&&A(d)&&d.value===c?c=!0:(d=F(b,c,this),G(c)&&(c=H(a,c),I(a,c,b.c)),c=d)}else c=F(b,c,this);return c}};d&&J(d,e,K);return e}function I(a,b,d){for(var e in d.h){var c=d.h[e];if(b.h[e]){var h=a,g=b.h[e],k=c;!k.f||g.f||"undefined"===typeof g.a.b||g.g||(g.g=z(k.f));g.c&&k.c&&g.c!==k.c&&I(h,g.c,k.c)}else{g=h=void 0;k=a;var f=b,l=c.i,m="undefined"!==typeof f.b,y=!1;m&&(g=L(f.b,l))&&!g.configurable&&(y=!0,h=f.b[l]);var n=y?H(k,h):new u(c.c.b);I(k,n,c.c);n=new v(f,l,n,c.f);f.h[l]=n;m&&(n.g=g,m=x(k,n),y?E(k,h,c.c):(q(f.b,l,m),g&&A(g)&&(M(m,g.value,f.b),E(k,g.value,c.c))))}}}function E(a,b,d){G(b)&&(b=H(a,b),I(a,b,d))}function F(a,b,d){var e=a.g;if(!e){e=B(a.a.b);if(null!==e&&(e=N.call(e,a.i)))return e.call(d,b);if(!O(a.a.b))return!1;a.g={value:b,configurable:!0,writable:!0,enumerable:!0};return!0}return M(e,b,d)}function H(a,b){var d=a.a.get(b);d||(d=new u(b),a.a.set(b,d));return d}function A(a){return"undefined"!==typeof a.writable}function J(a,b,d){for(var e=0,c=d.length;e |
|
|
8 |
9 | ❤❤❤
10 |
11 | ## koolshare改版固件安装KoolProxy列表
12 |
13 | | 软件中心 | arm380软件中心 | arm384软件中心 | hnd/axhnd软件中心 | 软路由-酷软 |
14 | | :---------: | :----------------------------------------------------------: | :---------------------------------------------: | :----------------------------------------------------------: | :-----------------------------------------------: |
15 | | 项目名称 | [koolshare.github.io](https://github.com/koolshare/koolshare.github.io) | [armsoft](https://github.com/koolshare/armsoft) | [rogsoft](https://github.com/koolshare/rogsoft) | [ledesoft](https://github.com/koolshare/ledesoft) |
16 | | 适用架构 | armv7l | armv7l | armv8(aarch64) | x64 |
17 | | 平台 | arm | arm | hnd/axhnd | by fw867 |
18 | | linux内核 | 2.6.36.4 | 2.6.36.4 | 4.1.27/4.1.51 | 很新 |
19 | | CPU | bcm4708/9 | bcm4708/9 | bcm4906/8 | intel/AMD |
20 | | 固件版本 | koolshare 梅林**380** | koolshare 梅林**384** | koolshare 梅林/官改 | OpenWRT/LEDE |
21 | | 软件中心api | **1.0** 代 | **1.5** 代 | **1.5** 代 | **1.5** 代 |
22 | | 安装包下载地址 | [koolproxy_arm380.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_arm380.tar.gz) | [koolproxy_arm384.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_arm384.tar.gz) | [koolproxy_hnd.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_hnd.tar.gz) [koolproxy_AX32.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_AX32.tar.gz)| [koolproxy_X86_64.tar.gz](https://cdn.jsdelivr.net/gh/houzi-/CDN/binary/install/koolproxy_X86.tar.gz) |
23 |
24 | ### 捐助者名单
25 |
26 | (如果这里还没有你的名字?请发邮件至 wojiaolinmu008@gmail.com 告诉我)
27 |
28 | | 捐助日期 | 捐助者 | 捐助金额 |
29 | | --- | --- | --- |
30 | | 2020-09-04 | *秦 | 50.00 |
31 | | 2020-09-06 | sadog | 66.66 |
32 | | 2020-09-17 | 天堂de隔壁 | 66.60 |
33 | | 2020-09-18 | 聖 | 10.00 |
34 | | 2020-10-22 | *吧 | 10.00 |
35 | | 2020-11-12 | *蓝 | 25.00 |
36 | | 2021-03-13 | *成 | 10.00 |
37 | | 2021-03-22 | *风 | 21.00 |
38 | | 2021-12-31 | *王 | 30.00 |
39 |
40 | 最后,我再次对您致以我最最最最最诚挚的感谢!
41 |
42 | 
43 | 
44 | 
45 |
--------------------------------------------------------------------------------
/backup/daily.txt.md5:
--------------------------------------------------------------------------------
1 | e1ae4db6a08905a906cfaa1fb0088419
2 |
--------------------------------------------------------------------------------
/backup/koolproxy.txt.md5:
--------------------------------------------------------------------------------
1 | 840fc2c571e69531a52a3af25601b675
2 |
--------------------------------------------------------------------------------
/backup/kp.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/backup/kp.dat
--------------------------------------------------------------------------------
/backup/kp.dat.md5:
--------------------------------------------------------------------------------
1 | 742d507e87a77825498fc426308b7472
2 |
--------------------------------------------------------------------------------
/backup/test.txt:
--------------------------------------------------------------------------------
1 | hello!
2 |
--------------------------------------------------------------------------------
/binary/KoolProxy_Readme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/KoolProxy_Readme
--------------------------------------------------------------------------------
/binary/KoolProxy_Readme.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/KoolProxy_Readme.docx
--------------------------------------------------------------------------------
/binary/install/koolproxy_AX32.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_AX32.tar.gz
--------------------------------------------------------------------------------
/binary/install/koolproxy_X86.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_X86.tar.gz
--------------------------------------------------------------------------------
/binary/install/koolproxy_arm380.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_arm380.tar.gz
--------------------------------------------------------------------------------
/binary/install/koolproxy_arm384.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_arm384.tar.gz
--------------------------------------------------------------------------------
/binary/install/koolproxy_hnd.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/install/koolproxy_hnd.tar.gz
--------------------------------------------------------------------------------
/binary/v3.8.5/aarch64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/aarch64
--------------------------------------------------------------------------------
/binary/v3.8.5/arm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/arm
--------------------------------------------------------------------------------
/binary/v3.8.5/mips:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/mips
--------------------------------------------------------------------------------
/binary/v3.8.5/mipsel:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/mipsel
--------------------------------------------------------------------------------
/binary/v3.8.5/x86:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/x86
--------------------------------------------------------------------------------
/binary/v3.8.5/x86_64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/binary/v3.8.5/x86_64
--------------------------------------------------------------------------------
/daily.txt:
--------------------------------------------------------------------------------
1 | !x -----------------------------------------------------------------------------------------------------------------
2 | !x -----[KoolProxy 3.8.5]
3 | !x -----Thanks: From lvba Group
4 | !x -----Thanks for help:
5 | !x -----------------------------------------------------------------------------------------------------------------
6 |
--------------------------------------------------------------------------------
/daily.txt.md5:
--------------------------------------------------------------------------------
1 | d525cd338ad0bc932f3eb2bbd85be3ba
2 |
--------------------------------------------------------------------------------
/docs/image/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/80300055-e9de6b00-87cb-11ea-9924-2bf02cdd4645.gif
--------------------------------------------------------------------------------
/docs/image/alipay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/alipay.jpg
--------------------------------------------------------------------------------
/docs/image/koolproxy_rules.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/koolproxy_rules.jpg
--------------------------------------------------------------------------------
/docs/image/wechat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/docs/image/wechat.jpg
--------------------------------------------------------------------------------
/koolproxy.conf:
--------------------------------------------------------------------------------
1 | address=/govjiangsu.cn/127.0.0.1
2 |
--------------------------------------------------------------------------------
/koolproxy.conf.md5:
--------------------------------------------------------------------------------
1 | 9a3a87bf0dcd765463151c92f8e4cd1e
2 |
--------------------------------------------------------------------------------
/koolproxy.txt:
--------------------------------------------------------------------------------
1 | !x -----------------------------------------------------------------------------------------------------------------
2 | !x -----[KoolProxy 3.8.5]
3 | !x -----update[rules]: 2021-04-04 18:30
4 | !x -----update[video]: 2021-04-04 20:00
5 | !x -----Thanks: From lvba Rule Group
6 | !x -----Thanks for help:
7 | !x -----------------------------------------------------------------------------------------------------------------
8 | !x
30 | !x -----------------------------------------------------------------------------------------------------------------
31 | !x --------------------------------------------- white rules -------------------------------------------------------
32 |
--------------------------------------------------------------------------------
/koolproxy.txt.md5:
--------------------------------------------------------------------------------
1 | cfce03c649aae7813cf8d7f296df988d
2 |
--------------------------------------------------------------------------------
/kp.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/kp.dat
--------------------------------------------------------------------------------
/kp.dat.md5:
--------------------------------------------------------------------------------
1 | e068116c27640e3b2f3d0731751f467e
2 |
--------------------------------------------------------------------------------
/md5.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | rm -rf *.md5 >/dev/null 2>&1
4 |
5 | make(){
6 | [ -f "daily.txt" ] && md5sum daily.txt > daily.txt.md5
7 | [ -f "koolproxy.txt" ] && md5sum koolproxy.txt > koolproxy.txt.md5
8 | [ -f "kp.dat" ] && md5sum kp.dat > kp.dat.md5
9 | }
10 |
11 | make >/dev/null 2>&1
12 |
13 | sed -ri 's/( .*\.txt| .*kp\.dat)//' *.md5
--------------------------------------------------------------------------------
/swf/17173.in.Live.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.in.Live.swf
--------------------------------------------------------------------------------
/swf/17173.in.Vod.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.in.Vod.swf
--------------------------------------------------------------------------------
/swf/17173.out.Live.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.out.Live.swf
--------------------------------------------------------------------------------
/swf/17173.out.Vod.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173.out.Vod.swf
--------------------------------------------------------------------------------
/swf/17173_in_20150522.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173_in_20150522.swf
--------------------------------------------------------------------------------
/swf/17173_out_20150522.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/17173_out_20150522.swf
--------------------------------------------------------------------------------
/swf/iqiyi5.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/iqiyi5.swf
--------------------------------------------------------------------------------
/swf/ku6-p.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/ku6-p.swf
--------------------------------------------------------------------------------
/swf/ku6.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/swf/ku6.swf
--------------------------------------------------------------------------------
/swf/test.txt:
--------------------------------------------------------------------------------
1 | it's ok
--------------------------------------------------------------------------------
/tool/Router_Dog.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/Router_Dog.apk
--------------------------------------------------------------------------------
/tool/koolproxy_ipset.conf.md:
--------------------------------------------------------------------------------
1 | c10a967e98c24238623226c1b5693200
2 |
--------------------------------------------------------------------------------
/tool/koolproxy_ipset_ip.list:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tool/koolproxy_ipset_ip.md:
--------------------------------------------------------------------------------
1 | 68b329da9893e34099c7d8ad5cb9c940
2 |
--------------------------------------------------------------------------------
/tool/koolproxy_white_ip_update.list:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tool/koolproxy_white_ip_update.md:
--------------------------------------------------------------------------------
1 | 68b329da9893e34099c7d8ad5cb9c940
2 |
--------------------------------------------------------------------------------
/tool/koolproxy_white_update.conf:
--------------------------------------------------------------------------------
1 | #for koolproxy white_domain
2 | ipset=/.122.gov.cn/white_koolproxy
3 | ipset=/.paopao.iqiyi.com/white_koolproxy
4 | ipset=/.pcw-data.video.iqiyi.com/white_koolproxy
5 | ipset=/.itv.ptqy.gitv.tv/white_koolproxy
6 | ipset=/.passport.iqiyi.com/white_koolproxy
7 |
--------------------------------------------------------------------------------
/tool/koolproxy_white_update.conf.md:
--------------------------------------------------------------------------------
1 | 113dc9f7eedbaa41c847504080113be4
2 |
--------------------------------------------------------------------------------
/tool/node_modules.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/node_modules.tar.gz
--------------------------------------------------------------------------------
/tool/packages/node-npm_v12.19.0-1_x86_64.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/packages/node-npm_v12.19.0-1_x86_64.ipk
--------------------------------------------------------------------------------
/tool/packages/node_v12.19.0-1_x86_64.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/packages/node_v12.19.0-1_x86_64.ipk
--------------------------------------------------------------------------------
/tool/packages/signdog.md5:
--------------------------------------------------------------------------------
1 | 9a9400ef0cc3f5389e13f01d0de982f8
--------------------------------------------------------------------------------
/tool/signdog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/signdog
--------------------------------------------------------------------------------
/tool/signdog.md5:
--------------------------------------------------------------------------------
1 | 176fb272aa4055ee05c793918ed12e1f
2 |
--------------------------------------------------------------------------------
/tool/upx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/tool/upx
--------------------------------------------------------------------------------
/upload_rules.txt:
--------------------------------------------------------------------------------
1 | !!!!!!!!!! This a test page! !!!!!!!!!!!!
2 | |https://www.huya.com/###chatRoom>div.room-gg-chat,.sidebar-banner
3 | |https://a.msstatic.com/huya/main3/widget/roomGgTop/roomGgTop_11d6c.js
4 | |https://www.meijutt.tv/$s@@@
5 | !威峰论坛已经不用bbs
6 | |https://www.feng.com/forum##.ad-list-item,.ad-aside
7 | !这网站多了一个广告
8 | |https://www.landiannews.com/##.ad
9 | |https://btbtt.biz/##[class="width imgs_1"],[id="wrapper_left_bg"],[id="wrapper_right_bg"]
10 | |https://btbtt.biz/view/image/QT_QT.jpg
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/user.txt:
--------------------------------------------------------------------------------
1 | ! ******************************* koolproxy 自定义过滤语法简表 *******************************
2 | ! ------------------------ 规则基于adblock规则,并进行了语法部分的扩展 ------------------------
3 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要
4 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述
5 | ! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,例如:@@||taobao.com
6 | ! "@@@@" 超级白名单,比白名单符拥有更高的优先级,主要用于放行https网站,例如:@@@@||https://taobao.com
7 | ! ------------------------------------------------------------------------------------------
8 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。
9 | ! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。
10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。
11 | ! "$image" 为识别图片变量,搭配规则使用作用于屏蔽图片,例如:||baidu.com/cdn/adv_$image
12 | ! "$script" 为识别脚本变量,搭配规则使用作用于屏蔽脚本,例如:||baidu.com/cdn/adv_$script
13 | ! "$c" 为解除跨域访问,例如:|http://nl-rcd.iqiyi.com/crossdomain.xml$c
14 | ! "$agent" 为限定浏览器过滤的标识头,例如:|http://www.baidu/adv/xxx.jpg$agent=Chrome,~Firefox
15 | ! "$domain" 为指定网站过滤,例如:|http://*/adv/xxx.jpg$domain=~baidu.com|qq.com
16 | ! 注:通配符仅在 url 规则中支持,html 规则中不支持
17 | ! ------------------------------------------------------------------------------------------
18 | ! "|" 为管线符号,来表示地址的最前端或最末端
19 | ! "||" 为子域通配符,方便匹配主域名下的所有子域
20 | ! 用法及例子如下:(以下等号表示等价于)
21 | ! ||xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad*
22 | ! ||http://xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad*
23 | ! ||https://xx.com/ad = https://xx.com/ad* || https://*.xx.com/ad*
24 | ! |xx.com/ad = http://xx.com/ad*
25 | ! |http://xx.com/ad = http://xx.com/ad*
26 | ! |https://xx.com/ad = https://xx.com/ad*
27 | ! ad = http://*ad*
28 | ! http://ad = http://*ad*
29 | ! https://ad = 不支持,需要指定域名,如下例
30 | ! https://xx.com/ad = |https://xx.com/ad = https://xx.com/ad*
31 | ! [同时可以表示两个以及两个以上的域名]如下例子
32 | ! https://xx.ad.com 和 https://xxx.xx.ad.com = ||https://ad.com (注意! 由于https的原因使用要非常谨慎,不可以大范围使用)
33 | ! ------------------------------------------------------------------------------------------
34 | ! 兼容adblock规则的html规则语法,例如:
35 | ! fulldls.com,torrentzap.com##.tp_reccomend_banner
36 | ! 但是推荐写成以下标准写法:
37 | ! ||fulldls.com##.tp_reccomend_banner
38 | ! ||torrentzap.com##.tp_reccomend_banner
39 | ! 如果一个网站html规则有多条,可以合并为这样:
40 | ! ||torrentzap.com##.tp_reccomend_banner,.ad_top,[class="ad_right"]......
41 | ! ------------------------------------------------------------------------------------------
42 | ! 文本替换语法:$s@匹配内容@替换内容@
43 | ! 文本替换例子:|http://cdn.pcbeta.js.inimc.com/data/cache/common.js?$s@old@new@
44 | ! 重定向语法:$r@匹配内容@替换内容@
45 | ! 重定向例子:|http://koolshare.cn$r@http://koolshare.cn/*@http://www.qq.com@
46 | ! 非标准端口过滤语法:||abc.com:8081/ad.html或者|http://adb.com:8081/
47 | ! 注:文本替换语法及重定向语法中的匹配内容不仅支持通配符功能,而且额外支持以下功能
48 | ! 支持通配符 * 和 ? 表示单个字符
49 | ! 支持全正则匹配,/正则内容/ 表示应用正则匹配
50 | ! 正则替换:替换内容支持 $1 $2 这样的符号
51 | ! 普通替换:替换内容支持 * 这样的符号,表示把命中的内容复制到替换的内容。(类似 $1 $2,但是 * 号会自动计算数字)
52 | ! ------------------------------------------------------------------------------------------
53 | ! 未来将逐步添加相关语法,兼容adblock puls的更多语法,敬请期待。
54 | ! *****************************************************************************************
55 |
--------------------------------------------------------------------------------
/video_fuck/blank.m4v:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/blank.m4v
--------------------------------------------------------------------------------
/video_fuck/fuck.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/fuck.mp4
--------------------------------------------------------------------------------
/video_fuck/fuck_II.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/fuck_II.mp4
--------------------------------------------------------------------------------
/video_fuck/null.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/houzi-/CDN/81438fe38fe8f980606eea1895898ef80f3d1517/video_fuck/null.mp3
--------------------------------------------------------------------------------