diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py
index f72e63603..8c394e817 100644
--- a/pms/models/pms_checkin_partner.py
+++ b/pms/models/pms_checkin_partner.py
@@ -438,7 +438,7 @@ class PmsCheckinPartner(models.Model):
elif not record.residence_state_id:
record.residence_state_id = False
- @api.depends(lambda self: self._checkin_manual_fields(depends=True))
+ @api.depends(lambda self: self._get_depends_state_fields())
def _compute_state(self):
for record in self:
if not record.state:
@@ -454,7 +454,8 @@ class PmsCheckinPartner(models.Model):
elif any(
not getattr(record, field)
for field in record._checkin_mandatory_fields(
- country=record.document_country_id
+ residence_country=record.residence_country_id,
+ document_type=record.document_type,
)
):
record.state = "draft"
@@ -783,7 +784,7 @@ class PmsCheckinPartner(models.Model):
return res
@api.model
- def _checkin_manual_fields(self, country=False, depends=False):
+ def _checkin_manual_fields(self, country=False):
manual_fields = [
"name",
"partner_id",
@@ -805,20 +806,19 @@ class PmsCheckinPartner(models.Model):
"residence_country_id",
"residence_state_id",
]
- # api.depends need "reservation_id.state" in the lambda function
- if depends:
- manual_fields.append("reservation_id.state")
return manual_fields
@api.model
- def _checkin_mandatory_fields(self, country=False, depends=False):
+ def _get_depends_state_fields(self):
+ manual_fields = self._checkin_manual_fields()
+ manual_fields.append("reservation_id.state")
+ return manual_fields
+
+ @api.model
+ def _checkin_mandatory_fields(self, residence_country=False, document_type=False):
mandatory_fields = [
"name",
]
- # api.depends need "reservation_id.state" in the lambda function
- if depends:
- mandatory_fields.extend(["reservation_id.state", "name"])
-
return mandatory_fields
@api.model
@@ -888,7 +888,11 @@ class PmsCheckinPartner(models.Model):
raise ValidationError(_("Its too late to checkin"))
if any(
- not getattr(record, field) for field in self._checkin_mandatory_fields()
+ not getattr(record, field)
+ for field in self._checkin_mandatory_fields(
+ residence_country=record.residence_country_id,
+ document_type=record.document_type,
+ )
):
raise ValidationError(_("Personal data is missing for check-in"))
vals = {
diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py
index 185a4f34d..6eed99641 100644
--- a/pms/models/pms_reservation.py
+++ b/pms/models/pms_reservation.py
@@ -2117,7 +2117,8 @@ class PmsReservation(models.Model):
else:
raise ValidationError(
_(
- "The Property and Sale Channel Origin are mandatory in the reservation"
+ "The Property, Sale Channel Origin "
+ "and name / partner name / agency are mandatory in the reservation"
)
)
if vals.get("name", _("New")) == _("New") or "name" not in vals:
diff --git a/pms_l10n_es/__manifest__.py b/pms_l10n_es/__manifest__.py
index 9ef1f0920..a04df03a2 100644
--- a/pms_l10n_es/__manifest__.py
+++ b/pms_l10n_es/__manifest__.py
@@ -39,9 +39,11 @@
"views/pms_property_views.xml",
"views/pms_room_views.xml",
"views/pms_log_institution_traveller_report_views.xml",
+ "views/pms_ses_communication_views.xml",
"views/pms_ine_tourism_type_category.xml",
"views/res_partner_id_number_view.xml",
"views/pms_checkin_partner_views.xml",
+ "views/pms_reservation_views.xml",
"wizards/traveller_report.xml",
"wizards/wizard_ine.xml",
"reports/invoice.xml",
diff --git a/pms_l10n_es/data/cron_jobs.xml b/pms_l10n_es/data/cron_jobs.xml
index 4ad32d877..da8e85637 100644
--- a/pms_l10n_es/data/cron_jobs.xml
+++ b/pms_l10n_es/data/cron_jobs.xml
@@ -1,7 +1,9 @@
- Automatic Send Traveller Report
+
+ Automatic Send Traveller Report
+
1
@@ -12,8 +14,86 @@
model.send_file_institution_async()
+
+
+
+ SES Automatic Creation Traveller Communications
+
+
+ 1
+
+ days
+ -1
+
+ code
+
+
+
+ model.create_pending_notifications_traveller_report()
+
+
+
+
+
+ SES Automatic Sending Pending Traveller Reports Communications
+
+
+ 1
+
+ days
+ -1
+
+ code
+
+
+ model.ses_send_communications('PV')
+
+
+
+
+ SES Automatic Sending Pending Reservation Communications
+
+
+ 30
+
+ minutes
+ -1
+
+ code
+
+
+ model.ses_send_communications('RH')
+
+
+
+
+ SES Automatic Process Sent Communications
+
+
+ 30
+
+ minutes
+ -1
+
+ code
+
+
+ model.ses_process_communications()
+
diff --git a/pms_l10n_es/models/__init__.py b/pms_l10n_es/models/__init__.py
index 7249c9c58..ec8793d39 100644
--- a/pms_l10n_es/models/__init__.py
+++ b/pms_l10n_es/models/__init__.py
@@ -8,3 +8,5 @@ from . import pms_room
from . import res_partner
from . import pms_checkin_partner
from . import res_partner_id_number
+from . import pms_ses_communication
+from . import pms_reservation
diff --git a/pms_l10n_es/models/pms_checkin_partner.py b/pms_l10n_es/models/pms_checkin_partner.py
index 0119f7faa..ca3ca9f0b 100644
--- a/pms_l10n_es/models/pms_checkin_partner.py
+++ b/pms_l10n_es/models/pms_checkin_partner.py
@@ -3,6 +3,8 @@ import logging
from odoo import api, fields, models
CODE_SPAIN = "ES"
+CODE_NIF = "D"
+CODE_NIE = "N"
_logger = logging.getLogger(__name__)
@@ -34,9 +36,9 @@ class PmsCheckinPartner(models.Model):
record.support_number = False
@api.model
- def _checkin_mandatory_fields(self, country=False, depends=False):
+ def _checkin_mandatory_fields(self, residence_country=False, document_type=False):
mandatory_fields = super(PmsCheckinPartner, self)._checkin_mandatory_fields(
- depends
+ residence_country, document_type
)
mandatory_fields.extend(
[
@@ -46,20 +48,35 @@ class PmsCheckinPartner(models.Model):
"document_type",
"document_expedition_date",
"nationality_id",
+ "residence_street",
+ "residence_city",
+ "residence_country_id",
+ "residence_zip",
]
)
- if depends or (country and country.code == CODE_SPAIN):
+
+ if residence_country and residence_country.code == CODE_SPAIN:
mandatory_fields.extend(
[
"residence_state_id",
- "residence_street",
- "residence_city",
+ ]
+ )
+ if document_type.code and document_type.code == CODE_NIF:
+ mandatory_fields.extend(
+ [
+ "lastname2",
+ ]
+ )
+ if document_type and document_type.code in [CODE_NIF, CODE_NIE]:
+ mandatory_fields.extend(
+ [
+ "support_number",
]
)
return mandatory_fields
@api.model
- def _checkin_manual_fields(self, country=False, depends=False):
- manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields(depends)
+ def _checkin_manual_fields(self, country=False):
+ manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields()
manual_fields.extend(["support_number"])
return manual_fields
diff --git a/pms_l10n_es/models/pms_property.py b/pms_l10n_es/models/pms_property.py
index 86d44a72b..8df9882d4 100644
--- a/pms_l10n_es/models/pms_property.py
+++ b/pms_l10n_es/models/pms_property.py
@@ -17,6 +17,7 @@ class PmsProperty(models.Model):
("policia_nacional", "PolicĂa Nacional"),
("ertxaintxa", "Ertxaintxa (soon)"),
("mossos", "Mossos_d'esquadra (soon)"),
+ ("ses", "SES"),
],
string="Institution",
help="Institution to send daily guest data.",
@@ -26,6 +27,10 @@ class PmsProperty(models.Model):
string="Institution property id",
help="Id provided by institution to send data from property.",
)
+ ses_url = fields.Char(
+ string="SES URL",
+ help="URL to send the data to SES",
+ )
institution_user = fields.Char(
string="Institution user", help="User provided by institution to send the data."
)
@@ -33,6 +38,11 @@ class PmsProperty(models.Model):
string="Institution password",
help="Password provided by institution to send the data.",
)
+ institution_lessor_id = fields.Char(
+ string="Institution lessor id",
+ help="Id provided by institution to send data from lessor.",
+ )
+
ine_tourism_number = fields.Char(
"Tourism number",
help="Registration number in the Ministry of Tourism. Used for INE statistics.",
diff --git a/pms_l10n_es/models/pms_reservation.py b/pms_l10n_es/models/pms_reservation.py
new file mode 100644
index 000000000..2ec6c3549
--- /dev/null
+++ b/pms_l10n_es/models/pms_reservation.py
@@ -0,0 +1,102 @@
+from odoo import api, fields, models
+
+from ..wizards.traveller_report import CREATE_OPERATION_CODE, DELETE_OPERATION_CODE
+
+
+class PmsReservation(models.Model):
+ _inherit = "pms.reservation"
+ ses_communication_ids = fields.One2many(
+ string="SES Communications",
+ help="Communications related to this reservation",
+ comodel_name="pms.ses.communication",
+ inverse_name="reservation_id",
+ )
+ is_ses = fields.Boolean(
+ string="Is SES",
+ readonly=True,
+ compute="_compute_is_ses",
+ )
+
+ @api.depends("pms_property_id")
+ def _compute_is_ses(self):
+ for record in self:
+ record.is_ses = record.pms_property_id.institution == "ses"
+
+ @api.model
+ def create_communication(self, reservation_id, operation, entity):
+ self.env["pms.ses.communication"].create(
+ {
+ "reservation_id": reservation_id,
+ "operation": operation,
+ "entity": entity,
+ }
+ )
+
+ @api.model
+ def create(self, vals):
+ reservation = super(PmsReservation, self).create(vals)
+ if reservation.pms_property_id.institution == "ses":
+ self.create_communication(reservation.id, CREATE_OPERATION_CODE, "RH")
+ return reservation
+
+ @api.model
+ def create_communication_after_update_reservation(self, reservation, vals):
+ state_changed = "state" in vals and (
+ (vals["state"] != "cancel" and reservation.state == "cancel")
+ or (vals["state"] == "cancel" and reservation.state != "cancel")
+ )
+ check_changed = (
+ any(
+ key in vals and vals[key] != getattr(reservation, key)
+ for key in ["adults", "checkin", "checkout"]
+ )
+ and reservation.state != "cancel"
+ )
+
+ if state_changed or check_changed:
+ # delete all pending notifications
+ self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ("state", "=", "to_send"),
+ ("entity", "=", "RH"),
+ ]
+ ).unlink()
+
+ # last communication
+ last_communication = self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ("entity", "=", "RH"),
+ ],
+ order="id desc",
+ limit=1,
+ )
+
+ if state_changed:
+ if (
+ vals["state"] == "cancel"
+ and last_communication.operation == CREATE_OPERATION_CODE
+ ):
+ self.create_communication(
+ reservation.id, DELETE_OPERATION_CODE, "RH"
+ )
+ elif (
+ vals["state"] != "cancel"
+ and last_communication.operation == DELETE_OPERATION_CODE
+ ):
+ self.create_communication(
+ reservation.id, CREATE_OPERATION_CODE, "RH"
+ )
+ elif check_changed:
+ if last_communication.operation == CREATE_OPERATION_CODE:
+ self.create_communication(
+ reservation.id, DELETE_OPERATION_CODE, "RH"
+ )
+ self.create_communication(reservation.id, CREATE_OPERATION_CODE, "RH")
+
+ def write(self, vals):
+ for record in self:
+ if record.pms_property_id.institution == "ses":
+ self.create_communication_after_update_reservation(record, vals)
+ return super(PmsReservation, self).write(vals)
diff --git a/pms_l10n_es/models/pms_ses_communication.py b/pms_l10n_es/models/pms_ses_communication.py
new file mode 100644
index 000000000..5c3d6ef0e
--- /dev/null
+++ b/pms_l10n_es/models/pms_ses_communication.py
@@ -0,0 +1,86 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from odoo import fields, models
+
+
+class PmsSesCommunication(models.Model):
+ _name = "pms.ses.communication"
+ _description = "SES Communication"
+ reservation_id = fields.Many2one(
+ string="Reservation",
+ help="Reservation related to this communication",
+ index=True,
+ required=True,
+ comodel_name="pms.reservation",
+ )
+ communication_id = fields.Char(
+ string="Communication ID",
+ help="ID of the communication",
+ default=False,
+ )
+ operation = fields.Selection(
+ string="Operation",
+ help="Operation of the communication",
+ selection=[("A", "New communication"), ("B", "Delete communication")],
+ required=True,
+ )
+ entity = fields.Selection(
+ string="Entity",
+ help="Entity of the communication",
+ selection=[("RH", "Reservation"), ("PV", "Traveller report")],
+ required=True,
+ )
+ communication_time = fields.Datetime(
+ string="Communication time",
+ help="Date and time of the communication",
+ )
+ query_status_time = fields.Datetime(
+ string="Query status time",
+ help="Date and time of the last state query",
+ )
+
+ state = fields.Selection(
+ string="State",
+ help="State of the communication",
+ default="to_send",
+ required=True,
+ selection=[
+ ("to_send", "Pending Notification"),
+ ("to_process", "Pending Processing"),
+ ("error_sending", "Error Sending"),
+ ("error_processing", "Error Processing"),
+ ("processed", "Processed"),
+ ],
+ )
+ sending_result = fields.Text(
+ string="Sending Result",
+ help="Notification sending result",
+ )
+ processing_result = fields.Text(
+ string="Processing Result",
+ help="Notification processing result",
+ )
+ communication_xml = fields.Text(
+ string="XML Com.",
+ help="XML content communication",
+ )
+ communication_soap = fields.Text(
+ string="SOAP Com.",
+ help="SOAP content communication",
+ )
+ response_communication_soap = fields.Text(
+ string="SOAP Resp. Com.",
+ help="SOAP response communication",
+ )
+
+ query_status_xml = fields.Text(
+ string="XML Query Status",
+ help="XML query status content communication",
+ )
+ query_status_soap = fields.Text(
+ string="SOAP Query Status",
+ help="SOAP query status content communication",
+ )
+ response_query_status_soap = fields.Text(
+ string="SOAP Resp. Status",
+ help="SOAP response status query",
+ )
diff --git a/pms_l10n_es/security/ir.model.access.csv b/pms_l10n_es/security/ir.model.access.csv
index 444000dce..f65078a29 100644
--- a/pms_l10n_es/security/ir.model.access.csv
+++ b/pms_l10n_es/security/ir.model.access.csv
@@ -3,3 +3,4 @@ user_access_traveller_report_wizard,user_access_traveller_report_wizard,model_tr
user_access_traveller_report_logs,user_access_traveller_report_logs,model_pms_log_institution_traveller_report,pms.group_pms_user,1,1,1,1
user_access_pms_ine_tourism_type_category,user_access_pms_ine_tourism_type_category,model_pms_ine_tourism_type_category,pms.group_pms_user,1,1,1,1
user_access_pms_ine_wizard,user_access_pms_ine_wizard,model_pms_ine_wizard,pms.group_pms_user,1,1,1,1
+user_access_pms_ses_communication,user_access_pms_ses_communication,model_pms_ses_communication,pms.group_pms_user,1,1,1,1
diff --git a/pms_l10n_es/static/ses_cert.pem b/pms_l10n_es/static/ses_cert.pem
new file mode 100644
index 000000000..9217ba8dd
--- /dev/null
+++ b/pms_l10n_es/static/ses_cert.pem
@@ -0,0 +1,44 @@
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBrugAwIBAgIQajkADBY6ZK1iD4oFQUbYdzANBgkqhkiG9w0BAQsFADBH
+MQswCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xJTAjBgNVBAsMHEFDIENv
+bXBvbmVudGVzIEluZm9ybcOhdGljb3MwHhcNMjIwMjE4MTE1OTAxWhcNMjUwMjE4
+MTE1OTAwWjCB9zELMAkGA1UEBhMCRVMxDzANBgNVBAcMBk1BRFJJRDFDMEEGA1UE
+Cgw6TUlOSVNURVJJTyBJTlRFUklPUiAtIFNFQ1JFVEFSSUEgRVNUQURPIFNFR1VS
+SURBRCAtIFNHU0lDUzFEMEIGA1UECww7U1VCLkdFTkVSQUwgU0lTVEVNQVMgSU5G
+T1JNQUNJT04gWSBDT01VTklDQUNJT05FUyBTRUdVUklEQUQxEjAQBgNVBAUTCVMy
+ODAwMTA5RzEYMBYGA1UEYQwPVkFURVMtUzI4MDAxMDlHMR4wHAYDVQQDDBVQUkUt
+U0dTSUNTLlNFUy5NSVIuRVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCa8OJf1tPWpwnboeomX27292iTcsNONHnZZTnjuV8CUv9t+crTXmv7kA9L6l/1
+bcSpkVuWcCnnHjVsn2FnTA1pl82dR/BWlbOx1A8A3d2auUJAIH1uJ68xlGTo1jqp
+SZn6z4Ply3zz7Tb09FfkZdWnalp0ozD5y//Rgc91CboNn62lAMe3OLrUI1DWwrVA
+gVV7YB7Sx4Tl+wSPu/Qr36f0KmoDW78IqGWjZ6pfJXSZZ9YmIlMBv9IS4GLb1Rh/
+JiMLZMRSKdqu1kA7g+dUhy6ueUKlHPzxik2JZIIHydxTHss4kGIFVaZ2LOE8GyuV
+AIjYDyl+yJdJm6ROrk5r1kwLAgMBAAGjggQIMIIEBDAMBgNVHRMBAf8EAjAAMIGB
+BggrBgEFBQcBAQR1MHMwOwYIKwYBBQUHMAGGL2h0dHA6Ly9vY3NwY29tcC5jZXJ0
+LmZubXQuZXMvb2NzcC9PY3NwUmVzcG9uZGVyMDQGCCsGAQUFBzAChihodHRwOi8v
+d3d3LmNlcnQuZm5tdC5lcy9jZXJ0cy9BQ0NPTVAuY3J0MIIBNAYDVR0gBIIBKzCC
+AScwggEYBgorBgEEAaxmAwkTMIIBCDApBggrBgEFBQcCARYdaHR0cDovL3d3dy5j
+ZXJ0LmZubXQuZXMvZHBjcy8wgdoGCCsGAQUFBwICMIHNDIHKQ2VydGlmaWNhZG8g
+Y3VhbGlmaWNhZG8gZGUgc2VsbG8gZWxlY3Ryw7NuaWNvIHNlZ8O6biByZWdsYW1l
+bnRvIGV1cm9wZW8gZUlEQVMuIFN1amV0byBhIGxhcyBjb25kaWNpb25lcyBkZSB1
+c28gZXhwdWVzdGFzIGVuIGxhIERQQyBkZSBGTk1ULVJDTSBjb24gTklGOiBRMjgy
+NjAwNC1KIChDL0pvcmdlIEp1YW4gMTA2LTI4MDA5LU1hZHJpZC1Fc3Bhw7FhKTAJ
+BgcEAIvsQAEBMDMGA1UdEQQsMCqkKDAmMSQwIgYJKwYBBAGsZgEIDBVQUkUtU0dT
+SUNTLlNFUy5NSVIuRVMwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMA4G
+A1UdDwEB/wQEAwIF4DAdBgNVHQ4EFgQURXqQD9HjmqRh4SuG9Zf8Mh8YUukwgbAG
+CCsGAQUFBwEDBIGjMIGgMAgGBgQAjkYBATALBgYEAI5GAQMCAQ8wEwYGBACORgEG
+MAkGBwQAjkYBBgIwcgYGBACORgEFMGgwMhYsaHR0cHM6Ly93d3cuY2VydC5mbm10
+LmVzL3Bkcy9QRFNfQ09NUF9lcy5wZGYTAmVzMDIWLGh0dHBzOi8vd3d3LmNlcnQu
+Zm5tdC5lcy9wZHMvUERTX0NPTVBfZW4ucGRmEwJlbjAfBgNVHSMEGDAWgBQZ+Fgv
+FNamzJsEmAgNTNerAKeDZTCB4AYDVR0fBIHYMIHVMIHSoIHPoIHMhoGebGRhcDov
+L2xkYXBjb21wLmNlcnQuZm5tdC5lcy9DTj1DUkwxLE9VPUFDJTIwQ29tcG9uZW50
+ZXMlMjBJbmZvcm1hdGljb3MsTz1GTk1ULVJDTSxDPUVTP2NlcnRpZmljYXRlUmV2
+b2NhdGlvbkxpc3Q7YmluYXJ5P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0
+aW9uUG9pbnSGKWh0dHA6Ly93d3cuY2VydC5mbm10LmVzL2NybHNjb21wL0NSTDEu
+Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQAsgDOnmLs0lyBc29ABc6aCUIdxDLxbSodp
+0rBMxKl3G6fGakUXJYCD9GBKRNMmCD8NXuYtNU6KmSWeXXUvz9ixGB234wKVdKx3
+en6j0mmiJWwTmMP6KNZ77/B/6GXmV1Wum+iyqKBG4NEy42OSF57sCChD2toLfcWP
+7to3i30GUzaWgeISFSC1Lq7iqbKLZzMjlh82AqD8F9Xvo+N9YadxQ51bPPt+4WNW
+r4oj6PM8w6nhVEGW7+h5hpTFgt7O0H9G6U5D8N+utHe9dKssGvJLKpATzJvMjPxS
+pU3eaujFO6D0qhmInyV+PtjSIhL8hzeTQcAXR6oBqNtOrplcTahz
+-----END CERTIFICATE-----
diff --git a/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv b/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv
new file mode 100644
index 000000000..8213dd8bd
--- /dev/null
+++ b/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv
@@ -0,0 +1,14609 @@
+codigo_postal,municipio_id
+00043,431107
+00085,490646
+00633,260051
+01001,010590
+01002,010590
+01003,010590
+01004,010590
+01005,010590
+01006,010590
+01007,010590
+01008,010590
+01009,010590
+01010,010590
+01012,010284
+01012,010590
+01013,010590
+01015,010590
+01110,010170
+01117,010170
+01117,010565
+01118,010164
+01118,010301
+01118,091097
+01120,010376
+01121,010148
+01128,010164
+01128,010170
+01128,010376
+01129,010376
+01130,010632
+01138,010186
+01139,010632
+01160,010035
+01165,010035
+01169,010035
+01170,010587
+01171,010587
+01191,010590
+01191,019015
+01192,010210
+01192,010590
+01193,010014
+01193,010210
+01193,010278
+01193,010590
+01194,010164
+01194,010590
+01195,010590
+01195,019015
+01196,010186
+01196,010590
+01200,010513
+01206,010133
+01206,010278
+01207,010278
+01207,010513
+01207,010534
+01208,010091
+01208,010133
+01208,010534
+01208,010611
+01211,010066
+01211,010148
+01211,010301
+01211,010442
+01211,091097
+01212,010148
+01212,010284
+01212,010442
+01212,010626
+01213,010468
+01213,010474
+01213,019020
+01216,010164
+01216,010442
+01220,010066
+01220,010148
+01220,010468
+01220,010474
+01230,019015
+01240,010014
+01250,010091
+01260,010091
+01300,010318
+01306,010339
+01307,010112
+01307,010528
+01307,010571
+01308,010199
+01308,010318
+01308,010323
+01309,010231
+01309,010318
+01309,010344
+01309,010416
+01320,010437
+01321,010318
+01322,010395
+01322,010437
+01322,010604
+01330,010284
+01340,010225
+01400,010360
+01408,010105
+01409,010421
+01420,010468
+01423,010468
+01423,010493
+01423,010552
+01423,019020
+01426,010468
+01426,010493
+01426,010552
+01427,010552
+01427,090503
+01427,091926
+01428,010468
+01428,010552
+01428,019015
+01430,010203
+01439,010203
+01440,010549
+01449,010549
+01450,010029
+01450,010549
+01450,010632
+01468,010029
+01470,010029
+01470,010105
+01474,010040
+01476,010105
+01477,010105
+01478,010040
+01478,010105
+01479,010105
+01510,010088
+01510,010587
+01510,010590
+01520,010088
+01520,010590
+01830,101894
+01857,100036
+02001,020030
+02002,020030
+02003,020030
+02004,020030
+02005,020030
+02006,020030
+02008,020030
+02013,020595
+02049,020030
+02071,020030
+02099,020030
+02099,029010
+02100,020735
+02110,020352
+02120,020609
+02124,020061
+02124,020117
+02124,020447
+02125,020117
+02126,020117
+02127,020609
+02128,020061
+02128,020609
+02129,020637
+02130,020175
+02136,020582
+02137,020582
+02138,020175
+02138,020595
+02139,020117
+02139,020175
+02140,020030
+02141,020637
+02142,020447
+02142,020637
+02150,020753
+02151,020215
+02152,020024
+02153,020208
+02154,020642
+02154,020833
+02155,020030
+02156,020292
+02160,020432
+02161,020432
+02162,020387
+02170,210139
+02200,020241
+02210,020077
+02211,020077
+02212,020236
+02213,020138
+02213,020772
+02214,020077
+02214,020138
+02215,020058
+02215,020827
+02220,020523
+02230,020450
+02236,020788
+02240,020463
+02246,020544
+02247,020267
+02248,020411
+02249,020349
+02249,020411
+02249,020668
+02250,020019
+02251,020349
+02253,020365
+02260,020349
+02270,020791
+02300,020083
+02310,020851
+02311,020621
+02312,020083
+02313,020595
+02314,020083
+02314,020479
+02314,020595
+02315,020766
+02316,020707
+02320,020122
+02326,020714
+02327,020655
+02328,020030
+02329,020220
+02330,020083
+02331,020680
+02332,020680
+02340,020680
+02350,020805
+02360,020169
+02395,290516
+02400,020371
+02409,020371
+02410,020447
+02410,090183
+02420,020371
+02430,020306
+02434,020426
+02435,020729
+02436,020313
+02437,020729
+02439,020306
+02440,020498
+02448,020175
+02448,020498
+02449,020306
+02449,020498
+02450,020674
+02459,020674
+02460,020848
+02461,020289
+02462,020674
+02462,020848
+02470,020306
+02480,020864
+02482,020864
+02484,020864
+02485,020864
+02486,020864
+02487,020864
+02488,020864
+02489,020864
+02490,020371
+02498,020371
+02499,020371
+02500,020740
+02510,020292
+02510,029010
+02511,020030
+02512,020030
+02513,020740
+02514,020740
+02520,020292
+02529,020292
+02530,020557
+02534,020557
+02535,020557
+02536,020557
+02537,020557
+02538,020557
+02539,020557
+02600,020812
+02610,020194
+02611,020576
+02612,020539
+02612,020812
+02614,020143
+02620,020485
+02630,020693
+02636,020788
+02636,160604
+02637,020328
+02638,020501
+02639,020156
+02639,020693
+02640,020096
+02650,020518
+02651,020334
+02652,020560
+02653,020045
+02660,020254
+02660,020812
+02690,020100
+02690,020390
+02691,020181
+02692,020292
+02692,020616
+02693,020273
+02693,020616
+02694,020390
+02695,020292
+02696,020404
+02999,020117
+03001,030149
+03002,030149
+03003,030149
+03004,030149
+03005,030149
+03006,030149
+03007,030149
+03008,030149
+03009,030149
+03010,030149
+03011,030149
+03012,030149
+03013,030149
+03014,030149
+03015,030149
+03016,030149
+03100,030839
+03108,031323
+03109,031297
+03110,030909
+03111,030469
+03112,030149
+03113,030149
+03113,030651
+03114,030149
+03115,030149
+03119,030993
+03130,031210
+03138,030149
+03139,030651
+03140,030762
+03150,030648
+03158,030553
+03158,030591
+03159,030612
+03160,030152
+03169,030128
+03170,031133
+03176,030128
+03177,030627
+03177,030703
+03177,031186
+03178,030345
+03179,030152
+03179,030703
+03181,031339
+03182,031339
+03183,031339
+03184,031339
+03185,031035
+03185,031339
+03186,031339
+03187,039037
+03188,031339
+03189,030993
+03190,030993
+03190,039021
+03191,039021
+03193,031203
+03194,030651
+03195,030651
+03201,030651
+03202,030651
+03203,030651
+03204,030651
+03205,030651
+03206,030651
+03207,030651
+03208,030651
+03290,030651
+03291,030651
+03292,030651
+03293,030651
+03294,030651
+03295,030651
+03296,030651
+03300,030993
+03310,030801
+03311,030993
+03312,030993
+03313,030993
+03314,030993
+03315,030993
+03316,030250
+03316,030993
+03317,030494
+03317,030993
+03319,030993
+03320,030651
+03321,030993
+03322,030993
+03325,030993
+03330,030591
+03339,030591
+03340,030054
+03348,030746
+03349,039042
+03350,030588
+03360,030494
+03369,030993
+03369,031091
+03370,031112
+03380,030443
+03380,030993
+03390,030247
+03400,031409
+03408,031409
+03409,030149
+03409,030529
+03409,031164
+03409,031409
+03410,030438
+03420,030535
+03430,030968
+03440,030797
+03450,030211
+03460,030232
+03469,030232
+03469,030514
+03501,030319
+03502,030319
+03503,030319
+03509,030699
+03510,030481
+03516,030377
+03517,030279
+03517,030330
+03517,030572
+03517,030759
+03518,030456
+03518,031278
+03520,031072
+03530,030942
+03540,030149
+03550,030149
+03550,031199
+03559,030149
+03560,030507
+03569,030041
+03570,031395
+03578,031127
+03579,030980
+03579,031246
+03580,030113
+03581,030113
+03590,030187
+03599,030187
+03600,030664
+03610,031040
+03630,031231
+03638,031164
+03639,031409
+03640,030895
+03649,030895
+03650,031053
+03657,031053
+03657,300434
+03658,031053
+03658,031164
+03659,031053
+03660,030937
+03660,350141
+03668,030134
+03669,031148
+03670,030882
+03679,030882
+03680,030190
+03688,030778
+03689,030778
+03689,030784
+03689,030993
+03690,031225
+03698,030020
+03699,030149
+03700,030633
+03709,030633
+03710,030475
+03720,030417
+03723,030067
+03724,031284
+03725,031284
+03726,030422
+03727,030818
+03728,030067
+03729,030857
+03729,031259
+03730,030823
+03737,030823
+03738,030823
+03739,030823
+03740,030710
+03749,030633
+03750,031014
+03759,030067
+03759,030263
+03759,030302
+03760,030955
+03769,030400
+03769,031105
+03769,031170
+03770,030633
+03770,031382
+03778,030263
+03779,030633
+03779,039016
+03780,030633
+03780,031029
+03780,031105
+03786,030015
+03787,031360
+03788,031344
+03788,031360
+03789,031357
+03790,030974
+03791,030974
+03791,031376
+03792,030916
+03792,030974
+03792,031007
+03793,030540
+03794,030298
+03795,030974
+03795,031151
+03795,031318
+03800,030092
+03801,030092
+03802,030092
+03803,030092
+03804,030092
+03810,030358
+03811,030605
+03811,030731
+03812,030204
+03812,030396
+03812,030860
+03813,030670
+03813,030686
+03813,031301
+03814,030089
+03814,030226
+03815,031035
+03816,030324
+03818,030092
+03819,030092
+03820,030566
+03827,030165
+03827,030361
+03827,030383
+03828,031066
+03829,030171
+03829,030566
+03830,030921
+03837,030036
+03838,030106
+03839,030921
+03840,030725
+03841,030073
+03850,030285
+03860,030844
+03870,030566
+04001,040139
+04002,040139
+04003,040139
+04004,040139
+04005,040139
+04006,040139
+04007,040139
+04008,040139
+04009,040139
+04100,040669
+04110,040669
+04113,040669
+04114,040600
+04114,040669
+04115,040669
+04116,040669
+04117,040669
+04118,040669
+04119,040669
+04120,040139
+04130,040139
+04131,040139
+04140,040329
+04149,040329
+04149,040669
+04149,040865
+04150,040139
+04151,040669
+04160,040139
+04200,040887
+04210,040600
+04211,040600
+04211,040887
+04211,040947
+04212,040335
+04212,040681
+04212,040979
+04213,040828
+04230,040524
+04240,041019
+04248,040865
+04250,040741
+04259,040741
+04260,040789
+04270,040865
+04271,040596
+04271,040865
+04274,040274
+04274,040904
+04274,040950
+04275,040904
+04275,040926
+04276,040097
+04276,040268
+04276,040274
+04277,040865
+04277,040932
+04278,040865
+04279,040865
+04279,040904
+04279,040950
+04280,040486
+04288,040221
+04288,040486
+04289,040221
+04289,040486
+04289,040865
+04400,040118
+04409,040123
+04409,040519
+04410,040242
+04420,040813
+04430,040558
+04431,040545
+04440,040773
+04450,040307
+04450,040502
+04458,040144
+04458,040237
+04458,040715
+04459,040675
+04460,040464
+04470,040577
+04479,040209
+04479,040464
+04479,040736
+04480,040078
+04500,040451
+04510,040010
+04520,040025
+04530,049011
+04531,040059
+04532,049011
+04533,040025
+04540,040656
+04549,040502
+04550,040502
+04558,040059
+04558,040502
+04559,040502
+04560,040470
+04567,040101
+04568,040157
+04568,040806
+04569,040280
+04569,040911
+04600,040062
+04600,040530
+04610,040353
+04616,040353
+04617,040353
+04618,040353
+04619,040353
+04620,041002
+04628,040160
+04629,040160
+04630,040499
+04638,040643
+04639,040643
+04639,040932
+04640,040708
+04640,040754
+04647,040353
+04647,040754
+04648,040353
+04648,040754
+04649,040754
+04650,041030
+04660,040176
+04661,040890
+04661,041030
+04662,040530
+04662,041030
+04690,040530
+04691,040530
+04692,040062
+04692,040530
+04692,040890
+04693,040530
+04694,040530
+04700,049026
+04710,049026
+04711,049026
+04712,049026
+04713,049047
+04715,049026
+04716,049026
+04720,040792
+04721,041024
+04727,041024
+04728,040433
+04729,040412
+04738,041024
+04740,040792
+04741,040792
+04743,040792
+04745,049032
+04746,049032
+04750,040388
+04760,040293
+04768,040078
+04768,040293
+04769,040293
+04770,040031
+04778,040031
+04779,040031
+04800,040062
+04810,040708
+04810,040720
+04811,040708
+04812,040062
+04813,040062
+04813,040708
+04814,040062
+04815,040314
+04820,040998
+04825,040372
+04826,040998
+04827,040998
+04828,040998
+04829,040985
+04829,040998
+04830,040985
+04838,040638
+04839,040638
+04839,040985
+04850,040314
+04857,040046
+04858,040046
+04858,040314
+04859,040340
+04859,040366
+04859,040583
+04860,040694
+04867,040622
+04868,040561
+04869,040448
+04870,040767
+04877,040617
+04877,040852
+04878,040849
+04878,040871
+04879,040963
+04880,040926
+04887,040617
+04887,040926
+04888,040182
+04888,040216
+04889,040195
+04889,040926
+04890,040834
+04897,040084
+04897,040834
+04898,040084
+04898,040834
+04899,040708
+04899,040834
+04964,040530
+05001,050198
+05002,050198
+05003,050198
+05004,050198
+05005,050198
+05100,051630
+05110,050224
+05111,052119
+05113,050415
+05114,059053
+05115,051677
+05115,052336
+05116,052336
+05120,051585
+05120,051661
+05120,052124
+05122,051645
+05122,051696
+05123,051012
+05123,051602
+05125,050701
+05130,052389
+05131,050966
+05131,051257
+05131,051488
+05132,050586
+05132,051064
+05132,052161
+05133,052158
+05134,050816
+05134,051547
+05134,051579
+05140,050408
+05140,050533
+05140,051201
+05140,051218
+05141,050678
+05141,050795
+05141,051453
+05141,052050
+05143,052525
+05145,051197
+05145,051368
+05145,052130
+05146,050338
+05146,050940
+05146,051184
+05146,051316
+05146,051808
+05146,052098
+05146,052657
+05147,050809
+05147,051070
+05148,050441
+05149,050599
+05149,052373
+05150,051815
+05150,051949
+05150,052183
+05151,051223
+05151,059035
+05152,051223
+05153,050150
+05153,050258
+05153,050631
+05153,051162
+05153,051295
+05154,051295
+05154,051440
+05154,052660
+05160,050198
+05161,051282
+05162,050277
+05163,050874
+05163,051337
+05163,051854
+05164,050929
+05164,051756
+05164,051949
+05164,052196
+05164,052584
+05165,050369
+05165,050454
+05165,051836
+05165,052428
+05190,051952
+05191,051309
+05191,051722
+05192,050610
+05192,051414
+05192,052320
+05193,051738
+05193,059029
+05194,050198
+05194,050300
+05194,051239
+05195,050198
+05196,050935
+05196,052452
+05197,050198
+05197,050760
+05197,050837
+05198,051892
+05198,052392
+05200,050163
+05210,050991
+05210,052102
+05211,050296
+05211,050436
+05211,050489
+05211,050603
+05212,050087
+05212,050467
+05212,050776
+05212,050782
+05212,052597
+05213,051099
+05215,050701
+05215,051781
+05215,052354
+05216,051526
+05217,050420
+05217,050646
+05217,050697
+05217,052315
+05220,051146
+05229,050230
+05229,050261
+05229,050564
+05229,052085
+05230,051683
+05239,051683
+05239,051841
+05240,051619
+05250,051027
+05260,050570
+05267,052011
+05268,050935
+05268,052222
+05270,052413
+05278,050224
+05278,052413
+05279,052413
+05280,051282
+05289,052063
+05289,052434
+05290,050356
+05290,052047
+05291,051159
+05292,051775
+05292,051906
+05292,052294
+05292,052531
+05292,052546
+05294,050935
+05296,050013
+05296,050723
+05296,050907
+05296,051743
+05298,051178
+05298,051934
+05298,052434
+05299,050343
+05299,051342
+05300,050659
+05309,050625
+05309,050659
+05309,051393
+05309,051965
+05309,052644
+05310,050744
+05320,050492
+05340,050408
+05350,052200
+05357,050179
+05357,050394
+05357,050880
+05357,051393
+05357,052308
+05357,052341
+05357,052562
+05358,050052
+05358,051407
+05358,051491
+05358,051794
+05358,052102
+05364,051051
+05370,050739
+05370,051472
+05380,050868
+05380,051429
+05380,051987
+05400,050147
+05410,051321
+05412,052079
+05413,051321
+05413,052217
+05413,052623
+05414,050662
+05415,051005
+05416,050132
+05417,050893
+05418,050147
+05420,052406
+05427,050757
+05427,050953
+05428,050551
+05429,050551
+05429,051563
+05429,052275
+05430,050028
+05440,051873
+05450,050548
+05460,050821
+05461,051276
+05470,051820
+05480,050473
+05489,050473
+05490,051103
+05491,051321
+05492,051892
+05500,051867
+05510,052256
+05511,052256
+05513,050415
+05514,050381
+05514,051260
+05514,051550
+05514,052177
+05514,052465
+05515,051867
+05516,051033
+05516,052004
+05516,052618
+05519,330241
+05520,051769
+05520,051971
+05520,052471
+05530,051380
+05530,052243
+05540,051355
+05540,051873
+05540,052471
+05560,050126
+05560,051435
+05560,051889
+05560,051913
+05560,052510
+05560,052639
+05570,050381
+05571,050527
+05571,051511
+05571,052578
+05580,050071
+05580,050185
+05580,052269
+05581,052269
+05591,052601
+05592,052281
+05593,050104
+05600,050219
+05610,050245
+05619,050842
+05619,051244
+05619,051717
+05619,051990
+05620,050512
+05621,051928
+05621,052367
+05630,050375
+05630,059040
+05631,051624
+05631,052676
+05631,059014
+05632,051624
+05632,059014
+05633,059014
+05634,051048
+05634,051051
+05635,051658
+05640,050821
+05690,050375
+05690,051131
+05691,052367
+05692,051125
+05693,050855
+05693,052490
+05694,050245
+05694,051086
+05695,050972
+05696,050972
+05696,052145
+05697,051532
+05697,051598
+05697,051700
+05697,052449
+06001,060153
+06002,060153
+06003,060153
+06004,060153
+06005,060153
+06006,060153
+06007,060153
+06008,060153
+06009,060153
+06010,060153
+06011,060153
+06020,060205
+06100,060956
+06105,060423
+06106,060956
+06107,060956
+06108,060956
+06109,060956
+06110,061540
+06120,060938
+06129,061591
+06130,061438
+06131,060074
+06132,060665
+06133,061298
+06134,061400
+06140,061285
+06150,061211
+06160,060166
+06170,060055
+06170,060153
+06171,060107
+06172,061319
+06173,060922
+06174,060613
+06174,061165
+06175,060994
+06175,061171
+06176,060896
+06176,060994
+06177,061475
+06178,061481
+06180,060153
+06181,060153
+06182,060153
+06183,060153
+06184,069022
+06185,069017
+06186,069038
+06187,060726
+06190,061152
+06191,061073
+06192,061553
+06193,060153
+06194,060153
+06195,060153
+06196,060401
+06196,061263
+06197,060457
+06198,061263
+06200,060114
+06207,060021
+06208,061529
+06209,061263
+06210,061330
+06220,061494
+06225,061134
+06226,060687
+06227,060732
+06228,060690
+06229,061067
+06230,061226
+06240,060520
+06249,060270
+06250,060205
+06260,060858
+06270,061247
+06275,061171
+06280,060554
+06290,061361
+06291,060861
+06292,060264
+06293,060248
+06300,061588
+06310,061089
+06320,060819
+06329,060135
+06330,061417
+06340,060508
+06350,060671
+06360,060541
+06370,060227
+06378,061422
+06380,060704
+06389,060704
+06390,060495
+06391,060711
+06392,061089
+06393,060080
+06394,060212
+06400,060444
+06400,060956
+06410,060021
+06410,060444
+06410,060606
+06410,061204
+06411,060802
+06412,060444
+06413,060824
+06420,060362
+06427,060877
+06428,060188
+06429,060188
+06430,061605
+06431,060824
+06439,060476
+06440,060785
+06441,060649
+06442,061128
+06442,061605
+06443,060299
+06444,061396
+06445,060652
+06450,061092
+06458,061469
+06459,060286
+06460,060286
+06468,060750
+06469,060397
+06470,060606
+06473,061514
+06474,061383
+06475,060943
+06476,060981
+06477,061041
+06478,060798
+06479,060418
+06480,060883
+06486,060900
+06487,060384
+06488,060310
+06489,060883
+06490,061036
+06498,060726
+06499,060883
+06500,061232
+06501,060068
+06510,060068
+06518,060378
+06519,060068
+06600,060233
+06610,061008
+06611,061612
+06612,060303
+06613,060188
+06614,060233
+06615,060188
+06620,060482
+06630,061020
+06640,061279
+06650,061250
+06650,061279
+06655,061187
+06656,060573
+06657,061149
+06658,061302
+06659,060172
+06660,060515
+06670,060227
+06670,060634
+06678,061572
+06679,060634
+06680,060359
+06689,061377
+06690,060567
+06692,060628
+06700,061535
+06710,061535
+06711,060444
+06712,061535
+06713,060016
+06714,060613
+06715,061113
+06716,061566
+06717,060444
+06717,061566
+06718,061535
+06720,061535
+06730,060016
+06730,060917
+06731,060917
+06740,060975
+06750,060969
+06760,060917
+06770,060331
+06800,060153
+06800,060830
+06810,060251
+06820,060439
+06830,061627
+06840,060042
+06850,060129
+06860,060460
+06870,060589
+06880,061324
+06890,061456
+06891,060845
+06892,061358
+06893,061190
+06894,060093
+06894,060325
+06900,060747
+06906,061054
+06907,060861
+06908,060861
+06909,061345
+06910,060592
+06919,061015
+06920,060140
+06927,061443
+06928,060779
+06929,060140
+06930,060191
+06939,060763
+06940,060037
+06950,061507
+06960,060346
+06970,061106
+06980,060536
+07001,070407
+07002,070407
+07003,070407
+07004,070407
+07005,070407
+07006,070407
+07007,070407
+07008,070407
+07009,070407
+07010,070407
+07011,070407
+07012,070407
+07013,070407
+07014,070407
+07015,070407
+07071,070407
+07100,070619
+07101,070619
+07108,070619
+07109,070257
+07110,070103
+07120,040139
+07120,070407
+07140,070472
+07141,070368
+07142,070532
+07143,070472
+07144,070178
+07144,070472
+07150,070051
+07157,070051
+07159,070051
+07160,070051
+07160,070110
+07170,070630
+07179,070184
+07179,070619
+07180,070110
+07181,070110
+07183,070110
+07184,070110
+07190,070070
+07190,070201
+07190,070630
+07191,070070
+07192,070218
+07193,070103
+07194,070453
+07195,070453
+07196,070110
+07198,070407
+07199,070407
+07200,070223
+07208,070223
+07209,070223
+07210,070048
+07220,070048
+07230,070380
+07240,070491
+07250,070658
+07259,079013
+07260,070435
+07300,070276
+07310,070125
+07311,070099
+07312,070342
+07313,070585
+07314,070585
+07315,070197
+07316,070585
+07320,070563
+07330,070162
+07340,070012
+07349,070103
+07350,070086
+07360,070295
+07369,070585
+07400,070033
+07420,070440
+07430,070309
+07440,070393
+07450,070550
+07458,070393
+07458,070550
+07459,070550
+07460,070429
+07469,070429
+07470,070429
+07500,070337
+07509,070337
+07510,070602
+07511,070472
+07518,070282
+07519,070355
+07520,070414
+07529,079013
+07530,070511
+07540,070511
+07550,070624
+07559,070624
+07560,070511
+07560,070579
+07560,070624
+07570,070064
+07579,070064
+07580,070146
+07589,070146
+07590,070146
+07590,070624
+07600,070316
+07600,070407
+07608,070407
+07609,070316
+07610,070407
+07620,070316
+07629,070048
+07630,070131
+07638,070598
+07639,070131
+07639,070316
+07640,070598
+07650,070579
+07659,070579
+07660,070579
+07669,070223
+07669,070579
+07670,070223
+07680,070337
+07687,070337
+07687,070511
+07688,070337
+07689,070337
+07690,070579
+07691,070579
+07700,070321
+07701,070321
+07702,070321
+07703,070321
+07710,070526
+07711,070526
+07712,070321
+07713,070526
+07714,070321
+07720,070491
+07720,070645
+07730,070027
+07730,070374
+07740,070374
+07748,070374
+07749,079028
+07750,070159
+07750,070239
+07750,070624
+07760,070159
+07760,070579
+07769,070159
+07800,070260
+07800,070466
+07800,070547
+07810,070504
+07811,070504
+07812,070504
+07814,070547
+07815,070504
+07816,070466
+07817,070488
+07818,070488
+07819,070547
+07820,070466
+07828,070466
+07829,070488
+07830,070488
+07839,070488
+07840,070547
+07849,070547
+07850,070547
+07850,070579
+07860,070244
+07870,070244
+07871,070244
+07872,070244
+07961,070579
+08001,080193
+08002,080193
+08003,080193
+08004,080193
+08005,080193
+08006,080193
+08007,080193
+08008,080193
+08009,080193
+08010,080193
+08011,080193
+08012,080193
+08013,080193
+08014,080193
+08015,080193
+08016,080193
+08017,080193
+08018,080193
+08019,080193
+08020,080193
+08021,080193
+08022,080193
+08023,080193
+08024,080193
+08025,080193
+08026,080193
+08027,080193
+08028,080193
+08029,080193
+08030,080193
+08031,080193
+08032,080193
+08033,080193
+08034,080193
+08035,080193
+08036,080193
+08037,080193
+08038,080193
+08039,080193
+08040,080193
+08041,080193
+08042,080193
+08073,080734
+08100,081249
+08101,081614
+08104,081249
+08105,082093
+08106,082567
+08107,081154
+08110,081252
+08120,081056
+08130,082606
+08140,080333
+08146,080879
+08148,080790
+08150,081593
+08160,081350
+08170,081363
+08172,082055
+08173,082055
+08174,082055
+08175,082055
+08178,080706
+08180,081385
+08181,082671
+08182,082107
+08183,080556
+08183,080641
+08183,080958
+08184,081568
+08184,081878
+08185,081081
+08186,081075
+08187,082482
+08188,082969
+08189,082397
+08190,082055
+08191,081846
+08192,082384
+08193,082665
+08194,082384
+08195,082055
+08196,082055
+08197,082055
+08198,082055
+08201,081878
+08202,081878
+08203,081878
+08204,081213
+08204,081878
+08205,081878
+08206,081878
+08207,081878
+08208,081878
+08210,082520
+08211,080517
+08212,082233
+08213,081672
+08214,089045
+08220,082009
+08221,082798
+08222,082798
+08223,082798
+08224,082798
+08225,082798
+08226,082798
+08227,082798
+08228,082798
+08230,081206
+08231,082900
+08232,083008
+08233,082917
+08240,081136
+08241,080538
+08241,081136
+08242,081136
+08243,081136
+08250,082188
+08251,080620
+08251,081923
+08253,080983
+08254,081825
+08255,080594
+08256,080023
+08256,081786
+08257,082460
+08259,080847
+08260,082747
+08261,080478
+08262,080386
+08263,082299
+08269,081419
+08269,082299
+08270,081402
+08271,080109
+08272,082135
+08273,082589
+08274,082129
+08275,080348
+08275,081287
+08278,081398
+08278,082779
+08279,080121
+08280,080312
+08281,080364
+08281,081705
+08281,081897
+08281,251364
+08282,081764
+08282,082286
+08283,080608
+08289,080713
+08289,082975
+08289,251924
+08290,082665
+08291,081803
+08292,080765
+08293,080692
+08294,080253
+08295,082628
+08296,080538
+08297,080615
+08298,082423
+08299,081799
+08301,081213
+08302,081213
+08303,081213
+08304,081213
+08310,080095
+08317,081537
+08318,080752
+08319,080752
+08320,081189
+08328,080039
+08329,082819
+08330,081727
+08338,082303
+08339,082140
+08340,082191
+08348,080305
+08349,080291
+08350,080060
+08358,080076
+08359,081939
+08360,080403
+08370,080351
+08380,081108
+08389,081555
+08390,081265
+08391,082824
+08392,081976
+08393,080327
+08394,082649
+08395,082359
+08396,082037
+08397,081635
+08398,082613
+08401,080961
+08402,080961
+08403,080961
+08410,089024
+08415,080235
+08416,080235
+08420,080410
+08430,081810
+08440,080462
+08445,080425
+08450,081069
+08455,083067
+08458,082346
+08459,081982
+08460,082592
+08461,082074
+08469,080811
+08469,081379
+08470,082021
+08471,082943
+08472,080399
+08474,080977
+08476,082021
+08479,080811
+08480,080057
+08490,082845
+08495,080826
+08500,082981
+08503,081000
+08503,081995
+08504,082205
+08504,082418
+08505,082476
+08506,080370
+08507,082460
+08508,081173
+08509,082439
+08510,081167
+08510,081831
+08511,082541
+08511,082802
+08512,082153
+08513,081712
+08514,081094
+08515,082251
+08516,081496
+08517,081884
+08517,082554
+08518,081516
+08519,080832
+08519,082750
+08519,082981
+08519,083036
+08520,080863
+08521,080863
+08522,081115
+08529,081290
+08530,080885
+08540,080673
+08550,080174
+08551,082830
+08552,082785
+08553,082690
+08554,082690
+08559,080266
+08560,081120
+08569,082541
+08569,089019
+08570,082858
+08571,082652
+08572,082331
+08573,081509
+08580,082378
+08584,082536
+08585,081311
+08586,081957
+08587,080044
+08588,082726
+08589,081607
+08589,082016
+08589,082711
+08590,081347
+08591,080142
+08592,082248
+08593,082763
+08600,080229
+08604,080575
+08605,081304
+08607,082166
+08610,080116
+08611,081445
+08612,081326
+08613,082994
+08614,080787
+08617,080459
+08618,080500
+08619,080240
+08619,081770
+08620,082634
+08629,082896
+08630,080018
+08635,082080
+08640,081477
+08650,081918
+08660,080180
+08660,082704
+08670,081419
+08672,080902
+08673,083089
+08680,080924
+08690,082444
+08691,081271
+08692,081751
+08693,080497
+08694,080996
+08694,089030
+08695,080168
+08695,080930
+08696,080522
+08696,081666
+08697,081901
+08697,259101
+08698,080804
+08698,081424
+08698,082423
+08698,082687
+08699,082938
+08700,081022
+08710,082508
+08711,081430
+08712,082264
+08717,080082
+08717,081332
+08717,252167
+08718,080288
+08719,080636
+08719,081038
+08719,081859
+08720,083054
+08729,080581
+08730,082515
+08731,082270
+08732,080581
+08732,080654
+08733,081640
+08734,080137
+08734,081458
+08735,083041
+08736,080850
+08737,082883
+08738,081688
+08739,082732
+08740,081960
+08750,081234
+08753,081574
+08754,081580
+08755,080543
+08756,089058
+08757,080728
+08758,080689
+08759,082956
+08760,081141
+08769,080667
+08770,082401
+08773,081228
+08775,082877
+08776,082325
+08777,082362
+08779,081043
+08780,081574
+08781,081629
+08782,081192
+08783,081192
+08784,081614
+08785,082922
+08786,080446
+08787,080484
+08787,081521
+08787,081653
+08787,082573
+08788,083020
+08789,082861
+08790,080919
+08791,082227
+08792,080945
+08792,082495
+08793,080137
+08794,080272
+08795,081461
+08796,081542
+08797,081748
+08798,080137
+08798,082068
+08799,081458
+08800,083073
+08801,082798
+08810,082310
+08811,080431
+08812,082310
+08818,081483
+08820,081691
+08830,082009
+08840,083015
+08849,082042
+08850,080898
+08859,080207
+08860,080569
+08860,082704
+08870,082704
+08871,082704
+08872,082704
+08880,080749
+08901,081017
+08902,081017
+08903,081017
+08904,081017
+08905,081017
+08906,081017
+08907,081017
+08908,081017
+08911,080155
+08912,080155
+08913,080155
+08914,080155
+08915,080155
+08916,080155
+08917,080155
+08918,080155
+08921,082457
+08922,082457
+08923,082457
+08924,082457
+08930,081944
+08940,080734
+08950,080771
+08960,082212
+08970,082172
+08980,082114
+09001,090597
+09002,090597
+09003,090597
+09004,090597
+09004,093728
+09005,090597
+09006,090597
+09007,090597
+09100,092117
+09107,090243
+09107,090905
+09107,091828
+09107,092479
+09108,090888
+09108,092117
+09108,092432
+09108,093174
+09108,094825
+09109,090912
+09109,092426
+09109,093636
+09109,094607
+09110,090912
+09119,090341
+09119,090912
+09119,092582
+09119,094555
+09120,094271
+09121,092117
+09123,093636
+09124,091754
+09124,094271
+09125,090452
+09125,091720
+09125,092273
+09125,093983
+09125,094271
+09126,090452
+09126,091754
+09127,090452
+09127,094154
+09128,091486
+09128,091773
+09128,093689
+09128,094271
+09128,094445
+09128,094733
+09129,094271
+09130,093044
+09130,093771
+09131,092595
+09131,092978
+09131,099027
+09131,099070
+09133,091669
+09133,091813
+09133,092024
+09133,092576
+09133,093749
+09133,093826
+09133,094271
+09135,093734
+09136,093734
+09140,092870
+09140,093018
+09140,099064
+09141,090011
+09141,099064
+09142,099051
+09142,099064
+09143,093615
+09143,093958
+09144,093615
+09145,093615
+09145,093958
+09145,099051
+09146,090145
+09146,094167
+09146,099051
+09150,091669
+09150,091720
+09150,099027
+09159,099027
+09163,093121
+09191,091767
+09191,094712
+09191,099048
+09192,090597
+09192,090755
+09192,092411
+09193,090597
+09193,090721
+09193,090742
+09193,090866
+09194,090308
+09194,090721
+09194,090737
+09194,091773
+09194,093142
+09195,090238
+09195,094347
+09195,094398
+09195,094580
+09197,093728
+09197,094398
+09197,099064
+09197,099070
+09198,090866
+09198,091773
+09198,093351
+09199,090269
+09199,090294
+09199,090449
+09199,090597
+09199,090742
+09199,092668
+09199,093039
+09199,093266
+09199,094635
+09200,092194
+09210,094120
+09211,091340
+09211,092387
+09211,092557
+09211,094120
+09212,092138
+09212,092194
+09212,094120
+09213,091025
+09213,093945
+09213,094120
+09214,090546
+09215,091097
+09216,091097
+09217,091097
+09218,091097
+09218,092194
+09219,090130
+09219,090161
+09219,090546
+09219,091209
+09219,092194
+09219,093478
+09219,093538
+09219,094192
+09219,094542
+09220,092501
+09226,090413
+09226,090471
+09226,090951
+09226,092498
+09226,092501
+09226,094568
+09226,094672
+09226,094727
+09227,090793
+09227,091596
+09227,091806
+09227,093752
+09227,094419
+09228,091010
+09228,091985
+09228,092061
+09228,092365
+09228,092753
+09228,094666
+09230,090584
+09230,091255
+09230,091280
+09230,091675
+09230,093386
+09233,090119
+09239,090098
+09239,090238
+09239,090639
+09239,090933
+09239,091255
+09240,090562
+09244,090601
+09244,091353
+09244,092833
+09245,090525
+09245,090562
+09245,091499
+09245,094081
+09245,094859
+09246,090434
+09246,090716
+09246,091950
+09246,092387
+09246,092655
+09246,092729
+09246,092805
+09246,093235
+09247,091433
+09247,093348
+09248,090367
+09248,090487
+09248,090562
+09248,090768
+09248,092735
+09248,093109
+09249,090079
+09249,090434
+09249,090562
+09249,092306
+09249,092387
+09249,094228
+09249,094234
+09250,090487
+09250,092208
+09251,091157
+09252,092208
+09257,094311
+09258,090102
+09258,090487
+09258,090835
+09258,091237
+09258,093924
+09258,094115
+09258,094311
+09258,094458
+09259,090465
+09259,090829
+09259,091307
+09259,091789
+09259,093076
+09259,093082
+09259,094249
+09260,092740
+09267,090487
+09267,091293
+09268,092740
+09268,093039
+09268,093462
+09268,093608
+09268,094075
+09268,094332
+09269,093039
+09270,090986
+09270,093082
+09271,092984
+09272,090487
+09272,091329
+09280,090774
+09280,091209
+09280,092518
+09290,091335
+09290,092886
+09292,090275
+09292,090562
+09292,091003
+09292,092241
+09292,092925
+09292,093517
+09292,093543
+09292,094290
+09293,090578
+09293,092194
+09294,091097
+09294,092766
+09300,093214
+09310,093902
+09310,093919
+09310,094640
+09311,091681
+09311,092352
+09312,090177
+09312,093919
+09314,092560
+09314,094287
+09315,091176
+09315,091366
+09315,091391
+09316,090510
+09316,091708
+09317,091998
+09317,092560
+09317,093399
+09318,091388
+09318,092292
+09318,094056
+09320,091084
+09320,091963
+09320,094069
+09330,091979
+09338,094189
+09339,094430
+09339,094483
+09339,094666
+09339,094803
+09340,091947
+09341,091947
+09341,093431
+09341,093847
+09342,092621
+09342,093500
+09342,093898
+09343,094379
+09344,093253
+09344,094326
+09345,090320
+09345,091792
+09345,093253
+09345,093898
+09346,091139
+09346,092083
+09347,091139
+09347,091947
+09347,092772
+09347,093116
+09347,099012
+09348,090948
+09348,091947
+09348,092313
+09348,092959
+09348,093667
+09349,091031
+09349,091046
+09349,091274
+09349,091947
+09349,092674
+09349,092946
+09350,090336
+09350,090618
+09350,092390
+09350,093556
+09351,090308
+09351,091622
+09352,091144
+09353,093522
+09354,092707
+09370,090183
+09370,091519
+09370,092812
+09384,091947
+09384,093847
+09390,091979
+09390,093484
+09390,093863
+09390,094424
+09391,090853
+09400,090183
+09410,090196
+09410,091123
+09410,092616
+09427,094271
+09430,091741
+09440,093692
+09441,093692
+09442,093804
+09443,091524
+09443,094385
+09450,090183
+09450,090354
+09450,091643
+09450,094516
+09451,090200
+09451,090217
+09451,090222
+09451,090644
+09453,093961
+09453,094038
+09453,094402
+09454,091741
+09454,092791
+09460,092181
+09461,091405
+09462,090032
+09462,091600
+09462,092289
+09462,092539
+09462,093654
+09463,091558
+09471,091372
+09471,091412
+09471,093459
+09471,094213
+09490,090559
+09490,092616
+09490,093370
+09490,094831
+09491,091314
+09491,094000
+09491,094213
+09493,090657
+09493,093879
+09500,092096
+09510,091890
+09510,099086
+09511,090503
+09511,091904
+09511,099086
+09512,092096
+09512,099086
+09513,092096
+09513,099033
+09514,091890
+09514,092096
+09514,092143
+09515,092096
+09515,092138
+09530,092387
+09540,093945
+09545,094108
+09549,092138
+09549,093945
+09549,094120
+09549,099033
+09550,099033
+09551,090145
+09551,099051
+09553,099033
+09554,099033
+09555,099033
+09556,099033
+09557,092156
+09557,092169
+09557,099033
+09558,094094
+09558,099033
+09559,090145
+09559,092175
+09559,092387
+09560,091242
+09566,091242
+09567,091242
+09567,092156
+09568,092156
+09569,091242
+09569,092143
+09569,094108
+09570,090256
+09571,090119
+09571,090124
+09571,094136
+09572,090119
+09572,094094
+09572,094136
+09573,092169
+09574,092169
+09580,094108
+09585,094108
+09586,094108
+09587,094108
+09588,094108
+09589,092501
+09589,094108
+09591,099048
+09591,099064
+09592,090716
+09592,092729
+09592,093272
+09593,090063
+09593,090682
+09593,092387
+09593,092447
+09593,093288
+09593,093291
+09594,092138
+09600,093305
+09610,091059
+09610,091221
+09610,093581
+09611,090709
+09611,091545
+09611,094509
+09612,090623
+09612,091448
+09612,092019
+09612,092680
+09613,090389
+09613,091101
+09613,092236
+09613,092693
+09613,093121
+09613,093305
+09613,094786
+09614,090392
+09614,091736
+09614,094141
+09615,090373
+09615,092267
+09615,093180
+09615,093305
+09616,093787
+09617,093569
+09618,093569
+09619,091638
+09620,092215
+09620,093155
+09620,093327
+09620,093620
+09631,090200
+09640,090780
+09640,091694
+09640,091834
+09640,091849
+09640,091911
+09640,092002
+09640,093403
+09640,093811
+09640,094304
+09640,094764
+09641,091195
+09642,090308
+09642,092002
+09645,093885
+09646,094764
+09647,093142
+09649,092485
+09649,093811
+09649,094477
+09650,090660
+09650,094304
+09651,091911
+09652,094496
+09653,091813
+09654,091813
+09660,091638
+09660,093023
+09670,092899
+09679,092328
+09680,092463
+09690,094252
+09691,090840
+09691,092254
+09692,090676
+09693,093095
+10000,100377
+10001,100377
+10002,100377
+10003,100377
+10004,100377
+10005,100377
+10095,100377
+10100,101210
+10109,101210
+10110,101105
+10110,101127
+10120,101091
+10129,100298
+10130,102198
+10131,102013
+10132,100204
+10133,100731
+10134,100438
+10135,100092
+10136,100443
+10137,100171
+10140,100876
+10160,100106
+10161,100232
+10162,100529
+10163,100128
+10164,100377
+10169,102179
+10170,101262
+10180,101989
+10181,101777
+10182,101936
+10183,101941
+10184,101920
+10185,100279
+10185,100319
+10186,101881
+10187,100073
+10189,101611
+10189,101632
+10189,101650
+10189,102179
+10190,100494
+10191,101702
+10192,100980
+10193,101783
+10194,101259
+10195,100377
+10197,100073
+10198,101685
+10199,100377
+10200,101954
+10210,101133
+10220,101954
+10230,100921
+10240,100664
+10250,100778
+10251,100113
+10252,101869
+10260,101663
+10261,101534
+10261,101587
+10262,100020
+10263,102090
+10269,101587
+10270,100699
+10270,101604
+10271,101493
+10272,101611
+10280,101029
+10290,101954
+10291,100134
+10291,101954
+10292,101954
+10300,101318
+10310,101800
+10317,100651
+10318,101800
+10318,109055
+10319,101800
+10319,109042
+10320,100302
+10328,100759
+10329,100422
+10329,101203
+10329,101973
+10330,102132
+10331,100481
+10331,102132
+10332,101973
+10332,102006
+10333,100839
+10334,101416
+10335,101409
+10340,100605
+10341,101323
+10350,100190
+10359,100974
+10359,101604
+10360,100572
+10370,100703
+10370,100937
+10371,101590
+10372,100330
+10373,100330
+10374,101344
+10380,101035
+10390,101730
+10391,109016
+10392,100285
+10392,100857
+10393,101992
+10394,100263
+10394,101225
+10400,101040
+10410,100226
+10411,101382
+10412,100797
+10413,101915
+10414,100651
+10420,101817
+10430,100686
+10440,100149
+10450,101040
+10450,101053
+10459,100916
+10460,101105
+10470,102126
+10480,101112
+10484,109021
+10490,102049
+10490,102126
+10491,101796
+10492,102065
+10493,101571
+10500,102034
+10509,102034
+10510,101698
+10511,100469
+10512,100942
+10513,100627
+10514,102034
+10515,102034
+10516,102034
+10519,102034
+10520,100588
+10520,101822
+10521,101822
+10528,101761
+10529,101148
+10530,101758
+10540,101231
+10550,100187
+10560,100921
+10560,100955
+10570,101626
+10580,101199
+10590,101164
+10591,100921
+10591,101164
+10591,101822
+10592,100566
+10593,100494
+10600,101480
+10610,100358
+10611,101838
+10612,101072
+10613,101301
+10614,101967
+10615,101474
+10616,100361
+10616,100540
+10616,100909
+10617,101549
+10617,101843
+10620,100417
+10623,100417
+10623,101357
+10624,100417
+10624,101088
+10625,101088
+10626,101357
+10627,101357
+10628,100514
+10628,101357
+10629,100417
+10629,101357
+10630,100417
+10630,100507
+10630,101468
+10630,101758
+10638,101468
+10639,101468
+10640,100507
+10649,100507
+10649,101442
+10650,100067
+10660,101376
+10660,101679
+10661,101679
+10662,101170
+10663,100633
+10663,101035
+10664,101246
+10665,100909
+10666,100054
+10666,101724
+10667,101360
+10670,100475
+10671,100165
+10671,100475
+10671,101480
+10672,102028
+10680,101164
+10690,101480
+10690,109037
+10691,100762
+10692,100895
+10693,101552
+10694,101908
+10695,101758
+10696,100250
+10696,100818
+10697,101164
+10697,101817
+10697,101822
+10700,100968
+10710,102163
+10711,100860
+10720,102147
+10728,101066
+10729,100345
+10730,100553
+10739,101745
+10740,100152
+10748,100015
+10749,100801
+10750,100247
+10759,100784
+10800,100670
+10810,101278
+10810,101989
+10811,100670
+10811,100895
+10811,101297
+10812,102111
+10813,101528
+10814,102071
+10815,100882
+10816,100535
+10816,100895
+10817,100400
+10818,100535
+10818,100591
+10820,100456
+10824,100993
+10828,101513
+10829,100456
+10829,100993
+10829,101395
+10829,101552
+10830,101894
+10839,101894
+10840,101284
+10848,109021
+10849,100844
+10849,101014
+10850,101007
+10857,100036
+10858,102150
+10859,101719
+10860,100844
+10864,101875
+10865,100396
+10866,100710
+10867,101565
+10868,100937
+10869,101856
+10870,100612
+10879,100041
+10880,100844
+10880,102185
+10881,100383
+10882,101437
+10883,101506
+10885,100396
+10890,102052
+10891,100725
+10892,101647
+10893,102104
+10895,100648
+10896,101421
+10897,100456
+10900,100211
+10910,101151
+10920,100377
+10930,101339
+10940,100823
+10950,100324
+10960,102087
+10970,101186
+10980,100089
+10989,100089
+10990,100089
+10991,101455
+11001,110125
+11002,110125
+11003,110125
+11004,110125
+11005,110125
+11006,110125
+11007,110125
+11008,110125
+11009,110125
+11010,110125
+11011,110125
+11012,110125
+11100,110316
+11130,110159
+11139,110159
+11140,110146
+11149,110146
+11150,110070
+11150,110393
+11158,110393
+11159,110070
+11159,110393
+11160,110070
+11170,110239
+11178,110257
+11179,110239
+11179,110393
+11180,110012
+11190,119013
+11201,110048
+11202,110048
+11203,110048
+11204,110048
+11205,110048
+11206,110048
+11207,110048
+11300,110223
+11300,110295
+11310,110337
+11311,110321
+11311,110337
+11312,110337
+11313,110337
+11314,110337
+11320,110218
+11330,110218
+11339,110218
+11350,110131
+11360,110337
+11368,110337
+11369,110337
+11370,110086
+11379,110086
+11380,110355
+11389,110051
+11390,110048
+11390,110355
+11391,110048
+11391,110355
+11392,110355
+11393,110070
+11393,110355
+11400,110201
+11401,110201
+11402,110201
+11403,110201
+11404,110201
+11405,110201
+11406,110201
+11407,110201
+11408,110201
+11500,110276
+11510,110282
+11518,110282
+11519,110282
+11520,110103
+11520,110309
+11540,110321
+11549,110321
+11550,110162
+11560,110374
+11570,110201
+11579,110201
+11580,119028
+11590,110201
+11591,110201
+11592,110201
+11593,110201
+11594,110201
+11595,110201
+11596,110201
+11600,110380
+11610,110197
+11611,110407
+11612,110099
+11620,110064
+11630,110064
+11638,110064
+11639,110033
+11640,110103
+11648,110178
+11649,110103
+11650,110414
+11659,110295
+11660,110260
+11670,110110
+11679,110197
+11680,110051
+11687,110184
+11688,110429
+11689,110051
+11690,110244
+11691,110368
+11692,110342
+11693,110027
+12001,120402
+12002,120402
+12003,120402
+12004,120402
+12005,120402
+12006,120402
+12100,120056
+12100,120402
+12110,120056
+12118,121227
+12119,120056
+12119,120496
+12120,120727
+12121,120056
+12122,120607
+12122,121227
+12123,120419
+12123,120733
+12124,120555
+12124,121303
+12125,121423
+12126,120483
+12127,120483
+12130,129023
+12131,121227
+12132,120017
+12133,120017
+12134,120252
+12134,120555
+12135,120672
+12135,121397
+12138,120458
+12140,120038
+12150,121299
+12159,120385
+12160,120265
+12161,121191
+12162,121346
+12163,120516
+12164,121055
+12165,120141
+12166,121055
+12170,121009
+12179,121114
+12180,120332
+12181,120290
+12182,121055
+12183,121325
+12184,121037
+12184,121205
+12185,120509
+12186,120982
+12190,120311
+12190,121248
+12191,120944
+12192,121286
+12193,121055
+12193,121248
+12194,121248
+12200,120846
+12210,120957
+12220,120846
+12221,121093
+12222,120022
+12222,120069
+12223,121080
+12224,120173
+12224,121310
+12225,120640
+12225,121166
+12230,120154
+12230,120580
+12230,120593
+12230,121135
+12230,121233
+12231,120461
+12232,120136
+12232,120461
+12232,121188
+12300,120803
+12310,120607
+12310,120614
+12311,120878
+12311,121378
+12311,121418
+12312,120751
+12312,120831
+12312,121129
+12315,121270
+12316,120803
+12317,120688
+12318,120458
+12318,120918
+12319,120379
+12320,120995
+12330,121016
+12330,121212
+12340,120705
+12350,120363
+12360,120521
+12370,120521
+12400,121042
+12410,120120
+12412,120672
+12412,121042
+12413,120108
+12413,120398
+12414,120081
+12414,121042
+12414,121251
+12415,120653
+12415,120764
+12420,120206
+12428,120635
+12428,120923
+12428,121331
+12429,120635
+12429,120901
+12429,121153
+12430,120228
+12431,121140
+12440,120430
+12447,120786
+12448,120799
+12449,120249
+12449,120691
+12449,120884
+12450,120712
+12460,121401
+12469,120976
+12469,121107
+12469,121401
+12470,120810
+12480,121068
+12489,121074
+12490,120189
+12499,120568
+12500,121384
+12510,121016
+12511,120960
+12512,120960
+12513,120424
+12520,120825
+12526,121362
+12527,120167
+12528,120574
+12529,120825
+12530,120271
+12530,120326
+12539,129018
+12540,121359
+12549,120213
+12550,120094
+12560,120287
+12560,120402
+12570,120043
+12578,120445
+12579,120043
+12580,120271
+12589,120347
+12590,120115
+12591,120748
+12592,120537
+12593,120770
+12594,120859
+12595,120332
+12596,121172
+12597,121021
+12598,120897
+12599,120939
+12599,120960
+12600,121264
+12609,120075
+12952,120537
+13001,130343
+13002,130343
+13003,130343
+13004,130343
+13005,130343
+13100,130631
+13107,130071
+13108,130512
+13109,130684
+13110,060628
+13110,130492
+13114,139014
+13115,130065
+13116,130065
+13117,130179
+13118,130179
+13118,130659
+13120,130659
+13129,130659
+13130,130420
+13140,130408
+13150,130317
+13160,130837
+13170,130564
+13179,130150
+13179,130662
+13180,130013
+13189,130150
+13190,130356
+13190,130564
+13191,130300
+13191,130678
+13192,130150
+13192,130258
+13193,130219
+13193,130415
+13193,130599
+13194,130527
+13194,130603
+13194,130659
+13194,130723
+13195,130343
+13195,130646
+13196,130343
+13196,130625
+13196,130631
+13197,130343
+13200,130533
+13210,130972
+13220,139040
+13230,130548
+13240,130795
+13247,130744
+13248,130104
+13249,139029
+13250,130394
+13260,130132
+13260,130230
+13270,130132
+13279,130880
+13300,130874
+13310,130874
+13320,130935
+13326,130570
+13327,130760
+13328,130147
+13329,130322
+13330,130929
+13331,130893
+13332,130893
+13333,130436
+13340,130049
+13341,130816
+13342,130697
+13343,130907
+13344,130842
+13345,130375
+13350,130586
+13360,130454
+13370,130277
+13379,130940
+13380,130090
+13390,130104
+13391,130087
+13400,130111
+13410,130028
+13411,130868
+13412,130381
+13413,130034
+13414,130126
+13414,130739
+13415,130150
+13420,130527
+13427,130369
+13428,130441
+13428,130527
+13429,130527
+13430,130296
+13431,130953
+13432,130224
+13440,130202
+13449,130245
+13450,130245
+13459,130150
+13460,130150
+13470,130150
+13473,130013
+13473,130150
+13480,130126
+13490,130467
+13499,130467
+13500,130718
+13580,130150
+13590,130489
+13591,130261
+13592,130551
+13593,130809
+13594,130551
+13595,130914
+13596,130150
+13597,130718
+13598,130150
+13600,130052
+13610,130283
+13619,139035
+13620,130610
+13629,130821
+13630,130782
+13640,130473
+13650,130701
+13660,130505
+13670,130966
+13679,130185
+13680,130441
+13690,130052
+13700,130821
+13710,130198
+13720,130052
+13730,130776
+13739,130277
+13739,130988
+13740,130855
+13750,130338
+13760,130163
+13768,130163
+13768,130988
+13770,130988
+13779,130277
+13779,130757
+14001,140214
+14002,140214
+14003,140214
+14004,140214
+14005,140214
+14006,140214
+14007,140214
+14008,140214
+14009,140214
+14010,140214
+14011,140214
+14012,140214
+14013,140214
+14014,140214
+14029,140214
+14035,140351
+14071,140673
+14100,140174
+14110,140305
+14111,140174
+14112,140305
+14113,140305
+14115,140180
+14115,140305
+14120,140305
+14129,140305
+14129,140364
+14130,140333
+14140,140654
+14150,140594
+14190,140109
+14190,140214
+14191,140174
+14192,140214
+14193,140214
+14193,140240
+14200,140522
+14206,140641
+14207,140327
+14208,140116
+14209,140095
+14209,140291
+14209,140364
+14210,140266
+14210,140689
+14220,140266
+14230,140713
+14240,140095
+14248,140095
+14249,140095
+14249,140291
+14250,140706
+14260,140288
+14270,140351
+14280,140082
+14290,140291
+14297,140291
+14298,140291
+14299,140291
+14300,140734
+14310,140478
+14320,140266
+14320,140478
+14320,140734
+14330,140214
+14350,140214
+14350,140478
+14400,140543
+14410,140620
+14412,140517
+14413,140348
+14420,140673
+14430,140018
+14439,140018
+14440,140692
+14445,140168
+14446,140168
+14447,140168
+14448,140207
+14449,130150
+14450,140060
+14450,140425
+14460,140235
+14470,140749
+14480,140039
+14490,140728
+14491,140615
+14500,140569
+14510,140459
+14511,140386
+14512,140569
+14520,140272
+14530,140410
+14540,140575
+14546,140608
+14547,140608
+14548,140403
+14549,140608
+14550,140425
+14600,140431
+14610,140018
+14610,140214
+14620,140180
+14630,140500
+14640,140667
+14650,140121
+14659,140121
+14660,140142
+14670,140636
+14700,140497
+14709,140364
+14710,140214
+14711,140214
+14719,140214
+14720,140057
+14729,140057
+14730,140538
+14739,140538
+14740,140364
+14800,140556
+14810,140155
+14811,140137
+14811,140155
+14811,140556
+14812,140044
+14813,140044
+14814,140556
+14815,140312
+14815,140556
+14816,140556
+14817,140556
+14820,140214
+14830,140253
+14840,140193
+14850,140076
+14857,140193
+14857,140462
+14858,140193
+14859,140076
+14860,140229
+14870,140752
+14880,140399
+14900,140386
+14910,140109
+14911,140386
+14913,140240
+14914,140484
+14915,140109
+14920,140023
+14930,140446
+14940,140137
+14941,140615
+14949,140137
+14950,140076
+14950,140364
+14950,140581
+14960,140581
+14970,140370
+14978,140370
+14979,140370
+15001,150308
+15002,150308
+15003,150308
+15004,150308
+15005,150308
+15006,150308
+15007,150308
+15008,150050
+15008,150308
+15009,150308
+15010,150308
+15011,150308
+15100,150196
+15102,150196
+15105,150196
+15106,150196
+15107,150196
+15108,150196
+15109,150196
+15110,150145
+15110,150682
+15111,150434
+15112,150434
+15113,150434
+15114,150682
+15115,150145
+15116,150145
+15117,150406
+15118,150406
+15119,150145
+15121,150161
+15121,150927
+15122,150161
+15123,150161
+15124,150525
+15125,150525
+15126,150525
+15126,150927
+15127,150927
+15128,150927
+15129,150927
+15130,150281
+15137,150281
+15138,150238
+15139,150315
+15140,150050
+15141,150050
+15142,150050
+15144,150050
+15145,150413
+15146,150413
+15147,150294
+15148,150294
+15149,150145
+15150,150927
+15150,150933
+15151,150341
+15152,150341
+15153,150373
+15154,150373
+15155,150373
+15160,150755
+15165,150085
+15166,150085
+15167,150085
+15168,150755
+15169,150755
+15170,150308
+15171,150584
+15172,150584
+15173,150584
+15174,150315
+15175,150217
+15176,150584
+15177,150584
+15178,150584
+15179,150584
+15180,150315
+15181,150177
+15182,150217
+15183,150217
+15184,150217
+15185,150243
+15186,150243
+15187,150243
+15188,150243
+15189,150315
+15190,150308
+15191,150308
+15192,150308
+15198,150315
+15199,150315
+15200,150578
+15210,150578
+15211,150578
+15212,150428
+15213,150578
+15214,150428
+15215,150428
+15216,150428
+15218,150428
+15218,150578
+15218,150716
+15220,150026
+15228,150026
+15229,150026
+15230,150623
+15236,150623
+15237,150623
+15239,150623
+15240,150531
+15250,150531
+15256,150452
+15258,150452
+15259,150531
+15270,150238
+15280,150130
+15281,150742
+15282,150742
+15284,150531
+15286,150623
+15287,150623
+15288,150623
+15290,150531
+15291,150531
+15292,150200
+15293,150200
+15295,150200
+15296,150200
+15297,150341
+15298,150238
+15299,150238
+15300,150098
+15310,150320
+15313,150392
+15314,150644
+15315,150503
+15316,150275
+15317,150032
+15318,150011
+15319,150085
+15319,150098
+15319,150644
+15320,150709
+15324,150709
+15325,150709
+15326,150709
+15327,150709
+15328,150709
+15329,150709
+15330,150618
+15332,150618
+15337,150449
+15338,150618
+15339,150449
+15339,150618
+15340,150618
+15347,150222
+15349,150618
+15350,150222
+15357,150222
+15358,150222
+15359,150222
+15360,159012
+15365,159012
+15366,159012
+15367,150618
+15368,150618
+15369,159012
+15379,150320
+15380,159027
+15386,159027
+15387,159027
+15388,159027
+15389,159027
+15390,159027
+15391,159027
+15401,150367
+15402,150367
+15403,150367
+15404,150367
+15405,150367
+15406,150367
+15407,150367
+15500,150354
+15509,150354
+15510,150559
+15520,150354
+15528,150354
+15530,150256
+15540,150546
+15541,150546
+15542,150872
+15543,150872
+15550,150872
+15551,150872
+15552,150872
+15553,150872
+15554,150872
+15555,150222
+15560,150768
+15561,150768
+15562,150768
+15563,150490
+15564,150490
+15565,150814
+15566,150814
+15567,150814
+15568,150814
+15569,150256
+15570,150546
+15572,150546
+15573,150546
+15576,150768
+15577,150559
+15578,150546
+15579,150559
+15580,150768
+15582,150124
+15582,150709
+15590,150367
+15591,150367
+15592,150367
+15593,150367
+15594,150367
+15595,150367
+15596,150546
+15597,150546
+15598,150768
+15600,150695
+15607,150695
+15608,150487
+15608,150695
+15609,150503
+15609,150695
+15611,150158
+15612,150158
+15613,150183
+15614,150695
+15615,150912
+15616,150912
+15617,150503
+15619,150503
+15620,150510
+15621,150158
+15622,150158
+15623,150047
+15624,150047
+15625,150047
+15626,150510
+15627,150354
+15627,150510
+15630,150487
+15635,150487
+15637,150912
+15638,150912
+15639,150487
+15640,150085
+15650,150177
+15656,150933
+15659,150177
+15660,150177
+15668,150177
+15669,150177
+15670,150315
+15679,150177
+15680,150597
+15683,150840
+15684,150597
+15684,150601
+15684,150840
+15685,150389
+15685,150471
+15685,150597
+15686,150389
+15686,150471
+15686,150866
+15687,150597
+15687,150866
+15688,150601
+15688,150780
+15689,150471
+15689,150597
+15689,150840
+15690,150050
+15701,150780
+15702,150780
+15703,150780
+15704,150780
+15705,150780
+15706,150780
+15707,150780
+15800,150465
+15805,150465
+15806,150835
+15807,150905
+15808,150793
+15809,150465
+15810,150063
+15813,150807
+15814,150807
+15815,150807
+15816,150102
+15817,150102
+15818,150102
+15819,150063
+15819,150465
+15820,150780
+15821,150660
+15822,150853
+15823,150660
+15823,150853
+15824,150660
+15824,150853
+15825,150660
+15826,150063
+15828,150853
+15830,150562
+15837,150774
+15838,150562
+15839,150079
+15839,150130
+15839,150562
+15840,150774
+15841,150774
+15845,150774
+15846,150774
+15847,150774
+15848,150774
+15850,150933
+15851,150933
+15855,150933
+15856,150933
+15857,150933
+15858,150933
+15859,150933
+15860,150774
+15861,150774
+15862,150079
+15863,150079
+15863,150562
+15864,150026
+15865,150130
+15866,150829
+15870,150026
+15871,150888
+15872,150888
+15873,150888
+15874,150888
+15880,150891
+15881,150124
+15881,150891
+15882,150124
+15883,150829
+15884,150601
+15884,150780
+15885,150891
+15886,150829
+15887,150660
+15888,150601
+15890,150780
+15892,150780
+15893,150780
+15894,150829
+15895,150026
+15896,150780
+15897,150780
+15898,150780
+15899,150780
+15900,150657
+15910,150657
+15911,150742
+15912,150742
+15913,150742
+15914,150657
+15915,150657
+15916,150336
+15917,150657
+15920,150721
+15928,150721
+15930,150119
+15937,150119
+15938,150119
+15939,150119
+15940,150676
+15948,150676
+15949,150676
+15950,150737
+15959,150737
+15960,150737
+15965,150737
+15966,150737
+15967,150737
+15968,150737
+15969,150737
+15970,150716
+15978,150716
+15979,150716
+15980,150657
+15980,150742
+15981,150336
+15982,150336
+15983,150721
+15984,150721
+15985,150721
+15990,150119
+15991,150119
+15992,150119
+15993,150737
+15994,150716
+15995,150716
+15996,150716
+15998,150716
+15999,150716
+16001,160783
+16002,160783
+16003,160783
+16004,160783
+16043,160437
+16100,162368
+16111,160040
+16111,162738
+16113,161527
+16114,160395
+16118,160297
+16118,161049
+16118,161420
+16118,161610
+16120,169036
+16122,160838
+16122,169020
+16123,169054
+16140,162453
+16141,160225
+16141,160702
+16141,160843
+16141,161631
+16142,161219
+16143,161224
+16143,169092
+16144,160856
+16144,169092
+16145,169092
+16146,160783
+16146,162808
+16147,161224
+16150,162159
+16150,162393
+16152,160318
+16152,161071
+16152,162197
+16152,162244
+16160,161489
+16161,162110
+16162,162110
+16190,160231
+16190,169041
+16191,160231
+16191,160301
+16191,160783
+16191,162547
+16191,169041
+16192,160409
+16192,161492
+16193,160783
+16193,160894
+16194,160231
+16194,160783
+16194,169041
+16195,160014
+16195,160199
+16195,161104
+16195,162110
+16195,162630
+16196,162630
+16200,161343
+16210,160421
+16211,161586
+16212,169089
+16214,160035
+16214,160920
+16214,162316
+16214,162374
+16215,160170
+16216,160817
+16216,161415
+16216,161991
+16216,169036
+16220,161757
+16230,162511
+16235,161132
+16236,161132
+16236,162440
+16236,162511
+16237,161185
+16238,162440
+16238,162511
+16239,160663
+16240,161551
+16250,160685
+16251,160967
+16260,161258
+16269,161570
+16269,161744
+16270,162488
+16280,162717
+16290,160989
+16290,161132
+16300,160528
+16311,160360
+16311,160437
+16311,160881
+16311,161090
+16312,160936
+16312,160973
+16313,160148
+16315,160088
+16315,160360
+16316,160442
+16316,161111
+16316,161150
+16316,162276
+16317,161874
+16317,162051
+16317,162781
+16318,161893
+16320,162027
+16321,162027
+16330,161179
+16336,161940
+16337,161356
+16338,160133
+16338,160626
+16338,161356
+16339,160954
+16339,161179
+16339,161940
+16340,160468
+16340,160745
+16340,162257
+16350,160552
+16360,160246
+16360,161317
+16370,161929
+16370,162585
+16371,161375
+16371,162743
+16372,160822
+16372,161505
+16373,160565
+16373,161505
+16373,162769
+16390,161467
+16390,161473
+16390,161776
+16393,161261
+16400,162033
+16410,161065
+16411,160869
+16412,160029
+16413,162125
+16414,161678
+16415,162491
+16417,161006
+16420,160164
+16420,162700
+16421,161034
+16421,161723
+16422,162162
+16423,161454
+16430,161868
+16431,160186
+16432,161816
+16432,162645
+16433,160127
+16433,162532
+16434,161296
+16435,160992
+16440,161300
+16441,161013
+16442,162696
+16444,160730
+16452,161816
+16452,162178
+16452,162184
+16460,160278
+16461,161198
+16463,161855
+16464,160105
+16465,161087
+16465,161512
+16470,160278
+16470,160323
+16470,162794
+16500,161126
+16510,161739
+16510,162407
+16512,160416
+16512,161739
+16520,161126
+16521,161126
+16522,161625
+16522,162064
+16532,160941
+16532,161126
+16532,161564
+16532,162504
+16535,162466
+16537,160112
+16537,160513
+16540,161126
+16541,161126
+16541,161603
+16541,162658
+16541,169067
+16542,169106
+16550,161126
+16550,169015
+16555,169015
+16600,161907
+16610,160611
+16611,160647
+16612,160650
+16620,160072
+16621,161953
+16622,161599
+16623,160724
+16630,161338
+16638,161533
+16639,161966
+16640,160339
+16646,162472
+16647,160875
+16647,162435
+16648,162550
+16649,160587
+16649,161283
+16649,161760
+16650,161245
+16660,161548
+16670,161718
+16700,161988
+16707,160604
+16708,160632
+16708,161662
+16709,162380
+16710,160262
+16710,162048
+16720,160474
+16730,161028
+16738,160493
+16739,162131
+16740,160151
+16740,160323
+16760,161394
+16770,161914
+16771,162661
+16771,162775
+16779,160344
+16780,160199
+16780,161322
+16781,160838
+16800,161701
+16812,160066
+16812,160091
+16812,160203
+16812,161697
+16812,162756
+16813,161880
+16813,161935
+16813,162282
+16813,162598
+16830,169015
+16840,162547
+16841,160053
+16842,162099
+16843,162722
+16850,160506
+16851,160382
+16852,161408
+16853,161436
+16854,160719
+16855,160259
+16856,160679
+16857,160455
+16860,162429
+16870,160357
+16878,161163
+16878,161230
+16878,161659
+16878,161972
+16879,160357
+16879,160571
+16879,160796
+16879,162342
+16890,160480
+16890,160534
+16890,160915
+16891,160534
+16891,160571
+16892,160534
+16893,160357
+17001,170792
+17002,170792
+17003,170792
+17004,170792
+17005,170792
+17006,170792
+17007,170792
+17100,170221
+17110,179026
+17111,179026
+17113,179026
+17114,172057
+17116,179011
+17117,179011
+17118,179011
+17120,171306
+17121,170577
+17121,179011
+17123,171978
+17124,171175
+17130,170622
+17130,171997
+17131,171539
+17132,170681
+17133,170681
+17133,171267
+17133,171910
+17133,172039
+17134,171959
+17136,170046
+17137,172174
+17140,172044
+17141,170182
+17141,171997
+17142,172116
+17143,170852
+17144,170558
+17144,172327
+17150,171637
+17151,171637
+17152,171729
+17153,171729
+17154,171833
+17160,170084
+17161,171169
+17162,170209
+17164,171637
+17164,171729
+17164,179032
+17165,171899
+17166,171899
+17166,171946
+17170,170078
+17171,171833
+17171,171946
+17172,171334
+17173,171334
+17174,171616
+17176,172076
+17177,172076
+17178,171390
+17178,172076
+17179,171498
+17179,172076
+17180,172155
+17181,170025
+17182,170209
+17183,172333
+17184,172333
+17185,172333
+17190,171557
+17199,170405
+17199,171637
+17200,171175
+17210,171175
+17211,171175
+17212,171175
+17213,170139
+17214,171447
+17220,171609
+17227,172272
+17230,171181
+17240,170890
+17240,171812
+17241,171426
+17242,171426
+17243,170904
+17244,170448
+17244,179011
+17245,171812
+17246,171812
+17248,170486
+17248,171609
+17249,170486
+17250,170486
+17251,170340
+17252,170340
+17253,171100
+17253,172095
+17255,170139
+17256,171215
+17256,171241
+17257,170708
+17257,170813
+17257,171997
+17258,171997
+17300,170237
+17310,170950
+17320,171181
+17320,172023
+17400,170274
+17401,170097
+17402,170097
+17403,171642
+17404,171463
+17405,170638
+17406,172207
+17410,171931
+17411,172137
+17412,171030
+17420,171931
+17421,171485
+17430,170950
+17430,171805
+17441,170280
+17450,170834
+17451,171595
+17452,171019
+17454,171576
+17455,170335
+17456,170335
+17457,171501
+17458,170736
+17459,170388
+17460,170499
+17461,170792
+17462,170255
+17462,170871
+17462,170979
+17462,171735
+17463,170675
+17463,170681
+17463,171680
+17464,170502
+17464,171668
+17464,172168
+17465,171870
+17466,170767
+17466,172327
+17467,171766
+17467,171870
+17468,170160
+17468,172180
+17469,170059
+17469,170524
+17469,170741
+17469,171518
+17469,172266
+17470,171788
+17472,170118
+17473,172109
+17474,171984
+17474,172253
+17475,171753
+17475,172109
+17476,170754
+17476,171194
+17480,171523
+17481,171693
+17482,171693
+17483,170160
+17483,172229
+17484,170669
+17485,172305
+17486,170470
+17486,170669
+17487,170470
+17488,170329
+17489,171404
+17489,171886
+17490,170926
+17491,171328
+17492,171328
+17493,171292
+17493,172235
+17494,171289
+17495,171208
+17496,170545
+17497,171387
+17500,171479
+17512,170963
+17513,170963
+17515,172121
+17520,171411
+17527,170947
+17528,170828
+17529,171411
+17530,170366
+17531,170366
+17531,170806
+17532,170963
+17534,170372
+17534,170433
+17534,171254
+17534,171450
+17535,171349
+17536,172018
+17537,170062
+17538,170062
+17538,170617
+17538,170694
+17538,172060
+17539,170242
+17539,170789
+17539,170849
+17539,170998
+17600,170669
+17700,170268
+17700,170865
+17706,171352
+17707,170010
+17707,170144
+17708,170412
+17709,170865
+17720,171024
+17721,171024
+17722,170600
+17723,170293
+17723,172348
+17730,170932
+17731,171962
+17732,171714
+17733,170031
+17734,170031
+17740,172214
+17741,170519
+17741,172288
+17742,170123
+17743,172288
+17744,171117
+17745,170887
+17746,170314
+17747,170314
+17750,170427
+17751,171582
+17752,171061
+17753,170643
+17754,171432
+17755,171432
+17760,172142
+17761,170307
+17762,171002
+17763,171002
+17770,170268
+17771,171827
+17772,171156
+17773,171365
+17780,170773
+17781,172272
+17800,171143
+17810,171143
+17811,171848
+17812,171143
+17813,172082
+17820,170157
+17830,171058
+17830,171621
+17831,171740
+17832,170583
+17832,170656
+17833,170715
+17833,172180
+17834,170353
+17834,171371
+17840,171864
+17843,171236
+17844,170561
+17846,171371
+17850,170195
+17850,170216
+17850,171621
+17851,170216
+17851,170985
+17852,171903
+17853,170101
+17853,171544
+17853,172001
+17854,170353
+17854,171655
+17855,171096
+17856,170464
+17856,171096
+17857,171851
+17858,172082
+17860,171674
+17861,171122
+17862,171707
+17864,171772
+17865,171772
+17867,170391
+17868,171077
+17869,170911
+17869,171925
+17869,172240
+18000,181400
+18001,180877
+18002,180877
+18003,180877
+18004,180877
+18005,180877
+18006,180877
+18007,180877
+18008,180877
+18009,180877
+18010,180877
+18011,180877
+18012,180877
+18013,180877
+18014,180877
+18015,180877
+18016,180877
+18100,180212
+18101,189115
+18102,189115
+18110,189056
+18120,180135
+18125,180135
+18126,180205
+18127,181067
+18127,181073
+18128,181921
+18129,180205
+18129,180346
+18129,181746
+18130,180726
+18130,181263
+18130,181494
+18131,181857
+18132,180016
+18140,181400
+18140,181937
+18150,180845
+18150,181507
+18151,181456
+18152,180687
+18160,180943
+18165,189069
+18170,180114
+18179,180114
+18179,181895
+18180,180671
+18181,180634
+18181,181540
+18182,180877
+18183,180994
+18184,180248
+18185,180994
+18190,180476
+18191,180943
+18191,181572
+18192,180704
+18192,181686
+18193,181345
+18194,180628
+18195,180573
+18196,181345
+18197,181651
+18198,181015
+18199,180362
+18200,181279
+18210,181535
+18211,180508
+18212,180956
+18213,181113
+18214,181443
+18220,180037
+18230,180227
+18230,181358
+18240,181588
+18247,181324
+18248,181324
+18249,181324
+18250,181588
+18250,189141
+18260,181020
+18270,181358
+18280,180129
+18290,180037
+18290,180227
+18290,180378
+18291,181588
+18292,180227
+18293,181020
+18294,181020
+18295,180129
+18300,181226
+18310,181710
+18311,181226
+18311,189136
+18312,140370
+18312,181226
+18313,181226
+18314,181226
+18320,181759
+18327,181152
+18328,181152
+18328,181588
+18329,180613
+18329,181759
+18330,180227
+18330,180592
+18330,181759
+18339,180482
+18339,180592
+18340,180798
+18349,180444
+18350,181020
+18360,181008
+18360,181226
+18369,181882
+18370,181383
+18380,181020
+18381,181020
+18400,181475
+18410,180439
+18410,181475
+18410,181762
+18411,181514
+18412,180325
+18413,180423
+18414,189017
+18415,181633
+18416,180331
+18416,189017
+18417,181801
+18418,180401
+18418,181400
+18418,181475
+18420,181165
+18420,189043
+18430,181797
+18438,180166
+18439,180444
+18440,180359
+18448,180359
+18449,181211
+18450,189043
+18451,180303
+18452,181128
+18460,189043
+18470,181839
+18480,181823
+18490,181417
+18491,181818
+18492,181417
+18492,181823
+18494,181823
+18494,189038
+18500,180896
+18501,181361
+18510,180270
+18511,189075
+18512,180690
+18512,180975
+18512,181149
+18513,180747
+18514,180107
+18515,180763
+18515,180896
+18515,181670
+18516,180251
+18516,181232
+18516,181285
+18516,181612
+18517,180541
+18517,181540
+18517,181686
+18518,180055
+18518,180188
+18518,180495
+18518,181089
+18518,181171
+18519,180896
+18519,181670
+18520,180021
+18530,181529
+18538,180153
+18538,180649
+18539,181876
+18540,180830
+18540,180969
+18540,189043
+18540,189094
+18550,181054
+18550,189154
+18560,180883
+18561,181361
+18562,181591
+18563,180830
+18563,181784
+18564,180515
+18565,180384
+18566,180286
+18567,180652
+18567,181054
+18567,189154
+18568,181591
+18569,181324
+18569,181377
+18570,180665
+18600,181036
+18600,181400
+18610,181731
+18611,181330
+18612,181036
+18613,181400
+18614,180938
+18614,181247
+18614,181400
+18615,181844
+18615,189069
+18616,181844
+18620,180140
+18630,181494
+18640,181507
+18650,180711
+18650,181494
+18656,181190
+18657,181438
+18658,189022
+18658,189108
+18659,180074
+18659,189081
+18660,189108
+18670,181844
+18680,180711
+18680,181731
+18690,180172
+18697,180172
+18698,181481
+18699,181092
+18699,181204
+18700,180068
+18708,180042
+18710,181475
+18710,181627
+18710,181778
+18711,181703
+18712,181627
+18713,181778
+18720,181400
+18730,181400
+18740,180938
+18750,181627
+18750,181778
+18760,180068
+18770,180068
+18800,180233
+18800,181400
+18810,180397
+18811,181942
+18812,180785
+18813,189120
+18814,180536
+18815,180536
+18816,180460
+18817,180299
+18818,180457
+18819,180397
+18820,181648
+18830,180981
+18830,181020
+18840,180359
+18840,180824
+18840,181823
+18849,180824
+18850,180567
+18850,180981
+18857,180567
+18858,181469
+18859,180567
+18860,180233
+18860,180896
+18870,180858
+18880,180896
+18890,180861
+18891,180567
+19001,191305
+19002,191305
+19003,191305
+19004,191305
+19005,191305
+19080,191305
+19080,193264
+19100,192120
+19110,191924
+19111,193270
+19112,190077
+19112,192249
+19113,191240
+19114,191765
+19115,190215
+19116,191076
+19117,190061
+19118,190220
+19119,190061
+19119,190220
+19119,191116
+19119,191121
+19119,191425
+19119,191500
+19119,191522
+19119,192521
+19119,193359
+19120,192458
+19125,190096
+19126,192477
+19127,190058
+19127,190788
+19127,191109
+19127,191847
+19127,192458
+19128,191060
+19128,191692
+19128,192115
+19128,192458
+19129,190194
+19129,192115
+19130,190450
+19131,190450
+19132,190181
+19132,193016
+19133,190236
+19133,190518
+19133,190544
+19133,191082
+19133,192000
+19134,192154
+19134,192666
+19135,190411
+19135,190426
+19139,193264
+19140,191431
+19141,190365
+19141,191608
+19141,192976
+19141,193264
+19142,191615
+19142,192995
+19143,191082
+19143,191556
+19143,192424
+19143,192496
+19143,193299
+19143,193303
+19144,191214
+19144,191235
+19144,191945
+19145,192332
+19150,191305
+19151,190827
+19152,190156
+19153,190432
+19160,191057
+19161,192252
+19162,192206
+19170,190714
+19171,190582
+19174,191266
+19174,192803
+19174,193009
+19180,191713
+19181,191305
+19182,191207
+19184,190707
+19184,192884
+19184,193055
+19184,193233
+19184,193251
+19185,190714
+19185,193009
+19185,193042
+19186,191023
+19187,192939
+19188,192939
+19190,192748
+19191,192252
+19191,192748
+19192,191253
+19192,192206
+19192,192901
+19193,191305
+19194,191305
+19196,190390
+19196,191594
+19196,191961
+19196,192960
+19196,192982
+19197,190668
+19197,190886
+19197,191305
+19197,191333
+19197,192748
+19197,192799
+19198,192862
+19200,190463
+19208,190241
+19209,192304
+19209,193191
+19210,193310
+19219,191667
+19219,191673
+19219,193191
+19220,191517
+19222,192629
+19223,190609
+19223,191654
+19224,190609
+19224,192629
+19224,193114
+19225,191826
+19225,192290
+19225,192347
+19225,193074
+19226,191517
+19226,191898
+19226,192629
+19227,190058
+19227,191734
+19227,192398
+19227,192635
+19229,190925
+19229,191517
+19229,191930
+19229,192287
+19230,190925
+19237,190371
+19237,190925
+19237,191193
+19237,192483
+19237,193346
+19238,191462
+19238,192038
+19239,190925
+19239,191919
+19240,191569
+19242,191351
+19243,190576
+19243,190978
+19243,191291
+19243,192265
+19243,192402
+19243,192691
+19243,193212
+19244,190962
+19244,191977
+19244,192038
+19245,190313
+19245,190805
+19245,190812
+19245,191575
+19245,191983
+19245,192081
+19245,192311
+19245,192509
+19245,192810
+19246,190735
+19246,191569
+19246,191771
+19246,191879
+19246,192189
+19246,193188
+19247,190557
+19247,191137
+19247,191790
+19248,191386
+19250,192574
+19260,190117
+19261,190117
+19261,191620
+19262,191168
+19262,192516
+19262,192574
+19263,192574
+19264,192574
+19265,192574
+19266,192022
+19266,192574
+19267,192574
+19268,190175
+19268,191863
+19268,192574
+19268,192825
+19269,192108
+19269,192385
+19269,192568
+19269,192574
+19269,193037
+19270,190447
+19274,190447
+19274,190655
+19274,191850
+19275,190083
+19275,190616
+19275,190655
+19275,190959
+19275,190962
+19275,191272
+19275,192593
+19276,190447
+19276,190498
+19276,191364
+19276,191811
+19276,192419
+19276,192944
+19277,190100
+19277,190447
+19277,190870
+19277,192108
+19277,192705
+19278,190523
+19278,191850
+19280,191706
+19281,191706
+19283,190117
+19283,190328
+19283,191538
+19285,190899
+19285,191636
+19286,190334
+19286,191752
+19287,190334
+19287,191155
+19287,191229
+19287,191706
+19287,191832
+19287,192653
+19290,191174
+19292,190984
+19292,191137
+19294,190753
+19294,191689
+19294,191749
+19294,193227
+19295,190479
+19295,191478
+19295,193140
+19300,191902
+19310,190138
+19310,191039
+19310,191044
+19311,192043
+19312,192192
+19312,192672
+19312,192897
+19313,192167
+19314,192640
+19315,191787
+19320,190273
+19321,190273
+19323,192727
+19324,192555
+19325,190030
+19325,192213
+19325,192712
+19326,192228
+19327,192136
+19328,190766
+19328,191399
+19328,191958
+19332,190169
+19332,191885
+19332,192653
+19332,193248
+19333,192653
+19334,190997
+19334,192653
+19336,192094
+19337,192859
+19338,192878
+19339,191095
+19339,192430
+19340,192379
+19341,190997
+19342,191348
+19343,190997
+19344,190997
+19345,192831
+19346,192542
+19346,199010
+19350,191902
+19351,191902
+19352,192271
+19353,192271
+19354,192271
+19355,192770
+19357,190349
+19360,190595
+19361,193325
+19362,191902
+19363,191902
+19390,190485
+19390,190997
+19390,191180
+19390,191240
+19390,192688
+19390,193093
+19391,190791
+19391,192271
+19391,192846
+19392,190997
+19400,190539
+19410,190539
+19411,190539
+19411,193080
+19412,190539
+19412,190740
+19412,193021
+19413,190539
+19414,190539
+19420,190864
+19428,190864
+19429,190864
+19431,190642
+19431,190864
+19431,192786
+19432,190019
+19432,191996
+19432,192445
+19432,192825
+19441,191484
+19441,192350
+19442,190024
+19443,190903
+19443,192017
+19443,192461
+19444,192017
+19444,193331
+19445,190328
+19445,191142
+19445,191459
+19445,192614
+19450,192918
+19458,192918
+19459,190544
+19459,190864
+19460,193172
+19461,190404
+19461,193331
+19462,192141
+19463,192234
+19490,190045
+19490,190208
+19490,190501
+19490,190539
+19490,190910
+19490,191728
+19490,193068
+19491,191327
+19491,191543
+19491,192580
+19491,192607
+19491,192825
+19492,190387
+19492,192115
+19492,192326
+19492,192918
+19492,193107
+19493,192173
+19495,193331
+19680,181731
+19832,170656
+20001,200697
+20002,200697
+20003,200697
+20004,200697
+20005,200697
+20006,200697
+20007,200697
+20008,200697
+20009,200697
+20010,200697
+20011,200697
+20012,200697
+20013,200697
+20014,200697
+20015,200697
+20016,200697
+20017,200697
+20018,200697
+20100,200533
+20100,200678
+20100,200697
+20110,200646
+20115,209035
+20120,200408
+20128,200408
+20130,200723
+20140,200090
+20150,200028
+20150,200757
+20159,200147
+20159,200283
+20159,200489
+20160,200697
+20160,209029
+20170,200739
+20180,200631
+20200,200198
+20210,200492
+20211,200150
+20212,200586
+20213,200436
+20214,200261
+20214,200570
+20214,200701
+20215,200258
+20216,200625
+20217,200381
+20218,200356
+20220,200512
+20230,200512
+20240,200760
+20247,200782
+20248,200126
+20248,200375
+20248,209066
+20249,200473
+20250,200527
+20259,209040
+20260,200052
+20267,200441
+20267,200718
+20268,200071
+20268,200087
+20268,200718
+20269,200013
+20269,209053
+20270,200104
+20271,200467
+20280,200369
+20301,200454
+20302,200454
+20303,200454
+20304,200454
+20305,200454
+20400,200420
+20400,200718
+20490,200548
+20490,200603
+20491,200219
+20491,200505
+20491,209072
+20492,200224
+20493,200224
+20493,200230
+20493,200317
+20494,200065
+20494,200415
+20494,200718
+20495,200049
+20496,200245
+20500,200551
+20530,200343
+20530,200684
+20540,200343
+20550,200132
+20560,200599
+20567,200599
+20568,200599
+20569,200599
+20569,200744
+20570,200744
+20577,200111
+20578,200744
+20580,200744
+20590,200659
+20600,200300
+20690,200338
+20700,200776
+20700,200809
+20709,200356
+20720,200179
+20730,200185
+20737,200662
+20739,200202
+20740,200277
+20749,200034
+20749,200277
+20750,200816
+20800,200795
+20808,200394
+20809,200163
+20810,200163
+20810,200610
+20820,200296
+20829,200296
+20830,200564
+20850,209014
+20860,200322
+20870,200322
+21001,210412
+21002,210412
+21003,210412
+21004,210412
+21005,210412
+21006,210412
+21007,210078
+21007,210412
+21100,210025
+21100,210600
+21110,210025
+21110,210600
+21120,210025
+21130,210502
+21130,210558
+21200,210078
+21207,210078
+21207,210451
+21208,210078
+21208,210268
+21208,210486
+21209,210078
+21209,210242
+21209,210596
+21210,210792
+21220,210388
+21230,210255
+21239,210084
+21239,210255
+21239,210675
+21240,210084
+21248,210084
+21250,210622
+21260,210694
+21270,210160
+21280,210097
+21290,210046
+21290,210335
+21290,210433
+21291,210340
+21291,210519
+21291,210715
+21292,210221
+21292,210335
+21300,210176
+21309,210176
+21320,210237
+21330,210046
+21330,210237
+21330,210255
+21340,210010
+21340,210084
+21342,210046
+21350,210046
+21359,210046
+21359,210675
+21360,210433
+21380,210293
+21386,210280
+21387,210274
+21388,210209
+21388,210391
+21390,210314
+21400,210101
+21400,210448
+21409,210101
+21410,210427
+21420,210101
+21420,210427
+21430,210427
+21431,210427
+21440,210448
+21449,210448
+21450,210216
+21450,210448
+21459,210216
+21459,210600
+21500,210353
+21510,210638
+21520,210062
+21520,210638
+21530,210062
+21540,210216
+21540,210767
+21550,210583
+21559,210583
+21560,210577
+21570,210681
+21580,210084
+21580,210157
+21580,210237
+21590,210736
+21591,210669
+21592,210754
+21593,210031
+21594,210372
+21595,210656
+21600,210720
+21609,210118
+21610,210643
+21620,210694
+21620,210708
+21630,210118
+21639,210118
+21639,210643
+21640,210789
+21647,210123
+21647,210789
+21649,210046
+21649,210182
+21649,210789
+21650,210182
+21660,210499
+21667,210499
+21668,210195
+21668,210366
+21668,210789
+21669,210046
+21670,210524
+21700,210545
+21710,210139
+21720,210617
+21730,210059
+21739,210059
+21740,210405
+21750,210059
+21760,210059
+21800,210502
+21810,210558
+21819,210558
+21820,210464
+21830,210144
+21840,210530
+21850,210773
+21860,210741
+21870,210329
+21880,210561
+21890,210470
+21891,210307
+22000,221259
+22001,221259
+22002,221259
+22003,221259
+22004,221259
+22005,221259
+22006,221259
+22080,221259
+22094,221259
+22097,221259
+22100,222065
+22110,222034
+22110,222202
+22111,221565
+22112,220113
+22113,221626
+22116,221199
+22120,222224
+22121,222224
+22122,220279
+22122,221262
+22122,222224
+22123,220279
+22124,221416
+22125,221357
+22126,221395
+22131,220553
+22131,221745
+22132,220507
+22132,221783
+22132,222356
+22133,220279
+22133,220298
+22133,220648
+22134,220648
+22135,220152
+22135,220361
+22140,221506
+22141,220588
+22141,220818
+22141,221506
+22142,220818
+22143,220015
+22144,220588
+22145,220247
+22146,229068
+22147,220015
+22147,220036
+22148,220514
+22148,220909
+22149,220514
+22149,229074
+22150,220377
+22160,229042
+22161,229042
+22162,229042
+22190,222489
+22191,221954
+22192,221506
+22192,222283
+22193,221278
+22193,221632
+22194,220190
+22194,220475
+22194,220968
+22194,221259
+22195,221259
+22196,221259
+22196,221565
+22197,221259
+22200,222132
+22210,221246
+22210,221745
+22211,221246
+22212,220134
+22212,220797
+22212,221360
+22213,221376
+22213,221745
+22213,222132
+22214,221360
+22215,220857
+22215,221745
+22215,222132
+22216,221376
+22216,221843
+22220,220089
+22221,222132
+22222,220839
+22223,222420
+22225,221164
+22230,222179
+22231,222512
+22232,221650
+22233,220942
+22234,220469
+22240,222261
+22250,221376
+22251,220187
+22252,221973
+22253,222185
+22254,222322
+22255,220128
+22255,220232
+22255,220494
+22255,221164
+22255,222369
+22260,221164
+22268,221164
+22268,221360
+22268,221817
+22268,222394
+22269,220232
+22269,221164
+22270,220211
+22280,221199
+22281,221199
+22282,220149
+22283,220149
+22283,220211
+22300,220481
+22310,220823
+22311,220417
+22311,220422
+22311,221761
+22312,221151
+22312,229080
+22313,220882
+22313,221869
+22313,229068
+22314,222013
+22314,222028
+22315,220481
+22315,229080
+22320,220514
+22320,221604
+22330,229074
+22336,221133
+22336,229074
+22337,221112
+22337,221133
+22337,221685
+22338,221908
+22339,229074
+22340,220664
+22347,220664
+22348,220664
+22349,220664
+22349,221301
+22349,229074
+22350,220572
+22351,220572
+22360,221339
+22361,221437
+22361,221442
+22362,221894
+22363,221894
+22364,222277
+22365,220572
+22365,222277
+22366,221822
+22366,222277
+22367,221148
+22367,221822
+22367,222071
+22370,220699
+22371,221091
+22372,220699
+22372,221091
+22373,220699
+22373,221091
+22374,220699
+22375,220699
+22375,221072
+22375,221437
+22376,222300
+22377,222300
+22378,222300
+22390,221151
+22391,222147
+22392,220020
+22392,221992
+22393,220020
+22393,221604
+22394,221133
+22394,229074
+22395,229074
+22400,221587
+22410,220171
+22411,229037
+22412,229037
+22413,229037
+22414,221587
+22415,221284
+22415,221587
+22416,220204
+22416,221936
+22417,220226
+22417,221105
+22420,220226
+22421,220400
+22422,221105
+22423,221035
+22424,221029
+22430,221170
+22435,221875
+22436,221170
+22437,221170
+22438,221133
+22438,221170
+22439,221647
+22439,222147
+22440,220540
+22449,220540
+22450,220746
+22450,221112
+22451,220746
+22451,221112
+22451,222338
+22451,222436
+22451,222441
+22452,221112
+22452,221133
+22460,221777
+22460,222126
+22461,220664
+22461,222126
+22462,221112
+22462,221297
+22463,222150
+22464,222150
+22465,220844
+22465,220955
+22466,220627
+22466,220844
+22467,220844
+22467,222006
+22467,222219
+22467,222492
+22468,222006
+22469,220540
+22469,222006
+22470,220627
+22471,221437
+22472,221437
+22473,221437
+22473,221571
+22474,221437
+22474,221571
+22480,220801
+22480,221170
+22481,221170
+22482,221297
+22483,221297
+22483,222338
+22483,222441
+22484,221297
+22484,222338
+22484,222467
+22485,222467
+22486,220670
+22486,221571
+22487,221571
+22500,220612
+22510,220605
+22511,220605
+22512,222052
+22513,221758
+22514,221758
+22520,221127
+22528,222454
+22529,221127
+22530,222548
+22531,221679
+22532,221679
+22533,220529
+22534,220073
+22535,220993
+22536,220529
+22540,220250
+22549,220529
+22549,222258
+22549,229093
+22550,222258
+22558,220092
+22559,222258
+22560,220165
+22569,220438
+22569,221758
+22570,220759
+22570,220895
+22571,220456
+22572,220895
+22572,221053
+22580,220535
+22583,220358
+22583,222230
+22583,252347
+22584,221881
+22584,222473
+22584,252347
+22585,220514
+22585,220876
+22585,221127
+22585,222296
+22585,222473
+22586,221421
+22587,220801
+22587,220876
+22587,221552
+22588,221170
+22589,220535
+22589,221053
+22590,222343
+22591,220778
+22592,221724
+22600,221992
+22609,221992
+22610,221992
+22610,222527
+22611,222527
+22612,221992
+22613,220591
+22613,221992
+22620,221301
+22620,221992
+22621,221301
+22621,221992
+22622,221632
+22622,221992
+22623,221992
+22624,220725
+22625,220725
+22630,220591
+22636,220591
+22636,221992
+22637,220591
+22638,220591
+22639,220591
+22639,222533
+22640,222049
+22650,221702
+22660,222049
+22661,221702
+22662,221225
+22662,221702
+22663,222049
+22664,222049
+22665,220591
+22666,221992
+22700,221301
+22710,220860
+22710,221301
+22711,221301
+22712,221301
+22713,221301
+22714,221301
+22714,221992
+22715,221301
+22720,229016
+22728,220285
+22729,221066
+22730,220324
+22731,221318
+22732,229016
+22740,229016
+22750,229021
+22751,220443
+22751,229021
+22752,222087
+22753,229021
+22760,220443
+22761,220443
+22770,220762
+22771,220762
+22772,220762
+22773,220762
+22790,229016
+22791,222087
+22791,222090
+22792,222090
+22800,220396
+22806,502382
+22807,220396
+22807,220633
+22808,220041
+22808,221730
+22808,501857
+22809,220396
+22809,221493
+22809,221513
+22810,229042
+22810,229055
+22811,229055
+22820,221730
+22821,221730
+22822,221730
+22830,220725
+22830,221170
+22830,221301
+22830,221730
+22850,221301
+22850,221992
+22860,220067
+22860,220686
+22860,220860
+22870,222505
+22880,220784
+22888,220784
+22889,220067
+22889,221301
+23001,230503
+23002,230503
+23003,230503
+23004,230503
+23005,230503
+23006,230503
+23007,230503
+23008,230503
+23009,230503
+23100,230584
+23110,230676
+23120,230183
+23130,230196
+23140,230644
+23150,230933
+23159,230933
+23160,230999
+23170,230389
+23180,230354
+23190,230676
+23191,239012
+23192,239012
+23193,230183
+23194,230503
+23196,230503
+23196,230933
+23200,230243
+23210,230392
+23211,230217
+23212,230243
+23213,230768
+23214,230119
+23214,230243
+23215,230047
+23220,230948
+23230,230085
+23239,230085
+23240,230639
+23250,230793
+23260,230256
+23264,230294
+23265,230623
+23266,230623
+23267,230623
+23268,230294
+23269,230294
+23270,230840
+23280,230124
+23289,230124
+23289,239051
+23290,239048
+23291,239048
+23292,230434
+23293,230434
+23293,230814
+23294,230814
+23294,239048
+23295,230814
+23296,239048
+23297,239048
+23298,239048
+23300,230951
+23310,230951
+23311,230807
+23312,230951
+23314,230927
+23315,230951
+23320,230888
+23330,230970
+23337,230434
+23338,230487
+23339,230970
+23340,230814
+23340,239051
+23350,230716
+23359,230716
+23360,230721
+23369,230721
+23370,230657
+23379,230814
+23380,230829
+23390,230161
+23391,230912
+23392,230373
+23393,231010
+23400,230927
+23410,230755
+23411,230098
+23412,230742
+23413,230927
+23420,230200
+23430,230742
+23440,230098
+23450,230465
+23460,230660
+23468,230660
+23469,230281
+23469,230927
+23470,230281
+23470,230308
+23476,230471
+23477,230308
+23478,239048
+23479,230281
+23479,230471
+23480,230737
+23485,230281
+23485,230660
+23485,230709
+23486,230428
+23486,230709
+23487,230452
+23488,230336
+23488,230737
+23489,230737
+23490,230465
+23490,230559
+23499,230948
+23500,230531
+23509,230927
+23510,230853
+23519,230578
+23519,230853
+23520,230145
+23528,230578
+23529,230098
+23529,230145
+23529,230584
+23529,239033
+23530,230525
+23537,239027
+23538,230011
+23539,230098
+23539,239027
+23540,230905
+23550,230177
+23560,230449
+23568,230158
+23569,230434
+23569,230449
+23590,230177
+23591,230177
+23591,230546
+23600,230601
+23610,230341
+23611,230413
+23612,230774
+23614,230601
+23615,230601
+23616,230341
+23620,230618
+23628,230275
+23628,230320
+23629,230490
+23630,239033
+23638,239033
+23639,230503
+23640,230866
+23650,230872
+23657,230315
+23658,230510
+23659,230986
+23660,230032
+23669,230032
+23670,230269
+23680,230026
+23684,230026
+23685,230026
+23685,230032
+23686,230026
+23686,230336
+23687,230026
+23688,230026
+23689,230026
+23690,230336
+23691,230026
+23691,230336
+23692,230026
+23693,230269
+23700,230559
+23710,230102
+23711,230119
+23712,230490
+23713,230559
+23713,230948
+23720,230320
+23730,230964
+23740,230050
+23746,230406
+23747,230050
+23748,230050
+23749,230050
+23749,230964
+23750,230079
+23760,230063
+23770,230597
+23780,230562
+23790,230695
+24001,240896
+24002,240896
+24003,240896
+24003,241152
+24004,240896
+24005,240896
+24006,240896
+24007,240896
+24008,240896
+24009,240896
+24009,241422
+24009,241627
+24010,240896
+24010,241422
+24100,242029
+24110,242029
+24111,242029
+24112,242029
+24113,242029
+24114,242029
+24120,241670
+24121,241633
+24122,240613
+24123,240401
+24124,241588
+24124,241670
+24125,241670
+24126,241324
+24126,241670
+24127,241324
+24127,241844
+24130,241015
+24131,241324
+24132,241324
+24133,241015
+24133,241324
+24134,241015
+24134,241324
+24135,241015
+24136,241015
+24137,241015
+24138,242029
+24139,242029
+24140,242029
+24141,240299
+24142,240299
+24143,240299
+24143,241456
+24144,241456
+24145,241456
+24145,241648
+24146,241648
+24148,240129
+24149,240129
+24150,240671
+24150,241514
+24150,242014
+24151,241514
+24152,241993
+24153,242014
+24154,242014
+24155,242014
+24156,241759
+24160,240798
+24161,240634
+24161,240798
+24162,242259
+24163,242014
+24163,242259
+24164,240798
+24165,240798
+24166,240798
+24170,240042
+24170,240520
+24171,240042
+24171,242262
+24172,240515
+24172,242151
+24172,242297
+24174,240515
+24175,242151
+24190,240896
+24190,241422
+24191,241422
+24192,240896
+24192,241054
+24193,242225
+24194,241627
+24195,241759
+24195,242225
+24196,241633
+24197,242225
+24198,241895
+24199,242278
+24200,241882
+24205,241882
+24206,240423
+24206,240747
+24206,241784
+24206,242035
+24207,240994
+24207,242035
+24208,241073
+24209,240819
+24209,241073
+24210,240943
+24212,240270
+24217,240956
+24218,240943
+24218,241801
+24219,242259
+24220,241818
+24221,240325
+24222,249022
+24223,240068
+24223,240732
+24223,241073
+24224,240286
+24224,240628
+24224,241073
+24225,240331
+24225,240589
+24225,242186
+24226,242259
+24226,242278
+24227,241759
+24228,241759
+24230,241876
+24231,240652
+24231,241054
+24232,240068
+24233,240068
+24233,242127
+24234,240883
+24234,242127
+24235,242210
+24236,242210
+24237,241494
+24237,241686
+24237,242072
+24238,240021
+24238,242112
+24239,240541
+24240,241572
+24248,240264
+24248,240877
+24248,241746
+24249,240172
+24249,240877
+24249,241134
+24249,242301
+24250,240652
+24250,241876
+24251,240068
+24251,240652
+24251,241054
+24252,240172
+24252,241507
+24252,241746
+24253,241762
+24257,240212
+24270,240397
+24271,240922
+24272,240554
+24273,240554
+24273,241041
+24274,241330
+24275,241330
+24275,241588
+24276,241588
+24277,241588
+24280,240153
+24281,240153
+24282,241422
+24282,241895
+24283,240397
+24284,241731
+24285,240153
+24285,241232
+24285,241731
+24286,240824
+24287,240153
+24287,242246
+24288,242231
+24288,242246
+24290,241535
+24291,240975
+24292,241909
+24293,240845
+24294,240785
+24300,240140
+24310,240711
+24310,241703
+24311,240711
+24312,240711
+24312,240830
+24313,240830
+24314,240495
+24315,240140
+24315,240711
+24316,240495
+24317,241703
+24318,240140
+24319,240140
+24319,240830
+24319,241020
+24320,241396
+24323,240508
+24323,241909
+24324,240861
+24324,241916
+24325,240188
+24325,240779
+24326,241396
+24327,242297
+24328,240515
+24328,241396
+24328,242297
+24329,241396
+24330,241605
+24339,241605
+24339,242170
+24340,240802
+24341,240690
+24342,240310
+24343,240248
+24343,241566
+24344,240248
+24344,241566
+24344,242133
+24344,242262
+24345,241605
+24346,241974
+24347,241054
+24347,241974
+24350,242231
+24356,240264
+24356,242284
+24357,240264
+24358,242231
+24359,241443
+24359,241481
+24360,242105
+24367,242105
+24368,242105
+24369,242105
+24370,241703
+24374,240830
+24374,241703
+24375,240830
+24376,240830
+24377,240830
+24378,241703
+24379,241703
+24379,242105
+24380,241226
+24384,241226
+24385,241226
+24386,241226
+24387,241226
+24388,240166
+24389,240166
+24389,241226
+24390,240384
+24391,240652
+24391,241627
+24391,241895
+24392,240554
+24392,240652
+24392,242053
+24393,240264
+24393,240554
+24393,241591
+24394,241823
+24395,241481
+24395,241823
+24396,240938
+24397,240938
+24397,241232
+24398,240495
+24398,240573
+24398,241008
+24400,241152
+24401,241152
+24402,241152
+24403,241152
+24404,241152
+24410,240074
+24410,240346
+24411,241152
+24412,240270
+24413,241008
+24413,241152
+24414,241152
+24415,241152
+24416,241152
+24420,240704
+24424,241152
+24428,240704
+24429,240704
+24429,241128
+24430,241968
+24433,240362
+24434,240704
+24434,241968
+24435,241968
+24436,241968
+24437,241968
+24438,240191
+24438,241699
+24439,241438
+24439,241968
+24440,240418
+24441,240418
+24441,242066
+24442,240418
+24443,240227
+24444,240227
+24445,241190
+24446,241190
+24447,241190
+24448,241152
+24448,241190
+24450,241699
+24456,240074
+24457,241699
+24457,252537
+24458,241020
+24458,241699
+24459,241699
+24460,241699
+24469,241106
+24469,241699
+24470,241106
+24478,241106
+24479,241106
+24480,241092
+24488,241106
+24489,241092
+24490,241152
+24491,241152
+24492,240649
+24493,241699
+24494,241106
+24495,241092
+24496,241092
+24497,241092
+24498,241092
+24500,242091
+24510,242091
+24511,242091
+24512,161739
+24512,242091
+24513,242091
+24514,240592
+24515,240592
+24516,240592
+24516,242066
+24516,242091
+24517,240592
+24520,241980
+24521,240114
+24521,241980
+24522,241710
+24523,241710
+24524,241980
+24525,240093
+24526,241980
+24530,242066
+24530,242091
+24540,240303
+24544,240384
+24545,240074
+24545,241438
+24546,240074
+24547,240303
+24547,242091
+24548,240303
+24549,240384
+24550,240384
+24550,242066
+24560,242066
+24565,240384
+24566,241036
+24567,241036
+24567,241651
+24568,241036
+24569,241036
+24569,241651
+24569,242066
+24600,241149
+24607,241149
+24608,241149
+24609,241149
+24610,240613
+24620,240613
+24630,240613
+24640,241345
+24648,240981
+24648,241345
+24649,241345
+24650,241149
+24660,241149
+24670,241149
+24680,249017
+24687,249017
+24688,249017
+24689,249017
+24690,249017
+24699,249017
+24700,240080
+24710,241481
+24711,242148
+24711,242199
+24712,242148
+24713,242148
+24714,240233
+24715,240233
+24716,240233
+24717,240900
+24717,240917
+24717,241612
+24717,241857
+24718,240080
+24718,240233
+24719,242199
+24720,241529
+24721,240444
+24721,240917
+24722,241529
+24723,240900
+24724,240900
+24730,240665
+24730,242164
+24731,241612
+24732,241612
+24732,241823
+24733,241250
+24734,240476
+24735,240476
+24736,240476
+24738,241725
+24739,241703
+24740,240114
+24740,241612
+24740,241725
+24740,242029
+24741,241725
+24742,240439
+24743,240671
+24744,240439
+24744,240671
+24745,240671
+24746,240671
+24750,240107
+24760,240460
+24760,241149
+24760,241469
+24761,240037
+24762,241247
+24762,241540
+24763,241279
+24763,241664
+24763,242284
+24764,240107
+24764,241089
+24764,241664
+24765,241319
+24765,242164
+24766,240107
+24766,241089
+24766,242164
+24767,241250
+24767,241540
+24768,241664
+24769,240536
+24790,241361
+24791,241361
+24791,242301
+24792,240037
+24792,241171
+24792,241247
+24793,241823
+24794,241319
+24795,241319
+24795,241443
+24795,241553
+24796,240055
+24796,241171
+24797,241417
+24800,240567
+24810,241377
+24811,241377
+24812,241377
+24813,240567
+24814,241377
+24815,240567
+24816,240567
+24820,240763
+24820,240981
+24830,240981
+24836,240981
+24836,241942
+24837,240378
+24837,241778
+24837,241942
+24838,240378
+24839,240981
+24840,241937
+24843,241778
+24844,241778
+24845,241778
+24846,241797
+24847,241797
+24848,241514
+24848,241937
+24849,241797
+24849,241937
+24850,240212
+24852,240212
+24852,241993
+24853,240212
+24854,240212
+24855,241211
+24856,241298
+24857,240212
+24857,241211
+24858,240212
+24859,240212
+24860,240212
+24860,241993
+24869,241993
+24870,240687
+24877,240687
+24878,240687
+24878,240798
+24879,240687
+24880,241839
+24882,241839
+24883,241839
+24884,241839
+24885,240205
+24885,241204
+24886,241839
+24887,241839
+24888,240042
+24888,240520
+24888,241839
+24889,241839
+24890,240763
+24891,240763
+24892,240520
+24893,241187
+24900,241302
+24911,240205
+24912,240205
+24913,240205
+24914,241165
+24915,241165
+24916,241067
+24917,240251
+24918,241302
+24920,241801
+24930,241801
+24940,240634
+24950,240567
+24960,240606
+24960,241377
+24970,240606
+24980,240606
+24989,240606
+24990,240606
+24991,240606
+24994,240016
+24994,240251
+24995,240251
+24996,240016
+24996,240969
+25001,251207
+25002,251207
+25003,251207
+25004,251207
+25005,251207
+25006,251207
+25007,251207
+25008,251207
+25100,250194
+25110,250236
+25110,251207
+25110,252287
+25111,251207
+25112,259123
+25113,251207
+25114,259123
+25120,250138
+25122,251121
+25123,252287
+25124,251898
+25125,250169
+25126,250215
+25126,252287
+25130,250156
+25131,252332
+25132,250539
+25133,252516
+25134,251749
+25135,250083
+25136,250693
+25137,250788
+25138,252311
+25139,251348
+25140,250292
+25141,252304
+25142,250523
+25143,251689
+25144,250523
+25150,250334
+25151,250365
+25152,250766
+25153,251826
+25154,250674
+25155,250061
+25160,251057
+25161,250143
+25162,250100
+25163,252069
+25164,252249
+25165,251180
+25170,252326
+25171,250077
+25172,251425
+25173,252115
+25174,252120
+25175,252000
+25176,252265
+25177,251018
+25177,251706
+25178,250560
+25179,251333
+25180,250117
+25181,252108
+25182,250387
+25183,252043
+25184,251312
+25185,251023
+25186,251253
+25187,250208
+25191,251207
+25192,251207
+25193,250117
+25193,251207
+25193,251930
+25194,251207
+25195,251207
+25196,251207
+25197,251207
+25198,251207
+25198,259046
+25199,251207
+25200,250729
+25210,251109
+25211,251327
+25211,251977
+25211,252192
+25211,259078
+25212,259078
+25212,259118
+25213,250729
+25213,252167
+25213,259059
+25214,250729
+25214,250851
+25214,251522
+25214,252022
+25215,250851
+25215,251945
+25216,251142
+25216,251945
+25217,250390
+25217,251044
+25217,251410
+25217,259059
+25218,250729
+25218,251039
+25218,259118
+25220,250485
+25221,250045
+25222,252056
+25230,251370
+25240,251229
+25240,251641
+25241,250997
+25242,251351
+25243,251581
+25244,250931
+25245,252521
+25250,250501
+25260,251137
+25261,251137
+25261,251641
+25262,250411
+25263,251765
+25264,252483
+25265,250680
+25266,250463
+25266,251305
+25267,259025
+25268,251543
+25268,252385
+25269,252385
+25270,251924
+25271,250851
+25271,251924
+25280,251517
+25280,252075
+25281,251291
+25282,251930
+25283,251240
+25283,251484
+25284,251636
+25285,251116
+25286,251462
+25286,251517
+25286,251667
+25287,251517
+25287,251673
+25287,251863
+25288,251240
+25289,250447
+25289,250642
+25290,250753
+25290,251863
+25300,252173
+25310,250030
+25315,251386
+25316,251771
+25317,250030
+25318,250030
+25318,251500
+25318,251575
+25318,251811
+25320,250273
+25327,250432
+25330,252445
+25331,250030
+25331,252252
+25332,250962
+25333,251641
+25334,250707
+25334,259025
+25335,251641
+25336,250498
+25337,250479
+25340,251431
+25340,252424
+25341,250740
+25341,251095
+25341,251459
+25343,259025
+25344,259025
+25350,252173
+25351,252173
+25352,252173
+25353,252173
+25354,252173
+25360,252173
+25370,250349
+25400,250582
+25410,250812
+25411,250978
+25412,251538
+25413,250925
+25420,251804
+25430,251193
+25440,252555
+25450,250096
+25457,252537
+25460,250735
+25471,251692
+25480,252189
+25500,251713
+25510,252271
+25511,252271
+25512,252271
+25513,250390
+25513,251713
+25513,252271
+25514,251734
+25514,252022
+25515,252271
+25516,251615
+25516,251713
+25517,251615
+25518,251615
+25520,251734
+25526,250432
+25526,251734
+25527,250432
+25528,250432
+25529,251734
+25530,252430
+25537,252430
+25538,252430
+25539,250254
+25539,252430
+25540,251214
+25547,252537
+25548,250637
+25549,250450
+25550,250595
+25551,250313
+25551,250576
+25551,252477
+25552,251734
+25552,252458
+25553,252458
+25554,251734
+25555,251734
+25555,252017
+25555,252022
+25556,251734
+25560,250122
+25560,252094
+25566,252081
+25567,252094
+25568,252094
+25569,252081
+25569,252094
+25570,259010
+25571,250870
+25571,251235
+25571,259010
+25572,259010
+25573,250175
+25574,250175
+25575,250175
+25576,251235
+25576,259010
+25577,251235
+25580,250864
+25583,252347
+25584,252347
+25586,250241
+25587,250241
+25588,259031
+25589,250241
+25590,250390
+25591,250390
+25592,250390
+25592,250621
+25593,252081
+25594,251266
+25594,251832
+25595,250899
+25595,251266
+25595,252213
+25595,259031
+25596,259031
+25597,250827
+25597,259031
+25598,250254
+25599,250254
+25600,250404
+25610,251569
+25611,250024
+25611,250371
+25611,251569
+25612,250371
+25612,251569
+25613,250621
+25614,251569
+25615,250621
+25616,251386
+25617,250352
+25617,252402
+25620,252347
+25630,252154
+25631,259046
+25632,251961
+25632,259046
+25633,252347
+25633,259046
+25634,252347
+25635,252347
+25636,252347
+25637,252347
+25638,250984
+25638,251288
+25639,250984
+25639,251288
+25640,252347
+25650,251155
+25651,250019
+25651,251155
+25652,250019
+25653,251155
+25654,252347
+25655,251155
+25656,251155
+25657,251155
+25658,251155
+25660,250122
+25670,252206
+25680,252402
+25689,250984
+25690,252542
+25691,250024
+25692,250024
+25692,250621
+25693,251615
+25693,251902
+25700,252038
+25710,252038
+25711,251403
+25712,251403
+25713,251850
+25714,251403
+25714,251850
+25714,259062
+25715,250058
+25716,251001
+25717,250058
+25717,259097
+25717,259101
+25718,250058
+25719,250886
+25720,250518
+25721,250518
+25721,251752
+25721,259139
+25722,250306
+25722,250328
+25722,250714
+25723,250306
+25724,250518
+25724,251399
+25725,251399
+25726,251272
+25727,251790
+25730,250349
+25735,252509
+25736,250349
+25736,252509
+25737,250220
+25737,250349
+25737,250447
+25737,250791
+25737,250946
+25738,250349
+25738,252509
+25739,250349
+25740,251728
+25746,251728
+25747,250426
+25748,250609
+25748,251500
+25748,252496
+25749,251500
+25749,251728
+25749,252496
+25750,252234
+25751,252234
+25752,250557
+25753,250557
+25753,251919
+25790,250447
+25790,250772
+25790,251484
+25790,251497
+25790,251654
+25791,252228
+25792,250447
+25793,250772
+25794,250616
+25794,250772
+25794,251556
+25794,259084
+25795,251850
+25795,259062
+25796,251850
+25797,251850
+25798,252398
+25799,250306
+25969,290803
+26001,260892
+26002,260892
+26003,260892
+26004,260892
+26005,260892
+26006,260892
+26006,261682
+26007,260892
+26008,260892
+26009,260892
+26100,260125
+26100,261510
+26110,261063
+26111,260125
+26111,261158
+26120,260051
+26121,261032
+26121,261657
+26122,260677
+26122,261183
+26123,261695
+26124,261079
+26124,261124
+26124,261222
+26125,261774
+26126,260913
+26130,260064
+26130,260511
+26130,261243
+26131,260836
+26131,261269
+26131,261354
+26132,260889
+26132,261354
+26132,261465
+26132,261471
+26133,260048
+26133,260775
+26133,261217
+26133,261320
+26134,260815
+26134,261011
+26134,261531
+26135,260355
+26135,260820
+26140,260841
+26141,260064
+26142,261682
+26143,260990
+26144,260532
+26144,260661
+26144,261085
+26145,261085
+26146,261238
+26147,261085
+26148,261085
+26151,260197
+26160,260027
+26190,261032
+26191,261449
+26200,260717
+26200,261026
+26210,260131
+26210,260491
+26210,261487
+26211,260624
+26211,260630
+26211,261487
+26212,092194
+26212,260453
+26212,260630
+26212,260658
+26212,261281
+26213,260738
+26213,260873
+26213,261098
+26213,261503
+26214,260563
+26214,261275
+26215,261559
+26216,261315
+26220,261119
+26221,260683
+26222,261275
+26223,260769
+26224,261525
+26230,260429
+26240,260435
+26241,260257
+26250,260184
+26250,261389
+26256,261676
+26257,260244
+26257,260743
+26258,260504
+26258,260949
+26259,260550
+26259,260696
+26259,261742
+26260,261406
+26261,261130
+26261,261413
+26270,261102
+26280,260619
+26288,261623
+26288,261835
+26289,260619
+26290,260337
+26291,260488
+26291,261392
+26291,261807
+26292,260717
+26292,261660
+26300,261026
+26310,260239
+26311,260159
+26311,260374
+26311,260414
+26311,260526
+26312,260162
+26312,260309
+26312,261578
+26313,261601
+26314,260794
+26315,260103
+26315,260309
+26315,260440
+26315,260928
+26315,261341
+26320,260260
+26321,260316
+26321,260867
+26321,260952
+26321,261145
+26321,261490
+26321,261768
+26322,260146
+26322,260321
+26323,260223
+26323,260756
+26324,260099
+26325,260393
+26325,260407
+26325,261716
+26325,261721
+26326,261308
+26327,260276
+26328,260602
+26329,260374
+26329,260380
+26329,260934
+26329,261644
+26329,261755
+26329,261780
+26329,261793
+26330,260342
+26338,261428
+26339,260012
+26339,261428
+26340,261294
+26350,260466
+26359,261546
+26360,260645
+26370,261050
+26371,261452
+26371,261639
+26372,260781
+26373,260579
+26374,260965
+26375,260598
+26376,261434
+26500,260368
+26509,260070
+26510,261177
+26511,261709
+26512,261584
+26513,260201
+26520,260472
+26525,260808
+26526,260547
+26527,260472
+26527,260547
+26528,260472
+26529,260472
+26530,260033
+26531,260033
+26532,261618
+26533,261047
+26540,260110
+26550,261256
+26559,260086
+26560,260218
+26570,261200
+26580,260184
+26584,260722
+26585,260178
+26585,261367
+26586,260585
+26586,260987
+26586,261814
+26587,260700
+26587,261004
+26587,261737
+26588,260282
+26588,260295
+26589,260178
+26589,261196
+27001,270288
+27002,270288
+27003,270288
+27004,270288
+27100,270180
+27110,270180
+27111,270180
+27112,270180
+27113,270180
+27113,270351
+27114,270180
+27115,270180
+27116,270180
+27117,270180
+27118,270180
+27120,270116
+27122,270116
+27123,270116
+27124,270116
+27125,270116
+27126,270116
+27127,270116
+27128,270116
+27129,270116
+27130,270044
+27131,270044
+27132,270044
+27133,270044
+27134,270180
+27135,270180
+27136,270180
+27140,270288
+27141,270288
+27142,270116
+27143,270116
+27144,270116
+27145,270142
+27146,270116
+27146,270288
+27150,270399
+27151,270399
+27152,270235
+27152,270399
+27153,270399
+27154,270399
+27155,270399
+27156,270207
+27157,270399
+27160,270288
+27161,270288
+27162,270142
+27163,270142
+27164,270142
+27166,270116
+27168,270142
+27169,270288
+27170,270497
+27177,270497
+27178,270497
+27179,270497
+27180,270288
+27181,270235
+27181,270288
+27182,270288
+27183,270235
+27184,270235
+27185,270235
+27185,270288
+27186,270235
+27187,270497
+27188,270288
+27188,270497
+27190,270142
+27190,270288
+27191,270288
+27192,270288
+27200,270403
+27203,270403
+27204,270403
+27205,270403
+27206,270403
+27207,270403
+27208,270403
+27209,270403
+27210,270235
+27210,270288
+27211,270235
+27212,270497
+27213,270497
+27214,270497
+27215,270327
+27216,270403
+27217,270403
+27220,270207
+27226,270207
+27227,270207
+27228,270207
+27229,270207
+27230,270288
+27231,270288
+27232,270288
+27233,270235
+27233,270288
+27234,270235
+27235,270207
+27240,270291
+27241,270291
+27243,270538
+27244,270538
+27245,270538
+27246,270446
+27247,270291
+27247,270462
+27248,270446
+27250,270109
+27256,270109
+27257,270109
+27258,270109
+27259,270109
+27260,270109
+27266,270109
+27267,270109
+27268,270109
+27269,270109
+27270,270462
+27271,270109
+27272,270462
+27273,270462
+27274,270462
+27275,270462
+27276,270044
+27277,270044
+27278,270044
+27279,270462
+27280,270462
+27283,270462
+27286,270446
+27287,270446
+27289,270109
+27289,270288
+27290,270288
+27293,270116
+27293,270288
+27294,270288
+27296,270288
+27297,270288
+27298,270288
+27299,270207
+27299,270288
+27300,270229
+27305,270229
+27306,270229
+27307,270229
+27308,270229
+27309,270229
+27310,270522
+27317,270522
+27318,270522
+27320,270500
+27324,270174
+27325,270174
+27326,270174
+27327,270174
+27328,270174
+27328,270500
+27329,270500
+27330,270478
+27331,270478
+27332,270478
+27333,270478
+27334,270478
+27335,270478
+27336,270478
+27338,270478
+27339,270174
+27339,270478
+27340,270082
+27341,270240
+27342,270240
+27343,270082
+27344,270082
+27345,270240
+27346,270240
+27347,270240
+27347,270478
+27348,270240
+27349,270082
+27350,270082
+27359,270082
+27360,270266
+27362,270431
+27363,270431
+27364,270431
+27366,270266
+27367,270266
+27368,270266
+27369,270266
+27369,270431
+27370,270076
+27370,270569
+27372,270076
+27372,270229
+27373,270076
+27373,270399
+27374,270399
+27375,270076
+27375,270155
+27375,270654
+27376,270155
+27377,270155
+27378,270155
+27379,270155
+27380,270229
+27388,270229
+27389,270229
+27390,270500
+27391,270478
+27391,270500
+27392,270575
+27400,270168
+27400,270229
+27400,270312
+27410,270312
+27411,270312
+27412,270312
+27413,270312
+27413,270478
+27414,270312
+27415,270312
+27416,270312
+27417,270312
+27418,270312
+27419,270312
+27419,270410
+27420,270312
+27421,270594
+27422,270594
+27423,270594
+27424,270594
+27425,270594
+27430,270410
+27437,270410
+27438,270410
+27439,270410
+27440,270594
+27450,270410
+27460,270594
+27466,270594
+27468,270594
+27469,270594
+27470,270410
+27500,270168
+27510,270168
+27511,270168
+27512,270168
+27513,270168
+27514,270168
+27515,270168
+27515,270327
+27516,270168
+27517,270168
+27518,270168
+27519,270168
+27520,270095
+27527,270095
+27528,270095
+27529,270095
+27530,270095
+27531,270095
+27532,270095
+27533,270095
+27533,270168
+27540,270581
+27543,270581
+27544,270581
+27545,270581
+27546,270581
+27547,270581
+27548,270581
+27549,270410
+27549,270581
+27550,270608
+27554,270608
+27555,270608
+27556,270608
+27557,270608
+27558,270608
+27559,270608
+27560,270327
+27568,270327
+27569,270327
+27570,270039
+27576,270039
+27577,270039
+27578,270039
+27579,270039
+27590,270312
+27591,270312
+27592,270312
+27592,270410
+27593,270410
+27594,270581
+27595,270168
+27596,270608
+27600,270575
+27610,270575
+27611,270425
+27612,270425
+27612,270575
+27613,270575
+27614,270266
+27614,270575
+27615,270266
+27615,270575
+27616,270575
+27617,270575
+27618,270575
+27619,270575
+27620,270556
+27623,270556
+27624,270556
+27625,270556
+27626,270556
+27627,270556
+27628,270556
+27630,270620
+27631,270556
+27631,270620
+27632,270620
+27633,270431
+27633,270556
+27634,270620
+27635,270556
+27636,270556
+27637,270575
+27638,270556
+27639,270620
+27640,270060
+27646,270370
+27647,270060
+27648,270060
+27649,270060
+27650,270060
+27650,270348
+27651,270348
+27652,270348
+27653,270348
+27654,270348
+27655,270348
+27656,270348
+27657,270348
+27658,270348
+27659,270121
+27659,270348
+27660,270060
+27661,270060
+27661,270121
+27662,270121
+27663,270060
+27664,270060
+27664,270121
+27665,270121
+27666,270121
+27667,270121
+27668,270060
+27670,270459
+27671,270459
+27672,270459
+27673,270459
+27675,270370
+27676,270370
+27677,270060
+27677,270121
+27677,270370
+27678,270060
+27679,270060
+27680,279019
+27685,279019
+27686,279019
+27687,279019
+27688,279019
+27689,279019
+27690,270575
+27691,270266
+27692,270266
+27693,270266
+27694,270060
+27695,270060
+27695,279019
+27696,279019
+27697,279019
+27698,270060
+27699,270266
+27700,270517
+27700,270636
+27710,270517
+27711,270517
+27712,270517
+27713,270517
+27714,270517
+27715,270517
+27720,270484
+27721,270484
+27722,270484
+27723,270484
+27724,270484
+27725,270484
+27726,270484
+27727,270484
+27728,270484
+27729,270484
+27730,270018
+27737,270018
+27738,270018
+27740,270305
+27742,270305
+27743,270543
+27744,270543
+27745,270543
+27747,270305
+27748,270305
+27749,270305
+27750,270272
+27751,270272
+27752,270305
+27760,270272
+27765,270615
+27766,270615
+27767,270615
+27768,270615
+27770,270636
+27773,270023
+27774,270023
+27775,270023
+27776,270023
+27777,270636
+27778,270023
+27778,270636
+27779,270636
+27780,270193
+27785,270193
+27786,270193
+27787,270193
+27788,270193
+27789,270193
+27790,270057
+27791,270305
+27792,270057
+27793,270057
+27794,270057
+27796,270517
+27797,270517
+27798,270057
+27800,270654
+27810,270654
+27811,270654
+27812,270654
+27813,270654
+27814,270654
+27815,270654
+27816,270654
+27817,270333
+27818,270654
+27820,270654
+27821,270654
+27822,270654
+27823,270654
+27824,270214
+27825,270654
+27826,270214
+27830,270654
+27832,270214
+27833,270214
+27834,270214
+27835,270214
+27836,270333
+27837,270333
+27840,270654
+27841,270654
+27842,270654
+27843,270018
+27843,270654
+27845,270018
+27849,270018
+27850,270667
+27860,270641
+27861,270641
+27861,270667
+27863,270667
+27864,270667
+27865,270333
+27865,270386
+27866,270386
+27866,270667
+27867,270386
+27867,270667
+27868,270641
+27869,270667
+27870,270253
+27876,270253
+27877,270253
+27878,270253
+27879,270253
+27880,279024
+27888,270137
+27889,270137
+27890,270137
+27891,270137
+27892,270193
+27893,270193
+28000,280796
+28001,280796
+28002,280796
+28003,280796
+28004,280796
+28005,280796
+28006,280796
+28007,280796
+28008,280796
+28009,280796
+28010,280796
+28011,280796
+28012,280796
+28013,280796
+28014,280796
+28015,280796
+28016,280796
+28017,280796
+28018,280796
+28019,280796
+28020,280796
+28021,280796
+28022,280796
+28023,280796
+28024,280796
+28024,281150
+28025,280796
+28026,280796
+28027,280796
+28028,280796
+28029,280796
+28030,280796
+28031,280796
+28032,280796
+28033,280796
+28034,280796
+28035,280796
+28036,280796
+28037,280796
+28038,280796
+28039,280796
+28040,280796
+28041,280796
+28042,280796
+28043,280796
+28044,280796
+28045,280796
+28046,280796
+28047,280796
+28048,280796
+28049,280796
+28050,280796
+28051,280796
+28052,280796
+28053,280796
+28054,280796
+28055,280796
+28100,280066
+28108,280066
+28109,280066
+28110,280091
+28120,280091
+28120,280455
+28124,281245
+28130,281625
+28140,280590
+28150,281646
+28160,281454
+28160,281512
+28170,281631
+28180,281512
+28189,280164
+28189,281071
+28189,281533
+28190,190674
+28190,280881
+28190,281185
+28191,280698
+28191,280719
+28191,281179
+28192,280210
+28193,280395
+28194,280203
+28194,281245
+28195,289020
+28196,289020
+28200,281317
+28210,280954
+28210,281603
+28211,280549
+28212,280954
+28213,280421
+28214,280565
+28219,280549
+28220,280800
+28221,280800
+28222,280800
+28223,281150
+28224,281150
+28229,281776
+28231,281277
+28232,281277
+28240,280724
+28248,280724
+28250,280611
+28250,281527
+28260,280611
+28270,280442
+28270,280611
+28280,280549
+28290,281277
+28292,280549
+28292,280611
+28293,281837
+28294,281258
+28295,281599
+28296,281356
+28296,281837
+28297,281356
+28300,280133
+28320,281132
+28330,281322
+28340,281610
+28341,281610
+28342,281610
+28343,281610
+28350,280409
+28359,281473
+28360,281701
+28370,280528
+28380,280437
+28390,280199
+28391,281570
+28400,280474
+28400,280611
+28410,280822
+28411,280908
+28412,280231
+28413,280231
+28420,280611
+28430,280105
+28440,280685
+28450,280468
+28460,280875
+28470,280382
+28480,280685
+28490,280186
+28491,280936
+28492,280231
+28492,280822
+28500,280148
+28510,280339
+28511,281659
+28512,281795
+28514,281006
+28514,281795
+28515,281013
+28521,281230
+28522,281230
+28523,281230
+28524,281230
+28530,280915
+28540,281104
+28550,281467
+28560,280357
+28570,281028
+28580,280112
+28590,281809
+28594,281551
+28595,280552
+28596,280259
+28597,280604
+28598,281739
+28600,280967
+28607,280040
+28609,281415
+28609,281757
+28609,281782
+28610,281744
+28610,281757
+28620,280088
+28630,281718
+28635,280920
+28640,280318
+28648,280318
+28649,281283
+28650,280376
+28660,280225
+28670,281816
+28680,281338
+28690,280262
+28691,281760
+28692,281760
+28693,281198
+28694,280513
+28695,280992
+28696,281090
+28700,281343
+28701,281343
+28702,281343
+28703,281343
+28706,281343
+28707,280455
+28707,281343
+28708,281343
+28709,281343
+28710,280869
+28720,280284
+28721,280297
+28721,281219
+28722,281684
+28723,281087
+28729,280941
+28729,281586
+28729,281697
+28730,280278
+28737,280246
+28737,280647
+28737,281147
+28737,281381
+28739,280626
+28739,280632
+28739,280973
+28739,281821
+28740,281202
+28742,280761
+28743,280344
+28743,280626
+28749,280035
+28749,281126
+28749,281202
+28750,280455
+28750,281296
+28751,280301
+28752,289015
+28753,289015
+28754,289015
+28754,289020
+28755,280014
+28755,280702
+28755,280783
+28755,281261
+28756,281436
+28760,289036
+28770,280455
+28791,281441
+28792,280856
+28794,280679
+28801,280053
+28802,280053
+28803,280053
+28804,280053
+28805,280053
+28806,280053
+28807,280040
+28807,280053
+28810,281723
+28811,280480
+28812,281111
+28812,281662
+28813,281163
+28813,281548
+28814,280534
+28815,280571
+28815,281224
+28816,280323
+28816,281564
+28817,281375
+28818,280127
+28818,281369
+28821,280493
+28822,280493
+28823,280493
+28830,281300
+28840,280843
+28850,281489
+28860,281049
+28861,281049
+28862,281049
+28863,280416
+28864,280029
+28880,280838
+28890,280758
+28891,281678
+28901,280650
+28902,280650
+28903,280650
+28904,280650
+28905,280650
+28906,280650
+28907,280650
+28909,280650
+28911,280745
+28912,280745
+28913,280745
+28914,280745
+28915,280745
+28916,280745
+28917,280745
+28918,280745
+28919,280745
+28921,280072
+28922,280072
+28923,280072
+28924,280072
+28925,280072
+28931,280920
+28932,280920
+28933,280920
+28934,280920
+28935,280920
+28936,280920
+28937,280920
+28938,280920
+28939,280151
+28941,280587
+28942,280587
+28943,280587
+28944,280587
+28945,280587
+28946,280587
+28947,280587
+28950,280894
+28970,280730
+28971,280663
+28976,280170
+28977,280360
+28978,280506
+28979,281408
+28981,281065
+28982,281065
+28983,281065
+28984,281065
+28990,281505
+28991,281492
+29001,290672
+29002,290672
+29003,290672
+29004,290672
+29005,290672
+29006,290672
+29007,290672
+29008,290672
+29009,290672
+29010,290385
+29010,290672
+29011,290672
+29012,290672
+29013,290672
+29014,290672
+29015,290672
+29016,290672
+29017,290672
+29018,290672
+29100,290424
+29108,290580
+29109,290901
+29110,290733
+29120,290081
+29130,290075
+29140,290672
+29150,290115
+29160,290398
+29170,290430
+29180,290831
+29190,290672
+29191,290672
+29193,290672
+29194,290038
+29194,290043
+29195,290445
+29196,290672
+29197,290672
+29197,290923
+29200,290154
+29210,290496
+29220,290477
+29230,290154
+29230,299023
+29240,290939
+29250,290154
+29260,290154
+29300,290173
+29310,290957
+29311,290957
+29312,290960
+29313,290976
+29314,290154
+29314,290173
+29315,290173
+29315,290982
+29320,290326
+29327,290897
+29328,290884
+29329,290884
+29330,290108
+29340,290350
+29350,290206
+29360,290748
+29370,290287
+29380,290461
+29391,290461
+29392,290635
+29394,290846
+29400,290846
+29400,299044
+29410,291009
+29420,290311
+29430,290846
+29430,299039
+29440,290607
+29450,290810
+29451,290770
+29452,290379
+29460,290141
+29461,290521
+29462,290653
+29470,290483
+29471,299044
+29480,290568
+29490,290290
+29490,290461
+29491,290069
+29491,290249
+29492,290574
+29492,290640
+29493,290228
+29494,290213
+29500,290120
+29510,290120
+29520,290555
+29530,290017
+29531,290593
+29532,290727
+29533,290593
+29540,290154
+29550,290189
+29551,290363
+29552,290120
+29552,290189
+29560,290803
+29566,290402
+29567,290136
+29569,290385
+29569,290803
+29570,290385
+29580,290385
+29590,290672
+29591,290672
+29592,290385
+29593,290120
+29601,290691
+29602,290691
+29603,290691
+29604,290691
+29610,290764
+29611,290614
+29612,290764
+29620,290672
+29620,299018
+29630,290252
+29631,290252
+29639,290252
+29640,290542
+29649,290705
+29650,290705
+29651,290705
+29660,290691
+29670,290691
+29679,290234
+29679,290691
+29680,290516
+29688,290516
+29689,290516
+29690,290419
+29691,290688
+29692,290419
+29692,290688
+29693,290516
+29698,290516
+29700,290944
+29710,290799
+29711,290022
+29712,290995
+29713,290022
+29713,290995
+29714,290859
+29715,290878
+29716,290332
+29718,290094
+29718,290265
+29718,290304
+29718,290509
+29718,290944
+29719,290271
+29719,290332
+29719,290878
+29719,290944
+29719,290995
+29720,290672
+29720,290825
+29730,290825
+29738,290712
+29738,290825
+29740,290944
+29749,290944
+29750,290056
+29750,290944
+29751,290944
+29752,290862
+29753,290167
+29753,290192
+29753,290862
+29754,290458
+29755,290347
+29758,290825
+29760,290944
+29770,290918
+29780,290751
+29787,290751
+29788,290537
+29789,290537
+29790,290944
+29791,290666
+29792,290629
+29792,290944
+29793,290918
+29796,290918
+30001,300308
+30002,300308
+30003,300308
+30004,300308
+30005,300308
+30006,300308
+30007,300308
+30008,300308
+30009,300308
+30010,300308
+30011,300308
+30012,300308
+30100,300308
+30107,300308
+30108,300308
+30110,300308
+30120,300308
+30130,300102
+30139,300308
+30140,309012
+30148,309012
+30149,309012
+30150,300308
+30151,300308
+30152,300308
+30153,300308
+30154,300308
+30155,300308
+30156,300308
+30157,300308
+30158,300308
+30160,300308
+30161,300308
+30162,300308
+30163,300308
+30164,300308
+30165,300308
+30166,300308
+30167,300308
+30168,300308
+30169,300308
+30170,300294
+30176,300320
+30177,300294
+30178,300294
+30179,300308
+30180,300124
+30189,300124
+30189,300177
+30190,300047
+30191,300145
+30192,300145
+30193,300294
+30194,300294
+30195,300158
+30201,300161
+30202,300161
+30203,300161
+30204,300161
+30205,300161
+30300,300161
+30310,300161
+30319,300161
+30320,300217
+30330,300161
+30331,300308
+30332,300217
+30333,300217
+30334,300217
+30335,300217
+30335,300269
+30338,300217
+30350,300161
+30351,300161
+30360,300413
+30364,300413
+30365,300161
+30366,300161
+30367,300161
+30368,300161
+30369,300161
+30369,300413
+30370,300161
+30370,300354
+30380,300161
+30380,300354
+30381,300161
+30382,300161
+30383,300161
+30384,300161
+30385,300161
+30385,300308
+30386,300161
+30387,300161
+30387,300281
+30390,300161
+30391,300161
+30392,300161
+30393,300161
+30394,300161
+30395,300161
+30396,300161
+30397,300161
+30398,300161
+30399,300161
+30400,300158
+30410,300158
+30411,300158
+30412,300158
+30413,300158
+30413,300281
+30420,300130
+30420,300177
+30430,300177
+30439,300177
+30440,300281
+30441,300281
+30442,300281
+30500,300275
+30506,300275
+30507,300275
+30508,300275
+30509,300275
+30510,300434
+30520,300222
+30528,300222
+30529,300222
+30530,300196
+30540,300119
+30550,300026
+30559,300026
+30560,300079
+30561,300079
+30562,300183
+30563,300183
+30564,300256
+30565,300389
+30570,300308
+30579,300308
+30580,300308
+30588,300308
+30589,300308
+30590,300308
+30591,300373
+30592,300308
+30592,300354
+30592,300373
+30593,300161
+30594,300161
+30600,300098
+30609,300098
+30610,300341
+30611,300315
+30612,300406
+30613,300428
+30620,300200
+30626,300011
+30626,300200
+30627,300275
+30628,300200
+30629,300200
+30640,300011
+30648,300011
+30649,300011
+30700,300373
+30708,300373
+30709,300373
+30710,300373
+30710,309027
+30720,300354
+30729,300354
+30730,300354
+30739,300354
+30739,300373
+30740,300367
+30800,300243
+30810,300243
+30811,300243
+30812,300243
+30813,300243
+30814,300243
+30815,300243
+30816,300243
+30817,300243
+30818,300243
+30820,300050
+30830,300308
+30831,300308
+30832,300308
+30833,300308
+30834,300243
+30834,300308
+30835,300161
+30835,300308
+30836,300308
+30837,300308
+30840,300085
+30848,300085
+30849,300085
+30850,300392
+30858,300269
+30858,300392
+30859,300063
+30859,300392
+30860,300269
+30868,300161
+30868,300269
+30870,300269
+30875,300269
+30876,300243
+30876,300269
+30877,300269
+30878,300243
+30878,300269
+30879,300269
+30880,300032
+30889,300032
+30889,300243
+30890,300243
+30890,300336
+30891,300336
+30892,300238
+30893,300243
+31001,312016
+31002,312016
+31003,312016
+31004,312016
+31005,312016
+31006,312016
+31007,312016
+31008,312016
+31009,312016
+31010,312016
+31010,319019
+31011,312016
+31012,312016
+31013,310168
+31013,319024
+31013,319030
+31014,312016
+31015,312016
+31016,312016
+31100,312068
+31109,310399
+31110,310885
+31119,310885
+31130,311614
+31131,310749
+31132,312573
+31133,311477
+31133,312460
+31140,310386
+31150,311672
+31151,311831
+31152,311803
+31153,310076
+31153,310898
+31154,310180
+31154,312299
+31154,312346
+31160,319061
+31170,311311
+31170,311939
+31171,311939
+31172,311189
+31172,311311
+31172,311944
+31173,311939
+31174,310522
+31174,310752
+31174,310765
+31174,310832
+31174,310850
+31174,311213
+31174,312536
+31174,312628
+31175,311206
+31175,312140
+31176,311206
+31176,312606
+31177,311542
+31177,312606
+31178,310023
+31179,312606
+31180,319077
+31190,310765
+31191,311094
+31191,319058
+31192,310235
+31192,310863
+31193,310403
+31193,311363
+31194,311017
+31194,311363
+31195,319024
+31200,310977
+31208,310410
+31210,310291
+31219,311666
+31219,311705
+31219,311751
+31219,312042
+31219,312251
+31219,312303
+31220,312191
+31227,310636
+31227,311167
+31227,311419
+31227,311629
+31228,310082
+31228,310351
+31228,310431
+31228,310961
+31228,312303
+31229,310478
+31229,310615
+31229,310790
+31229,312310
+31230,312515
+31239,310266
+31240,310410
+31241,310116
+31241,311252
+31241,311688
+31242,312554
+31243,310364
+31243,310462
+31243,311252
+31243,311607
+31250,312009
+31251,311424
+31252,310538
+31253,311712
+31260,311521
+31261,310155
+31262,310121
+31263,310305
+31263,310804
+31264,310057
+31264,311748
+31270,311430
+31271,310214
+31271,311000
+31272,310137
+31280,310018
+31280,310142
+31280,311770
+31281,310142
+31281,310996
+31281,311483
+31281,311846
+31281,311901
+31282,311666
+31282,311825
+31283,311398
+31284,312652
+31290,310116
+31290,312606
+31291,311206
+31291,311213
+31292,310057
+31292,312573
+31292,312606
+31293,312248
+31300,312270
+31310,310673
+31311,310673
+31312,310692
+31313,311799
+31314,312205
+31315,311786
+31320,311691
+31330,312541
+31340,311635
+31350,312021
+31360,311075
+31370,311043
+31380,310654
+31381,310654
+31382,311640
+31383,311786
+31390,311918
+31391,311786
+31392,312055
+31393,310517
+31394,312074
+31395,310459
+31395,311141
+31395,311509
+31395,311923
+31395,311976
+31396,311923
+31396,312384
+31397,312286
+31398,310569
+31398,312286
+31400,312166
+31409,311350
+31409,312166
+31410,312613
+31411,311350
+31412,310594
+31413,312520
+31414,311136
+31415,312107
+31416,312457
+31417,311287
+31418,312476
+31420,312439
+31421,311326
+31422,312378
+31430,310193
+31438,310288
+31438,311580
+31439,310288
+31439,311580
+31439,311995
+31440,311593
+31448,312093
+31448,312418
+31448,312423
+31449,312423
+31450,311810
+31451,311115
+31451,311810
+31451,311982
+31451,312227
+31452,311192
+31453,310958
+31454,310713
+31454,311810
+31454,312093
+31454,312418
+31460,310095
+31460,311461
+31470,310885
+31471,311727
+31472,311249
+31472,312378
+31473,311249
+31480,312423
+31481,310288
+31481,311580
+31482,311568
+31483,311568
+31484,311568
+31485,311568
+31486,310863
+31487,311555
+31490,310692
+31491,311038
+31491,312129
+31492,311038
+31493,311108
+31494,310945
+31494,311509
+31494,311516
+31495,312172
+31496,312359
+31500,312325
+31510,311081
+31511,310620
+31512,311069
+31513,310327
+31514,312495
+31515,310641
+31520,310689
+31521,311069
+31521,311764
+31522,311733
+31522,312331
+31523,310060
+31523,310484
+31530,310787
+31540,310575
+31550,312080
+31560,310425
+31570,312153
+31579,310667
+31580,311574
+31587,311653
+31588,311458
+31589,312233
+31590,310706
+31591,310771
+31592,310728
+31593,311056
+31600,310608
+31610,312589
+31620,310863
+31620,311228
+31621,310863
+31630,310983
+31638,310924
+31638,310983
+31639,310924
+31639,310983
+31640,310581
+31650,312114
+31660,312482
+31669,312482
+31670,311957
+31671,310333
+31671,310348
+31671,311960
+31671,312567
+31680,311859
+31689,311332
+31690,310930
+31691,311347
+31692,310039
+31692,310044
+31692,311120
+31693,310983
+31693,311154
+31694,310924
+31695,310924
+31696,310924
+31697,310924
+31698,310983
+31699,310924
+31699,310983
+31700,310500
+31708,310174
+31710,312649
+31711,312397
+31712,312397
+31713,310500
+31714,310500
+31715,310500
+31720,310500
+31720,310543
+31730,310500
+31740,312212
+31744,310879
+31745,311290
+31746,312634
+31747,312135
+31748,310902
+31749,311022
+31750,310811
+31751,311878
+31752,312444
+31753,311379
+31754,310240
+31754,311173
+31760,310826
+31770,311537
+31780,312508
+31789,311537
+31789,312508
+31790,310229
+31790,312592
+31791,312264
+31792,310543
+31793,310543
+31794,310500
+31794,311022
+31795,310500
+31796,310500
+31797,312362
+31798,310174
+31798,311402
+31799,311017
+31799,311862
+31799,311884
+31799,312362
+31800,310109
+31809,310734
+31809,311897
+31810,310446
+31810,311304
+31810,312401
+31820,310847
+31829,310919
+31830,311385
+31839,310272
+31840,310370
+31840,311234
+31849,310253
+31849,311271
+31850,310253
+31860,319045
+31866,310497
+31867,310253
+31867,310403
+31867,311265
+31867,311311
+31867,311862
+31868,310253
+31868,311311
+31869,310497
+31869,311265
+31870,319083
+31876,310312
+31877,311445
+31878,311445
+31879,311445
+31880,311496
+31890,310556
+31891,310207
+31891,311445
+31892,311311
+31892,311363
+32001,320548
+32002,320087
+32002,320548
+32003,320548
+32004,320548
+32005,320087
+32005,320548
+32005,320757
+32100,320261
+32101,320874
+32102,320874
+32103,320548
+32110,320551
+32111,320551
+32120,320599
+32120,320874
+32130,320760
+32133,320760
+32134,320760
+32135,320610
+32135,320760
+32136,320760
+32137,320610
+32137,320760
+32138,320610
+32139,320760
+32140,320874
+32141,320760
+32141,320874
+32150,320599
+32151,320599
+32152,320261
+32153,320261
+32153,320599
+32160,320527
+32161,320527
+32162,320527
+32163,320527
+32164,320527
+32170,320028
+32171,320028
+32172,320028
+32172,320548
+32200,320277
+32211,320277
+32212,320338
+32213,320277
+32220,320564
+32226,320564
+32227,320564
+32228,320564
+32229,320564
+32235,320646
+32236,320564
+32300,320090
+32310,320739
+32311,320739
+32312,320739
+32313,320090
+32314,320090
+32315,320090
+32315,320880
+32316,320880
+32317,320090
+32318,320090
+32320,320739
+32329,320179
+32329,320739
+32330,320179
+32334,320179
+32335,320179
+32336,320179
+32337,320179
+32338,320179
+32339,320179
+32340,320880
+32348,320880
+32349,320880
+32350,320723
+32356,320603
+32357,320150
+32357,320381
+32357,320603
+32357,320723
+32357,320837
+32358,320381
+32359,320723
+32360,320837
+32365,320837
+32366,320837
+32367,320837
+32368,320837
+32369,320837
+32370,320381
+32370,320603
+32371,320381
+32371,320603
+32372,320150
+32373,320150
+32374,320150
+32375,320150
+32375,320441
+32400,320697
+32410,320467
+32411,320467
+32412,320185
+32413,320185
+32414,320697
+32415,320697
+32416,320185
+32416,320697
+32417,320034
+32417,320527
+32417,320697
+32418,320697
+32419,320408
+32420,320408
+32425,320408
+32426,320408
+32427,320408
+32428,320408
+32429,320408
+32430,320224
+32431,320104
+32432,320104
+32433,320185
+32434,320185
+32440,320599
+32448,320527
+32449,320599
+32450,320258
+32452,320659
+32453,320744
+32454,320258
+32455,320744
+32456,320343
+32456,320659
+32457,320659
+32459,320258
+32499,320489
+32500,320198
+32510,320198
+32511,320198
+32512,320132
+32513,320198
+32514,320132
+32515,320198
+32515,320744
+32516,320198
+32520,320049
+32520,320111
+32520,320132
+32521,320132
+32522,320132
+32523,320132
+32524,320132
+32525,320132
+32526,320132
+32526,320356
+32530,320132
+32530,320356
+32534,320198
+32535,320356
+32536,320356
+32537,320356
+32538,320356
+32539,320356
+32540,320343
+32545,320343
+32546,320343
+32547,320343
+32547,320929
+32548,320489
+32549,320489
+32550,320868
+32554,320868
+32555,320868
+32556,320868
+32557,320868
+32557,320929
+32558,320868
+32560,320868
+32562,320868
+32563,320868
+32570,320454
+32572,320454
+32572,320659
+32574,320198
+32574,320454
+32575,320454
+32576,320454
+32577,320454
+32578,320454
+32578,320659
+32579,320454
+32590,320489
+32591,320219
+32592,320071
+32592,320551
+32593,320548
+32600,320855
+32610,320718
+32610,320914
+32611,320505
+32611,320718
+32612,320219
+32612,320718
+32613,320533
+32614,320914
+32615,320855
+32616,320914
+32617,320914
+32618,320505
+32619,320855
+32620,320394
+32621,320394
+32622,320394
+32623,320394
+32624,320219
+32624,320505
+32625,320219
+32626,320219
+32630,320322
+32631,320322
+32631,320782
+32631,320821
+32632,320052
+32632,320126
+32632,320322
+32633,320052
+32634,320126
+32635,320322
+32635,320855
+32636,320322
+32636,320782
+32637,320322
+32637,320855
+32640,320322
+32641,320625
+32643,320625
+32644,320163
+32644,320625
+32645,320163
+32645,320625
+32646,320052
+32646,320163
+32647,320163
+32648,320163
+32650,320907
+32651,320907
+32652,320678
+32653,320678
+32654,320678
+32655,320678
+32660,320013
+32664,320013
+32665,320013
+32666,320013
+32667,320013
+32668,320013
+32669,320013
+32670,320369
+32678,320369
+32679,320369
+32680,320283
+32688,320283
+32689,320283
+32690,320013
+32690,320795
+32691,320795
+32692,320776
+32693,320776
+32694,320821
+32695,320821
+32696,320782
+32696,320821
+32697,320855
+32698,320533
+32698,320855
+32699,320855
+32700,320436
+32701,320071
+32702,320893
+32703,320436
+32704,320071
+32705,320071
+32705,320893
+32706,320436
+32707,320436
+32708,320375
+32708,320436
+32710,320586
+32711,320586
+32720,320317
+32720,320375
+32720,320436
+32720,320527
+32730,320375
+32740,320570
+32746,320570
+32747,320570
+32748,320570
+32749,320570
+32750,320492
+32751,320492
+32760,320230
+32764,320230
+32764,320809
+32765,320809
+32766,320230
+32767,320296
+32768,320230
+32768,320296
+32769,320230
+32769,320492
+32770,320701
+32774,320230
+32779,320701
+32780,320631
+32781,320441
+32782,320441
+32782,320631
+32783,320441
+32784,320441
+32785,320441
+32786,320296
+32787,320296
+32787,320631
+32788,320631
+32789,320631
+32789,320868
+32790,320436
+32790,320492
+32791,320527
+32792,320586
+32793,320317
+32793,320586
+32794,320230
+32794,320296
+32794,320701
+32800,320245
+32810,320684
+32811,320684
+32812,320147
+32812,320697
+32813,320842
+32814,320662
+32815,320245
+32815,320684
+32816,320245
+32816,320473
+32817,320245
+32820,320202
+32821,320202
+32822,320202
+32823,320202
+32823,320245
+32824,320202
+32825,320202
+32826,320202
+32827,320245
+32828,320245
+32829,320245
+32830,320473
+32838,320473
+32839,320473
+32840,320065
+32845,320065
+32846,320065
+32846,320415
+32847,320065
+32848,320065
+32849,320065
+32850,320415
+32857,320415
+32858,320415
+32859,320065
+32859,320415
+32860,320300
+32867,320300
+32868,320300
+32869,320300
+32869,320420
+32870,320420
+32879,320420
+32880,320512
+32890,320087
+32891,320065
+32892,320420
+32893,320420
+32893,320570
+32894,320420
+32895,320420
+32896,320512
+32897,320415
+32898,320512
+32899,320512
+32900,320548
+32900,320757
+32901,320757
+32910,320757
+32911,320757
+32920,320087
+32920,320816
+32930,320087
+32930,320816
+32940,320087
+32940,320548
+32940,320816
+32941,320816
+32946,320065
+32950,320261
+32960,320548
+32970,320548
+32971,320548
+32980,320028
+32980,320548
+32981,320548
+32990,320548
+33001,330447
+33002,330447
+33003,330447
+33004,330447
+33005,330447
+33006,330447
+33007,330447
+33008,330447
+33009,330447
+33010,330447
+33010,330668
+33011,330447
+33012,330447
+33013,330447
+33060,330447
+33069,330447
+33110,330729
+33111,330729
+33112,330523
+33114,330523
+33115,330539
+33115,330642
+33116,330523
+33116,330539
+33117,330539
+33118,330539
+33119,330267
+33119,330447
+33120,330518
+33125,330693
+33126,330693
+33127,330447
+33127,330518
+33127,330693
+33128,330518
+33129,330518
+33130,330390
+33138,330390
+33139,330518
+33140,330447
+33150,330215
+33155,330215
+33156,330215
+33157,330215
+33159,330215
+33160,330582
+33161,330387
+33162,330387
+33163,330387
+33170,330447
+33170,330576
+33171,330447
+33171,330576
+33172,330576
+33173,330576
+33174,330447
+33179,330181
+33180,330426
+33186,330668
+33187,330668
+33188,330668
+33189,330668
+33190,330544
+33191,330447
+33191,330544
+33192,330241
+33192,330352
+33192,330544
+33193,330447
+33194,330447
+33195,330447
+33196,330447
+33199,330447
+33199,330668
+33201,330241
+33202,330241
+33203,330241
+33204,330241
+33205,330241
+33206,330241
+33207,330241
+33208,330241
+33209,330241
+33210,330241
+33211,330241
+33212,330241
+33213,330241
+33290,330241
+33299,330241
+33300,330766
+33310,330096
+33310,330766
+33311,330766
+33312,330766
+33313,330766
+33314,330766
+33315,330766
+33316,330766
+33317,330766
+33318,330766
+33320,330194
+33324,330194
+33325,330194
+33326,330194
+33326,330766
+33327,330194
+33328,330194
+33329,330194
+33330,330194
+33340,330194
+33341,330194
+33342,330194
+33343,330138
+33344,330138
+33345,330560
+33346,330560
+33347,330560
+33350,330241
+33390,330241
+33391,330241
+33392,330241
+33393,330241
+33394,330241
+33401,330045
+33401,330169
+33402,330045
+33403,330045
+33404,330208
+33405,330169
+33410,330045
+33410,330169
+33411,330306
+33412,330169
+33412,330208
+33412,330306
+33414,330100
+33414,330306
+33414,330544
+33416,330208
+33417,330045
+33417,330169
+33418,330045
+33418,330254
+33419,330254
+33420,330668
+33422,330352
+33423,330352
+33424,330352
+33425,330352
+33426,330352
+33427,330352
+33428,330352
+33429,330668
+33430,330143
+33438,330143
+33439,330143
+33440,330254
+33448,330254
+33449,330254
+33450,330169
+33456,330100
+33456,330169
+33457,330169
+33458,330693
+33459,330169
+33460,330045
+33468,330208
+33468,330254
+33469,330143
+33470,330045
+33470,330208
+33470,330352
+33476,330707
+33490,330045
+33491,330143
+33492,330143
+33500,330365
+33507,330365
+33509,330365
+33509,330450
+33510,330668
+33518,330655
+33518,330668
+33519,330215
+33519,330668
+33520,330404
+33520,330557
+33527,330061
+33528,330061
+33528,330404
+33529,330096
+33529,330404
+33530,330498
+33534,330498
+33535,330447
+33535,330498
+33536,330498
+33537,330498
+33538,330498
+33539,330498
+33540,330450
+33546,330450
+33547,330122
+33548,330450
+33549,330450
+33550,330122
+33554,330083
+33555,330083
+33556,330122
+33556,330432
+33557,330030
+33557,330501
+33558,330030
+33558,330501
+33559,330122
+33559,330450
+33560,330560
+33566,330560
+33567,330560
+33568,330560
+33569,330560
+33570,330479
+33576,330463
+33577,330463
+33578,330463
+33579,330479
+33580,330668
+33581,330404
+33582,330404
+33583,330498
+33584,330024
+33584,330498
+33585,330450
+33586,330450
+33587,330450
+33588,330560
+33589,330122
+33590,330557
+33591,330365
+33592,330365
+33593,330365
+33594,330365
+33595,330365
+33596,330365
+33598,330365
+33600,330371
+33610,330371
+33611,330371
+33612,330371
+33614,330371
+33615,330371
+33616,330371
+33616,330447
+33617,330371
+33618,330371
+33619,330371
+33620,330334
+33627,330334
+33628,330334
+33629,330334
+33630,330334
+33637,330334
+33638,330334
+33639,330334
+33640,330371
+33650,330371
+33660,330447
+33669,330447
+33670,330024
+33675,330024
+33676,330024
+33677,330024
+33678,330024
+33679,330024
+33680,330024
+33681,330024
+33682,330371
+33683,330024
+33683,330371
+33684,330024
+33685,330024
+33686,330024
+33687,330024
+33688,330024
+33690,330352
+33691,330241
+33692,330334
+33693,330334
+33694,330334
+33695,330334
+33696,330447
+33696,330576
+33697,330241
+33700,330349
+33707,330349
+33708,330349
+33709,330349
+33710,330181
+33710,330411
+33716,330181
+33717,330772
+33718,330772
+33719,330181
+33719,330411
+33720,330077
+33724,330077
+33725,330077
+33726,330077
+33726,330181
+33727,330077
+33728,330077
+33729,330077
+33730,330273
+33731,330077
+33732,330292
+33733,330292
+33734,330292
+33735,330485
+33736,330485
+33740,330707
+33746,330236
+33746,330707
+33747,330707
+33748,330707
+33749,330707
+33750,330236
+33757,330236
+33758,330236
+33759,330236
+33760,330175
+33768,330175
+33769,330175
+33770,330740
+33774,330637
+33775,330714
+33776,330621
+33776,330740
+33777,330485
+33777,330616
+33777,330753
+33778,330175
+33778,330740
+33779,330621
+33779,330740
+33780,330349
+33781,330595
+33782,330349
+33782,330595
+33783,330349
+33784,330349
+33785,330349
+33787,330349
+33788,330349
+33789,330349
+33790,330411
+33791,330349
+33792,330349
+33793,330411
+33794,330175
+33795,330181
+33796,330181
+33797,330181
+33798,330077
+33799,330077
+33800,330117
+33810,330289
+33811,330117
+33811,330289
+33812,330220
+33812,330289
+33813,330117
+33813,330220
+33814,330117
+33815,330019
+33815,330117
+33816,330117
+33817,330117
+33818,330117
+33819,330117
+33820,330267
+33825,330267
+33826,330267
+33826,330788
+33827,330058
+33827,330267
+33828,330100
+33829,330100
+33829,330267
+33830,330058
+33836,330058
+33836,330595
+33837,330058
+33838,330058
+33839,330058
+33840,330680
+33841,330680
+33842,330058
+33842,330680
+33843,330058
+33844,330058
+33845,330058
+33846,330058
+33846,330595
+33847,330058
+33848,330595
+33850,330595
+33857,330595
+33858,330595
+33859,330595
+33860,330595
+33866,330595
+33867,330595
+33868,330595
+33869,330595
+33870,330735
+33873,330735
+33874,330349
+33874,330735
+33875,330735
+33876,330735
+33877,330735
+33878,330735
+33879,330735
+33880,330019
+33885,330019
+33887,330019
+33888,330019
+33889,330019
+33890,330019
+33891,330595
+33900,330313
+33909,330313
+33910,330447
+33919,330447
+33920,330313
+33929,330313
+33930,330313
+33934,330313
+33935,330313
+33936,330668
+33937,330668
+33938,330668
+33939,330313
+33940,330609
+33945,330609
+33946,330609
+33947,330609
+33948,330609
+33950,330609
+33957,330609
+33958,330609
+33959,330609
+33960,330609
+33970,330328
+33979,330328
+33980,330328
+33986,330328
+33987,330328
+33989,330328
+33990,330156
+33991,330328
+33992,330328
+33993,330674
+33995,330156
+33996,330156
+34001,341202
+34002,341202
+34003,341202
+34004,341202
+34005,341202
+34006,341202
+34100,341570
+34110,341296
+34111,341296
+34111,341369
+34111,341570
+34111,342184
+34111,342453
+34112,341697
+34112,342184
+34112,342453
+34113,341261
+34113,342184
+34113,342316
+34114,341436
+34115,341570
+34115,341907
+34116,340382
+34116,341261
+34116,342316
+34117,341570
+34118,349036
+34120,340474
+34126,341473
+34126,342239
+34127,341631
+34127,341929
+34127,349036
+34128,341126
+34128,341436
+34128,341757
+34128,349036
+34129,340395
+34129,340421
+34129,342368
+34131,340474
+34131,342435
+34132,342337
+34159,340105
+34160,340105
+34170,341028
+34170,341258
+34170,342201
+34170,342374
+34190,342257
+34191,340105
+34191,340186
+34191,341202
+34191,341678
+34192,340796
+34192,342374
+34200,340231
+34208,340231
+34208,340698
+34208,341467
+34209,340869
+34209,341776
+34209,341816
+34209,341966
+34210,340698
+34218,340571
+34219,340066
+34219,340513
+34219,340663
+34219,341338
+34219,342012
+34220,340989
+34230,341821
+34239,341893
+34239,342218
+34240,340225
+34246,340506
+34247,340587
+34247,340822
+34247,342051
+34248,340127
+34248,340604
+34248,340702
+34249,340225
+34249,340875
+34249,342380
+34250,341415
+34257,341219
+34257,341782
+34257,342103
+34257,342429
+34258,340604
+34259,340632
+34259,340843
+34259,342131
+34260,093168
+34260,094173
+34260,094461
+34300,341230
+34304,340318
+34305,340246
+34305,340339
+34305,340455
+34305,340534
+34305,341065
+34305,341842
+34305,342407
+34306,340480
+34306,340724
+34306,340817
+34306,341034
+34307,349020
+34309,340468
+34309,340552
+34309,341564
+34309,342244
+34309,342276
+34310,340297
+34310,341277
+34320,340590
+34337,340761
+34338,340014
+34338,340199
+34340,342064
+34347,340915
+34347,340941
+34347,341317
+34347,341375
+34347,341659
+34347,342162
+34348,342048
+34349,340357
+34349,340915
+34349,341090
+34349,342048
+34349,342064
+34350,342321
+34400,340838
+34404,340679
+34405,340719
+34405,340838
+34405,341684
+34406,340284
+34406,340611
+34406,340685
+34406,340838
+34407,340416
+34407,340611
+34407,341132
+34407,341224
+34407,341548
+34407,341760
+34407,342223
+34408,342223
+34409,342223
+34410,341087
+34419,340112
+34419,340777
+34419,340881
+34419,341087
+34419,342178
+34420,340112
+34429,340091
+34429,340992
+34429,341277
+34429,341551
+34429,341599
+34430,341300
+34439,341809
+34440,340745
+34447,341527
+34447,342309
+34449,340151
+34449,340967
+34449,341322
+34449,342159
+34449,342466
+34450,340170
+34460,349015
+34465,341868
+34466,342414
+34467,341049
+34468,340344
+34468,340894
+34468,340920
+34468,341163
+34468,341467
+34469,341013
+34469,341492
+34469,342110
+34469,349015
+34470,340376
+34470,340626
+34470,341408
+34473,340203
+34473,340376
+34473,341795
+34473,341907
+34475,342027
+34475,342086
+34475,342342
+34477,340259
+34477,342282
+34477,349036
+34478,340528
+34480,340053
+34484,340679
+34485,340936
+34485,341071
+34485,341147
+34485,341245
+34486,340040
+34486,340565
+34486,341147
+34486,341394
+34486,341701
+34487,340053
+34487,349041
+34488,340565
+34488,341147
+34490,340170
+34490,341744
+34491,340035
+34491,340719
+34491,341610
+34491,341684
+34491,342110
+34491,342295
+34492,093060
+34492,093734
+34492,340040
+34492,340053
+34570,350206
+34800,340040
+34810,340040
+34810,341586
+34811,340040
+34811,341356
+34813,340040
+34813,341356
+34814,340323
+34814,341356
+34815,340040
+34815,341356
+34820,340278
+34828,340278
+34828,341586
+34828,341603
+34829,340278
+34829,340360
+34830,341586
+34839,340565
+34839,341104
+34839,341603
+34840,340565
+34844,340565
+34844,340679
+34844,341855
+34846,340565
+34846,341343
+34847,349041
+34848,349041
+34849,349041
+34850,340493
+34858,340493
+34859,340493
+34869,341718
+34870,341512
+34870,341718
+34874,341512
+34878,340626
+34878,341512
+34878,341718
+34879,340800
+34879,341718
+34880,340800
+34882,340626
+34882,340800
+34884,341718
+34886,341991
+34887,341855
+34888,341991
+34889,340730
+34889,340800
+34889,341006
+34889,341991
+34889,342146
+35000,350115
+35000,350271
+35000,350326
+35001,350167
+35002,350167
+35003,350167
+35004,350167
+35005,350167
+35006,350167
+35007,350167
+35008,350167
+35009,350167
+35010,350167
+35011,350167
+35012,350167
+35013,350167
+35014,350167
+35015,350167
+35016,350167
+35017,350167
+35018,350167
+35019,350167
+35100,350192
+35106,350192
+35107,350192
+35108,350192
+35109,350192
+35110,350228
+35118,350022
+35119,350022
+35119,350192
+35120,350120
+35120,350192
+35128,350120
+35128,350192
+35129,350120
+35130,350120
+35138,350120
+35139,350120
+35140,350120
+35149,350120
+35188,350094
+35200,350265
+35210,350265
+35211,350265
+35212,350265
+35213,350265
+35214,350115
+35214,350265
+35214,350311
+35215,350265
+35216,350311
+35217,350311
+35218,350265
+35219,350265
+35220,350167
+35220,350265
+35229,350167
+35229,350265
+35240,350115
+35250,350115
+35259,350115
+35260,350022
+35269,350022
+35270,350022
+35280,350192
+35280,350228
+35290,350192
+35299,350192
+35300,350069
+35300,350213
+35307,350213
+35308,350213
+35309,350213
+35310,350213
+35320,350332
+35328,350332
+35329,350332
+35330,350271
+35333,350271
+35338,350271
+35339,350271
+35340,350326
+35349,350326
+35350,350056
+35360,350252
+35368,350252
+35369,350038
+35369,350192
+35370,350347
+35400,350069
+35411,350069
+35412,350069
+35413,350069
+35413,350136
+35414,350069
+35415,350069
+35418,350069
+35420,350094
+35420,350136
+35421,350136
+35422,350136
+35423,350136
+35425,350115
+35430,350081
+35431,350081
+35432,350081
+35435,350081
+35450,350234
+35457,350234
+35458,350234
+35460,350094
+35468,350094
+35469,350094
+35469,350141
+35470,350206
+35478,350206
+35479,350206
+35480,350017
+35488,350094
+35489,350017
+35500,350043
+35500,350173
+35507,350249
+35508,350249
+35509,350189
+35509,350249
+35510,350287
+35520,350108
+35530,350249
+35539,350249
+35540,350234
+35540,350249
+35541,350108
+35542,350108
+35543,350108
+35543,350249
+35544,350249
+35550,350189
+35550,350290
+35558,350249
+35559,350189
+35560,350290
+35561,350249
+35570,350347
+35571,350287
+35572,350287
+35579,350206
+35580,350347
+35600,350173
+35610,350038
+35610,350173
+35611,350173
+35612,350173
+35613,350173
+35620,350304
+35625,350154
+35626,350154
+35627,350141
+35627,350154
+35627,350173
+35627,350304
+35628,350154
+35628,350304
+35628,350311
+35629,350304
+35630,350038
+35637,350075
+35637,350173
+35638,350038
+35639,350038
+35640,350094
+35640,350141
+35649,350141
+35650,350141
+35651,350141
+35660,350141
+36001,360388
+36002,360388
+36003,360388
+36004,360388
+36005,360388
+36110,360078
+36116,369026
+36117,369026
+36118,360078
+36119,360078
+36119,369026
+36120,369026
+36121,369026
+36130,369026
+36139,369026
+36140,360583
+36141,360583
+36142,360583
+36143,360388
+36150,360388
+36151,360388
+36152,360388
+36153,360388
+36154,360388
+36155,360388
+36156,360388
+36157,360388
+36158,360388
+36160,360388
+36161,360388
+36162,360388
+36163,360412
+36164,360388
+36190,360025
+36191,360025
+36192,360280
+36193,360025
+36194,360025
+36201,360577
+36202,360577
+36203,360577
+36204,360577
+36205,360577
+36206,360577
+36207,360577
+36208,360577
+36209,360577
+36210,360577
+36211,360577
+36212,360577
+36213,360577
+36214,360577
+36215,360577
+36216,360577
+36300,360031
+36307,360031
+36308,360031
+36309,360031
+36309,360366
+36310,360577
+36311,360335
+36312,360577
+36313,360577
+36314,360577
+36315,360577
+36316,360216
+36317,360577
+36318,360577
+36320,360451
+36330,360577
+36331,360577
+36340,360353
+36350,360353
+36360,360353
+36370,360353
+36378,360216
+36379,360353
+36380,360216
+36388,360216
+36389,360216
+36390,360577
+36391,360353
+36392,360577
+36393,360031
+36400,360391
+36410,360391
+36411,360391
+36412,360391
+36413,360391
+36414,360391
+36415,360335
+36416,360335
+36417,360335
+36418,360391
+36419,360335
+36420,360144
+36428,360144
+36429,360144
+36430,360010
+36435,360010
+36436,360010
+36437,360010
+36438,360010
+36439,360010
+36440,360340
+36446,360340
+36447,360340
+36448,360340
+36449,360340
+36450,360502
+36455,360502
+36456,360502
+36457,360502
+36458,360502
+36459,360502
+36460,360499
+36460,360558
+36470,360499
+36470,360545
+36471,360499
+36472,360499
+36474,360499
+36475,360391
+36475,360499
+36490,360144
+36491,360144
+36492,360144
+36493,360144
+36494,360010
+36500,360242
+36510,360242
+36511,360242
+36511,360470
+36512,360242
+36514,360209
+36514,360242
+36515,360242
+36516,360160
+36516,360242
+36517,360242
+36518,360160
+36518,360242
+36519,360242
+36520,360209
+36524,360209
+36525,360209
+36526,360209
+36527,360209
+36528,360209
+36529,360209
+36530,360470
+36537,360470
+36538,360470
+36539,360470
+36540,360524
+36543,360524
+36544,360524
+36545,360524
+36546,360524
+36547,360524
+36548,360524
+36549,360182
+36549,360524
+36550,360182
+36555,360182
+36556,360182
+36557,360182
+36558,360182
+36558,369026
+36559,360176
+36560,360182
+36567,360182
+36569,360182
+36570,360524
+36579,360524
+36580,360596
+36581,360596
+36582,360596
+36583,360242
+36583,360596
+36584,360176
+36585,360596
+36586,360596
+36587,360524
+36587,360596
+36588,360176
+36589,360524
+36590,360596
+36596,360242
+36596,360596
+36597,360596
+36598,360242
+36598,360596
+36599,360596
+36600,360600
+36610,360600
+36611,360600
+36612,360101
+36613,360600
+36614,360617
+36615,360059
+36616,360280
+36616,360617
+36617,360600
+36618,360600
+36619,360600
+36620,360617
+36626,369011
+36627,360617
+36628,360617
+36629,360600
+36629,360617
+36630,360062
+36633,360062
+36634,360062
+36635,360062
+36635,360464
+36636,360464
+36637,360280
+36638,360274
+36638,360464
+36639,360062
+36640,360448
+36645,360561
+36646,360561
+36647,360561
+36649,360448
+36650,360059
+36652,360405
+36653,360059
+36654,360059
+36655,360059
+36656,360059
+36657,360405
+36658,360176
+36658,360405
+36659,360059
+36660,360329
+36668,360329
+36669,360329
+36670,360157
+36675,360157
+36676,360176
+36677,360157
+36678,360157
+36679,360157
+36680,360176
+36681,360176
+36682,360176
+36683,360176
+36684,360176
+36685,360176
+36685,360427
+36686,360176
+36687,360176
+36688,360176
+36689,360176
+36690,360388
+36690,360530
+36691,360025
+36691,360530
+36692,360025
+36693,360451
+36700,360558
+36710,360558
+36711,360558
+36712,360558
+36713,360558
+36714,360558
+36715,360558
+36720,360558
+36729,360558
+36730,360545
+36739,360545
+36740,360545
+36746,360545
+36747,360545
+36748,360545
+36749,360545
+36750,360545
+36760,360486
+36770,360486
+36778,360486
+36779,360366
+36780,360237
+36788,360237
+36789,360237
+36790,360545
+36791,360545
+36792,360545
+36794,360366
+36800,360451
+36810,360451
+36811,360451
+36812,360451
+36813,360451
+36814,360451
+36815,360451
+36816,360451
+36817,360372
+36817,360451
+36818,360451
+36820,360433
+36826,360433
+36827,360433
+36828,360433
+36829,360433
+36830,360255
+36835,360255
+36836,360255
+36837,360255
+36838,360255
+36839,360255
+36840,360372
+36841,360372
+36842,360372
+36843,360372
+36844,360372
+36845,360195
+36846,360195
+36847,360195
+36848,360195
+36849,360195
+36850,360255
+36851,360195
+36852,360195
+36853,360255
+36853,360433
+36854,369026
+36855,369026
+36856,369026
+36857,369026
+36858,369026
+36859,369026
+36860,360427
+36861,360427
+36862,360427
+36863,360427
+36864,360427
+36865,360427
+36866,360427
+36867,360427
+36868,360427
+36869,360427
+36870,360307
+36872,360139
+36873,360139
+36874,360307
+36875,360195
+36875,360307
+36876,360139
+36876,360307
+36877,360139
+36877,360307
+36878,360139
+36878,360307
+36879,360307
+36880,360097
+36883,360097
+36884,360097
+36885,360097
+36885,360144
+36886,360097
+36887,360097
+36888,360097
+36889,360097
+36889,360139
+36890,360314
+36891,360427
+36892,360427
+36893,360427
+36895,360427
+36900,360268
+36910,360388
+36911,360268
+36912,360268
+36913,360268
+36914,360268
+36915,360268
+36920,360268
+36930,360046
+36936,330668
+36937,360046
+36938,360046
+36939,360046
+36940,360084
+36945,360084
+36946,360084
+36947,360084
+36948,360084
+36949,360084
+36950,360293
+36954,360293
+36955,360293
+36957,360293
+36958,360293
+36959,360293
+36960,360519
+36966,360519
+36967,360274
+36968,360274
+36969,360274
+36969,360519
+36970,360519
+36979,360519
+36980,360221
+36988,360221
+36989,360221
+36990,360519
+36991,360221
+36992,360412
+36993,360412
+36995,360412
+37001,372745
+37002,372745
+37003,372745
+37004,372745
+37005,372745
+37006,372745
+37007,372745
+37008,370858
+37008,372745
+37100,371703
+37110,370191
+37110,370346
+37110,372920
+37110,372992
+37110,373277
+37110,373795
+37111,370303
+37111,372262
+37111,372920
+37114,371204
+37114,371507
+37114,373697
+37115,370270
+37115,371670
+37115,371703
+37115,373420
+37115,373454
+37116,371703
+37117,371171
+37120,370877
+37120,371171
+37129,370877
+37129,371171
+37129,371298
+37129,371422
+37129,372301
+37130,370798
+37130,371165
+37130,371860
+37130,372702
+37130,373147
+37130,373659
+37140,373701
+37147,373603
+37148,371263
+37148,373296
+37148,373603
+37148,373701
+37149,373296
+37149,373701
+37150,373701
+37159,372626
+37159,373701
+37160,373646
+37169,373646
+37170,370877
+37170,371073
+37170,371514
+37170,371860
+37170,372534
+37170,372908
+37170,373454
+37170,373659
+37170,373809
+37171,371801
+37171,371980
+37172,373013
+37173,370042
+37173,373283
+37174,373646
+37175,372506
+37176,370286
+37181,370690
+37181,372409
+37183,372053
+37183,372091
+37183,372915
+37184,373625
+37185,373420
+37185,373548
+37186,370233
+37186,372091
+37186,372915
+37187,370233
+37187,371921
+37188,370325
+37188,370858
+37189,373625
+37190,373224
+37191,370704
+37191,370858
+37192,370877
+37193,370671
+37200,371358
+37208,371358
+37208,372894
+37209,370592
+37209,372416
+37210,373760
+37214,370652
+37214,372437
+37214,373408
+37214,373492
+37216,371067
+37216,372088
+37216,372480
+37216,372493
+37216,372571
+37217,370423
+37217,370589
+37217,371651
+37217,372800
+37217,373408
+37217,373610
+37217,373662
+37219,371540
+37219,372679
+37219,373776
+37220,371324
+37230,371605
+37240,371731
+37246,373111
+37247,372663
+37248,370037
+37250,370140
+37251,370140
+37251,371844
+37253,370140
+37253,371008
+37253,373816
+37254,371909
+37255,370444
+37256,371232
+37256,371916
+37256,373375
+37256,373678
+37257,373028
+37258,373505
+37259,372758
+37260,373739
+37267,373631
+37270,372856
+37271,370397
+37273,371015
+37281,371134
+37290,370520
+37291,370495
+37291,370554
+37291,371015
+37291,371377
+37292,372231
+37300,372468
+37310,371746
+37311,372967
+37312,370074
+37313,371784
+37314,372761
+37315,371797
+37316,370573
+37317,370227
+37317,370779
+37318,372323
+37318,372650
+37319,370830
+37320,373586
+37329,370129
+37329,373489
+37330,370384
+37336,371648
+37337,371106
+37337,372066
+37338,373757
+37339,373744
+37340,370205
+37340,372881
+37350,370166
+37400,370819
+37405,370824
+37406,372284
+37406,372565
+37406,373512
+37408,373821
+37409,373179
+37410,372395
+37418,370310
+37419,371285
+37419,372318
+37420,371529
+37426,372225
+37426,372297
+37427,372382
+37427,373473
+37428,372246
+37428,372259
+37428,373723
+37429,370172
+37429,370331
+37429,373185
+37430,372072
+37439,370922
+37439,372783
+37440,370401
+37440,370726
+37446,373533
+37447,372719
+37448,370726
+37448,370798
+37449,370877
+37449,371422
+37449,372301
+37450,371876
+37450,373441
+37451,370883
+37452,372112
+37452,373441
+37452,373467
+37453,371876
+37453,372915
+37453,373441
+37454,373467
+37455,372915
+37455,373467
+37456,373441
+37456,373467
+37460,370251
+37460,371494
+37460,372838
+37460,373147
+37465,372730
+37466,370251
+37466,372817
+37468,371067
+37468,372838
+37468,372936
+37468,373684
+37470,370969
+37470,372796
+37478,370093
+37478,370264
+37478,371152
+37479,372796
+37480,371400
+37481,371400
+37488,370153
+37488,370567
+37488,372647
+37488,373570
+37488,373599
+37490,370628
+37490,372549
+37492,372702
+37493,370592
+37493,371358
+37493,372416
+37494,371839
+37495,372679
+37496,370975
+37496,371839
+37497,370055
+37497,370861
+37497,371279
+37497,371456
+37497,373564
+37497,373599
+37500,371073
+37510,370021
+37510,371572
+37510,371818
+37510,372339
+37510,373034
+37515,371190
+37516,371572
+37520,370541
+37521,372698
+37522,373718
+37523,372455
+37524,372344
+37530,373071
+37531,373065
+37532,371993
+37540,371361
+37541,370917
+37542,372210
+37550,370747
+37551,371664
+37552,372587
+37553,372587
+37554,370068
+37555,370114
+37589,373219
+37590,371073
+37590,372040
+37591,370378
+37591,371073
+37591,373782
+37592,370969
+37592,372724
+37593,371073
+37594,371073
+37595,371073
+37596,373065
+37600,373163
+37606,372604
+37607,370418
+37607,372199
+37607,372685
+37607,373202
+37609,370508
+37609,370883
+37609,372112
+37609,373163
+37610,371942
+37617,371588
+37618,371968
+37619,371588
+37619,371762
+37621,370188
+37621,370457
+37621,370613
+37621,370994
+37621,371041
+37621,371778
+37624,370107
+37630,370687
+37638,373049
+37639,370264
+37640,370016
+37650,373052
+37656,370981
+37657,373132
+37658,371475
+37658,373551
+37659,370362
+37659,370900
+37659,372148
+37659,372869
+37660,371937
+37670,372989
+37671,372843
+37680,373317
+37682,372989
+37683,371955
+37684,371128
+37690,371358
+37694,370362
+37700,370460
+37700,371566
+37710,370785
+37711,371092
+37712,371612
+37712,372528
+37713,373322
+37714,370711
+37716,370802
+37716,371633
+37716,372127
+37717,370460
+37717,373436
+37718,370135
+37720,371020
+37720,372632
+37724,371020
+37724,371686
+37724,373343
+37726,371020
+37727,372014
+37727,372442
+37729,372632
+37730,371710
+37740,372973
+37748,372611
+37749,372186
+37749,373198
+37750,371036
+37750,372611
+37751,371469
+37752,373150
+37753,370359
+37754,370359
+37755,370359
+37756,370359
+37759,371591
+37759,373090
+37760,371725
+37762,371250
+37763,372875
+37764,373394
+37765,371247
+37765,371974
+37765,373258
+37766,371247
+37766,371319
+37766,371895
+37767,370896
+37768,371383
+37768,373006
+37770,371566
+37773,370634
+37774,371553
+37775,371330
+37776,372133
+37777,373126
+37778,371566
+37779,370248
+37779,372777
+37780,371882
+37781,372035
+37785,371438
+37786,371438
+37787,372007
+37787,372421
+37788,372376
+37789,370476
+37789,370606
+37789,371345
+37790,371396
+37791,372513
+37791,372590
+37791,373338
+37791,373415
+37792,372376
+37793,370460
+37794,372170
+37794,372822
+37795,370515
+37795,371566
+37795,372007
+37795,372552
+37796,370325
+37796,372091
+37797,370732
+37797,371857
+37798,371857
+37798,372029
+37798,373381
+37799,371302
+37799,372920
+37799,373230
+37799,373356
+37799,373381
+37800,370080
+37810,371481
+37820,372474
+37830,371089
+37840,373245
+37850,372151
+37860,371627
+37861,371149
+37863,370299
+37864,370299
+37865,371699
+37870,370212
+37871,372360
+37872,371417
+37873,371417
+37874,371211
+37874,371417
+37874,371481
+37881,373300
+37882,370080
+37882,372164
+37882,372357
+37882,373224
+37890,370080
+37891,371187
+37891,371443
+37891,371823
+37891,372421
+37891,373369
+37892,370080
+37892,371226
+37892,373104
+37893,370080
+37893,371211
+37893,371759
+37893,373224
+37893,373527
+37894,371759
+37894,373527
+37900,372941
+38001,380380
+38002,380380
+38003,380380
+38004,380380
+38005,380380
+38006,380380
+38007,380380
+38008,380380
+38009,380380
+38010,380380
+38107,380380
+38108,380239
+38108,380380
+38109,380321
+38109,380380
+38110,380380
+38111,380380
+38120,380380
+38129,380380
+38130,380380
+38139,380380
+38140,380380
+38150,380380
+38160,380380
+38170,380380
+38180,380380
+38190,380321
+38201,380239
+38202,380239
+38203,380239
+38204,380239
+38205,380239
+38206,380239
+38207,380239
+38208,380239
+38240,380239
+38250,380239
+38260,380239
+38270,380239
+38280,380466
+38289,380466
+38290,380321
+38291,380239
+38292,380466
+38293,380239
+38293,380466
+38294,380239
+38294,380380
+38296,380239
+38297,380239
+38297,380466
+38300,380260
+38310,380260
+38311,380260
+38312,380260
+38313,380260
+38314,380260
+38315,380260
+38320,380239
+38320,380380
+38329,380239
+38330,380239
+38340,380435
+38350,380435
+38355,380435
+38356,380435
+38357,380435
+38358,380435
+38359,380414
+38360,380414
+38370,380257
+38379,380257
+38380,380511
+38389,380511
+38390,380393
+38398,380393
+38399,380393
+38400,380282
+38410,380316
+38412,380316
+38413,380316
+38414,380316
+38415,380316
+38416,380316
+38417,380316
+38418,380316
+38419,380316
+38420,380342
+38428,380342
+38429,380342
+38430,380223
+38434,380223
+38435,380429
+38435,380440
+38438,380223
+38439,380223
+38440,380184
+38441,380184
+38449,380184
+38450,380159
+38458,380159
+38459,380159
+38460,380159
+38460,380429
+38470,380429
+38479,380103
+38479,380429
+38480,380103
+38489,380103
+38500,380201
+38508,380201
+38509,380048
+38509,380110
+38509,380201
+38510,380110
+38510,380321
+38520,380110
+38530,380110
+38540,380110
+38550,380048
+38560,380201
+38570,380125
+38579,380125
+38580,380051
+38588,380051
+38589,380051
+38590,380201
+38591,380201
+38592,380051
+38593,380051
+38594,380178
+38595,380178
+38600,380178
+38611,380178
+38612,380178
+38613,380526
+38614,380526
+38615,380012
+38615,380526
+38616,380178
+38617,380178
+38618,380178
+38620,380355
+38626,380064
+38627,380064
+38628,380355
+38629,380355
+38629,380526
+38630,380064
+38631,380064
+38632,380064
+38639,380355
+38640,380064
+38649,380064
+38650,380064
+38652,380064
+38660,380012
+38670,380012
+38677,380012
+38678,380012
+38679,380012
+38680,380197
+38683,380407
+38684,380407
+38685,380197
+38686,380197
+38687,380197
+38688,380197
+38689,380197
+38690,380407
+38700,380374
+38710,380086
+38711,380099
+38712,380086
+38712,380099
+38712,380374
+38713,380086
+38713,380374
+38714,380309
+38714,380374
+38715,380309
+38715,380374
+38720,380337
+38726,380070
+38727,380070
+38728,380162
+38729,380337
+38730,380532
+38738,380532
+38739,380532
+38740,380146
+38749,380146
+38750,380276
+38758,380276
+38759,380244
+38759,380276
+38760,380244
+38767,380244
+38768,380244
+38768,380276
+38769,380244
+38769,380276
+38770,380453
+38779,380453
+38780,380472
+38787,380162
+38788,380162
+38789,380295
+38789,380472
+38800,380368
+38801,380368
+38810,380033
+38811,380033
+38811,380368
+38812,380033
+38813,380033
+38820,380218
+38829,380218
+38830,380027
+38840,380504
+38849,380504
+38850,380504
+38852,380491
+38852,380504
+38869,380218
+38869,380504
+38870,380491
+38879,380491
+38890,380027
+38890,380218
+38891,380504
+38892,380491
+38900,380488
+38910,380488
+38911,380131
+38912,380131
+38913,380131
+38914,389013
+38915,380488
+38916,380488
+38917,389013
+39001,390759
+39002,390759
+39003,390759
+39004,390759
+39005,390759
+39006,390759
+39007,390759
+39008,390759
+39009,390759
+39010,390759
+39011,390759
+39012,390759
+39100,390731
+39108,390731
+39110,390731
+39120,390529
+39130,390400
+39140,390612
+39146,390612
+39150,390612
+39160,390612
+39170,390113
+39178,390377
+39180,390475
+39191,390113
+39192,390438
+39193,390067
+39193,390298
+39195,390067
+39197,390054
+39197,390797
+39200,390279
+39200,390591
+39210,390324
+39211,390324
+39212,390279
+39212,390324
+39213,390279
+39213,390324
+39213,390651
+39220,390942
+39229,390942
+39230,390942
+39232,090119
+39232,390942
+39248,390937
+39250,340323
+39250,390942
+39290,390171
+39291,390171
+39291,390279
+39292,390171
+39293,390171
+39294,390171
+39300,390876
+39310,390443
+39311,390187
+39312,390443
+39312,390540
+39313,390540
+39314,390762
+39315,390876
+39316,390876
+39317,390876
+39318,390443
+39320,390015
+39329,390015
+39330,390762
+39340,390857
+39350,390857
+39360,390762
+39360,390857
+39390,390762
+39400,390250
+39407,390211
+39408,390250
+39409,390699
+39410,390921
+39417,390651
+39417,390937
+39418,390921
+39419,390937
+39419,390942
+39420,390106
+39420,390469
+39430,390469
+39438,390469
+39439,390469
+39450,390041
+39451,390036
+39451,390041
+39460,390187
+39460,390250
+39470,390529
+39477,390529
+39478,390529
+39479,390529
+39490,390778
+39491,390279
+39491,390514
+39491,390703
+39491,390778
+39500,390128
+39506,390128
+39507,390128
+39507,390909
+39509,390128
+39509,390417
+39510,390149
+39510,390664
+39511,390149
+39513,390664
+39517,390860
+39518,390149
+39518,390860
+39520,390247
+39525,390015
+39526,390015
+39527,390686
+39528,390247
+39528,390916
+39530,390605
+39530,390762
+39538,390605
+39539,390015
+39539,390605
+39540,390801
+39547,390801
+39548,390801
+39548,390955
+39549,390330
+39549,390801
+39549,390955
+39550,390330
+39550,390345
+39551,390330
+39553,390633
+39554,390633
+39555,390895
+39556,390535
+39557,390535
+39558,390149
+39559,390633
+39560,390955
+39569,390955
+39570,390553
+39571,390134
+39572,390507
+39573,390134
+39574,390134
+39574,390507
+39575,390968
+39577,390968
+39580,390226
+39580,390494
+39580,390882
+39582,390152
+39583,390226
+39584,390226
+39585,390226
+39586,390152
+39587,390152
+39588,390152
+39589,390152
+39590,390015
+39590,390605
+39591,390128
+39591,390605
+39592,390128
+39592,390417
+39592,390916
+39593,390916
+39594,390330
+39594,390955
+39600,390165
+39608,390165
+39609,390165
+39610,390089
+39611,390089
+39612,390529
+39613,390089
+39618,390400
+39619,390422
+39620,390746
+39626,390746
+39627,390481
+39627,390746
+39630,391007
+39638,391007
+39639,390818
+39639,390980
+39640,390980
+39649,390980
+39650,390190
+39650,390746
+39660,390190
+39670,390566
+39679,390566
+39680,390263
+39682,390263
+39682,390396
+39682,390974
+39683,390710
+39683,390974
+39685,390974
+39686,390710
+39687,390396
+39688,390396
+39689,390784
+39690,390993
+39691,390784
+39692,390993
+39694,390746
+39696,390823
+39697,390263
+39698,390784
+39699,390263
+39700,390204
+39706,390204
+39707,390204
+39708,390204
+39709,390204
+39710,390422
+39715,390285
+39716,390285
+39718,390377
+39718,390422
+39719,390285
+39719,390400
+39720,390648
+39722,390377
+39723,390456
+39723,390648
+39724,390422
+39725,390456
+39726,390725
+39727,390377
+39728,390456
+39728,390670
+39728,390725
+39728,390839
+39730,390319
+39738,390319
+39738,390844
+39739,390319
+39740,390797
+39749,390797
+39750,390232
+39760,390092
+39761,390092
+39761,391029
+39762,391029
+39764,391029
+39766,391029
+39770,390358
+39776,390361
+39777,390358
+39778,390302
+39778,390383
+39780,390204
+39780,390302
+39786,390302
+39787,390302
+39788,390302
+39790,390092
+39791,390092
+39791,390844
+39792,390400
+39792,390422
+39793,390627
+39794,390627
+39795,390298
+39798,390204
+39800,390572
+39805,390572
+39805,390839
+39806,390839
+39807,390839
+39808,390839
+39809,390572
+39811,390572
+39812,390670
+39813,390073
+39813,390839
+39815,390572
+39815,390670
+39820,390383
+39840,390020
+39849,390020
+39850,390020
+39860,390588
+39880,390302
+39880,391014
+40001,401945
+40002,401945
+40003,401945
+40004,401945
+40005,401945
+40006,401945
+40100,401811
+40109,401811
+40120,400946
+40121,400175
+40122,401850
+40123,401850
+40130,401193
+40131,401057
+40132,409031
+40133,401180
+40134,401804
+40135,401850
+40136,401850
+40140,402167
+40141,400019
+40141,401885
+40142,401116
+40142,401229
+40142,401312
+40144,400289
+40144,401804
+40145,401351
+40146,401076
+40150,402252
+40151,401044
+40152,402332
+40153,401945
+40154,401945
+40160,402038
+40161,401399
+40162,400077
+40162,400931
+40163,401235
+40164,400208
+40165,401620
+40165,402249
+40170,400595
+40170,401575
+40170,401996
+40171,401885
+40171,402069
+40172,401569
+40173,400194
+40173,401569
+40173,401885
+40174,402206
+40175,401253
+40176,401500
+40176,402213
+40180,400267
+40180,400334
+40180,401575
+40180,401902
+40181,402081
+40182,400349
+40183,401364
+40184,400194
+40184,401636
+40184,401654
+40185,400215
+40185,400621
+40185,402120
+40185,402136
+40190,400313
+40191,400220
+40191,400772
+40192,400024
+40192,402056
+40193,401556
+40194,401556
+40194,402075
+40195,401945
+40196,401121
+40196,401945
+40197,409062
+40200,400637
+40210,400637
+40211,400637
+40212,401771
+40213,402192
+40214,401240
+40215,400637
+40216,400655
+40216,401667
+40217,400788
+40218,400848
+40219,402287
+40220,401497
+40230,400637
+40231,400637
+40232,400637
+40233,401497
+40234,401272
+40235,400138
+40236,401082
+40237,401749
+40238,402154
+40239,409059
+40240,400959
+40241,400637
+40242,400637
+40250,401348
+40260,400864
+40270,400432
+40280,401410
+40290,401734
+40291,400740
+40291,402000
+40292,400122
+40293,402347
+40294,401608
+40295,401826
+40296,401594
+40297,401790
+40298,400812
+40300,401958
+40310,401863
+40310,401958
+40311,401958
+40311,401983
+40312,400707
+40312,401958
+40313,402022
+40314,400910
+40314,402154
+40315,400479
+40315,400485
+40316,400518
+40317,401958
+40317,402108
+40318,400498
+40318,400609
+40318,401620
+40320,400404
+40330,400886
+40331,400447
+40331,401403
+40331,402189
+40332,400560
+40332,401832
+40340,400045
+40340,401930
+40350,400735
+40351,401924
+40352,401109
+40353,401001
+40354,400030
+40354,401581
+40354,409025
+40355,400899
+40356,400371
+40357,400925
+40358,400870
+40359,400833
+40359,402043
+40360,400411
+40370,402081
+40380,400404
+40380,401930
+40389,400061
+40389,400404
+40389,401847
+40389,401958
+40390,402141
+40391,400729
+40392,400352
+40392,400753
+40393,400753
+40394,402056
+40395,402228
+40396,400365
+40400,400766
+40408,401462
+40410,400766
+40418,400791
+40419,400766
+40420,401137
+40420,401811
+40420,409046
+40421,409010
+40422,401522
+40423,402115
+40423,402234
+40424,400766
+40430,400306
+40440,401850
+40441,401288
+40442,401765
+40443,401765
+40444,401266
+40445,401060
+40446,401214
+40447,401484
+40448,401850
+40449,401850
+40450,401386
+40460,401898
+40461,401386
+40462,400100
+40462,400156
+40463,400582
+40464,400582
+40465,401787
+40466,401207
+40466,401641
+40467,402017
+40468,401291
+40469,400693
+40470,401459
+40480,400576
+40490,401018
+40490,401039
+40491,400220
+40492,400181
+40493,402311
+40494,400220
+40494,401850
+40495,400680
+40495,401517
+40496,400576
+40496,400827
+40496,402304
+40500,401706
+40510,401706
+40511,401706
+40512,400241
+40512,401706
+40513,401713
+40514,400241
+40515,401728
+40516,400791
+40517,401706
+40517,401961
+40518,400791
+40520,400241
+40529,400058
+40529,400616
+40529,401689
+40530,400169
+40530,400254
+40531,400169
+40531,400714
+40531,401425
+40532,400096
+40532,401431
+40532,401446
+40533,400143
+40540,400805
+40540,401615
+40541,400997
+40541,402290
+40542,401305
+40542,401327
+40542,402290
+40550,400292
+40550,400523
+40551,400390
+40551,400557
+40552,400390
+40553,400390
+40554,401155
+40555,400083
+40556,401095
+40560,400328
+40567,401543
+40568,400328
+40569,400978
+40590,400450
+40590,401919
+40591,400539
+40592,400539
+40592,400544
+40593,400463
+40594,400241
+41001,410917
+41002,410917
+41003,410917
+41004,410917
+41005,410917
+41006,410917
+41007,410917
+41008,410917
+41009,410917
+41010,410917
+41011,410917
+41012,410917
+41013,410917
+41014,410917
+41015,410917
+41016,410917
+41017,410917
+41018,410917
+41019,410917
+41020,410917
+41089,410384
+41092,410917
+41100,410346
+41110,410166
+41111,410107
+41120,410444
+41130,410798
+41140,419022
+41150,419022
+41200,410055
+41200,410191
+41209,410055
+41210,410495
+41218,410495
+41219,410495
+41220,410191
+41230,410270
+41240,410093
+41250,410802
+41300,410819
+41309,410819
+41310,410188
+41318,411015
+41319,410055
+41320,410233
+41330,410922
+41330,410994
+41339,410248
+41340,410922
+41350,410994
+41359,410994
+41360,410732
+41370,410325
+41380,410021
+41388,410883
+41389,410883
+41390,410482
+41400,410397
+41409,410397
+41410,410248
+41420,410423
+41429,410227
+41430,410567
+41439,410423
+41439,410567
+41439,419017
+41440,410068
+41440,410554
+41449,410068
+41450,410331
+41460,410665
+41470,410747
+41471,410956
+41479,410785
+41489,410129
+41500,410042
+41510,410589
+41520,410042
+41520,411020
+41530,410652
+41540,410779
+41550,410016
+41560,410418
+41563,410397
+41564,410541
+41565,410378
+41565,410460
+41566,410726
+41567,410397
+41567,410508
+41568,410845
+41569,410613
+41570,410140
+41580,410264
+41590,410824
+41599,410140
+41599,410824
+41600,410114
+41610,410711
+41620,410606
+41630,410520
+41640,410687
+41650,410900
+41657,410378
+41658,410628
+41659,410900
+41660,411008
+41661,410080
+41670,410763
+41700,410384
+41701,410384
+41702,410384
+41703,410384
+41704,410384
+41710,410956
+41719,410956
+41720,410690
+41720,410956
+41727,410690
+41727,410956
+41728,410384
+41728,410690
+41728,410956
+41729,410205
+41730,410205
+41730,410325
+41740,410536
+41749,419038
+41750,410634
+41760,410362
+41770,410649
+41780,410359
+41800,410877
+41804,410671
+41805,410153
+41806,410943
+41807,410401
+41808,410981
+41809,410037
+41810,410303
+41820,410251
+41830,410515
+41840,410750
+41849,410129
+41850,410975
+41860,410457
+41870,410135
+41880,410830
+41888,410439
+41888,410883
+41889,410310
+41890,410310
+41897,410573
+41898,410310
+41898,410573
+41899,410310
+41900,410212
+41907,410969
+41908,410286
+41909,410858
+41910,410212
+41920,410861
+41927,410592
+41928,410704
+41930,410172
+41940,410938
+41950,410299
+41960,410476
+41970,410896
+41980,410074
+41989,410074
+42001,421736
+42002,421736
+42003,421736
+42004,421736
+42005,421736
+42100,420047
+42100,421340
+42107,420047
+42107,420341
+42107,420737
+42108,420047
+42108,420578
+42108,420755
+42108,421340
+42109,422175
+42110,421340
+42111,420119
+42111,420243
+42111,421926
+42112,420119
+42112,421003
+42112,421391
+42112,421427
+42112,421767
+42112,422083
+42113,420578
+42113,420933
+42113,421101
+42113,421887
+42113,421932
+42114,420623
+42114,421638
+42114,421963
+42120,420964
+42124,420888
+42124,421329
+42124,421849
+42125,420768
+42126,420217
+42126,420639
+42126,420768
+42127,420217
+42127,420964
+42127,421216
+42127,421715
+42128,420373
+42128,421834
+42129,420161
+42129,420413
+42129,420964
+42129,422138
+42130,420222
+42131,420222
+42132,421329
+42133,420063
+42134,420490
+42134,421545
+42135,420098
+42135,420449
+42136,421405
+42136,421871
+42137,420510
+42137,421486
+42137,421561
+42138,420222
+42138,420392
+42138,420644
+42140,421643
+42141,420807
+42141,421274
+42141,421681
+42142,420807
+42142,420814
+42143,420853
+42143,421274
+42144,420986
+42144,421904
+42145,420618
+42146,420011
+42146,420452
+42147,420452
+42148,420559
+42148,420709
+42148,421255
+42148,421789
+42149,421293
+42149,421736
+42150,422156
+42151,422156
+42152,421736
+42153,421600
+42155,421176
+42156,421176
+42156,421617
+42157,420695
+42158,420780
+42159,421600
+42161,420196
+42161,420275
+42162,420428
+42162,420872
+42162,420891
+42162,420948
+42163,420948
+42164,420196
+42165,421519
+42165,421596
+42165,421741
+42165,421911
+42165,422077
+42166,421741
+42167,420196
+42169,420196
+42169,421412
+42170,420891
+42171,420102
+42171,420281
+42171,420562
+42171,420829
+42171,422117
+42172,421353
+42172,422181
+42173,420145
+42173,421669
+42173,422169
+42174,420145
+42174,421656
+42174,422096
+42175,420601
+42175,421656
+42175,421963
+42176,421669
+42176,422096
+42177,422096
+42177,422181
+42180,420124
+42180,420177
+42180,420546
+42180,420657
+42180,422117
+42181,420546
+42181,420601
+42181,420927
+42181,421062
+42181,421078
+42181,421985
+42182,420130
+42182,420243
+42189,421280
+42189,421545
+42189,421754
+42189,422019
+42190,420951
+42190,421736
+42191,420716
+42191,421499
+42192,420951
+42192,422058
+42193,420367
+42193,420465
+42193,420951
+42193,421242
+42193,421852
+42193,421950
+42194,421583
+42194,421852
+42195,420434
+42196,420434
+42196,421950
+42200,420200
+42210,420308
+42211,420597
+42211,421118
+42212,420200
+42213,420238
+42213,420294
+42214,420294
+42214,422122
+42215,420835
+42216,420032
+42216,420294
+42216,420682
+42216,421237
+42216,421828
+42217,420682
+42218,420389
+42218,421307
+42218,421834
+42218,422045
+42220,420503
+42220,421195
+42222,420183
+42223,420682
+42223,421237
+42224,420793
+42224,421314
+42224,421720
+42225,420158
+42225,421084
+42225,421182
+42225,422024
+42230,421139
+42230,421157
+42240,421139
+42248,421139
+42249,420256
+42249,421139
+42250,420256
+42257,420256
+42258,420183
+42258,420256
+42259,420256
+42260,421675
+42269,420256
+42269,500153
+42269,501725
+42269,502151
+42269,502590
+42290,420716
+42290,420951
+42290,421499
+42291,421448
+42292,421448
+42293,420905
+42293,421448
+42293,421979
+42294,420905
+42294,420951
+42294,421448
+42294,421813
+42294,421979
+42295,420085
+42295,420294
+42296,421157
+42296,422194
+42300,420434
+42310,420434
+42311,420434
+42311,420525
+42311,420531
+42311,420840
+42311,421209
+42312,420434
+42312,422061
+42313,420434
+42313,420970
+42313,421451
+42313,421524
+42313,421950
+42314,421524
+42315,421524
+42315,421558
+42316,420434
+42316,421558
+42317,421789
+42317,421890
+42317,421947
+42318,420434
+42318,421947
+42320,421031
+42320,421622
+42328,420584
+42328,421031
+42328,421160
+42329,421031
+42330,421622
+42339,420866
+42340,421622
+42341,421059
+42341,421209
+42342,420866
+42342,421209
+42342,421622
+42343,421209
+42344,421209
+42344,421558
+42345,421622
+42350,420434
+42351,420079
+42351,420434
+42351,420853
+42351,421622
+42353,420079
+42360,420354
+42366,420320
+42366,420336
+42366,420354
+42366,421773
+42367,420354
+42367,420487
+42368,420269
+42368,420315
+42368,421530
+42368,421577
+42369,420354
+42391,420434
+42391,421622
+42392,422002
+43001,431482
+43002,431482
+43003,431482
+43004,431482
+43005,431482
+43006,431482
+43007,431482
+43008,431482
+43100,431482
+43110,439076
+43120,430477
+43130,431482
+43140,431093
+43141,431665
+43142,431346
+43143,430803
+43143,430831
+43144,431606
+43150,430430
+43151,431009
+43152,431037
+43153,430666
+43154,431444
+43155,431037
+43201,431233
+43202,431233
+43203,431233
+43204,431233
+43205,431233
+43206,431233
+43206,431711
+43207,431233
+43300,430923
+43310,430458
+43311,431671
+43312,431671
+43320,431188
+43320,431508
+43330,431299
+43340,430884
+43350,430311
+43360,430496
+43361,430960
+43362,430496
+43363,431573
+43364,430398
+43364,430574
+43364,430918
+43364,431166
+43365,430094
+43365,430154
+43370,430995
+43371,430751
+43372,430271
+43373,430350
+43374,431747
+43375,431732
+43376,431129
+43379,430960
+43380,431690
+43381,430075
+43382,430810
+43390,431286
+43391,431785
+43392,430424
+43393,430115
+43400,430862
+43410,430862
+43411,430290
+43412,431476
+43413,431016
+43414,430862
+43415,430862
+43420,431397
+43421,080214
+43421,431418
+43422,430213
+43423,431074
+43424,431423
+43425,430614
+43425,431016
+43425,431423
+43426,431303
+43427,430461
+43427,430733
+43427,431439
+43427,431592
+43428,431055
+43428,431423
+43429,430213
+43429,431055
+43429,431397
+43430,431763
+43431,080214
+43439,431589
+43439,431687
+43440,430542
+43442,430213
+43448,431763
+43449,431460
+43449,431763
+43450,431248
+43459,430862
+43459,430918
+43460,430056
+43470,431457
+43479,430038
+43480,431711
+43481,431711
+43490,431726
+43491,431613
+43495,430189
+43500,431554
+43510,431554
+43511,431495
+43512,430252
+43513,431212
+43514,430770
+43515,430635
+43516,430688
+43517,431554
+43519,431042
+43520,431331
+43527,431554
+43528,430081
+43529,431331
+43530,430043
+43540,431362
+43549,430141
+43550,431567
+43558,430629
+43558,431567
+43559,431567
+43560,430445
+43569,430043
+43570,431384
+43580,439018
+43590,431554
+43591,430069
+43592,430521
+43593,431021
+43594,431068
+43595,431172
+43596,430712
+43597,430189
+43635,430094
+43700,431634
+43710,431401
+43711,430206
+43712,430748
+43713,431378
+43714,430017
+43714,430901
+43715,431205
+43716,430022
+43717,430287
+43718,430022
+43718,430799
+43718,430901
+43718,431401
+43719,430249
+43720,430167
+43730,430555
+43730,430764
+43736,430580
+43736,430825
+43736,430859
+43737,430691
+43737,430727
+43737,431541
+43738,430234
+43739,431140
+43740,430939
+43746,431508
+43747,430265
+43747,430846
+43748,430672
+43749,430653
+43750,430607
+43760,430957
+43761,431114
+43762,431264
+43763,430976
+43763,431649
+43764,430430
+43765,431444
+43770,430944
+43771,431270
+43772,430332
+43773,430173
+43773,430537
+43774,431153
+43774,431515
+43775,430764
+43776,430402
+43777,430705
+43780,430640
+43781,430568
+43782,431750
+43783,431107
+43784,430483
+43785,430326
+43786,430228
+43787,430419
+43790,431251
+43791,430192
+43792,431520
+43792,431779
+43800,431613
+43810,431080
+43811,430363
+43811,430593
+43812,430347
+43812,430897
+43812,430901
+43812,431191
+43812,431325
+43813,430108
+43813,431613
+43814,431704
+43815,430017
+43815,430923
+43816,431205
+43817,431135
+43820,430379
+43830,431536
+43839,430509
+43840,439057
+43850,430385
+43860,430136
+43870,430141
+43877,439023
+43878,430786
+43879,430141
+43879,430786
+43879,439023
+43880,431634
+43881,430516
+43882,430379
+43883,431310
+43884,430304
+43885,431359
+43886,431227
+43886,431652
+43887,430982
+43890,431628
+43891,431628
+43892,430923
+43893,430120
+43894,439039
+43895,439060
+43896,439044
+43897,431554
+44001,442160
+44002,442160
+44003,442160
+44100,440099
+44110,441177
+44111,442293
+44112,442353
+44113,441639
+44114,441196
+44114,442577
+44115,441200
+44120,442157
+44121,440099
+44121,440414
+44121,441999
+44121,442160
+44122,441275
+44122,442046
+44122,442433
+44123,440099
+44123,441275
+44123,442176
+44123,442499
+44124,441597
+44125,441986
+44126,440526
+44126,441098
+44130,442638
+44131,442643
+44132,441354
+44132,442340
+44133,441964
+44133,442340
+44134,440197
+44134,440928
+44134,442182
+44134,442502
+44140,440598
+44140,440602
+44141,440889
+44141,441490
+44141,442366
+44142,441269
+44143,441063
+44144,442622
+44145,440218
+44146,441562
+44147,440743
+44150,440178
+44155,440012
+44155,440550
+44155,441853
+44156,440051
+44156,441308
+44157,440178
+44157,441238
+44158,440178
+44159,441503
+44160,440162
+44161,440971
+44161,441755
+44161,441829
+44162,440949
+44162,441814
+44162,442160
+44163,441829
+44164,441367
+44164,442669
+44165,440282
+44166,442003
+44167,440532
+44168,440624
+44168,441158
+44169,440934
+44169,441281
+44169,441487
+44190,442160
+44191,440547
+44191,440645
+44191,440892
+44191,442391
+44192,442160
+44193,440820
+44193,442160
+44194,440756
+44195,442160
+44200,440504
+44210,440504
+44211,440504
+44212,440244
+44212,441256
+44212,441389
+44213,441256
+44213,441840
+44220,440355
+44220,440504
+44221,442221
+44222,442221
+44223,442561
+44230,442195
+44231,440658
+44232,440393
+44233,441682
+44300,441531
+44310,441970
+44311,442583
+44312,441695
+44313,441695
+44314,440429
+44315,441905
+44320,440337
+44330,440472
+44340,441124
+44350,440563
+44357,440342
+44357,440504
+44358,440854
+44358,442274
+44359,440563
+44359,442209
+44360,442097
+44366,441742
+44367,440453
+44368,441578
+44368,441891
+44369,440184
+44369,441807
+44370,440769
+44380,442617
+44381,442280
+44382,440033
+44382,442139
+44382,442268
+44390,442078
+44391,440504
+44392,440504
+44393,442329
+44394,440466
+44394,442519
+44395,440070
+44396,442160
+44397,442160
+44400,441584
+44409,440488
+44409,440700
+44410,441601
+44411,441933
+44412,441373
+44413,442448
+44414,441657
+44415,441130
+44415,442010
+44420,441434
+44421,440260
+44421,442314
+44422,440027
+44422,441434
+44423,441434
+44424,440103
+44424,442101
+44430,442405
+44431,440125
+44432,440125
+44433,441217
+44440,441032
+44441,441032
+44450,441927
+44459,440547
+44460,442101
+44477,440103
+44478,441716
+44479,441716
+44480,442062
+44490,441011
+44491,440321
+44491,440906
+44491,441336
+44492,440239
+44492,440368
+44492,441026
+44492,441320
+44493,441389
+44493,441525
+44494,442524
+44495,440504
+44496,440504
+44497,441644
+44497,442084
+44500,440257
+44509,440223
+44510,441912
+44511,441912
+44520,442059
+44530,441222
+44540,440086
+44547,440295
+44548,441721
+44549,440064
+44550,440146
+44555,441835
+44556,440407
+44556,441510
+44557,440873
+44557,441465
+44557,441737
+44558,441004
+44558,441161
+44559,440965
+44559,442600
+44560,440717
+44561,442123
+44562,440717
+44563,440440
+44563,440717
+44564,441452
+44565,440717
+44566,440048
+44566,441780
+44570,440511
+44579,441079
+44580,442464
+44586,441793
+44587,441145
+44588,440374
+44589,441872
+44589,441948
+44590,440316
+44591,442656
+44591,500212
+44592,440677
+44592,441294
+44593,442372
+44594,442412
+44595,442470
+44596,441085
+44597,442255
+44600,440131
+44610,440491
+44620,442451
+44621,441471
+44622,440276
+44623,440867
+44624,441413
+44630,440683
+44640,440808
+44640,442216
+44641,442307
+44642,440380
+44643,440619
+44643,441183
+44650,441050
+44651,440775
+44652,441546
+44653,442237
+44660,440131
+44661,440131
+44700,441559
+44706,440661
+44707,440630
+44707,442681
+44708,441768
+44709,441559
+44709,442242
+44710,441951
+44711,441119
+44712,441951
+44720,441774
+44721,440201
+44721,440854
+44730,441449
+44730,441774
+44740,442675
+44741,441102
+44742,442675
+44750,441449
+44760,442388
+44761,442388
+44769,442388
+44770,440990
+44779,440990
+44780,441618
+44790,440435
+44791,440841
+44791,441243
+44791,441428
+44792,440110
+44792,441315
+44792,441676
+44793,442031
+44793,442118
+45001,451685
+45002,451685
+45003,451685
+45004,451685
+45005,451685
+45006,451685
+45007,451685
+45008,451685
+45100,451632
+45109,451246
+45109,451632
+45110,450015
+45111,450529
+45112,450232
+45112,451127
+45113,450572
+45114,450968
+45120,450980
+45120,451534
+45121,450980
+45122,450165
+45123,450839
+45124,450422
+45125,451409
+45126,450553
+45126,450968
+45127,451822
+45128,450980
+45130,451133
+45138,451133
+45139,451133
+45140,451127
+45150,451091
+45159,450759
+45159,451091
+45160,450703
+45161,451339
+45162,451164
+45163,451745
+45164,450670
+45165,451513
+45170,451528
+45179,451941
+45180,450319
+45181,450324
+45182,450152
+45183,451838
+45190,451072
+45191,451072
+45200,450818
+45210,452052
+45211,451455
+45211,452052
+45212,450857
+45213,451278
+45214,450475
+45215,451992
+45216,450383
+45217,451761
+45220,452013
+45221,450648
+45222,450211
+45223,451611
+45224,451611
+45225,450187
+45230,451199
+45240,450020
+45250,450149
+45260,451967
+45270,451029
+45276,451035
+45280,451225
+45290,451284
+45291,450514
+45292,451967
+45300,451210
+45310,451989
+45311,450591
+45312,450263
+45313,452028
+45314,450507
+45340,451231
+45350,451151
+45360,451954
+45370,451565
+45370,451954
+45400,451066
+45400,451421
+45410,451936
+45420,450128
+45430,450942
+45440,451908
+45450,451246
+45460,450909
+45460,451442
+45470,452006
+45479,450921
+45480,451777
+45480,452006
+45500,451730
+45510,450664
+45511,450778
+45512,451344
+45513,451571
+45514,451437
+45515,450916
+45516,451360
+45517,450627
+45518,450699
+45519,451186
+45520,451881
+45521,450247
+45522,450036
+45523,450041
+45524,451474
+45525,450187
+45526,459016
+45529,452034
+45530,451587
+45531,450361
+45532,450396
+45533,450377
+45534,450955
+45540,450605
+45540,450664
+45541,451007
+45542,450400
+45543,451262
+45544,450588
+45551,450801
+45560,451259
+45567,450823
+45568,451843
+45569,451259
+45569,451698
+45570,451382
+45571,450073
+45571,450171
+45572,451724
+45572,451796
+45573,451112
+45574,450651
+45575,450106
+45576,450106
+45576,451035
+45577,451395
+45578,450330
+45580,450285
+45580,450302
+45588,450731
+45589,450298
+45590,450882
+45591,452049
+45592,450250
+45593,450190
+45594,451894
+45600,451259
+45600,451650
+45610,451105
+45611,451301
+45612,451817
+45613,451650
+45614,451650
+45620,451053
+45621,451604
+45622,450974
+45630,451148
+45631,450113
+45632,451590
+45633,450797
+45634,450226
+45635,451647
+45636,450937
+45637,450494
+45638,451323
+45640,451442
+45641,450438
+45642,450358
+45643,450686
+45644,451203
+45645,450746
+45646,451549
+45650,450633
+45651,451702
+45652,451468
+45653,451552
+45654,451506
+45660,450204
+45661,450092
+45662,450067
+45662,450974
+45663,450725
+45664,450725
+45670,451088
+45671,451626
+45672,451626
+45673,451626
+45674,451480
+45675,451480
+45676,451480
+45677,451480
+45678,451480
+45680,450469
+45682,450481
+45683,450456
+45684,450860
+45685,451040
+45686,450285
+45687,450054
+45690,451376
+45691,451376
+45692,450895
+45693,450895
+45694,451650
+45695,450285
+45700,450535
+45710,450876
+45720,450345
+45730,451875
+45740,451973
+45749,451915
+45750,450784
+45760,450710
+45770,451493
+45780,451663
+45789,451758
+45790,451416
+45800,451421
+45810,451920
+45820,451679
+45830,451014
+45840,451357
+45850,451869
+45860,451856
+45870,450844
+45880,450540
+45890,450279
+45900,450134
+45908,450089
+45908,451297
+45909,451571
+45910,450612
+45917,451170
+45918,451318
+45919,450762
+45920,451719
+45930,450993
+45940,451800
+45950,450417
+45960,450566
+46001,462508
+46002,462508
+46003,462508
+46004,462508
+46005,462508
+46006,462508
+46007,462508
+46008,462508
+46009,462508
+46010,462508
+46011,462508
+46012,462508
+46013,462508
+46014,461108
+46014,462508
+46015,462508
+46016,462378
+46016,462508
+46017,462508
+46018,462508
+46019,462508
+46020,462508
+46021,462508
+46022,462508
+46023,462508
+46024,462508
+46025,462508
+46026,462508
+46035,462508
+46100,460787
+46110,461350
+46111,462166
+46112,462508
+46113,461712
+46114,462606
+46115,460253
+46116,461712
+46117,460706
+46118,462286
+46119,461786
+46120,460137
+46130,461640
+46131,460749
+46131,462508
+46132,460327
+46133,461666
+46134,461265
+46135,460095
+46135,461173
+46135,462508
+46136,461770
+46137,461995
+46138,462074
+46139,461995
+46140,460018
+46140,460924
+46140,462016
+46141,460924
+46143,462423
+46145,462520
+46146,460885
+46147,460879
+46148,460305
+46149,461347
+46160,461477
+46162,460386
+46162,461419
+46163,461614
+46164,461918
+46165,460765
+46166,461332
+46167,461120
+46168,461496
+46168,462346
+46169,461825
+46169,469024
+46170,462589
+46171,460898
+46172,460180
+46173,460500
+46174,461141
+46175,460790
+46175,461141
+46176,461069
+46177,462476
+46178,460364
+46178,462418
+46178,462628
+46179,460410
+46180,460517
+46181,460673
+46182,461901
+46183,461167
+46184,469030
+46185,462021
+46190,462140
+46191,462567
+46192,461727
+46193,461764
+46194,462129
+46195,461568
+46196,460930
+46197,460266
+46198,461154
+46198,461672
+46199,460996
+46200,461862
+46210,461939
+46220,461944
+46229,461944
+46230,460312
+46240,460850
+46250,460193
+46250,462205
+46260,460116
+46266,460403
+46267,461304
+46268,460174
+46269,462460
+46270,462573
+46290,460155
+46291,460636
+46292,461629
+46293,460168
+46293,460538
+46294,460847
+46294,461000
+46295,462251
+46295,462362
+46300,462495
+46310,462541
+46311,462541
+46312,462495
+46313,462495
+46314,461290
+46315,460958
+46317,462592
+46320,462325
+46321,462495
+46330,460804
+46340,462135
+46350,461081
+46351,461069
+46351,462135
+46352,462135
+46353,462135
+46354,462135
+46355,462135
+46356,462135
+46357,462135
+46360,460771
+46367,462613
+46368,461580
+46369,460121
+46370,461115
+46380,461094
+46388,461363
+46389,462482
+46390,462135
+46391,462135
+46392,462299
+46393,461483
+46400,461056
+46408,461056
+46409,461056
+46410,462359
+46417,462153
+46418,461252
+46419,462359
+46420,462359
+46430,462331
+46439,462331
+46440,460351
+46450,460608
+46460,462303
+46469,460654
+46470,460076
+46470,460945
+46470,461653
+46500,462205
+46501,461923
+46510,461038
+46511,460581
+46512,461228
+46514,460522
+46515,461017
+46520,462205
+46529,460826
+46530,462055
+46530,462205
+46540,462042
+46550,460142
+46560,461635
+46590,461206
+46591,460109
+46592,462248
+46593,460288
+46594,460240
+46595,462457
+46600,460174
+46610,461398
+46611,460641
+46612,460983
+46613,461555
+46614,461234
+46620,460446
+46621,462634
+46622,462397
+46623,461445
+46624,461424
+46625,460977
+46630,461287
+46635,461249
+46640,461705
+46650,460811
+46659,460811
+46660,461607
+46666,462093
+46667,460459
+46668,461516
+46668,462093
+46669,461192
+46669,462227
+46669,462270
+46670,462037
+46680,460291
+46687,460082
+46688,461976
+46689,469045
+46690,460207
+46691,462515
+46692,461748
+46701,461311
+46702,461311
+46703,460667
+46710,461136
+46711,461402
+46711,461688
+46712,461957
+46713,460484
+46714,461884
+46715,460370
+46716,462080
+46717,461271
+46720,462554
+46721,461982
+46722,460556
+46722,460615
+46723,460348
+46724,461878
+46725,460235
+46725,462188
+46726,460333
+46726,460919
+46726,461537
+46727,462114
+46728,461311
+46729,460023
+46730,461311
+46740,460832
+46749,460832
+46750,462310
+46758,460462
+46760,462384
+46770,461430
+46780,461810
+46790,461461
+46791,460594
+46792,460174
+46792,460832
+46800,461458
+46810,461189
+46811,461189
+46812,460425
+46813,460961
+46814,461542
+46814,462439
+46815,461574
+46816,461542
+46816,462172
+46817,461213
+46818,461379
+46818,462536
+46819,461803
+46820,460399
+46821,461075
+46822,460734
+46823,461799
+46824,462068
+46825,460713
+46830,460620
+46837,461043
+46838,460575
+46838,461509
+46838,461960
+46839,460497
+46839,460692
+46839,461385
+46839,462264
+46840,462009
+46841,460902
+46842,460431
+46842,461751
+46842,462191
+46842,462401
+46843,462107
+46843,462212
+46844,460569
+46844,461859
+46850,461831
+46860,460060
+46868,460478
+46869,460039
+46869,460689
+46869,460863
+46870,461846
+46880,460728
+46890,460044
+46891,460752
+46891,461897
+46892,461733
+46893,460272
+46894,461326
+46900,462444
+46901,462444
+46909,462444
+46910,460229
+46910,460543
+46910,461521
+46910,462233
+46920,461691
+46930,461022
+46940,461593
+46950,461108
+46960,460214
+46970,460057
+46980,461901
+46988,461901
+46989,461901
+47001,471868
+47002,471868
+47003,471868
+47004,471868
+47005,471868
+47006,471868
+47007,471868
+47008,471868
+47009,471868
+47010,471868
+47011,471868
+47012,471868
+47013,471868
+47014,471868
+47015,471868
+47016,471868
+47017,471868
+47018,471868
+47100,471659
+47110,470360
+47111,472103
+47112,471132
+47113,471659
+47113,472131
+47114,470838
+47114,471662
+47114,471907
+47115,470170
+47115,470186
+47116,471219
+47120,470973
+47129,470014
+47129,470148
+47129,471420
+47129,471492
+47129,471684
+47130,471610
+47131,470719
+47131,471356
+47131,471914
+47131,472162
+47132,471467
+47132,471659
+47133,470817
+47133,471880
+47134,470698
+47134,471512
+47134,471718
+47134,472257
+47140,470761
+47140,471868
+47150,471935
+47151,470231
+47152,471868
+47153,470761
+47153,471868
+47155,471551
+47160,470066
+47160,471224
+47161,471757
+47162,470072
+47164,471454
+47165,470323
+47166,471940
+47169,470072
+47169,470761
+47169,471757
+47170,471338
+47171,470442
+47172,472244
+47173,471052
+47174,472218
+47175,471179
+47176,470611
+47177,470091
+47180,472064
+47181,472005
+47182,470474
+47183,471697
+47184,470626
+47185,470344
+47186,470604
+47190,472309
+47191,470513
+47192,470416
+47193,470528
+47194,470663
+47194,470989
+47195,470105
+47196,471111
+47197,471868
+47200,471842
+47209,471441
+47210,470112
+47219,471006
+47219,471415
+47219,471473
+47220,471245
+47230,470822
+47231,471599
+47232,471929
+47238,470053
+47238,470745
+47238,470822
+47239,472184
+47240,471821
+47250,470908
+47260,470278
+47270,470506
+47280,470552
+47281,470552
+47282,471744
+47283,471300
+47290,470571
+47300,471147
+47310,470301
+47311,470339
+47311,470632
+47312,470127
+47313,470549
+47313,471147
+47313,471701
+47313,471723
+47314,470777
+47314,470800
+47314,471147
+47315,471163
+47316,470590
+47316,471185
+47316,471198
+47316,471375
+47317,470225
+47317,470565
+47317,471436
+47317,471809
+47318,470382
+47318,471065
+47318,471147
+47319,471317
+47319,471701
+47320,470936
+47320,471757
+47328,471104
+47329,470395
+47329,471953
+47329,472260
+47330,471548
+47330,471739
+47331,471548
+47340,471570
+47350,471296
+47359,471034
+47359,471795
+47360,471277
+47400,470856
+47410,471049
+47418,470029
+47418,470685
+47418,470796
+47419,470088
+47419,470210
+47419,471261
+47420,470758
+47430,471126
+47440,470534
+47440,470875
+47450,471230
+47451,471049
+47452,472321
+47453,471322
+47454,470954
+47460,470318
+47461,470259
+47462,470203
+47463,471893
+47464,471028
+47465,472282
+47470,470357
+47480,470650
+47490,471394
+47491,471586
+47492,470856
+47492,471394
+47493,470856
+47493,471564
+47494,470493
+47494,470679
+47494,470783
+47494,471381
+47500,471013
+47509,471394
+47510,470040
+47511,471603
+47512,470376
+47513,471678
+47520,470455
+47529,472048
+47530,471505
+47600,472146
+47606,470702
+47606,472033
+47607,470730
+47607,471991
+47608,470262
+47608,472086
+47608,472197
+47609,470647
+47609,471533
+47609,471874
+47609,471988
+47610,472316
+47620,472178
+47630,470992
+47639,472125
+47640,471150
+47641,470437
+47650,470587
+47664,470468
+47670,470151
+47670,471760
+47671,471776
+47672,471837
+47673,471283
+47673,471343
+47674,470133
+47675,470246
+47675,472099
+47676,472295
+47680,470843
+47686,470894
+47687,470881
+47688,470915
+47689,470284
+47689,470409
+47689,471408
+47689,472110
+47690,471855
+47691,470941
+47692,470480
+47800,470869
+47801,471868
+47810,472051
+47811,470967
+47811,471527
+47812,471090
+47813,470199
+47813,472223
+47814,470035
+47814,472159
+47815,471625
+47815,471966
+47816,470869
+47816,470920
+47816,471816
+47820,471972
+47830,471646
+47831,471258
+47832,470297
+47840,472070
+47850,472201
+47851,471489
+47860,472239
+47862,471782
+47870,471631
+47880,470164
+47882,470421
+47883,472276
+48001,480209
+48002,480209
+48003,480118
+48003,480209
+48004,480209
+48005,480209
+48006,480209
+48007,480209
+48008,480209
+48009,480209
+48010,480209
+48011,480209
+48012,480209
+48013,480209
+48014,480209
+48015,480209
+48100,480694
+48110,480405
+48111,480530
+48112,480617
+48113,480388
+48114,480101
+48115,480669
+48116,480353
+48120,480643
+48120,480694
+48130,480123
+48140,480062
+48140,480947
+48141,480268
+48142,480237
+48143,480932
+48144,480242
+48145,480887
+48150,489047
+48160,489011
+48170,489011
+48170,489050
+48180,489032
+48190,480865
+48191,480372
+48191,480865
+48192,480427
+48194,480427
+48195,480524
+48196,480813
+48200,480274
+48200,480391
+48210,480720
+48212,480596
+48213,480502
+48215,489102
+48220,480010
+48230,480329
+48240,480195
+48249,480195
+48250,480950
+48260,480340
+48269,480583
+48270,480600
+48276,480600
+48277,480307
+48278,480600
+48278,489158
+48280,480577
+48287,480280
+48288,480499
+48289,480046
+48289,480470
+48289,480638
+48291,480911
+48292,480911
+48300,480464
+48309,480792
+48310,480314
+48311,480280
+48311,480486
+48312,489098
+48313,480335
+48314,480412
+48315,489079
+48320,489119
+48330,480558
+48340,480031
+48348,480031
+48350,480216
+48360,480681
+48370,480176
+48380,480708
+48381,480078
+48382,480622
+48383,489145
+48390,480926
+48390,489145
+48391,480675
+48391,489145
+48392,480675
+48393,489063
+48394,489085
+48395,480767
+48410,480754
+48419,480754
+48450,480293
+48460,480741
+48480,480118
+48480,480979
+48490,480656
+48498,480059
+48498,480097
+48499,480255
+48500,480025
+48508,489130
+48510,480806
+48520,480806
+48530,480834
+48540,480025
+48550,480715
+48600,480852
+48610,480890
+48620,480433
+48620,480561
+48620,480773
+48630,480433
+48640,480160
+48650,480144
+48700,480736
+48710,480182
+48800,480904
+48810,489124
+48820,480451
+48830,480451
+48840,480451
+48850,480963
+48850,489026
+48860,480963
+48869,480865
+48869,480963
+48870,480865
+48879,480084
+48880,480871
+48890,480221
+48891,480221
+48895,480519
+48901,480139
+48902,480139
+48903,480139
+48910,480849
+48920,480789
+48930,480448
+48940,480545
+48950,489026
+48960,480366
+48970,480157
+48980,480828
+48990,480448
+48991,480448
+48992,480448
+48993,480448
+49001,492755
+49002,492755
+49003,492755
+49004,492755
+49005,492755
+49006,492755
+49007,492755
+49008,492755
+49009,492755
+49010,492755
+49011,492755
+49012,492755
+49013,492755
+49014,492755
+49015,492755
+49016,492755
+49017,492755
+49018,492755
+49019,492755
+49020,492755
+49021,492755
+49022,492755
+49023,492755
+49024,492755
+49025,492755
+49026,492755
+49027,492755
+49028,492755
+49029,492755
+49030,492755
+49031,492755
+49032,492755
+49100,492601
+49110,490436
+49120,491197
+49121,491218
+49121,491223
+49122,492222
+49123,490224
+49124,490163
+49125,490473
+49126,490147
+49126,492465
+49127,490420
+49127,491602
+49128,490356
+49129,491906
+49129,492660
+49130,491086
+49131,492525
+49132,492639
+49133,492320
+49134,492487
+49135,491756
+49135,491854
+49135,492367
+49136,492428
+49137,492428
+49137,492682
+49140,492145
+49141,490631
+49142,491414
+49143,491550
+49144,491867
+49145,491532
+49145,492026
+49146,491380
+49147,491380
+49148,491337
+49148,491645
+49149,491239
+49150,491257
+49151,490104
+49151,490394
+49151,490907
+49152,492102
+49153,492341
+49154,491466
+49155,490245
+49156,490935
+49157,491033
+49158,492452
+49159,492618
+49160,490369
+49161,492026
+49162,490090
+49162,491429
+49163,491110
+49164,491355
+49164,492373
+49165,491355
+49165,492373
+49166,492471
+49167,491355
+49170,491511
+49171,491526
+49172,491526
+49173,491526
+49174,490776
+49174,491526
+49176,491491
+49177,490052
+49177,490087
+49177,491260
+49177,491491
+49178,491491
+49180,490071
+49180,492755
+49181,492695
+49182,491949
+49183,491949
+49190,491276
+49191,490441
+49191,490966
+49191,491276
+49191,491488
+49192,490953
+49192,491781
+49192,492275
+49193,492755
+49200,490230
+49210,490087
+49211,490230
+49211,490375
+49211,491808
+49211,491836
+49212,491368
+49213,490646
+49214,490646
+49215,490230
+49215,491012
+49216,490230
+49216,490776
+49220,490659
+49230,492644
+49231,492644
+49232,492644
+49240,492644
+49250,492406
+49250,492657
+49251,490126
+49251,490880
+49252,492217
+49253,491316
+49254,491244
+49255,490230
+49260,490230
+49270,491526
+49271,491526
+49272,491526
+49280,491526
+49281,491526
+49300,491661
+49310,491218
+49317,490489
+49317,491125
+49318,491218
+49318,491504
+49318,491775
+49319,491125
+49319,491342
+49320,491435
+49320,491794
+49321,491435
+49321,491794
+49322,491435
+49322,491815
+49323,491815
+49324,490179
+49324,491815
+49325,490179
+49325,490489
+49326,491775
+49327,490570
+49327,491201
+49327,492256
+49330,491775
+49330,492315
+49331,490322
+49331,492315
+49332,490338
+49332,492315
+49333,491677
+49333,492047
+49333,492597
+49334,490662
+49335,490662
+49335,490678
+49336,491393
+49337,490678
+49337,491393
+49340,490972
+49341,490625
+49341,491342
+49342,490625
+49342,491815
+49343,490972
+49344,491342
+49345,490625
+49346,490625
+49347,490625
+49348,490179
+49349,491815
+49350,490855
+49352,490855
+49357,491794
+49357,491892
+49358,491892
+49358,492243
+49359,491892
+49359,492243
+49360,490855
+49361,490855
+49362,490855
+49390,491661
+49390,491794
+49391,491453
+49392,491453
+49393,491661
+49394,490505
+49394,491743
+49395,490505
+49395,490855
+49396,490505
+49400,490816
+49410,490809
+49419,490408
+49420,492269
+49430,492413
+49440,490343
+49450,492308
+49500,490034
+49510,490718
+49511,490718
+49512,490718
+49512,490874
+49512,491722
+49513,490718
+49513,491841
+49514,490034
+49514,490718
+49514,491579
+49515,491738
+49515,492737
+49516,492238
+49517,490034
+49517,492238
+49517,492737
+49518,490034
+49518,491738
+49518,492238
+49519,491722
+49519,492238
+49520,490697
+49521,490697
+49522,491048
+49523,492098
+49524,492098
+49524,492737
+49525,491738
+49525,492098
+49530,490533
+49539,490065
+49539,490868
+49539,492510
+49540,490684
+49540,490991
+49540,491380
+49541,490988
+49542,490874
+49542,492336
+49543,490988
+49550,490684
+49559,490874
+49560,491048
+49561,491048
+49562,492623
+49563,492623
+49570,491005
+49571,490940
+49572,490940
+49573,491005
+49574,491005
+49580,491547
+49582,491547
+49583,491624
+49590,490760
+49590,491146
+49591,491769
+49592,491769
+49592,492085
+49593,491103
+49594,491103
+49600,490219
+49610,490185
+49610,492063
+49618,490795
+49618,492063
+49618,492449
+49619,490185
+49619,492063
+49620,492004
+49621,490929
+49621,492063
+49622,490283
+49622,490929
+49622,491700
+49622,491717
+49622,492063
+49623,491717
+49623,492562
+49624,491178
+49624,492050
+49625,492050
+49626,490338
+49626,491162
+49626,492011
+49627,490338
+49628,491934
+49629,490277
+49630,492503
+49638,491658
+49638,491696
+49639,490551
+49639,491683
+49639,492161
+49640,490467
+49650,491889
+49660,490415
+49660,492578
+49670,490821
+49680,491928
+49680,492294
+49690,491873
+49691,491873
+49692,491131
+49693,490757
+49693,491282
+49694,491099
+49695,492434
+49696,490049
+49696,490150
+49696,492032
+49697,491309
+49697,491374
+49697,491677
+49697,492562
+49697,492721
+49698,490261
+49698,490296
+49698,490782
+49698,492562
+49699,490111
+49699,491184
+49699,491990
+49699,492578
+49700,490548
+49706,490548
+49707,491971
+49708,490381
+49708,492584
+49709,490317
+49710,490586
+49714,490842
+49715,491585
+49716,490132
+49717,490599
+49717,491913
+49718,491159
+49719,491027
+49719,492559
+49720,491511
+49721,490610
+49722,491511
+49730,490564
+49731,491321
+49740,490914
+49741,490914
+49742,491086
+49743,491867
+49750,492079
+49751,490258
+49760,490198
+49760,492716
+49770,492389
+49780,491598
+49781,492200
+49782,492389
+49783,490527
+49783,491051
+49800,492196
+49810,491295
+49820,492392
+49830,490202
+49831,490300
+49832,491070
+49833,490837
+49834,490028
+49835,491630
+49836,492196
+49840,492354
+49850,491563
+49860,492490
+49870,492709
+49871,492676
+49880,491472
+49881,492196
+49882,492281
+50001,502973
+50002,502973
+50003,502973
+50004,502973
+50005,502973
+50006,502973
+50007,502973
+50008,502973
+50009,502973
+50010,502973
+50011,502973
+50012,502973
+50013,502973
+50014,502973
+50015,502973
+50016,502973
+50017,502973
+50018,502973
+50019,502973
+50020,502973
+50021,502973
+50022,502973
+50057,502973
+50059,502973
+50090,502973
+50100,500251
+50108,500248
+50109,500264
+50120,502973
+50130,500457
+50131,501361
+50132,500858
+50133,500233
+50134,501330
+50134,502339
+50135,501152
+50135,501648
+50136,501396
+50137,502186
+50138,502758
+50139,502973
+50140,500397
+50141,501319
+50142,501149
+50143,501797
+50143,502133
+50144,501710
+50150,501247
+50151,501494
+50152,501670
+50153,502908
+50154,502647
+50155,500055
+50156,502915
+50160,501377
+50161,502066
+50162,509038
+50163,501041
+50164,501703
+50170,501651
+50171,502199
+50172,500172
+50173,501937
+50174,502856
+50175,501993
+50177,500592
+50178,500227
+50180,502724
+50190,502973
+50191,502973
+50193,502973
+50194,502973
+50195,502035
+50196,501823
+50200,500384
+50210,501921
+50211,500763
+50212,500726
+50213,500824
+50213,501731
+50214,500711
+50215,501784
+50216,502875
+50217,502632
+50219,501839
+50219,502777
+50219,502822
+50220,500346
+50227,502468
+50228,500652
+50229,500541
+50230,500205
+50236,501250
+50237,501298
+50238,500704
+50238,501204
+50239,500589
+50239,500877
+50239,500969
+50240,501778
+50246,500573
+50247,501778
+50248,502437
+50249,502437
+50250,501263
+50257,501211
+50258,501302
+50258,501980
+50259,500310
+50259,502148
+50260,501759
+50266,500325
+50267,501664
+50268,500690
+50268,502210
+50268,502663
+50269,500938
+50269,501876
+50269,502549
+50270,502259
+50280,500687
+50290,500994
+50291,501725
+50292,500819
+50293,502534
+50294,501469
+50294,502318
+50295,501507
+50295,502284
+50296,500444
+50296,502112
+50296,502698
+50297,500439
+50297,501232
+50297,502127
+50298,502091
+50299,500671
+50299,502029
+50299,502416
+50300,500671
+50310,502936
+50311,502571
+50312,500798
+50313,500299
+50314,500845
+50315,501553
+50316,500476
+50316,500508
+50316,502604
+50320,501106
+50321,501106
+50322,501106
+50323,501106
+50324,502360
+50325,502552
+50326,500861
+50330,501699
+50331,501627
+50331,501968
+50331,502297
+50332,500460
+50333,502869
+50334,502421
+50335,500671
+50336,500671
+50340,501591
+50341,501942
+50342,502014
+50343,502796
+50344,501762
+50345,500093
+50346,500750
+50347,500021
+50348,500378
+50351,500900
+50360,500943
+50366,500423
+50366,501612
+50366,501844
+50366,501955
+50367,501345
+50367,502246
+50368,500802
+50368,501540
+50368,502587
+50368,502941
+50369,500286
+50369,501383
+50369,501882
+50370,502894
+50371,502730
+50372,502745
+50373,500482
+50373,500917
+50373,501171
+50373,502395
+50374,500166
+50374,502565
+50374,502719
+50375,500016
+50376,500900
+50390,501165
+50391,501746
+50391,502843
+50400,500732
+50408,500042
+50409,500883
+50410,500896
+50420,500665
+50430,501633
+50440,501801
+50441,500567
+50450,501818
+50460,501438
+50461,500188
+50470,500981
+50480,502007
+50481,500074
+50482,502954
+50490,502838
+50490,502920
+50491,500401
+50491,501089
+50491,502278
+50500,502513
+50510,501909
+50511,501572
+50512,502611
+50513,501067
+50513,501226
+50513,502376
+50513,502513
+50513,502817
+50514,502513
+50520,501535
+50529,500107
+50529,501134
+50529,502164
+50530,501916
+50540,500554
+50546,500270
+50546,500606
+50546,502506
+50547,500613
+50547,502493
+50548,500634
+50549,500114
+50549,501566
+50550,501605
+50560,500037
+50561,500520
+50562,501113
+50570,500068
+50580,502800
+50581,501417
+50582,501400
+50583,502650
+50584,502344
+50590,500303
+50591,500140
+50600,500956
+50610,501092
+50610,501514
+50610,502053
+50611,501008
+50611,501092
+50612,500779
+50612,502053
+50612,502442
+50613,500779
+50614,500331
+50614,502203
+50615,501514
+50615,502761
+50616,502072
+50616,509022
+50617,500956
+50619,500362
+50619,500956
+50619,501481
+50619,501974
+50619,509017
+50620,502973
+50629,502474
+50630,500080
+50637,502231
+50638,500649
+50639,501073
+50640,501438
+50640,501475
+50641,500536
+50650,501187
+50660,502528
+50668,502170
+50669,502528
+50670,502301
+50678,502679
+50679,501358
+50679,502301
+50680,502480
+50682,502455
+50683,500359
+50683,501686
+50683,502455
+50684,502323
+50685,500418
+50685,502105
+50685,502702
+50686,312037
+50686,501860
+50687,501285
+50687,501422
+50688,501443
+50689,502480
+50689,502685
+50690,502040
+50691,500135
+50692,501324
+50692,502973
+50693,502626
+50694,500956
+50695,500515
+50696,500785
+50696,502480
+50697,502480
+50700,500747
+50709,500747
+50710,501529
+50720,502973
+50730,500628
+50740,501152
+50750,502088
+50760,502783
+50770,502225
+50780,502409
+50781,500129
+50782,500830
+50783,500191
+50784,502967
+50786,501190
+50790,501015
+50791,501015
+50792,500922
+50793,501020
+50794,501895
+50795,501054
+50800,502989
+50810,502989
+50820,502973
+50830,502881
+50830,502989
+50840,502357
+50850,501857
+50850,502382
+51001,510013
+51002,510013
+51003,510013
+51004,510013
+51005,510013
+52001,520018
+52002,520018
+52003,520018
+52004,520018
+52005,520018
+52006,520018
diff --git a/pms_l10n_es/tests/__init__.py b/pms_l10n_es/tests/__init__.py
index ac3fd30c7..9e2aec97c 100644
--- a/pms_l10n_es/tests/__init__.py
+++ b/pms_l10n_es/tests/__init__.py
@@ -1,3 +1,4 @@
from . import test_wizard_ine
from . import test_res_partner
from . import test_wizard_traveller_report
+from . import test_pms_ses_communication
diff --git a/pms_l10n_es/tests/test_pms_ses_communication.py b/pms_l10n_es/tests/test_pms_ses_communication.py
new file mode 100644
index 000000000..7610a2b0f
--- /dev/null
+++ b/pms_l10n_es/tests/test_pms_ses_communication.py
@@ -0,0 +1,285 @@
+from odoo import fields
+from odoo.tools.safe_eval import datetime
+
+from .common import TestPms
+
+
+class TestPmsSesCommunication(TestPms):
+ def setUp(self):
+ super().setUp()
+ self.sale_channel_direct1 = self.env["pms.sale.channel"].create(
+ {
+ "name": "Door",
+ "channel_type": "direct",
+ }
+ )
+ # create room type
+ self.room_type = self.env["pms.room.type"].create(
+ {
+ "name": "Room type test",
+ "default_code": "DBL_Test",
+ "class_id": self.room_type_class1.id,
+ }
+ )
+ # room
+ self.room_double_1 = self.env["pms.room"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "name": "Room test 1",
+ "room_type_id": self.room_type.id,
+ "capacity": 2,
+ }
+ )
+ self.pms_property1.institution = "ses"
+
+ def test_create_notification_when_create_reservation(self):
+ # ARRANGE/ACT
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": "2021-01-01",
+ "checkout": "2021-01-02",
+ "adults": 2,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ # ASSERT
+ last_notification = self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ]
+ )
+ self.assertEqual(
+ last_notification.operation,
+ "A",
+ "Creating a reservation should create a notification with operation A",
+ )
+
+ def test_not_create_notification_when_cancel_reservation_and_not_sent(self):
+ # ARRANGE
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": fields.date.today() + datetime.timedelta(days=1),
+ "checkout": fields.date.today() + datetime.timedelta(days=2),
+ "adults": 2,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ # ACT
+ reservation.action_cancel()
+ # ASSERT
+ last_notifications = self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ],
+ order="id",
+ )
+ self.assertFalse(
+ last_notifications,
+ "Cancelling a reservation not sent should not create a notification",
+ )
+
+ def test_create_notification_when_cancel_reservation_and_is_sent(self):
+ # ARRANGE
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": fields.date.today() + datetime.timedelta(days=1),
+ "checkout": fields.date.today() + datetime.timedelta(days=2),
+ "adults": 2,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ notification_after_create_reservation = self.env[
+ "pms.ses.communication"
+ ].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ("operation", "=", "A"),
+ ]
+ )
+ notification_after_create_reservation.state = "to_process"
+ # ACT
+ reservation.action_cancel()
+ # ASSERT
+ last_notifications = (
+ self.env["pms.ses.communication"]
+ .search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ],
+ order="id",
+ )
+ .mapped("operation")
+ )
+ self.assertEqual(
+ last_notifications,
+ ["A", "B"],
+ "Canceling a reservation should create a notification with operation B",
+ )
+
+ def test_create_notification_when_modify_reservation_and_not_sent(self):
+ # ARRANGE
+ update_operations = [
+ {
+ "adults": 1,
+ },
+ {
+ "checkin": fields.date.today() + datetime.timedelta(days=10),
+ },
+ {
+ "checkout": fields.date.today() + datetime.timedelta(days=12),
+ },
+ ]
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": fields.date.today() + datetime.timedelta(days=1),
+ "checkout": fields.date.today() + datetime.timedelta(days=13),
+ "adults": 2,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ # ACT & ASSERT
+ for _index, update_operation in enumerate(update_operations):
+ with self.subTest(k=update_operation):
+ reservation.write(update_operation)
+ last_notification_operations = (
+ self.env["pms.ses.communication"]
+ .search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ],
+ order="id",
+ )
+ .mapped("operation")
+ )
+ self.assertEqual(
+ ["A"],
+ last_notification_operations,
+ "Update adults should create 2 notifications with operations A and B",
+ )
+
+ def test_create_notification_when_modify_reservation_and_is_sent(self):
+ # ARRANGE
+ update_operations = [
+ {
+ "adults": 1,
+ },
+ {
+ "checkin": fields.date.today() + datetime.timedelta(days=10),
+ },
+ {
+ "checkout": fields.date.today() + datetime.timedelta(days=12),
+ },
+ ]
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": fields.date.today() + datetime.timedelta(days=1),
+ "checkout": fields.date.today() + datetime.timedelta(days=13),
+ "adults": 2,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ reservation_communications = self.env["pms.ses.communication"].search(
+ [("reservation_id", "=", reservation.id)]
+ )
+ reservation_communications.state = "to_process"
+ # ACT & ASSERT
+ for _index, update_operation in enumerate(update_operations):
+ with self.subTest(k=update_operation):
+ reservation.write(update_operation)
+ reservation_communications = (
+ self.env["pms.ses.communication"]
+ .search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ],
+ order="id",
+ )
+ .mapped("operation")
+ )
+ self.assertEqual(
+ ["A", "B", "A"],
+ reservation_communications,
+ "Update adults should create 2 notifications with operations A and B",
+ )
+
+ def test_create_notification_when_checkin_partner_on_board(self):
+ # ARRANGE
+ partner = self.env["res.partner"].create(
+ {
+ "name": "name test",
+ "firstname": "firstname test",
+ "lastname": "lastname test",
+ "lastname2": "lastname2 test",
+ "birthdate_date": "1995-12-10",
+ "gender": "male",
+ "nationality_id": self.env.ref("base.es").id,
+ "residence_street": "street test",
+ "residence_city": "city test",
+ "residence_zip": "zip test",
+ "residence_country_id": self.env.ref("base.us").id,
+ }
+ )
+ reservation = self.env["pms.reservation"].create(
+ {
+ "pms_property_id": self.pms_property1.id,
+ "room_type_id": self.room_type.id,
+ "checkin": fields.date.today(),
+ "checkout": fields.date.today() + datetime.timedelta(days=13),
+ "adults": 1,
+ "children": 0,
+ "sale_channel_origin_id": self.sale_channel_direct1.id,
+ "partner_name": "Test reservation",
+ }
+ )
+ document_type_dni = self.env["res.partner.id_category"].search(
+ [("code", "=", "D")], limit=1
+ )
+ checkin_partner = self.env["pms.checkin.partner"].create(
+ {
+ "reservation_id": reservation.id,
+ "partner_id": partner.id,
+ "document_number": "11111111H",
+ "document_type": document_type_dni.id,
+ "document_expedition_date": fields.date.today()
+ + datetime.timedelta(days=1),
+ "support_number": "123456",
+ }
+ )
+ checkin_partner.action_on_board()
+ # ACT
+ self.env[
+ "traveller.report.wizard"
+ ].create_pending_notifications_traveller_report()
+ # ASSERT
+ last_notification = self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ("operation", "=", "A"),
+ ("state", "=", "to_send"),
+ ("entity", "=", "PV"),
+ ],
+ )
+ self.assertTrue(
+ last_notification,
+ "Notification should be created when checkin partner is on board",
+ )
diff --git a/pms_l10n_es/tests/test_wizard_ine.py b/pms_l10n_es/tests/test_wizard_ine.py
index 9f00d4731..df15c71c9 100644
--- a/pms_l10n_es/tests/test_wizard_ine.py
+++ b/pms_l10n_es/tests/test_wizard_ine.py
@@ -250,6 +250,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_1.id,
"reservation_id": self.reservation_1.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
@@ -257,6 +260,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_2.id,
"reservation_id": self.reservation_1.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create reservation 2
@@ -275,12 +281,18 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_3.id,
"reservation_id": self.reservation_2.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
self.checkin4 = self.env["pms.checkin.partner"].create(
{
"partner_id": self.partner_4.id,
"reservation_id": self.reservation_2.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create reservation 3
@@ -299,6 +311,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_5.id,
"reservation_id": self.reservation_3.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create reservation property 2
@@ -317,6 +332,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_5.id,
"reservation_id": self.reservation_property_2.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
@@ -350,6 +368,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_6.id,
"reservation_id": self.reservation_4.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
@@ -357,6 +378,9 @@ class TestWizardINE(TestPms):
{
"partner_id": self.partner_7.id,
"reservation_id": self.reservation_4.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# checkin partners on board
@@ -387,6 +411,9 @@ class TestWizardINE(TestPms):
"residence_country_id": self.country_russia.id,
"birthdate_date": "2000-06-25",
"gender": "male",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
self.partner_russia_2 = self.env["res.partner"].create(
@@ -397,6 +424,9 @@ class TestWizardINE(TestPms):
"residence_country_id": self.country_russia.id,
"birthdate_date": "2000-06-25",
"gender": "male",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
self.partner_russia_3 = self.env["res.partner"].create(
@@ -407,6 +437,9 @@ class TestWizardINE(TestPms):
"residence_country_id": self.country_russia.id,
"birthdate_date": "2000-06-25",
"gender": "male",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create document for 3 checkin partners (russia)
@@ -619,7 +652,7 @@ class TestWizardINE(TestPms):
},
}
# ACT
- nationalities = self.env["pms.ine.wizard"].ine_nationalities(
+ nationalities = self.env["pms.ine.wizard"].ine_countries(
start_date, end_date, self.pms_property1.id
)
# ASSERT
@@ -670,38 +703,38 @@ class TestWizardINE(TestPms):
[("name", "=", "Pontevedra")]
)
- self.checkin1.nationality_id = country_spain
- self.partner_1.nationality_id = country_spain
+ self.checkin1.residence_country_id = country_spain
+ self.partner_1.residence_country_id = country_spain
self.checkin1.residence_state_id = state_ourense
self.partner_1.residence_state_id = state_ourense
- self.checkin2.nationality_id = country_spain
- self.partner_2.nationality_id = country_spain
+ self.checkin2.residence_country_id = country_spain
+ self.partner_2.residence_country_id = country_spain
self.checkin2.residence_state_id = state_pontevedra
self.partner_2.residence_state_id = state_pontevedra
- self.checkin3.nationality_id = country_spain
- self.partner_3.nationality_id = country_spain
+ self.checkin3.residence_country_id = country_spain
+ self.partner_3.residence_country_id = country_spain
self.checkin3.residence_state_id = state_ourense
self.partner_3.residence_state_id = state_ourense
- self.checkin4.nationality_id = country_spain
- self.partner_4.nationality_id = country_spain
+ self.checkin4.residence_country_id = country_spain
+ self.partner_4.residence_country_id = country_spain
self.checkin4.residence_state_id = state_ourense
self.partner_4.residence_state_id = state_ourense
- self.checkin5.nationality_id = country_spain
- self.partner_5.nationality_id = country_spain
+ self.checkin5.residence_country_id = country_spain
+ self.partner_5.residence_country_id = country_spain
self.checkin5.residence_state_id = state_madrid
self.partner_5.residence_state_id = state_madrid
- self.checkin6.nationality_id = country_spain
- self.partner_6.nationality_id = country_spain
+ self.checkin6.residence_country_id = country_spain
+ self.partner_6.residence_country_id = country_spain
self.checkin6.residence_state_id = state_madrid
self.partner_6.residence_state_id = state_madrid
- self.checkin7.nationality_id = country_spain
- self.partner_7.nationality_id = country_spain
+ self.checkin7.residence_country_id = country_spain
+ self.partner_7.residence_country_id = country_spain
self.checkin7.residence_state_id = state_madrid
self.partner_7.residence_state_id = state_madrid
@@ -745,7 +778,7 @@ class TestWizardINE(TestPms):
}
}
# ACT
- nationalities = self.env["pms.ine.wizard"].ine_nationalities(
+ nationalities = self.env["pms.ine.wizard"].ine_countries(
start_date, end_date, self.pms_property1.id
)
# ASSERT
@@ -877,7 +910,7 @@ class TestWizardINE(TestPms):
},
}
# ACT
- nationalities = self.env["pms.ine.wizard"].ine_nationalities(
+ nationalities = self.env["pms.ine.wizard"].ine_countries(
start_date, end_date, self.pms_property1.id
)
# ASSERT
@@ -914,7 +947,7 @@ class TestWizardINE(TestPms):
"""
# ARRANGE
self.ideal_scenario()
- self.reservation_1.checkin_partner_ids[1].nationality_id = False
+ self.reservation_1.checkin_partner_ids[1].residence_country_id = False
start_date = datetime.date(2021, 2, 1)
end_date = datetime.date(2021, 2, 4)
@@ -923,7 +956,7 @@ class TestWizardINE(TestPms):
ValidationError,
msg="Cannot generate INE if some checkin partner has no nationality",
):
- self.env["pms.ine.wizard"].ine_nationalities(
+ self.env["pms.ine.wizard"].ine_countries(
start_date, end_date, self.pms_property1.id
)
@@ -969,38 +1002,38 @@ class TestWizardINE(TestPms):
[("name", "=", "Ourense (Orense)")]
)
- self.checkin1.nationality_id = country_spain
- self.partner_1.nationality_id = country_spain
+ self.checkin1.residence_country_id = country_spain
+ self.partner_1.residence_country_id = country_spain
self.checkin1.residence_state_id = state_ourense
self.partner_1.residence_state_id = state_ourense
- self.checkin2.nationality_id = country_spain
- self.partner_2.nationality_id = country_spain
+ self.checkin2.residence_country_id = country_spain
+ self.partner_2.residence_country_id = country_spain
self.checkin2.residence_state_id = False
self.partner_2.residence_state_id = False
- self.checkin3.nationality_id = country_spain
- self.partner_3.nationality_id = country_spain
+ self.checkin3.residence_country_id = country_spain
+ self.partner_3.residence_country_id = country_spain
self.checkin3.residence_state_id = state_ourense
self.partner_3.residence_state_id = state_ourense
- self.checkin4.nationality_id = country_spain
- self.partner_4.nationality_id = country_spain
+ self.checkin4.residence_country_id = country_spain
+ self.partner_4.residence_country_id = country_spain
self.checkin4.residence_state_id = state_ourense
self.partner_4.residence_state_id = state_ourense
- self.checkin5.nationality_id = country_spain
- self.partner_5.nationality_id = country_spain
+ self.checkin5.residence_country_id = country_spain
+ self.partner_5.residence_country_id = country_spain
self.checkin5.residence_state_id = state_madrid
self.partner_5.residence_state_id = state_madrid
- self.checkin6.nationality_id = country_spain
- self.partner_6.nationality_id = country_spain
+ self.checkin6.residence_country_id = country_spain
+ self.partner_6.residence_country_id = country_spain
self.checkin6.residence_state_id = state_madrid
self.partner_6.residence_state_id = state_madrid
- self.checkin7.nationality_id = country_spain
- self.partner_7.nationality_id = country_spain
+ self.checkin7.residence_country_id = country_spain
+ self.partner_7.residence_country_id = country_spain
self.checkin7.residence_state_id = state_madrid
self.partner_7.residence_state_id = state_madrid
@@ -1009,6 +1042,6 @@ class TestWizardINE(TestPms):
ValidationError,
msg="Cannot generate INE if some checkin partner from Spain has no nationality",
):
- self.env["pms.ine.wizard"].ine_nationalities(
+ self.env["pms.ine.wizard"].ine_countries(
start_date, end_date, self.pms_property1.id
)
diff --git a/pms_l10n_es/tests/test_wizard_traveller_report.py b/pms_l10n_es/tests/test_wizard_traveller_report.py
index 4b3bc6ebb..a1b7ac26b 100644
--- a/pms_l10n_es/tests/test_wizard_traveller_report.py
+++ b/pms_l10n_es/tests/test_wizard_traveller_report.py
@@ -124,6 +124,9 @@ class TestWizardTravellerReport(TestPms):
"reservation_id": self.reservation_1.id,
"firstname": "John",
"lastname": "Doe",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create reservation 2
@@ -144,6 +147,9 @@ class TestWizardTravellerReport(TestPms):
"reservation_id": self.reservation_2.id,
"firstname": "Martha",
"lastname": "Stewart",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# checkin partners on board
@@ -188,6 +194,9 @@ class TestWizardTravellerReport(TestPms):
"firstname": "John",
"lastname": "Doe",
"nationality_id": self.country_italy.id,
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# Create reservation 2
@@ -208,6 +217,9 @@ class TestWizardTravellerReport(TestPms):
"reservation_id": self.reservation_2.id,
"firstname": "Martha",
"lastname": "Stewart",
+ "residence_street": "Test street 1",
+ "residence_city": "Test city",
+ "residence_zip": "08001",
}
)
# checkin partners on board
diff --git a/pms_l10n_es/views/pms_property_views.xml b/pms_l10n_es/views/pms_property_views.xml
index bd2130bc6..1df453b0d 100644
--- a/pms_l10n_es/views/pms_property_views.xml
+++ b/pms_l10n_es/views/pms_property_views.xml
@@ -18,7 +18,12 @@
+
+
@@ -31,6 +36,7 @@
class="btn btn-primary btn-sm"
type="object"
string="Test user/password"
+ attrs="{'invisible': [('institution','=','ses')]}"
/>
diff --git a/pms_l10n_es/views/pms_reservation_views.xml b/pms_l10n_es/views/pms_reservation_views.xml
new file mode 100644
index 000000000..015bef956
--- /dev/null
+++ b/pms_l10n_es/views/pms_reservation_views.xml
@@ -0,0 +1,34 @@
+
+
+
+ Rerservation Form l10n_es
+ pms.reservation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pms_l10n_es/views/pms_ses_communication_views.xml b/pms_l10n_es/views/pms_ses_communication_views.xml
new file mode 100644
index 000000000..3268b5e1b
--- /dev/null
+++ b/pms_l10n_es/views/pms_ses_communication_views.xml
@@ -0,0 +1,90 @@
+
+
+
+ pms.ses.communication.form
+ pms.ses.communication
+
+
+
+
+
+ pms.ses.communication.tree
+ pms.ses.communication
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pms.ses.communication.search
+ pms.ses.communication
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SES Communications
+ pms.ses.communication
+ tree,form
+
+
+
diff --git a/pms_l10n_es/wizards/traveller_report.py b/pms_l10n_es/wizards/traveller_report.py
index 533fd3bca..94ecd91a8 100644
--- a/pms_l10n_es/wizards/traveller_report.py
+++ b/pms_l10n_es/wizards/traveller_report.py
@@ -1,9 +1,13 @@
import base64
+import csv
import datetime
+import io
import json
import logging
import re
import time
+import xml.etree.cElementTree as ET
+import zipfile
import requests
from bs4 import BeautifulSoup as bs
@@ -15,6 +19,312 @@ from odoo.modules.module import get_module_resource
_logger = logging.getLogger(__name__)
+CODE_SPAIN = "ES"
+CODE_PASSPORT = "P"
+CODE_DNI = "D"
+CODE_NIE = "N"
+
+REQUEST_CODE_OK = "0"
+XML_OK = "1"
+XML_PROCESSING = "4"
+XML_PENDING = "5"
+
+CREATE_OPERATION_CODE = "A"
+DELETE_OPERATION_CODE = "B"
+
+# Disable insecure request warnings
+# requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
+
+def _string_to_zip_to_base64(string_data):
+ zip_buffer = io.BytesIO()
+ with zipfile.ZipFile(zip_buffer, "w", zipfile.ZIP_DEFLATED) as zip_file:
+ zip_file.writestr("data.xml", string_data.encode("utf-8"))
+ zip_buffer.seek(0)
+ zip_data = zip_buffer.read()
+ zip_base64 = base64.b64encode(zip_data)
+ return zip_base64.decode()
+
+
+def _ses_xml_payment_elements(contrato, reservation):
+ pago = ET.SubElement(contrato, "pago")
+ payments = reservation.folio_id.payment_ids.filtered(lambda x: x.state == "posted")
+ tipo_pago = "DESTI"
+ if payments:
+ payment = payments[0]
+ tipo_pago = "EFECT" if payment.journal_id.type == "cash" else "PLATF"
+ ET.SubElement(pago, "tipoPago").text = tipo_pago
+
+
+def _ses_xml_contract_elements(comunicacion, reservation):
+ contrato = ET.SubElement(comunicacion, "contrato")
+ ET.SubElement(contrato, "referencia").text = reservation.name
+ ET.SubElement(contrato, "fechaContrato").text = str(reservation.date_order)[:10]
+ ET.SubElement(
+ contrato, "fechaEntrada"
+ ).text = f"{str(reservation.checkin)[:10]}T00:00:00"
+ ET.SubElement(
+ contrato, "fechaSalida"
+ ).text = f"{str(reservation.checkout)[:10]}T00:00:00"
+ ET.SubElement(contrato, "numPersonas").text = str(reservation.adults)
+ _ses_xml_payment_elements(contrato, reservation)
+
+
+def _ses_xml_text_element_and_validate(parent, tag, text, error_message):
+ if text:
+ ET.SubElement(parent, tag).text = text
+ else:
+ raise ValidationError(error_message)
+
+
+def _ses_xml_map_document_type(code):
+ if code == CODE_DNI:
+ return "NIF"
+ elif code == CODE_NIE:
+ return "NIE"
+ elif code == CODE_PASSPORT:
+ return "PAS"
+ else:
+ return "OTRO"
+
+
+def _ses_xml_person_names_elements(persona, reservation, checkin_partner):
+ if reservation:
+ name = False
+ if reservation.partner_id.firstname:
+ name = reservation.partner_id.firstname
+ elif reservation.partner_name:
+ name = reservation.partner_name.split(" ")[0]
+ _ses_xml_text_element_and_validate(
+ persona,
+ "nombre",
+ name,
+ _("The reservation does not have a name."),
+ )
+
+ if reservation.partner_id.lastname:
+ firstname = reservation.partner_id.lastname
+ elif reservation.partner_name and len(reservation.partner_name.split(" ")) > 1:
+ firstname = reservation.partner_name.split(" ")[1]
+ else:
+ firstname = "No aplica"
+ ET.SubElement(persona, "apellido1").text = firstname
+
+ elif checkin_partner:
+ _ses_xml_text_element_and_validate(
+ persona,
+ "nombre",
+ checkin_partner.firstname,
+ _("The guest does not have a name."),
+ )
+ _ses_xml_text_element_and_validate(
+ persona,
+ "apellido1",
+ checkin_partner.lastname,
+ _("The guest does not have a lastname."),
+ )
+
+ if checkin_partner.document_type.code == CODE_DNI:
+ _ses_xml_text_element_and_validate(
+ persona,
+ "apellido2",
+ checkin_partner.partner_id.lastname2,
+ _("The guest does not have a second lastname."),
+ )
+
+
+def _ses_xml_person_personal_info_elements(persona, checkin_partner):
+ ET.SubElement(persona, "rol").text = "VI"
+
+ _ses_xml_person_names_elements(
+ persona, reservation=False, checkin_partner=checkin_partner
+ )
+
+ if checkin_partner.document_type.code:
+ document_type = _ses_xml_map_document_type(checkin_partner.document_type.code)
+ ET.SubElement(persona, "tipoDocumento").text = document_type
+ else:
+ raise ValidationError(_("The guest does not have a document type."))
+
+ _ses_xml_text_element_and_validate(
+ persona,
+ "numeroDocumento",
+ checkin_partner.document_number,
+ _("The guest does not have a document number."),
+ )
+
+ if checkin_partner.document_type.code in [CODE_DNI, CODE_NIE]:
+ _ses_xml_text_element_and_validate(
+ persona,
+ "soporteDocumento",
+ checkin_partner.support_number,
+ _("The guest does not have a support number."),
+ )
+ _ses_xml_text_element_and_validate(
+ persona,
+ "fechaNacimiento",
+ str(checkin_partner.birthdate_date)[:10],
+ _("The guest does not have a birthdate."),
+ )
+
+
+def _ses_xml_municipality_code(residence_zip):
+ with open(
+ get_module_resource(
+ "pms_l10n_es", "static/src/", "pms.ine.zip.municipality.ine.relation.csv"
+ ),
+ "r",
+ newline="",
+ ) as f:
+ lector = csv.reader(f)
+ for fila in lector:
+ if residence_zip in fila[0]:
+ return fila[1][:5]
+ raise ValidationError(_("The guest does not have a valid zip code."))
+
+
+def _ses_xml_person_address_elements(persona, checkin_partner):
+ direccion = ET.SubElement(persona, "direccion")
+ _ses_xml_text_element_and_validate(
+ direccion,
+ "direccion",
+ checkin_partner.residence_street,
+ _("The guest does not have a street."),
+ )
+
+ if checkin_partner.residence_country_id.code == CODE_SPAIN:
+ municipio_code = _ses_xml_municipality_code(checkin_partner.residence_zip)
+ if municipio_code:
+ ET.SubElement(direccion, "codigoMunicipio").text = municipio_code
+ else:
+ _ses_xml_text_element_and_validate(
+ direccion,
+ "nombreMunicipio",
+ checkin_partner.residence_city,
+ _("The guest does not have a city."),
+ )
+
+ _ses_xml_text_element_and_validate(
+ direccion,
+ "codigoPostal",
+ checkin_partner.residence_zip,
+ _("The guest does not have a zip code."),
+ )
+ _ses_xml_text_element_and_validate(
+ direccion,
+ "pais",
+ checkin_partner.residence_country_id.code_alpha3,
+ _("The guest does not have a country."),
+ )
+
+
+def _ses_xml_person_contact_elements(persona, reservation, checkin_partner=False):
+ partner = reservation.partner_id
+ contact_methods = []
+ if checkin_partner:
+ contact_methods.extend(
+ [
+ checkin_partner.mobile,
+ checkin_partner.phone,
+ checkin_partner.email,
+ ]
+ )
+ contact_methods.extend(
+ [
+ partner.mobile,
+ partner.phone,
+ partner.email,
+ reservation.email,
+ reservation.pms_property_id.partner_id.email,
+ reservation.pms_property_id.partner_id.phone,
+ ]
+ )
+
+ for contact in contact_methods:
+ if contact:
+ tag = "telefono" if "@" not in contact else "correo"
+ ET.SubElement(persona, tag).text = contact
+ break
+ else:
+ raise ValidationError(
+ _(
+ "The guest/reservation partner and property does not "
+ "have a contact method (mail or phone)"
+ )
+ )
+
+
+def _ses_xml_person_elements(comunicacion, checkin_partner):
+ persona = ET.SubElement(comunicacion, "persona")
+ _ses_xml_person_personal_info_elements(persona, checkin_partner)
+ _ses_xml_person_address_elements(persona, checkin_partner)
+ _ses_xml_person_contact_elements(
+ persona, checkin_partner.reservation_id, checkin_partner
+ )
+
+
+def _get_auth_headers(communication):
+ user = communication.reservation_id.pms_property_id.institution_user
+ password = communication.reservation_id.pms_property_id.institution_password
+
+ user_and_password_base64 = "Basic " + base64.b64encode(
+ bytes(user + ":" + password, "utf-8")
+ ).decode("utf-8")
+
+ return {
+ "Authorization": user_and_password_base64,
+ "Content-Type": "text/xml; charset=utf-8",
+ }
+
+
+def _generate_payload(lessor_id, operation, entity, data):
+ return f"""
+
+
+
+
+
+
+ {lessor_id}
+ Roomdoo
+ {operation}
+ {entity}
+
+ {data}
+
+
+
+
+ """
+
+
+def _handle_request_exception(communication, e):
+ if isinstance(e, requests.exceptions.RequestException):
+ if isinstance(e, requests.exceptions.ConnectionError):
+ if communication.state == "to_send":
+ communication.sending_result = (
+ f"Cannot establish the connection. ({e.args})"
+ )
+ else:
+ communication.processing_result = (
+ f"Cannot establish the connection. ({e.args})"
+ )
+ elif isinstance(e, requests.exceptions.Timeout):
+ if communication.state == "to_send":
+ communication.sending_result = (
+ f"The request took too long to complete. ({e.args})"
+ )
+ else:
+ communication.processing_result = (
+ f"The request took too long to complete. ({e.args})"
+ )
+ else:
+ if communication.state == "to_send":
+ communication.sending_result = f"Request error: {e}"
+ else:
+ communication.processing_result = f"Request error: {e}"
+
class TravellerReport(models.TransientModel):
_name = "traveller.report.wizard"
@@ -22,10 +332,26 @@ class TravellerReport(models.TransientModel):
txt_filename = fields.Text()
txt_binary = fields.Binary(string="File Download")
- txt_message = fields.Char(string="File Preview")
+ txt_message = fields.Char(
+ string="File Preview",
+ readonly=True,
+ store=True,
+ compute="_compute_txt_message",
+ )
date_target = fields.Date(
string="Date", required=True, default=lambda self: fields.Date.today()
)
+ date_from = fields.Date(
+ string="From",
+ required=True,
+ default=lambda self: fields.Date.today(),
+ )
+ date_to = fields.Date(
+ string="To",
+ required=True,
+ default=lambda self: fields.Date.today() + relativedelta(days=1),
+ )
+
pms_property_id = fields.Many2one(
comodel_name="pms.property",
string="Property",
@@ -33,6 +359,35 @@ class TravellerReport(models.TransientModel):
default=lambda self: self.env.user.get_active_property_ids()[0],
)
+ is_ses = fields.Boolean(
+ string="Is SES",
+ readonly=True,
+ compute="_compute_is_ses",
+ )
+
+ report_type = fields.Selection(
+ string="Report Type",
+ required=True,
+ default="reservations",
+ help="Report type (reservation/traveller report)",
+ selection=[
+ ("reservations", "Reservations Report"),
+ ("travellers", "Travellers Report"),
+ ],
+ )
+
+ @api.depends(
+ "pms_property_id", "date_target", "date_from", "date_to", "report_type"
+ )
+ def _compute_txt_message(self):
+ for record in self:
+ record.txt_message = False
+
+ @api.depends("pms_property_id.institution")
+ def _compute_is_ses(self):
+ for record in self:
+ record.is_ses = record.pms_property_id.institution == "ses"
+
def generate_file_from_user_action(self):
pms_property = self.env["pms.property"].search(
[("id", "=", self.pms_property_id.id)]
@@ -45,22 +400,64 @@ class TravellerReport(models.TransientModel):
or not pms_property.institution_password
):
raise ValidationError(
- _("The guest information sending settings is not property updated.")
+ _("The guest information sending settings is not property set up.")
)
+ content = False
# build content
- content = self.generate_checkin_list(
- pms_property_id=pms_property.id,
- date_target=self.date_target,
- )
+ if self.is_ses:
+ if self.report_type == "travellers":
+ content = self.generate_ses_travellers_list(
+ pms_property_id=pms_property.id,
+ date_target=self.date_target,
+ )
+ elif self.report_type == "reservations":
+ content = self.generate_ses_reservation_list(
+ pms_property_id=pms_property.id,
+ date_from=self.date_from,
+ date_to=self.date_to,
+ )
+ else:
+ content = self.generate_checkin_list(
+ pms_property_id=pms_property.id,
+ date_target=self.date_target,
+ )
if content:
- self.txt_filename = pms_property.institution_property_id + ".999"
+ if self.is_ses:
+ if self.report_type == "travellers":
+ self.txt_filename = (
+ pms_property.institution_property_id
+ + "-"
+ + self.date_target.strftime("%Y%m%d")
+ )
+ else:
+ self.txt_filename = (
+ pms_property.institution_property_id
+ + "-"
+ + self.date_from.strftime("%Y%m%d")
+ + "-"
+ + self.date_to.strftime("%Y%m%d")
+ )
+ self.txt_filename = self.txt_filename + ".xml"
+
+ else:
+ self.txt_filename = (
+ pms_property.institution_property_id
+ + "-"
+ + self.date_target.strftime("%Y%m%d")
+ + ".999"
+ )
+
self.txt_binary = base64.b64encode(str.encode(content))
self.txt_message = content
return {
- "name": _("Traveller Report"),
+ "name": _(
+ "Travellers Report"
+ if self.report_type == "travellers" or not self.is_ses
+ else "Reservations Report"
+ ),
"res_id": self.id,
"res_model": "traveller.report.wizard",
"target": "new",
@@ -450,3 +847,292 @@ class TravellerReport(models.TransientModel):
if prop.institution:
self.send_file_institution(pms_property=prop, offset=offset)
time.sleep(0.5)
+
+ # SES RESERVATIONS
+ def generate_ses_reservation_list(self, pms_property_id, date_from, date_to):
+ reservation_ids = (
+ self.env["pms.reservation"]
+ .search(
+ [
+ ("pms_property_id", "=", pms_property_id),
+ ("state", "!=", "cancel"),
+ ("reservation_type", "!=", "out"),
+ "|",
+ ("date_order", ">=", date_from),
+ ("date_order", "<=", date_to),
+ ]
+ )
+ .mapped("id")
+ )
+ return self.generate_xml_reservations(reservation_ids)
+
+ def generate_xml_reservation(self, solicitud, reservation_id):
+ reservation = self.env["pms.reservation"].browse(reservation_id)
+
+ if not reservation.pms_property_id.institution_property_id:
+ raise ValidationError(
+ _("The property does not have an institution property id.")
+ )
+
+ # SOLICITUD > COMUNICACION
+ comunicacion = ET.SubElement(solicitud, "comunicacion")
+
+ # SOLICITUD > COMUNICACION > ESTABLECIMIENTO
+ establecimiento = ET.SubElement(comunicacion, "establecimiento")
+
+ # SOLICITUD > COMUNICACION > ESTABLECIMIENTO > CODIGO
+ ET.SubElement(
+ establecimiento, "codigo"
+ ).text = reservation.pms_property_id.institution_property_id
+
+ # SOLICITUD > COMUNICACION > CONTRATO
+ _ses_xml_contract_elements(comunicacion, reservation)
+
+ # SOLICITUD > COMUNICACION > PERSONA
+ persona = ET.SubElement(comunicacion, "persona")
+
+ # SOLICITUD > COMUNICACION > PERSONA > ROL
+ ET.SubElement(persona, "rol").text = "TI"
+
+ # SOLICITUD > COMUNICACION > PERSONA > NOMBRE
+ _ses_xml_person_names_elements(persona, reservation, checkin_partner=None)
+ _ses_xml_person_contact_elements(persona, reservation)
+
+ def generate_xml_reservations(self, reservation_ids):
+ if not reservation_ids:
+ raise ValidationError(_("Theres's no reservation to generate the XML"))
+
+ # SOLICITUD
+ solicitud = ET.Element("solicitud")
+ for reservation_id in reservation_ids:
+ ET.SubElement(
+ solicitud,
+ self.generate_xml_reservation(solicitud, reservation_id),
+ )
+ xml_str = ET.tostring(solicitud, encoding="unicode")
+
+ xml_str = (
+ ''
+ + xml_str
+ + ""
+ )
+ return xml_str
+
+ # SES RESERVATIONS TRAVELLER REPORT
+ def generate_ses_travellers_list(self, pms_property_id, date_target):
+ reservation_ids = (
+ self.env["pms.reservation"]
+ .search(
+ [
+ ("pms_property_id", "=", pms_property_id),
+ ("checkin", "=", date_target),
+ ]
+ )
+ .mapped("id")
+ )
+ return self.generate_xml_reservations_travellers_report(reservation_ids)
+
+ def generate_xml_reservation_travellers_report(self, solicitud, reservation_id):
+ reservation = self.env["pms.reservation"].browse(reservation_id)
+ comunicacion = ET.SubElement(solicitud, "comunicacion")
+ _ses_xml_contract_elements(comunicacion, reservation)
+
+ for checkin_partner in reservation.checkin_partner_ids.filtered(
+ lambda x: x.state == "onboard"
+ ):
+ _ses_xml_person_elements(comunicacion, checkin_partner)
+
+ def generate_xml_reservations_travellers_report(self, reservation_ids):
+ if not reservation_ids:
+ raise ValidationError(_("Theres's no reservation to generate the XML"))
+
+ if (
+ len(
+ self.env["pms.reservation"]
+ .browse(reservation_ids)
+ .mapped("pms_property_id")
+ )
+ > 1
+ ):
+ raise ValidationError(_("The reservations must be from the same property."))
+ if not any(
+ state == "onboard"
+ for state in self.env["pms.reservation"]
+ .browse(reservation_ids)
+ .mapped("checkin_partner_ids")
+ .mapped("state")
+ ):
+ raise ValidationError(
+ _("There are no guests to generate the travellers report.")
+ )
+
+ # SOLICITUD
+ solicitud = ET.Element("solicitud")
+
+ pms_property = (
+ self.env["pms.reservation"].browse(reservation_ids[0]).pms_property_id
+ )
+
+ if not pms_property.institution_property_id:
+ raise ValidationError(
+ _("The property does not have an institution property id.")
+ )
+
+ # SOLICITUD -> CODIGO ESTABLECIMIENTO
+ ET.SubElement(
+ solicitud, "codigoEstablecimiento"
+ ).text = pms_property.institution_property_id
+
+ for reservation_id in reservation_ids:
+ ET.SubElement(
+ solicitud,
+ self.generate_xml_reservation_travellers_report(
+ solicitud, reservation_id
+ ),
+ )
+ xml_str = ET.tostring(solicitud, encoding="unicode")
+
+ xml_str = (
+ ''
+ + xml_str
+ + ""
+ )
+ return xml_str
+
+ @api.model
+ def ses_send_communications(self, entity):
+
+ for communication in self.env["pms.ses.communication"].search(
+ [
+ ("state", "=", "to_send"),
+ ("entity", "=", entity),
+ ]
+ ):
+
+ data = False
+ if communication.entity == "RH":
+ data = self.generate_xml_reservations([communication.reservation_id.id])
+ elif communication.entity == "PV":
+ data = self.generate_xml_reservations_travellers_report(
+ [communication.reservation_id.id]
+ )
+ communication.communication_xml = data
+ data = _string_to_zip_to_base64(data)
+ payload = _generate_payload(
+ communication.reservation_id.pms_property_id.institution_lessor_id,
+ communication.operation,
+ communication.entity,
+ data,
+ )
+ communication.communication_soap = payload
+ communication.communication_time = fields.Datetime.now()
+ try:
+ soap_response = requests.request(
+ "POST",
+ communication.reservation_id.pms_property_id.ses_url,
+ headers=_get_auth_headers(communication),
+ data=payload,
+ verify=get_module_resource("pms_l10n_es", "static", "ses_cert.pem"),
+ )
+ root = ET.fromstring(soap_response.text)
+ communication.sending_result = root.find(".//descripcion").text
+ communication.response_communication_soap = soap_response.text
+ result_code = root.find(".//codigo").text
+ if result_code == REQUEST_CODE_OK:
+ communication.communication_id = root.find(".//lote").text
+ if communication.operation == CREATE_OPERATION_CODE:
+ communication.state = "to_process"
+ else:
+ communication.state = "processed"
+ else:
+ communication.state = "error_sending"
+
+ except requests.exceptions.RequestException as e:
+ _handle_request_exception(communication, e)
+
+ @api.model
+ def ses_process_communications(self):
+ for communication in self.env["pms.ses.communication"].search(
+ [
+ ("state", "=", "to_process"),
+ ("operation", "!=", DELETE_OPERATION_CODE),
+ ]
+ ):
+ var_xml_get_batch = f"""
+
+ {communication.communication_id}
+
+ """
+ communication.query_status_xml = var_xml_get_batch
+ data = _string_to_zip_to_base64(var_xml_get_batch)
+ payload = _generate_payload(
+ communication.reservation_id.pms_property_id.institution_lessor_id,
+ "C",
+ "",
+ data,
+ )
+ communication.query_status_soap = payload
+ communication.query_status_time = fields.Datetime.now()
+ try:
+ soap_response = requests.request(
+ "POST",
+ communication.reservation_id.pms_property_id.ses_url,
+ headers=_get_auth_headers(communication),
+ data=payload,
+ verify=get_module_resource("pms_l10n_es", "static", "cert.pem"),
+ )
+ root = ET.fromstring(soap_response.text)
+ communication.response_communication_soap = soap_response.text
+ result_code = root.find(".//codigo").text
+ communication.response_query_status_soap = soap_response.text
+ if result_code == REQUEST_CODE_OK:
+ result_status = root.find(".//codigoEstado").text
+ if result_status == XML_OK:
+ communication.state = "processed"
+ communication.processing_result = root.find(
+ ".//descripcion"
+ ).text
+ elif result_status in [XML_PROCESSING, XML_PENDING]:
+ communication.state = "to_process"
+ communication.processing_result = "Not processed yet"
+ else:
+ communication.state = "error_processing"
+ communication.processing_result = root.find(".//error").text
+ # request errors
+ else:
+ communication.state = "error_processing"
+ communication.processing_result = root.find(".//descripcion").text
+ except requests.exceptions.RequestException as e:
+ _handle_request_exception(communication, e)
+
+ @api.model
+ def create_pending_notifications_traveller_report(self):
+
+ domain = [
+ ("state", "=", "onboard"),
+ ("checkin", "=", fields.Datetime.today().date()),
+ ("pms_property_id.institution", "=", "ses"),
+ ]
+ for reservation in (
+ self.env["pms.reservation"]
+ .search(domain)
+ .filtered(
+ lambda x: any(
+ state == "onboard"
+ for state in x.checkin_partner_ids.mapped("state")
+ )
+ )
+ ):
+ self.env["pms.ses.communication"].search(
+ [
+ ("reservation_id", "=", reservation.id),
+ ("entity", "=", "PV"),
+ ("state", "=", "to_send"),
+ ]
+ ).unlink()
+ self.env["pms.reservation"].create_communication(
+ reservation.id,
+ CREATE_OPERATION_CODE,
+ "PV",
+ )
diff --git a/pms_l10n_es/wizards/traveller_report.xml b/pms_l10n_es/wizards/traveller_report.xml
index 9dadfe3f9..971ebeed1 100644
--- a/pms_l10n_es/wizards/traveller_report.xml
+++ b/pms_l10n_es/wizards/traveller_report.xml
@@ -9,10 +9,40 @@
+
-
+
+
+
+
-
+
@@ -25,26 +55,30 @@
-
-
diff --git a/pms_l10n_es/wizards/wizard_ine.py b/pms_l10n_es/wizards/wizard_ine.py
index c60e45cca..e69a36f88 100644
--- a/pms_l10n_es/wizards/wizard_ine.py
+++ b/pms_l10n_es/wizards/wizard_ine.py
@@ -1,6 +1,7 @@
import base64
import calendar
import datetime
+import math
import xml.etree.cElementTree as ET
from odoo import _, api, fields, models
@@ -200,7 +201,7 @@ class WizardIne(models.TransientModel):
return rooms
@api.model
- def ine_nationalities(self, start_date, end_date, pms_property_id):
+ def ine_countries(self, start_date, end_date, pms_property_id):
"""
Returns a dictionary:
{
@@ -238,39 +239,39 @@ class WizardIne(models.TransientModel):
"""
for entry in read_group_result:
- if not entry["nationality_id"]:
- guests_with_no_nationality = self.env["pms.checkin.partner"].search(
- entry["__domain"]
- )
- guests_with_no_nationality = (
- str(guests_with_no_nationality.mapped("name"))
+ if not entry["residence_country_id"]:
+ guests_with_no_residence_country = self.env[
+ "pms.checkin.partner"
+ ].search(entry["__domain"])
+ guests_with_no_residence_country = (
+ str(guests_with_no_residence_country.mapped("name"))
.replace("[", "")
.replace("]", "")
)
raise ValidationError(
_(
- "The following guests have no residence nationality set :%s.",
- guests_with_no_nationality,
+ "The following guests have no residence country set :%s.",
+ guests_with_no_residence_country,
)
)
- # get nationality_id from group set read_group results
- nationality_id_code = (
+ # get residence_country_id from group set read_group results
+ residence_country_id_code = (
self.env["res.country"]
- .search([("id", "=", entry["nationality_id"][0])])
+ .search([("id", "=", entry["residence_country_id"][0])])
.code
)
# all countries except Spain
- if nationality_id_code != CODE_SPAIN:
+ if residence_country_id_code != CODE_SPAIN:
# get count of each result
num = entry["__count"]
# update/create dicts for countries & dates and set num. arrivals
- if not nationalities.get(nationality_id_code):
- nationalities[nationality_id_code] = dict()
- if not nationalities[nationality_id_code].get(date):
- nationalities[nationality_id_code][date] = dict()
- nationalities[nationality_id_code][date][type_of_entry] = num
+ if not countries.get(residence_country_id_code):
+ countries[residence_country_id_code] = dict()
+ if not countries[residence_country_id_code].get(date):
+ countries[residence_country_id_code][date] = dict()
+ countries[residence_country_id_code][date][type_of_entry] = num
else:
# arrivals grouped by state_id (Spain "provincias")
read_by_arrivals_spain = self.env["pms.checkin.partner"].read_group(
@@ -312,20 +313,18 @@ class WizardIne(models.TransientModel):
num_spain = entry_from_spain["__count"]
# update/create dicts for states & dates and set num. arrivals
- if not nationalities.get(CODE_SPAIN):
- nationalities[CODE_SPAIN] = dict()
+ if not countries.get(CODE_SPAIN):
+ countries[CODE_SPAIN] = dict()
- if not nationalities[CODE_SPAIN].get(ine_code):
- nationalities[CODE_SPAIN][ine_code] = dict()
+ if not countries[CODE_SPAIN].get(ine_code):
+ countries[CODE_SPAIN][ine_code] = dict()
- if not nationalities[CODE_SPAIN][ine_code].get(date):
- nationalities[CODE_SPAIN][ine_code][date] = dict()
- nationalities[CODE_SPAIN][ine_code][date][
- type_of_entry
- ] = num_spain
+ if not countries[CODE_SPAIN][ine_code].get(date):
+ countries[CODE_SPAIN][ine_code][date] = dict()
+ countries[CODE_SPAIN][ine_code][date][type_of_entry] = num_spain
# result object
- nationalities = dict()
+ countries = dict()
# iterate days between start_date and end_date
for p_date in [
@@ -351,36 +350,36 @@ class WizardIne(models.TransientModel):
# arrivals
arrivals = hosts.filtered(lambda x: x.reservation_id.checkin == p_date)
- # arrivals grouped by nationality_id
+ # arrivals grouped by residence_country_id
read_by_arrivals = self.env["pms.checkin.partner"].read_group(
[("id", "in", arrivals.ids)],
- ["nationality_id"],
- ["nationality_id"],
- orderby="nationality_id",
+ ["residence_country_id"],
+ ["residence_country_id"],
+ orderby="residence_country_id",
lazy=False,
)
# departures
departures = hosts.filtered(lambda x: x.reservation_id.checkout == p_date)
- # departures grouped by nationality_id
+ # departures grouped by residence_country_id
read_by_departures = self.env["pms.checkin.partner"].read_group(
[("id", "in", departures.ids)],
- ["nationality_id"],
- ["nationality_id"],
- orderby="nationality_id",
+ ["residence_country_id"],
+ ["residence_country_id"],
+ orderby="residence_country_id",
lazy=False,
)
# pernoctations
pernoctations = hosts - departures
- # pernoctations grouped by nationality_id
+ # pernoctations grouped by residence_country_id
read_by_pernoctations = self.env["pms.checkin.partner"].read_group(
[("id", "in", pernoctations.ids)],
- ["nationality_id"],
- ["nationality_id"],
- orderby="nationality_id",
+ ["residence_country_id"],
+ ["residence_country_id"],
+ orderby="residence_country_id",
lazy=False,
)
ine_add_arrivals_departures_pernoctations(
@@ -393,7 +392,7 @@ class WizardIne(models.TransientModel):
p_date, "pernoctations", read_by_pernoctations
)
- return nationalities
+ return countries
def ine_calculate_adr(self, start_date, end_date, domain=False):
"""
@@ -575,10 +574,10 @@ class WizardIne(models.TransientModel):
# INE XML -> GUESTS
accommodation_tag = ET.SubElement(survey_tag, "ALOJAMIENTO")
- nationalities = self.ine_nationalities(
+ countries = self.ine_countries(
self.start_date, self.end_date, self.pms_property_id.id
)
- for key_country, value_country in nationalities.items():
+ for key_country, value_country in countries.items():
country = self.env["res.country"].search([("code", "=", key_country)])
@@ -741,8 +740,21 @@ class WizardIne(models.TransientModel):
# so at least I will feel that the effort made some sense :)
total_percent = sum([val for val in percents.values()])
+ sum_percentages = 0
for group in total_groups_domains.keys():
percents[group] = round(percents[group] * 100 / (total_percent or 1), 2)
+ sum_percentages += percents[group]
+
+ if sum_percentages < 100:
+ for group in total_groups_domains.keys():
+ if percents[group] > 0:
+ percents[group] += math.ceil((100 - sum_percentages) * 100) / 100
+ break
+ elif sum_percentages > 100:
+ for group in total_groups_domains.keys():
+ if percents[group] > 0:
+ percents[group] -= math.ceil((sum_percentages - 100) * 100) / 100
+ break
ET.SubElement(prices_tag, "ADR_TOUROPERADOR_TRADICIONAL").text = str(
adrs["tour_operator_offline"]