! Checksum: 1KwduOKwXMYrM2/s5m1JeQ ! Diff-Path: ../patches/7/7-s-1714019649-3600.patch ! Title: AdGuard Japanese filter ! Description: Filter that enables ad blocking on websites in Japanese language. ! Version: 2.0.50.94 ! TimeUpdated: 2024-04-25T04:31:32+00:00 ! Expires: 12 hours (update frequency) ! Homepage: https://github.com/AdguardTeam/AdGuardFilters ! License: https://github.com/AdguardTeam/AdguardFilters/blob/master/LICENSE ! !---------------------------------------------------------------------------! !-------------- General JS API ---------------------------------------------! !---------------------------------------------------------------------------! ! JS API START #%#var AG_onLoad=function(func){if(document.readyState==="complete"||document.readyState==="interactive")func();else if(document.addEventListener)document.addEventListener("DOMContentLoaded",func);else if(document.attachEvent)document.attachEvent("DOMContentLoaded",func)}; #%#var AG_removeElementById = function(id) { var element = document.getElementById(id); if (element && element.parentNode) { element.parentNode.removeChild(element); }}; #%#var AG_removeElementBySelector = function(selector) { if (!document.querySelectorAll) { return; } var nodes = document.querySelectorAll(selector); if (nodes) { for (var i = 0; i < nodes.length; i++) { if (nodes[i] && nodes[i].parentNode) { nodes[i].parentNode.removeChild(nodes[i]); } } } }; #%#var AG_each = function(selector, fn) { if (!document.querySelectorAll) return; var elements = document.querySelectorAll(selector); for (var i = 0; i < elements.length; i++) { fn(elements[i]); }; }; #%#var AG_removeParent = function(el, fn) { while (el && el.parentNode) { if (fn(el)) { el.parentNode.removeChild(el); return; } el = el.parentNode; } }; ! ! AG_removeCookie ! Examples: AG_removeCookie('/REGEX/') or AG_removeCookie('part of the cookie name') ! #%#var AG_removeCookie=function(a){var e=/./;/^\/.+\/$/.test(a)?e=new RegExp(a.slice(1,-1)):""!==a&&(e=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));a=function(){for(var a=document.cookie.split(";"),g=a.length;g--;){cookieStr=a[g];var d=cookieStr.indexOf("=");if(-1!==d&&(d=cookieStr.slice(0,d).trim(),e.test(d)))for(var h=document.location.hostname.split("."),f=0;f element matches specified regular expression. ! Based on AG_defineProperty (https://github.com/AdguardTeam/deep-override) ! ! Examples: ! AG_abortInlineScript(/zfgloadedpopup|zfgloadedpushopt/, 'String.fromCharCode'); ! ! @param regex regular expression that the inline script contents must match ! @param property property or properties chain ! @param debug optional, if true - we will print warning when script is aborted. ! #%#var AG_abortInlineScript=function(g,b,c){var d=function(){if("currentScript"in document)return document.currentScript;var a=document.getElementsByTagName("script");return a[a.length-1]},e=Math.random().toString(36).substr(2,8),h=d();AG_defineProperty(b,{beforeGet:function(){var a=d();if(a instanceof HTMLScriptElement&&a!==h&&""===a.src&&g.test(a.textContent))throw c&&console.warn("AdGuard aborted execution of an inline script"),new ReferenceError(e);}});var f=window.onerror;window.onerror=function(a){if("string"===typeof a&&-1!==a.indexOf(e))return c&&console.warn("AdGuard has caught window.onerror: "+b),!0;if(f instanceof Function)return f.apply(this,arguments)}}; ! ! AG_setConstant('property.chain', 'true') // defines boolean (true), same for false; ! AG_setConstant('property.chain', '123') // defines Number 123; ! AG_setConstant('property.chain', 'noopFunc') // defines function(){}; ! AG_setConstant('property.chain', 'trueFunc') // defines function(){return true}; ! AG_setConstant('property.chain', 'falseFunc') // defines function(){return false}; ! #%#var AG_setConstant=function(e,a){if("undefined"===a)a=void 0;else if("false"===a)a=!1;else if("true"===a)a=!0;else if("noopFunc"===a)a=function(){};else if("trueFunc"===a)a=function(){return!0};else if("falseFunc"===a)a=function(){return!1};else if(/^\d+$/.test(a)){if(a=parseFloat(a),isNaN(a)||32767