You will be provided with the PNG image that was obtained as a result of scanning the airline ticket invoice and check.
The invoice may not have been scanned accurately and some information may have been lost.
Your task is to recognize the data in the scanned image.

# Invoice header
The Invoice header contains the company logo on the left.
The company address is in the center.
To the right is the invoice date ("invoiceDate") in the format "DD-MMM-YYYY", where DD is the day, MMM is the three-letter designation of the month, and YY is the year.
To the right from invoice date is the invoice number as 7-digit integer ("invoiceNumber").
Under the invoice number is the reference number, an integer ("referenceNumber").

You should recognize the following data in the invoice header:
* Invoice number (7-digit integer) as "invoiceNumber".
* Invoice date (in the format "DD-MMM-YYYY") as "invoiceDate".
* Reference number (integer) as "referenceNumber".

# Main table
There is a table under the document header with columns:
* "Date": date in the format 'DD-MMM-YY', where DD is the day, MMM is the three-letter designation of the month, and YY is the year.
* "Invoice /Credit Memo":  ticket number as 13-digits integer.
* "Description": first and last passenger names separated by comma, uppercase Latin letters.
* "Gross": Gross cost, decimal number, two decimal places.
* Discount Amount: discount, decimal number, two decimal places.
* "Net": net cost, decimal number, two decimal places.
This table may contain several rows.

You should recognize the following data for each row of the main table to the "passengers" array:
* "Invoice /CreditMemo" (13-digits integer) as "ticketNumber".
* "Description" (first and last passenger names separated by comma) as "passengerName".
* "Gross" (gross cost, decimal number, two decimal places) as "gross".
* "Net" (net cost, decimal number, two decimal places) as "net".

The bottom row of the table has the heading "Total" and the values in the columns:
* "Gross": total gross cost, decimal number, two decimal places.
* "Discount Amount": total discount, decimal number, two decimal places.
* "Net": total net cost, decimal number, two decimal places.

You should recognize the value in the "Net" column (decimal number, two decimal places) and return it as "totalNet".

# Bottom check details
At the bottom are the check details.

On the right is the "CHECK NUMBER" heading and behind it is the check number (7-digit number).
This value must match the value "invoiceNumber" from the invoice header.

Below on the right, after the "DATE" and "CHECK AMOUNT" headings, are the check date and behind it is the check amount.
Check date must match the value "invoiceDate" from the invoice header.
Check amount should match the value from the "Total" row of the "Net" column ("totalNet").

You should recognize the following data in the bottom check details:
* Check number (7-digit integer) as "checkNumber".
* Check date (in the format "DD-MMM-YY") as  "checkDate".
* Check amount (decimal number, two decimal places) as "checkAmount".

If some value cannot be recognized, return "null" instead.

JSON schema for answer:
<json>
{
  "name": "invoice",
  "strict": true,
  "schema": {
    "type": "object",
    "properties": {
	  "invoiceNumber": {
        "type": "integer",
        "description": "Invoice number, 7-digit integer"
      },
	  "invoiceDate": {
        "type": "string",
        "description": "Invoice creation date. Date in the format 'DD-MMM-YY', where DD is the day, MMM is the three-letter month, and YY is the year"
      },
	  "referenceNumber": {
        "type": "integer",
        "description": "Reference number, integer"
      },
      "passengers": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "ticketNumber": {
              "type": "string",
              "description": "ticket number an 13-digit integer"
            },
            "passengerName": {
              "type": "string",
              "description": "first and last passenger names separated by comma, uppercase Latin letters"
            },
            "gross": {
              "type": "string",
              "description": "gross cost, decimal number, two decimal places"
            },
            "net": {
              "type": "string",
              "description": "net cost, decimal number, two decimal places"
            }
          },
          "required": [
            "ticketNumber",
            "passengerName",
            "gross",
            "net"
          ],
          "additionalProperties": false
        }
      },
      "totalNet": {
        "type": "number",
        "description": "total net amount, decimal number, two decimal places"
      },
      "checkNumber": {
        "type": "integer",
        "description": "Check number, 7-digit integer"
      },
	  "checkDate": {
        "type": "string",
        "description": "Check date. Date in the format 'DD-MMM-YY', where DD is the day, MMM is the three-letter month, and YY is the year"
      },
      "checkAmount": {
        "type": "number",
        "description": "the check amount, a decimal number with two decimal places (and possibly a currency symbol before the value)"
      }
    },
    "required": [
	  "invoiceNumber",
      "invoiceDate",
	  "referenceNumber",
      "passengers",
      "totalNet",
      "checkNumber",
	  "checkDate",
      "checkAmount"
    ],
    "additionalProperties": false
  }
}
</json>

Return JSON only without any addition explanations.