# Expires: 3 days
# License: See source for license and credits
# Source: https://github.com/NanoAdblocker/NanoFilters/tree/master/NanoFiltersSource/NanoResources.txt
# This file is a compiled binary, do not modify
# All modifications will be overwritten on the next build
nano-tiny-noopvast-2.0 text/xml
nano-tiny-noopvast-3.0 text/xml
nano-assign-variable-onready.js application/javascript
(function() {
var chain = '{{1}}';
var value = '{{2}}';
if ( chain === '' || chain === '{{1}}' ) {
return;
}
if ( value === 'null' ) {
value = null;
} else if ( value === 'true' ) {
value = true;
} else if ( value === 'false' ) {
value = false;
} else {
return;
}
var assign = function() {
var parent = window;
chain = chain.split('.');
for ( var i = 0; i < chain.length - 1; i++ ) {
parent = parent[chain[i]];
}
parent[chain[chain.length - 1]] = value;
};
if ( document.readyState === 'interactive' ||
document.readyState === 'complete' ) {
assign();
} else {
addEventListener('DOMContentLoaded', assign);
}
})();
nano-vvvvid-it.js application/javascript
(function() {
// Based on KAADIVVVV
// License: https://github.com/Robotex/KAADIVVVV/blob/master/LICENSE
function defuse() {
var checkAdv = function() {
this.hasAdv = false;
};
vvvvid.models.PlayerObj.prototype.checkAdv = checkAdv;
window[wnbshgd] = vvvvid.models.PlayerObj.prototype.checkAdv;
}
if ( typeof vvvvid === 'object' ) {
defuse();
} else {
addEventListener('DOMContentLoaded', defuse);
}
})();
nano-colombiaonline-com.js application/javascript
(function() {
var magic = 'a' + Math.random().toString(36).substring(2);
var testScript = "typeof otab == 'function'";
var testComment = /\d{5,} \d{1,2}/;
//
var getter = function() {
var script, temp;
//
temp = Array.from(document.querySelectorAll(
'script:not([src]):not([' + magic + '])'
));
if (
document.currentScript &&
!document.currentScript.hasAttribute(magic)
) {
temp.unshift(document.currentScript);
}
if ( temp.length === 0 ) {
return true;
}
for ( var e of temp ) {
e.setAttribute(magic, '');
if ( e.textContent && e.textContent.includes(testScript) ) {
script = e;
break;
}
}
//
if ( script === undefined ) {
return true;
}
var prev = script.previousSibling;
temp = prev;
while ( temp = temp.previousSibling ) {
if (
temp.nodeType === Node.COMMENT_NODE &&
testComment.test(temp.data)
) {
prev.style.setProperty('display', 'none', 'important');
return false;
}
}
};
//
Object.defineProperty(window, "trev", {
set: function() { },
get: function() {
var r;
var i = 0;
do {
try {
r = getter();
} catch ( err ) { }
} while ( i++, !r && i < 100 );
return null;
}
});
addEventListener('load', function() {
void trev;
});
//
var isInBackground = false;
var reStart = /^\/[a-z_]+\.cms/;
var reEnd = /^ \d{5,} \d{1,2} $/;
var adsHidder = function() {
if ( isInBackground || !document.body ) {
return;
}
var iterator = document.createTreeWalker(
document.body, NodeFilter.SHOW_COMMENT
);
var comment;
while ( comment = iterator.nextNode() ) {
if ( reStart.test(comment.data) ) {
var toHide = [];
var prev = comment;
while ( prev = prev.previousSibling ) {
if (
prev.nodeType === Node.COMMENT_NODE &&
reEnd.test(prev.data)
) {
if ( toHide.length < 15 ) {
for ( var e of toHide ) {
try {
e.style.setProperty(
'display', 'none', 'important'
);
} catch ( err ) { }
}
}
break;
}
toHide.push(prev);
}
}
}
};
addEventListener('focus', function() {
isInBackground = false;
});
addEventListener('blur', function() {
isInBackground = true;
});
setInterval(adsHidder, 1000);
})();
nano-hijack-script-create.js application/javascript
(function() {
var _createElement = document.createElement;
var needle = '{{1}}';
if ( needle === '' || needle === '{{1}}' ) {
needle = '.?';
} else if ( needle.length > 2 &&
needle.startsWith('/') && needle.endsWith('/') ) {
needle = needle.slice(1,-1);
} else {
needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
needle = new RegExp(needle);
document.createElement = function(name) {
var elem = _createElement.apply(this, arguments);
if ( name === 'script' ) {
elem.addEventListener('error', function(e) {
if ( needle.test(elem.src) ) {
e.preventDefault();
e.stopPropagation();
var ev = new Event('load');
elem.dispatchEvent(ev);
}
});
}
return elem;
};
})();
nano-remove-elements-onready.js application/javascript
(function() {
var selector = '{{1}}';
if ( selector === '' || selector === '{{1}}' ) {
return;
}
var remove = function() {
var elements = document.querySelectorAll(selector);
for ( var element of elements ) {
element.remove();
}
};
if ( document.readyState === 'interactive' ||
document.readyState === 'complete' ) {
remove();
} else {
addEventListener('DOMContentLoaded', remove);
}
})();
nano-make-bait-element.js application/javascript
(function() {
var identifier = '{{1}}';
var element = document.createElement('div');
if ( identifier.charAt(0) === '#' ) {
element.id = identifier.substring(1);
} else if ( identifier.charAt(0) === '.' ) {
element.className = identifier.substring(1);
} else {
return;
}
element.style.display = 'none';
document.documentElement.appendChild(element);
})();
nano-grant-fake-notification.js application/javascript
(function() {
Notification = function() { };
Notification.permission = 'default';
Notification.requestPermission = function(callback) {
Notification.permission = 'granted';
if ( callback ) {
setTimeout(callback, 0, 'granted');
}
return Promise.resolve('granted');
};
})();
nano-abort-inline-scripts-by-id.js application/javascript
(() => {
let needle = '{{1}}';
if (needle === '' || needle === '{{1}}') {
return;
} else if (needle.startsWith('/') && needle.endsWith('/')) {
needle = needle.slice(1, -1);
} else {
needle = '^' + needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '$';
}
needle = new RegExp(needle);
//
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node.tagName === 'SCRIPT' && needle.test(node.id)) {
node.textContent = '';
node.remove();
}
}
}
});
if (document.readyState === 'interactive' ||
document.readyState === 'complete') {
return; // Too late
} else {
observer.observe(document, {
childList: true,
subtree: true,
});
addEventListener('DOMContentLoaded', () => {
observer.disconnect();
});
}
})();
nanop-click-elements-onready.js application/javascript
(function() {
var guard = '{{nano}}';
if ( guard === '{{nano}}' ) {
return;
}
var selector = '{{1}}';
if ( selector === '' || selector === '{{1}}' ) {
return;
}
var click = function() {
var elements = document.querySelectorAll(selector);
for ( var element of elements ) {
element.click();
}
};
if ( document.readyState === 'interactive' ||
document.readyState === 'complete' ) {
click();
} else {
addEventListener('DOMContentLoaded', click);
}
})();
nanop-click-elements-onload.js application/javascript
(function() {
var guard = '{{nano}}';
if ( guard === '{{nano}}' ) {
return;
}
var selector = '{{1}}';
if ( selector === '' || selector === '{{1}}' ) {
return;
}
var click = function() {
var elements = document.querySelectorAll(selector);
for ( var element of elements ) {
element.click();
}
};
if ( document.readyState === 'complete' ) {
click();
} else {
addEventListener('load', click);
}
})();
nanop-easy-set-cookie.js application/javascript
(function() {
var guard = '{{nano}}';
if ( guard === '{{nano}}' ) {
return;
}
var data = '{{1}}';
var path = '{{2}}';
var domain = '{{3}}';
var secure = '{{4}}';
var del = '{{5}}';
if ( data.indexOf('=') === -1 ) {
return;
}
if ( del === 'true' ) {
data += ';max-age=-100';
} else {
data += ';max-age=2592000'; // 30 days
}
if ( path !== '' && path !== '{{2}}' ) {
data += ';path=' + path;
}
if ( domain !== '' && domain !== '{{3}}' ) {
data += ';domain=' + domain;
}
if ( secure === 'true' ) {
data += ';secure';
}
document.cookie = data;
})();
nanop-set-cookie.js application/javascript
(function() {
var guard = '{{nano}}';
if ( guard === '{{nano}}' ) {
return;
}
var data = '{{1}}';
if ( data.indexOf('=') === -1 ) {
return;
}
document.cookie = data;
})();
nanop-get-redirect.js application/javascript
(() => {
var guard = '{{nano}}';
if ( guard === '{{nano}}' ) {
return;
}
var data = '{{1}}';
if ( data === '' || data === '{{1}}' ) {
return;
}
var url = new URL(location.href);
var param = url.searchParams.get(data);
if ( typeof param !== 'string' || !/^https?:\/\//.test(param) ) {
return;
}
location.href = param;
})();