[IMP] l10n_br: include electronic invoicing flow

With the addition of l10n_br_edi and l10n_br_edi_sale to the previous modules, now electronic invoices for goods can be created from Odoo.

This PR includes the necessary information to use these new modules - configuration and workflows.

closes odoo/documentation#6877

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
This commit is contained in:
Valentino 2023-12-07 06:42:36 -08:00 committed by Sam Lieber (sali)
parent e4fd701fd2
commit f23dcb7d35
11 changed files with 271 additions and 112 deletions

View File

@ -21,6 +21,8 @@ vendors because of modifications to confirmed customer invoices or vendor bills.
:doc:`return </applications/sales/sales/products_prices/returns>` if a storable product is
returned.
.. _accounting/issue-credit-note:
Issue a credit note
===================
@ -72,6 +74,8 @@ prefilled with the same details from the original invoice.
This is the option to **modify** the content of a *validated* invoice.
.. _accounting/issue-debit-note:
Issue a debit note
==================

View File

@ -3,17 +3,20 @@ Brazil
======
.. |IAP| replace:: :abbr:`IAP (In-app-purchase)`
.. |API| replace:: :abbr:`API (Application programming interface)`
.. |SO| replace:: :abbr:`SO (Sales order)`
Introduction
============
With the Brazilian localization you can automatically compute sales taxes for goods using AvaTax
(Avalara) through API calls, also configure taxes for services.
With the Brazilian localization, sales taxes can be automatically computed and electronic invoices
(NF-e) for goods can be sent using AvaTax (Avalara) through |API| calls. Moreover, taxes for
services can be configured.
For the goods tax computation part, you need to configure the :ref:`contacts <brazil/contacts>`,
:ref:`company <brazil/company>`, :ref:`products <brazil/products>`, and :ref:`create an account in
Avatax <brazil/avatax-account>` from the Odoo general settings.
For the goods tax computation and electronic invoicing process, you need to configure the
:ref:`contacts <brazil/contacts>`, :ref:`company <brazil/company>`, :ref:`products
<brazil/products>`, and :ref:`create an account in Avatax <brazil/avatax-account>` need to be
configured in the general settings.
For the services taxes, you can create and configure them from Odoo directly without computing them
with AvaTax.
@ -24,37 +27,9 @@ needed.
Configuration
=============
Modules installation
--------------------
:ref:`Install <general/install>` the following modules to get all the features of the Brazilian
localization:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`Brazilian - Accounting`
- `l10n_br`
- Default :ref:`fiscal localization package <fiscal_localizations/packages>` - adds accounting
characteristics for the Brazilian localization, which represent the minimum configuration
required for a company to operate in Brazil. The module's installation automatically loads:
the chart of accounts, taxes, and required fields to properly configure the contact.
* - :guilabel:`Brazil - Accounting Reports`
- `l10n_br_reports`
- Adds a simple tax report that helps check the tax amount per tax group in a given period of
time. Also adds the P&L and BS adapted for the Brazilian market.
* - :guilabel:`Avatax Brazil`
- `l10n_br_avatax`
- Add Brazilian tax calculation via Avatax and all necessary fields needed to configure Odoo in
order to properly use Avatax and send the needed fiscal information to retrieve the correct
taxes.
* - :guilabel:`Avatax for SOs in Brazil`
- `l10n_br_avatax_sale`
- Same as the `l10n_br_avatax` module with the extension to the sales order module.
Install the :guilabel:`🇧🇷 Brazil` :ref:`fiscal localization package
<fiscal_localizations/packages>` to get all the default accounting features of the Brazilian
localization, following the :abbr:`IFRS (International Financial Reporting Standards)` rules.
.. _brazil/company:
@ -67,30 +42,36 @@ given to your company.
#. Select the :guilabel:`Company` option at the top of the page. Then, configure the following
fields:
- :guilabel:`Name`
- :guilabel:`Name`.
- :guilabel:`Address` (add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`)
- Tax ID (:guilabel:`CNPJ`)
- :guilabel:`IE` (State Registration)
- :guilabel:`IM` (Municipal Registration)
- :guilabel:`SUFRAMA code` (Superintendence of the Manaus Free Trade Zone - add if applicable)
- :guilabel:`Phone`
- :guilabel:`Email`
:guilabel:`Country`).
.. image:: brazil/company-configuration.png
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Identification Number` (:guilabel:`CNPJ`, :guilabel:`CPF`).
- :guilabel:`Tax ID` (associated with the identification type).
- :guilabel:`IE` (State registration).
- :guilabel:`IM` (Municipal registration).
- :guilabel:`SUFRAMA code` (Superintendence of the Manaus Free Trade Zone - add if applicable).
- :guilabel:`Phone`.
- :guilabel:`Email`.
.. image:: brazil/contact-configuration.png
:alt: Company configuration.
#. Configure the :guilabel:`Fiscal Information` within the :guilabel:`Sales and Purchase` tab:
- Add the :guilabel:`Fiscal Position` for :ref:`Avatax Brazil <brazil/fiscal-positions>`.
- :guilabel:`Tax Regime` (Federal Tax Regime)
- :guilabel:`ICMS Taxpayer Type` (indicates ICMS regime, Exempt status, or Non-Taxpayer.)
- :guilabel:`Main Activity Sector`
- :guilabel:`Tax Regime` (Federal Tax Regime).
- :guilabel:`ICMS Taxpayer Type` (indicates ICMS regime, Exempt status, or Non-Taxpayer).
- :guilabel:`Main Activity Sector`.
.. image:: brazil/contact-fiscal-configuration.png
:alt: Company fiscal configuration.
:alt: Company fiscal configuration.
#. Finally, upload a company logo and save the contact.
#. Finally, upload a company logo and save the contact
.. note::
If you are a simplified regime, you need to configure the ICMS rate under
@ -101,62 +82,72 @@ given to your company.
Configure AvaTax integration
----------------------------
Avalara AvaTax is a tax calculation provider that can be integrated in Odoo to automatically compute
taxes by taking into account the company, contact (customer), product, and transaction information
to retrieve the correct tax to be used.
Avalara AvaTax is a tax calculation and electronic invoicing provider that can be integrated in Odoo
to automatically compute taxes by taking into account the company, contact (customer), product, and
transaction information to retrieve the correct tax to be used and process the e-invoice afterward
with the government.
Odoo is a certified partner of Avalara Brazil, which means that Avalara experts reviewed workflows
covered within the scope of the integration.
Using this integration requires :doc:`In-App-Purchases (IAPs) <../../general/in_app_purchase>` to
compute the taxes and to send the electronic invoices. Whenever you compute taxes, an |API| call is
made using credits from your |IAP| credits balance.
Using this integration requires :doc:`In-App-Purchases (IAPs)
</applications/general/in_app_purchase>` to compute taxes. Every time you compute taxes, an API call
is made, using credits from your |IAP| credits balance.
.. note::
Odoo is a certified partner of Avalara Brazil.
Credential configuration
~~~~~~~~~~~~~~~~~~~~~~~~
To activate AvaTax in Odoo, you need to create an account. To do so, go to
:menuselection:`Accounting --> Configuration --> Settings --> Taxes`, and, in the :guilabel:`AvaTax
Brazil` section, add the email address you want to use to log in to the AvaTax portal, and click on
:guilabel:`Create account`. This email is used as the administrator email address in AvaTax.
:menuselection:`Accounting --> Configuration --> Settings --> Taxes`, and in the :guilabel:`AvaTax
Brazil` section, add the administration email address to be used for the AvaTax portal in the
:guilabel:`Avatax Portal Email`, and then click on :guilabel:`Create account`.
.. warning::
When **testing** an :guilabel:`Avatax Portal Email` integration in a testing or sandbox database,
use an alternate email address. It is **not** possible to re-use the same email address on the
production database.
After you create the account from Odoo, you need to go to the Avalara Portal to set up your
password:
#. Access the `Avalara portal <https://portal.avalarabrasil.com.br/Login>`_
#. Click on :guilabel:`Meu primeiro acesso`
#. Access the `Avalara portal <https://portal.avalarabrasil.com.br/Login>`_.
#. Click on :guilabel:`Meu primeiro acesso`.
#. Add the email address you used in Odoo to create the Avalara/Avatax account, and then click
:guilabel:`Solicitar Senha`
:guilabel:`Solicitar Senha`.
#. You will receive an email with a token and a link to create your password. Click on this link and
copy-paste the token to allocate your desired password.
.. warning::
If you intend first to try the integration on a testing or sandbox database, using an alternate
email address is recommended, as you won't be able to re-use the same email address on your
production database.
.. tip::
You can start using AvaTax in Odoo without creating a password and accessing the Avalara Portal;
for Odoo, the only requirement to start using the Avalara Tax Computation Engine is to create an
account from the settings page.
You can start using AvaTax in Odoo for tax computation **only** without creating a password and
accessing the Avalara portal in the Odoo database. However, in order to use the electronic
invoice service, you **must** access the AvaTax portal and upload your certificate there.
.. image:: brazil/avatax-account-configuration.png
:alt: Avatax account configuration.
.. note::
You can transfer API credentials. Use this only when you have already created an account in
You can transfer |API| credentials. Use this only when you have already created an account in
another Odoo instance and wish to reuse it.
A1 certificate upload
~~~~~~~~~~~~~~~~~~~~~
In order to issue electronic invoices, a certificate needs to be uploaded to the `AvaTax portal
<https://portal.avalarabrasil.com.br/Login>`_.
The certificate will be synchronized with Odoo, as long as the external identifier number in the
AvaTax portal matches - without special characters - with the CNPJ number, and the identification
number (CNPJ) in Odoo matches with the CNPJ in AvaTax.
Configure master data
---------------------
Chart of accounts
~~~~~~~~~~~~~~~~~
The :doc:`chart of accounts </applications/finance/accounting/get_started/chart_of_accounts>` is
installed by default as part of the data set included in the localization module. The accounts are
mapped automatically in their corresponding taxes, and the default account payable and account
receivable fields.
The :doc:`chart of accounts <../accounting/get_started/chart_of_accounts>` is installed by default
as part of the data set included in the localization module. The accounts are mapped automatically
in their corresponding taxes, and the default account payable and account receivable fields.
.. note::
The chart of accounts for Brazil is based on the SPED CoA, which gives a baseline of the accounts
@ -164,6 +155,27 @@ receivable fields.
You can add or delete accounts according to the company's needs.
Journals
~~~~~~~~
In Brazil, a *series* number is linked to a sequence number range for electronic invoices. The
series number can be configured in Odoo on a sales journal from the :guilabel:`Series` field. If
more than one series is needed, then a new sales journal will need to be created and a new series
number assigned to it for each series needed.
The :guilabel:`Use Documents` field needs to be selected. When issuing electronic and non-electronic
invoices, the :guilabel:`Type` field selects the document type used when creating the invoice. The
:guilabel:`Type` field will only be displayed if the :guilabel:`Use Documents` field is selected on
the journal.
.. image:: brazil/journal-configuration.png
:alt: Journal configuration with the Use Documents? field checked.
.. note::
When creating the journal, ensure the field :guilabel:`Dedicated Credit Note Sequence` is
unchecked, as in Brazil, sequences between invoices, credit notes, and debit notes are shared per
series number, which means per journal.
Taxes
~~~~~
@ -182,9 +194,6 @@ added or subtracted on top of the product price), set the :guilabel:`Tax Computa
:guilabel:`Percentage of Price Tax Included`, and, on the :guilabel:`Advanced Options` tab, check
the :guilabel:`Included in Price` option.
For more information on configuring taxes to fit your needs better, please go to the :doc:`taxes
functional documentation </applications/finance/accounting/taxes>`.
.. image:: brazil/tax-configuration.png
:alt: Tax configuration.
@ -194,6 +203,9 @@ functional documentation </applications/finance/accounting/taxes>`.
to register the tax needs to be re-configured in the tax's :guilabel:`Definition` tab, under the
:guilabel:`Distribution for invoices` and :guilabel:`Distribution for refunds` sections.
.. seealso::
:doc:`Taxes functional documentation <../accounting/taxes>`
.. _brazil/products:
Products
@ -202,12 +214,12 @@ Products
To use the AvaTax integration on sale orders and invoices, first specify the following information
on the product:
- :guilabel:`CEST Code` (Code for products subject to ICMS tax substitution)
- :guilabel:`Mercosul NCM Code` (Mercosur Common Nomenclature Product Code)
- :guilabel:`CEST Code` (Code for products subject to ICMS tax substitution).
- :guilabel:`Mercosul NCM Code` (Mercosur Common Nomenclature Product Code).
- :guilabel:`Source of Origin` (Indicates the origin of the product, which can be foreign or
domestic, among other possible options depending on the specific use case)
- :guilabel:`SPED Fiscal Product Type` (Fiscal product type according to SPED list table)
- :guilabel:`Purpose of Use` (Specify the intended purpose of use for this product)
domestic, among other possible options depending on the specific use case).
- :guilabel:`SPED Fiscal Product Type` (Fiscal product type according to SPED list table).
- :guilabel:`Purpose of Use` (Specify the intended purpose of use for this product).
.. image:: brazil/product-configuration.png
:alt: Product configuration.
@ -217,7 +229,7 @@ on the product:
sales. These are named `Freight`, `Insurance`, and `Other Costs`. They are already configured, if
more need to be created, duplicate and use the same configuration (configuration needed:
:guilabel:`Product Type` `Service`, :guilabel:`Transportation Cost Type` `Insurance`, `Freight`,
or `Other Costs`)
or `Other Costs`).
.. _brazil/contacts:
@ -230,14 +242,20 @@ Before using the integration, specify the following information on the contact:
- Select the :guilabel:`Company` option for a contact with a tax ID (CNPJ), or check
:guilabel:`Individual` for a contact with a CPF.
- :guilabel:`Name`
- :guilabel:`Address`: :guilabel:`Zip Code` is a required field to compute taxes properly.
- :guilabel:`Tax ID` or :guilabel:`CPF`: Use CPF for individuals and Tax ID (CNPJ) for companies
- :guilabel:`IE`: state tax identification number
- :guilabel:`IM`: municipa tax identification number
- :guilabel:`SUFRAMA code`: SUFRAMA registration number
- :guilabel:`Phone`
- :guilabel:`Email`
- :guilabel:`Name`.
- :guilabel:`Address` (add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`).
- In the :guilabel:`Street` field, enter the street, number, and any extra address information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Identification Number` (:guilabel:`CNPJ`, :guilabel:`CPF`).
- :guilabel:`Tax ID` (associated with the identification type).
- :guilabel:`IE`: state tax identification number.
- :guilabel:`IM`: municipal tax identification number.
- :guilabel:`SUFRAMA code`: SUFRAMA registration number.
- :guilabel:`Phone`.
- :guilabel:`Email`.
.. image:: brazil/contact-configuration.png
:alt: Contact configuration.
@ -246,25 +264,26 @@ Before using the integration, specify the following information on the contact:
The :guilabel:`CPF`, :guilabel:`IE`, :guilabel:`IM`, and :guilabel:`SUFRAMA code` fields are
are hidden until the :guilabel:`Country` is set to `Brazil`.
#. Fiscal information about the contact under the :guilabel:`Sales & Purchase` tab:
#. Fiscal information about the contact under the :guilabel:`Sales \& Purchase` tab:
- :guilabel:`Fiscal Position`: add the AvaTax fiscal position to automatically compute taxes on
sale orders and invoices automatically.
sale orders and invoices automatically
- :guilabel:`Tax Regime`: federal tax regime
- :guilabel:`ICMS Taxpayer Type`: taxpayer type determines if the contact is within the ICMS
regime, if it is exempt, or if it is a non-taxpayer.
regime, if it is exempt, or if it is a non-taxpayer
- :guilabel:`Main Activity Sector`: list of main activity sectors of the contact
.. image:: brazil/contact-fiscal-configuration.png
:alt: Contact fiscal configuration.
:alt: Contact fiscal configuration.
.. _brazil/fiscal-positions:
Fiscal positions
~~~~~~~~~~~~~~~~
To compute taxes on sale orders and invoices, it is necessary to have a :guilabel:`Fiscal Position`
with the :guilabel:`Detect Automatically` and the :guilabel:`Use AvaTax API` options enabled.
To compute taxes and send electronic invoices on sale orders and invoices, both the
:guilabel:`Detect Automatically` and the :guilabel:`Use AvaTax API` options need to be enabled in
the :guilabel:`Fiscal Position`.
The :guilabel:`Fiscal Position` can be configured on the contact or selected when creating a sales
order or an invoice.
@ -275,16 +294,21 @@ order or an invoice.
Workflows
=========
This section provides an overview of the actions that trigger API calls for tax computation.
This section provides an overview of the actions that trigger `API calls
<https://en.wikipedia.org/wiki/API>`_ for tax computation, and how to send an electronic invoice for
goods (NF-e) for government validation.
.. warning::
Please note that each API call incurs a cost. Be mindful of the actions that trigger these calls
to manage costs effectively.
Please note that each |API| call incurs a cost. Be mindful of the actions that trigger these
calls to manage costs effectively.
Tax calculations on quotation / sales orders
--------------------------------------------
Tax computation
---------------
Trigger an API call to calculate taxes on a quotation or sales order automatically with AvaTax in
Tax calculations on quotations and sales orders
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Trigger an |API| call to calculate taxes on a quotation or sales order automatically with AvaTax in
any of the following ways:
- **Quotation confirmation**
@ -296,12 +320,13 @@ any of the following ways:
- **Email a quotation / sales order**
Send a quotation or sales order to a customer via email.
- **Online quotation access**
When a customer accesses the quotation online (via the portal view), the API call is triggered.
When a customer accesses the quotation online (via the portal view), the |API| call is
triggered.
Tax calculations on invoices
----------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Trigger an API call to calculate taxes on a customer invoice automatically with AvaTax any of the
Trigger an |API| call to calculate taxes on a customer invoice automatically with AvaTax any of the
following ways:
- **Manual trigger**
@ -309,12 +334,142 @@ following ways:
- **Preview**
Click on the :guilabel:`Preview` button.
- **Online invoice access**
When a customer accesses the invoice online (via the portal view), the API call is triggered.
When a customer accesses the invoice online (via the portal view), the |API| call is triggered.
.. note::
The :guilabel:`Fiscal Position` must be set to `Automatic Tax Mapping (Avalara Brazil)` for any
of these actions to compute taxes automatically.
.. seealso::
:doc:`Fiscal positions (tax and account mapping)
</applications/finance/accounting/taxes/fiscal_positions>`
:doc:`Fiscal positions (tax and account mapping) <../accounting/taxes/fiscal_positions>`
.. _brazil/electronic-documents:
Electronic documents
--------------------
Customer invoices
~~~~~~~~~~~~~~~~~
To process an electronic invoice for goods (NF-e), the invoice needs to be confirmed and taxes need
to be computed by Avalara. Once that step is done, click on the :guilabel:`Send \& Print` button in
the upper left corner, and a pop-up will appear. Then click on :guilabel:`Process e-invoice` and any
of the other options - :guilabel:`Download` or :guilabel:`Email`. Finally, click on :guilabel:`Send
\& Print` to process the invoice against the government.
Before sending the electronic invoice for goods (NF-e) some fields need to be filled out on the
invoice:
- :guilabel:`Customer` with all the customer information
- :guilabel:`Payment Method: Brazil` (how the invoice is planned to be paid)
- :guilabel:`Fiscal Position` set as the :guilabel:`Automatic Tax Mapping (Avalara Brazil)`
- :guilabel:`Document Type` set as :guilabel:`(55) Electronic Invoice (NF-e)`. This is the only
electronic document supported at the moment. Non-electronic invoices can be registered, and other
document types can be activated if needed
There are some other optional fields that depend on the nature of the transaction. These fields are
not required, so no errors will appear from the government if these optional fields are not
populated for most cases:
- :guilabel:`Freight Model` determines how the goods are planned to be transported - domestic
- :guilabel:`Transporter Brazil` determines who is doing the transportation
.. image:: brazil/invoice-info-needed.png
:alt: Invoice information needed to process an electronic invoice.
.. image:: brazil/process-electronic-invoice.png
:alt: Process electronic invoice pop-up in Odoo.
.. note::
All of the fields available on the invoice used to issue an electronic invoice are also available
on the sales order, if needed. When creating the first invoice, the field :guilabel:`Document
Number` is displayed, allocated as the first number to be used sequentially for subsequent
invoices.
Credit notes
~~~~~~~~~~~~
If a sales return needs to be registered, then a credit note can be created in Odoo to be sent to
the government for validation.
.. seealso::
:ref:`Issue a credit note <accounting/issue-credit-note>`
Debit Notes
~~~~~~~~~~~
If additional information needs to be included, or values need to be corrected that were not
accurately provided in the original invoice, a debit note can be issued.
.. important::
Only the products included in the original invoice can be part of the debit note. While changes
can be made to the product's unit price or quantity, products **cannot** be added to the debit
note. The purpose of this document is only to declare the amount that you want to add to the
original invoice for the same or fewer products.
.. seealso::
:ref:`Issue a debit note <accounting/issue-debit-note>`
Invoice cancellation
~~~~~~~~~~~~~~~~~~~~
It is possible to cancel an electronic invoice that was validated by the government.
.. important::
Check whether the electronic invoice is still within the cancellation deadline, which may vary
according to the legislation of each state.
This can be done in Odoo by clicking :guilabel:`Request Cancel` and adding a cancellation
:guilabel:`Reason` on the pop-up that appears. If you want to send this cancellation reason to the
customer via email, activate the :guilabel:`E-mail` checkbox.
.. image:: brazil/invoice-cancellation.png
:alt: Invoice cancellation reason in Odoo.
Correction letter
~~~~~~~~~~~~~~~~~
A correction letter can be created and linked to an electronic invoice that was validated by the
government.
This can be done in Odoo by clicking :guilabel:`Correction Letter` and adding a correction
:guilabel:`Reason` on the pop-up that appears. To send this correction reason to a customer via
email, activate the :guilabel:`E-mail` checkbox.
.. image:: brazil/correction-letter.png
:alt: Correction letter reason in Odoo.
Invalidate invoice number range
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A range of sequences that are assigned to sales journals can be invalidated with the government if
they are not currently used, **and** will not be used in the future. To do so, navigate to the
journal, and click the :menuselection:`⚙️ (gear) icon --> Invalidate Number Range (BR)`. On the
:guilabel:`Invalidate Number Range (BR)` wizard, add the :guilabel:`Initial Number` and
:guilabel:`End Number` of the range that should be canceled, and enter an invalidation
:guilabel:`Reason`.
.. image:: brazil/range-number-invalidation.png
:alt: Number range invalidation selection in Odoo.
.. image:: brazil/range-number-invalidation-wizard.png
:alt: Number range invalidation wizard in Odoo.
.. note::
The log of the canceled numbers along with the XML file are recorded in the chatter of the
journal.
Vendor bills
------------
On the vendor bills side, when receiving an invoice from a supplier, you can encode the bill in Odoo
by adding all the commercial information together with the same Brazilian specific information that
is recorded on the :ref:`customer invoices <brazil/electronic-documents>`.
These Brazilian specific fields are:
- :guilabel:`Payment Method: Brazil` (how the invoice is planned to be paid).
- :guilabel:`Document Type` used by your vendor.
- :guilabel:`Document Number` (the invoice number from your supplier).
- :guilabel:`Freight Model` (how goods are planned to be transported - domestic).
- :guilabel:`Transporter Brazil` (who is doing the transportation).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB