Adblock plus обзор программы

How can I get ads on my website whitelisted?

The process of getting your ads whitelisted takes about 10 working days once the ads adhere to the Acceptable Ads standards:

  1. If your website has ads that comply with the , simply fill out this form.
  2. Someone from eyeo, the company behind Adblock Plus, will contact you to determine the exact ads, and check whether they comply with our criteria.
  3. After you have made any necessary changes, both sides sign an agreement.
  4. We submit the whitelisting proposal in the forum and the ads are whitelisted at the same time. The topic will stay open in order for the community to declare concerns if or when the candidate does not meet the requirements.

What are Acceptable Ads?

Acceptable Ads are ads that aren’t intrusive or annoying. They are respectful, don’t interfere with content, and are clearly labeled with the word “advertisement” or its equivalent. In order for an ad to be an “Acceptable Ad”, it must adhere to that have been set forth by the Acceptable Ads Committee.

Ads that abide by Acceptable Ads standards are placed on a whitelist. The ads on the whitelist are then shown to ad-blocking users who allow Acceptable Ads.

Most websites use advertising to make money, meaning that you can see these websites for free. However, many websites use too many annoying or intrusive ads to get your attention. Adblock Plus lets you choose to block ads, but we don’t believe websites should be punished.

What are Acceptable Ads without third-party tracking?

Acceptable Ads without third-party tracking are ads that comply with the Acceptable Ads criteria and that do not allow third-party entities to track any of your browsing behavior. These are ads that comply with Do Not Track, and / or ads which are served by the domain which is wholly owned by the same company.

What is the Acceptable Ads Committee?

As previously announced, in 2017 eyeo / Adblock Plus transferred governance of the Acceptable Ads initiative to an independent group, the Acceptable Ads Committee. The Acceptable Ads Committee consists of interested parties from for-profit companies, industry experts and Internet users like you.

How to block ads

While it can do so much more, the core function of Adblock Plus is to block annoying advertisements. These tutorials shows you how to block obtrusive ads in the different browsers.

How to block ads in Firefox

Adblock Plus for Firefox allows you to get rid of all annoying advertising, such as YouTube ads, Facebook ads, banners, pop-ups, and many others. If you do not have the Mozilla Firefox browser installed yet, please install it from Mozilla. If you want to block ads in a different browser please see the tutorials of installing Adblock Plus for Google Chrome and Opera.

The easiest way to add Adblock Plus to Firefox is to simply go to the Firefox installation page and click on the install button. A small screen will open on the left side of your browser, please click on «Allow». Then, another small screen will appear, where you have to click on «Install now». This will add Adblock Plus to your browser, and you will be protected against all obtrusive ads.

You can also install Adblock Plus through Mozilla Firefox. First, go to Adblock Plus in the Mozilla Add-ons section. Then, when you have opened the link, the following screen appears:

Please click on the big green button «Add to Firefox» to install Adblock Plus. Then, Firefox will ask you to «Install add-ons only from authors whom you trust.» please confirm this by clicking on «Install». After confirming this, all annoying ads will be blocked.

A default filterlist will be installed the first time you install Adblock Plus, based on the language of your browser. To add other filtersubscriptions, . For more advanced options, like custom creating filter, please go here.

How to block ads in Google Chrome

Currently, annoying ads are blocked on 100 million devices. If you use Google Chrome, use the Adblock Plus extension to get rid of all annoying advertising. Adblock Plus blocks all annoying ads on the web, like YouTube video ads, flashy banner ads, Facebook ads and much more. It even blocks pop-ups which are not blocked by your browser. This tutorial will show you how to install Adblock Plus, and how you can block ads in Google Chrome.

Add Adblock Plus to Google Chrome

There are two ways how you can add Adblock Plus to your Chrome browser. First, you can add our ad blocker for Chrome by going to the Chrome installation page and clicking on the green install button. A small screen will appear asking you to confirm to install Chrome’s Adblock Plus. Please click «Add» to install Adblock Plus. You are now protected against annoying ads.

You can also add Adblock Plus through the Google Chrome Webstore. To install our adblocker, access the Webstore. Click on «Add to Chrome», and click «Add» to confirm.

Adblock Plus automatically installs a default filterlist, based on the language of your browser. If you wish to learn how to add other filterlists, you can . For more advanced options, like disabling tracking, click here.

How to block ads in Opera

To block ads in Opera, you only need to install Adblock Plus. The easiest way is to go to the Opera Add-ons page and click on «Add to Opera». A small pop-up will ask you to add Adblock Plus to your Opera browser. Click on «Install» to protect yourself against all online ads.

If you want to block all ads from your Android device, you can simply go to our homepage with your Android device and download the application «Adblock Plus». Before you download it, you should make sure your device allows app installation from unknown sources. If you do not have a rooted device, you will probably need to . After that, you will be protected against ads.

But I hate all ads!

No problem, you can disable this feature at any time:

Adblock Plus for Chrome, Firefox (versions 3 and above), Maxthon, Opera, Yandex Browser

  1. From your browser’s toolbar, click the Adblock Plus icon and select the gear icon in the upper right corner.
  2. From the General tab, scroll to the Acceptable Ads section.
  3. Uncheck Allow Acceptable Ads.
  4. Close the tab.

Adblock Plus for Safari

  1. From the Safari toolbar, click the Adblock Plus icon and select Open Adblock Plus.
  2. Uncheck Allow Acceptable Ads.
  3. Close the tab.

Adblock Plus for iOS

  1. Open Adblock Plus for iOS.
  2. Tap the Settings icon at the bottom of the page.
  3. From the Settings page, tap Acceptable Ads.
  4. Toggle off Allow some nonintrusive ads.

Adblock Browser for Android

  1. Open Adblock Browser for Android.
  2. Tap the menu icon and select Settings.
  3. Tap Ad blocking > Acceptable Ads.
  4. Uncheck Allow some nonintrusive advertising.

Library API

python-abp can also be used as a library for parsing filter lists. For example
to read a filter list (we use Python 3 syntax here but the API is the same):

from abp.filters import parse_filterlist

with open('filterlist.txt') as filterlist:
    for line in parse_filterlist(filterlist):
        print(line)

If contains this filter list:

! Title: Example list

abc.com,cdf.com##div#ad1
abc.com/ad$image
@@/abc\.com/

the output will look something like:

Header(version='Adblock Plus 2.0')
Metadata(key='Title', value='Example list')
EmptyLine()
Filter(text='abc.com,cdf.com##div#ad1', selector={'type': 'css', 'value': 'div#ad1'}, action='hide', options=)])
Filter(text='abc.com/ad$image', selector={'type': 'url-pattern', 'value': 'abc.com/ad'}, action='block', options=)
Filter(text='@@/abc\\.com/', selector={'type': 'url-regexp', 'value': 'abc\\.com'}, action='allow', options=[])

The module also exports a lower-level function for parsing
individual lines of a filter list: . It returns a parsed line
object just like the items in the iterator returned by .

For further information on the library API use on and
its contents in an interactive Python session, read the docstrings, or look at
the tests for some usage examples.

Further processing of blocks of filters separated by comments can be performed
using function from :

from abp.filters import parse_filterlist
from abp.filters.blocks import to_blocks

with open(fl_path) as f:
    for block in to_blocks(parse_filterlist(f)):
        print(json.dumps(block.to_dict(), indent=2))

Use on for more information.

Ad blocking

  • Specialization:
    English

    • Specialization:
      Bahasa Indonesia, Melayu

      supplement for
      EasyList
      .

    • Specialization:
      Tiếng Việt

      supplement for
      EasyList
      .

    • Specialization:
      български

      supplement for
      EasyList
      .

    • Specialization:
      norsk, norsk, norsk, dansk, íslenska, føroyskt, kalaallisut

      supplement for
      EasyList
      .

    • Specialization:
      中文

      supplement for
      EasyList
      .

      CJX’s Annoyance List

      Specialization:
      removes self-promotion and privacy protection, 中文

      supplement for
      EasyList China
      .

      by
      John

      Homepage

      Subscribe: CJX’s Annoyance List

    • Specialization:
      čeština, slovenčina

      supplement for
      EasyList
      .

    • Specialization:
      Nederlands

      supplement for
      EasyList
      .

    • Specialization:
      Deutsch

      supplement for
      EasyList
      .

    • Specialization:
      עברית

      supplement for
      EasyList
      .

    • Specialization:
      italiano

      supplement for
      EasyList
      .

    • Specialization:
      lietuvių kalba

      supplement for
      EasyList
      .

    • Specialization:
      polski

      supplement for
      EasyList
      .

    • Specialization:
      português

      supplement for
      EasyList
      .

    • Specialization:
      español

      supplement for
      EasyList
      .

    • Specialization:
      বাংলা (ভারত), ગુજરાતી (ભારત), भारतीय, ਪੰਜਾਬੀ (ਭਾਰਤ), অসমীয়া, मराठी, മലയാളം, తెలుగు, ಕನ್ನಡ, ଓଡ଼ିଆ, नेपाली, සිංහල

      supplement for
      EasyList
      .

    • Specialization:
      한국어

      supplement for
      EasyList
      .

    • Specialization:
      latviešu valoda

      supplement for
      EasyList
      .

    • Specialization:
      العربية

      supplement for
      EasyList
      .

    • Specialization:
      français

      supplement for
      EasyList
      .

    • Specialization:
      românesc

      supplement for
      EasyList
      .

    • Specialization:
      русский, українська

      supplement for
      EasyList
      .

    • Specialization:
      español

      supplement for
      EasyList
      .

    • Specialization:
      íslenska

      supplement for
      EasyList
      .

    • Specialization:
      ελληνικά

      supplement for
      EasyList
      .

  • Specialization:
    日本語

  • Specialization:
    日本語

  • Specialization:
    فارسی

  • Specialization:
    Eesti keel

  • Specialization:
    Eesti keel

  • Specialization:
    español

  • Specialization:
    magyar

  • Specialization:
    English

  • Specialization:
    Dhivehi

  • Specialization:
    dansk

  • Specialization:
    español

  • Specialization:
    italiano

  • Specialization:
    한국어

A free program for windows, by Eyeo GmbH

Most users will probably agree that ads are some of the most annoying things about the Internet experience. This is especially true when it comes to intrusive ads like pop-ups and clickbait. The best way to combat these ads is to install an ad blocker, and Adblock Plus is the most popular choice. This is for good reason because it is undoubtedly one of the best as well. Originally available for other browsers like Google Chrome and Mozilla Firefox, this program is a version of Adblock for Microsoft’s in-house browser, Microsoft Edge.

Not Much Different From Other Versions

As mentioned above, Adblock Plus is an ad blocker that was originally created for other platforms and browsers, and its performance in those browsers is very highly regarded. With this version of the ad blocker, there’s not much difference in terms of performance, process, and interface. Adblock Plus is well-known for being a very effective ad blocker and this version certainly lives up to its predecessors. It blocks most ads with ease and efficiency. Very few ads will be left visible on the page if any are left at all. The extension can also block pop-up ads which is always a great feature for any ad blocker. 

Installing and using the extension is just as easy as the other versions as well. It takes only a few seconds to install the program and once it is installed, Adblock Plus can be found on the toolbar. When you click on it, the simple interface of the extension will appear where you can disable the extension for a specific page and view the number of ads that have been blocked by the extension.

Problems With This Version

Probably the biggest issue people have with this version of the Adblock Plus is the fact that it sometimes interferes with other applications. One of the hottest criticisms is that it caused the browser to become unable to view and display PDF files. Understandably, this is a very annoying problem that must be solved. 

It also misses a few ads. This is a common problem with all versions of Adblock Plus, however. Additionally, most ad blockers tend to have this problem as well, so I wouldn’t give Adblock Plus too much of a hard time over this. That said, if you’re really looking to get rid of all the ads you come across in pages, this point is worth taking into consideration.

Good Overall

There’s no denying that Adblock Plus deserves its reputation as one of the best ad block extensions in the market today. It’s effective, powerful, and easy to use. Sure, there are some hiccups and problems, but it does its job and it does it well. Using this extension, you’ll be able to browse without the added hassle of annoying ads to confuse and frustrate you. All in all, this is an extension that I recommend anyone to use. Just make sure to support websites that you love, and turn off that ad blocker to let them know you care.

Is there payment involved?

Click for a detailed overview of our financials.

  1. The ‘Primary Content’ is defined as (based on Mozilla’s description of the HTML element): The Primary Content consists of content that is directly related to, or expands upon the central topic of a document or the central functionality of an application. This content should be unique to the document, excluding any content that is repeated across a set of documents such as sidebars, navigation links, copyright information, site logos, and search forms (unless, of course, the document’s main function is a search form). 

  2. The ‘common screen size’ for desktop is 1366×768, based on data from . 

  3. The ‘common screen size’ for mobile is 360×640, based on data from . 

  4. The ‘common screen size’ for tablets is 768×1024, based on data from . 

  5. Large ad: any ad >300px height 

  6. The visible portion of the webpage is defined as a standard CSS pixel size of 360x512px (Samsung Galaxy S7 with the SBrowser), which is based on the standard viewport of 360x640px, but with the OS- and browser UI elements deducted. 

  7. This means that users can scroll past the primary content and an ad unit served after it can take up the whole screen; but following this ad unit, additional ads cannot be implemented. 

  8. From: Iab New Standard Ad Unit Portfolio (2017) 

Acceptable Ads criteria

Acceptable Ads, as defined by the Acceptable Ads Committee, have to comply with the following criteria:

Desktop criteria

Ads must not disrupt the user’s natural reading flow. Such ads must be placed on top, side or below the Primary Content.

Distinction

Ads should always be recognizable as ads, and distinguishable from all other content (e.g. are not hiding the label, are not misleading users into thinking an ad is part of the primary content). Ads should be clearly marked with the word «advertisement» or its equivalent.

Size

Individual ad-size requirements depend on the placement of the ad:

  • When placed above the primary content, the maximum height of an ad should be 200px.
  • When placed on the side of the primary content, the maximum width of an ad should be 350px.
  • When placed below the primary content, the maximum height of an ad should be 400px.

Ads must always leave sufficient space for the Primary Content on the common screen size of 1366×768 for desktop, 360×640 for mobile devices and 768×1024 for tablets.

All ads that are placed above the fold (the portion of the web page visible in the browser window when the page first loads under the common screen size), must not occupy in total more than 15 percent of the visible portion of the web page. If placed below the fold, ads must not occupy in total more than 25 percent of the visible portion of the webpage.

Specific criteria

Image ads

Static image ads may qualify as acceptable, according to an evaluation of their unobtrusiveness based on their integration on the webpage.

In-feed ads

For ads in lists and feeds, the general criteria differ depending on:

  • Placement requirementsAds are permitted in between entries and feeds.
  • Size requirementsIn-feed ads are permitted to take up more space, as long as they are not substantially larger than other elements in the list or feed.

Search ads

For search ads — ads displayed following a user-initiated search query — the criteria differ depending on:

Size requirementsSearch ads are permitted to be larger and take up additional screen space.

Ads on pages with no primary content

Only text ads are allowed. For webpages without any primary content (e.g. error or parking pages), the criteria differ depending on:

  • Placement requirementsNo placement limitations.
  • Size requirementsNo size limitations.

Mobile criteria

  • Static ad types (e.g. 6×1 banner and 1×1 tile ad) are allowed to be placed anywhere on the mobile page
  • Small ads (6×1 banner or smaller) are allowed to be placed as a sticky ad on the bottom of the screen. Other formats are not allowed to stick.
  • Large ad types (e.g. native tile ads) are only allowed to be placed under the Primary Content.

Size Requirements

Ads showing on mobile screens are bound to the following size restrictions:

  • Ads implemented on the scrollable portion of the webpage must not occupy in total more than 50 percent of the visible portion of the webpage.
  • Ads implemented as a ‘sticky ad’ have a maximum height restriction of 75px (or 15%).
  • Below the Primary Content, ads are limited to 100% of the screen space.

Animations

Animations are allowed for the 6×1 ad type when placed as a ‘sticky’ ad on the bottom of the screen. Animations have to comply with the LEAN standard for animations, and a close button or some other closing mechanism must be included.

Are your ads displayed on alternative screens, or are you convinced that you have an innovative Acceptable Ads format which doesn’t fit the ads outlined above?

How to block ads on Facebook

Getting tired of ads cluttering your Facebook timeline? Use Adblock Plus to block all Facebook ads. After installation, Adblock Plus automatically blocks all ads, including Facebook advertising.

For Google Chrome, Adblock Plus can be installed by visiting the Chrome installation page and clicking on the install button. Just confirm the installation by clicking on «Add», and refresh Facebook. You will see that all Facebook ads will be blocked!

Adblock Plus for Firefox can be installed by visiting the Firefox installation page and clicking on the install button. Firefox will ask you to confirm the installation of the add-on twice, so click on «Allow» and then «Install Now». After the installation process, Adblock Plus will be blocking all those annoying Facebook ads.

Social media blocking

Don’t see your filter list here? Send us your list along with any information that you want displayed on this page. Note that in order to be included on this list, your subscription must contain a brief overview describing the origin of the filter list and the preferred way of contacting you should a problem arise. Please keep in mind that you should be able to fix any issue with your list within a reasonable amount of time.

All filter lists on this page are maintained by third parties. eyeo, the company behind Adblock Plus, has no control over them. We only list them to help you find subscriptions that may be useful for you. In no case shall eyeo be held liable towards you, or any other third party, for any loss or damage (including, but not limited to, loss of chances and of business) deriving directly or indirectly from your use of these lists.

Generating diffs

A diff allows a client running ad blocking software such as Adblock Plus to
update the filter lists incrementally, instead of downloading a new copy of a
full list during each update. This is meant to lessen the amount of resources
used when updating filter lists (e.g. network data, memory usage, battery
consumption, etc.), allowing clients to update their lists more frequently
using less resources.

python-abp contains a script called that will find the diff between
the latest filter list, and any number of previous filter lists:

$ fldiff -o diffs/easylist/ easylist.txt archive/*

where is the (optional) output directory where the diffs
should be written, is the most recent version of the filter
list, and is the directory where all the archived filter lists are.
When called like this, the shell should automatically expand the
directory, giving the script each of the filenames separately.

In the above example, the output of each archived will be
written to . If the output argument is omitted, the
diffs will be written to the current directory.

  • Special comments of the form
  • Added filters of the form
  • Removed filters of the form

Rendering of filter lists

The filter lists are originally authored in relatively smaller parts focused
on particular types of filters, related to a specific topic or relevant for a
particular geographical area.
We call these parts filter list fragments (or just fragments) to
distinguish them from full filter lists that are consumed by the adblocking
software such as Adblock Plus.

Python-abp contains a script that can do this called :

$ flrender fragment.txt filterlist.txt

This will take the top level fragment in , render it and save it
into .

The script can also be used by only specifying :

$ flrender fragment.txt

in which case the rendering result will be sent to . Moreover, when
it’s run with no positional arguments:

$ flrender

it will read from and send the results to .

Fragments might reference other fragments that should be included into them.
The references come in two forms: http(s) includes and local includes:

%include http://www.server.org/dir/list.txt%
%include easylist:easylist/easylist_general_block.txt%

The http include contains a URL that will be fetched and inserted at the point
of reference.
The local include contains a path inside the easylist repository.
needs to be able to find a copy of the repository on the local
filesystem. We use option to point it to to the right directory:

$ flrender -i easylist=/home/abc/easylist input.txt output.txt

Now the local include referenced above will be resolved to:

and the fragment will be loaded from this file.

Directories that contain filter list fragments that are used during rendering
are called sources.
They are normally working copies of the repositories that contain filter list
fragments.
Each source is identified by a name: that’s the part that comes before «:» in
the include instruction and it should be the same as what comes before «=» in
the option.

Commonly used sources have generally accepted names. For example the main
EasyList repository is referred to as .
If you don’t know all the source names that are needed to render some list,
just run and it will report what it’s missing:

$ flrender easylist.txt output/easylist.txt
Unknown source: 'easylist' when including 'easylist:easylist/easylist_gener
al_block.txt' from 'easylist.txt'

You can clone the necessary repositories to a local directory and add
options accordingly.

How to disable social media buttons

Almost every website today contains buttons of social media platforms, such as Facebook, Twitter, Google + and others. Even if you never click these buttons, your browsing data is still being transferred to these platforms in order to create a profile based on your browsing habits.

If you want to browse the web without being observed by the social media websites, Adblock Plus offers an easy solution to remove these buttons.

Disable social media buttons in Mozilla Firefox

If you want to block social media buttons in Firefox, just follow these easy steps: simply click here and choose «Add subscription».

Disable social media buttons in Google Chrome

In Adblock Plus for Google Chrome it is very simple to remove social media buttons by adding a new filterlist to subscriptions. All you have to do is simply click here, and then click «Add» in the filterlist settings of Adblock Plus.

How to disable online tracking

There are many companies that collect data about your browsing habits across multiple websites. Even your browsing history is being examined and collected. Few users have no problems with these practices, because firms can better target ads tailored to their needs. However, there are hundreds of ad agencies that collect a loads of data about you and your browsing habits. If you do not want your online behavior being tracked by other companies, you can use Adblock Plus to disable all online tracking practices. According to this Stanford University Study, Adblock Plus is the best solution to protect yourself against online tracking.

See if you want to disable tracking from companies like Facebook and Google by removing the social media buttons from all websites.

Disable online tracking in Firefox

Online tracking can be disabled by adding a new filterlist subscription to Adblock Plus. The so-called «EasyPrivacy» filter will block all tracking requests made by websites. To add this list to Adblock Plus, simply click here, and click «Add subscription».

Disable online tracking in Google Chrome

In Google Chrome, Adblock Plus can disable all unwanted tracking practices from advertising companies. Disabling tracking can be done by installing and enabling the «EasyPrivacy» filterlist subscription, by opening this dialog. Click on «Add» to protect yourself against tracking in Chrome.

Using the library with R

can be installed from PyPI or from the source code, either
directly onto a system or in a virtual environment.

To install from PyPI:

$ pip install -U python-abp

To install from a local source, clone the repo and then:

$ pip install -U /path/to/python-abp

To use the virtual environment, it must first be created. Python 2 and 3 use
different scripts to create a virtualenv.

In Python 2:

$ virtualenv env

In Python 3:

$ python3 -m venv env

Then, use the virtualenv’s version of pip to install python-abp, either from
PyPI or from source (as shown above):

$ env/bin/pip install -U python-abp

In R, can be imported with :

> library(reticulate)
> use_virtualenv("~/path/to/env", required=TRUE)  # If using virtualenv
> abp <- import("abp.filters.rpy")

Now you can use the functions with , e.g.

How to block ads on YouTube

One of the greatest online annoyances is the 30-second commercials you have to sit through to see a 20-second movie on YouTube. Although people are complaining about this continuously, it is expected that this way of advertising will only grow in the near future. With Adblock Plus, it is very easy to block the video ads on Youtube. Just install Adblock Plus and all YouTube video ads will be blocked.

For Google Chrome, Adblock Plus can be installed by visiting the Chrome installation page and clicking on the install button. After the small pop-up window pops up, click on «Add». Adblock Plus is now automatically blocking all annoying YouTube video ads.

For Firefox, you can install Adblock Plus by visiting the Firefox installation page and clicking on the install button. Confirm the installation by clicking «Allow» on the first one, and «Install Now» on the second. Out of the box, Adblock Plus automatically blocks all those annoying video ads from YouTube.

Exploring the Documentation

ABP has a comprehensive documentation that not only explains the ABP Framework, but also includes guides and samples to help you on creating a maintainable solution by introducing and discussing common software development principle and best practices.

Architecture

ABP offers a complete, modular and layered software architecture based on Domain Driven Design principles and patterns. It also provides the necessary infrastructure to implement this architecture.

  • See the Modularity document to understand the module system.
  • Implementing Domain Driven Design book is an ultimate guide for who want to understand and implement the DDD with the ABP Framework.
  • Microservice Architecture document explains how ABP helps to create a microservice solution.
  • Multi-Tenancy document introduces multi-tenancy and explores the ABP multi-tenancy infrastructure.

Infrastructure

There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like Event Bus, Background Job System, Audit Logging, BLOB Storing, Data Seeding, Data Filtering.

Cross Cutting Concerns

ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like Exception Handling, Validation, Authorization, Localization, Caching, Dependency Injection, Setting Management, etc.

Application Modules

Application Modules provides pre-built application functionalities;

  • Account: Provides UI for the account management and allows user to login/register to the application.
  • Identity: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library.
  • IdentityServer: Integrates to IdentityServer4.
  • Tenant Management: Manages tenants for a multi-tenant (SaaS) application.

See the Application Modules document for all pre-built modules.

Startup Templates

The Startup templates are pre-built Visual Studio solution templates. You can create your own solution based on these templates to immediately start your development.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector