### urlskip Directive Usage Examples Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Illustrates how to use the urlskip directive with various combinations of steps to extract target URLs from complex tracking links. These examples demonstrate recursive extraction and protocol handling. ```Filter Language ||example.com/path/to/tracker$urlskip=?url // Navigates to https://example.org/ after extracting 'url' parameter. ||example.com/path/to/tracker$urlskip=?url ?to // Navigates to https://github.com/ after recursively extracting 'url' and then 'to' parameters. ||rdr.btrck.com/aff_c?$urlskip=?aff_sub3 +https // Navigates to https://hepsiburada.com/... by extracting 'aff_sub3' and prepending 'https://'. ``` -------------------------------- ### uBO Example Filter Rule Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax An example of a uBlock Origin filter rule demonstrating the use of directives and domain-specific blocking. ```APIDOC $webrtc example.com##+js(nowebrtc) ``` -------------------------------- ### Affiliate Link with URL Parameters Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax An example of a complex affiliate tracking URL containing numerous parameters and nested encoded URLs. It demonstrates how various tracking and deep-linking parameters are passed. ```url https://rdr.btrck.com/aff_c?offer_id=17&aff_id=1&source=55754&aff_sub=www.evekonomisi.net&aff_sub2=&aff_sub3=hepsiburada.com/philips-ca6700-10-espresso-makinesi-kirec-temizleme-solusyonu-p-HBCV00002YNJSF&aff_sub4=inf-www.evekonomisi.net-7324&aff_sub5=inf&url=https%3a%2f%2f7t4g.adj. st%2fproduct%3fsku%3dHBCV00002YNJSF%26adj_t%3d16v6nskj_16n3rgcj%26publisher_id%3d{transaction_id}%26offer_id%3d{offer_id}%26campaign%3dwinfluenced%26adgroup%3d{aff_sub}{source}%26creative%3d-aff_sub3- %26adj_deep_link%3dhbapp%253a%252f%252fproduct%253fsku%253dHBCV00002YNJSF%2526adj_t%253d16v6nskj_16n3rgcj%2526utm_source%253dwinfluenced%2526utm_medium%253dinfluencer%2526utm_campaign%253dwinfluenced%2526utm_content%253d- aff_sub3-%2526utm_term%253dinfluencer%2526wt_inf%253d{source}%26adj_install_callback%3dhttps%253a%252f%252fwinfluenced-pixel-bs56cx2ajq-ey. a.run.app%252fapi%252fpixel%252fcallback%252finstall%253fevent_type%253dInstall%2526linkid%253d95O2L4G8A2%2526ltoken%253d16v6nskj_16n3rgcj%2526app_id%253d%7Bapp_id%7D%2526offer_id%253d17%2526advertiser_id%253d{advertiser_id}%2526click_id%253d{transaction_id}%2526app_name%253d%7Bapp_name%7D%2526app_version%253d%7Bapp_version%7D%2526store%253d%7Bstore%7D%2526installed_at%253d%7Binstalled_at%7D%2526ip_address%253d%7Bip_address%7D%2526country%253d%7Bcountry%7D%2526device_name%253d%7Bdevice_name%7Dc%2526device_type%253d%7Bdevice_type%7D%2526os_name%253d%7Bos_name%7D%2526partner_parameters%253d%7Bpartner_parameters%7D%2526debug%253dtrue%26adj_event_callback_m2ril4_wapyen%3dhttps%253a%252f%252fwinfluenced- pixel-bs56cx2ajq-ey. a.run. app%252fapi%252fpixel%252fcallback%252fconversion%253fevent_type%253dConversion%2526linkid%253d95O2L4G8A2%2526ltoken%253d16v6nskj_16n3rgcj%2526etoken%253dm2ril4_wapyen%2526offer_id%253d%257bofferId%257d%2526advertiser_id%253d{advertiser_id}%2526app_id%253d%7Bapp_id%7D%2526click_id%253d{transaction_id}%2526ip_address%253d%7Bip_address%7D%2526country%253d%7Bcountry%7D%2526partner_parameters%253d%7Bpartner_parameters%7D%2526revenue_float%253d%7Brevenue_float%7D%2526currency%253d%7Bcurrency%7D%2526reporting_revenue%253d%7Breporting_revenue%7D%2526reporting_currency%253d%7Breporting_currency%7D%2526os_name%253d%7Bos_name%7D%2526debug%253dtrue ``` -------------------------------- ### Hostname Regex Matching Examples Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Illustrates the use of regular expressions for hostname targeting in static extended filters, allowing for flexible domain matching and exclusion. ```uBlock Filter Syntax /img[a-z]{3,5}\.buzz/##+js(nowoif) @@*$ghide,domain=/img[a-z]{3,4}\.buzz/ *$frame,from=plainlight.com,to=~/youtube/ ``` ```uBlock Filter Syntax /^nitter\.[^.]+\.[^.]+$/##.timeline-item:has-text(owned) /^nitter(?:\.[^.]+){1,2}$/##.timeline-item:has-text(owned) ``` ```uBlock Filter Syntax /^example\.org$/##h1 /^www\.example\.org$/##h1 /^(?:www\.)?example\.org$/##h1 /^example\.org$/,somesite.org,somesite2.*##h1 org,~/^example\.org$/##h1 ``` -------------------------------- ### uBlock Origin 'to' Filter Option Examples Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Demonstrates the usage of the 'to' filter option in uBlock Origin, which allows for advanced domain matching, including entity-based syntax, negated hostnames, and regular expressions. It is a superset of 'denyallow='. ```APIDOC Filter Option: to Description: Specifies domain matching rules for network requests, similar to Declarative Net Request's requestDomains and excludedRequestDomains. It supports entity-based syntax, negated hostnames, and regex-based values. Syntax: to= to=~ to=// to=/~/ Examples: - Basic domain matching: ||it^$3p,to=~example.it (Matches requests where the target domain is not example.it) - Combined with other options: *$script,from=beforeitsnews.com,to=google.*|gstatic.com (Matches script requests from beforeitsnews.com targeting domains starting with google.) - Regex-based domain matching: *$script,to=/img[a-z]{3,5}\.buzz/ (Matches script requests targeting domains matching the regex /img[a-z]{3,5}\.buzz/) - Negated regex-based domain matching: *$to=/~regex.../ (Matches requests where the target domain does NOT match the regex /regex.../) Related Options: - denyallow: An older option with similar functionality but less flexibility. - from: Specifies the domain of the requesting document. ``` -------------------------------- ### URL Skip with Strict Blocking Behavior Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax This example illustrates how a filter rule with `$urlskip=` can either prevent strict blocking (when a valid URL is extracted) or allow navigation to proceed to a URL that might otherwise be blocked, depending on the presence of specific parameters. ```filter-syntax Given the filter `||example.com^`, the filter: ||example.com/path/to/tracker$urlskip=?url will not prevent strict-blocking when navigating to: `https://example.com/path/to/tracker?url=https://example.org/` However, the filter: ||example.com/path/to/tracker$urlskip=-blocked ?url will cause the strict-blocking to be ignored and allow navigation to proceed to the URL extracted as a result of applying the `urlskip=` filter: `https://example.org/` Related discussion: [https://github.com/uBlockOrigin/uBlock-issues/issues/3206#issuecomment-2439627386](https://github.com/uBlockOrigin/uBlock-issues/issues/3206#issuecomment-2439627386) ``` -------------------------------- ### Generate Signature for SCRNIFY API Source: https://context7_llms Provides a Node.js example for generating a secure signature required for signed API key authentication. This involves creating an HMAC-SHA256 hash of the query string using a secret key. ```javascript const crypto = require('crypto'); function generateSignature(queryString, secret) { const hmac = crypto.createHmac('sha256', secret); hmac.update(queryString); return hmac.digest('hex'); } // Example usage const baseUrl = process.env.NEXT_PUBLIC_API_URL + 'capture'; const params = new URLSearchParams({ key: 'your_api_key', url: 'https://example.com', type: 'image', format: 'png', width: '1920', height: '1080', cache_ttl: '3600' }); const signature = generateSignature(params.toString(), 'your_api_secret'); params.append('signature', signature); const finalUrl = `${baseUrl}?${params.toString()}`; console.log(finalUrl); ``` -------------------------------- ### uBlock Origin 'csp' Filter Option Example Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Illustrates the 'csp' filter option, which injects a Content Security Policy header into HTTP network responses for matching web pages. This option is intended for advanced users and can significantly alter a page's security policy. ```APIDOC Filter Option: csp Description: Injects an additional Content-Security-Policy header into HTTP network responses for document requests, making the policy stricter. It can be used with other options like '1p', '3p', or 'domain'. Mixing with resource type options (image, script, frame) is not allowed. Syntax: csp= $csp Usage: - Apply a specific CSP directive: ||example.com/subpage/\*$csp\=script-src 'none' (Blocks scripts on example.com/subpage/ by setting script-src to 'none') - Apply CSP to all pages except specific ones: ||example.com/\*$csp\=script-src 'none' @@||example.com^|$csp\=script-src 'none' (Blocks scripts everywhere on example.com except for the main page, by applying the CSP and then creating an exception for it.) - Disable all CSP injections for a page: @@||example.com^$csp (Removes any CSP injections for example.com) Notes: - The 'csp' option works in an 'allowlist' mode, only permitting data from explicitly specified addresses. - uBlock Origin merges its injected CSP header with the server-provided one, enforcing the strictest rules. - Refer to Content Security Policy (CSP) documentation for detailed syntax. Related Options: - denyallow: Can be used in conjunction with csp for broader blocking. - 1p, 3p, domain: Can be used to scope the CSP injection. ``` -------------------------------- ### uBO HOSTS File Parsing Rules Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Explains how uBlock Origin parses HOSTS file-like resources. It clarifies the syntax equivalence between HOSTS entries and uBO filters, particularly the ambiguity with ABP syntax and how to resolve it. ```APIDOC HOSTS File Syntax Equivalence: - HOSTS file entries like `hostname` are parsed by uBO as `||hostname^` (blocking the site and its subdomains). - To use ABP's pattern-based interpretation (blocking URLs containing `hostname`), append a wildcard: `hostname*`. - For filenames, prepend a slash to avoid hostname parsing: `/filename.js`. ``` -------------------------------- ### uBO First-Party and Third-Party Filters (`1p`, `3p`) Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Explains the shorthand notations `1p` and `3p` in uBlock Origin filters, which correspond to first-party and third-party requests respectively. ```APIDOC First-Party and Third-Party Filters: `1p`: - Equivalent to `first-party`. - Matches requests to the currently visited domain. - Equivalent to `~third-party`. `3p`: - Equivalent to `third-party`. - Matches requests to domains other than the currently visited domain. ``` -------------------------------- ### Static Extended Filtering Syntax Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Demonstrates the basic syntax for static extended filters in uBlock Origin, including hostname targeting and exception rules. ```uBlock Filter Syntax [hostname(s)]##[expression] [hostname(s)]#@#[expression] ``` -------------------------------- ### Unsupported uBlock Origin Filter Options Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Details on filter options that are not supported by uBlock Origin, explaining the reasons for their exclusion and their implications. ```APIDOC Filter Option: document (for entire page exception) Description: Not supported for disabling uBO on an entire page. The 'document' option in static exception filters is intended for 'acceptable ads' support, which uBO does not implement. This is to ensure users explicitly disable uBO themselves via the 'Trusted sites' feature. Note: It still functions to negate strict blocking when explicitly enabled by a blocking filter with the 'document' option. Filter Option: genericblock Description: Not supported. This option is used with an exception filter to disable generic network filters (filters without a 'domain=' option) on target pages. Disabling generic filters would silently disable large numbers of filters, including those from malware lists and anti-tracking lists, for a specific site. Reasoning: To prevent the silent disabling of essential security and privacy filters. ``` -------------------------------- ### uBO Pre-parsing Directive: !#include Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax The !#include directive allows importing another filter list into the current one. It is designed to be ignored by older blockers or non-uBO compatible blockers, ensuring list compatibility. The included file must reside in the same directory as the main list. ```APIDOC !#include [file name] Description: Allows importing another filter list in place of where the directive appears. Pre-parsing directives prefixed with '!#' are ignored by older versions of uBO or other blockers. Parameters: [file name]: The path to the sub-list to import. This path is relative to the current filter list's directory. It is not allowed to load a sub-list located outside the current one's directory. Usage Examples: !#include ublock-filters.txt !#include ublock/filters.txt Incorrect Usage: !#include https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters.txt !#include ../filters.txt Notes: - Supported starting with uBO 1.16.0. - Cosmetic filtering-related options like 'elemhide' (aliased as 'ehide') are not affected by privacy concerns. ``` -------------------------------- ### Entity Matching in uBlock Filters Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Explains how to use entities, defined as formal domain names with the Public Suffix part replaced by a wildcard, to match multiple related domains. ```uBlock Filter Syntax google.*###tads.c ``` -------------------------------- ### uBlock Preprocessor Directive Tokens Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax A list of tokens supported by uBlock Origin's preprocessor directives, indicating their conditions and the uBlock versions they were introduced or last updated. These tokens are used to evaluate the conditions for `!#if` directives. ```APIDOC Preprocessor Tokens: Token Value Version -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ``` -------------------------------- ### uBlock Domain Filtering (`domain`, `from`) Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Defines rules for applying filters to specific domains. Supports exact matches, negation (`~`), multiple domains joined by `|`, and regex-based matching. The `from` option is an alias for `domain`. ```APIDOC domain= Restrict the filter to be applied only on the specified domain(s). Use the `|` symbol to join multiple domains. Preceding the domain name by `~` will prevent the filter from being applied on this domain. Examples: ||doubleclick.net^$script,domain=auto-motor-und-sport.de ||adnxs.com^$domain=bz-berlin.de|metal-hammer.de|musikexpress.de|rollingstone.de|stylebook.de /adsign.$domain=~adsign.no Regex-based domain values: @@*$ghide,domain=/img[a-z]{3,5}\.buzz/ *$domain=~/regex.../ ``` ```APIDOC from= Alias for the `domain=` option. The logger will render `domain=` network filters using the `from=` version. ``` -------------------------------- ### urlskip Directive Syntax and Directives Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Defines the syntax for the urlskip directive and lists its supported transformation steps. Each directive performs a specific operation on the current string to extract or modify it, aiming to produce a final, valid URL. ```Filter Language urlskip=[steps] Valid directives: * `?name`: extracts the value of parameter `name` * `&i`: extracts the name of the parameter at position `i` (1-based) * `#`: extracts the hash part as the current string * `/.../`: extracts the first capture group of a regex * `+https`: prepends or replaces protocol with `https://` * `-base64`: performs base64-decoding on the current string * `-safebase64`: performs safe base64-decoding on the current string * `-uricomponent`: performs URI component-decoding on the current string * `-blocked`: allows urlskip to apply to blocked network requests ``` -------------------------------- ### uBO Special Filter Options: `_` and `*` Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Details the usage of special placeholder and wildcard characters in uBlock Origin filters. `_` acts as a placeholder to resolve ambiguity, while `*` applies a filter to all URLs. ```APIDOC Special Filter Options: `_` (noop): - Acts as a placeholder to resolve ambiguity, especially with regular expression parameters. - Example: `/ad-$removeparam\=/^foo=bar\\d$/,_` - Supports multiple instances for readability: `||example.com$_,removeparam=/^ss\\$/,_,image` `*` (all URLs): - Applies a filter to all URLs. Not recommended without further narrowing. - Example: `*$third-party` (blocks all 3rd-party requests). - Example: `*$script,domain=example.com` (blocks all script requests at example.com). - Often better replaced by dynamic filtering rules. ``` -------------------------------- ### URL Skip with Base64 Decoding Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax This filter rule demonstrates bypassing navigation to a specific domain (`shrinkearn.com`) and automatically decoding a base64 encoded URL parameter to navigate directly to the target destination. ```filter-syntax ||shrinkearn.com/full?$urlskip=?url -base64 The above filter will cause navigation to `https://shrinkearn.com/full?api=3dd1f43f5fded450a0e4691e503bf19b31f35f44&url=aHR0cHM6Ly9rcmFrZW5maWxlcy5jb20vdmlldy9zamJ1RmpQVTF2L2ZpbGUuaHRtbA==&type=2` to automatically bypass navigation to `shrinkearn.com` and navigate directly to `https://krakenfiles.com/view/sjbuFjPU1v/file.html` (which was `base64` decoded from: `aHR0cHM6Ly9rcmFrZW5maWxlcy5jb20vdmlldy9zamJ1RmpQVTF2L2ZpbGUuaHRtbA==`). ``` -------------------------------- ### URL Skip with URI Component Decoding Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax This filter rule shows how to bypass navigation to a domain (`pixiv.net`) and automatically decode a percent-encoded URL parameter to navigate directly to the intended destination. ```filter-syntax ||pixiv.net/jump.php?$urlskip=&1 The above filter will cause navigation to: `https://www.pixiv.net/jump.php?https%3A%2F%2Fx.com%2FExample_Username` to automatically bypass navigation to `pixiv.net` and navigate directly to `https://x.com/Example_Username` (which was `%` decoded from `https%3A%2F%2Fx.com%2FExample_Username`). ``` -------------------------------- ### Use 'all' Filter Option Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax The 'all' option is a shorthand that specifies all network-based request types, plus 'popup', 'document', 'inline-font', and 'inline-script'. It's useful for blocking all types of requests from a specific domain. ```APIDOC ||bet365.com^$all This filter blocks all network requests, popups, and prevents inline fonts/scripts from bet365.com. ``` -------------------------------- ### Procedural Cosmetic Filters Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Lists various procedural cosmetic filters available in uBlock Origin. These filters allow for more dynamic and conditional cosmetic rule application based on element properties, text content, or DOM structure. ```APIDOC :has(...) :has-text(...) :matches-attr(...) :matches-css(...) :matches-css-before(...) :matches-css-after(...) :matches-media(...) :matches-path(...) :matches-prop(...) :min-text-length(n) :not(...) :others(...) :upward(...) :watch-attr(...) :xpath(...) Description: A set of procedural filters that enable advanced cosmetic filtering capabilities by targeting elements based on various criteria like attributes, text content, CSS properties, or XPath expressions. ``` -------------------------------- ### Scrnify LLMs API Reference Source: https://context7_llms This section details the API's error handling mechanisms and provides guidance on best practices for optimal usage, including parameter configurations and security recommendations. ```APIDOC API Error Codes: 400: Invalid parameters or missing required fields 401: Invalid API key or signature 403: Unauthorized access 404: Resource not found 500: Server errors API Best Practices & Parameters: URL Encoding: - Always URL-encode the target URL parameter. Viewport Configuration: - viewportWidth: Set appropriate width for your use case. - viewportHeight: Set appropriate height for your use case. Capture Options: - fullPage: Consider using `true` for capturing long web pages. - jpegQuality: Adjust JPEG quality for better performance when high fidelity isn't required. - waitUntil: Use appropriate events based on your needs: - firstMeaningfulPaint (default): For general captures. - networkIdle: For dynamic content. - load: For static content. - userAgent: Set custom `userAgent` when needed to handle specific site requirements. Caching: - cacheEnabled: Enable caching for frequently accessed pages. - cacheTtl: Set appropriate Time To Live (TTL) for cached content. Security: - apiKey: Use signed API keys for enhanced security in production environments. ``` -------------------------------- ### Inject JavaScript with +js() Filter Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Allows the injection of specific JavaScript code into pages via the '+js(...)' filter. The '...' part is a token identifying a JavaScript resource from the uBO resource library. Filters must be specific to hostnames, e.g., 'example.com##+js(nobab)'. ```APIDOC example.com##+js(...) example.com##+js(nobab) ``` -------------------------------- ### uBO Filter: permissions Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Filters network requests based on the Permissions Policy directives. It allows control over website features like camera, microphone, or autoplay. uBO uses `|` as a separator for directives, converting it to `,` internally. ```APIDOC permissions Description: Filters network requests based on Permissions Policy directives. Syntax: `$permissions==()|=()` Directive Separator: Uses `|` internally, which uBO converts to `,` for the browser. Default Behavior: If no type (e.g., `$doc`) is specified, uBO applies it to `$document,subdocument`. Example 1: `||example.com^$permissions=browsing-topics=()` - Blocks the 'browsing-topics' permission for example.com. Example 2: `*$permissions=oversized-images=()|unsized-media=()` - Blocks 'oversized-images' and 'unsized-media' permissions globally. Note: Combining multiple permissions in one filter is discouraged to avoid breaking exception filters. References: - [AdGuard Permissions Modifier](https://adguard.com/kb/general/ad-filtering/create-own-filters/#permissions-modifier) - [MDN Permissions Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy) ``` -------------------------------- ### URL Skip with URI Component Decoding and Regex Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax This filter rule uses a combination of domain matching, regex, and URI component decoding to bypass navigation and extract a target URL from a complex URL structure, redirecting to the decoded destination. ```filter-syntax ||click.redditmail.com/CL0/$urlskip=/CL0\/.*?(www\.reddit\.com.+?)(?:\?|%3F)/ -uricomponent +https The above filter will cause navigation to: `https://click.redditmail.com/CL0/https://www.reddit.com/r/natureisfuckinglit/comments/1f7l41z/orca_pod_saying_hi_to_paddle_boarder/?%24deep_link=true&correlation_id=21bc5fa3-f0f4-43b5-92e4-6d2deb135b8a&post_fullname=t3_1f7l41z&post_index=2&ref=email_digest&ref_campaign=email_digest&ref_source=email&utm_content=post_author/1/01000191bd393638-90cd632e-f420-45fd-a732-27dc3e441ee2-000000/aBs5XoGsoLNHwf95BGM6JzVs4iNSldLNZ9hOBaWN_HA=369` `https://click.redditmail.com/CL0/https:%2F%2Fwww.reddit.com/r/natureisfuckinglit/comments/1f7l41z/orca_pod_saying_hi_to_paddle_boarder/%3F%2524deep_link=true&correlation_id=21bc5fa3-f0f4-43b5-92e4-6d2deb135b8a&post_fullname=t3_1f7l41z&post_index=2&ref=email_digest&ref_campaign=email_digest&ref_source=email&utm_content=post_author/1/01000191bd393638-90cd632e-f420-45fd-a732-27dc3e441ee2-000000/aBs5XoGsoLNHwf95BGM6JzVs4iNSldLNZ9hOBaWN_HA=369%5D` to automatically bypass navigation to `click.redditmail.com` and navigate directly to `https://` + `www.reddit.com/r/natureisfuckinglit/comments/1f7l41z/orca_pod_saying_hi_to_paddle_boarder/` (after it previously was `URI component` decoded). ``` -------------------------------- ### Use 'denyallow' for Default-Deny/Allow-Exceptionally Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax The 'denyallow' option enables a default-deny/allow-exceptionally mechanism within static network filtering. It allows blocking of most requests while permitting specific exceptions, simplifying complex blocking scenarios. ```APIDOC *$3p,script,denyallow=x.com|y.com,domain=a.com|b.com This filter blocks all 3rd-party scripts on 'a.com' or 'b.com', except those from 'x.com' and 'y.com'. ``` -------------------------------- ### Use 'document' Filter Type Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax The 'document' option, also aliased as 'doc', specifies the main frame (root document) of a web page. It is automatically enabled in filters that only specify the host part of the URL, subjecting matching web pages to strict blocking. ```APIDOC example.com$document This filter applies to the main document of example.com, enabling strict blocking for the page itself. ``` -------------------------------- ### Specific-Generic Cosmetic Filters Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Introduces specific-generic cosmetic filters in uBlock Origin, which are unconditionally injected into all web pages. Unlike standard generic filters that rely on DOM surveying, these are injected regardless of element presence. They are disabled by `generichide` exception filters. ```APIDOC *##.selector Description: Precedes a generic cosmetic filter with a literal `*` to ensure unconditional injection into all web pages. This differs from standard generic filters which are only injected when uBO's DOM surveyor finds matching elements. ``` -------------------------------- ### uBO Filter: strict1p Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Enforces strict first-party request matching, requiring both the context and the request to share the same hostname. This differs from the `1p` option, which only requires the same base domain. ```APIDOC strict1p Description: Enforces strict first-party request matching based on hostname. Comparison with `1p`: - `1p`: Qualifies if context and request share the same base domain. - `strict1p`: Qualifies only if context and request share the exact same hostname. Example Scenario: Context: `www.example.org` Request: `subdomain.example.org` `1p` result: yes `strict1p` result: no Framework Compatibility: MV2-only. ``` -------------------------------- ### uBO Filter: method Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Filters network requests based on their HTTP method. Supports a list of pipe-separated, lowercased method names, including negated names. The logger displays the method for each request. ```APIDOC method Description: Filters network requests according to their HTTP method. Syntax: `$method=||~` Supported Methods: `connect`, `delete`, `get`, `head`, `options`, `patch`, `post`, `put`. Negation: Prefix a method with `~` to exclude it. Example 1: `||google.com^$method=post|get` - Blocks POST and GET requests to google.com. Example 2: `||example.com^$method=~get` - Blocks all requests to example.com except GET requests. Reference: [Chrome DeclarativeNetRequest RequestMethod](https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/#type-RequestMethod) ``` -------------------------------- ### Disable Scriptlet Injection with Exceptions Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Provides syntax for wholly disabling scriptlet injection for a given site or globally. This is achieved using the '#@#+js()' exception syntax. Generic '+js()' filters are ignored. ```APIDOC example.com#@#+js() #@#+js() ``` -------------------------------- ### uBO Filter: popunder Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Specifically designed to block 'popunder' windows or tabs. These are typically advertisements that open behind the original page, often after a redirect. ```APIDOC popunder Description: Blocks 'popunder' windows/tabs where the original page redirects to an advertisement. Syntax: `||example.com^$popunder` Usage: Similar to the `popup` filter option, but targets popunders. ``` -------------------------------- ### uBO Filter Directives Overview Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax A list of common filter directives used in uBlock Origin for blocking or modifying network requests. Each directive has specific functionalities for network filtering. ```APIDOC $frame $genericblock $generichide $ghide $header $important $inline-script $inline-font $ipaddress $match-case $method $object $other $permissions $ping $popunder $popup $script $specifichide $shide $strict1p $strict3p $to $websocket $xhr $xmlhttprequest $csp $empty $mp4 $redirect $redirect-rule $removeparam $replace $uritransform $urlskip ``` -------------------------------- ### uBlock Origin 'xhr' Filter Option Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Explains the 'xhr' filter option, which is a shorthand for the 'xmlhttprequest' option used in other ad-blocking filter lists. It allows filtering of XMLHttpRequest requests. ```APIDOC Filter Option: xhr Description: A convenience alias for the 'xmlhttprequest' option. It allows filters to target XMLHttpRequest (XHR) network requests. Syntax: $xhr Usage: - Block all XHR requests: *$xhr - Block XHR requests from a specific domain: example.com/*$xhr Related Options: - Other resource type specifiers like $script, $image, $stylesheet, etc. ``` -------------------------------- ### uBlock Origin 'redirect' Filter Option Source: https://github.com/gorhill/uBlock/wiki/Static-filter-syntax Explains the 'redirect' filter option in uBlock Origin, which blocks and redirects network requests to local neutered resources. It supports priority levels and disabling specific redirect rules. ```APIDOC #### `redirect` [](#redirect) The `redirect` option means _"block and redirect"_, and causes two filters to become created internally, a block filter and a redirect directive (`redirect-rule`). A redirect directive causes a blocked network request to redirect to a local neutered resource version. The neutered resource must use a resource token. You can use [empty redirect resources](./Resources-Library#available-empty-redirect-resources) and [URL-specific sanitized redirect resources (surrogates)](./Resources-Library#available-url-specific-sanitized-redirect-resources-surrogates). At runtime, filters with unresolvable resource tokens get discarded. You can use the `redirect=` filters with other static filter options. You can exclude them by using `@@`, they can be `badfilter`-ed, and their priority can increase with the `important` option. Since multiple redirect directives can apply to a single network request, this introduces the concept of redirect priority. By default, redirect directives have an implicit priority of `0`. Filter authors can declare explicitness by appending `:[integer]` (negative values are also supported) to the `redirect=` option token. For example: ||example.com/\*.js$1p,script,redirect\=noopjs:100 The priority dictates which redirect token out of many will ultimately become used. Cases of multiple `redirect=` directives applying to a single blocked network request are unlikely. All of these directives get reported in the logger. The effective one gets stated as the last one before redirection entry. Use explicit redirect priority only when a case of redirect ambiguity needs solving. To disable a redirection, you can use an exception filter for the redirect directive (example for the filter above): @@||example.com/\*.js$1p,script,redirect\-rule=noopjs The filter above does not affect blocking filters, just matching redirect directives. You can broadly disable all redirect directives as follow: @@||example.com/\*.js$1p,script,redirect\-rule Before 1.32.0 Starting with [1.31.0](https://github.com/gorhill/uBlock/commit/157cef6034a8ec926c1e59c7e77f0a1fcbef473c), the `redirect=` option no longer is afflicted by static network filtering syntax quirks listed below. * Must specify resource type. * Special, reserved token `none` must be used to disable specific redirect filters. * Negated domains in the `domain=` option are not supported because of syntax ambiguity - [#310](https://github.com/uBlockOrigin/uBlock-issues/issues/310). * Redirections applied to all destinations (starting with `*`) cannot be narrowed by `first-party` or `~third-party` option [#3590](https://github.com/uBlockOrigin/uBlock-issues/issues/3590). * Disable redirection by specifying `none` as the redirect. (Broken in [1.31.0](https://github.com/uBlockOrigin/uBlock-issues/issues/1388), fixed in [1.31.3b4](https://github.com/gorhill/uBlock/commit/904aa87e2aacb5fbfbb79ea702891e5be72d4b55)) * Filters with unresolvable resource tokens at runtime will cause redirection to fail. (Changed in [1.31.1b8](https://github.com/gorhill/uBlock/commit/eae7cd58fe679d6765d62bb6c01e296d5301433a)) Available since [1.4.0](https://github.com/gorhill/uBlock/releases/tag/1.4.0). * * * ```