From 096f60a2ece6f3a3700c84f0155900e4e1aafda7f30151504df717ab24fc3c01 Mon Sep 17 00:00:00 2001 From: Daniel Stoppek Date: Fri, 23 May 2025 11:23:16 +0200 Subject: [PATCH] Add Customer/Object/Employee working - DEBUGGING anchor Errors done --- .gitignore | 4 +- Gui/AddCustomer.qml | 120 - Gui/Customer/AddCustomer.qml | 171 +- Gui/Customer/CustomerView.qml | 2 +- Gui/Customer/CustomersTable.qml | 4 +- Gui/{ => Customer}/NoCustomerContact.qml | 0 Gui/CustomerContactDetails.qml | 174 - Gui/CustomerDetails.qml | 61 - Gui/CustomerDetailsView.qml | 225 - Gui/CustomerView.qml | 271 - Gui/CustomersTable.qml | 177 - Gui/Employees/AddApplicant.qml | 19 +- Gui/Employees/ApplicantForm.qml | 112 +- Gui/Employees/EmployeesTable.qml | 1 - Gui/LoginScreen.qml | 4 +- Gui/Navigation.qml | 2 +- Gui/Objects/AddNewObject.qml | 255 + Gui/Objects/AddObject.qml | 155 + Gui/Objects/AddObjectEmployee.qml | 130 + Gui/Objects/ObjectAddOnContactPerson.qml | 317 + Gui/Objects/ObjectAddOnEmployee.qml | 125 + Gui/Objects/ObjectAddOns.qml | 28 + Gui/Objects/ObjectDetails.qml | 27 + Gui/Objects/ObjectView.qml | 238 + Gui/Objects/ObjectsTable.qml | 186 + Gui/Objects/qmldir | 1 + Gui/Offers/OffersTable.qml | 1 - Js/JsLib.js | 3 + ...schemer_v1.1-pyqcrm-202505141328_clean.sql | 28421 ++++++++++++++++ lib/ConfigLoader.py | 6 - lib/DB/BusinessModel.py | 2 +- lib/DB/ContactDAO.py | 20 +- lib/DB/EmployeeModel.py | 43 +- main.py | 10 +- qml.qrc | 18 +- 35 files changed, 30124 insertions(+), 1209 deletions(-) delete mode 100644 Gui/AddCustomer.qml rename Gui/{ => Customer}/NoCustomerContact.qml (100%) delete mode 100644 Gui/CustomerContactDetails.qml delete mode 100644 Gui/CustomerDetails.qml delete mode 100644 Gui/CustomerDetailsView.qml delete mode 100644 Gui/CustomerView.qml delete mode 100644 Gui/CustomersTable.qml create mode 100644 Gui/Objects/AddNewObject.qml create mode 100644 Gui/Objects/AddObject.qml create mode 100644 Gui/Objects/AddObjectEmployee.qml create mode 100644 Gui/Objects/ObjectAddOnContactPerson.qml create mode 100644 Gui/Objects/ObjectAddOnEmployee.qml create mode 100644 Gui/Objects/ObjectAddOns.qml create mode 100644 Gui/Objects/ObjectDetails.qml create mode 100644 Gui/Objects/ObjectView.qml create mode 100644 Gui/Objects/ObjectsTable.qml create mode 100644 Gui/Objects/qmldir create mode 100644 doc/db_schemer_v1.1-pyqcrm-202505141328_clean.sql diff --git a/.gitignore b/.gitignore index 3e6c0cc..c6c82fd 100644 --- a/.gitignore +++ b/.gitignore @@ -210,7 +210,7 @@ dmypy.json # pytype static type analyzer .pytype/ .qtcreator/ -*.pyproject.user +*.pyproject.user* # Cython debug symbols cython_debug/ @@ -228,4 +228,4 @@ cython_debug/ rc_*.py -.DS_STORE \ No newline at end of file +.DS_STORE diff --git a/Gui/AddCustomer.qml b/Gui/AddCustomer.qml deleted file mode 100644 index d06078d..0000000 --- a/Gui/AddCustomer.qml +++ /dev/null @@ -1,120 +0,0 @@ -// import QtQuick -// import QtQuick.Layouts -// import QtQuick.Controls -// import QtQuick.Dialogs -// import Js - -// ColumnLayout -// { -// property var new_business: null -// Layout.fillWidth: true -// Layout.fillHeight: true -// spacing: 15 -// Label -// { -// text: qsTr("Kunden anlegen") -// horizontalAlignment: Text.AlignHCenter -// Layout.fillWidth: true -// font.pixelSize: 35 -// } -// CheckBox -// { -// id: checkAddContact -// text: qsTr("Ansprechpartner hinzufügen") -// Layout.alignment: Qt.AlignRight -// checked: false -// onCheckStateChanged: -// { -// checkFields() -// } -// } - -// RowLayout -// { -// id: addCustomer -// Layout.fillWidth: true -// Layout.fillHeight: true -// spacing: 45 -// Frame -// { -// Layout.alignment: Qt.AlignTop -// Layout.fillWidth: true -// CustomerView -// { -// id: customerView -// width: parent.width -// } -// } - -// AddContact -// { -// id: addContactFrame -// visible: checkAddContact.checked -// } -// } -// RowLayout -// { -// Layout.fillHeight: true -// Layout.alignment: Qt.AlignRight -// Button -// { -// text: qsTr("Abbrechen") -// onClicked: contentStack.pop() -// } -// Button -// { -// id: saveBtn -// text: qsTr("Speichern") -// enabled: false -// onClicked: -// { -// if (!checkAddContact.checked) -// { -// new_business = JsLib.parseForm(customerView) -// business_model.addBusiness(new_business, 0) -// contentStack.pop() -// } -// else -// { -// new_business = JsLib.parseForm(customerView) -// var new_contact = JsLib.parseForm(addContactFrame.contactGrid) -// contact_model.addContact(new_contact) -// } -// } -// } -// } -// Item -// { -// id: spacer3 -// Layout.fillHeight: true -// } - -// //Component.onCompleted: contact_model.contactIdReady.connect(onContactId) - -// Connections -// { -// target: contact_model - -// function onContactIdReady() -// { -// var con_id = arguments[0] -// business_model.addBusiness(new_business, con_id) -// contentStack.pop() -// } -// } - -// function checkFields() -// { -// if(checkAddContact.checked) -// { -// if(!customerView.checkBusinessField() || !addContactFrame.checkContactField()) -// saveBtn.enabled = false -// else -// saveBtn.enabled = true -// } -// else if (!customerView.checkBusinessField()) -// saveBtn.enabled = false -// else -// saveBtn.enabled = true -// } -// } diff --git a/Gui/Customer/AddCustomer.qml b/Gui/Customer/AddCustomer.qml index 7549233..4260876 100644 --- a/Gui/Customer/AddCustomer.qml +++ b/Gui/Customer/AddCustomer.qml @@ -4,117 +4,121 @@ import QtQuick.Controls import QtQuick.Dialogs import Js import Gui + ScrollView { id: scroll width: parent.width height: parent.height - - -ColumnLayout -{ property var new_business: null - height: Screen.desktopAvailableHeight - width: scroll.width - Layout.fillWidth: true - Layout.fillHeight: true - spacing: 15 - Label + ColumnLayout { - text: qsTr("Kunden anlegen") - horizontalAlignment: Text.AlignHCenter + + height: Screen.desktopAvailableHeight + width: scroll.width Layout.fillWidth: true - font.pixelSize: 35 - } - CheckBox - { - id: checkAddContact - text: qsTr("Ansprechpartner hinzufügen") - Layout.alignment: Qt.AlignRight - checked: false - onCheckStateChanged: - { - checkFields() - } - } + Layout.fillHeight: true + spacing: 15 - RowLayout - { - id: addCustomer - // Layout.fillWidth: true - // Layout.fillHeight: true - - spacing: 45 - Frame + Label { - Layout.alignment: Qt.AlignTop + text: qsTr("Kunden anlegen") + horizontalAlignment: Text.AlignHCenter Layout.fillWidth: true - CustomerView + font.pixelSize: 35 + } + CheckBox + { + id: checkAddContact + text: qsTr("Ansprechpartner hinzufügen") + Layout.alignment: Qt.AlignRight + checked: false + onCheckStateChanged: { - id: customerView - width: parent.width + checkFields() } } - AddContact + RowLayout { - id: addContactFrame - visible: checkAddContact.checked - } - } + id: addCustomer + // Layout.fillWidth: true + // Layout.fillHeight: true - RowLayout - { - Layout.fillHeight: true - Layout.alignment: Qt.AlignRight - Button - { - text: qsTr("Abbrechen") - onClicked: contentStack.pop() - } - Button - { - id: saveBtn - text: qsTr("Speichern") - enabled: true - onClicked: + spacing: 45 + Frame { - if (!checkAddContact.checked) + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + CustomerView { - new_business = JsLib.parseForm(customerView) - business_model.addBusiness(new_business, 0) - contentStack.pop() + id: customerView + width: parent.width } - else + } + + AddContact + { + id: addContactFrame + visible: checkAddContact.checked + } + } + + RowLayout + { + Layout.fillHeight: true + Layout.alignment: Qt.AlignRight + Button + { + text: qsTr("Abbrechen") + onClicked: contentStack.pop() + } + Button + { + id: saveBtn + text: qsTr("Speichern") + enabled: false + onClicked: { - new_business = JsLib.parseForm(customerView) - var new_contact = JsLib.parseForm(addContactFrame.contactGrid) - contact_model.addContact(new_contact) + if (!checkAddContact.checked) + { + new_business = JsLib.parseForm(customerView) + console.log(JSON.stringify(new_business)) + business_model.addBusiness(new_business, 0) + contentStack.pop() + } + else + { + new_business = JsLib.parseForm(customerView) + var new_contact = JsLib.parseForm(addContactFrame.contactGrid) + contact_model.addContact(new_contact) + } } } } - } - Item - { - id: spacer3 - Layout.fillHeight: true - } - - //Component.onCompleted: contact_model.contactIdReady.connect(onContactId) - - Connections - { - target: contact_model - - function onContactIdReady() + Item { - var con_id = arguments[0] - business_model.addBusiness(new_business, con_id) - contentStack.pop() + id: spacer3 + Layout.fillHeight: true } - } + //Component.onCompleted: contact_model.contactIdReady.connect(onContactId) + + Connections + { + target: contact_model + + function onContactIdReady() + { + var con_id = arguments[0] + business_model.addBusiness(new_business, con_id) + contentStack.pop() + } + } + + + } function checkFields() { if(checkAddContact.checked) @@ -130,4 +134,3 @@ ColumnLayout saveBtn.enabled = true } } -} diff --git a/Gui/Customer/CustomerView.qml b/Gui/Customer/CustomerView.qml index 0e6da5b..f784264 100644 --- a/Gui/Customer/CustomerView.qml +++ b/Gui/Customer/CustomerView.qml @@ -276,7 +276,7 @@ GridLayout } function checkBusinessField() { - if (!firmenName.text.trim() || !streetid.text.trim()) + if (!firmenName.text.trim() || !streetid.text.trim() || !housenoid.text.trim()) { return false diff --git a/Gui/Customer/CustomersTable.qml b/Gui/Customer/CustomersTable.qml index 661ebec..4c49636 100644 --- a/Gui/Customer/CustomersTable.qml +++ b/Gui/Customer/CustomersTable.qml @@ -13,10 +13,10 @@ ColumnLayout { - anchors.fill: parent + spacing: Dimensions.l - Component.onCompleted: contentStack.pop() + // Component.onCompleted: contentStack.pop() RowLayout { diff --git a/Gui/NoCustomerContact.qml b/Gui/Customer/NoCustomerContact.qml similarity index 100% rename from Gui/NoCustomerContact.qml rename to Gui/Customer/NoCustomerContact.qml diff --git a/Gui/CustomerContactDetails.qml b/Gui/CustomerContactDetails.qml deleted file mode 100644 index 6c66c9a..0000000 --- a/Gui/CustomerContactDetails.qml +++ /dev/null @@ -1,174 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts - -GridLayout -{ - columns: 2 - rowSpacing: 25 - Layout.leftMargin: 7 - - // Grid row - ColumnLayout - { - Layout.columnSpan: 2 - Label - { - id: contactLabel - color: "darksalmon" - font.bold: true - text: qsTr("Ansprechpartner") - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['salute'] + " " + contact['contact']['fname'] + " " + contact['contact']['lname']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Geburtsdatum") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['birthday']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("E-Mail") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['email']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Position") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['position']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Priorität") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['priority']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Telefon") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['phone']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Handy") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['cell']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Abrechnung") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['invoice']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Mahnung") - font.bold: true - } - - Label - { - color: "goldenrod" - text: contact? contact['contact']['reminder']: "" - } - } - - // Grid row - Item - { - Layout.columnSpan: 2 - Layout.fillHeight: true - } - - Component.onCompleted: - { - if (contact && contact['contact']['salute'] === "Frau") - contactLabel.text = qsTr("Ansprechpartnerin") - } -} diff --git a/Gui/CustomerDetails.qml b/Gui/CustomerDetails.qml deleted file mode 100644 index e0c13d3..0000000 --- a/Gui/CustomerDetails.qml +++ /dev/null @@ -1,61 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts - -ColumnLayout -{ - property int selectedClient: -1 - property var client: null - property var contact: null - id: clDet - - Button - { - text: qsTr("Zurück") - onClicked: contentStack.pop() - } - - SplitView - { - id: clDetView - Layout.fillHeight: true - Layout.fillWidth: true - leftPadding: 9 - rightPadding: 9 - - CustomerDetailsView - { - id: customerDetails - } - - CustomerContactDetails - { - id: contactDetails - visible: false - } - - NoCustomerContact - { - id: noCustomerContact - visible: false - } - } - - Item - { - //Layout.columnSpan: 2 - Layout.fillHeight: true - } - - Component.onCompleted: - { - //business_model.onRowClicked(selectedClient) - client = business_model.getClientDetails() - if (client['business']['contactid'] > 0) - { - contact = contact_model.getContactDetails(client['business']['contactid']) - contactDetails.visible = true - } - else noCustomerContact.visible = true - } -} diff --git a/Gui/CustomerDetailsView.qml b/Gui/CustomerDetailsView.qml deleted file mode 100644 index c69ac2b..0000000 --- a/Gui/CustomerDetailsView.qml +++ /dev/null @@ -1,225 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts - -GridLayout -{ - columns: 2 - rowSpacing: 25 - SplitView.preferredWidth: clDetView.width / 3 * 1.8 - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Steuer-ID") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['tax']? client['business']['tax']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Anmerkungen") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['info']? client['business']['info']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Kundenname") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['company'] - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("CEO") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['ceo'] - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Telefon") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['phone']? client['business']['phone']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Handy") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['cell']? client['business']['cell']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Webseite") - font.bold: true - } - - Label - { - id: clientWebsite - color: "goldenrod" - font.underline: false - text: client['business']['website']? '' + client['business']['website'] + '': "" - onLinkActivated: - { - var web_protocol = /^((http|https):\/\/)/; - var client_website = !web_protocol.test(client['business']['website'])? "https://" + client['business']['website']: client['business']['website']; - Qt.openUrlExternally(client_website) - } - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("E-Mail") - font.bold: true - } - - Label - { - id: clientEmail - color: "goldenrod" - text: client['business']['email']? '' + client['business']['email'] + '': "" - onLinkActivated: Qt.openUrlExternally('mailto:' + client['business']['email']) - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Straße") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['street']? client['business']['tax']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Haus-Nr.") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['house']? client['business']['house']: "" - } - } - - // Grid row - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("PLZ") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['zip']? client['business']['zip']: "" - } - } - - ColumnLayout - { - Label - { - color: "darksalmon" - text: qsTr("Stadt") - font.bold: true - } - - Label - { - color: "goldenrod" - text: client['business']['city']? client['business']['city']: "" - } - } - - // Grid row - // Item - // { - // Layout.columnSpan: 2 - // Layout.fillHeight: true - // } -} diff --git a/Gui/CustomerView.qml b/Gui/CustomerView.qml deleted file mode 100644 index b22491a..0000000 --- a/Gui/CustomerView.qml +++ /dev/null @@ -1,271 +0,0 @@ -// import QtQuick -// import QtQuick.Controls -// import QtQuick.Layouts - -// GridLayout -// { -// id: customerView -// columns: 4 -// Layout.fillWidth: true -// Layout.fillHeight: true -// rowSpacing: 9 -// property alias businesstxt: firmenName -// property alias street: streetid -// property alias postcodetxt: postcode -// property alias citytxt: city -// Label -// { -// id: lblFirmenName -// text: qsTr("Firmenname*") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter - -// } -// TextField -// { -// property string name: "business" - -// id: firmenName -// Layout.fillWidth: true -// Layout.alignment: Qt.AlignVCenter -// onTextChanged: checkFields() -// Layout.columnSpan: 3 -// } - -// Label -// { -// text: qsTr("Straße*") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -// } - -// TextField -// { -// property string name: "street" -// id: streetid -// Layout.fillWidth: true -// onTextChanged: checkFields() -// } - -// Label -// { -// text: qsTr("Nr.*") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -// } - -// TextField -// { -// property string name: "houseno" -// id: housenoid -// Layout.fillWidth: true -// onTextChanged: checkFields() -// validator: RegularExpressionValidator -// { -// regularExpression: /([0-9a-zA-Z\-]{1,6})/ -// } -// } - - -// Label -// { -// text: qsTr("PLZ") -// Layout.alignment: Qt.AlignRight -// } - - - - -// ComboBox -// { -// property string name: "postcode" -// id: postcode -// Layout.fillWidth: true -// editable: true -// onCurrentTextChanged: checkFields() -// onEditTextChanged: checkFields() -// onActivated: currentValue -// model: address_model -// textRole: "display" -// popup.height: 300 -// currentIndex: -1 -// onCurrentIndexChanged: city.currentIndex = postcode.currentIndex -// Layout.columnSpan: 3 -// validator: RegularExpressionValidator -// { -// regularExpression: /([0-9]{1,5})/ -// } - -// } - -// Label -// { -// text: qsTr("Ort") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -// } -// ComboBox -// { -// property string name: "city" -// id: city -// Layout.fillWidth: true -// editable: true -// onEditTextChanged: checkFields() -// onCurrentTextChanged: checkFields() -// model: address_model -// textRole: "city" -// popup.height: 300 -// currentIndex: -1 -// Layout.columnSpan: 3 -// } - -// Label -// { -// text: qsTr("Telefon") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -// } -// TextField -// { -// property string name: "telephone" -// id: telephone -// Layout.fillWidth: true -// Layout.columnSpan: 3 -// validator: RegularExpressionValidator -// { -// regularExpression: /([+0-9]{1})([0-9]{1,17})/ -// } - -// } - -// Label -// { -// text: qsTr("Mobil") -// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter -// } -// TextField -// { -// property string name: "cellphone" -// id: cellphone -// Layout.fillWidth: true -// Layout.columnSpan: 3 -// validator: RegularExpressionValidator -// { -// regularExpression: /([+0-9]{1})([0-9]{1,17})/ -// } -// } - -// Label -// { -// text: qsTr("E-Mail") -// Layout.alignment: Qt.AlignRight -// } -// TextField -// { -// property string name: "email" -// id: email -// Layout.fillWidth: true -// placeholderText: qsTr("beispiel@domain.de") -// Layout.columnSpan: 3 -// validator: RegularExpressionValidator -// { -// regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~\-\_0-9A-Za-z]{1,185})@([0-9A-Za-z\.\-\_]{1,64})\.([a-zA-z]{2,5})/ -// } -// } - -// Label -// { -// text: qsTr("Homepage") -// Layout.alignment: Qt.AlignRight -// } -// TextField -// { -// property string name: "homepage" -// id: homepage -// Layout.fillWidth: true -// Layout.columnSpan: 3 -// placeholderText: "www.oschkarischtverhaftetwegensexy.jinx" -// } - -// Label -// { -// text: qsTr("Geschäftsführer") -// Layout.alignment: Qt.AlignRight -// } -// TextField -// { -// property string name: "ceo" -// id: ceo -// Layout.fillWidth: true -// Layout.columnSpan: 3 -// } - -// Label -// { -// text: qsTr("USt-IdNr") -// Layout.alignment: Qt.AlignRight -// } -// TextField -// { -// property string name: "taxno" -// id: taxno -// Layout.fillWidth: true -// Layout.columnSpan: 3 -// } -// Label -// { -// text: qsTr("Typ") -// Layout.alignment: Qt.AlignRight -// } -// ComboBox -// { -// property string name: "typeid" -// id: typeid -// Layout.fillWidth: true -// editable: false -// model: business_type -// textRole: "display" -// Layout.columnSpan: 3 -// } -// Label -// { -// text: qsTr("Info") -// Layout.alignment: Qt.AlignRight | Qt.AlignTop -// } - -// ScrollView -// { -// id: infoView -// Layout.fillWidth: true -// Layout.preferredHeight: 100 -// Layout.columnSpan: 3 -// ScrollBar.horizontal: ScrollBar -// { -// policy: ScrollBar.AlwaysOn -// } - -// TextArea -// { -// property string name: "customerinfo" -// id: customerInfo -// implicitWidth: parent.width -// wrapMode: TextEdit.Wrap -// background: Rectangle -// { -// color: customerInfo.palette.base -// border.color: customerInfo.activeFocus? customerInfo.palette.highlight: customerInfo.palette.base -// } -// } -// } -// function checkBusinessField() -// { -// if (!firmenName.text.trim() || !streetid.text.trim()) -// { -// return false - -// } -// else -// { -// if (!postcode.editText.trim() || !postcode.currentText || !city.editText.trim() || !city.currentText) -// return false -// else -// return true -// } - -// } -// } diff --git a/Gui/CustomersTable.qml b/Gui/CustomersTable.qml deleted file mode 100644 index 661ebec..0000000 --- a/Gui/CustomersTable.qml +++ /dev/null @@ -1,177 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.qmlmodels - -ColumnLayout { - property var availableFilters: ["Name", "Adresse", "PLZ", "Ort"] - - function viewCriterion(criterion) - { - business_model.viewCriterion(criterion.text); - } - - - - anchors.fill: parent - spacing: Dimensions.l - - Component.onCompleted: contentStack.pop() - - RowLayout - { - Layout.fillWidth: true - spacing: Dimensions.l - - - SearchBar - { - } - QuickFilter { - onSelectedChanged: (name) => { - business_model.viewCriterion(name) - } - - model: ListModel { - ListElement { - - name: "Alle" - text: qsTr("Alle") - selected: true - } - ListElement { - name: "Interessent" - text: qsTr("Interessent") - selected: false - } - ListElement { - name: "Kunde" - text: qsTr("Kunde") - selected: false - } - ListElement { - name: "Lieferant" - text: qsTr("Lieferant") - selected: false - } - ListElement { - name: "Erledigt" - text: qsTr("Erledigt") - selected: false - } - } - } - Button - { - id: addCustomer - - Layout.alignment: Qt.AlignRight - icon.source: "qrc:/images/PlusCircle.svg" - text: qsTr("Kunde Hinzufügen") - onClicked: contentStack.push("AddCustomer.qml") - } - } - ColumnLayout - { - Layout.fillWidth: true - Layout.fillHeight: true - Layout.verticalStretchFactor: 1 - clip: true - - HorizontalHeaderView - { - id: horizontalHeader - - Layout.fillWidth: true - implicitHeight: 40 - movableColumns: true //@disable-check M16 - syncView: customerTable - - delegate: Rectangle - { - Layout.fillWidth: true - border.color: addCustomer.palette.base - color: addCustomer.palette.alternateBase - implicitHeight: 40 - implicitWidth: 1 - - Text - { - color: addCustomer.palette.text - elide: Text.ElideRight - height: parent.height - horizontalAlignment: Text.AlignHCenter - text: model.display - verticalAlignment: Text.AlignVCenter - width: parent.width - } - } - } - TableView { - id: customerTable - - property real newWidth: 0 - - Layout.fillHeight: true - Layout.fillWidth: true - alternatingRows: true - columnSpacing: 1 - model: business_model - resizableColumns: true - rowSpacing: 2 - selectionBehavior: TableView.SelectRows - z: 1 - - ScrollBar.vertical: ScrollBar { - policy: customerTable.contentHeight > customerTable.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff - } - delegate: Rectangle { - required property bool current - required property bool selected - - color: selected ? addCustomer.palette.highlight //palette.highlight - : (customerTable.alternatingRows && row % 2 !== 0 ? addCustomer.palette.base // palette.base - : addCustomer.palette.alternateBase) //palette.alternateBase) - implicitHeight: 25 - implicitWidth: customerTable.width / customerTable.columns - - Text { - color: addCustomer.palette.text - elide: Text.ElideRight - height: parent.height - leftPadding: 9 - text: model.display == null ? "" : model.display // @disable-check M126 - verticalAlignment: Text.AlignVCenter - width: parent.width - } - MouseArea { - id: mouseArea - - property bool hovered: false - - anchors.fill: parent - hoverEnabled: true - - onDoubleClicked: { - business_model.onRowClicked(row); - contentStack.push("CustomerDetails.qml", { - selectedClient: row - }); - } - onEntered: { - customerTable.selectionModel.select(customerTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows); - } - } - } - selectionModel: ItemSelectionModel { - id: selModel - - model: customerTable.model - } - } - - } - Item { - Layout.fillHeight: true - } -} diff --git a/Gui/Employees/AddApplicant.qml b/Gui/Employees/AddApplicant.qml index 630fa6b..3326d61 100644 --- a/Gui/Employees/AddApplicant.qml +++ b/Gui/Employees/AddApplicant.qml @@ -1,8 +1,10 @@ import QtQuick import QtQuick.Layouts import TeroStyle +import Js ColumnLayout { + anchors.fill: parent spacing: Dimensions.l @@ -13,31 +15,36 @@ ColumnLayout { }); } - ApplicantForm { + ApplicantForm + { id: applicantForm Layout.alignment: Qt.AlignTop Layout.fillHeight: true Layout.verticalStretchFactor: 1 } - RowLayout { + RowLayout + { Layout.alignment: Qt.AlignRight spacing: Dimensions.l - Button { + Button + { icon.source: "qrc:/images/ArrowLeftCircle-Outline.svg" text: qsTr("Verwerfen") onClicked: contentStack.pop() } - Button { + Button + { enabled: applicantForm.valid icon.source: "qrc:/images/CheckCircle.svg" text: qsTr("Speichern") - onClicked: { + onClicked: + { employee_model.addApplicant(applicantForm.value); } } } -} \ No newline at end of file +} diff --git a/Gui/Employees/ApplicantForm.qml b/Gui/Employees/ApplicantForm.qml index efd7a34..35582a5 100644 --- a/Gui/Employees/ApplicantForm.qml +++ b/Gui/Employees/ApplicantForm.qml @@ -8,19 +8,21 @@ ColumnLayout readonly property int fieldM: 235 readonly property int fieldS: 110 readonly property bool valid: city.acceptableInput && email.acceptableInput && firstname.acceptableInput && lastname.acceptableInput && mobile.acceptableInput && phone.acceptableInput && postcode.acceptableInput && formofaddress.acceptableInput && title.acceptableInput - readonly property var value: QtObject { - readonly property string city: (city.editText ? city.editText : city.currentText) ?? "" - readonly property string email: email.text - readonly property string firstname: firstname.text - readonly property string formofaddress: formofaddress.currentText ?? "" - readonly property string houseno: houseno.text ?? "" - readonly property string lastname: lastname.text - readonly property string mobile: mobile.text - readonly property string phone: phone.text - readonly property string postcode: (postcode.editText ? postcode.editText : postcode.currentText) ?? "" - readonly property string street: (street.editText ? street.editText : street.currentText) ?? "" - readonly property string title: title.currentText - } + readonly property var value: QtObject + { + readonly property string city: (city.editText ? city.editText : city.currentText) ?? "" + readonly property string email: email.text + readonly property string firstname: firstname.text + readonly property string formofaddress: formofaddress.text + readonly property string houseno: houseno.text + readonly property string lastname: lastname.text + readonly property string mobile: mobile.text + readonly property string phone: phone.text + readonly property string postcode: (postcode.editText ? postcode.editText : postcode.currentText) ?? "" + readonly property string street: street.text + readonly property string title: title.currentText + readonly property string country: (country.editText ? country.editText : country.currentText) ?? "" + } spacing: Dimensions.l @@ -41,6 +43,7 @@ ColumnLayout label: qsTr("Anrede") ComboBox { + // property string name: "title" id: title implicitWidth: fieldM @@ -60,11 +63,14 @@ ColumnLayout } } } - Field { + Field + { label: qsTr("Vorname") mandatory: true - TextField { + TextField + { + // property string name: "firstname" id: firstname implicitWidth: fieldM @@ -79,6 +85,7 @@ ColumnLayout mandatory: true TextField { + // property string name: "lastname" id: lastname implicitWidth: fieldM @@ -92,39 +99,45 @@ ColumnLayout RowLayout { spacing: Dimensions.m - Field { - id: street - + Field + { label: qsTr("Straße") mandatory: true - TextField { + TextField + { + // property string name: "street" + id: street implicitWidth: fieldM placeholderText: qsTr("Musterstraße") - validator: NotEmptyValidator { } } } - Field { - id: houseno - mandatory: true + Field + { + mandatory: true label: qsTr("Hausnummer") - TextField { + TextField + { + // property string name: "houseno" + id: houseno implicitWidth: fieldS placeholderText: qsTr("1a") - validator: NotEmptyValidator { } } } - Field { + Field + { label: qsTr("PLZ") mandatory: true - ComboBox { + ComboBox + { + // property string name: "postcode" id: postcode currentIndex: -1 @@ -139,11 +152,14 @@ ColumnLayout validator: NotEmptyValidator {} } } - Field { + Field + { label: qsTr("Ort") mandatory: true - ComboBox { + ComboBox + { + // property string name: "city" id: city currentIndex: -1 @@ -156,6 +172,22 @@ ColumnLayout } } } + Field + { + label: qsTr("Land") + mandatory: true + + ComboBox + { + // property string name: "country" + id: country + currentIndex: 37 + editable: true + implicitWidth: fieldM + model: address_model + textRole: "country" + } + } } IconLabel { color: Colors.foreground @@ -174,6 +206,7 @@ ColumnLayout label: qsTr("Telefonnummer") TextField { + // property string name: "phone" id: phone implicitWidth: fieldM @@ -183,10 +216,13 @@ ColumnLayout } } } - Field { + Field + { label: qsTr("Mobil") - TextField { + TextField + { + // property string name: "mobile" id: mobile implicitWidth: fieldM @@ -196,10 +232,13 @@ ColumnLayout } } } - Field { + Field + { label: qsTr("E-Mail Adresse") - TextField { + TextField + { + // property string name: "email" id: email implicitWidth: fieldM @@ -209,10 +248,13 @@ ColumnLayout } } } - Field { + Field + { label: qsTr("Briefanrede") - TextField { + TextField + { + // property string name: "formofaddress" id: formofaddress implicitWidth: fieldM diff --git a/Gui/Employees/EmployeesTable.qml b/Gui/Employees/EmployeesTable.qml index d9fd007..e696483 100644 --- a/Gui/Employees/EmployeesTable.qml +++ b/Gui/Employees/EmployeesTable.qml @@ -4,7 +4,6 @@ import QtQuick.Controls import Qt.labs.qmlmodels ColumnLayout { - anchors.fill: parent spacing: Dimensions.l RowLayout { diff --git a/Gui/LoginScreen.qml b/Gui/LoginScreen.qml index fa80131..3adf50b 100644 --- a/Gui/LoginScreen.qml +++ b/Gui/LoginScreen.qml @@ -19,8 +19,8 @@ Item { contentStack.replace("Dashboard.qml"); } - anchors.fill: parent - anchors.topMargin: Dimensions.l + // anchors.fill: parent + // anchors.topMargin: Dimensions.l Component.onCompleted: { loggedin_user.loginOkay.connect(loggedin); diff --git a/Gui/Navigation.qml b/Gui/Navigation.qml index 5838039..3713dc4 100644 --- a/Gui/Navigation.qml +++ b/Gui/Navigation.qml @@ -38,7 +38,7 @@ ColumnLayout { BarButton { ButtonGroup.group: mainNav icon.source: "qrc:/images/BuildingOffice2-Outline.svg" - target: "/Gui/ObjectsTable.qml" + target: "/Gui/Objects/ObjectsTable.qml" text: qsTr("Objekt") visible: !onSubPage } diff --git a/Gui/Objects/AddNewObject.qml b/Gui/Objects/AddNewObject.qml new file mode 100644 index 0000000..88133cd --- /dev/null +++ b/Gui/Objects/AddNewObject.qml @@ -0,0 +1,255 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts + +GridLayout +{ + id: newObject + + columns: 4 + Layout.fillWidth: true + Layout.fillHeight: true + rowSpacing: 9 + + + //// New grid row + Label + { + text: qsTr("Land") + Layout.alignment: Qt.AlignRight + visible: false + + } + + ComboBox + { + property string name: "country" + id: country + Layout.fillWidth: true + editable: true + // onEditTextChanged: checkFields() + // onCurrentTextChanged: checkFields() + model: address_model + textRole: "country" + popup.height: 300 + currentIndex: 37 + visible: false + } + Label + { + text: qsTr("PLZ") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + + ComboBox + { + property string name: "postcode" + id: postcode + Layout.fillWidth: true + editable: true + onCurrentTextChanged: checkFields() + onEditTextChanged: checkFields() + onActivated: currentValue + model: address_model + textRole: "display" + popup.height: 300 + currentIndex: -1 + onCurrentIndexChanged: city.currentIndex = postcode.currentIndex + + validator: RegularExpressionValidator + { + regularExpression: /([0-9]{1,5})/ + } + } + + Label + { + text: qsTr("Ort") + Layout.alignment: Qt.AlignRight + + } + + ComboBox + { + property string name: "city" + id: city + Layout.fillWidth: true + editable: true + onEditTextChanged: checkFields() + onCurrentTextChanged: checkFields() + model: address_model + textRole: "city" + popup.height: 300 + currentIndex: -1 + } + + Label + { + text: qsTr("Straße*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "street" + id: street + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + onTextChanged: checkFields() + } + + Label + { + text: qsTr("Nr.*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "houseno" + id: houseno + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + onTextChanged: checkFields() + } + + // New grid row + + + + // New grid row + Label + { + text: qsTr("Parteien") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + SpinBox + { + property string name: "units" + id: partitions + Layout.fillWidth: true + from: 1 + to: 100 + value: 1 + editable: true + } + + Label + { + text: qsTr("Stockwerke") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + SpinBox + { + property string name: "floors" + id: floors + Layout.fillWidth: true + from: 1 + to: 100 + value: 1 + editable: true + } + + // New grid row + Label + { + text: qsTr("Zwischenetage") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + ComboBox + { + property string name: "mezzanin" + id: mezzanin + Layout.fillWidth: true + editable: false + model: [qsTr("Ja"), qsTr("Nein")] + } + + Label + { + text: qsTr("Aufzug") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + ComboBox + { + property string name: "lift" + id: lift + Layout.fillWidth: true + editable: false + model: [qsTr("Ja"), qsTr("Nein")] + } + + //New grid row + Label + { + text: qsTr("Objekt-Nr.") + Layout.alignment: Qt.AlignRight + } + TextField + { + property string name: "objectno" + id: objectno + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + placeholderText: qsTr("0 oder leer um eine Nummer automatisch zu generieren") + placeholderTextColor: "pink" + } + + + Label + { + text: qsTr("Besonderheiten") + Layout.alignment: Qt.AlignRight + } + TextField + { + property string name: "remarks" + id: remarks + Layout.fillWidth: true + } + + //// New grid row + + + Label + { + text: qsTr("Reinigungsmittel wo?*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "cleaningproducts" + id: cleaningproducts + Layout.fillWidth: true + onTextChanged: checkFields() + } + Item + { + Layout.fillHeight: true + } + + function checkObjectField() + { + + return street.text.trim() && houseno.text.trim() && + + (postcode.editText.trim() || postcode.currentText.trim()) && + (city.editText.trim() || city.currentText.trim()) && + cleaningproducts.text.trim() + } +} + + + + + + + + + diff --git a/Gui/Objects/AddObject.qml b/Gui/Objects/AddObject.qml new file mode 100644 index 0000000..6757f2b --- /dev/null +++ b/Gui/Objects/AddObject.qml @@ -0,0 +1,155 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Dialogs +import Js + +ColumnLayout +{ + property var new_object: null + //property alias checkAddContact: checkAddContact + Layout.fillWidth: true + Layout.fillHeight: true + spacing: 15 + Label + { + text: qsTr("Objekt anlegen") + horizontalAlignment: Text.AlignHCenter + Layout.fillWidth: true + font.pixelSize: 35 + } + CheckBox + { + id: checkAddObjectContact + text: qsTr("Ansprechpartner hinzufügen") + Layout.alignment: Qt.AlignRight + checked: false + onCheckStateChanged: + { + checkFields() + } + } + + RowLayout + { + id: addObject + Layout.fillWidth: true + Layout.fillHeight: true + spacing: 45 + + Frame + { + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + AddNewObject + { + id: newObject + width: parent.width + } + } + + ObjectAddOns + { + id: addObjectLayout + visible: checkAddObjectContact.checked + } + } + RowLayout + { + Layout.fillHeight: true + Layout.alignment: Qt.AlignRight + Button + { + text: qsTr("Abbrechen") + onClicked: contentStack.pop() + } + Button + { + property var new_object: null + id: saveBtn + text: qsTr("Speichern") + enabled: false + onClicked: + + { + + new_object = JsLib.parseForm(newObject) + // For Debugging + console.log(JSON.stringify(new_object)) + // + new_object['lift'] = new_object['lift'] === 'Ja' ? 1 : 0 + new_object['mezzanin'] = new_object['mezzanin'] === 'Ja' ? 1 : 0 + object_model.addObject(new_object) + } + } + } + Item + { + id: spacer3 + Layout.fillHeight: true + } + + Component.onCompleted: + { + //object_model.objectAdded.connect(onObjectAdded) + //contact_model.objectContactAdded.connect(onObjectContact) + } + + + Connections + { + target: object_model + + function onObjectIdReady() + { + var obj_id = arguments[0] + if (checkAddObjectContact.checked && obj_id) + { + var new_objecto = addObjectLayout.getForm() + contact_model.addObjectContact(new_objecto, obj_id) + object_model.viewCriterion("Alle") + } + + contentStack.pop() + } + } + + // function onObjectAdded(added, oid) + // { + // if (!added) + // console.log(qsTr("Fehler beim Objekt-Anlegen!")) + // if (checkAddObjectContact.checked && oid) + // { + // var new_objecto = addObjectLayout.getForm() + + // contact_model.addObjectContact(new_objecto, oid) + // } + // else appLoader.source = "ObjectTable.qml" + // } + + // function onObjectContact(added) + // { + // if (!added) + // console.log(qsTr("Fehler beim Objekt-Kontakt-Anlegen!")) + // else + // { + // //object_model.viewCriterion("Alle") + // appLoader.source = "ObjectTable.qml" + // } + // } + + function checkFields() + { + if(checkAddObjectContact.checked) + { + if(!newObject.checkObjectField() || !addObjectLayout.contactPerson.contacts || !addObjectLayout.contactPerson.contacts.length) + saveBtn.enabled = false + else + saveBtn.enabled = true + } + else if (!newObject.checkObjectField()) + saveBtn.enabled = false + else + saveBtn.enabled = true + } +} diff --git a/Gui/Objects/AddObjectEmployee.qml b/Gui/Objects/AddObjectEmployee.qml new file mode 100644 index 0000000..be6761b --- /dev/null +++ b/Gui/Objects/AddObjectEmployee.qml @@ -0,0 +1,130 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +ApplicationWindow +{ + id: addMitarbeiter + title: qsTr("Objekt - Neuer Mitarbeiter") + + ColumnLayout + { + anchors.fill: parent + anchors.margins: 10 + Label + { + text: qsTr("Mitarbeiter zuweisen") + Layout.alignment: Qt.AlignHCenter + font.pixelSize: 35 + } + + GridLayout + { + Layout.fillWidth: true + columns: 2 + rowSpacing: 4 + columnSpacing: 6 + + Label + { + text: qsTr("Eingesetzter Mitarbeiter") + Layout.alignment: Qt.AlignRight + } + ComboBox + { + id: assignee + Layout.fillWidth: true + } + Label + { + text: qsTr("Lohn Mitarbeiter pro Stunde") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: wage + Layout.fillWidth: true + } + Label + { + text: qsTr("Einsatzdauer") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: duration + Layout.fillWidth: true + } + Label + { + text: qsTr("Reinigungstage") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: cleanDays + Layout.fillWidth: true + } + Label + { + text: qsTr("Tätigkeiten") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: tasks + Layout.fillWidth: true + } + Label + { + text: qsTr("Ertrag") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: output + Layout.fillWidth: true + } + Item + { + Layout.fillHeight: true + Layout.columnSpan: 2 + } + } + RowLayout + { + Layout.fillWidth: true + spacing: 5 + Item + { + Layout.fillWidth: true + } + Button + { + text: qsTr("Abbrechen") + onClicked: addMitarbeiter.close() + } + Button + { + text: qsTr("Hinzufügen") + onClicked: + { + if (duration.text.trim() !== "" && wage.text.trim() !== "" && cleanDays.text.trim() !== "" && tasks.text.trim() !== "" && output.text.trim() !== "") + { + var ne = { + "assignee": assignee.currentText, + "duration": duration.text.trim(), + "wage": wage.text.trim(), + "cleandays": cleanDays.text.trim(), + "tasks": tasks.text.trim(), + "output": output.text.trim(), + }; + addMitarbeiter.addNewEmployee(ne) + addMitarbeiter.close() + } + } + } + } + } + + signal addNewEmployee(var new_employee) +} diff --git a/Gui/Objects/ObjectAddOnContactPerson.qml b/Gui/Objects/ObjectAddOnContactPerson.qml new file mode 100644 index 0000000..9f14a7c --- /dev/null +++ b/Gui/Objects/ObjectAddOnContactPerson.qml @@ -0,0 +1,317 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls + +GridLayout +{ + property var contacts: null + columns: 2 + Layout.fillWidth: true + Label + { + text: qsTr("Position") + Layout.alignment: Qt.AlignRight | Qt.AlignTop + } + + ComboBox + { + //property string name: "contacttype" + id: posizion + Layout.fillWidth: true + editable: false + model: [qsTr("Beirat"), qsTr("Hausmeister"), qsTr("Hausbewohner"), qsTr("Sonstiges")] + } + + Label + { + text: qsTr("Anrede") + Layout.alignment: Qt.AlignRight + } + ComboBox + { + id: title + model: [qsTr("Herr"), qsTr("Frau"), qsTr("Keine Angabe")] + Layout.fillWidth: true + } + Label + { + text: qsTr("Vorname*") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: firstname + Layout.fillWidth: true + // onTextChanged: checkContactFields() + } + Label + { + text: qsTr("Nachname*") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: lastname + Layout.fillWidth: true + } + Label + { + text: mobile.text ? qsTr("Telefonnummer") : qsTr("Telefonnummer*") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: phonenumber + Layout.fillWidth: true + } + Label + { + text: phonenumber.text ? qsTr("Mobil") : qsTr("Mobil*") + Layout.alignment: Qt.AlignRight + } + TextField + { + id: mobile + Layout.fillWidth: true + } + + RowLayout + { + Layout.fillWidth: true + Layout.columnSpan: 2 + + Item + { + Layout.fillWidth: true + } + + Button + { + id: removeContact + text: qsTr("Entfernen") + enabled: false + onClicked: + { + + if (contactView.highlightFollowsCurrentItem) + { + delete contacts[contactView.currentIndex] + contacts = contacts.filter(elm => elm) + contactModel.remove(contactView.currentIndex) + contactView.highlightFollowsCurrentItem = false + contactView.currentIndex = -1 + if (Object.keys(contacts).length === 0) + { + enabled = false + console.log(contacts) + } + checkFields() + } + } + } + + Button + { + id: addContact + text: qsTr("Hinzufügen") + enabled: firstname.text.trim() && lastname.text.trim() && (phonenumber.text.trim() || mobile.text.trim()) && (contacts === null || Object.keys(contacts).length < 3) + onClicked: + { + var num_contacts = 0 + if (contacts !== null && contacts !== undefined) num_contacts = Object.keys(contacts).length + else contacts = [] + if (num_contacts < 3 && firstname.text.trim() !== "" && lastname.text.trim() !== "" && (phonenumber.text.trim() !== "" || mobile.text.trim() !== "")) + { + contacts[num_contacts] = {} + contacts[num_contacts]["title"] = title.currentText + contacts[num_contacts]["position"] = posizion.currentText + contacts[num_contacts]["fname"] = firstname.text.trim() + contacts[num_contacts]["lname"] = lastname.text.trim() + contacts[num_contacts]["phone"] = phonenumber.text.trim() + contacts[num_contacts]["mobile"] = mobile.text.trim() + contactModel.append({name: title.currentText + " " + firstname.text.trim() + " " + lastname.text.trim(), phone: phonenumber.text.trim(), mobile: mobile.text.trim(), posizion: posizion.currentText}) + if (checkFields()) + { + saveBtn.enabled = true + } + firstname.text = "" + lastname.text = "" + phonenumber.text = "" + mobile.text = "" + posizion.currentIndex = 0 + title.currentIndex = 0 + + removeContact.enabled = true + checkFields() + } + } + } + } + + Label + { + text: qsTr("Ansprechpartner") + Layout.alignment: Qt.AlignRight | Qt.AlignTop + } + + ListModel + { + id: contactModel + } + + // Component + // { + // id: headline + // Row + // { + // spacing: 9 + // Text + // { + // id: cpname + // text: qsTr("Name") + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "white" + // } + + // Text + // { + // id: cpphone + // text: qsTr("Telefon") + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "white" + // } + + // Text + // { + // id: cpmobile + // text: qsTr("Mobil") + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "white" + // } + + // Text + // { + // id: cppos + // text: qsTr("Position") + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "white" + // } + + // Text + // { + // id: cttype + // text: qsTr("Typ") + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "white" + // } + // } + // } + + Component + { + id: highlight + Rectangle + { + width: parent.width + color: "lightsteelblue"; radius: 5 + y: contactView.currentItem.y + Behavior on y + { + SpringAnimation + { + spring: 3 + damping: 0.2 + } + } + } + } + + Rectangle + { + id: mainRect + Layout.fillWidth: true + implicitHeight: 100 + color: firstname.palette.base + border.color: firstname.activeFocus? firstname.palette.highlight: firstname.palette.base + clip: true + + ScrollView + { + id: objContactView + // Layout.fillWidth: true + // Layout.preferredHeight: 100 + //Layout.columnSpan: 3 + anchors.fill: mainRect + ScrollBar.vertical.policy: ScrollBar.AlwaysOn + + + ListView + { + id: contactView + anchors.fill: objContactView + // implicitHeight: objContactView.height + // implicitWidth: objContactView.width + model: contactModel + // header: headline + highlight: Rectangle { color: "slategray"; radius: 3} + highlightFollowsCurrentItem: false + //focus: true test + onActiveFocusChanged: if(!focus) currentIndex = -1 + delegate: Item + { + width: contactView.width + height: 77 + + MouseArea + { + anchors.fill: parent + onClicked: + { + contactView.currentIndex = index + contactView.highlightFollowsCurrentItem = true + } + } + + + Column + { + anchors.margins: 5 + + //spacing: 3 + Text + { + text: '' + qsTr('Name: ') + '' + model.name + horizontalAlignment: Text.AlignLeft + color: "white" + } + Text + { + text: '' + qsTr('Telefon: ') + '' + model.phone + horizontalAlignment: Text.AlignLeft + color: "white" + } + Text + { + text: '' + qsTr('Handy: ') + '' + model.mobile + horizontalAlignment: Text.AlignLeft + color: "white" + } + Text + { + text: '' + qsTr('Position: ') + '' + model.posizion + horizontalAlignment: Text.AlignLeft + color: "white" + } + + } // Column + } // delegate + } // Listview + } // Scrollview + } +} + diff --git a/Gui/Objects/ObjectAddOnEmployee.qml b/Gui/Objects/ObjectAddOnEmployee.qml new file mode 100644 index 0000000..57bbb46 --- /dev/null +++ b/Gui/Objects/ObjectAddOnEmployee.qml @@ -0,0 +1,125 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls + +GridLayout +{ + // property var employeeForm: null + // property var employees: null + // id: oaoemployee + // columns: 2 + // rows: 4 + // Label + // { + // text: qsTr("Mitarbeiter") + // Layout.alignment: Qt.AlignRight | Qt.AlignTop + // } + + // ListModel + // { + // id: employeeModel + // } + + // Component + // { + // id: employeesHeader + // Row + // { + // Text + // { + // id: empName + // text: qsTr("Mitarbeiter") + // width: 175 + // font.bold: true + // horizontalAlignment: Text.AlignLeft + // color: "black" + // } + // } + // } + + // Rectangle + // { + // Layout.fillWidth: true + // implicitHeight: 75 + // Layout.rowSpan: 2 + // color: mitarbeiterhin.palette.base + // border.color: mitarbeiterhin.activeFocus? mitarbeiterhin.palette.highlight: mitarbeiterhin.palette.base + // ListView + // { + // id: employeesList + // //anchors.fill: parent + // implicitHeight: parent.height + + // model: employeeModel + + // header: employeesHeader + + // delegate: Row + // { + // width: 200 + // height: 15 + // //padding: 7 + // Text + // { + // text: model.namens + // } + // } + + // } + // } + // RowLayout + // { + // Layout.columnSpan: 2 + // Layout.fillWidth: true + // Item + // { + // Layout.fillWidth: true + // } + + // Button + // { + // id: mitarbeiterraus + // text: qsTr("Mitarbeiter entfernen") + // } + + // Button + // { + // id: mitarbeiterhin + // text: qsTr("Mitarbeiter hinzufügen") + // onClicked: + // { + // var nm = Qt.createComponent("AddObjectEmployee.qml") + // if (nm.status === Component.Ready) + // { + // employeeForm = nm.createObject (appWindow, {width: 600, height: 400}) + // employeeForm.addNewEmployee.connect(onAddEmployee) + // employeeForm.show() + // } + // else console.log(nm.errorString()) + // } + // } + // } + + // function onAddEmployee(new_employee) + // { + // var num_employees = 0 + + // if (employees === null || employees === undefined) employees = {} + // else num_employees = Object.keys(employees).length; + + // employees[num_employees] = {} + // employees[num_employees]["assignee"] = new_employee["assignee"]; + // employees[num_employees]["duration"] = new_employee["duration"]; + // employees[num_employees]["wage"] = new_employee["wage"]; + // employees[num_employees]["cleandays"] = new_employee["cleandays"]; + // employees[num_employees]["tasks"] = new_employee["tasks"]; + // employees[num_employees]["output"] = new_employee["output"]; + + // employeeModel.append({namens: new_employee["assignee"]}); + + // } +} + + + + diff --git a/Gui/Objects/ObjectAddOns.qml b/Gui/Objects/ObjectAddOns.qml new file mode 100644 index 0000000..7828d7c --- /dev/null +++ b/Gui/Objects/ObjectAddOns.qml @@ -0,0 +1,28 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import Js + +Frame +{ + property alias contactPerson: oaocontactperson + Layout.alignment: Qt.AlignTop + Layout.fillWidth: true + ColumnLayout + { + id: addObjectLayout + width: parent.width + ObjectAddOnContactPerson + { + id: oaocontactperson + } + Item + { + Layout.fillHeight: true + } + } + function getForm() + { + return oaocontactperson.contacts + } +} diff --git a/Gui/Objects/ObjectDetails.qml b/Gui/Objects/ObjectDetails.qml new file mode 100644 index 0000000..9b0ccc3 --- /dev/null +++ b/Gui/Objects/ObjectDetails.qml @@ -0,0 +1,27 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts + +Item +{ + property int selectedObject: -1 + id: obDet + ColumnLayout + { + Label + { + text: qsTr("Ausgewählter Objekt " + selectedObject) + } + + Button + { + text: qsTr("Zurück zu den Objekten") + onClicked: contentStack.pop() + } + } + + Component.onCompleted: + { + object_model.onRowClicked(selectedObject) + } +} diff --git a/Gui/Objects/ObjectView.qml b/Gui/Objects/ObjectView.qml new file mode 100644 index 0000000..1d85586 --- /dev/null +++ b/Gui/Objects/ObjectView.qml @@ -0,0 +1,238 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts + +GridLayout +{ + id: objectView + + columns: 4 + Layout.fillWidth: true + Layout.fillHeight: true + rowSpacing: 9 + + Label + { + text: qsTr("Firma") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + ComboBox + { + property string name: "business" + id: business + editable: true + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Straße*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "street" + id: street + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + onTextChanged: checkFields() + } + Label + { + text: qsTr("Nr.*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "houseno" + id: houseno + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + onTextChanged: checkFields() + } + + Label + { + text: qsTr("PLZ*") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + property string name: "postcode" + id: postcode + Layout.fillWidth: true + onTextChanged: checkFields() + } + Label + { + text: qsTr("Ort") + Layout.alignment: Qt.AlignRight + + } + ComboBox + { + property string name: "city" + id: city + Layout.fillWidth: true + editable: true + onEditTextChanged: checkFields() + onCurrentTextChanged: checkFields() + model: address_model + textRole: "city" + popup.height: 300 + currentIndex: -1 + } + + Label + { + text: qsTr("Lohnanteil inkl. Fahrtkosten") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: lohnanteil + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Materialanteil") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: materialanteil + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Zusatz 1") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: zusatz1 + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Zusatz 2") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: zusatz2 + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Gesamt Netto") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + {id: gesamtnetto + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("MwSt") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: mwst + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Gesamt(Netto+MwSt)") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + + TextField + { + id: gesamt + Layout.fillWidth: true + Layout.columnSpan: 3 + } + + Label + { + text: qsTr("Zahlungsziel") + Layout.alignment: Qt.AlignRight + } + ComboBox + { + property string name: "zahlungsziel" + id: zahlungsziel + Layout.fillWidth: true + editable: false + textRole: "display" + Layout.columnSpan: 3 + } + + + Label + { + text: qsTr("Info") + Layout.alignment: Qt.AlignRight | Qt.AlignTop + } + ScrollView + { + id: infoview + Layout.fillWidth: true + Layout.preferredHeight: 110 + Layout.columnSpan: 3 + ScrollBar.horizontal: ScrollBar + { + policy: ScrollBar.AlwaysOn + } + + TextArea + { + id: objectInfo + property string name: "objectinfo" + implicitWidth: parent.width + wrapMode: TextEdit.Wrap + background: Rectangle + { + color: objectInfo.palette.base + border.color: objectInfo.activeFocus? objectInfo.palette.highlight: objectInfo.palette.base + width: parent.width + } + } + } + Item + { + Layout.fillHeight: true + } +} + + + + + + + + diff --git a/Gui/Objects/ObjectsTable.qml b/Gui/Objects/ObjectsTable.qml new file mode 100644 index 0000000..657f4cd --- /dev/null +++ b/Gui/Objects/ObjectsTable.qml @@ -0,0 +1,186 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import Qt.labs.qmlmodels + +ColumnLayout +{ + property var availableFilters: [""] + + + spacing: Dimensions.l + + function viewCriterion(criterion) + { + business_model.viewCriterion(criterion.text); + } + function onObjectContactAdded(added) + { + console.log(added) + if (added) object_model.viewCriterion("") + } + + Component.onCompleted: + { + contact_model.objectContactAdded.connect(onObjectContactAdded) + // contentStack.pop() + } + RowLayout + { + Layout.fillWidth: true + spacing: Dimensions.l + SearchBar + { + } + QuickFilter { + onSelectedChanged: (name) => { + business_model.viewCriterion(name) + } + + model: ListModel { + ListElement { + + name: "Alle" + text: qsTr("Alle") + selected: true + } + ListElement { + name: "Aktiv" + text: qsTr("Aktiv") + selected: false + } + ListElement { + name: "Ehemalig" + text: qsTr("Ehemalig") + selected: false + } + ListElement { + name: "Angebote" + text: qsTr("Angebote") + selected: false + } + } + } + Button + { + id: addObjectBtn + icon.source: "qrc:/images/PlusCircle.svg" + text: qsTr("Objekt Hinzufügen") + Layout.alignment: Qt.AlignRight + onClicked: contentStack.push("AddObject.qml") + } + } + + + ColumnLayout + { + id: tableColumn + Layout.fillWidth: true + Layout.fillHeight: true + Layout.verticalStretchFactor: 1 + clip: true + // anchors + // { + // top: searchBar.bottom + // bottom: parent.bottom + // left: parent.left + // right: parent.right + // topMargin: 15 + // } + HorizontalHeaderView + { + id: horizontalHeaderview + Layout.fillWidth: true + implicitHeight: 40 + movableColumns: true //@disable-check M16 + syncView: objectTable + + delegate: Rectangle { + color: addObjectBtn.palette.alternateBase + border.color: addObjectBtn.palette.base + implicitHeight: 40 + Layout.fillWidth: true + implicitWidth: 1 + Text + { + text: model.display + elide: Text.ElideRight + width: parent.width + height: parent.height + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: addObjectBtn.palette.text + } + } + } + + TableView + { + property real newWidth: 0 + id: objectTable + z: 1 + // height: tableColumn.height - horizontalHeaderview.height + Layout.fillHeight: true + Layout.fillWidth: true + columnSpacing: 1 + rowSpacing: 2 + model: object_model + alternatingRows: true + resizableColumns: true // @disable-check M16 + selectionBehavior: TableView.SelectRows + ScrollBar.vertical: ScrollBar + { + policy: objectTable.contentHeight > objectTable.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff + } + selectionModel: ItemSelectionModel + { + id: obmodel + model: objectTable.model + } + + delegate:Rectangle + { + required property bool selected + required property bool current + implicitWidth: objectTable.width / objectTable.columns + implicitHeight: 25 + color: selected + ? addObjectBtn.palette.highlight //palette.highlight + : (objectTable.alternatingRows && row % 2 !== 0 + ? addObjectBtn.palette.base // palette.base + : addObjectBtn.palette.alternateBase) //palette.alternateBase) + + Text + { + text: (model.display === null || model.display === undefined)? "": model.display + elide: Text.ElideRight + width: parent.width + height: parent.height + verticalAlignment: Text.AlignVCenter + leftPadding: 9 //@d isable-check M16 + color: addObjectBtn.palette.text + } + + MouseArea + { + property bool hovered: false + id: mouseArea + anchors.fill: parent + hoverEnabled: true + onDoubleClicked: + { + contentStack.push("ObjectDetails.qml", {selectedObject: row}); + } + onEntered: + { + objectTable.selectionModel.select(objectTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows) + } + } + } + } + + } + Item { + Layout.fillHeight: true + } +} diff --git a/Gui/Objects/qmldir b/Gui/Objects/qmldir new file mode 100644 index 0000000..358542d --- /dev/null +++ b/Gui/Objects/qmldir @@ -0,0 +1 @@ +module Objects diff --git a/Gui/Offers/OffersTable.qml b/Gui/Offers/OffersTable.qml index 0aad1f9..3578ff5 100644 --- a/Gui/Offers/OffersTable.qml +++ b/Gui/Offers/OffersTable.qml @@ -5,7 +5,6 @@ import Qt.labs.qmlmodels ColumnLayout { - anchors.fill: parent spacing: Dimensions.l function viewOffers(criterion) { diff --git a/Js/JsLib.js b/Js/JsLib.js index 3fc19a5..f2c8c05 100644 --- a/Js/JsLib.js +++ b/Js/JsLib.js @@ -22,11 +22,14 @@ function firstConf(tabs) function parseForm(...form) { + let data_form = {}; for (var i = 0; i < form.length; i++) { + for (var j = 0; j < form[i].children.length; j++) { + console.log(form[i].children[j]) if (form[i].children[j].toString().startsWith("Combo")) { if(form[i].children[j].editText) diff --git a/doc/db_schemer_v1.1-pyqcrm-202505141328_clean.sql b/doc/db_schemer_v1.1-pyqcrm-202505141328_clean.sql new file mode 100644 index 0000000..9c72801 --- /dev/null +++ b/doc/db_schemer_v1.1-pyqcrm-202505141328_clean.sql @@ -0,0 +1,28421 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.11.11-MariaDB, for Linux (x86_64) +-- +-- Host: bearybot.selfhost.co Database: pyqcrm +-- ------------------------------------------------------ +-- Server version 10.11.11-MariaDB-0ubuntu0.24.04.2-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `address` +-- + +DROP TABLE IF EXISTS `address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `address` ( + `addressid` int(11) NOT NULL AUTO_INCREMENT, + `countryid` int(11) NOT NULL, + `cityid` int(11) NOT NULL, + `postcodeid` int(11) NOT NULL, + PRIMARY KEY (`addressid`), + KEY `address_country_FK` (`countryid`) +) ENGINE=InnoDB AUTO_INCREMENT=8855 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `address` +-- + +LOCK TABLES `address` WRITE; +/*!40000 ALTER TABLE `address` DISABLE KEYS */; +INSERT INTO `address` VALUES +(1,37,1,1), +(2,37,2,2), +(3,37,3,3), +(4,37,4,4), +(5,37,5,5), +(6,37,6,6), +(7,37,7,6), +(8,37,8,6), +(9,37,9,7), +(10,37,10,8), +(11,37,11,9), +(12,37,12,10), +(13,37,11,11), +(14,37,13,12), +(15,37,14,13), +(16,37,15,14), +(17,37,16,14), +(18,37,17,14), +(19,37,18,14), +(20,37,19,14), +(21,37,13,15), +(22,37,20,16), +(23,37,21,16), +(24,37,22,16), +(25,37,23,17), +(26,37,24,18), +(27,37,25,19), +(28,37,26,20), +(29,37,27,21), +(30,37,27,22), +(31,37,28,23), +(32,37,29,24), +(33,37,30,25), +(34,37,31,26), +(35,37,32,27), +(36,37,33,28), +(37,37,29,29), +(38,37,34,30), +(39,37,35,31), +(40,37,36,32), +(41,37,37,33), +(42,37,38,34), +(43,37,39,35), +(44,37,40,36), +(45,37,41,36), +(46,37,42,37), +(47,37,43,38), +(48,37,44,38), +(49,37,45,39), +(50,37,46,40), +(51,37,47,40), +(52,37,48,41), +(53,37,49,42), +(54,37,50,43), +(55,37,51,44), +(56,37,52,45), +(57,37,53,46), +(58,37,54,47), +(59,37,55,48), +(60,37,56,49), +(61,37,57,50), +(62,37,58,51), +(63,37,59,52), +(64,37,60,53), +(65,37,61,54), +(66,37,62,55), +(67,37,63,56), +(68,37,64,57), +(69,37,65,58), +(70,37,66,59), +(71,37,67,59), +(72,37,68,59), +(73,37,69,60), +(74,37,70,61), +(75,37,71,62), +(76,37,72,63), +(77,37,73,64), +(78,37,74,65), +(79,37,75,66), +(80,37,76,67), +(81,37,77,68), +(82,37,78,69), +(83,37,79,70), +(84,37,80,71), +(85,37,81,72), +(86,37,82,72), +(87,37,83,72), +(88,37,84,73), +(89,37,85,74), +(90,37,86,75), +(91,37,87,76), +(92,37,88,77), +(93,37,89,78), +(94,37,90,79), +(95,37,91,80), +(96,37,92,81), +(97,37,93,82), +(98,37,94,83), +(99,37,95,84), +(100,37,96,85), +(101,37,97,86), +(102,37,98,87), +(103,37,99,88), +(104,37,100,89), +(105,37,101,90), +(106,37,102,91), +(107,37,103,92), +(108,37,104,93), +(109,37,105,94), +(110,37,106,95), +(111,37,107,96), +(112,37,108,97), +(113,37,109,98), +(114,37,110,99), +(115,37,111,100), +(116,37,112,101), +(117,37,113,102), +(118,37,114,103), +(119,37,115,104), +(120,37,116,105), +(121,37,117,106), +(122,37,118,107), +(123,37,119,108), +(124,37,120,109), +(125,37,121,110), +(126,37,122,111), +(127,37,123,112), +(128,37,124,113), +(129,37,125,114), +(130,37,126,115), +(131,37,127,116), +(132,37,128,117), +(133,37,129,117), +(134,37,130,118), +(135,37,131,119), +(136,37,132,120), +(137,37,133,121), +(138,37,134,121), +(139,37,135,122), +(140,37,136,123), +(141,37,137,124), +(142,37,138,125), +(143,37,139,126), +(144,37,140,127), +(145,37,141,128), +(146,37,142,129), +(147,37,143,129), +(148,37,144,130), +(149,37,145,131), +(150,37,146,132), +(151,37,147,133), +(152,37,141,134), +(153,37,148,135), +(154,37,149,136), +(155,37,150,137), +(156,37,151,138), +(157,37,152,139), +(158,37,153,140), +(159,37,154,140), +(160,37,155,141), +(161,37,156,142), +(162,37,157,143), +(163,37,158,144), +(164,37,159,145), +(165,37,160,145), +(166,37,161,146), +(167,37,162,147), +(168,37,163,148), +(169,37,164,149), +(170,37,165,150), +(171,37,166,151), +(172,37,167,152), +(173,37,168,152), +(174,37,169,153), +(175,37,170,154), +(176,37,171,155), +(177,37,172,156), +(178,37,172,157), +(179,37,173,158), +(180,37,174,159), +(181,37,175,160), +(182,37,176,161), +(183,37,177,162), +(184,37,178,163), +(185,37,179,164), +(186,37,180,165), +(187,37,181,166), +(188,37,182,167), +(189,37,183,168), +(190,37,184,169), +(191,37,185,170), +(192,37,186,171), +(193,37,184,172), +(194,37,187,173), +(195,37,188,174), +(196,37,189,175), +(197,37,190,176), +(198,37,191,177), +(199,37,192,178), +(200,37,193,179), +(201,37,194,180), +(202,37,195,181), +(203,37,196,182), +(204,37,197,183), +(205,37,198,184), +(206,37,199,185), +(207,37,200,186), +(208,37,194,187), +(209,37,201,188), +(210,37,202,189), +(211,37,203,190), +(212,37,204,191), +(213,37,205,192), +(214,37,206,193), +(215,37,207,193), +(216,37,208,193), +(217,37,209,194), +(218,37,210,194), +(219,37,211,194), +(220,37,212,195), +(221,37,202,196), +(222,37,213,197), +(223,37,214,198), +(224,37,215,199), +(225,37,216,200), +(226,37,217,201), +(227,37,218,202), +(228,37,219,203), +(229,37,220,204), +(230,37,221,205), +(231,37,222,206), +(232,37,223,207), +(233,37,224,208), +(234,37,225,209), +(235,37,226,210), +(236,37,227,211), +(237,37,228,212), +(238,37,229,213), +(239,37,229,214), +(240,37,230,215), +(241,37,231,215), +(242,37,232,216), +(243,37,229,217), +(244,37,233,218), +(245,37,234,219), +(246,37,235,220), +(247,37,236,221), +(248,37,237,222), +(249,37,238,223), +(250,37,239,224), +(251,37,240,225), +(252,37,241,226), +(253,37,242,226), +(254,37,243,227), +(255,37,244,228), +(256,37,245,229), +(257,37,246,230), +(258,37,247,231), +(259,37,248,232), +(260,37,249,233), +(261,37,250,234), +(262,37,251,235), +(263,37,252,236), +(264,37,253,237), +(265,37,254,238), +(266,37,255,239), +(267,37,256,240), +(268,37,257,241), +(269,37,258,242), +(270,37,259,243), +(271,37,260,244), +(272,37,261,245), +(273,37,262,246), +(274,37,263,247), +(275,37,260,248), +(276,37,260,249), +(277,37,264,250), +(278,37,265,251), +(279,37,260,252), +(280,37,260,253), +(281,37,260,254), +(282,37,266,255), +(283,37,267,256), +(284,37,268,257), +(285,37,269,258), +(286,37,270,259), +(287,37,271,260), +(288,37,272,261), +(289,37,273,262), +(290,37,274,263), +(291,37,275,264), +(292,37,276,265), +(293,37,277,266), +(294,37,278,267), +(295,37,279,268), +(296,37,280,269), +(297,37,281,270), +(298,37,282,271), +(299,37,283,271), +(300,37,284,272), +(301,37,285,273), +(302,37,280,274), +(303,37,286,275), +(304,37,287,276), +(305,37,288,277), +(306,37,280,278), +(307,37,289,279), +(308,37,290,280), +(309,37,291,280), +(310,37,292,281), +(311,37,293,282), +(312,37,294,283), +(313,37,295,284), +(314,37,296,285), +(315,37,297,285), +(316,37,298,286), +(317,37,299,286), +(318,37,300,286), +(319,37,301,287), +(320,37,302,288), +(321,37,303,289), +(322,37,304,290), +(323,37,305,291), +(324,37,306,292), +(325,37,28,293), +(326,37,307,294), +(327,37,308,295), +(328,37,309,295), +(329,37,310,295), +(330,37,311,296), +(331,37,312,297), +(332,37,313,298), +(333,37,314,299), +(334,37,315,300), +(335,37,316,301), +(336,37,317,302), +(337,37,318,303), +(338,37,319,304), +(339,37,320,305), +(340,37,321,306), +(341,37,322,307), +(342,37,323,308), +(343,37,324,309), +(344,37,325,310), +(345,37,326,311), +(346,37,327,312), +(347,37,328,313), +(348,37,329,313), +(349,37,330,314), +(350,37,331,315), +(351,37,332,315), +(352,37,333,316), +(353,37,334,316), +(354,37,335,317), +(355,37,336,317), +(356,37,337,318), +(357,37,338,319), +(358,37,339,320), +(359,37,340,321), +(360,37,341,322), +(361,37,342,323), +(362,37,343,324), +(363,37,344,325), +(364,37,345,326), +(365,37,346,327), +(366,37,347,328), +(367,37,348,328), +(368,37,349,329), +(369,37,11,330), +(370,37,350,331), +(371,37,351,332), +(372,37,349,333), +(373,37,13,334), +(374,37,352,335), +(375,37,353,335), +(376,37,354,335), +(377,37,355,335), +(378,37,13,336), +(379,37,13,337), +(380,37,356,338), +(381,37,29,339), +(382,37,357,340), +(383,37,358,341), +(384,37,359,342), +(385,37,29,343), +(386,37,29,344), +(387,37,27,345), +(388,37,360,346), +(389,37,361,347), +(390,37,362,348), +(391,37,363,349), +(392,37,364,350), +(393,37,360,351), +(394,37,365,352), +(395,37,366,352), +(396,37,367,353), +(397,37,368,354), +(398,37,369,355), +(399,37,370,356), +(400,37,371,356), +(401,37,372,357), +(402,37,373,358), +(403,37,374,359), +(404,37,375,360), +(405,37,376,361), +(406,37,377,362), +(407,37,378,363), +(408,37,379,364), +(409,37,380,365), +(410,37,381,366), +(411,37,382,367), +(412,37,383,368), +(413,37,384,369), +(414,37,385,370), +(415,37,386,371), +(416,37,383,372), +(417,37,387,373), +(418,37,388,374), +(419,37,389,375), +(420,37,390,376), +(421,37,391,377), +(422,37,392,378), +(423,37,393,379), +(424,37,394,380), +(425,37,395,381), +(426,37,396,382), +(427,37,260,383), +(428,37,397,384), +(429,37,398,385), +(430,37,399,386), +(431,37,400,387), +(432,37,401,388), +(433,37,402,389), +(434,37,403,390), +(435,37,404,391), +(436,37,405,392), +(437,37,406,393), +(438,37,407,394), +(439,37,408,395), +(440,37,409,396), +(441,37,410,397), +(442,37,411,398), +(443,37,412,399), +(444,37,413,400), +(445,37,414,401), +(446,37,415,402), +(447,37,416,403), +(448,37,417,404), +(449,37,418,405), +(450,37,419,406), +(451,37,420,407), +(452,37,421,408), +(453,37,422,409), +(454,37,423,409), +(455,37,317,409), +(456,37,424,410), +(457,37,184,411), +(458,37,184,412), +(459,37,425,413), +(460,37,426,414), +(461,37,427,415), +(462,37,428,416), +(463,37,429,417), +(464,37,430,418), +(465,37,431,419), +(466,37,195,420), +(467,37,194,421), +(468,37,432,422), +(469,37,433,423), +(470,37,434,424), +(471,37,435,425), +(472,37,194,426), +(473,37,436,427), +(474,37,437,428), +(475,37,438,429), +(476,37,202,430), +(477,37,439,431), +(478,37,440,432), +(479,37,441,433), +(480,37,442,434), +(481,37,443,435), +(482,37,444,436), +(483,37,445,437), +(484,37,446,438), +(485,37,447,439), +(486,37,448,440), +(487,37,449,441), +(488,37,450,442), +(489,37,451,443), +(490,37,452,444), +(491,37,453,445), +(492,37,229,446), +(493,37,454,447), +(494,37,455,448), +(495,37,456,449), +(496,37,457,450), +(497,37,458,451), +(498,37,459,452), +(499,37,460,453), +(500,37,461,454), +(501,37,462,455), +(502,37,463,456), +(503,37,464,457), +(504,37,460,458), +(505,37,465,459), +(506,37,466,460), +(507,37,467,461), +(508,37,468,462), +(509,37,469,463), +(510,37,470,464), +(511,37,471,465), +(512,37,472,465), +(513,37,473,466), +(514,37,474,467), +(515,37,475,468), +(516,37,476,469), +(517,37,477,470), +(518,37,478,471), +(519,37,479,472), +(520,37,480,473), +(521,37,481,474), +(522,37,481,475), +(523,37,482,476), +(524,37,483,477), +(525,37,484,478), +(526,37,485,479), +(527,37,486,480), +(528,37,487,481), +(529,37,488,482), +(530,37,489,483), +(531,37,490,484), +(532,37,491,485), +(533,37,492,486), +(534,37,493,487), +(535,37,494,488), +(536,37,495,489), +(537,37,496,490), +(538,37,497,491), +(539,37,498,491), +(540,37,499,492), +(541,37,500,492), +(542,37,501,493), +(543,37,502,494), +(544,37,503,495), +(545,37,504,496), +(546,37,505,497), +(547,37,506,498), +(548,37,507,499), +(549,37,508,500), +(550,37,509,501), +(551,37,510,502), +(552,37,511,502), +(553,37,512,503), +(554,37,513,504), +(555,37,513,505), +(556,37,514,506), +(557,37,515,506), +(558,37,516,507), +(559,37,517,508), +(560,37,518,509), +(561,37,519,510), +(562,37,519,511), +(563,37,520,512), +(564,37,521,513), +(565,37,522,514), +(566,37,523,515), +(567,37,524,516), +(568,37,525,517), +(569,37,520,518), +(570,37,526,519), +(571,37,527,520), +(572,37,528,521), +(573,37,529,522), +(574,37,530,523), +(575,37,531,524), +(576,37,532,525), +(577,37,533,526), +(578,37,62,527), +(579,37,534,528), +(580,37,535,529), +(581,37,536,530), +(582,37,537,531), +(583,37,538,532), +(584,37,69,533), +(585,37,539,534), +(586,37,540,535), +(587,37,541,535), +(588,37,542,536), +(589,37,543,537), +(590,37,544,537), +(591,37,545,538), +(592,37,546,539), +(593,37,547,539), +(594,37,548,539), +(595,37,519,540), +(596,37,549,541), +(597,37,91,542), +(598,37,550,543), +(599,37,551,543), +(600,37,552,543), +(601,37,130,544), +(602,37,553,545), +(603,37,554,546), +(604,37,555,547), +(605,37,556,548), +(606,37,557,548), +(607,37,558,549), +(608,37,559,549), +(609,37,560,550), +(610,37,561,551), +(611,37,562,552), +(612,37,558,553), +(613,37,563,554), +(614,37,564,555), +(615,37,565,556), +(616,37,566,556), +(617,37,567,557), +(618,37,568,558), +(619,37,569,559), +(620,37,570,560), +(621,37,571,561), +(622,37,572,562), +(623,37,573,563), +(624,37,574,564), +(625,37,575,564), +(626,37,576,565), +(627,37,577,566), +(628,37,578,567), +(629,37,579,568), +(630,37,580,569), +(631,37,581,570), +(632,37,582,571), +(633,37,583,572), +(634,37,584,573), +(635,37,585,574), +(636,37,586,575), +(637,37,587,576), +(638,37,588,577), +(639,37,589,578), +(640,37,590,579), +(641,37,591,580), +(642,37,592,581), +(643,37,593,582), +(644,37,594,583), +(645,37,595,584), +(646,37,596,585), +(647,37,597,586), +(648,37,598,587), +(649,37,599,588), +(650,37,600,588), +(651,37,601,588), +(652,37,602,589), +(653,37,603,590), +(654,37,280,591), +(655,37,604,592), +(656,37,605,593), +(657,37,280,594), +(658,37,606,595), +(659,37,280,596), +(660,37,607,597), +(661,37,608,598), +(662,37,280,599), +(663,37,609,600), +(664,37,287,601), +(665,37,280,602), +(666,37,610,603), +(667,37,611,604), +(668,37,612,605), +(669,37,613,606), +(670,37,614,607), +(671,37,615,608), +(672,37,616,609), +(673,37,617,610), +(674,37,618,611), +(675,37,619,612), +(676,37,620,612), +(677,37,621,613), +(678,37,622,613), +(679,37,623,614), +(680,37,624,615), +(681,37,625,616), +(682,37,626,617), +(683,37,115,618), +(684,37,627,619), +(685,37,628,620), +(686,37,629,621), +(687,37,630,622), +(688,37,631,623), +(689,37,632,624), +(690,37,633,625), +(691,37,634,626), +(692,37,635,627), +(693,37,636,628), +(694,37,637,628), +(695,37,638,629), +(696,37,639,630), +(697,37,640,631), +(698,37,641,632), +(699,37,642,633), +(700,37,643,633), +(701,37,644,634), +(702,37,645,635), +(703,37,646,635), +(704,37,647,636), +(705,37,648,637), +(706,37,234,638), +(707,37,649,639), +(708,37,107,640), +(709,37,111,641), +(710,37,650,642), +(711,37,651,643), +(712,37,652,644), +(713,37,653,645), +(714,37,654,646), +(715,37,655,647), +(716,37,654,648), +(717,37,656,649), +(718,37,657,650), +(719,37,658,651), +(720,37,659,652), +(721,37,660,653), +(722,37,661,654), +(723,37,90,655), +(724,37,662,656), +(725,37,663,657), +(726,37,91,658), +(727,37,664,659), +(728,37,665,659), +(729,37,666,660), +(730,37,667,661), +(731,37,668,662), +(732,37,344,663), +(733,37,669,664), +(734,37,669,665), +(735,37,670,666), +(736,37,671,666), +(737,37,672,667), +(738,37,673,668), +(739,37,27,669), +(740,37,674,670), +(741,37,675,671), +(742,37,676,671), +(743,37,23,672), +(744,37,27,673), +(745,37,29,674), +(746,37,677,675), +(747,37,678,676), +(748,37,357,677), +(749,37,679,678), +(750,37,680,678), +(751,37,681,678), +(752,37,682,679), +(753,37,683,680), +(754,37,684,680), +(755,37,685,680), +(756,37,686,681), +(757,37,519,682), +(758,37,687,683), +(759,37,688,684), +(760,37,689,685), +(761,37,690,686), +(762,37,691,686), +(763,37,692,686), +(764,37,693,686), +(765,37,694,686), +(766,37,695,686), +(767,37,696,687), +(768,37,697,688), +(769,37,698,689), +(770,37,699,690), +(771,37,700,691), +(772,37,701,692), +(773,37,702,693), +(774,37,703,694), +(775,37,704,695), +(776,37,705,696), +(777,37,706,697), +(778,37,33,698), +(779,37,707,699), +(780,37,708,700), +(781,37,709,701), +(782,37,710,702), +(783,37,360,703), +(784,37,711,704), +(785,37,712,705), +(786,37,713,706), +(787,37,534,707), +(788,37,714,708), +(789,37,715,709), +(790,37,716,710), +(791,37,717,711), +(792,37,718,712), +(793,37,719,712), +(794,37,720,713), +(795,37,721,714), +(796,37,722,715), +(797,37,723,716), +(798,37,724,717), +(799,37,725,718), +(800,37,726,719), +(801,37,91,720), +(802,37,727,721), +(803,37,728,722), +(804,37,729,723), +(805,37,730,724), +(806,37,731,725), +(807,37,732,726), +(808,37,513,727), +(809,37,733,728), +(810,37,513,729), +(811,37,734,730), +(812,37,735,730), +(813,37,736,731), +(814,37,737,732), +(815,37,738,733), +(816,37,739,734), +(817,37,260,735), +(818,37,740,736), +(819,37,741,737), +(820,37,742,738), +(821,37,743,739), +(822,37,744,740), +(823,37,745,741), +(824,37,260,742), +(825,37,746,743), +(826,37,747,744), +(827,37,260,745), +(828,37,748,746), +(829,37,749,746), +(830,37,750,747), +(831,37,751,748), +(832,37,260,749), +(833,37,752,750), +(834,37,753,751), +(835,37,754,752), +(836,37,755,753), +(837,37,756,754), +(838,37,757,755), +(839,37,758,756), +(840,37,759,757), +(841,37,760,758), +(842,37,761,758), +(843,37,762,758), +(844,37,763,759), +(845,37,764,760), +(846,37,765,761), +(847,37,766,762), +(848,37,767,763), +(849,37,768,764), +(850,37,769,765), +(851,37,770,766), +(852,37,771,767), +(853,37,772,768), +(854,37,773,769), +(855,37,774,770), +(856,37,775,771), +(857,37,776,772), +(858,37,777,773), +(859,37,274,774), +(860,37,778,775), +(861,37,779,776), +(862,37,780,777), +(863,37,781,778), +(864,37,782,779), +(865,37,783,780), +(866,37,194,781), +(867,37,190,782), +(868,37,784,783), +(869,37,785,784), +(870,37,194,785), +(871,37,786,786), +(872,37,787,787), +(873,37,788,788), +(874,37,784,789), +(875,37,195,790), +(876,37,789,791), +(877,37,790,792), +(878,37,791,793), +(879,37,792,794), +(880,37,194,795), +(881,37,793,796), +(882,37,794,797), +(883,37,795,798), +(884,37,796,799), +(885,37,797,800), +(886,37,798,801), +(887,37,799,802), +(888,37,536,803), +(889,37,800,804), +(890,37,801,805), +(891,37,802,806), +(892,37,803,806), +(893,37,804,807), +(894,37,805,808), +(895,37,806,809), +(896,37,807,810), +(897,37,808,811), +(898,37,809,812), +(899,37,810,813), +(900,37,811,814), +(901,37,812,815), +(902,37,813,816), +(903,37,814,817), +(904,37,217,818), +(905,37,815,819), +(906,37,816,820), +(907,37,229,821), +(908,37,232,822), +(909,37,817,823), +(910,37,818,824), +(911,37,460,825), +(912,37,819,826), +(913,37,820,826), +(914,37,227,827), +(915,37,821,828), +(916,37,822,829), +(917,37,559,830), +(918,37,823,831), +(919,37,824,832), +(920,37,825,833), +(921,37,826,834), +(922,37,827,834), +(923,37,828,835), +(924,37,829,836), +(925,37,830,837), +(926,37,831,838), +(927,37,832,839), +(928,37,833,840), +(929,37,834,841), +(930,37,835,842), +(931,37,280,843), +(932,37,836,844), +(933,37,837,845), +(934,37,280,846), +(935,37,280,847), +(936,37,838,848), +(937,37,839,849), +(938,37,280,850), +(939,37,840,851), +(940,37,841,852), +(941,37,842,853), +(942,37,843,854), +(943,37,287,855), +(944,37,844,856), +(945,37,845,857), +(946,37,673,858), +(947,37,846,859), +(948,37,847,860), +(949,37,848,861), +(950,37,849,862), +(951,37,850,863), +(952,37,851,864), +(953,37,852,865), +(954,37,853,866), +(955,37,854,867), +(956,37,855,868), +(957,37,856,869), +(958,37,857,869), +(959,37,858,870), +(960,37,859,871), +(961,37,860,872), +(962,37,861,873), +(963,37,862,874), +(964,37,863,875), +(965,37,864,876), +(966,37,865,877), +(967,37,866,878), +(968,37,867,879), +(969,37,868,880), +(970,37,869,881), +(971,37,870,882), +(972,37,871,883), +(973,37,872,884), +(974,37,873,885), +(975,37,874,886), +(976,37,875,887), +(977,37,876,888), +(978,37,877,889), +(979,37,878,890), +(980,37,879,891), +(981,37,880,891), +(982,37,881,891), +(983,37,882,892), +(984,37,883,893), +(985,37,884,894), +(986,37,885,894), +(987,37,886,895), +(988,37,887,896), +(989,37,888,897), +(990,37,481,898), +(991,37,889,899), +(992,37,890,900), +(993,37,481,901), +(994,37,891,902), +(995,37,892,903), +(996,37,893,904), +(997,37,894,905), +(998,37,895,906), +(999,37,183,907), +(1000,37,896,908), +(1001,37,897,909), +(1002,37,898,910), +(1003,37,899,911), +(1004,37,900,912), +(1005,37,474,913), +(1006,37,901,914), +(1007,37,474,915), +(1008,37,902,915), +(1009,37,903,916), +(1010,37,904,917), +(1011,37,905,918), +(1012,37,906,919), +(1013,37,907,920), +(1014,37,908,921), +(1015,37,909,922), +(1016,37,910,923), +(1017,37,911,924), +(1018,37,912,925), +(1019,37,558,926), +(1020,37,913,927), +(1021,37,914,928), +(1022,37,915,929), +(1023,37,916,929), +(1024,37,917,930), +(1025,37,918,931), +(1026,37,919,932), +(1027,37,920,933), +(1028,37,921,934), +(1029,37,568,935), +(1030,37,922,936), +(1031,37,923,937), +(1032,37,924,938), +(1033,37,925,939), +(1034,37,926,940), +(1035,37,927,941), +(1036,37,928,942), +(1037,37,929,943), +(1038,37,930,944), +(1039,37,931,945), +(1040,37,932,946), +(1041,37,933,947), +(1042,37,934,948), +(1043,37,935,949), +(1044,37,936,949), +(1045,37,937,950), +(1046,37,938,951), +(1047,37,939,952), +(1048,37,940,953), +(1049,37,941,954), +(1050,37,942,955), +(1051,37,942,956), +(1052,37,943,957), +(1053,37,944,958), +(1054,37,945,958), +(1055,37,946,958), +(1056,37,947,959), +(1057,37,948,960), +(1058,37,949,961), +(1059,37,950,962), +(1060,37,172,963), +(1061,37,951,964), +(1062,37,952,965), +(1063,37,953,966), +(1064,37,954,967), +(1065,37,955,968), +(1066,37,956,969), +(1067,37,957,970), +(1068,37,958,971), +(1069,37,959,972), +(1070,37,960,973), +(1071,37,961,973), +(1072,37,962,973), +(1073,37,963,974), +(1074,37,964,975), +(1075,37,965,976), +(1076,37,966,977), +(1077,37,967,978), +(1078,37,968,978), +(1079,37,969,979), +(1080,37,970,980), +(1081,37,971,980), +(1082,37,972,981), +(1083,37,973,982), +(1084,37,974,983), +(1085,37,975,984), +(1086,37,976,985), +(1087,37,669,986), +(1088,37,977,987), +(1089,37,978,988), +(1090,37,979,989), +(1091,37,13,990), +(1092,37,13,991), +(1093,37,980,992), +(1094,37,13,993), +(1095,37,13,994), +(1096,37,27,995), +(1097,37,981,996), +(1098,37,982,997), +(1099,37,27,998), +(1100,37,983,999), +(1101,37,984,1000), +(1102,37,985,1001), +(1103,37,986,1002), +(1104,37,987,1003), +(1105,37,988,1004), +(1106,37,989,1005), +(1107,37,990,1006), +(1108,37,991,1007), +(1109,37,992,1008), +(1110,37,993,1009), +(1111,37,994,1009), +(1112,37,995,1010), +(1113,37,996,1011), +(1114,37,997,1012), +(1115,37,998,1013), +(1116,37,999,1014), +(1117,37,661,1015), +(1118,37,1000,1016), +(1119,37,91,1017), +(1120,37,1001,1018), +(1121,37,661,1019), +(1122,37,1002,1020), +(1123,37,1003,1021), +(1124,37,1004,1022), +(1125,37,1005,1023), +(1126,37,29,1024), +(1127,37,1006,1025), +(1128,37,33,1026), +(1129,37,1007,1027), +(1130,37,364,1028), +(1131,37,1008,1029), +(1132,37,1009,1030), +(1133,37,1010,1031), +(1134,37,1011,1032), +(1135,37,1012,1033), +(1136,37,1013,1034), +(1137,37,360,1035), +(1138,37,1014,1036), +(1139,37,1015,1037), +(1140,37,1016,1038), +(1141,37,185,1039), +(1142,37,1017,1040), +(1143,37,1018,1041), +(1144,37,194,1042), +(1145,37,1019,1043), +(1146,37,1020,1044), +(1147,37,1021,1045), +(1148,37,1022,1046), +(1149,37,1023,1047), +(1150,37,1024,1048), +(1151,37,1025,1049), +(1152,37,1026,1050), +(1153,37,1027,1051), +(1154,37,1028,1052), +(1155,37,1029,1053), +(1156,37,792,1054), +(1157,37,1030,1055), +(1158,37,1031,1056), +(1159,37,1032,1057), +(1160,37,1033,1058), +(1161,37,1034,1059), +(1162,37,1035,1060), +(1163,37,1036,1061), +(1164,37,1037,1062), +(1165,37,1038,1063), +(1166,37,1039,1064), +(1167,37,559,1065), +(1168,37,1040,1066), +(1169,37,1041,1067), +(1170,37,1042,1068), +(1171,37,1043,1069), +(1172,37,1044,1070), +(1173,37,1045,1071), +(1174,37,1046,1072), +(1175,37,1047,1073), +(1176,37,816,1074), +(1177,37,1048,1075), +(1178,37,1049,1076), +(1179,37,1050,1077), +(1180,37,1051,1078), +(1181,37,229,1079), +(1182,37,1052,1080), +(1183,37,227,1081), +(1184,37,1053,1082), +(1185,37,1054,1083), +(1186,37,232,1084), +(1187,37,1055,1085), +(1188,37,1056,1086), +(1189,37,229,1087), +(1190,37,1057,1088), +(1191,37,1058,1089), +(1192,37,1059,1090), +(1193,37,1060,1091), +(1194,37,1061,1092), +(1195,37,1062,1093), +(1196,37,1063,1093), +(1197,37,1064,1094), +(1198,37,1065,1095), +(1199,37,1066,1096), +(1200,37,1067,1097), +(1201,37,1068,1097), +(1202,37,1069,1097), +(1203,37,1070,1098), +(1204,37,1071,1099), +(1205,37,1072,1100), +(1206,37,1073,1100), +(1207,37,1074,1101), +(1208,37,1075,1102), +(1209,37,1076,1103), +(1210,37,1077,1104), +(1211,37,1078,1105), +(1212,37,1079,1106), +(1213,37,513,1107), +(1214,37,1080,1108), +(1215,37,1081,1109), +(1216,37,1082,1110), +(1217,37,1083,1111), +(1218,37,1084,1112), +(1219,37,1085,1113), +(1220,37,1086,1114), +(1221,37,260,1115), +(1222,37,1087,1116), +(1223,37,1088,1117), +(1224,37,1089,1118), +(1225,37,1090,1119), +(1226,37,1091,1120), +(1227,37,1092,1121), +(1228,37,1093,1122), +(1229,37,1094,1122), +(1230,37,1095,1123), +(1231,37,1096,1124), +(1232,37,260,1125), +(1233,37,1097,1126), +(1234,37,1098,1127), +(1235,37,1099,1128), +(1236,37,265,1129), +(1237,37,1100,1130), +(1238,37,1101,1131), +(1239,37,1102,1132), +(1240,37,1103,1133), +(1241,37,1104,1134), +(1242,37,1105,1135), +(1243,37,507,1136), +(1244,37,1106,1137), +(1245,37,1107,1138), +(1246,37,1108,1139), +(1247,37,1109,1140), +(1248,37,1110,1141), +(1249,37,1111,1141), +(1250,37,1112,1141), +(1251,37,1113,1141), +(1252,37,1114,1141), +(1253,37,1115,1142), +(1254,37,1116,1143), +(1255,37,1117,1144), +(1256,37,1118,1145), +(1257,37,1119,1146), +(1258,37,1120,1147), +(1259,37,1121,1148), +(1260,37,1122,1149), +(1261,37,1123,1149), +(1262,37,1124,1149), +(1263,37,1125,1149), +(1264,37,1126,1150), +(1265,37,1127,1151), +(1266,37,1128,1152), +(1267,37,1129,1153), +(1268,37,1130,1154), +(1269,37,1131,1155), +(1270,37,1132,1156), +(1271,37,1133,1157), +(1272,37,319,1158), +(1273,37,1134,1159), +(1274,37,107,1160), +(1275,37,319,1161), +(1276,37,1135,1162), +(1277,37,316,1163), +(1278,37,1136,1164), +(1279,37,1137,1165), +(1280,37,107,1166), +(1281,37,1138,1167), +(1282,37,519,1168), +(1283,37,1139,1169), +(1284,37,1140,1169), +(1285,37,1141,1169), +(1286,37,363,1170), +(1287,37,1142,1171), +(1288,37,520,1172), +(1289,37,1143,1173), +(1290,37,1144,1174), +(1291,37,1145,1175), +(1292,37,1146,1176), +(1293,37,1147,1176), +(1294,37,1148,1177), +(1295,37,1149,1178), +(1296,37,1150,1179), +(1297,37,1151,1180), +(1298,37,1152,1181), +(1299,37,1153,1182), +(1300,37,504,1183), +(1301,37,1154,1184), +(1302,37,1155,1185), +(1303,37,1156,1186), +(1304,37,1157,1187), +(1305,37,1158,1188), +(1306,37,1159,1189), +(1307,37,1160,1190), +(1308,37,1161,1191), +(1309,37,1162,1192), +(1310,37,487,1193), +(1311,37,1163,1194), +(1312,37,1164,1195), +(1313,37,1165,1196), +(1314,37,1166,1197), +(1315,37,1167,1198), +(1316,37,1168,1199), +(1317,37,1169,1200), +(1318,37,1170,1201), +(1319,37,1171,1202), +(1320,37,1172,1203), +(1321,37,1173,1204), +(1322,37,1174,1205), +(1323,37,1175,1206), +(1324,37,1176,1207), +(1325,37,1177,1208), +(1326,37,1178,1209), +(1327,37,1179,1210), +(1328,37,1180,1211), +(1329,37,1181,1211), +(1330,37,1182,1212), +(1331,37,1183,1213), +(1332,37,280,1214), +(1333,37,280,1215), +(1334,37,1184,1216), +(1335,37,1185,1217), +(1336,37,1186,1217), +(1337,37,1187,1217), +(1338,37,1188,1218), +(1339,37,1189,1219), +(1340,37,1190,1220), +(1341,37,1191,1220), +(1342,37,1192,1220), +(1343,37,1193,1220), +(1344,37,1194,1221), +(1345,37,1195,1222), +(1346,37,1196,1222), +(1347,37,1197,1223), +(1348,37,1198,1224), +(1349,37,1199,1225), +(1350,37,1200,1225), +(1351,37,1201,1226), +(1352,37,1202,1227), +(1353,37,1203,1228), +(1354,37,1204,1229), +(1355,37,919,1230), +(1356,37,1205,1231), +(1357,37,1206,1232), +(1358,37,1207,1233), +(1359,37,1207,1234), +(1360,37,1208,1235), +(1361,37,1209,1236), +(1362,37,141,1237), +(1363,37,1210,1238), +(1364,37,1211,1239), +(1365,37,1212,1240), +(1366,37,1213,1241), +(1367,37,1214,1242), +(1368,37,1215,1243), +(1369,37,1216,1244), +(1370,37,1217,1245), +(1371,37,1218,1246), +(1372,37,1219,1247), +(1373,37,1220,1248), +(1374,37,1221,1249), +(1375,37,1222,1250), +(1376,37,1223,1251), +(1377,37,1224,1252), +(1378,37,1225,1253), +(1379,37,1226,1254), +(1380,37,1227,1255), +(1381,37,1228,1256), +(1382,37,165,1257), +(1383,37,1229,1258), +(1384,37,1230,1259), +(1385,37,1231,1260), +(1386,37,1232,1261), +(1387,37,1233,1262), +(1388,37,1234,1263), +(1389,37,1235,1264), +(1390,37,1236,1265), +(1391,37,1237,1266), +(1392,37,1238,1267), +(1393,37,1239,1268), +(1394,37,1240,1269), +(1395,37,1241,1270), +(1396,37,1241,1271), +(1397,37,1242,1272), +(1398,37,1243,1273), +(1399,37,1244,1274), +(1400,37,1245,1274), +(1401,37,1246,1274), +(1402,37,1247,1275), +(1403,37,1248,1276), +(1404,37,1249,1276), +(1405,37,1250,1277), +(1406,37,1251,1278), +(1407,37,111,1279), +(1408,37,111,1280), +(1409,37,1252,1281), +(1410,37,1253,1282), +(1411,37,1254,1283), +(1412,37,1255,1284), +(1413,37,1256,1284), +(1414,37,1257,1284), +(1415,37,1258,1285), +(1416,37,1259,1286), +(1417,37,1259,1287), +(1418,37,1260,1288), +(1419,37,1261,1289), +(1420,37,1262,1289), +(1421,37,1263,1289), +(1422,37,1264,1290), +(1423,37,1265,1291), +(1424,37,1266,1292), +(1425,37,1267,1293), +(1426,37,1268,1294), +(1427,37,1269,1295), +(1428,37,1270,1296), +(1429,37,1271,1297), +(1430,37,513,1298), +(1431,37,513,1299), +(1432,37,1272,1300), +(1433,37,1273,1301), +(1434,37,1274,1301), +(1435,37,1275,1302), +(1436,37,1276,1303), +(1437,37,1277,1304), +(1438,37,1278,1305), +(1439,37,1279,1306), +(1440,37,1280,1307), +(1441,37,1281,1308), +(1442,37,1282,1309), +(1443,37,1283,1310), +(1444,37,1284,1311), +(1445,37,1285,1311), +(1446,37,1286,1312), +(1447,37,1287,1313), +(1448,37,1288,1314), +(1449,37,1289,1315), +(1450,37,260,1316), +(1451,37,260,1317), +(1452,37,1290,1318), +(1453,37,1291,1319), +(1454,37,1292,1320), +(1455,37,1293,1321), +(1456,37,1294,1322), +(1457,37,1295,1323), +(1458,37,1296,1324), +(1459,37,1297,1325), +(1460,37,260,1326), +(1461,37,260,1327), +(1462,37,1298,1328), +(1463,37,1299,1329), +(1464,37,1300,1330), +(1465,37,1301,1331), +(1466,37,1302,1332), +(1467,37,1303,1333), +(1468,37,1304,1334), +(1469,37,1305,1335), +(1470,37,1306,1336), +(1471,37,1307,1337), +(1472,37,1308,1338), +(1473,37,1309,1339), +(1474,37,1310,1340), +(1475,37,1311,1341), +(1476,37,1312,1342), +(1477,37,1313,1343), +(1478,37,1314,1344), +(1479,37,1315,1345), +(1480,37,1316,1346), +(1481,37,1317,1347), +(1482,37,1318,1348), +(1483,37,1319,1348), +(1484,37,1320,1349), +(1485,37,1321,1350), +(1486,37,1322,1351), +(1487,37,1323,1352), +(1488,37,1324,1353), +(1489,37,1325,1354), +(1490,37,1326,1355), +(1491,37,1327,1356), +(1492,37,1328,1357), +(1493,37,1329,1358), +(1494,37,1330,1359), +(1495,37,1331,1360), +(1496,37,1332,1361), +(1497,37,1333,1362), +(1498,37,1334,1363), +(1499,37,1335,1364), +(1500,37,1336,1365), +(1501,37,1337,1366), +(1502,37,1338,1367), +(1503,37,1339,1368), +(1504,37,1340,1369), +(1505,37,276,1370), +(1506,37,1341,1371), +(1507,37,1342,1372), +(1508,37,1343,1373), +(1509,37,1344,1374), +(1510,37,1345,1374), +(1511,37,1346,1374), +(1512,37,1347,1375), +(1513,37,1348,1376), +(1514,37,287,1377), +(1515,37,1349,1378), +(1516,37,1350,1379), +(1517,37,1351,1380), +(1518,37,1352,1381), +(1519,37,1353,1382), +(1520,37,1354,1383), +(1521,37,1355,1384), +(1522,37,130,1385), +(1523,37,1356,1386), +(1524,37,1357,1387), +(1525,37,1358,1388), +(1526,37,561,1389), +(1527,37,1359,1390), +(1528,37,1360,1391), +(1529,37,1361,1392), +(1530,37,1362,1393), +(1531,37,1363,1394), +(1532,37,1364,1394), +(1533,37,1365,1395), +(1534,37,141,1396), +(1535,37,1366,1397), +(1536,37,1367,1398), +(1537,37,141,1399), +(1538,37,141,1400), +(1539,37,1368,1401), +(1540,37,1369,1402), +(1541,37,1370,1403), +(1542,37,1371,1404), +(1543,37,1372,1405), +(1544,37,1373,1406), +(1545,37,1374,1407), +(1546,37,1375,1408), +(1547,37,1376,1409), +(1548,37,1377,1410), +(1549,37,1378,1411), +(1550,37,1379,1412), +(1551,37,1380,1413), +(1552,37,1381,1414), +(1553,37,1382,1415), +(1554,37,1383,1416), +(1555,37,1384,1417), +(1556,37,1385,1417), +(1557,37,1386,1418), +(1558,37,1387,1419), +(1559,37,1388,1420), +(1560,37,1389,1421), +(1561,37,174,1422), +(1562,37,1390,1423), +(1563,37,1391,1424), +(1564,37,1392,1425), +(1565,37,1393,1426), +(1566,37,1394,1427), +(1567,37,1395,1428), +(1568,37,1396,1429), +(1569,37,1397,1430), +(1570,37,1398,1431), +(1571,37,1395,1432), +(1572,37,1399,1432), +(1573,37,1400,1433), +(1574,37,1401,1434), +(1575,37,1402,1435), +(1576,37,869,1436), +(1577,37,1403,1437), +(1578,37,1404,1438), +(1579,37,1405,1439), +(1580,37,1406,1440), +(1581,37,1407,1441), +(1582,37,1408,1441), +(1583,37,1409,1442), +(1584,37,1410,1443), +(1585,37,1411,1444), +(1586,37,1412,1445), +(1587,37,1413,1446), +(1588,37,1414,1447), +(1589,37,654,1448), +(1590,37,1415,1449), +(1591,37,1416,1450), +(1592,37,1417,1450), +(1593,37,1418,1451), +(1594,37,1419,1451), +(1595,37,1420,1452), +(1596,37,1421,1452), +(1597,37,1422,1453), +(1598,37,1423,1453), +(1599,37,1424,1454), +(1600,37,1425,1455), +(1601,37,1426,1456), +(1602,37,1427,1457), +(1603,37,1428,1458), +(1604,37,1429,1459), +(1605,37,1430,1460), +(1606,37,1431,1461), +(1607,37,1432,1462), +(1608,37,1433,1463), +(1609,37,1434,1464), +(1610,37,194,1465), +(1611,37,202,1466), +(1612,37,792,1467), +(1613,37,1024,1468), +(1614,37,1435,1469), +(1615,37,1436,1470), +(1616,37,1436,1471), +(1617,37,1437,1472), +(1618,37,1438,1473), +(1619,37,1439,1473), +(1620,37,1440,1474), +(1621,37,1441,1475), +(1622,37,1442,1476), +(1623,37,1443,1477), +(1624,37,1444,1478), +(1625,37,1445,1479), +(1626,37,1446,1480), +(1627,37,202,1481), +(1628,37,1447,1482), +(1629,37,1448,1483), +(1630,37,1449,1484), +(1631,37,1450,1485), +(1632,37,1451,1486), +(1633,37,1452,1487), +(1634,37,1453,1488), +(1635,37,1454,1488), +(1636,37,1455,1489), +(1637,37,1456,1490), +(1638,37,1457,1491), +(1639,37,1458,1492), +(1640,37,1459,1493), +(1641,37,1460,1494), +(1642,37,1461,1495), +(1643,37,1462,1496), +(1644,37,1463,1497), +(1645,37,236,1498), +(1646,37,1464,1499), +(1647,37,1465,1500), +(1648,37,1466,1500), +(1649,37,242,1501), +(1650,37,1467,1501), +(1651,37,1468,1502), +(1652,37,1469,1503), +(1653,37,1470,1504), +(1654,37,1471,1505), +(1655,37,1472,1506), +(1656,37,1473,1507), +(1657,37,1474,1508), +(1658,37,1475,1509), +(1659,37,1476,1509), +(1660,37,1477,1510), +(1661,37,1478,1511), +(1662,37,1479,1512), +(1663,37,1480,1513), +(1664,37,1481,1514), +(1665,37,1482,1515), +(1666,37,1483,1516), +(1667,37,977,1517), +(1668,37,1484,1518), +(1669,37,349,1519), +(1670,37,349,1520), +(1671,37,1485,1521), +(1672,37,13,1522), +(1673,37,1486,1523), +(1674,37,1487,1524), +(1675,37,1488,1525), +(1676,37,1489,1526), +(1677,37,1490,1526), +(1678,37,1491,1527), +(1679,37,1492,1528), +(1680,37,29,1529), +(1681,37,29,1530), +(1682,37,27,1531), +(1683,37,1493,1532), +(1684,37,1494,1533), +(1685,37,1495,1534), +(1686,37,1496,1535), +(1687,37,1497,1536), +(1688,37,1498,1537), +(1689,37,1499,1538), +(1690,37,1500,1539), +(1691,37,1501,1540), +(1692,37,1502,1541), +(1693,37,1503,1542), +(1694,37,1504,1543), +(1695,37,1505,1544), +(1696,37,1506,1544), +(1697,37,1507,1544), +(1698,37,1508,1545), +(1699,37,1509,1546), +(1700,37,1510,1547), +(1701,37,487,1548), +(1702,37,1511,1549), +(1703,37,1512,1550), +(1704,37,1513,1551), +(1705,37,1514,1552), +(1706,37,1510,1553), +(1707,37,1515,1554), +(1708,37,1516,1555), +(1709,37,1517,1556), +(1710,37,1518,1557), +(1711,37,1519,1558), +(1712,37,184,1559), +(1713,37,1520,1560), +(1714,37,1521,1561), +(1715,37,1522,1562), +(1716,37,1523,1563), +(1717,37,1524,1564), +(1718,37,1525,1565), +(1719,37,1526,1566), +(1720,37,1527,1567), +(1721,37,1528,1568), +(1722,37,1529,1569), +(1723,37,1530,1569), +(1724,37,1531,1570), +(1725,37,1532,1571), +(1726,37,1533,1571), +(1727,37,1534,1571), +(1728,37,1535,1572), +(1729,37,1536,1573), +(1730,37,1537,1574), +(1731,37,1538,1575), +(1732,37,1539,1576), +(1733,37,1540,1577), +(1734,37,1541,1578), +(1735,37,1542,1579), +(1736,37,1543,1580), +(1737,37,1544,1581), +(1738,37,513,1582), +(1739,37,1545,1583), +(1740,37,1546,1584), +(1741,37,1547,1584), +(1742,37,27,1585), +(1743,37,29,1586), +(1744,37,1548,1587), +(1745,37,1549,1588), +(1746,37,1007,1589), +(1747,37,1550,1590), +(1748,37,1551,1591), +(1749,37,360,1592), +(1750,37,360,1593), +(1751,37,1302,1594), +(1752,37,1552,1595), +(1753,37,1553,1596), +(1754,37,1554,1596), +(1755,37,1555,1597), +(1756,37,1556,1598), +(1757,37,1557,1599), +(1758,37,1558,1600), +(1759,37,1273,1601), +(1760,37,1559,1602), +(1761,37,1560,1602), +(1762,37,1561,1602), +(1763,37,1562,1603), +(1764,37,1563,1603), +(1765,37,1564,1604), +(1766,37,1565,1605), +(1767,37,1566,1606), +(1768,37,1567,1607), +(1769,37,280,1608), +(1770,37,1568,1609), +(1771,37,1569,1610), +(1772,37,1570,1610), +(1773,37,1571,1610), +(1774,37,280,1611), +(1775,37,1569,1612), +(1776,37,280,1613), +(1777,37,1572,1614), +(1778,37,280,1615), +(1779,37,504,1616), +(1780,37,311,1617), +(1781,37,1573,1618), +(1782,37,1574,1619), +(1783,37,1575,1620), +(1784,37,1576,1621), +(1785,37,1577,1621), +(1786,37,1578,1621), +(1787,37,1579,1622), +(1788,37,1580,1623), +(1789,37,1581,1624), +(1790,37,1582,1625), +(1791,37,1583,1626), +(1792,37,111,1627), +(1793,37,111,1628), +(1794,37,1584,1629), +(1795,37,1585,1630), +(1796,37,1586,1630), +(1797,37,1587,1631), +(1798,37,1588,1632), +(1799,37,1589,1633), +(1800,37,1590,1634), +(1801,37,1591,1635), +(1802,37,1592,1636), +(1803,37,1593,1637), +(1804,37,1594,1638), +(1805,37,1595,1639), +(1806,37,1596,1640), +(1807,37,1597,1641), +(1808,37,1598,1642), +(1809,37,1173,1643), +(1810,37,1536,1644), +(1811,37,735,1644), +(1812,37,1599,1645), +(1813,37,1600,1646), +(1814,37,1601,1647), +(1815,37,1602,1648), +(1816,37,1603,1649), +(1817,37,1604,1650), +(1818,37,1605,1651), +(1819,37,1606,1652), +(1820,37,1607,1653), +(1821,37,260,1654), +(1822,37,1608,1655), +(1823,37,1609,1655), +(1824,37,1610,1656), +(1825,37,1611,1657), +(1826,37,1090,1658), +(1827,37,260,1659), +(1828,37,260,1660), +(1829,37,1612,1661), +(1830,37,1613,1662), +(1831,37,260,1663), +(1832,37,396,1664), +(1833,37,1614,1665), +(1834,37,1615,1666), +(1835,37,260,1667), +(1836,37,1616,1668), +(1837,37,1617,1669), +(1838,37,1618,1669), +(1839,37,1619,1669), +(1840,37,1620,1670), +(1841,37,1621,1671), +(1842,37,1622,1672), +(1843,37,1623,1672), +(1844,37,1624,1672), +(1845,37,1625,1673), +(1846,37,260,1674), +(1847,37,1626,1675), +(1848,37,1627,1676), +(1849,37,428,1677), +(1850,37,1628,1678), +(1851,37,1629,1679), +(1852,37,1630,1680), +(1853,37,1631,1681), +(1854,37,1632,1682), +(1855,37,1633,1682), +(1856,37,274,1683), +(1857,37,1634,1684), +(1858,37,1635,1685), +(1859,37,1636,1686), +(1860,37,1637,1687), +(1861,37,1638,1688), +(1862,37,1639,1689), +(1863,37,274,1690), +(1864,37,1640,1691), +(1865,37,1641,1691), +(1866,37,1642,1692), +(1867,37,1643,1693), +(1868,37,1644,1694), +(1869,37,1645,1695), +(1870,37,130,1696), +(1871,37,1646,1697), +(1872,37,918,1698), +(1873,37,1647,1699), +(1874,37,1648,1700), +(1875,37,1649,1701), +(1876,37,1650,1701), +(1877,37,1651,1702), +(1878,37,141,1703), +(1879,37,141,1704), +(1880,37,1652,1705), +(1881,37,1653,1706), +(1882,37,1654,1707), +(1883,37,1655,1707), +(1884,37,1656,1707), +(1885,37,1657,1707), +(1886,37,141,1708), +(1887,37,1658,1709), +(1888,37,1659,1710), +(1889,37,1660,1711), +(1890,37,1661,1712), +(1891,37,1662,1713), +(1892,37,1663,1714), +(1893,37,1664,1715), +(1894,37,1665,1716), +(1895,37,1666,1717), +(1896,37,1667,1718), +(1897,37,165,1719), +(1898,37,1668,1720), +(1899,37,1669,1721), +(1900,37,1670,1722), +(1901,37,1671,1723), +(1902,37,1672,1724), +(1903,37,1673,1725), +(1904,37,1674,1726), +(1905,37,598,1727), +(1906,37,1675,1728), +(1907,37,174,1729), +(1908,37,1676,1730), +(1909,37,1677,1731), +(1910,37,1678,1732), +(1911,37,1679,1733), +(1912,37,1680,1734), +(1913,37,1680,1735), +(1914,37,1413,1736), +(1915,37,1681,1737), +(1916,37,1682,1737), +(1917,37,1683,1737), +(1918,37,1684,1738), +(1919,37,1685,1739), +(1920,37,189,1740), +(1921,37,1686,1741), +(1922,37,1687,1742), +(1923,37,190,1743), +(1924,37,202,1743), +(1925,37,1688,1744), +(1926,37,202,1745), +(1927,37,1689,1746), +(1928,37,1690,1747), +(1929,37,1691,1748), +(1930,37,1692,1749), +(1931,37,1693,1750), +(1932,37,1694,1751), +(1933,37,1695,1752), +(1934,37,1696,1753), +(1935,37,1697,1754), +(1936,37,202,1755), +(1937,37,8,1756), +(1938,37,1698,1757), +(1939,37,1699,1758), +(1940,37,1700,1759), +(1941,37,1701,1760), +(1942,37,1702,1761), +(1943,37,1703,1762), +(1944,37,1704,1763), +(1945,37,1705,1764), +(1946,37,1706,1765), +(1947,37,229,1766), +(1948,37,1707,1767), +(1949,37,229,1768), +(1950,37,1708,1769), +(1951,37,1709,1769), +(1952,37,788,1770), +(1953,37,1710,1770), +(1954,37,1711,1771), +(1955,37,1712,1772), +(1956,37,1713,1773), +(1957,37,1714,1774), +(1958,37,1715,1775), +(1959,37,1716,1776), +(1960,37,1717,1776), +(1961,37,1718,1776), +(1962,37,1719,1777), +(1963,37,1720,1778), +(1964,37,1721,1779), +(1965,37,1722,1780), +(1966,37,1723,1781), +(1967,37,1724,1782), +(1968,37,1725,1783), +(1969,37,474,1784), +(1970,37,1726,1785), +(1971,37,1727,1785), +(1972,37,1728,1786), +(1973,37,181,1787), +(1974,37,1729,1788), +(1975,37,1730,1789), +(1976,37,1731,1790), +(1977,37,1732,1791), +(1978,37,1733,1792), +(1979,37,654,1793), +(1980,37,654,1794), +(1981,37,1734,1795), +(1982,37,1735,1796), +(1983,37,1736,1797), +(1984,37,1737,1798), +(1985,37,1738,1799), +(1986,37,1739,1800), +(1987,37,1740,1801), +(1988,37,1741,1802), +(1989,37,1742,1803), +(1990,37,1743,1804), +(1991,37,1744,1805), +(1992,37,1745,1806), +(1993,37,1746,1807), +(1994,37,1747,1808), +(1995,37,1748,1809), +(1996,37,1749,1810), +(1997,37,1750,1811), +(1998,37,1751,1812), +(1999,37,1752,1813), +(2000,37,1753,1814), +(2001,37,1754,1815), +(2002,37,1755,1816), +(2003,37,1756,1817), +(2004,37,1757,1818), +(2005,37,1758,1818), +(2006,37,1759,1819), +(2007,37,1760,1820), +(2008,37,1761,1821), +(2009,37,1762,1822), +(2010,37,1763,1823), +(2011,37,1764,1824), +(2012,37,319,1825), +(2013,37,1765,1826), +(2014,37,1766,1827), +(2015,37,1767,1828), +(2016,37,1768,1829), +(2017,37,1769,1830), +(2018,37,1770,1831), +(2019,37,1771,1832), +(2020,37,1772,1833), +(2021,37,1773,1834), +(2022,37,505,1835), +(2023,37,1774,1836), +(2024,37,1775,1837), +(2025,37,1776,1838), +(2026,37,992,1839), +(2027,37,1777,1840), +(2028,37,1778,1841), +(2029,37,1504,1842), +(2030,37,1779,1843), +(2031,37,1780,1844), +(2032,37,1781,1845), +(2033,37,1782,1846), +(2034,37,1783,1847), +(2035,37,1784,1848), +(2036,37,1785,1849), +(2037,37,1786,1850), +(2038,37,1787,1851), +(2039,37,1788,1852), +(2040,37,1010,1853), +(2041,37,1789,1854), +(2042,37,1790,1855), +(2043,37,1791,1856), +(2044,37,1792,1856), +(2045,37,1793,1856), +(2046,37,1794,1856), +(2047,37,1795,1857), +(2048,37,1796,1858), +(2049,37,1797,1859), +(2050,37,1798,1860), +(2051,37,1799,1861), +(2052,37,1800,1862), +(2053,37,1801,1863), +(2054,37,1802,1864), +(2055,37,1803,1865), +(2056,37,780,1866), +(2057,37,1804,1867), +(2058,37,1805,1868), +(2059,37,1806,1869), +(2060,37,1807,1870), +(2061,37,536,1871), +(2062,37,91,1872), +(2063,37,1808,1873), +(2064,37,1809,1874), +(2065,37,1810,1875), +(2066,37,1811,1876), +(2067,37,1812,1877), +(2068,37,1813,1878), +(2069,37,1814,1879), +(2070,37,1815,1880), +(2071,37,1816,1881), +(2072,37,349,1882), +(2073,37,1817,1883), +(2074,37,11,1884), +(2075,37,14,1885), +(2076,37,1487,1886), +(2077,37,1818,1887), +(2078,37,1819,1888), +(2079,37,673,1889), +(2080,37,1820,1890), +(2081,37,27,1891), +(2082,37,27,1892), +(2083,37,1821,1893), +(2084,37,27,1894), +(2085,37,29,1895), +(2086,37,29,1896), +(2087,37,1822,1897), +(2088,37,1823,1898), +(2089,37,999,1899), +(2090,37,1824,1900), +(2091,37,1825,1901), +(2092,37,1826,1902), +(2093,37,29,1903), +(2094,37,33,1904), +(2095,37,989,1905), +(2096,37,678,1906), +(2097,37,1827,1907), +(2098,37,1011,1908), +(2099,37,360,1909), +(2100,37,1828,1910), +(2101,37,1829,1911), +(2102,37,1830,1911), +(2103,37,1831,1911), +(2104,37,1832,1912), +(2105,37,1833,1913), +(2106,37,1834,1914), +(2107,37,1428,1915), +(2108,37,184,1916), +(2109,37,1835,1917), +(2110,37,1836,1918), +(2111,37,1837,1919), +(2112,37,1838,1920), +(2113,37,1839,1921), +(2114,37,1840,1922), +(2115,37,1841,1923), +(2116,37,194,1924), +(2117,37,1842,1925), +(2118,37,1843,1926), +(2119,37,1844,1927), +(2120,37,1845,1928), +(2121,37,1846,1929), +(2122,37,1847,1930), +(2123,37,1848,1931), +(2124,37,1849,1932), +(2125,37,1850,1933), +(2126,37,1851,1934), +(2127,37,1852,1935), +(2128,37,1853,1936), +(2129,37,1854,1937), +(2130,37,1855,1937), +(2131,37,1856,1938), +(2132,37,1857,1939), +(2133,37,1858,1940), +(2134,37,1857,1941), +(2135,37,1859,1942), +(2136,37,1860,1943), +(2137,37,1857,1944), +(2138,37,1861,1945), +(2139,37,1862,1946), +(2140,37,1863,1947), +(2141,37,1864,1948), +(2142,37,1364,1949), +(2143,37,1865,1950), +(2144,37,229,1951), +(2145,37,1866,1952), +(2146,37,1867,1953), +(2147,37,1868,1954), +(2148,37,1869,1955), +(2149,37,1870,1956), +(2150,37,1871,1957), +(2151,37,1872,1958), +(2152,37,1873,1959), +(2153,37,1874,1960), +(2154,37,469,1961), +(2155,37,1875,1962), +(2156,37,1876,1963), +(2157,37,1877,1964), +(2158,37,1878,1964), +(2159,37,1879,1965), +(2160,37,1725,1966), +(2161,37,1880,1967), +(2162,37,1881,1968), +(2163,37,1882,1969), +(2164,37,1883,1969), +(2165,37,1884,1969), +(2166,37,1885,1970), +(2167,37,1886,1970), +(2168,37,1887,1971), +(2169,37,1888,1972), +(2170,37,1889,1973), +(2171,37,1890,1974), +(2172,37,1891,1975), +(2173,37,1892,1976), +(2174,37,1131,1977), +(2175,37,1893,1978), +(2176,37,1894,1979), +(2177,37,1895,1980), +(2178,37,1896,1981), +(2179,37,1897,1982), +(2180,37,1898,1983), +(2181,37,1899,1984), +(2182,37,1900,1985), +(2183,37,640,1986), +(2184,37,1901,1987), +(2185,37,1273,1988), +(2186,37,1902,1989), +(2187,37,198,1990), +(2188,37,1903,1991), +(2189,37,1724,1992), +(2190,37,1904,1992), +(2191,37,1905,1993), +(2192,37,1906,1994), +(2193,37,1907,1994), +(2194,37,1908,1994), +(2195,37,1909,1994), +(2196,37,1910,1995), +(2197,37,474,1996), +(2198,37,1911,1997), +(2199,37,1912,1998), +(2200,37,1913,1999), +(2201,37,1914,2000), +(2202,37,1915,2001), +(2203,37,1916,2002), +(2204,37,1917,2003), +(2205,37,1918,2004), +(2206,37,1919,2005), +(2207,37,1920,2006), +(2208,37,1921,2007), +(2209,37,1922,2007), +(2210,37,1923,2008), +(2211,37,1924,2009), +(2212,37,1925,2009), +(2213,37,1926,2010), +(2214,37,1927,2011), +(2215,37,1928,2012), +(2216,37,1929,2013), +(2217,37,1930,2013), +(2218,37,1931,2014), +(2219,37,1767,2015), +(2220,37,1932,2016), +(2221,37,1933,2017), +(2222,37,1934,2018), +(2223,37,1935,2019), +(2224,37,1936,2020), +(2225,37,481,2021), +(2226,37,994,2022), +(2227,37,1937,2023), +(2228,37,372,2024), +(2229,37,1938,2025), +(2230,37,1939,2026), +(2231,37,1940,2027), +(2232,37,1941,2028), +(2233,37,1942,2029), +(2234,37,992,2030), +(2235,37,536,2031), +(2236,37,1943,2032), +(2237,37,1944,2033), +(2238,37,1945,2033), +(2239,37,1946,2033), +(2240,37,1947,2034), +(2241,37,1948,2035), +(2242,37,1949,2036), +(2243,37,1950,2037), +(2244,37,1951,2038), +(2245,37,1952,2039), +(2246,37,1953,2039), +(2247,37,1954,2039), +(2248,37,1955,2040), +(2249,37,1956,2041), +(2250,37,1957,2041), +(2251,37,1958,2042), +(2252,37,1959,2043), +(2253,37,1960,2044), +(2254,37,1961,2045), +(2255,37,1962,2046), +(2256,37,1963,2047), +(2257,37,1964,2048), +(2258,37,1965,2048), +(2259,37,1966,2049), +(2260,37,1967,2050), +(2261,37,504,2051), +(2262,37,1968,2052), +(2263,37,1969,2053), +(2264,37,1970,2054), +(2265,37,1971,2055), +(2266,37,1972,2056), +(2267,37,1973,2057), +(2268,37,1974,2058), +(2269,37,1975,2059), +(2270,37,1976,2060), +(2271,37,260,2061), +(2272,37,1977,2062), +(2273,37,1978,2063), +(2274,37,260,2064), +(2275,37,1979,2065), +(2276,37,1980,2066), +(2277,37,1981,2067), +(2278,37,1982,2068), +(2279,37,1979,2069), +(2280,37,391,2070), +(2281,37,1983,2071), +(2282,37,1281,2072), +(2283,37,1984,2073), +(2284,37,1983,2074), +(2285,37,260,2075), +(2286,37,260,2076), +(2287,37,1985,2077), +(2288,37,260,2078), +(2289,37,1986,2079), +(2290,37,1987,2080), +(2291,37,1988,2081), +(2292,37,1989,2081), +(2293,37,1990,2082), +(2294,37,260,2083), +(2295,37,396,2084), +(2296,37,1991,2085), +(2297,37,1992,2086), +(2298,37,1993,2087), +(2299,37,1994,2088), +(2300,37,1995,2089), +(2301,37,260,2090), +(2302,37,1996,2091), +(2303,37,1997,2092), +(2304,37,1998,2093), +(2305,37,265,2094), +(2306,37,1999,2095), +(2307,37,2000,2096), +(2308,37,2001,2097), +(2309,37,2002,2098), +(2310,37,2003,2099), +(2311,37,2004,2100), +(2312,37,2005,2100), +(2313,37,2006,2100), +(2314,37,2007,2101), +(2315,37,1104,2102), +(2316,37,2008,2103), +(2317,37,2009,2104), +(2318,37,2010,2105), +(2319,37,2011,2106), +(2320,37,2012,2107), +(2321,37,2013,2108), +(2322,37,2014,2109), +(2323,37,2015,2110), +(2324,37,2016,2111), +(2325,37,2017,2112), +(2326,37,2018,2113), +(2327,37,2019,2114), +(2328,37,2020,2115), +(2329,37,2021,2115), +(2330,37,2022,2115), +(2331,37,2023,2116), +(2332,37,2024,2117), +(2333,37,2025,2118), +(2334,37,2026,2119), +(2335,37,2027,2120), +(2336,37,2028,2121), +(2337,37,2029,2121), +(2338,37,2030,2122), +(2339,37,2031,2123), +(2340,37,2032,2124), +(2341,37,2033,2125), +(2342,37,2034,2126), +(2343,37,2035,2127), +(2344,37,2036,2128), +(2345,37,2037,2129), +(2346,37,2038,2130), +(2347,37,2039,2131), +(2348,37,141,2132), +(2349,37,2040,2133), +(2350,37,2041,2134), +(2351,37,2042,2135), +(2352,37,2043,2135), +(2353,37,2044,2135), +(2354,37,2045,2136), +(2355,37,2046,2137), +(2356,37,2047,2138), +(2357,37,2048,2138), +(2358,37,2049,2139), +(2359,37,2050,2140), +(2360,37,2051,2141), +(2361,37,2052,2142), +(2362,37,2053,2143), +(2363,37,2054,2144), +(2364,37,2055,2145), +(2365,37,1220,2146), +(2366,37,2056,2146), +(2367,37,2057,2146), +(2368,37,2058,2147), +(2369,37,2059,2148), +(2370,37,2060,2148), +(2371,37,2061,2149), +(2372,37,2062,2150), +(2373,37,942,2151), +(2374,37,2063,2152), +(2375,37,2064,2153), +(2376,37,2065,2154), +(2377,37,2049,2155), +(2378,37,2066,2156), +(2379,37,2067,2156), +(2380,37,2068,2157), +(2381,37,2069,2158), +(2382,37,172,2159), +(2383,37,2070,2160), +(2384,37,173,2161), +(2385,37,2071,2162), +(2386,37,598,2163), +(2387,37,1413,2164), +(2388,37,1391,2165), +(2389,37,2072,2166), +(2390,37,177,2167), +(2391,37,1728,2168), +(2392,37,177,2169), +(2393,37,1680,2170), +(2394,37,2073,2171), +(2395,37,2074,2172), +(2396,37,2075,2173), +(2397,37,2076,2174), +(2398,37,2077,2175), +(2399,37,2078,2176), +(2400,37,2079,2177), +(2401,37,349,2178), +(2402,37,673,2179), +(2403,37,2080,2180), +(2404,37,2081,2181), +(2405,37,27,2182), +(2406,37,661,2183), +(2407,37,91,2184), +(2408,37,2082,2185), +(2409,37,999,2186), +(2410,37,91,2187), +(2411,37,2083,2188), +(2412,37,2084,2189), +(2413,37,2085,2190), +(2414,37,2086,2191), +(2415,37,2087,2191), +(2416,37,2088,2191), +(2417,37,360,2192), +(2418,37,2089,2193), +(2419,37,33,2194), +(2420,37,2090,2195), +(2421,37,2091,2196), +(2422,37,2092,2197), +(2423,37,2093,2198), +(2424,37,2094,2199), +(2425,37,280,2200), +(2426,37,2095,2201), +(2427,37,2096,2202), +(2428,37,2097,2202), +(2429,37,2098,2202), +(2430,37,2099,2203), +(2431,37,280,2204), +(2432,37,2100,2205), +(2433,37,2101,2206), +(2434,37,280,2207), +(2435,37,287,2208), +(2436,37,2102,2209), +(2437,37,287,2210), +(2438,37,2103,2211), +(2439,37,2104,2212), +(2440,37,2105,2213), +(2441,37,2106,2213), +(2442,37,1818,2214), +(2443,37,2107,2215), +(2444,37,2108,2216), +(2445,37,2109,2217), +(2446,37,2110,2218), +(2447,37,1413,2219), +(2448,37,2111,2220), +(2449,37,2112,2221), +(2450,37,2113,2221), +(2451,37,2114,2222), +(2452,37,2115,2223), +(2453,37,2116,2224), +(2454,37,2117,2225), +(2455,37,2118,2225), +(2456,37,2119,2226), +(2457,37,2120,2227), +(2458,37,2121,2227), +(2459,37,2122,2228), +(2460,37,660,2229), +(2461,37,2123,2230), +(2462,37,2124,2231), +(2463,37,2125,2232), +(2464,37,2126,2233), +(2465,37,1569,2234), +(2466,37,2127,2235), +(2467,37,2128,2236), +(2468,37,2129,2237), +(2469,37,2130,2238), +(2470,37,280,2239), +(2471,37,2131,2240), +(2472,37,2132,2241), +(2473,37,2133,2242), +(2474,37,2134,2243), +(2475,37,2135,2244), +(2476,37,2136,2245), +(2477,37,2137,2246), +(2478,37,2138,2246), +(2479,37,2139,2247), +(2480,37,2030,2248), +(2481,37,130,2249), +(2482,37,2140,2250), +(2483,37,2141,2251), +(2484,37,2142,2252), +(2485,37,2143,2253), +(2486,37,2144,2254), +(2487,37,2145,2255), +(2488,37,2146,2256), +(2489,37,2147,2257), +(2490,37,2148,2258), +(2491,37,2149,2259), +(2492,37,2150,2260), +(2493,37,2151,2261), +(2494,37,2152,2262), +(2495,37,2153,2263), +(2496,37,2154,2264), +(2497,37,2155,2265), +(2498,37,2156,2266), +(2499,37,2157,2267), +(2500,37,2158,2268), +(2501,37,2159,2269), +(2502,37,2160,2270), +(2503,37,2161,2271), +(2504,37,2162,2272), +(2505,37,2163,2273), +(2506,37,260,2274), +(2507,37,2164,2275), +(2508,37,513,2276), +(2509,37,2165,2277), +(2510,37,2166,2278), +(2511,37,2167,2279), +(2512,37,2168,2280), +(2513,37,2169,2281), +(2514,37,2170,2282), +(2515,37,1979,2283), +(2516,37,2171,2284), +(2517,37,260,2285), +(2518,37,260,2286), +(2519,37,2172,2287), +(2520,37,2173,2288), +(2521,37,2174,2289), +(2522,37,2175,2290), +(2523,37,2176,2291), +(2524,37,2177,2292), +(2525,37,2178,2293), +(2526,37,2179,2293), +(2527,37,2180,2293), +(2528,37,2181,2294), +(2529,37,2182,2295), +(2530,37,2183,2296), +(2531,37,1314,2297), +(2532,37,2184,2298), +(2533,37,2185,2299), +(2534,37,2186,2300), +(2535,37,2187,2301), +(2536,37,2188,2302), +(2537,37,2189,2303), +(2538,37,2190,2304), +(2539,37,2191,2305), +(2540,37,2192,2306), +(2541,37,2193,2306), +(2542,37,2194,2307), +(2543,37,2195,2308), +(2544,37,2196,2309), +(2545,37,1757,2310), +(2546,37,2197,2311), +(2547,37,2198,2312), +(2548,37,866,2313), +(2549,37,2199,2314), +(2550,37,2200,2315), +(2551,37,2201,2316), +(2552,37,2202,2317), +(2553,37,1411,2318), +(2554,37,474,2319), +(2555,37,2203,2320), +(2556,37,1537,2321), +(2557,37,2204,2322), +(2558,37,2205,2323), +(2559,37,2206,2324), +(2560,37,2207,2324), +(2561,37,2208,2324), +(2562,37,2209,2325), +(2563,37,2210,2326), +(2564,37,2211,2327), +(2565,37,2212,2328), +(2566,37,2213,2329), +(2567,37,2214,2330), +(2568,37,2215,2331), +(2569,37,2216,2332), +(2570,37,2217,2333), +(2571,37,2218,2334), +(2572,37,2219,2335), +(2573,37,2220,2335), +(2574,37,2221,2335), +(2575,37,2222,2336), +(2576,37,2223,2336), +(2577,37,2224,2336), +(2578,37,2225,2336), +(2579,37,13,2337), +(2580,37,349,2338), +(2581,37,2226,2339), +(2582,37,2227,2340), +(2583,37,2228,2341), +(2584,37,2229,2342), +(2585,37,2227,2343), +(2586,37,2230,2344), +(2587,37,678,2345), +(2588,37,704,2346), +(2589,37,23,2347), +(2590,37,2231,2348), +(2591,37,91,2349), +(2592,37,2232,2350), +(2593,37,2233,2350), +(2594,37,992,2351), +(2595,37,2234,2352), +(2596,37,2235,2353), +(2597,37,2236,2354), +(2598,37,2237,2355), +(2599,37,2238,2356), +(2600,37,2239,2357), +(2601,37,721,2358), +(2602,37,2240,2359), +(2603,37,91,2360), +(2604,37,2241,2361), +(2605,37,2242,2361), +(2606,37,2243,2361), +(2607,37,2244,2361), +(2608,37,2245,2362), +(2609,37,2246,2363), +(2610,37,2247,2364), +(2611,37,2248,2364), +(2612,37,1510,2365), +(2613,37,2249,2366), +(2614,37,2250,2367), +(2615,37,2251,2368), +(2616,37,481,2369), +(2617,37,2252,2370), +(2618,37,1510,2371), +(2619,37,2253,2372), +(2620,37,183,2373), +(2621,37,2254,2374), +(2622,37,994,2375), +(2623,37,2255,2375), +(2624,37,2006,2375), +(2625,37,2256,2375), +(2626,37,2257,2375), +(2627,37,1382,2375), +(2628,37,2258,2376), +(2629,37,2049,2377), +(2630,37,2259,2378), +(2631,37,2260,2379), +(2632,37,2261,2380), +(2633,37,2262,2381), +(2634,37,360,2382), +(2635,37,2263,2383), +(2636,37,2264,2384), +(2637,37,360,2385), +(2638,37,2265,2386), +(2639,37,2266,2387), +(2640,37,2267,2388), +(2641,37,2268,2389), +(2642,37,2269,2390), +(2643,37,2270,2391), +(2644,37,2271,2392), +(2645,37,2272,2393), +(2646,37,2273,2394), +(2647,37,2274,2395), +(2648,37,2272,2396), +(2649,37,2275,2397), +(2650,37,2276,2398), +(2651,37,2277,2399), +(2652,37,2278,2400), +(2653,37,2279,2401), +(2654,37,2280,2402), +(2655,37,2281,2403), +(2656,37,2282,2404), +(2657,37,2283,2405), +(2658,37,2284,2406), +(2659,37,141,2407), +(2660,37,141,2408), +(2661,37,141,2409), +(2662,37,2285,2410), +(2663,37,2286,2411), +(2664,37,2287,2412), +(2665,37,2288,2413), +(2666,37,2289,2413), +(2667,37,2290,2413), +(2668,37,933,2414), +(2669,37,2291,2415), +(2670,37,2292,2416), +(2671,37,2293,2417), +(2672,37,2294,2418), +(2673,37,2295,2419), +(2674,37,2296,2420), +(2675,37,2297,2421), +(2676,37,2298,2422), +(2677,37,2299,2423), +(2678,37,2300,2424), +(2679,37,2301,2425), +(2680,37,2302,2426), +(2681,37,2303,2427), +(2682,37,2304,2428), +(2683,37,2305,2429), +(2684,37,2306,2430), +(2685,37,2067,2431), +(2686,37,173,2432), +(2687,37,2307,2433), +(2688,37,1413,2434), +(2689,37,2308,2435), +(2690,37,2309,2436), +(2691,37,780,2437), +(2692,37,2310,2438), +(2693,37,184,2439), +(2694,37,184,2440), +(2695,37,1024,2441), +(2696,37,1031,2442), +(2697,37,2311,2443), +(2698,37,2312,2444), +(2699,37,2313,2445), +(2700,37,194,2446), +(2701,37,2314,2447), +(2702,37,2315,2448), +(2703,37,2316,2449), +(2704,37,784,2450), +(2705,37,2317,2451), +(2706,37,2318,2452), +(2707,37,2318,2453), +(2708,37,2319,2454), +(2709,37,2320,2455), +(2710,37,2321,2456), +(2711,37,2322,2457), +(2712,37,2323,2458), +(2713,37,2324,2459), +(2714,37,202,2460), +(2715,37,2325,2461), +(2716,37,2326,2462), +(2717,37,2327,2463), +(2718,37,2328,2464), +(2719,37,2329,2465), +(2720,37,2330,2466), +(2721,37,2331,2467), +(2722,37,2332,2468), +(2723,37,2333,2469), +(2724,37,2334,2470), +(2725,37,2335,2471), +(2726,37,2216,2471), +(2727,37,2336,2472), +(2728,37,2337,2473), +(2729,37,2338,2474), +(2730,37,2339,2475), +(2731,37,229,2476), +(2732,37,2340,2477), +(2733,37,2341,2478), +(2734,37,229,2479), +(2735,37,229,2480), +(2736,37,2342,2481), +(2737,37,229,2482), +(2738,37,2343,2483), +(2739,37,2344,2484), +(2740,37,2345,2485), +(2741,37,2346,2486), +(2742,37,2347,2487), +(2743,37,2348,2488), +(2744,37,893,2489), +(2745,37,2349,2490), +(2746,37,2350,2491), +(2747,37,2351,2492), +(2748,37,2352,2493), +(2749,37,2353,2494), +(2750,37,2354,2495), +(2751,37,474,2496), +(2752,37,2355,2497), +(2753,37,2356,2498), +(2754,37,2357,2499), +(2755,37,2358,2500), +(2756,37,2359,2500), +(2757,37,654,2501), +(2758,37,654,2502), +(2759,37,2360,2503), +(2760,37,2361,2504), +(2761,37,2362,2505), +(2762,37,2363,2506), +(2763,37,2364,2506), +(2764,37,2365,2506), +(2765,37,658,2507), +(2766,37,2366,2508), +(2767,37,2367,2508), +(2768,37,2368,2508), +(2769,37,2369,2509), +(2770,37,2370,2510), +(2771,37,280,2511), +(2772,37,280,2512), +(2773,37,2371,2513), +(2774,37,606,2514), +(2775,37,2372,2515), +(2776,37,2373,2516), +(2777,37,2374,2517), +(2778,37,2375,2518), +(2779,37,616,2519), +(2780,37,2376,2520), +(2781,37,2377,2521), +(2782,37,2378,2522), +(2783,37,2379,2523), +(2784,37,2380,2524), +(2785,37,2381,2525), +(2786,37,2382,2526), +(2787,37,2383,2527), +(2788,37,2384,2528), +(2789,37,2385,2529), +(2790,37,2386,2530), +(2791,37,2387,2531), +(2792,37,2388,2531), +(2793,37,2389,2532), +(2794,37,2390,2533), +(2795,37,2391,2534), +(2796,37,2392,2535), +(2797,37,2393,2536), +(2798,37,2394,2537), +(2799,37,2395,2538), +(2800,37,2396,2539), +(2801,37,115,2540), +(2802,37,2397,2541), +(2803,37,2398,2542), +(2804,37,2399,2543), +(2805,37,276,2544), +(2806,37,2400,2545), +(2807,37,130,2546), +(2808,37,2401,2547), +(2809,37,2402,2548), +(2810,37,919,2549), +(2811,37,2272,2550), +(2812,37,2403,2550), +(2813,37,2404,2550), +(2814,37,2405,2551), +(2815,37,2406,2552), +(2816,37,2407,2553), +(2817,37,2408,2554), +(2818,37,2409,2555), +(2819,37,2410,2556), +(2820,37,2411,2557), +(2821,37,2412,2558), +(2822,37,2413,2559), +(2823,37,2414,2560), +(2824,37,2415,2561), +(2825,37,2416,2562), +(2826,37,2417,2563), +(2827,37,2418,2564), +(2828,37,2419,2565), +(2829,37,2420,2566), +(2830,37,2421,2567), +(2831,37,2422,2568), +(2832,37,2423,2569), +(2833,37,2424,2570), +(2834,37,2425,2571), +(2835,37,2426,2572), +(2836,37,2427,2573), +(2837,37,2428,2574), +(2838,37,2429,2575), +(2839,37,945,2575), +(2840,37,2430,2576), +(2841,37,2431,2577), +(2842,37,2432,2578), +(2843,37,2433,2579), +(2844,37,2433,2580), +(2845,37,2082,2581), +(2846,37,176,2582), +(2847,37,2434,2583), +(2848,37,178,2584), +(2849,37,1678,2585), +(2850,37,1680,2586), +(2851,37,182,2587), +(2852,37,2435,2588), +(2853,37,2436,2589), +(2854,37,2437,2590), +(2855,37,2438,2591), +(2856,37,2439,2592), +(2857,37,513,2593), +(2858,37,513,2594), +(2859,37,2440,2595), +(2860,37,2441,2596), +(2861,37,513,2597), +(2862,37,2442,2598), +(2863,37,2443,2599), +(2864,37,2444,2600), +(2865,37,2445,2601), +(2866,37,1030,2602), +(2867,37,2446,2603), +(2868,37,2447,2604), +(2869,37,536,2605), +(2870,37,260,2606), +(2871,37,260,2607), +(2872,37,2448,2608), +(2873,37,2449,2609), +(2874,37,260,2610), +(2875,37,2450,2611), +(2876,37,2451,2612), +(2877,37,2452,2613), +(2878,37,2453,2614), +(2879,37,2454,2615), +(2880,37,2455,2616), +(2881,37,1306,2617), +(2882,37,2456,2618), +(2883,37,2457,2619), +(2884,37,2322,2620), +(2885,37,2458,2621), +(2886,37,2459,2622), +(2887,37,2460,2623), +(2888,37,2461,2624), +(2889,37,2462,2625), +(2890,37,2463,2626), +(2891,37,774,2627), +(2892,37,2464,2628), +(2893,37,2465,2629), +(2894,37,2466,2630), +(2895,37,2467,2631), +(2896,37,2468,2632), +(2897,37,2469,2633), +(2898,37,2470,2634), +(2899,37,194,2635), +(2900,37,184,2636), +(2901,37,2471,2637), +(2902,37,2472,2638), +(2903,37,2473,2638), +(2904,37,195,2639), +(2905,37,2474,2640), +(2906,37,194,2641), +(2907,37,194,2642), +(2908,37,2475,2643), +(2909,37,2476,2644), +(2910,37,2477,2645), +(2911,37,2478,2646), +(2912,37,2479,2647), +(2913,37,2480,2648), +(2914,37,2481,2648), +(2915,37,2482,2649), +(2916,37,2483,2650), +(2917,37,245,2651), +(2918,37,2484,2652), +(2919,37,2485,2653), +(2920,37,2486,2654), +(2921,37,2435,2655), +(2922,37,2487,2656), +(2923,37,2488,2657), +(2924,37,2489,2658), +(2925,37,2490,2659), +(2926,37,2491,2660), +(2927,37,637,2661), +(2928,37,2492,2662), +(2929,37,2493,2663), +(2930,37,2494,2664), +(2931,37,2495,2665), +(2932,37,2496,2666), +(2933,37,2497,2667), +(2934,37,2498,2668), +(2935,37,2499,2668), +(2936,37,2500,2668), +(2937,37,2501,2668), +(2938,37,2502,2669), +(2939,37,2503,2670), +(2940,37,2504,2670), +(2941,37,2505,2670), +(2942,37,2506,2671), +(2943,37,2507,2672), +(2944,37,2508,2673), +(2945,37,2509,2674), +(2946,37,1462,2675), +(2947,37,655,2676), +(2948,37,2510,2676), +(2949,37,2511,2677), +(2950,37,2512,2678), +(2951,37,2513,2679), +(2952,37,2514,2680), +(2953,37,2515,2681), +(2954,37,2516,2682), +(2955,37,2517,2683), +(2956,37,866,2684), +(2957,37,2518,2685), +(2958,37,2519,2686), +(2959,37,2520,2687), +(2960,37,2521,2688), +(2961,37,2522,2689), +(2962,37,2523,2690), +(2963,37,2524,2691), +(2964,37,2525,2692), +(2965,37,2526,2693), +(2966,37,319,2694), +(2967,37,2527,2695), +(2968,37,649,2696), +(2969,37,2528,2697), +(2970,37,1411,2698), +(2971,37,107,2699), +(2972,37,2006,2700), +(2973,37,2529,2701), +(2974,37,2530,2702), +(2975,37,1411,2703), +(2976,37,2531,2704), +(2977,37,2532,2705), +(2978,37,2533,2706), +(2979,37,1811,2707), +(2980,37,2534,2708), +(2981,37,2535,2709), +(2982,37,2536,2710), +(2983,37,2537,2711), +(2984,37,2538,2712), +(2985,37,2539,2713), +(2986,37,2540,2714), +(2987,37,2541,2715), +(2988,37,2542,2716), +(2989,37,12,2717), +(2990,37,2542,2718), +(2991,37,2543,2719), +(2992,37,2544,2720), +(2993,37,2545,2721), +(2994,37,13,2722), +(2995,37,349,2723), +(2996,37,13,2724), +(2997,37,13,2725), +(2998,37,2227,2726), +(2999,37,2546,2727), +(3000,37,27,2728), +(3001,37,27,2729), +(3002,37,2547,2730), +(3003,37,2548,2731), +(3004,37,27,2732), +(3005,37,2327,2733), +(3006,37,2549,2734), +(3007,37,27,2735), +(3008,37,678,2736), +(3009,37,987,2737), +(3010,37,33,2738), +(3011,37,704,2739), +(3012,37,2550,2740), +(3013,37,2551,2741), +(3014,37,2552,2742), +(3015,37,2553,2743), +(3016,37,2554,2744), +(3017,37,2555,2745), +(3018,37,2556,2746), +(3019,37,2557,2747), +(3020,37,2558,2748), +(3021,37,2559,2749), +(3022,37,2560,2749), +(3023,37,2561,2750), +(3024,37,182,2751), +(3025,37,182,2752), +(3026,37,2562,2753), +(3027,37,1413,2754), +(3028,37,2563,2755), +(3029,37,654,2756), +(3030,37,2564,2757), +(3031,37,2565,2757), +(3032,37,2566,2758), +(3033,37,2567,2758), +(3034,37,658,2759), +(3035,37,2568,2760), +(3036,37,658,2761), +(3037,37,1247,2762), +(3038,37,2569,2763), +(3039,37,603,2763), +(3040,37,2570,2764), +(3041,37,91,2765), +(3042,37,2571,2766), +(3043,37,2572,2767), +(3044,37,661,2768), +(3045,37,2573,2769), +(3046,37,2574,2770), +(3047,37,2575,2771), +(3048,37,2576,2772), +(3049,37,2577,2773), +(3050,37,2578,2774), +(3051,37,2579,2775), +(3052,37,2580,2776), +(3053,37,2581,2777), +(3054,37,2582,2778), +(3055,37,2583,2779), +(3056,37,2584,2780), +(3057,37,2585,2781), +(3058,37,2586,2782), +(3059,37,2587,2783), +(3060,37,2588,2784), +(3061,37,2589,2785), +(3062,37,2590,2785), +(3063,37,2591,2786), +(3064,37,2592,2787), +(3065,37,2593,2788), +(3066,37,2594,2789), +(3067,37,2595,2790), +(3068,37,2596,2791), +(3069,37,2597,2791), +(3070,37,505,2792), +(3071,37,2598,2793), +(3072,37,481,2794), +(3073,37,2599,2795), +(3074,37,2600,2796), +(3075,37,1029,2797), +(3076,37,2601,2798), +(3077,37,2602,2799), +(3078,37,2603,2800), +(3079,37,1516,2801), +(3080,37,2604,2802), +(3081,37,704,2803), +(3082,37,23,2804), +(3083,37,2605,2805), +(3084,37,1007,2806), +(3085,37,2606,2807), +(3086,37,360,2808), +(3087,37,2259,2809), +(3088,37,2607,2810), +(3089,37,2608,2811), +(3090,37,2609,2812), +(3091,37,2610,2813), +(3092,37,2611,2814), +(3093,37,519,2815), +(3094,37,2612,2816), +(3095,37,2613,2817), +(3096,37,2614,2818), +(3097,37,2615,2819), +(3098,37,2616,2820), +(3099,37,2612,2821), +(3100,37,2617,2822), +(3101,37,522,2823), +(3102,37,2618,2824), +(3103,37,2619,2825), +(3104,37,2620,2826), +(3105,37,2621,2827), +(3106,37,2622,2828), +(3107,37,2623,2829), +(3108,37,2624,2830), +(3109,37,2625,2831), +(3110,37,2076,2832), +(3111,37,2626,2833), +(3112,37,669,2834), +(3113,37,669,2835), +(3114,37,11,2836), +(3115,37,349,2837), +(3116,37,2627,2838), +(3117,37,2628,2839), +(3118,37,2629,2839), +(3119,37,2630,2839), +(3120,37,13,2840), +(3121,37,13,2841), +(3122,37,350,2842), +(3123,37,13,2843), +(3124,37,1819,2844), +(3125,37,13,2845), +(3126,37,27,2846), +(3127,37,29,2847), +(3128,37,2631,2848), +(3129,37,2632,2849), +(3130,37,33,2850), +(3131,37,678,2851), +(3132,37,2633,2852), +(3133,37,1007,2853), +(3134,37,2634,2854), +(3135,37,2635,2855), +(3136,37,2636,2856), +(3137,37,2637,2856), +(3138,37,2638,2857), +(3139,37,2639,2858), +(3140,37,2640,2859), +(3141,37,2641,2860), +(3142,37,2642,2861), +(3143,37,2643,2862), +(3144,37,2644,2863), +(3145,37,2645,2864), +(3146,37,2646,2865), +(3147,37,2647,2866), +(3148,37,2648,2867), +(3149,37,2649,2868), +(3150,37,2650,2869), +(3151,37,2651,2870), +(3152,37,2652,2871), +(3153,37,2653,2871), +(3154,37,2654,2872), +(3155,37,2655,2873), +(3156,37,2656,2874), +(3157,37,1413,2875), +(3158,37,2657,2876), +(3159,37,2658,2877), +(3160,37,654,2878), +(3161,37,654,2879), +(3162,37,2659,2880), +(3163,37,2660,2881), +(3164,37,2661,2882), +(3165,37,800,2882), +(3166,37,656,2883), +(3167,37,654,2884), +(3168,37,654,2885), +(3169,37,2662,2886), +(3170,37,2663,2887), +(3171,37,2664,2887), +(3172,37,2665,2887), +(3173,37,2666,2888), +(3174,37,280,2889), +(3175,37,2667,2890), +(3176,37,280,2891), +(3177,37,2668,2892), +(3178,37,2669,2893), +(3179,37,2670,2894), +(3180,37,2671,2894), +(3181,37,2672,2895), +(3182,37,2128,2896), +(3183,37,2673,2897), +(3184,37,280,2898), +(3185,37,2674,2899), +(3186,37,280,2900), +(3187,37,2675,2901), +(3188,37,2676,2902), +(3189,37,2677,2903), +(3190,37,2678,2904), +(3191,37,2679,2904), +(3192,37,2680,2905), +(3193,37,2681,2906), +(3194,37,2682,2906), +(3195,37,2683,2906), +(3196,37,2684,2907), +(3197,37,2685,2908), +(3198,37,2686,2909), +(3199,37,2687,2910), +(3200,37,2688,2911), +(3201,37,2689,2912), +(3202,37,2049,2913), +(3203,37,2690,2914), +(3204,37,2691,2915), +(3205,37,2692,2916), +(3206,37,2693,2917), +(3207,37,2694,2918), +(3208,37,2272,2919), +(3209,37,2695,2919), +(3210,37,2696,2920), +(3211,37,2697,2921), +(3212,37,2698,2922), +(3213,37,2699,2923), +(3214,37,2700,2924), +(3215,37,141,2925), +(3216,37,2701,2926), +(3217,37,2702,2927), +(3218,37,141,2928), +(3219,37,2703,2929), +(3220,37,141,2930), +(3221,37,2704,2931), +(3222,37,2705,2932), +(3223,37,2706,2933), +(3224,37,2707,2934), +(3225,37,2708,2935), +(3226,37,2709,2936), +(3227,37,2710,2937), +(3228,37,2711,2938), +(3229,37,2712,2939), +(3230,37,2713,2940), +(3231,37,2714,2941), +(3232,37,2715,2942), +(3233,37,942,2943), +(3234,37,2716,2944), +(3235,37,2717,2945), +(3236,37,2718,2946), +(3237,37,2301,2947), +(3238,37,945,2947), +(3239,37,2719,2948), +(3240,37,165,2949), +(3241,37,2720,2950), +(3242,37,2721,2951), +(3243,37,2722,2952), +(3244,37,2723,2953), +(3245,37,2724,2954), +(3246,37,2725,2955), +(3247,37,2726,2956), +(3248,37,1413,2957), +(3249,37,2727,2958), +(3250,37,2728,2959), +(3251,37,2729,2960), +(3252,37,2730,2961), +(3253,37,2690,2962), +(3254,37,2731,2962), +(3255,37,2732,2963), +(3256,37,2733,2964), +(3257,37,2734,2965), +(3258,37,260,2966), +(3259,37,2735,2967), +(3260,37,2736,2968), +(3261,37,1979,2969), +(3262,37,2316,2970), +(3263,37,1299,2971), +(3264,37,2737,2972), +(3265,37,2738,2973), +(3266,37,260,2974), +(3267,37,2739,2975), +(3268,37,224,2976), +(3269,37,2740,2977), +(3270,37,2741,2978), +(3271,37,260,2979), +(3272,37,396,2980), +(3273,37,2742,2980), +(3274,37,2743,2981), +(3275,37,260,2982), +(3276,37,2744,2983), +(3277,37,2745,2984), +(3278,37,265,2985), +(3279,37,2746,2986), +(3280,37,2747,2987), +(3281,37,2748,2988), +(3282,37,2749,2989), +(3283,37,2750,2990), +(3284,37,260,2991), +(3285,37,2746,2992), +(3286,37,2751,2993), +(3287,37,2752,2994), +(3288,37,2753,2995), +(3289,37,2754,2996), +(3290,37,2755,2997), +(3291,37,767,2998), +(3292,37,2756,2999), +(3293,37,2757,3000), +(3294,37,2758,3001), +(3295,37,1314,3002), +(3296,37,2759,3003), +(3297,37,2760,3004), +(3298,37,2761,3005), +(3299,37,2762,3006), +(3300,37,2763,3007), +(3301,37,2764,3008), +(3302,37,2765,3009), +(3303,37,2766,3010), +(3304,37,2767,3011), +(3305,37,2768,3012), +(3306,37,2769,3013), +(3307,37,189,3014), +(3308,37,2770,3015), +(3309,37,2771,3016), +(3310,37,2772,3017), +(3311,37,2773,3018), +(3312,37,2774,3019), +(3313,37,2775,3020), +(3314,37,2776,3021), +(3315,37,2777,3022), +(3316,37,2778,3023), +(3317,37,194,3024), +(3318,37,2779,3025), +(3319,37,2780,3025), +(3320,37,2781,3025), +(3321,37,1436,3026), +(3322,37,194,3027), +(3323,37,2782,3028), +(3324,37,2783,3029), +(3325,37,2784,3030), +(3326,37,2785,3031), +(3327,37,194,3032), +(3328,37,2786,3033), +(3329,37,2787,3033), +(3330,37,2788,3034), +(3331,37,441,3035), +(3332,37,2789,3036), +(3333,37,202,3037), +(3334,37,2790,3038), +(3335,37,2791,3039), +(3336,37,2792,3040), +(3337,37,2793,3041), +(3338,37,2794,3041), +(3339,37,2795,3042), +(3340,37,202,3043), +(3341,37,2796,3044), +(3342,37,2797,3045), +(3343,37,2798,3045), +(3344,37,2799,3046), +(3345,37,2800,3047), +(3346,37,2801,3048), +(3347,37,2802,3049), +(3348,37,2803,3050), +(3349,37,2804,3051), +(3350,37,2805,3052), +(3351,37,2806,3053), +(3352,37,2807,3054), +(3353,37,2808,3055), +(3354,37,2809,3056), +(3355,37,2810,3057), +(3356,37,2006,3058), +(3357,37,2811,3059), +(3358,37,2812,3060), +(3359,37,2813,3061), +(3360,37,2814,3062), +(3361,37,2815,3063), +(3362,37,2816,3064), +(3363,37,2817,3065), +(3364,37,2818,3066), +(3365,37,2819,3067), +(3366,37,2820,3068), +(3367,37,2588,3069), +(3368,37,2821,3070), +(3369,37,2822,3071), +(3370,37,2823,3072), +(3371,37,2824,3073), +(3372,37,2825,3074), +(3373,37,2826,3075), +(3374,37,2827,3076), +(3375,37,2828,3077), +(3376,37,111,3078), +(3377,37,2829,3079), +(3378,37,111,3080), +(3379,37,2830,3081), +(3380,37,2831,3082), +(3381,37,2832,3083), +(3382,37,2833,3084), +(3383,37,2834,3085), +(3384,37,2835,3086), +(3385,37,2836,3087), +(3386,37,2837,3088), +(3387,37,2838,3089), +(3388,37,2839,3090), +(3389,37,115,3091), +(3390,37,2840,3092), +(3391,37,2841,3093), +(3392,37,2842,3094), +(3393,37,2843,3095), +(3394,37,2844,3096), +(3395,37,866,3097), +(3396,37,2845,3098), +(3397,37,2846,3099), +(3398,37,2847,3100), +(3399,37,2848,3101), +(3400,37,2849,3102), +(3401,37,347,3103), +(3402,37,2850,3104), +(3403,37,2851,3104), +(3404,37,2852,3104), +(3405,37,2853,3105), +(3406,37,2854,3106), +(3407,37,2855,3107), +(3408,37,2856,3108), +(3409,37,2857,3109), +(3410,37,2858,3110), +(3411,37,2859,3111), +(3412,37,2860,3112), +(3413,37,2861,3113), +(3414,37,2862,3114), +(3415,37,2863,3115), +(3416,37,2864,3116), +(3417,37,111,3117), +(3418,37,2865,3118), +(3419,37,2866,3119), +(3420,37,2867,3120), +(3421,37,2868,3121), +(3422,37,2869,3122), +(3423,37,2870,3123), +(3424,37,2871,3124), +(3425,37,2872,3125), +(3426,37,2873,3126), +(3427,37,2874,3127), +(3428,37,2875,3128), +(3429,37,804,3129), +(3430,37,1510,3130), +(3431,37,2876,3131), +(3432,37,1798,3132), +(3433,37,2877,3133), +(3434,37,2878,3134), +(3435,37,2879,3135), +(3436,37,2880,3136), +(3437,37,2881,3137), +(3438,37,488,3138), +(3439,37,2882,3139), +(3440,37,2883,3140), +(3441,37,2884,3141), +(3442,37,2885,3142), +(3443,37,2886,3143), +(3444,37,2887,3144), +(3445,37,389,3145), +(3446,37,2888,3146), +(3447,37,733,3147), +(3448,37,2889,3148), +(3449,37,2890,3149), +(3450,37,2891,3150), +(3451,37,2892,3151), +(3452,37,794,3152), +(3453,37,2893,3153), +(3454,37,2894,3154), +(3455,37,2895,3155), +(3456,37,2896,3156), +(3457,37,2897,3157), +(3458,37,2898,3158), +(3459,37,2899,3159), +(3460,37,2900,3160), +(3461,37,2901,3161), +(3462,37,2902,3162), +(3463,37,536,3163), +(3464,37,2903,3164), +(3465,37,2904,3165), +(3466,37,2905,3166), +(3467,37,2906,3167), +(3468,37,2907,3168), +(3469,37,2869,3169), +(3470,37,2908,3170), +(3471,37,2909,3171), +(3472,37,2910,3172), +(3473,37,2911,3173), +(3474,37,1510,3174), +(3475,37,1798,3175), +(3476,37,2912,3176), +(3477,37,1518,3177), +(3478,37,2913,3178), +(3479,37,2914,3179), +(3480,37,481,3180), +(3481,37,2915,3181), +(3482,37,2916,3182), +(3483,37,1690,3183), +(3484,37,2917,3184), +(3485,37,488,3185), +(3486,37,2918,3186), +(3487,37,2919,3187), +(3488,37,2920,3188), +(3489,37,2921,3188), +(3490,37,2922,3189), +(3491,37,2634,3190), +(3492,37,2923,3191), +(3493,37,33,3192), +(3494,37,711,3193), +(3495,37,2924,3194), +(3496,37,2925,3195), +(3497,37,1010,3196), +(3498,37,360,3197), +(3499,37,364,3198), +(3500,37,2926,3199), +(3501,37,2927,3200), +(3502,37,2928,3201), +(3503,37,2929,3201), +(3504,37,2930,3202), +(3505,37,2931,3203), +(3506,37,2076,3204), +(3507,37,974,3205), +(3508,37,2932,3206), +(3509,37,2933,3206), +(3510,37,2934,3207), +(3511,37,2935,3208), +(3512,37,2936,3209), +(3513,37,2937,3210), +(3514,37,2938,3210), +(3515,37,2939,3210), +(3516,37,349,3211), +(3517,37,2940,3212), +(3518,37,2227,3213), +(3519,37,673,3214), +(3520,37,2941,3215), +(3521,37,2942,3215), +(3522,37,2943,3215), +(3523,37,2944,3216), +(3524,37,2945,3217), +(3525,37,2946,3218), +(3526,37,2947,3219), +(3527,37,2948,3220), +(3528,37,2949,3220), +(3529,37,2574,3221), +(3530,37,2552,3222), +(3531,37,2552,3223), +(3532,37,2950,3224), +(3533,37,91,3225), +(3534,37,2951,3226), +(3535,37,2952,3227), +(3536,37,2953,3228), +(3537,37,2954,3229), +(3538,37,2955,3230), +(3539,37,2956,3231), +(3540,37,2957,3232), +(3541,37,2958,3233), +(3542,37,2959,3234), +(3543,37,2960,3235), +(3544,37,522,3236), +(3545,37,2961,3237), +(3546,37,2962,3238), +(3547,37,2963,3239), +(3548,37,91,3240), +(3549,37,2964,3241), +(3550,37,2965,3242), +(3551,37,2966,3243), +(3552,37,2967,3244), +(3553,37,2968,3245), +(3554,37,2969,3246), +(3555,37,2970,3246), +(3556,37,2971,3247), +(3557,37,2972,3248), +(3558,37,1599,3249), +(3559,37,2973,3250), +(3560,37,2974,3251), +(3561,37,513,3252), +(3562,37,513,3253), +(3563,37,1681,3254), +(3564,37,2975,3255), +(3565,37,260,3256), +(3566,37,2976,3257), +(3567,37,260,3258), +(3568,37,2977,3259), +(3569,37,2978,3260), +(3570,37,1090,3261), +(3571,37,2979,3262), +(3572,37,1090,3263), +(3573,37,2980,3264), +(3574,37,2981,3265), +(3575,37,2982,3266), +(3576,37,2983,3267), +(3577,37,2984,3267), +(3578,37,2985,3268), +(3579,37,260,3269), +(3580,37,2986,3270), +(3581,37,260,3271), +(3582,37,2987,3272), +(3583,37,2988,3273), +(3584,37,2989,3274), +(3585,37,2990,3275), +(3586,37,2991,3276), +(3587,37,2992,3277), +(3588,37,2993,3278), +(3589,37,2994,3279), +(3590,37,2995,3280), +(3591,37,2996,3281), +(3592,37,2997,3282), +(3593,37,2998,3283), +(3594,37,2999,3284), +(3595,37,3000,3285), +(3596,37,3001,3286), +(3597,37,3002,3287), +(3598,37,3003,3288), +(3599,37,3004,3289), +(3600,37,3005,3289), +(3601,37,3006,3290), +(3602,37,3007,3291), +(3603,37,3008,3292), +(3604,37,280,3293), +(3605,37,3009,3294), +(3606,37,3010,3295), +(3607,37,609,3296), +(3608,37,3011,3297), +(3609,37,3012,3297), +(3610,37,3013,3298), +(3611,37,3014,3299), +(3612,37,3015,3300), +(3613,37,3016,3301), +(3614,37,3017,3302), +(3615,37,3018,3303), +(3616,37,3019,3304), +(3617,37,3020,3304), +(3618,37,111,3305), +(3619,37,1336,3306), +(3620,37,3021,3307), +(3621,37,3022,3308), +(3622,37,3023,3309), +(3623,37,3024,3310), +(3624,37,3025,3311), +(3625,37,3026,3312), +(3626,37,3027,3313), +(3627,37,3028,3314), +(3628,37,3029,3315), +(3629,37,3030,3316), +(3630,37,185,3317), +(3631,37,3031,3318), +(3632,37,1163,3319), +(3633,37,3032,3320), +(3634,37,3033,3321), +(3635,37,202,3322), +(3636,37,3034,3323), +(3637,37,3035,3324), +(3638,37,194,3325), +(3639,37,194,3326), +(3640,37,1031,3327), +(3641,37,194,3328), +(3642,37,1436,3329), +(3643,37,202,3330), +(3644,37,3036,3331), +(3645,37,3037,3332), +(3646,37,3038,3333), +(3647,37,3039,3334), +(3648,37,2181,3335), +(3649,37,202,3336), +(3650,37,3040,3337), +(3651,37,3041,3338), +(3652,37,3042,3339), +(3653,37,3043,3340), +(3654,37,3044,3341), +(3655,37,3045,3342), +(3656,37,3046,3343), +(3657,37,3047,3344), +(3658,37,3048,3345), +(3659,37,229,3346), +(3660,37,3049,3347), +(3661,37,3050,3348), +(3662,37,3051,3349), +(3663,37,3052,3350), +(3664,37,227,3351), +(3665,37,3053,3352), +(3666,37,3054,3353), +(3667,37,3055,3354), +(3668,37,3056,3355), +(3669,37,3057,3356), +(3670,37,3058,3357), +(3671,37,3059,3357), +(3672,37,3060,3358), +(3673,37,3061,3358), +(3674,37,1010,3359), +(3675,37,3062,3360), +(3676,37,3063,3361), +(3677,37,2588,3362), +(3678,37,3064,3363), +(3679,37,3065,3364), +(3680,37,3066,3365), +(3681,37,3067,3366), +(3682,37,1399,3366), +(3683,37,3068,3367), +(3684,37,3069,3368), +(3685,37,3070,3369), +(3686,37,3071,3369), +(3687,37,3072,3370), +(3688,37,3073,3370), +(3689,37,3074,3371), +(3690,37,3075,3372), +(3691,37,3076,3373), +(3692,37,3077,3374), +(3693,37,3078,3375), +(3694,37,3079,3376), +(3695,37,3080,3377), +(3696,37,3081,3378), +(3697,37,3082,3379), +(3698,37,3083,3380), +(3699,37,3084,3381), +(3700,37,3085,3382), +(3701,37,3086,3383), +(3702,37,3087,3383), +(3703,37,3088,3383), +(3704,37,3089,3383), +(3705,37,3090,3383), +(3706,37,3091,3384), +(3707,37,3092,3385), +(3708,37,474,3386), +(3709,37,3093,3387), +(3710,37,3094,3388), +(3711,37,3095,3389), +(3712,37,3096,3390), +(3713,37,3097,3391), +(3714,37,3098,3392), +(3715,37,3099,3393), +(3716,37,3020,3394), +(3717,37,3100,3395), +(3718,37,2272,3396), +(3719,37,3101,3396), +(3720,37,130,3397), +(3721,37,1201,3398), +(3722,37,3102,3398), +(3723,37,3103,3399), +(3724,37,918,3400), +(3725,37,3104,3401), +(3726,37,3105,3402), +(3727,37,3106,3403), +(3728,37,3107,3404), +(3729,37,3108,3405), +(3730,37,3109,3406), +(3731,37,3110,3407), +(3732,37,3111,3408), +(3733,37,3112,3409), +(3734,37,3113,3410), +(3735,37,3114,3411), +(3736,37,2050,3412), +(3737,37,3115,3413), +(3738,37,3116,3414), +(3739,37,3117,3415), +(3740,37,3118,3416), +(3741,37,3119,3417), +(3742,37,942,3418), +(3743,37,3120,3419), +(3744,37,3121,3420), +(3745,37,3122,3421), +(3746,37,3123,3422), +(3747,37,3124,3423), +(3748,37,3125,3424), +(3749,37,1235,3425), +(3750,37,3126,3426), +(3751,37,3127,3427), +(3752,37,3128,3428), +(3753,37,3129,3429), +(3754,37,3130,3429), +(3755,37,3131,3429), +(3756,37,3132,3430), +(3757,37,3133,3431), +(3758,37,3134,3432), +(3759,37,3135,3433), +(3760,37,3136,3434), +(3761,37,3137,3435), +(3762,37,3138,3436), +(3763,37,654,3437), +(3764,37,3139,3438), +(3765,37,3140,3438), +(3766,37,3141,3438), +(3767,37,3142,3439), +(3768,37,3143,3439), +(3769,37,3144,3440), +(3770,37,3145,3441), +(3771,37,3146,3442), +(3772,37,3147,3443), +(3773,37,3148,3443), +(3774,37,3149,3444), +(3775,37,3150,3445), +(3776,37,3151,3446), +(3777,37,3152,3447), +(3778,37,212,3448), +(3779,37,3153,3449), +(3780,37,3154,3450), +(3781,37,3155,3451), +(3782,37,3156,3451), +(3783,37,3157,3452), +(3784,37,3158,3453), +(3785,37,3159,3454), +(3786,37,3160,3455), +(3787,37,3161,3456), +(3788,37,71,3457), +(3789,37,1798,3458), +(3790,37,3162,3459), +(3791,37,780,3460), +(3792,37,3163,3461), +(3793,37,3164,3462), +(3794,37,3165,3463), +(3795,37,3166,3464), +(3796,37,3167,3465), +(3797,37,3168,3466), +(3798,37,3169,3467), +(3799,37,3170,3468), +(3800,37,3171,3469), +(3801,37,3172,3470), +(3802,37,3173,3471), +(3803,37,3174,3472), +(3804,37,3175,3473), +(3805,37,3176,3474), +(3806,37,3177,3474), +(3807,37,658,3475), +(3808,37,658,3476), +(3809,37,3178,3477), +(3810,37,3179,3477), +(3811,37,660,3478), +(3812,37,3180,3479), +(3813,37,3181,3480), +(3814,37,276,3481), +(3815,37,3182,3482), +(3816,37,3183,3483), +(3817,37,3184,3484), +(3818,37,280,3485), +(3819,37,280,3486), +(3820,37,3185,3487), +(3821,37,3186,3488), +(3822,37,3187,3489), +(3823,37,3188,3490), +(3824,37,3189,3491), +(3825,37,3190,3492), +(3826,37,3191,3493), +(3827,37,3192,3494), +(3828,37,3193,3495), +(3829,37,3194,3496), +(3830,37,3195,3497), +(3831,37,3196,3498), +(3832,37,811,3499), +(3833,37,3197,3500), +(3834,37,2259,3501), +(3835,37,3198,3502), +(3836,37,3199,3503), +(3837,37,29,3504), +(3838,37,3200,3505), +(3839,37,678,3506), +(3840,37,3201,3507), +(3841,37,711,3508), +(3842,37,1007,3509), +(3843,37,3202,3510), +(3844,37,3203,3511), +(3845,37,3204,3512), +(3846,37,91,3513), +(3847,37,3205,3514), +(3848,37,3206,3515), +(3849,37,3207,3516), +(3850,37,3208,3517), +(3851,37,107,3518), +(3852,37,2087,3519), +(3853,37,111,3520), +(3854,37,3209,3521), +(3855,37,3210,3522), +(3856,37,3211,3523), +(3857,37,3212,3524), +(3858,37,3213,3525), +(3859,37,3214,3526), +(3860,37,3215,3527), +(3861,37,3216,3528), +(3862,37,3217,3529), +(3863,37,3218,3530), +(3864,37,3219,3531), +(3865,37,3220,3531), +(3866,37,3221,3532), +(3867,37,130,3533), +(3868,37,649,3534), +(3869,37,3222,3535), +(3870,37,3223,3536), +(3871,37,3224,3537), +(3872,37,3225,3538), +(3873,37,3226,3539), +(3874,37,3227,3540), +(3875,37,3228,3541), +(3876,37,3229,3541), +(3877,37,3230,3542), +(3878,37,3231,3543), +(3879,37,141,3544), +(3880,37,3232,3545), +(3881,37,3233,3546), +(3882,37,3234,3547), +(3883,37,3235,3548), +(3884,37,3236,3549), +(3885,37,2082,3550), +(3886,37,3237,3551), +(3887,37,3238,3552), +(3888,37,3239,3553), +(3889,37,156,3553), +(3890,37,3240,3554), +(3891,37,3241,3555), +(3892,37,3242,3556), +(3893,37,3243,3557), +(3894,37,3244,3558), +(3895,37,3245,3559), +(3896,37,3246,3560), +(3897,37,3247,3561), +(3898,37,3248,3561), +(3899,37,3249,3562), +(3900,37,3250,3563), +(3901,37,165,3564), +(3902,37,594,3565), +(3903,37,3251,3566), +(3904,37,2725,3567), +(3905,37,3252,3568), +(3906,37,3253,3569), +(3907,37,1680,3570), +(3908,37,3254,3571), +(3909,37,3255,3572), +(3910,37,1428,3573), +(3911,37,3256,3574), +(3912,37,1428,3575), +(3913,37,3257,3576), +(3914,37,3258,3577), +(3915,37,3259,3578), +(3916,37,3260,3579), +(3917,37,452,3580), +(3918,37,3261,3581), +(3919,37,3262,3582), +(3920,37,792,3583), +(3921,37,202,3584), +(3922,37,1030,3585), +(3923,37,194,3586), +(3924,37,1340,3587), +(3925,37,202,3588), +(3926,37,3263,3589), +(3927,37,3264,3590), +(3928,37,3265,3591), +(3929,37,3266,3592), +(3930,37,3267,3593), +(3931,37,3268,3594), +(3932,37,3269,3595), +(3933,37,3270,3596), +(3934,37,3271,3597), +(3935,37,3272,3598), +(3936,37,3273,3599), +(3937,37,3274,3600), +(3938,37,3275,3601), +(3939,37,3276,3602), +(3940,37,3277,3603), +(3941,37,1857,3604), +(3942,37,3278,3605), +(3943,37,3279,3606), +(3944,37,232,3607), +(3945,37,3280,3608), +(3946,37,2284,3609), +(3947,37,3281,3610), +(3948,37,3282,3611), +(3949,37,3283,3612), +(3950,37,3284,3613), +(3951,37,3285,3614), +(3952,37,232,3615), +(3953,37,3286,3616), +(3954,37,3287,3616), +(3955,37,229,3617), +(3956,37,3288,3618), +(3957,37,3289,3619), +(3958,37,3290,3620), +(3959,37,2285,3621), +(3960,37,3291,3622), +(3961,37,3292,3623), +(3962,37,3293,3623), +(3963,37,274,3624), +(3964,37,3294,3625), +(3965,37,3295,3626), +(3966,37,3296,3627), +(3967,37,3297,3628), +(3968,37,3298,3629), +(3969,37,1131,3630), +(3970,37,869,3631), +(3971,37,3299,3632), +(3972,37,3300,3633), +(3973,37,3301,3634), +(3974,37,1114,3635), +(3975,37,3302,3636), +(3976,37,3303,3637), +(3977,37,3304,3638), +(3978,37,3305,3639), +(3979,37,3306,3640), +(3980,37,3307,3641), +(3981,37,3308,3642), +(3982,37,3309,3643), +(3983,37,139,3644), +(3984,37,3310,3645), +(3985,37,3311,3646), +(3986,37,3312,3646), +(3987,37,3313,3646), +(3988,37,111,3647), +(3989,37,3314,3648), +(3990,37,107,3649), +(3991,37,107,3650), +(3992,37,3315,3651), +(3993,37,3316,3652), +(3994,37,3317,3653), +(3995,37,3318,3654), +(3996,37,536,3655), +(3997,37,2552,3656), +(3998,37,3319,3657), +(3999,37,62,3658), +(4000,37,3320,3659), +(4001,37,3321,3660), +(4002,37,3322,3661), +(4003,37,3323,3662), +(4004,37,3324,3663), +(4005,37,3325,3664), +(4006,37,3326,3665), +(4007,37,3327,3666), +(4008,37,3328,3667), +(4009,37,3329,3668), +(4010,37,3330,3669), +(4011,37,3331,3670), +(4012,37,3332,3671), +(4013,37,3333,3672), +(4014,37,3334,3673), +(4015,37,3335,3674), +(4016,37,260,3675), +(4017,37,3336,3676), +(4018,37,3337,3677), +(4019,37,3338,3678), +(4020,37,3339,3679), +(4021,37,3340,3680), +(4022,37,3341,3681), +(4023,37,265,3682), +(4024,37,3342,3683), +(4025,37,3343,3684), +(4026,37,3344,3685), +(4027,37,3345,3686), +(4028,37,3346,3687), +(4029,37,3347,3688), +(4030,37,2073,3689), +(4031,37,2073,3690), +(4032,37,3348,3691), +(4033,37,669,3692), +(4034,37,669,3693), +(4035,37,977,3694), +(4036,37,11,3695), +(4037,37,3349,3696), +(4038,37,3350,3697), +(4039,37,3351,3698), +(4040,37,13,3699), +(4041,37,13,3700), +(4042,37,27,3701), +(4043,37,3352,3702), +(4044,37,982,3703), +(4045,37,3353,3704), +(4046,37,23,3705), +(4047,37,357,3706), +(4048,37,3354,3707), +(4049,37,3355,3708), +(4050,37,3356,3709), +(4051,37,3357,3710), +(4052,37,3358,3710), +(4053,37,3359,3711), +(4054,37,3360,3712), +(4055,37,353,3713), +(4056,37,3361,3714), +(4057,37,3362,3715), +(4058,37,3363,3716), +(4059,37,3364,3717), +(4060,37,3365,3718), +(4061,37,3366,3719), +(4062,37,3367,3720), +(4063,37,3368,3721), +(4064,37,3369,3722), +(4065,37,3370,3722), +(4066,37,3371,3723), +(4067,37,2272,3724), +(4068,37,3372,3725), +(4069,37,3373,3726), +(4070,37,1201,3727), +(4071,37,3374,3728), +(4072,37,3375,3729), +(4073,37,3376,3730), +(4074,37,3377,3731), +(4075,37,3378,3732), +(4076,37,3379,3732), +(4077,37,3380,3732), +(4078,37,3381,3733), +(4079,37,3382,3734), +(4080,37,3383,3735), +(4081,37,3384,3736), +(4082,37,3385,3737), +(4083,37,3386,3738), +(4084,37,3387,3739), +(4085,37,3388,3740), +(4086,37,3389,3740), +(4087,37,3390,3741), +(4088,37,3391,3742), +(4089,37,3392,3743), +(4090,37,3393,3744), +(4091,37,3394,3745), +(4092,37,2063,3746), +(4093,37,3395,3747), +(4094,37,3396,3748), +(4095,37,3397,3749), +(4096,37,3137,3750), +(4097,37,3398,3751), +(4098,37,165,3752), +(4099,37,3399,3753), +(4100,37,3400,3754), +(4101,37,3401,3755), +(4102,37,3402,3756), +(4103,37,3403,3757), +(4104,37,3251,3758), +(4105,37,2721,3759), +(4106,37,3404,3760), +(4107,37,3405,3760), +(4108,37,3406,3761), +(4109,37,2433,3762), +(4110,37,1388,3763), +(4111,37,953,3764), +(4112,37,3407,3765), +(4113,37,3408,3766), +(4114,37,3409,3766), +(4115,37,3410,3766), +(4116,37,177,3767), +(4117,37,955,3768), +(4118,37,181,3769), +(4119,37,3411,3770), +(4120,37,3412,3771), +(4121,37,3413,3772), +(4122,37,3414,3772), +(4123,37,3415,3773), +(4124,37,1987,3774), +(4125,37,1815,3774), +(4126,37,3416,3775), +(4127,37,3417,3776), +(4128,37,280,3777), +(4129,37,3418,3778), +(4130,37,3419,3779), +(4131,37,3420,3780), +(4132,37,3421,3781), +(4133,37,3422,3782), +(4134,37,3423,3783), +(4135,37,3424,3784), +(4136,37,3425,3785), +(4137,37,3426,3786), +(4138,37,3427,3787), +(4139,37,3428,3787), +(4140,37,3429,3788), +(4141,37,3430,3789), +(4142,37,3431,3789), +(4143,37,3432,3790), +(4144,37,1597,3791), +(4145,37,3433,3792), +(4146,37,601,3793), +(4147,37,3434,3794), +(4148,37,3435,3795), +(4149,37,3436,3796), +(4150,37,3437,3797), +(4151,37,3438,3798), +(4152,37,3439,3799), +(4153,37,3440,3799), +(4154,37,963,3800), +(4155,37,654,3801), +(4156,37,3441,3802), +(4157,37,3442,3803), +(4158,37,3443,3804), +(4159,37,3444,3805), +(4160,37,3445,3805), +(4161,37,3446,3806), +(4162,37,3447,3807), +(4163,37,3448,3808), +(4164,37,3449,3809), +(4165,37,3450,3810), +(4166,37,519,3811), +(4167,37,3451,3812), +(4168,37,69,3813), +(4169,37,3452,3814), +(4170,37,3453,3815), +(4171,37,3454,3816), +(4172,37,3455,3817), +(4173,37,2076,3818), +(4174,37,2076,3819), +(4175,37,3456,3820), +(4176,37,3457,3821), +(4177,37,3458,3822), +(4178,37,2541,3823), +(4179,37,3459,3824), +(4180,37,3460,3825), +(4181,37,2079,3826), +(4182,37,3461,3827), +(4183,37,12,3828), +(4184,37,3462,3829), +(4185,37,349,3830), +(4186,37,3463,3831), +(4187,37,3464,3832), +(4188,37,27,3833), +(4189,37,27,3834), +(4190,37,13,3835), +(4191,37,3465,3836), +(4192,37,27,3837), +(4193,37,27,3838), +(4194,37,3466,3839), +(4195,37,704,3840), +(4196,37,23,3841), +(4197,37,3467,3842), +(4198,37,3468,3843), +(4199,37,3469,3844), +(4200,37,3470,3845), +(4201,37,3471,3846), +(4202,37,3472,3846), +(4203,37,661,3847), +(4204,37,3473,3848), +(4205,37,2947,3849), +(4206,37,2635,3850), +(4207,37,1007,3851), +(4208,37,3474,3852), +(4209,37,1007,3853), +(4210,37,3475,3854), +(4211,37,3476,3854), +(4212,37,1011,3855), +(4213,37,3477,3856), +(4214,37,1007,3857), +(4215,37,360,3858), +(4216,37,3478,3859), +(4217,37,3479,3860), +(4218,37,3480,3860), +(4219,37,111,3861), +(4220,37,3481,3862), +(4221,37,3482,3862), +(4222,37,3483,3862), +(4223,37,3484,3862), +(4224,37,3485,3863), +(4225,37,3486,3864), +(4226,37,111,3865), +(4227,37,3487,3866), +(4228,37,111,3867), +(4229,37,3488,3868), +(4230,37,3489,3869), +(4231,37,111,3870), +(4232,37,111,3871), +(4233,37,3490,3872), +(4234,37,3491,3872), +(4235,37,3492,3873), +(4236,37,3493,3874), +(4237,37,3494,3875), +(4238,37,3495,3876), +(4239,37,3496,3877), +(4240,37,1163,3878), +(4241,37,3497,3879), +(4242,37,3498,3880), +(4243,37,190,3881), +(4244,37,3499,3882), +(4245,37,3500,3883), +(4246,37,3501,3884), +(4247,37,3502,3885), +(4248,37,3503,3886), +(4249,37,3504,3887), +(4250,37,1031,3888), +(4251,37,3505,3889), +(4252,37,195,3890), +(4253,37,3506,3891), +(4254,37,194,3892), +(4255,37,3507,3892), +(4256,37,3508,3893), +(4257,37,3509,3894), +(4258,37,3510,3895), +(4259,37,3511,3896), +(4260,37,202,3897), +(4261,37,3512,3898), +(4262,37,3513,3899), +(4263,37,3514,3900), +(4264,37,3515,3901), +(4265,37,1867,3902), +(4266,37,3516,3902), +(4267,37,3517,3903), +(4268,37,1536,3904), +(4269,37,3518,3905), +(4270,37,3519,3906), +(4271,37,3520,3907), +(4272,37,3521,3908), +(4273,37,3522,3909), +(4274,37,3523,3909), +(4275,37,3524,3910), +(4276,37,3525,3911), +(4277,37,3187,3912), +(4278,37,3526,3913), +(4279,37,3527,3914), +(4280,37,3528,3915), +(4281,37,3529,3916), +(4282,37,3530,3917), +(4283,37,3531,3918), +(4284,37,3532,3919), +(4285,37,3533,3920), +(4286,37,3534,3921), +(4287,37,3535,3922), +(4288,37,3536,3923), +(4289,37,3537,3924), +(4290,37,1431,3925), +(4291,37,3538,3926), +(4292,37,3539,3927), +(4293,37,3540,3928), +(4294,37,3541,3928), +(4295,37,3542,3929), +(4296,37,3543,3930), +(4297,37,3544,3931), +(4298,37,3545,3932), +(4299,37,3546,3933), +(4300,37,3547,3934), +(4301,37,3548,3935), +(4302,37,3549,3936), +(4303,37,3550,3937), +(4304,37,1265,3938), +(4305,37,260,3939), +(4306,37,3551,3940), +(4307,37,260,3941), +(4308,37,260,3942), +(4309,37,3552,3943), +(4310,37,3553,3944), +(4311,37,3554,3945), +(4312,37,3555,3946), +(4313,37,3556,3947), +(4314,37,3557,3948), +(4315,37,3558,3949), +(4316,37,3559,3950), +(4317,37,3560,3951), +(4318,37,3561,3952), +(4319,37,3562,3953), +(4320,37,3563,3954), +(4321,37,3564,3955), +(4322,37,3565,3956), +(4323,37,3566,3957), +(4324,37,3567,3958), +(4325,37,3568,3959), +(4326,37,866,3960), +(4327,37,3569,3961), +(4328,37,319,3962), +(4329,37,3570,3963), +(4330,37,3571,3964), +(4331,37,3572,3965), +(4332,37,3573,3966), +(4333,37,107,3967), +(4334,37,3574,3968), +(4335,37,3575,3969), +(4336,37,3576,3969), +(4337,37,3577,3969), +(4338,37,1957,3970), +(4339,37,3578,3970), +(4340,37,3579,3971), +(4341,37,111,3972), +(4342,37,107,3973), +(4343,37,3580,3974), +(4344,37,3581,3975), +(4345,37,3582,3976), +(4346,37,3583,3977), +(4347,37,3584,3978), +(4348,37,3585,3979), +(4349,37,3586,3980), +(4350,37,3587,3981), +(4351,37,3588,3982), +(4352,37,3589,3983), +(4353,37,3590,3984), +(4354,37,3591,3985), +(4355,37,3592,3986), +(4356,37,3593,3987), +(4357,37,3594,3988), +(4358,37,3595,3989), +(4359,37,1516,3990), +(4360,37,780,3991), +(4361,37,3596,3992), +(4362,37,3597,3993), +(4363,37,1163,3994), +(4364,37,3598,3995), +(4365,37,3599,3996), +(4366,37,3600,3996), +(4367,37,3601,3996), +(4368,37,3602,3996), +(4369,37,3603,3997), +(4370,37,3604,3998), +(4371,37,3605,3999), +(4372,37,3606,4000), +(4373,37,525,4001), +(4374,37,3607,4002), +(4375,37,3608,4003), +(4376,37,522,4004), +(4377,37,3609,4005), +(4378,37,3610,4006), +(4379,37,3611,4007), +(4380,37,3612,4008), +(4381,37,3613,4009), +(4382,37,3614,4010), +(4383,37,3615,4011), +(4384,37,3616,4012), +(4385,37,3617,4013), +(4386,37,3618,4014), +(4387,37,3619,4015), +(4388,37,3620,4016), +(4389,37,3621,4016), +(4390,37,3622,4017), +(4391,37,3623,4017), +(4392,37,3624,4018), +(4393,37,3625,4019), +(4394,37,3626,4020), +(4395,37,561,4021), +(4396,37,1201,4022), +(4397,37,3627,4023), +(4398,37,3628,4024), +(4399,37,2272,4025), +(4400,37,3629,4026), +(4401,37,3630,4027), +(4402,37,3631,4028), +(4403,37,3632,4029), +(4404,37,3633,4030), +(4405,37,3634,4031), +(4406,37,3635,4032), +(4407,37,3636,4033), +(4408,37,3637,4034), +(4409,37,3638,4035), +(4410,37,877,4036), +(4411,37,3639,4037), +(4412,37,3640,4038), +(4413,37,3641,4039), +(4414,37,3611,4040), +(4415,37,3642,4041), +(4416,37,3643,4042), +(4417,37,3644,4043), +(4418,37,3645,4044), +(4419,37,3646,4045), +(4420,37,942,4046), +(4421,37,447,4047), +(4422,37,3647,4048), +(4423,37,3648,4049), +(4424,37,3649,4050), +(4425,37,3650,4051), +(4426,37,3651,4052), +(4427,37,3652,4053), +(4428,37,2725,4054), +(4429,37,172,4055), +(4430,37,3407,4056), +(4431,37,951,4057), +(4432,37,2308,4058), +(4433,37,177,4059), +(4434,37,3653,4060), +(4435,37,780,4061), +(4436,37,780,4062), +(4437,37,184,4063), +(4438,37,3654,4064), +(4439,37,194,4065), +(4440,37,3655,4066), +(4441,37,3656,4067), +(4442,37,3657,4068), +(4443,37,2297,4069), +(4444,37,3658,4070), +(4445,37,3659,4071), +(4446,37,3660,4072), +(4447,37,3661,4073), +(4448,37,3662,4074), +(4449,37,3663,4075), +(4450,37,3664,4076), +(4451,37,3665,4077), +(4452,37,3666,4078), +(4453,37,3667,4079), +(4454,37,3668,4080), +(4455,37,3669,4080), +(4456,37,3670,4080), +(4457,37,3671,4080), +(4458,37,3672,4081), +(4459,37,3673,4081), +(4460,37,3674,4082), +(4461,37,3675,4083), +(4462,37,3676,4084), +(4463,37,3677,4085), +(4464,37,3678,4086), +(4465,37,3679,4087), +(4466,37,3680,4088), +(4467,37,3681,4089), +(4468,37,3682,4089), +(4469,37,3683,4090), +(4470,37,229,4091), +(4471,37,3684,4092), +(4472,37,3685,4093), +(4473,37,3686,4094), +(4474,37,3687,4095), +(4475,37,3688,4096), +(4476,37,236,4097), +(4477,37,3689,4098), +(4478,37,3690,4099), +(4479,37,3691,4100), +(4480,37,3692,4101), +(4481,37,3693,4102), +(4482,37,3694,4103), +(4483,37,3695,4104), +(4484,37,3696,4105), +(4485,37,3697,4105), +(4486,37,513,4106), +(4487,37,3698,4107), +(4488,37,513,4108), +(4489,37,3699,4109), +(4490,37,3700,4110), +(4491,37,260,4111), +(4492,37,3701,4112), +(4493,37,3702,4113), +(4494,37,3703,4114), +(4495,37,3704,4114), +(4496,37,3705,4115), +(4497,37,383,4116), +(4498,37,3706,4117), +(4499,37,383,4118), +(4500,37,3707,4119), +(4501,37,3708,4120), +(4502,37,3709,4121), +(4503,37,3710,4122), +(4504,37,3711,4123), +(4505,37,3712,4124), +(4506,37,3713,4125), +(4507,37,3714,4126), +(4508,37,3715,4127), +(4509,37,3716,4128), +(4510,37,3717,4129), +(4511,37,3718,4129), +(4512,37,3719,4130), +(4513,37,3720,4131), +(4514,37,3721,4132), +(4515,37,3722,4133), +(4516,37,3723,4134), +(4517,37,3724,4135), +(4518,37,3725,4136), +(4519,37,3726,4137), +(4520,37,3727,4138), +(4521,37,3728,4139), +(4522,37,3729,4140), +(4523,37,726,4141), +(4524,37,3730,4142), +(4525,37,3731,4143), +(4526,37,3732,4144), +(4527,37,3733,4145), +(4528,37,866,4146), +(4529,37,3734,4147), +(4530,37,3735,4148), +(4531,37,3736,4149), +(4532,37,3737,4150), +(4533,37,3738,4151), +(4534,37,3739,4152), +(4535,37,3740,4153), +(4536,37,3741,4154), +(4537,37,3742,4155), +(4538,37,319,4156), +(4539,37,3743,4157), +(4540,37,3744,4158), +(4541,37,3745,4159), +(4542,37,3746,4160), +(4543,37,3747,4161), +(4544,37,3748,4162), +(4545,37,3749,4162), +(4546,37,3750,4163), +(4547,37,3751,4164), +(4548,37,344,4165), +(4549,37,2076,4166), +(4550,37,3752,4167), +(4551,37,669,4168), +(4552,37,3753,4169), +(4553,37,669,4170), +(4554,37,3754,4171), +(4555,37,3755,4172), +(4556,37,349,4173), +(4557,37,673,4174), +(4558,37,3756,4175), +(4559,37,2227,4176), +(4560,37,27,4177), +(4561,37,29,4178), +(4562,37,704,4179), +(4563,37,3757,4180), +(4564,37,3758,4180), +(4565,37,27,4181), +(4566,37,23,4182), +(4567,37,32,4183), +(4568,37,3759,4184), +(4569,37,3760,4185), +(4570,37,27,4186), +(4571,37,3761,4187), +(4572,37,1724,4188), +(4573,37,3762,4189), +(4574,37,3763,4190), +(4575,37,3764,4191), +(4576,37,3765,4192), +(4577,37,3445,4193), +(4578,37,3766,4194), +(4579,37,1079,4195), +(4580,37,3767,4195), +(4581,37,3768,4196), +(4582,37,3769,4197), +(4583,37,280,4198), +(4584,37,3770,4199), +(4585,37,3771,4200), +(4586,37,3772,4201), +(4587,37,3773,4201), +(4588,37,2128,4202), +(4589,37,280,4203), +(4590,37,280,4204), +(4591,37,3774,4205), +(4592,37,3775,4205), +(4593,37,3776,4206), +(4594,37,3777,4207), +(4595,37,280,4208), +(4596,37,3778,4209), +(4597,37,3779,4210), +(4598,37,3780,4211), +(4599,37,3781,4212), +(4600,37,3782,4213), +(4601,37,3783,4214), +(4602,37,3784,4215), +(4603,37,3785,4215), +(4604,37,3786,4216), +(4605,37,91,4217), +(4606,37,3787,4218), +(4607,37,3788,4219), +(4608,37,3058,4220), +(4609,37,3789,4221), +(4610,37,3790,4222), +(4611,37,3791,4223), +(4612,37,3792,4224), +(4613,37,3793,4225), +(4614,37,3794,4225), +(4615,37,3795,4226), +(4616,37,3796,4227), +(4617,37,3797,4228), +(4618,37,3798,4229), +(4619,37,3799,4230), +(4620,37,2869,4231), +(4621,37,3800,4232), +(4622,37,3801,4233), +(4623,37,3802,4233), +(4624,37,3803,4234), +(4625,37,3804,4235), +(4626,37,3805,4236), +(4627,37,3806,4237), +(4628,37,69,4238), +(4629,37,3807,4239), +(4630,37,70,4240), +(4631,37,3808,4241), +(4632,37,3809,4242), +(4633,37,488,4243), +(4634,37,3810,4244), +(4635,37,3811,4245), +(4636,37,3812,4246), +(4637,37,3813,4247), +(4638,37,3814,4248), +(4639,37,780,4249), +(4640,37,362,4250), +(4641,37,3815,4251), +(4642,37,3816,4251), +(4643,37,3817,4251), +(4644,37,1007,4252), +(4645,37,1010,4253), +(4646,37,1007,4254), +(4647,37,3818,4255), +(4648,37,3819,4256), +(4649,37,1007,4257), +(4650,37,3820,4258), +(4651,37,3821,4259), +(4652,37,3822,4260), +(4653,37,3823,4261), +(4654,37,3824,4262), +(4655,37,3825,4263), +(4656,37,3826,4264), +(4657,37,3827,4265), +(4658,37,3112,4266), +(4659,37,3828,4267), +(4660,37,3829,4268), +(4661,37,181,4269), +(4662,37,3830,4270), +(4663,37,3831,4271), +(4664,37,3832,4272), +(4665,37,3833,4273), +(4666,37,654,4274), +(4667,37,654,4275), +(4668,37,654,4276), +(4669,37,654,4277), +(4670,37,3834,4278), +(4671,37,3835,4279), +(4672,37,3836,4280), +(4673,37,3837,4281), +(4674,37,3838,4282), +(4675,37,3839,4283), +(4676,37,3840,4284), +(4677,37,3841,4285), +(4678,37,658,4286), +(4679,37,3842,4287), +(4680,37,3843,4288), +(4681,37,3844,4289), +(4682,37,3845,4290), +(4683,37,3846,4291), +(4684,37,3847,4292), +(4685,37,3848,4293), +(4686,37,3849,4294), +(4687,37,349,4295), +(4688,37,3850,4296), +(4689,37,13,4297), +(4690,37,13,4298), +(4691,37,13,4299), +(4692,37,2227,4300), +(4693,37,27,4301), +(4694,37,3851,4302), +(4695,37,23,4303), +(4696,37,27,4304), +(4697,37,3852,4305), +(4698,37,33,4306), +(4699,37,3853,4307), +(4700,37,3854,4308), +(4701,37,3855,4309), +(4702,37,3856,4310), +(4703,37,3857,4311), +(4704,37,3858,4312), +(4705,37,71,4313), +(4706,37,3859,4314), +(4707,37,3860,4315), +(4708,37,3861,4316), +(4709,37,488,4317), +(4710,37,780,4318), +(4711,37,3862,4319), +(4712,37,3030,4320), +(4713,37,3863,4321), +(4714,37,487,4322), +(4715,37,3864,4323), +(4716,37,3865,4324), +(4717,37,3866,4325), +(4718,37,3867,4326), +(4719,37,3868,4327), +(4720,37,3869,4328), +(4721,37,3870,4329), +(4722,37,209,4330), +(4723,37,3871,4331), +(4724,37,3872,4332), +(4725,37,3873,4333), +(4726,37,3874,4334), +(4727,37,907,4335), +(4728,37,3875,4336), +(4729,37,3876,4337), +(4730,37,3877,4338), +(4731,37,514,4338), +(4732,37,3878,4339), +(4733,37,3879,4340), +(4734,37,3880,4341), +(4735,37,3881,4341), +(4736,37,3882,4341), +(4737,37,3883,4342), +(4738,37,3884,4343), +(4739,37,3885,4344), +(4740,37,2612,4345), +(4741,37,3886,4346), +(4742,37,3887,4347), +(4743,37,3888,4348), +(4744,37,3889,4349), +(4745,37,3890,4350), +(4746,37,3891,4351), +(4747,37,3892,4352), +(4748,37,3893,4353), +(4749,37,3894,4353), +(4750,37,992,4354), +(4751,37,536,4355), +(4752,37,3895,4356), +(4753,37,3896,4357), +(4754,37,3897,4357), +(4755,37,3898,4358), +(4756,37,3899,4359), +(4757,37,3900,4360), +(4758,37,3901,4361), +(4759,37,3902,4362), +(4760,37,3903,4363), +(4761,37,3904,4364), +(4762,37,513,4365), +(4763,37,3905,4366), +(4764,37,3906,4367), +(4765,37,1087,4368), +(4766,37,3907,4369), +(4767,37,3908,4369), +(4768,37,1979,4370), +(4769,37,3909,4371), +(4770,37,260,4372), +(4771,37,1295,4373), +(4772,37,3910,4374), +(4773,37,3911,4375), +(4774,37,265,4376), +(4775,37,1295,4377), +(4776,37,3912,4378), +(4777,37,260,4379), +(4778,37,1096,4380), +(4779,37,3913,4381), +(4780,37,3914,4381), +(4781,37,3915,4382), +(4782,37,3916,4383), +(4783,37,3917,4384), +(4784,37,3918,4385), +(4785,37,3919,4386), +(4786,37,3920,4387), +(4787,37,3503,4388), +(4788,37,774,4389), +(4789,37,3921,4390), +(4790,37,3922,4391), +(4791,37,3923,4392), +(4792,37,3924,4393), +(4793,37,3925,4394), +(4794,37,3926,4395), +(4795,37,3927,4396), +(4796,37,274,4397), +(4797,37,1163,4398), +(4798,37,3928,4399), +(4799,37,3929,4400), +(4800,37,189,4401), +(4801,37,3930,4402), +(4802,37,3931,4403), +(4803,37,3932,4404), +(4804,37,3933,4405), +(4805,37,3934,4406), +(4806,37,3935,4407), +(4807,37,202,4408), +(4808,37,3936,4409), +(4809,37,194,4410), +(4810,37,3937,4411), +(4811,37,3938,4412), +(4812,37,3939,4413), +(4813,37,3940,4414), +(4814,37,3941,4414), +(4815,37,3942,4414), +(4816,37,3943,4415), +(4817,37,3270,4416), +(4818,37,3944,4417), +(4819,37,3945,4418), +(4820,37,3946,4419), +(4821,37,3947,4420), +(4822,37,2801,4421), +(4823,37,3948,4422), +(4824,37,3949,4423), +(4825,37,202,4424), +(4826,37,3950,4425), +(4827,37,3951,4426), +(4828,37,3952,4426), +(4829,37,3953,4427), +(4830,37,3954,4428), +(4831,37,3955,4429), +(4832,37,3956,4430), +(4833,37,3957,4431), +(4834,37,3958,4432), +(4835,37,3959,4433), +(4836,37,3960,4434), +(4837,37,3961,4435), +(4838,37,460,4436), +(4839,37,3962,4437), +(4840,37,3963,4438), +(4841,37,3964,4438), +(4842,37,469,4439), +(4843,37,3965,4440), +(4844,37,3966,4440), +(4845,37,3967,4440), +(4846,37,3968,4440), +(4847,37,3969,4441), +(4848,37,3970,4442), +(4849,37,3971,4443), +(4850,37,3972,4444), +(4851,37,3973,4445), +(4852,37,3974,4446), +(4853,37,3975,4447), +(4854,37,3976,4448), +(4855,37,3977,4449), +(4856,37,3978,4450), +(4857,37,3979,4451), +(4858,37,3980,4452), +(4859,37,3981,4453), +(4860,37,3982,4454), +(4861,37,3983,4454), +(4862,37,3984,4455), +(4863,37,3985,4456), +(4864,37,3986,4457), +(4865,37,319,4458), +(4866,37,3987,4459), +(4867,37,111,4460), +(4868,37,3988,4461), +(4869,37,3989,4462), +(4870,37,3990,4463), +(4871,37,3991,4464), +(4872,37,3992,4465), +(4873,37,3993,4466), +(4874,37,3994,4467), +(4875,37,3995,4468), +(4876,37,3996,4469), +(4877,37,3997,4470), +(4878,37,372,4471), +(4879,37,3360,4472), +(4880,37,3998,4473), +(4881,37,3999,4474), +(4882,37,276,4475), +(4883,37,2886,4476), +(4884,37,4000,4477), +(4885,37,4001,4478), +(4886,37,280,4479), +(4887,37,4002,4480), +(4888,37,912,4481), +(4889,37,280,4482), +(4890,37,287,4483), +(4891,37,4003,4484), +(4892,37,4004,4485), +(4893,37,4005,4486), +(4894,37,4006,4487), +(4895,37,4007,4488), +(4896,37,4008,4489), +(4897,37,4009,4490), +(4898,37,4010,4491), +(4899,37,4011,4492), +(4900,37,4012,4493), +(4901,37,4013,4494), +(4902,37,4014,4495), +(4903,37,4015,4496), +(4904,37,4016,4497), +(4905,37,4017,4498), +(4906,37,4018,4499), +(4907,37,4019,4500), +(4908,37,4020,4501), +(4909,37,4021,4502), +(4910,37,4022,4503), +(4911,37,4023,4504), +(4912,37,4024,4504), +(4913,37,4025,4504), +(4914,37,4026,4505), +(4915,37,4027,4506), +(4916,37,4028,4507), +(4917,37,4029,4508), +(4918,37,141,4509), +(4919,37,4030,4510), +(4920,37,141,4511), +(4921,37,141,4512), +(4922,37,4031,4513), +(4923,37,4032,4514), +(4924,37,4033,4515), +(4925,37,4034,4516), +(4926,37,4035,4517), +(4927,37,942,4518), +(4928,37,4036,4519), +(4929,37,4037,4520), +(4930,37,4038,4521), +(4931,37,4039,4522), +(4932,37,4040,4523), +(4933,37,4041,4524), +(4934,37,4042,4525), +(4935,37,4043,4526), +(4936,37,165,4527), +(4937,37,4044,4528), +(4938,37,4045,4529), +(4939,37,4046,4530), +(4940,37,4047,4531), +(4941,37,4048,4532), +(4942,37,4049,4532), +(4943,37,4050,4533), +(4944,37,3251,4534), +(4945,37,2725,4535), +(4946,37,172,4536), +(4947,37,4051,4537), +(4948,37,4052,4538), +(4949,37,107,4539), +(4950,37,2666,4540), +(4951,37,111,4541), +(4952,37,111,4542), +(4953,37,4053,4543), +(4954,37,4054,4544), +(4955,37,4055,4545), +(4956,37,4056,4546), +(4957,37,4057,4547), +(4958,37,4058,4548), +(4959,37,4059,4548), +(4960,37,4060,4549), +(4961,37,4061,4550), +(4962,37,4062,4551), +(4963,37,4063,4552), +(4964,37,4064,4552), +(4965,37,4065,4553), +(4966,37,4066,4554), +(4967,37,4067,4555), +(4968,37,4068,4556), +(4969,37,4069,4557), +(4970,37,4070,4558), +(4971,37,4071,4559), +(4972,37,4072,4560), +(4973,37,4073,4561), +(4974,37,4074,4562), +(4975,37,4075,4563), +(4976,37,4076,4563), +(4977,37,4077,4563), +(4978,37,4078,4563), +(4979,37,4079,4563), +(4980,37,4080,4564), +(4981,37,4081,4565), +(4982,37,4082,4566), +(4983,37,1483,4567), +(4984,37,673,4568), +(4985,37,673,4569), +(4986,37,4083,4570), +(4987,37,3465,4571), +(4988,37,29,4572), +(4989,37,357,4573), +(4990,37,27,4574), +(4991,37,4084,4575), +(4992,37,27,4576), +(4993,37,29,4577), +(4994,37,23,4578), +(4995,37,29,4579), +(4996,37,4085,4580), +(4997,37,4086,4581), +(4998,37,4087,4581), +(4999,37,4088,4582), +(5000,37,4089,4583), +(5001,37,4090,4584), +(5002,37,4091,4585), +(5003,37,4092,4586), +(5004,37,4093,4587), +(5005,37,4094,4588), +(5006,37,4095,4589), +(5007,37,661,4590), +(5008,37,4096,4591), +(5009,37,4097,4592), +(5010,37,4098,4593), +(5011,37,4099,4594), +(5012,37,1597,4594), +(5013,37,4100,4595), +(5014,37,4101,4596), +(5015,37,4102,4597), +(5016,37,4103,4598), +(5017,37,4104,4598), +(5018,37,4105,4599), +(5019,37,4106,4600), +(5020,37,4107,4601), +(5021,37,4108,4601), +(5022,37,4109,4602), +(5023,37,4110,4603), +(5024,37,4111,4604), +(5025,37,4112,4605), +(5026,37,4113,4606), +(5027,37,1152,4607), +(5028,37,2760,4608), +(5029,37,481,4609), +(5030,37,4114,4610), +(5031,37,1510,4611), +(5032,37,4115,4612), +(5033,37,4116,4613), +(5034,37,4117,4614), +(5035,37,4118,4615), +(5036,37,780,4616), +(5037,37,780,4617), +(5038,37,91,4618), +(5039,37,60,4619), +(5040,37,4119,4620), +(5041,37,536,4621), +(5042,37,4120,4622), +(5043,37,4121,4623), +(5044,37,4122,4624), +(5045,37,4123,4625), +(5046,37,4124,4626), +(5047,37,4125,4627), +(5048,37,4126,4628), +(5049,37,4127,4629), +(5050,37,91,4630), +(5051,37,91,4631), +(5052,37,4128,4632), +(5053,37,4129,4633), +(5054,37,4130,4634), +(5055,37,4131,4635), +(5056,37,4132,4636), +(5057,37,4133,4637), +(5058,37,2006,4638), +(5059,37,130,4639), +(5060,37,4134,4640), +(5061,37,4135,4641), +(5062,37,4136,4642), +(5063,37,4137,4643), +(5064,37,4138,4644), +(5065,37,4139,4645), +(5066,37,918,4646), +(5067,37,4140,4647), +(5068,37,4141,4648), +(5069,37,4142,4649), +(5070,37,4143,4650), +(5071,37,4144,4651), +(5072,37,4145,4652), +(5073,37,4146,4653), +(5074,37,4147,4654), +(5075,37,4148,4655), +(5076,37,4149,4656), +(5077,37,4150,4657), +(5078,37,1365,4658), +(5079,37,4151,4659), +(5080,37,4152,4660), +(5081,37,580,4661), +(5082,37,4153,4662), +(5083,37,4154,4663), +(5084,37,2375,4664), +(5085,37,4155,4665), +(5086,37,4156,4666), +(5087,37,4157,4667), +(5088,37,2390,4668), +(5089,37,4158,4669), +(5090,37,4159,4670), +(5091,37,4160,4671), +(5092,37,930,4672), +(5093,37,616,4673), +(5094,37,4161,4674), +(5095,37,4162,4675), +(5096,37,4163,4675), +(5097,37,4164,4676), +(5098,37,4165,4677), +(5099,37,4166,4678), +(5100,37,942,4679), +(5101,37,4167,4680), +(5102,37,4168,4681), +(5103,37,4169,4682), +(5104,37,4170,4683), +(5105,37,4171,4684), +(5106,37,4172,4685), +(5107,37,594,4686), +(5108,37,598,4687), +(5109,37,4173,4688), +(5110,37,2725,4689), +(5111,37,174,4690), +(5112,37,4051,4691), +(5113,37,4174,4692), +(5114,37,4175,4693), +(5115,37,1413,4694), +(5116,37,4176,4695), +(5117,37,4177,4696), +(5118,37,4178,4697), +(5119,37,4179,4698), +(5120,37,4180,4698), +(5121,37,280,4699), +(5122,37,4181,4700), +(5123,37,4182,4701), +(5124,37,4183,4702), +(5125,37,280,4703), +(5126,37,4184,4704), +(5127,37,280,4705), +(5128,37,4185,4706), +(5129,37,280,4707), +(5130,37,4186,4708), +(5131,37,4187,4709), +(5132,37,4188,4710), +(5133,37,4189,4710), +(5134,37,4190,4711), +(5135,37,4191,4712), +(5136,37,4192,4713), +(5137,37,4193,4714), +(5138,37,4194,4715), +(5139,37,4195,4715), +(5140,37,4196,4715), +(5141,37,4197,4716), +(5142,37,4198,4717), +(5143,37,1173,4718), +(5144,37,4199,4719), +(5145,37,4200,4720), +(5146,37,4201,4721), +(5147,37,4202,4722), +(5148,37,4203,4723), +(5149,37,4204,4724), +(5150,37,4205,4725), +(5151,37,4206,4726), +(5152,37,4207,4727), +(5153,37,4208,4728), +(5154,37,4209,4729), +(5155,37,260,4730), +(5156,37,4210,4731), +(5157,37,260,4732), +(5158,37,260,4733), +(5159,37,4211,4734), +(5160,37,4212,4735), +(5161,37,260,4736), +(5162,37,260,4737), +(5163,37,1337,4738), +(5164,37,265,4739), +(5165,37,4213,4740), +(5166,37,4214,4741), +(5167,37,4215,4742), +(5168,37,4216,4743), +(5169,37,4217,4744), +(5170,37,4218,4745), +(5171,37,4219,4746), +(5172,37,4220,4747), +(5173,37,4221,4748), +(5174,37,4222,4748), +(5175,37,1324,4748), +(5176,37,4223,4749), +(5177,37,4224,4750), +(5178,37,4225,4751), +(5179,37,4226,4752), +(5180,37,774,4753), +(5181,37,4227,4754), +(5182,37,4228,4755), +(5183,37,274,4756), +(5184,37,4229,4757), +(5185,37,4230,4758), +(5186,37,4231,4759), +(5187,37,4232,4760), +(5188,37,4233,4761), +(5189,37,3709,4762), +(5190,37,200,4763), +(5191,37,4234,4764), +(5192,37,1030,4765), +(5193,37,4235,4766), +(5194,37,811,4767), +(5195,37,4236,4767), +(5196,37,4237,4768), +(5197,37,194,4769), +(5198,37,4238,4770), +(5199,37,4239,4771), +(5200,37,4240,4772), +(5201,37,4241,4773), +(5202,37,4242,4774), +(5203,37,4243,4775), +(5204,37,4244,4776), +(5205,37,2792,4777), +(5206,37,4245,4778), +(5207,37,4246,4779), +(5208,37,4247,4780), +(5209,37,4248,4781), +(5210,37,4249,4781), +(5211,37,4250,4782), +(5212,37,4251,4783), +(5213,37,2556,4784), +(5214,37,4252,4785), +(5215,37,4253,4786), +(5216,37,4254,4787), +(5217,37,4255,4788), +(5218,37,4256,4789), +(5219,37,4257,4790), +(5220,37,4258,4791), +(5221,37,460,4792), +(5222,37,4259,4793), +(5223,37,4260,4794), +(5224,37,229,4795), +(5225,37,4261,4796), +(5226,37,4262,4797), +(5227,37,4263,4797), +(5228,37,4264,4798), +(5229,37,474,4799), +(5230,37,4265,4800), +(5231,37,4266,4801), +(5232,37,4267,4802), +(5233,37,4268,4803), +(5234,37,4269,4804), +(5235,37,4270,4805), +(5236,37,4271,4806), +(5237,37,2588,4807), +(5238,37,4272,4808), +(5239,37,4273,4809), +(5240,37,4274,4810), +(5241,37,4275,4810), +(5242,37,2573,4810), +(5243,37,4276,4811), +(5244,37,4277,4812), +(5245,37,422,4813), +(5246,37,2482,4814), +(5247,37,4278,4815), +(5248,37,4279,4815), +(5249,37,2507,4816), +(5250,37,4280,4817), +(5251,37,4281,4818), +(5252,37,4282,4819), +(5253,37,4283,4819), +(5254,37,4284,4819), +(5255,37,4285,4820), +(5256,37,4286,4820), +(5257,37,4287,4821), +(5258,37,4288,4822), +(5259,37,3048,4823), +(5260,37,4289,4824), +(5261,37,4290,4825), +(5262,37,4291,4826), +(5263,37,4292,4827), +(5264,37,4293,4828), +(5265,37,4294,4829), +(5266,37,4295,4830), +(5267,37,69,4831), +(5268,37,4296,4832), +(5269,37,519,4833), +(5270,37,4297,4834), +(5271,37,519,4835), +(5272,37,4298,4836), +(5273,37,4299,4837), +(5274,37,4300,4838), +(5275,37,4301,4839), +(5276,37,4302,4840), +(5277,37,4303,4841), +(5278,37,2612,4842), +(5279,37,4304,4843), +(5280,37,4305,4844), +(5281,37,4306,4845), +(5282,37,4307,4846), +(5283,37,4308,4847), +(5284,37,4309,4847), +(5285,37,4310,4847), +(5286,37,4311,4847), +(5287,37,4312,4848), +(5288,37,4313,4849), +(5289,37,4314,4850), +(5290,37,4315,4851), +(5291,37,4316,4852), +(5292,37,4317,4853), +(5293,37,4318,4854), +(5294,37,2122,4855), +(5295,37,4319,4856), +(5296,37,4320,4857), +(5297,37,4321,4857), +(5298,37,4322,4858), +(5299,37,560,4859), +(5300,37,4323,4860), +(5301,37,2028,4861), +(5302,37,4324,4861), +(5303,37,4325,4862), +(5304,37,4326,4863), +(5305,37,4327,4863), +(5306,37,4328,4863), +(5307,37,4329,4864), +(5308,37,2272,4864), +(5309,37,4330,4865), +(5310,37,4331,4866), +(5311,37,4332,4867), +(5312,37,4333,4868), +(5313,37,435,4869), +(5314,37,4334,4870), +(5315,37,558,4871), +(5316,37,568,4872), +(5317,37,1273,4873), +(5318,37,4335,4874), +(5319,37,4336,4875), +(5320,37,4337,4876), +(5321,37,4338,4877), +(5322,37,4339,4878), +(5323,37,4340,4878), +(5324,37,4341,4879), +(5325,37,4342,4880), +(5326,37,4343,4881), +(5327,37,4344,4882), +(5328,37,4345,4883), +(5329,37,4346,4884), +(5330,37,4347,4885), +(5331,37,4348,4886), +(5332,37,4349,4887), +(5333,37,4350,4888), +(5334,37,4351,4889), +(5335,37,4352,4890), +(5336,37,4353,4891), +(5337,37,4354,4892), +(5338,37,4355,4893), +(5339,37,4356,4894), +(5340,37,942,4895), +(5341,37,4357,4896), +(5342,37,2719,4897), +(5343,37,4358,4898), +(5344,37,4359,4899), +(5345,37,4360,4900), +(5346,37,4361,4901), +(5347,37,3252,4902), +(5348,37,4362,4903), +(5349,37,4363,4903), +(5350,37,4364,4904), +(5351,37,4365,4905), +(5352,37,4181,4906), +(5353,37,4366,4907), +(5354,37,4367,4908), +(5355,37,4368,4909), +(5356,37,280,4910), +(5357,37,4369,4911), +(5358,37,4370,4912), +(5359,37,4371,4913), +(5360,37,4372,4914), +(5361,37,4373,4915), +(5362,37,4374,4916), +(5363,37,287,4917), +(5364,37,1569,4918), +(5365,37,280,4919), +(5366,37,4375,4920), +(5367,37,4376,4921), +(5368,37,4377,4922), +(5369,37,3712,4923), +(5370,37,111,4924), +(5371,37,4378,4925), +(5372,37,4379,4926), +(5373,37,4380,4927), +(5374,37,4381,4928), +(5375,37,4382,4929), +(5376,37,4383,4930), +(5377,37,4384,4931), +(5378,37,4385,4932), +(5379,37,4386,4933), +(5380,37,4387,4934), +(5381,37,4388,4935), +(5382,37,3955,4936), +(5383,37,4389,4937), +(5384,37,4390,4938), +(5385,37,4391,4939), +(5386,37,4392,4940), +(5387,37,4393,4940), +(5388,37,4394,4941), +(5389,37,4395,4942), +(5390,37,4396,4943), +(5391,37,4397,4944), +(5392,37,4398,4944), +(5393,37,4399,4944), +(5394,37,4400,4944), +(5395,37,4401,4945), +(5396,37,4402,4946), +(5397,37,4403,4947), +(5398,37,107,4948), +(5399,37,4404,4949), +(5400,37,2290,4950), +(5401,37,4405,4951), +(5402,37,4406,4952), +(5403,37,4407,4952), +(5404,37,4408,4953), +(5405,37,4409,4954), +(5406,37,4410,4955), +(5407,37,4411,4956), +(5408,37,956,4957), +(5409,37,1413,4958), +(5410,37,1413,4959), +(5411,37,4412,4960), +(5412,37,2073,4961), +(5413,37,4413,4962), +(5414,37,4414,4963), +(5415,37,4415,4964), +(5416,37,4416,4965), +(5417,37,4417,4966), +(5418,37,4418,4967), +(5419,37,4419,4968), +(5420,37,1483,4969), +(5421,37,13,4970), +(5422,37,4420,4971), +(5423,37,982,4972), +(5424,37,673,4973), +(5425,37,1821,4974), +(5426,37,13,4974), +(5427,37,4421,4975), +(5428,37,23,4976), +(5429,37,23,4977), +(5430,37,29,4978), +(5431,37,27,4979), +(5432,37,678,4980), +(5433,37,4422,4981), +(5434,37,1007,4982), +(5435,37,4423,4983), +(5436,37,1007,4984), +(5437,37,4424,4985), +(5438,37,4425,4985), +(5439,37,513,4986), +(5440,37,4426,4987), +(5441,37,4427,4988), +(5442,37,4428,4989), +(5443,37,4429,4990), +(5444,37,4430,4991), +(5445,37,4431,4992), +(5446,37,513,4993), +(5447,37,1078,4994), +(5448,37,4432,4995), +(5449,37,4433,4996), +(5450,37,4434,4997), +(5451,37,260,4998), +(5452,37,4435,4999), +(5453,37,1090,5000), +(5454,37,396,5001), +(5455,37,4436,5002), +(5456,37,4437,5003), +(5457,37,4438,5004), +(5458,37,4439,5005), +(5459,37,4440,5006), +(5460,37,3404,5007), +(5461,37,4441,5008), +(5462,37,265,5009), +(5463,37,4442,5010), +(5464,37,4443,5011), +(5465,37,4444,5012), +(5466,37,4445,5013), +(5467,37,4446,5014), +(5468,37,4447,5015), +(5469,37,4448,5016), +(5470,37,4449,5017), +(5471,37,4450,5018), +(5472,37,4451,5019), +(5473,37,4452,5020), +(5474,37,4453,5021), +(5475,37,4454,5022), +(5476,37,4455,5023), +(5477,37,4456,5024), +(5478,37,4457,5025), +(5479,37,4458,5026), +(5480,37,189,5027), +(5481,37,4459,5028), +(5482,37,184,5029), +(5483,37,4460,5030), +(5484,37,184,5031), +(5485,37,184,5032), +(5486,37,184,5033), +(5487,37,1030,5034), +(5488,37,194,5035), +(5489,37,1436,5036), +(5490,37,194,5037), +(5491,37,202,5038), +(5492,37,3508,5039), +(5493,37,194,5040), +(5494,37,4461,5041), +(5495,37,3310,5042), +(5496,37,4462,5042), +(5497,37,4463,5043), +(5498,37,4464,5043), +(5499,37,4465,5043), +(5500,37,4466,5044), +(5501,37,4467,5045), +(5502,37,4468,5046), +(5503,37,4469,5047), +(5504,37,4470,5048), +(5505,37,202,5049), +(5506,37,4471,5050), +(5507,37,4472,5051), +(5508,37,4473,5052), +(5509,37,2792,5053), +(5510,37,4474,5054), +(5511,37,2966,5055), +(5512,37,4475,5056), +(5513,37,1609,5057), +(5514,37,4476,5058), +(5515,37,4477,5058), +(5516,37,4478,5059), +(5517,37,4479,5060), +(5518,37,4480,5061), +(5519,37,4481,5061), +(5520,37,4482,5062), +(5521,37,4483,5063), +(5522,37,4484,5064), +(5523,37,4485,5065), +(5524,37,4486,5066), +(5525,37,229,5067), +(5526,37,4487,5068), +(5527,37,4488,5069), +(5528,37,4489,5070), +(5529,37,4490,5071), +(5530,37,4491,5072), +(5531,37,4492,5073), +(5532,37,4493,5074), +(5533,37,4494,5075), +(5534,37,4495,5076), +(5535,37,4496,5077), +(5536,37,4497,5078), +(5537,37,4498,5079), +(5538,37,4499,5079), +(5539,37,4500,5080), +(5540,37,4301,5081), +(5541,37,4501,5082), +(5542,37,4502,5083), +(5543,37,4503,5084), +(5544,37,4504,5085), +(5545,37,4505,5086), +(5546,37,4506,5087), +(5547,37,4507,5088), +(5548,37,4508,5089), +(5549,37,4509,5089), +(5550,37,4510,5089), +(5551,37,4511,5090), +(5552,37,4512,5091), +(5553,37,4513,5092), +(5554,37,4514,5093), +(5555,37,4515,5094), +(5556,37,4516,5095), +(5557,37,4517,5096), +(5558,37,4518,5097), +(5559,37,4519,5098), +(5560,37,3416,5099), +(5561,37,4520,5100), +(5562,37,4521,5101), +(5563,37,4522,5102), +(5564,37,4523,5103), +(5565,37,4524,5104), +(5566,37,4525,5105), +(5567,37,4526,5106), +(5568,37,4527,5107), +(5569,37,4528,5108), +(5570,37,4529,5109), +(5571,37,4530,5110), +(5572,37,4531,5111), +(5573,37,4532,5112), +(5574,37,481,5113), +(5575,37,4533,5114), +(5576,37,4534,5115), +(5577,37,4535,5116), +(5578,37,4536,5117), +(5579,37,4537,5117), +(5580,37,4538,5118), +(5581,37,4539,5119), +(5582,37,4540,5120), +(5583,37,4541,5121), +(5584,37,4542,5122), +(5585,37,4543,5123), +(5586,37,4544,5124), +(5587,37,4545,5125), +(5588,37,4546,5126), +(5589,37,4547,5127), +(5590,37,4548,5128), +(5591,37,70,5129), +(5592,37,2869,5130), +(5593,37,1152,5131), +(5594,37,4549,5132), +(5595,37,367,5133), +(5596,37,4550,5134), +(5597,37,367,5135), +(5598,37,1949,5136), +(5599,37,4551,5137), +(5600,37,4552,5137), +(5601,37,4553,5138), +(5602,37,4554,5138), +(5603,37,4555,5139), +(5604,37,4556,5140), +(5605,37,4557,5141), +(5606,37,2873,5142), +(5607,37,4558,5143), +(5608,37,4559,5144), +(5609,37,558,5144), +(5610,37,4560,5145), +(5611,37,4561,5146), +(5612,37,1207,5147), +(5613,37,4562,5148), +(5614,37,4563,5148), +(5615,37,4564,5149), +(5616,37,4565,5150), +(5617,37,4566,5151), +(5618,37,4567,5152), +(5619,37,4568,5153), +(5620,37,1114,5154), +(5621,37,578,5155), +(5622,37,4569,5156), +(5623,37,4570,5157), +(5624,37,4571,5158), +(5625,37,4572,5159), +(5626,37,4573,5160), +(5627,37,4574,5161), +(5628,37,1226,5162), +(5629,37,2707,5163), +(5630,37,4575,5164), +(5631,37,2835,5165), +(5632,37,4576,5166), +(5633,37,4577,5167), +(5634,37,4578,5168), +(5635,37,4579,5169), +(5636,37,4580,5170), +(5637,37,4581,5171), +(5638,37,4582,5172), +(5639,37,4583,5173), +(5640,37,4584,5174), +(5641,37,594,5175), +(5642,37,4585,5176), +(5643,37,4173,5177), +(5644,37,1114,5178), +(5645,37,2306,5179), +(5646,37,3252,5180), +(5647,37,1391,5181), +(5648,37,4586,5182), +(5649,37,4587,5183), +(5650,37,4588,5184), +(5651,37,4589,5185), +(5652,37,4368,5186), +(5653,37,4590,5186), +(5654,37,4591,5187), +(5655,37,4592,5188), +(5656,37,4593,5189), +(5657,37,1569,5190), +(5658,37,2128,5191), +(5659,37,280,5192), +(5660,37,280,5193), +(5661,37,280,5194), +(5662,37,4594,5195), +(5663,37,4595,5195), +(5664,37,4596,5195), +(5665,37,4597,5196), +(5666,37,4598,5196), +(5667,37,4599,5196), +(5668,37,4600,5197), +(5669,37,4601,5198), +(5670,37,4602,5199), +(5671,37,4603,5200), +(5672,37,4604,5201), +(5673,37,4605,5202), +(5674,37,4606,5203), +(5675,37,4607,5204), +(5676,37,4608,5205), +(5677,37,4609,5206), +(5678,37,1177,5207), +(5679,37,4610,5208), +(5680,37,4611,5209), +(5681,37,4612,5210), +(5682,37,4613,5211), +(5683,37,4614,5211), +(5684,37,4615,5211), +(5685,37,4616,5211), +(5686,37,4617,5211), +(5687,37,4618,5211), +(5688,37,1428,5212), +(5689,37,4619,5213), +(5690,37,4620,5214), +(5691,37,4621,5215), +(5692,37,194,5216), +(5693,37,184,5217), +(5694,37,194,5218), +(5695,37,4622,5219), +(5696,37,4623,5220), +(5697,37,194,5221), +(5698,37,4624,5222), +(5699,37,792,5223), +(5700,37,4625,5224), +(5701,37,4626,5225), +(5702,37,764,5226), +(5703,37,4627,5227), +(5704,37,4052,5228), +(5705,37,4628,5229), +(5706,37,4629,5230), +(5707,37,4630,5231), +(5708,37,3270,5232), +(5709,37,2792,5233), +(5710,37,4631,5234), +(5711,37,4632,5235), +(5712,37,4633,5236), +(5713,37,4634,5237), +(5714,37,4635,5237), +(5715,37,4636,5238), +(5716,37,4637,5239), +(5717,37,4638,5240), +(5718,37,4639,5241), +(5719,37,4640,5242), +(5720,37,4641,5242), +(5721,37,4642,5243), +(5722,37,1459,5244), +(5723,37,229,5245), +(5724,37,4643,5246), +(5725,37,4644,5247), +(5726,37,4645,5248), +(5727,37,4646,5249), +(5728,37,4647,5250), +(5729,37,4648,5251), +(5730,37,4649,5252), +(5731,37,4650,5253), +(5732,37,4651,5254), +(5733,37,4652,5255), +(5734,37,4653,5256), +(5735,37,4654,5257), +(5736,37,3553,5258), +(5737,37,4655,5259), +(5738,37,4656,5260), +(5739,37,260,5261), +(5740,37,4657,5262), +(5741,37,1295,5263), +(5742,37,4658,5264), +(5743,37,260,5265), +(5744,37,4659,5266), +(5745,37,265,5267), +(5746,37,4660,5268), +(5747,37,4661,5269), +(5748,37,4662,5270), +(5749,37,4663,5271), +(5750,37,4664,5272), +(5751,37,4665,5273), +(5752,37,4666,5274), +(5753,37,4667,5275), +(5754,37,4668,5276), +(5755,37,4669,5277), +(5756,37,4670,5278), +(5757,37,4671,5279), +(5758,37,4672,5280), +(5759,37,4673,5281), +(5760,37,866,5282), +(5761,37,4674,5283), +(5762,37,4675,5284), +(5763,37,422,5285), +(5764,37,4676,5286), +(5765,37,4677,5287), +(5766,37,4678,5288), +(5767,37,4679,5289), +(5768,37,4680,5290), +(5769,37,4681,5291), +(5770,37,4682,5292), +(5771,37,4683,5293), +(5772,37,4684,5293), +(5773,37,4685,5294), +(5774,37,4686,5295), +(5775,37,182,5296), +(5776,37,4687,5297), +(5777,37,4688,5298), +(5778,37,4689,5299), +(5779,37,4690,5300), +(5780,37,654,5301), +(5781,37,4691,5302), +(5782,37,654,5303), +(5783,37,4692,5304), +(5784,37,4693,5305), +(5785,37,4694,5306), +(5786,37,4695,5307), +(5787,37,4696,5308), +(5788,37,4697,5309), +(5789,37,4698,5310), +(5790,37,4699,5311), +(5791,37,4700,5311), +(5792,37,4701,5312), +(5793,37,4702,5313), +(5794,37,811,5314), +(5795,37,4703,5315), +(5796,37,4704,5316), +(5797,37,4705,5317), +(5798,37,4706,5317), +(5799,37,4707,5318), +(5800,37,4708,5319), +(5801,37,4709,5320), +(5802,37,2076,5321), +(5803,37,4710,5322), +(5804,37,4711,5323), +(5805,37,2539,5324), +(5806,37,4712,5325), +(5807,37,669,5326), +(5808,37,4713,5327), +(5809,37,4714,5327), +(5810,37,13,5328), +(5811,37,4715,5329), +(5812,37,27,5330), +(5813,37,4716,5331), +(5814,37,2227,5332), +(5815,37,13,5333), +(5816,37,4717,5334), +(5817,37,27,5335), +(5818,37,3465,5336), +(5819,37,3353,5337), +(5820,37,29,5338), +(5821,37,357,5339), +(5822,37,678,5340), +(5823,37,4718,5341), +(5824,37,91,5342), +(5825,37,536,5343), +(5826,37,4719,5344), +(5827,37,4720,5345), +(5828,37,1282,5346), +(5829,37,4721,5346), +(5830,37,4722,5346), +(5831,37,4723,5347), +(5832,37,4724,5348), +(5833,37,525,5349), +(5834,37,522,5350), +(5835,37,4725,5351), +(5836,37,4726,5352), +(5837,37,4727,5353), +(5838,37,4728,5354), +(5839,37,4729,5354), +(5840,37,3799,5355), +(5841,37,4730,5356), +(5842,37,4731,5357), +(5843,37,4732,5358), +(5844,37,4733,5359), +(5845,37,4734,5360), +(5846,37,4735,5361), +(5847,37,4736,5362), +(5848,37,69,5363), +(5849,37,4737,5364), +(5850,37,4738,5365), +(5851,37,811,5365), +(5852,37,4739,5366), +(5853,37,4740,5367), +(5854,37,360,5368), +(5855,37,4741,5369), +(5856,37,4742,5370), +(5857,37,4743,5371), +(5858,37,4744,5372), +(5859,37,4745,5373), +(5860,37,29,5374), +(5861,37,27,5375), +(5862,37,4746,5376), +(5863,37,4747,5377), +(5864,37,4748,5378), +(5865,37,1007,5379), +(5866,37,4749,5380), +(5867,37,711,5381), +(5868,37,4750,5382), +(5869,37,4751,5383), +(5870,37,1510,5384), +(5871,37,4752,5385), +(5872,37,4753,5386), +(5873,37,4754,5387), +(5874,37,4755,5388), +(5875,37,4756,5389), +(5876,37,4757,5390), +(5877,37,4758,5390), +(5878,37,4759,5390), +(5879,37,4760,5391), +(5880,37,280,5392), +(5881,37,4761,5393), +(5882,37,4762,5394), +(5883,37,4763,5395), +(5884,37,4764,5396), +(5885,37,3058,5397), +(5886,37,4765,5398), +(5887,37,4766,5399), +(5888,37,561,5400), +(5889,37,4767,5400), +(5890,37,4768,5401), +(5891,37,918,5402), +(5892,37,4769,5403), +(5893,37,4770,5404), +(5894,37,4771,5405), +(5895,37,223,5406), +(5896,37,4772,5406), +(5897,37,4773,5406), +(5898,37,4774,5407), +(5899,37,919,5408), +(5900,37,4775,5409), +(5901,37,4776,5410), +(5902,37,141,5411), +(5903,37,4777,5412), +(5904,37,4778,5412), +(5905,37,4779,5413), +(5906,37,4780,5414), +(5907,37,2050,5415), +(5908,37,141,5416), +(5909,37,4781,5417), +(5910,37,4782,5418), +(5911,37,4783,5419), +(5912,37,4784,5420), +(5913,37,4785,5421), +(5914,37,4786,5422), +(5915,37,4787,5423), +(5916,37,4788,5424), +(5917,37,4789,5425), +(5918,37,4790,5426), +(5919,37,4791,5427), +(5920,37,4792,5428), +(5921,37,1235,5429), +(5922,37,4793,5430), +(5923,37,1010,5430), +(5924,37,4794,5431), +(5925,37,4795,5432), +(5926,37,4173,5433), +(5927,37,4796,5434), +(5928,37,176,5435), +(5929,37,4797,5436), +(5930,37,4798,5436), +(5931,37,4799,5437), +(5932,37,1680,5438), +(5933,37,4800,5439), +(5934,37,4801,5440), +(5935,37,4802,5441), +(5936,37,4803,5442), +(5937,37,4804,5443), +(5938,37,1413,5444), +(5939,37,4805,5445), +(5940,37,4806,5446), +(5941,37,4807,5447), +(5942,37,4808,5448), +(5943,37,4809,5449), +(5944,37,4810,5450), +(5945,37,827,5451), +(5946,37,655,5452), +(5947,37,3024,5453), +(5948,37,4811,5454), +(5949,37,4812,5455), +(5950,37,4813,5456), +(5951,37,4814,5457), +(5952,37,4815,5458), +(5953,37,2073,5459), +(5954,37,344,5460), +(5955,37,2076,5461), +(5956,37,4816,5462), +(5957,37,974,5463), +(5958,37,4817,5464), +(5959,37,14,5465), +(5960,37,4818,5466), +(5961,37,4819,5467), +(5962,37,13,5468), +(5963,37,27,5469), +(5964,37,4820,5470), +(5965,37,4821,5471), +(5966,37,4822,5472), +(5967,37,4823,5472), +(5968,37,4824,5472), +(5969,37,4825,5472), +(5970,37,4826,5472), +(5971,37,27,5473), +(5972,37,29,5474), +(5973,37,4827,5475), +(5974,37,3353,5476), +(5975,37,4828,5477), +(5976,37,33,5478), +(5977,37,4829,5479), +(5978,37,662,5480), +(5979,37,4830,5481), +(5980,37,4831,5482), +(5981,37,4832,5483), +(5982,37,4833,5484), +(5983,37,2259,5485), +(5984,37,4834,5486), +(5985,37,3046,5486), +(5986,37,4835,5487), +(5987,37,4836,5488), +(5988,37,4837,5489), +(5989,37,364,5490), +(5990,37,4838,5491), +(5991,37,4839,5492), +(5992,37,4840,5492), +(5993,37,1007,5493), +(5994,37,1834,5494), +(5995,37,364,5495), +(5996,37,4841,5496), +(5997,37,4842,5496), +(5998,37,4843,5496), +(5999,37,4844,5497), +(6000,37,4845,5498), +(6001,37,4846,5499), +(6002,37,4847,5500), +(6003,37,4848,5500), +(6004,37,4849,5500), +(6005,37,4850,5501), +(6006,37,1428,5502), +(6007,37,4851,5503), +(6008,37,4852,5504), +(6009,37,4853,5505), +(6010,37,4854,5506), +(6011,37,4855,5507), +(6012,37,4856,5508), +(6013,37,4857,5509), +(6014,37,4858,5510), +(6015,37,194,5511), +(6016,37,1030,5512), +(6017,37,4859,5513), +(6018,37,4860,5514), +(6019,37,4861,5515), +(6020,37,2318,5516), +(6021,37,4862,5517), +(6022,37,4863,5518), +(6023,37,3978,5519), +(6024,37,441,5520), +(6025,37,4864,5521), +(6026,37,202,5522), +(6027,37,4865,5523), +(6028,37,4866,5524), +(6029,37,4867,5525), +(6030,37,811,5526), +(6031,37,217,5527), +(6032,37,4868,5528), +(6033,37,4869,5529), +(6034,37,4870,5530), +(6035,37,4871,5531), +(6036,37,4872,5532), +(6037,37,4873,5533), +(6038,37,4874,5534), +(6039,37,4875,5535), +(6040,37,4876,5536), +(6041,37,4877,5537), +(6042,37,4878,5538), +(6043,37,4879,5539), +(6044,37,4880,5540), +(6045,37,4881,5541), +(6046,37,3059,5542), +(6047,37,4882,5543), +(6048,37,4883,5544), +(6049,37,4884,5545), +(6050,37,4885,5546), +(6051,37,1724,5547), +(6052,37,4886,5548), +(6053,37,513,5549), +(6054,37,4887,5550), +(6055,37,4888,5551), +(6056,37,216,5552), +(6057,37,4889,5553), +(6058,37,4218,5554), +(6059,37,4890,5555), +(6060,37,4891,5556), +(6061,37,4892,5557), +(6062,37,4893,5558), +(6063,37,1281,5559), +(6064,37,4894,5560), +(6065,37,4895,5561), +(6066,37,260,5562), +(6067,37,4896,5563), +(6068,37,1087,5564), +(6069,37,4897,5565), +(6070,37,260,5566), +(6071,37,4898,5567), +(6072,37,260,5568), +(6073,37,4899,5569), +(6074,37,260,5570), +(6075,37,4900,5571), +(6076,37,4901,5571), +(6077,37,4902,5571), +(6078,37,4903,5572), +(6079,37,260,5573), +(6080,37,4904,5574), +(6081,37,4905,5575), +(6082,37,4906,5576), +(6083,37,4907,5577), +(6084,37,4908,5578), +(6085,37,4909,5579), +(6086,37,4910,5580), +(6087,37,4911,5581), +(6088,37,1808,5582), +(6089,37,4912,5583), +(6090,37,4913,5584), +(6091,37,1608,5585), +(6092,37,4914,5586), +(6093,37,4915,5587), +(6094,37,274,5588), +(6095,37,4916,5589), +(6096,37,4917,5590), +(6097,37,4918,5591), +(6098,37,274,5592), +(6099,37,4919,5593), +(6100,37,4920,5594), +(6101,37,4921,5595), +(6102,37,4922,5596), +(6103,37,4923,5597), +(6104,37,4924,5598), +(6105,37,4925,5599), +(6106,37,4926,5600), +(6107,37,4927,5601), +(6108,37,4928,5602), +(6109,37,422,5603), +(6110,37,4929,5604), +(6111,37,4930,5605), +(6112,37,422,5606), +(6113,37,4931,5607), +(6114,37,4932,5608), +(6115,37,536,5609), +(6116,37,4933,5610), +(6117,37,4934,5611), +(6118,37,2744,5612), +(6119,37,4935,5613), +(6120,37,4936,5614), +(6121,37,4937,5614), +(6122,37,4938,5615), +(6123,37,4939,5616), +(6124,37,4940,5617), +(6125,37,4941,5618), +(6126,37,4942,5619), +(6127,37,4943,5620), +(6128,37,4944,5621), +(6129,37,4945,5622), +(6130,37,4946,5623), +(6131,37,3018,5624), +(6132,37,4947,5625), +(6133,37,4948,5626), +(6134,37,4949,5627), +(6135,37,4950,5628), +(6136,37,3030,5629), +(6137,37,4951,5630), +(6138,37,4952,5631), +(6139,37,4953,5632), +(6140,37,4954,5633), +(6141,37,4955,5634), +(6142,37,4956,5635), +(6143,37,4957,5636), +(6144,37,4958,5637), +(6145,37,4959,5638), +(6146,37,1170,5639), +(6147,37,4960,5640), +(6148,37,4961,5641), +(6149,37,4962,5642), +(6150,37,4963,5643), +(6151,37,4964,5644), +(6152,37,60,5645), +(6153,37,4965,5646), +(6154,37,4966,5647), +(6155,37,4967,5648), +(6156,37,4968,5649), +(6157,37,4969,5650), +(6158,37,4970,5651), +(6159,37,4971,5651), +(6160,37,4972,5651), +(6161,37,4973,5652), +(6162,37,1076,5653), +(6163,37,4974,5654), +(6164,37,4975,5655), +(6165,37,141,5656), +(6166,37,2279,5657), +(6167,37,2569,5658), +(6168,37,141,5659), +(6169,37,4976,5660), +(6170,37,4977,5661), +(6171,37,4978,5662), +(6172,37,4979,5663), +(6173,37,4980,5664), +(6174,37,4033,5665), +(6175,37,4981,5666), +(6176,37,4982,5667), +(6177,37,4983,5668), +(6178,37,4984,5669), +(6179,37,942,5670), +(6180,37,4985,5671), +(6181,37,942,5672), +(6182,37,4986,5673), +(6183,37,4987,5674), +(6184,37,4988,5675), +(6185,37,4989,5676), +(6186,37,4990,5677), +(6187,37,4991,5678), +(6188,37,2719,5679), +(6189,37,4992,5680), +(6190,37,4993,5681), +(6191,37,4994,5682), +(6192,37,173,5683), +(6193,37,4175,5684), +(6194,37,598,5685), +(6195,37,1413,5686), +(6196,37,4995,5687), +(6197,37,4996,5687), +(6198,37,4997,5687), +(6199,37,4175,5688), +(6200,37,4998,5689), +(6201,37,4999,5690), +(6202,37,5000,5691), +(6203,37,5001,5692), +(6204,37,5002,5693), +(6205,37,3974,5694), +(6206,37,4962,5695), +(6207,37,5003,5696), +(6208,37,5004,5697), +(6209,37,513,5698), +(6210,37,5005,5699), +(6211,37,5006,5700), +(6212,37,5007,5701), +(6213,37,513,5702), +(6214,37,5008,5703), +(6215,37,5009,5704), +(6216,37,5010,5705), +(6217,37,5011,5706), +(6218,37,1079,5707), +(6219,37,5012,5708), +(6220,37,5013,5709), +(6221,37,5014,5710), +(6222,37,5015,5711), +(6223,37,265,5712), +(6224,37,1983,5713), +(6225,37,5016,5714), +(6226,37,5017,5714), +(6227,37,5018,5715), +(6228,37,1281,5716), +(6229,37,5019,5717), +(6230,37,5020,5718), +(6231,37,260,5719), +(6232,37,5021,5720), +(6233,37,5022,5721), +(6234,37,5023,5722), +(6235,37,260,5723), +(6236,37,5024,5723), +(6237,37,5025,5724), +(6238,37,260,5725), +(6239,37,5026,5726), +(6240,37,5027,5727), +(6241,37,5028,5728), +(6242,37,5029,5729), +(6243,37,5030,5730), +(6244,37,5031,5731), +(6245,37,5032,5732), +(6246,37,5033,5733), +(6247,37,4672,5734), +(6248,37,5034,5735), +(6249,37,5035,5736), +(6250,37,5036,5737), +(6251,37,5037,5738), +(6252,37,5038,5739), +(6253,37,5039,5740), +(6254,37,5040,5741), +(6255,37,5041,5742), +(6256,37,5042,5743), +(6257,37,5043,5744), +(6258,37,5044,5745), +(6259,37,5045,5746), +(6260,37,5046,5747), +(6261,37,5047,5748), +(6262,37,5048,5748), +(6263,37,5049,5748), +(6264,37,5050,5749), +(6265,37,5051,5750), +(6266,37,5052,5751), +(6267,37,5053,5751), +(6268,37,5054,5752), +(6269,37,5055,5752), +(6270,37,2073,5753), +(6271,37,2073,5754), +(6272,37,5056,5755), +(6273,37,5057,5756), +(6274,37,5058,5757), +(6275,37,5059,5758), +(6276,37,5060,5759), +(6277,37,2542,5760), +(6278,37,1157,5761), +(6279,37,5061,5762), +(6280,37,5062,5763), +(6281,37,5063,5764), +(6282,37,13,5765), +(6283,37,13,5766), +(6284,37,5064,5767), +(6285,37,29,5768), +(6286,37,27,5769), +(6287,37,5065,5770), +(6288,37,5066,5771), +(6289,37,27,5772), +(6290,37,1009,5773), +(6291,37,23,5774), +(6292,37,33,5775), +(6293,37,987,5776), +(6294,37,709,5777), +(6295,37,5067,5778), +(6296,37,5068,5778), +(6297,37,5069,5779), +(6298,37,5070,5779), +(6299,37,5071,5779), +(6300,37,5072,5780), +(6301,37,2552,5781), +(6302,37,5073,5782), +(6303,37,5074,5783), +(6304,37,5075,5784), +(6305,37,5076,5785), +(6306,37,280,5786), +(6307,37,280,5787), +(6308,37,606,5788), +(6309,37,5077,5789), +(6310,37,280,5790), +(6311,37,5078,5791), +(6312,37,5079,5792), +(6313,37,5080,5793), +(6314,37,5081,5794), +(6315,37,5082,5795), +(6316,37,5083,5796), +(6317,37,5084,5797), +(6318,37,5085,5798), +(6319,37,5086,5799), +(6320,37,654,5800), +(6321,37,5087,5801), +(6322,37,654,5802), +(6323,37,5088,5803), +(6324,37,5089,5803), +(6325,37,5090,5804), +(6326,37,5091,5805), +(6327,37,658,5806), +(6328,37,5092,5807), +(6329,37,5093,5808), +(6330,37,5094,5809), +(6331,37,5095,5810), +(6332,37,5096,5811), +(6333,37,5097,5812), +(6334,37,5098,5813), +(6335,37,5099,5814), +(6336,37,5100,5814), +(6337,37,4370,5814), +(6338,37,5101,5815), +(6339,37,5102,5815), +(6340,37,2542,5816), +(6341,37,5103,5817), +(6342,37,5104,5818), +(6343,37,5105,5819), +(6344,37,5106,5820), +(6345,37,5107,5821), +(6346,37,1428,5822), +(6347,37,5108,5823), +(6348,37,5109,5824), +(6349,37,5110,5825), +(6350,37,5111,5826), +(6351,37,5112,5827), +(6352,37,5113,5827), +(6353,37,189,5828), +(6354,37,5114,5829), +(6355,37,5115,5830), +(6356,37,5116,5831), +(6357,37,5117,5832), +(6358,37,4259,5833), +(6359,37,5118,5834), +(6360,37,195,5835), +(6361,37,194,5836), +(6362,37,202,5837), +(6363,37,194,5838), +(6364,37,5119,5839), +(6365,37,5120,5840), +(6366,37,3508,5841), +(6367,37,441,5842), +(6368,37,5121,5843), +(6369,37,5122,5844), +(6370,37,5123,5845), +(6371,37,5124,5846), +(6372,37,5125,5847), +(6373,37,5126,5848), +(6374,37,5127,5849), +(6375,37,5128,5850), +(6376,37,5129,5851), +(6377,37,202,5852), +(6378,37,5130,5853), +(6379,37,5131,5854), +(6380,37,5132,5855), +(6381,37,5133,5856), +(6382,37,3190,5857), +(6383,37,5134,5858), +(6384,37,5135,5859), +(6385,37,5136,5860), +(6386,37,5137,5861), +(6387,37,5138,5862), +(6388,37,5139,5863), +(6389,37,229,5864), +(6390,37,229,5865), +(6391,37,5140,5866), +(6392,37,1459,5867), +(6393,37,5141,5868), +(6394,37,227,5869), +(6395,37,227,5870), +(6396,37,5142,5871), +(6397,37,5143,5872), +(6398,37,5144,5873), +(6399,37,5145,5874), +(6400,37,5146,5875), +(6401,37,5147,5876), +(6402,37,5148,5877), +(6403,37,5149,5878), +(6404,37,5150,5879), +(6405,37,5151,5879), +(6406,37,5152,5880), +(6407,37,3466,5881), +(6408,37,5153,5882), +(6409,37,5154,5883), +(6410,37,5155,5883), +(6411,37,274,5884), +(6412,37,5156,5885), +(6413,37,5157,5886), +(6414,37,5158,5887), +(6415,37,5159,5888), +(6416,37,5160,5889), +(6417,37,5161,5890), +(6418,37,5162,5891), +(6419,37,5163,5892), +(6420,37,5164,5893), +(6421,37,5165,5894), +(6422,37,5166,5895), +(6423,37,5167,5896), +(6424,37,5168,5897), +(6425,37,5169,5898), +(6426,37,869,5899), +(6427,37,5170,5900), +(6428,37,5171,5901), +(6429,37,5172,5902), +(6430,37,5173,5903), +(6431,37,5174,5904), +(6432,37,5175,5905), +(6433,37,5176,5906), +(6434,37,5177,5907), +(6435,37,5178,5908), +(6436,37,5179,5909), +(6437,37,5180,5910), +(6438,37,5181,5911), +(6439,37,5182,5912), +(6440,37,107,5913), +(6441,37,5183,5914), +(6442,37,5184,5915), +(6443,37,5185,5915), +(6444,37,5186,5916), +(6445,37,5187,5917), +(6446,37,5188,5918), +(6447,37,5189,5919), +(6448,37,5190,5920), +(6449,37,5191,5921), +(6450,37,5192,5922), +(6451,37,2906,5923), +(6452,37,5193,5924), +(6453,37,5194,5925), +(6454,37,5195,5926), +(6455,37,5196,5927), +(6456,37,5197,5928), +(6457,37,5198,5929), +(6458,37,5199,5930), +(6459,37,3978,5931), +(6460,37,5200,5932), +(6461,37,70,5933), +(6462,37,3799,5934), +(6463,37,5201,5935), +(6464,37,5202,5936), +(6465,37,5203,5937), +(6466,37,5204,5938), +(6467,37,5205,5939), +(6468,37,5206,5940), +(6469,37,5207,5941), +(6470,37,5208,5942), +(6471,37,5209,5942), +(6472,37,5210,5943), +(6473,37,5211,5944), +(6474,37,5212,5945), +(6475,37,5213,5946), +(6476,37,5214,5947), +(6477,37,5215,5948), +(6478,37,488,5949), +(6479,37,5216,5950), +(6480,37,5217,5951), +(6481,37,5218,5952), +(6482,37,481,5953), +(6483,37,5219,5954), +(6484,37,5220,5955), +(6485,37,5221,5956), +(6486,37,5222,5957), +(6487,37,37,5958), +(6488,37,917,5959), +(6489,37,5223,5960), +(6490,37,5224,5961), +(6491,37,5225,5962), +(6492,37,3112,5963), +(6493,37,5226,5964), +(6494,37,5227,5965), +(6495,37,5228,5966), +(6496,37,1255,5967), +(6497,37,5229,5968), +(6498,37,5230,5969), +(6499,37,5231,5969), +(6500,37,5232,5970), +(6501,37,5233,5971), +(6502,37,5234,5972), +(6503,37,5235,5973), +(6504,37,5236,5974), +(6505,37,280,5975), +(6506,37,5237,5976), +(6507,37,280,5977), +(6508,37,5238,5978), +(6509,37,5239,5979), +(6510,37,287,5980), +(6511,37,5240,5981), +(6512,37,5241,5982), +(6513,37,5242,5983), +(6514,37,130,5984), +(6515,37,5243,5985), +(6516,37,2846,5986), +(6517,37,5244,5987), +(6518,37,1066,5988), +(6519,37,4553,5989), +(6520,37,2272,5990), +(6521,37,5245,5990), +(6522,37,5246,5991), +(6523,37,918,5992), +(6524,37,5247,5993), +(6525,37,5248,5994), +(6526,37,5249,5995), +(6527,37,5250,5996), +(6528,37,1207,5997), +(6529,37,5251,5998), +(6530,37,5252,5999), +(6531,37,5253,6000), +(6532,37,141,6001), +(6533,37,5071,6002), +(6534,37,5254,6003), +(6535,37,5255,6004), +(6536,37,5256,6004), +(6537,37,5257,6005), +(6538,37,141,6006), +(6539,37,933,6007), +(6540,37,5258,6008), +(6541,37,5259,6009), +(6542,37,5260,6010), +(6543,37,942,6011), +(6544,37,5261,6012), +(6545,37,5262,6013), +(6546,37,5263,6014), +(6547,37,5264,6015), +(6548,37,5265,6016), +(6549,37,5266,6017), +(6550,37,2725,6018), +(6551,37,5267,6019), +(6552,37,4175,6020), +(6553,37,5268,6021), +(6554,37,5269,6021), +(6555,37,2308,6022), +(6556,37,182,6023), +(6557,37,5270,6024), +(6558,37,5271,6025), +(6559,37,5272,6026), +(6560,37,5273,6027), +(6561,37,5274,6027), +(6562,37,5275,6028), +(6563,37,5276,6029), +(6564,37,5277,6030), +(6565,37,5278,6031), +(6566,37,5279,6032), +(6567,37,5280,6033), +(6568,37,1432,6034), +(6569,37,5281,6035), +(6570,37,5282,6036), +(6571,37,1131,6036), +(6572,37,5283,6037), +(6573,37,5284,6038), +(6574,37,5285,6039), +(6575,37,5286,6040), +(6576,37,3307,6041), +(6577,37,5287,6042), +(6578,37,5288,6043), +(6579,37,5289,6044), +(6580,37,4411,6045), +(6581,37,5290,6046), +(6582,37,5291,6047), +(6583,37,5292,6048), +(6584,37,5293,6048), +(6585,37,5294,6049), +(6586,37,5295,6049), +(6587,37,5296,6049), +(6588,37,5297,6050), +(6589,37,1734,6051), +(6590,37,658,6052), +(6591,37,5298,6053), +(6592,37,1739,6054), +(6593,37,2073,6055), +(6594,37,5299,6056), +(6595,37,5300,6057), +(6596,37,5301,6058), +(6597,37,5302,6059), +(6598,37,5303,6060), +(6599,37,5304,6061), +(6600,37,5305,6062), +(6601,37,2076,6063), +(6602,37,5306,6064), +(6603,37,12,6065), +(6604,37,12,6066), +(6605,37,349,6067), +(6606,37,5307,6068), +(6607,37,5308,6069), +(6608,37,13,6070), +(6609,37,13,6071), +(6610,37,2227,6072), +(6611,37,5309,6073), +(6612,37,29,6074), +(6613,37,5310,6075), +(6614,37,1007,6076), +(6615,37,5311,6077), +(6616,37,704,6078), +(6617,37,1011,6079), +(6618,37,1009,6080), +(6619,37,5312,6081), +(6620,37,1170,6082), +(6621,37,5313,6083), +(6622,37,5314,6084), +(6623,37,5315,6085), +(6624,37,260,6086), +(6625,37,5316,6087), +(6626,37,260,6088), +(6627,37,3089,6089), +(6628,37,1079,6090), +(6629,37,5317,6091), +(6630,37,5318,6092), +(6631,37,260,6093), +(6632,37,260,6094), +(6633,37,1979,6095), +(6634,37,5319,6096), +(6635,37,5320,6096), +(6636,37,5017,6097), +(6637,37,5321,6098), +(6638,37,260,6099), +(6639,37,5322,6100), +(6640,37,260,6101), +(6641,37,260,6102), +(6642,37,265,6103), +(6643,37,5323,6104), +(6644,37,260,6105), +(6645,37,1306,6106), +(6646,37,5324,6107), +(6647,37,5325,6108), +(6648,37,5326,6109), +(6649,37,5327,6110), +(6650,37,5328,6111), +(6651,37,5329,6112), +(6652,37,5330,6113), +(6653,37,5331,6113), +(6654,37,5332,6114), +(6655,37,5333,6115), +(6656,37,5334,6116), +(6657,37,5335,6117), +(6658,37,5336,6118), +(6659,37,5337,6119), +(6660,37,5338,6120), +(6661,37,5339,6121), +(6662,37,5340,6122), +(6663,37,767,6122), +(6664,37,5341,6123), +(6665,37,5342,6124), +(6666,37,5343,6124), +(6667,37,5344,6125), +(6668,37,5345,6126), +(6669,37,5346,6127), +(6670,37,5347,6128), +(6671,37,5348,6129), +(6672,37,2744,6130), +(6673,37,5349,6131), +(6674,37,780,6132), +(6675,37,5350,6133), +(6676,37,5351,6134), +(6677,37,5352,6135), +(6678,37,5353,6136), +(6679,37,1428,6137), +(6680,37,3264,6138), +(6681,37,195,6139), +(6682,37,5354,6140), +(6683,37,5355,6141), +(6684,37,194,6142), +(6685,37,202,6143), +(6686,37,5356,6144), +(6687,37,441,6145), +(6688,37,5357,6146), +(6689,37,5358,6147), +(6690,37,5359,6148), +(6691,37,5360,6149), +(6692,37,5361,6150), +(6693,37,5362,6151), +(6694,37,5363,6152), +(6695,37,5364,6153), +(6696,37,5365,6154), +(6697,37,2801,6155), +(6698,37,5366,6156), +(6699,37,5367,6156), +(6700,37,5368,6156), +(6701,37,5369,6156), +(6702,37,229,6157), +(6703,37,232,6158), +(6704,37,5370,6159), +(6705,37,5371,6160), +(6706,37,5372,6161), +(6707,37,5373,6162), +(6708,37,229,6163), +(6709,37,5374,6164), +(6710,37,5375,6165), +(6711,37,5376,6166), +(6712,37,5377,6167), +(6713,37,2187,6168), +(6714,37,5378,6169), +(6715,37,5379,6170), +(6716,37,5380,6171), +(6717,37,5381,6172), +(6718,37,5382,6173), +(6719,37,5383,6174), +(6720,37,69,6175), +(6721,37,5384,6176), +(6722,37,2906,6177), +(6723,37,5385,6178), +(6724,37,519,6179), +(6725,37,5386,6180), +(6726,37,5387,6181), +(6727,37,2612,6182), +(6728,37,5388,6183), +(6729,37,522,6184), +(6730,37,525,6185), +(6731,37,5389,6186), +(6732,37,5390,6187), +(6733,37,5391,6188), +(6734,37,90,6189), +(6735,37,5392,6190), +(6736,37,5393,6191), +(6737,37,536,6192), +(6738,37,5394,6193), +(6739,37,5395,6194), +(6740,37,5396,6195), +(6741,37,5397,6196), +(6742,37,5398,6197), +(6743,37,5399,6198), +(6744,37,5400,6199), +(6745,37,5401,6199), +(6746,37,5402,6200), +(6747,37,721,6201), +(6748,37,5403,6202), +(6749,37,5404,6203), +(6750,37,5405,6204), +(6751,37,5406,6205), +(6752,37,474,6206), +(6753,37,5407,6207), +(6754,37,5408,6208), +(6755,37,5409,6209), +(6756,37,5410,6210), +(6757,37,5411,6211), +(6758,37,5412,6211), +(6759,37,5413,6212), +(6760,37,5414,6213), +(6761,37,5415,6214), +(6762,37,5416,6215), +(6763,37,5417,6216), +(6764,37,5418,6217), +(6765,37,1798,6218), +(6766,37,5419,6219), +(6767,37,1510,6220), +(6768,37,5420,6221), +(6769,37,1516,6222), +(6770,37,5421,6223), +(6771,37,5422,6224), +(6772,37,5423,6225), +(6773,37,5424,6225), +(6774,37,360,6226), +(6775,37,5425,6227), +(6776,37,91,6228), +(6777,37,5426,6229), +(6778,37,5427,6230), +(6779,37,5428,6231), +(6780,37,111,6232), +(6781,37,5429,6233), +(6782,37,5430,6234), +(6783,37,119,6235), +(6784,37,5431,6236), +(6785,37,5432,6237), +(6786,37,5433,6238), +(6787,37,5434,6239), +(6788,37,5435,6240), +(6789,37,5436,6241), +(6790,37,5437,6242), +(6791,37,513,6243), +(6792,37,5438,6244), +(6793,37,5439,6244), +(6794,37,5440,6245), +(6795,37,5441,6246), +(6796,37,5442,6247), +(6797,37,5443,6248), +(6798,37,5444,6249), +(6799,37,5445,6250), +(6800,37,260,6251), +(6801,37,260,6252), +(6802,37,260,6253), +(6803,37,5446,6254), +(6804,37,5447,6255), +(6805,37,260,6256), +(6806,37,260,6257), +(6807,37,5448,6258), +(6808,37,5449,6259), +(6809,37,5450,6260), +(6810,37,260,6261), +(6811,37,5451,6262), +(6812,37,5452,6263), +(6813,37,5453,6264), +(6814,37,260,6265), +(6815,37,5454,6266), +(6816,37,1096,6267), +(6817,37,5455,6268), +(6818,37,5456,6269), +(6819,37,5457,6270), +(6820,37,5458,6271), +(6821,37,5459,6272), +(6822,37,5460,6273), +(6823,37,5461,6274), +(6824,37,5462,6275), +(6825,37,5463,6276), +(6826,37,5464,6277), +(6827,37,767,6278), +(6828,37,274,6279), +(6829,37,5465,6280), +(6830,37,5466,6281), +(6831,37,5467,6282), +(6832,37,5468,6282), +(6833,37,5469,6283), +(6834,37,1657,6284), +(6835,37,5470,6284), +(6836,37,5471,6285), +(6837,37,5472,6286), +(6838,37,5473,6287), +(6839,37,5474,6288), +(6840,37,5475,6288), +(6841,37,5476,6289), +(6842,37,5477,6290), +(6843,37,5478,6290), +(6844,37,5479,6291), +(6845,37,5480,6292), +(6846,37,5481,6293), +(6847,37,5482,6293), +(6848,37,5483,6294), +(6849,37,4159,6295), +(6850,37,5484,6296), +(6851,37,5485,6297), +(6852,37,780,6298), +(6853,37,5486,6299), +(6854,37,5487,6300), +(6855,37,5488,6301), +(6856,37,5489,6302), +(6857,37,5490,6303), +(6858,37,5491,6304), +(6859,37,5492,6305), +(6860,37,5493,6306), +(6861,37,1217,6307), +(6862,37,5494,6308), +(6863,37,5495,6309), +(6864,37,5496,6310), +(6865,37,5497,6311), +(6866,37,5498,6312), +(6867,37,5499,6313), +(6868,37,5500,6314), +(6869,37,5501,6315), +(6870,37,5502,6316), +(6871,37,70,6317), +(6872,37,536,6318), +(6873,37,5503,6319), +(6874,37,5504,6319), +(6875,37,536,6320), +(6876,37,5505,6321), +(6877,37,5506,6322), +(6878,37,2901,6323), +(6879,37,5507,6324), +(6880,37,721,6325), +(6881,37,5508,6326), +(6882,37,721,6327), +(6883,37,5509,6328), +(6884,37,662,6329), +(6885,37,5510,6330), +(6886,37,5511,6331), +(6887,37,5512,6332), +(6888,37,5513,6332), +(6889,37,5514,6333), +(6890,37,5515,6334), +(6891,37,5516,6335), +(6892,37,5517,6336), +(6893,37,1428,6337), +(6894,37,5518,6338), +(6895,37,5519,6339), +(6896,37,661,6340), +(6897,37,5520,6341), +(6898,37,5521,6342), +(6899,37,5522,6343), +(6900,37,5523,6344), +(6901,37,1436,6345), +(6902,37,190,6346), +(6903,37,5524,6347), +(6904,37,194,6348), +(6905,37,200,6349), +(6906,37,5525,6350), +(6907,37,5526,6351), +(6908,37,5527,6352), +(6909,37,5528,6353), +(6910,37,5529,6354), +(6911,37,5530,6355), +(6912,37,5531,6356), +(6913,37,5532,6356), +(6914,37,202,6357), +(6915,37,202,6358), +(6916,37,5533,6359), +(6917,37,5534,6360), +(6918,37,5535,6361), +(6919,37,5536,6362), +(6920,37,2792,6363), +(6921,37,5537,6364), +(6922,37,5538,6365), +(6923,37,5539,6366), +(6924,37,5540,6367), +(6925,37,5541,6368), +(6926,37,5542,6369), +(6927,37,5543,6370), +(6928,37,5544,6371), +(6929,37,5545,6372), +(6930,37,5546,6373), +(6931,37,5547,6374), +(6932,37,5548,6375), +(6933,37,5549,6376), +(6934,37,5550,6377), +(6935,37,5551,6378), +(6936,37,5552,6379), +(6937,37,229,6380), +(6938,37,5553,6381), +(6939,37,5554,6382), +(6940,37,5555,6383), +(6941,37,5556,6384), +(6942,37,5557,6385), +(6943,37,2124,6386), +(6944,37,5558,6387), +(6945,37,5559,6388), +(6946,37,5560,6389), +(6947,37,5561,6389), +(6948,37,5562,6389), +(6949,37,5563,6389), +(6950,37,5564,6390), +(6951,37,5565,6391), +(6952,37,5566,6391), +(6953,37,918,6392), +(6954,37,5567,6393), +(6955,37,556,6394), +(6956,37,5568,6395), +(6957,37,5569,6396), +(6958,37,5570,6397), +(6959,37,5571,6398), +(6960,37,5572,6398), +(6961,37,5573,6398), +(6962,37,141,6399), +(6963,37,5574,6400), +(6964,37,5575,6401), +(6965,37,5576,6402), +(6966,37,578,6403), +(6967,37,5577,6404), +(6968,37,5578,6405), +(6969,37,3113,6406), +(6970,37,5579,6407), +(6971,37,5580,6408), +(6972,37,848,6409), +(6973,37,5581,6410), +(6974,37,5582,6411), +(6975,37,5583,6412), +(6976,37,5584,6413), +(6977,37,5585,6414), +(6978,37,436,6415), +(6979,37,5586,6416), +(6980,37,5587,6417), +(6981,37,5588,6418), +(6982,37,5589,6419), +(6983,37,5590,6420), +(6984,37,165,6421), +(6985,37,5591,6422), +(6986,37,2721,6423), +(6987,37,5592,6424), +(6988,37,172,6425), +(6989,37,4175,6426), +(6990,37,177,6427), +(6991,37,1391,6428), +(6992,37,5593,6429), +(6993,37,2073,6430), +(6994,37,5594,6431), +(6995,37,5595,6432), +(6996,37,5596,6433), +(6997,37,5597,6434), +(6998,37,5598,6435), +(6999,37,5599,6436), +(7000,37,1483,6437), +(7001,37,5600,6438), +(7002,37,12,6439), +(7003,37,2541,6440), +(7004,37,5601,6441), +(7005,37,5602,6442), +(7006,37,5603,6442), +(7007,37,5604,6442), +(7008,37,349,6443), +(7009,37,349,6444), +(7010,37,27,6445), +(7011,37,5605,6446), +(7012,37,504,6446), +(7013,37,5606,6446), +(7014,37,5607,6446), +(7015,37,5608,6447), +(7016,37,23,6448), +(7017,37,27,6449), +(7018,37,29,6450), +(7019,37,1007,6451), +(7020,37,5609,6452), +(7021,37,5610,6453), +(7022,37,5611,6454), +(7023,37,5612,6455), +(7024,37,1431,6456), +(7025,37,364,6457), +(7026,37,5613,6458), +(7027,37,1007,6459), +(7028,37,5614,6460), +(7029,37,5615,6461), +(7030,37,5616,6462), +(7031,37,5617,6463), +(7032,37,5618,6464), +(7033,37,5619,6465), +(7034,37,1340,6466), +(7035,37,5620,6467), +(7036,37,5621,6468), +(7037,37,5622,6469), +(7038,37,869,6470), +(7039,37,5623,6471), +(7040,37,5624,6472), +(7041,37,319,6473), +(7042,37,319,6474), +(7043,37,5625,6475), +(7044,37,5626,6476), +(7045,37,5627,6477), +(7046,37,5628,6478), +(7047,37,5629,6479), +(7048,37,1413,6480), +(7049,37,5630,6481), +(7050,37,5631,6482), +(7051,37,5632,6483), +(7052,37,5633,6483), +(7053,37,5634,6484), +(7054,37,280,6485), +(7055,37,5635,6486), +(7056,37,5636,6487), +(7057,37,5637,6488), +(7058,37,5638,6489), +(7059,37,5639,6489), +(7060,37,5640,6490), +(7061,37,280,6491), +(7062,37,5641,6492), +(7063,37,280,6493), +(7064,37,5642,6494), +(7065,37,5643,6495), +(7066,37,5644,6496), +(7067,37,5645,6497), +(7068,37,5646,6497), +(7069,37,5647,6498), +(7070,37,5648,6499), +(7071,37,5649,6500), +(7072,37,5650,6501), +(7073,37,5651,6502), +(7074,37,2272,6503), +(7075,37,1659,6504), +(7076,37,5652,6505), +(7077,37,5653,6505), +(7078,37,5654,6505), +(7079,37,5655,6506), +(7080,37,5656,6507), +(7081,37,5657,6508), +(7082,37,5658,6509), +(7083,37,5659,6510), +(7084,37,3113,6511), +(7085,37,5660,6512), +(7086,37,2690,6513), +(7087,37,141,6514), +(7088,37,5661,6515), +(7089,37,5662,6516), +(7090,37,5663,6517), +(7091,37,2418,6518), +(7092,37,5664,6519), +(7093,37,5665,6520), +(7094,37,5666,6521), +(7095,37,5667,6522), +(7096,37,5668,6523), +(7097,37,1648,6524), +(7098,37,5669,6524), +(7099,37,942,6525), +(7100,37,5670,6526), +(7101,37,5671,6527), +(7102,37,5672,6528), +(7103,37,5673,6528), +(7104,37,5674,6529), +(7105,37,5675,6530), +(7106,37,5676,6531), +(7107,37,5677,6532), +(7108,37,3126,6532), +(7109,37,5678,6533), +(7110,37,5679,6534), +(7111,37,172,6535), +(7112,37,5680,6536), +(7113,37,5681,6536), +(7114,37,4175,6537), +(7115,37,4998,6538), +(7116,37,1391,6539), +(7117,37,5682,6540), +(7118,37,5683,6541), +(7119,37,5684,6542), +(7120,37,1428,6543), +(7121,37,5685,6544), +(7122,37,5686,6545), +(7123,37,5687,6546), +(7124,37,5688,6547), +(7125,37,5689,6548), +(7126,37,5690,6548), +(7127,37,5691,6548), +(7128,37,792,6549), +(7129,37,5692,6550), +(7130,37,5693,6551), +(7131,37,194,6552), +(7132,37,5694,6553), +(7133,37,3944,6554), +(7134,37,5695,6555), +(7135,37,5696,6555), +(7136,37,5697,6556), +(7137,37,2569,6556), +(7138,37,3944,6557), +(7139,37,202,6558), +(7140,37,5698,6559), +(7141,37,5699,6560), +(7142,37,5700,6561), +(7143,37,5701,6562), +(7144,37,5702,6563), +(7145,37,5703,6564), +(7146,37,5704,6565), +(7147,37,5705,6566), +(7148,37,5706,6567), +(7149,37,5707,6568), +(7150,37,5708,6568), +(7151,37,5709,6568), +(7152,37,5710,6569), +(7153,37,5711,6570), +(7154,37,2490,6571), +(7155,37,5712,6572), +(7156,37,5713,6573), +(7157,37,2776,6574), +(7158,37,5714,6575), +(7159,37,1375,6576), +(7160,37,5715,6577), +(7161,37,4819,6578), +(7162,37,5716,6579), +(7163,37,5717,6580), +(7164,37,236,6581), +(7165,37,5718,6582), +(7166,37,2049,6583), +(7167,37,751,6584), +(7168,37,5719,6585), +(7169,37,5720,6586), +(7170,37,5721,6587), +(7171,37,4203,6588), +(7172,37,5722,6589), +(7173,37,5723,6590), +(7174,37,1673,6591), +(7175,37,5724,6592), +(7176,37,5725,6593), +(7177,37,5726,6594), +(7178,37,5727,6595), +(7179,37,5728,6596), +(7180,37,5729,6597), +(7181,37,5730,6598), +(7182,37,1175,6599), +(7183,37,280,6600), +(7184,37,5731,6601), +(7185,37,287,6602), +(7186,37,5732,6603), +(7187,37,280,6604), +(7188,37,280,6605), +(7189,37,5733,6606), +(7190,37,5734,6607), +(7191,37,5735,6608), +(7192,37,5736,6609), +(7193,37,5737,6610), +(7194,37,5738,6611), +(7195,37,5739,6612), +(7196,37,5740,6613), +(7197,37,5741,6614), +(7198,37,5742,6615), +(7199,37,5743,6616), +(7200,37,5744,6617), +(7201,37,5745,6618), +(7202,37,5746,6619), +(7203,37,654,6620), +(7204,37,654,6621), +(7205,37,654,6622), +(7206,37,5747,6623), +(7207,37,5748,6624), +(7208,37,5749,6625), +(7209,37,658,6626), +(7210,37,5750,6627), +(7211,37,5751,6627), +(7212,37,5752,6628), +(7213,37,5753,6629), +(7214,37,91,6630), +(7215,37,5754,6631), +(7216,37,5755,6632), +(7217,37,5756,6633), +(7218,37,3615,6634), +(7219,37,5757,6635), +(7220,37,5758,6636), +(7221,37,5759,6637), +(7222,37,989,6638), +(7223,37,5760,6639), +(7224,37,5761,6640), +(7225,37,5762,6640), +(7226,37,1007,6641), +(7227,37,5763,6642), +(7228,37,2259,6643), +(7229,37,367,6644), +(7230,37,5764,6645), +(7231,37,5765,6646), +(7232,37,5766,6647), +(7233,37,5767,6647), +(7234,37,5768,6648), +(7235,37,5769,6649), +(7236,37,5770,6650), +(7237,37,5771,6651), +(7238,37,5772,6652), +(7239,37,513,6653), +(7240,37,5773,6654), +(7241,37,5774,6655), +(7242,37,5775,6655), +(7243,37,5776,6655), +(7244,37,5777,6656), +(7245,37,5778,6657), +(7246,37,5779,6658), +(7247,37,513,6659), +(7248,37,5780,6660), +(7249,37,5781,6660), +(7250,37,5782,6661), +(7251,37,5783,6662), +(7252,37,383,6663), +(7253,37,5784,6664), +(7254,37,5785,6665), +(7255,37,3204,6666), +(7256,37,260,6667), +(7257,37,5786,6668), +(7258,37,5787,6669), +(7259,37,5788,6670), +(7260,37,5789,6671), +(7261,37,5790,6672), +(7262,37,5791,6673), +(7263,37,5792,6674), +(7264,37,5793,6674), +(7265,37,5794,6675), +(7266,37,2746,6676), +(7267,37,5795,6677), +(7268,37,5796,6678), +(7269,37,5797,6679), +(7270,37,5798,6680), +(7271,37,5799,6681), +(7272,37,5800,6682), +(7273,37,5801,6683), +(7274,37,1314,6684), +(7275,37,5802,6685), +(7276,37,5803,6686), +(7277,37,5804,6687), +(7278,37,5805,6688), +(7279,37,5806,6689), +(7280,37,5807,6690), +(7281,37,5808,6691), +(7282,37,5809,6692), +(7283,37,302,6693), +(7284,37,5810,6694), +(7285,37,5811,6695), +(7286,37,5812,6696), +(7287,37,3735,6697), +(7288,37,2193,6697), +(7289,37,4014,6698), +(7290,37,3481,6699), +(7291,37,5813,6700), +(7292,37,5814,6701), +(7293,37,5815,6702), +(7294,37,5816,6703), +(7295,37,5817,6704), +(7296,37,5818,6705), +(7297,37,5819,6706), +(7298,37,4324,6707), +(7299,37,5820,6708), +(7300,37,5821,6709), +(7301,37,319,6710), +(7302,37,5822,6711), +(7303,37,5282,6711), +(7304,37,5823,6712), +(7305,37,5824,6713), +(7306,37,5825,6714), +(7307,37,5826,6714), +(7308,37,5827,6714), +(7309,37,649,6715), +(7310,37,3143,6716), +(7311,37,5828,6717), +(7312,37,5829,6718), +(7313,37,5188,6719), +(7314,37,5830,6720), +(7315,37,2073,6721), +(7316,37,5831,6722), +(7317,37,5832,6723), +(7318,37,5833,6724), +(7319,37,5834,6725), +(7320,37,2076,6726), +(7321,37,669,6727), +(7322,37,5835,6728), +(7323,37,5836,6729), +(7324,37,5837,6730), +(7325,37,5838,6731), +(7326,37,5839,6732), +(7327,37,5840,6733), +(7328,37,1819,6734), +(7329,37,13,6735), +(7330,37,5841,6736), +(7331,37,5842,6737), +(7332,37,2227,6738), +(7333,37,29,6739), +(7334,37,982,6740), +(7335,37,1821,6741), +(7336,37,5843,6742), +(7337,37,29,6743), +(7338,37,27,6744), +(7339,37,5844,6745), +(7340,37,23,6746), +(7341,37,27,6747), +(7342,37,704,6748), +(7343,37,5845,6749), +(7344,37,5846,6750), +(7345,37,775,6751), +(7346,37,5847,6752), +(7347,37,5848,6753), +(7348,37,5849,6754), +(7349,37,5850,6755), +(7350,37,474,6756), +(7351,37,5489,6757), +(7352,37,5851,6758), +(7353,37,5852,6759), +(7354,37,5853,6760), +(7355,37,5854,6761), +(7356,37,5855,6762), +(7357,37,5856,6763), +(7358,37,536,6764), +(7359,37,5857,6765), +(7360,37,5858,6766), +(7361,37,5859,6767), +(7362,37,5860,6768), +(7363,37,5861,6769), +(7364,37,5862,6770), +(7365,37,5863,6771), +(7366,37,5864,6772), +(7367,37,5865,6773), +(7368,37,519,6774), +(7369,37,5866,6775), +(7370,37,5867,6776), +(7371,37,5868,6777), +(7372,37,5869,6778), +(7373,37,5870,6779), +(7374,37,5871,6780), +(7375,37,5872,6781), +(7376,37,5873,6782), +(7377,37,5874,6783), +(7378,37,5875,6784), +(7379,37,481,6785), +(7380,37,5876,6786), +(7381,37,3386,6787), +(7382,37,5877,6788), +(7383,37,5878,6789), +(7384,37,5421,6790), +(7385,37,5879,6791), +(7386,37,5880,6792), +(7387,37,5881,6793), +(7388,37,5882,6794), +(7389,37,5883,6795), +(7390,37,5884,6796), +(7391,37,5885,6797), +(7392,37,5886,6798), +(7393,37,5887,6798), +(7394,37,4291,6798), +(7395,37,5888,6799), +(7396,37,3360,6800), +(7397,37,5889,6801), +(7398,37,5890,6801), +(7399,37,5891,6802), +(7400,37,5892,6803), +(7401,37,5893,6804), +(7402,37,5894,6805), +(7403,37,1692,6806), +(7404,37,5895,6807), +(7405,37,5896,6808), +(7406,37,5897,6809), +(7407,37,260,6810), +(7408,37,260,6811), +(7409,37,383,6812), +(7410,37,5898,6813), +(7411,37,1983,6814), +(7412,37,5899,6815), +(7413,37,1985,6816), +(7414,37,5900,6817), +(7415,37,5901,6818), +(7416,37,5902,6819), +(7417,37,5903,6820), +(7418,37,265,6821), +(7419,37,5904,6822), +(7420,37,5905,6823), +(7421,37,5906,6824), +(7422,37,5907,6825), +(7423,37,5908,6826), +(7424,37,5909,6827), +(7425,37,4896,6828), +(7426,37,5910,6829), +(7427,37,2458,6830), +(7428,37,5911,6831), +(7429,37,1629,6832), +(7430,37,2130,6833), +(7431,37,1340,6834), +(7432,37,5912,6834), +(7433,37,5913,6835), +(7434,37,5914,6836), +(7435,37,5915,6837), +(7436,37,5916,6838), +(7437,37,5917,6839), +(7438,37,5918,6840), +(7439,37,1428,6841), +(7440,37,4852,6842), +(7441,37,1428,6843), +(7442,37,5919,6844), +(7443,37,5920,6845), +(7444,37,194,6846), +(7445,37,5921,6847), +(7446,37,5922,6848), +(7447,37,5923,6849), +(7448,37,5924,6850), +(7449,37,5925,6851), +(7450,37,200,6852), +(7451,37,5926,6853), +(7452,37,2715,6854), +(7453,37,5927,6855), +(7454,37,5928,6856), +(7455,37,5929,6857), +(7456,37,202,6858), +(7457,37,5930,6859), +(7458,37,5931,6859), +(7459,37,5932,6860), +(7460,37,5933,6861), +(7461,37,202,6862), +(7462,37,5934,6863), +(7463,37,5935,6864), +(7464,37,5936,6865), +(7465,37,5937,6866), +(7466,37,5938,6867), +(7467,37,5939,6868), +(7468,37,229,6869), +(7469,37,5940,6870), +(7470,37,5941,6871), +(7471,37,5942,6872), +(7472,37,229,6873), +(7473,37,5943,6874), +(7474,37,5944,6875), +(7475,37,5945,6876), +(7476,37,5946,6877), +(7477,37,4884,6878), +(7478,37,2713,6879), +(7479,37,5947,6880), +(7480,37,5501,6881), +(7481,37,5948,6882), +(7482,37,5949,6883), +(7483,37,5950,6884), +(7484,37,5951,6885), +(7485,37,5952,6886), +(7486,37,5953,6887), +(7487,37,5954,6888), +(7488,37,5955,6889), +(7489,37,5956,6889), +(7490,37,5957,6890), +(7491,37,5958,6891), +(7492,37,5959,6892), +(7493,37,5960,6892), +(7494,37,5961,6893), +(7495,37,5962,6894), +(7496,37,5963,6895), +(7497,37,5964,6896), +(7498,37,5965,6897), +(7499,37,5966,6898), +(7500,37,5967,6898), +(7501,37,70,6899), +(7502,37,70,6900), +(7503,37,5968,6901), +(7504,37,5969,6902), +(7505,37,5970,6903), +(7506,37,1798,6904), +(7507,37,5971,6905), +(7508,37,488,6906), +(7509,37,488,6907), +(7510,37,1518,6908), +(7511,37,5972,6909), +(7512,37,5973,6910), +(7513,37,5974,6911), +(7514,37,5975,6912), +(7515,37,1163,6913), +(7516,37,5976,6914), +(7517,37,5977,6915), +(7518,37,5978,6916), +(7519,37,5979,6917), +(7520,37,5980,6918), +(7521,37,5981,6919), +(7522,37,5982,6920), +(7523,37,5983,6921), +(7524,37,5984,6922), +(7525,37,5985,6923), +(7526,37,5986,6924), +(7527,37,91,6925), +(7528,37,5987,6926), +(7529,37,5988,6927), +(7530,37,2552,6928), +(7531,37,2574,6929), +(7532,37,5989,6930), +(7533,37,5990,6931), +(7534,37,5991,6932), +(7535,37,5992,6932), +(7536,37,5993,6933), +(7537,37,2947,6934), +(7538,37,1956,6935), +(7539,37,5994,6936), +(7540,37,5995,6937), +(7541,37,3533,6938), +(7542,37,5996,6939), +(7543,37,5997,6940), +(7544,37,5998,6941), +(7545,37,5999,6942), +(7546,37,6000,6943), +(7547,37,1177,6944), +(7548,37,6001,6945), +(7549,37,6002,6946), +(7550,37,6003,6947), +(7551,37,6004,6948), +(7552,37,3942,6949), +(7553,37,6005,6950), +(7554,37,6006,6951), +(7555,37,6007,6952), +(7556,37,561,6953), +(7557,37,6008,6954), +(7558,37,2272,6955), +(7559,37,6009,6956), +(7560,37,6010,6957), +(7561,37,6011,6958), +(7562,37,6012,6959), +(7563,37,6013,6960), +(7564,37,6014,6961), +(7565,37,1366,6962), +(7566,37,6015,6963), +(7567,37,6016,6964), +(7568,37,6017,6965), +(7569,37,141,6966), +(7570,37,6018,6967), +(7571,37,578,6968), +(7572,37,6019,6969), +(7573,37,6020,6970), +(7574,37,6021,6971), +(7575,37,6022,6972), +(7576,37,6023,6973), +(7577,37,6024,6974), +(7578,37,6025,6975), +(7579,37,6026,6976), +(7580,37,6027,6977), +(7581,37,6028,6978), +(7582,37,6029,6979), +(7583,37,159,6980), +(7584,37,6030,6981), +(7585,37,6031,6982), +(7586,37,6032,6983), +(7587,37,6033,6984), +(7588,37,6034,6985), +(7589,37,6035,6986), +(7590,37,2433,6987), +(7591,37,6036,6988), +(7592,37,172,6989), +(7593,37,6037,6990), +(7594,37,6038,6991), +(7595,37,174,6992), +(7596,37,6039,6993), +(7597,37,182,6994), +(7598,37,6040,6995), +(7599,37,678,6996), +(7600,37,678,6997), +(7601,37,33,6998), +(7602,37,33,6999), +(7603,37,6041,7000), +(7604,37,33,7001), +(7605,37,1007,7002), +(7606,37,711,7003), +(7607,37,6042,7004), +(7608,37,364,7005), +(7609,37,360,7006), +(7610,37,6043,7007), +(7611,37,6044,7008), +(7612,37,6045,7009), +(7613,37,6046,7010), +(7614,37,6047,7011), +(7615,37,11,7012), +(7616,37,6048,7013), +(7617,37,349,7014), +(7618,37,13,7015), +(7619,37,1487,7016), +(7620,37,29,7017), +(7621,37,23,7018), +(7622,37,1177,7019), +(7623,37,6049,7020), +(7624,37,6050,7021), +(7625,37,6051,7022), +(7626,37,6052,7022), +(7627,37,6053,7023), +(7628,37,280,7024), +(7629,37,6054,7025), +(7630,37,6055,7026), +(7631,37,6056,7027), +(7632,37,6057,7028), +(7633,37,6058,7029), +(7634,37,6059,7030), +(7635,37,6060,7031), +(7636,37,6061,7032), +(7637,37,6062,7033), +(7638,37,6063,7034), +(7639,37,127,7034), +(7640,37,6063,7035), +(7641,37,6064,7036), +(7642,37,130,7037), +(7643,37,6065,7038), +(7644,37,6066,7039), +(7645,37,274,7040), +(7646,37,6067,7041), +(7647,37,866,7042), +(7648,37,2027,7043), +(7649,37,6068,7044), +(7650,37,6069,7045), +(7651,37,6070,7046), +(7652,37,6071,7047), +(7653,37,6072,7048), +(7654,37,866,7049), +(7655,37,6073,7050), +(7656,37,6074,7051), +(7657,37,6075,7052), +(7658,37,3082,7053), +(7659,37,316,7054), +(7660,37,6076,7055), +(7661,37,6077,7056), +(7662,37,6078,7057), +(7663,37,6079,7058), +(7664,37,6080,7059), +(7665,37,649,7060), +(7666,37,6081,7061), +(7667,37,6082,7062), +(7668,37,1238,7063), +(7669,37,6083,7064), +(7670,37,6084,7065), +(7671,37,654,7066), +(7672,37,6085,7067), +(7673,37,6086,7068), +(7674,37,6087,7069), +(7675,37,654,7070), +(7676,37,6088,7071), +(7677,37,6089,7071), +(7678,37,6090,7072), +(7679,37,6091,7073), +(7680,37,6092,7073), +(7681,37,6093,7073), +(7682,37,6094,7074), +(7683,37,6095,7075), +(7684,37,6096,7076), +(7685,37,5747,7076), +(7686,37,6097,7076), +(7687,37,6098,7076), +(7688,37,6099,7077), +(7689,37,6100,7078), +(7690,37,561,7079), +(7691,37,6101,7080), +(7692,37,6102,7081), +(7693,37,6103,7082), +(7694,37,6104,7083), +(7695,37,561,7084), +(7696,37,1360,7085), +(7697,37,6105,7086), +(7698,37,919,7087), +(7699,37,141,7088), +(7700,37,6106,7089), +(7701,37,1366,7090), +(7702,37,6107,7091), +(7703,37,6108,7092), +(7704,37,141,7093), +(7705,37,141,7094), +(7706,37,6109,7095), +(7707,37,141,7096), +(7708,37,6110,7097), +(7709,37,6111,7098), +(7710,37,6112,7099), +(7711,37,6113,7100), +(7712,37,6114,7101), +(7713,37,6115,7102), +(7714,37,6116,7103), +(7715,37,6117,7104), +(7716,37,6118,7105), +(7717,37,6119,7106), +(7718,37,6120,7107), +(7719,37,6121,7108), +(7720,37,1235,7109), +(7721,37,6122,7109), +(7722,37,6123,7109), +(7723,37,1388,7110), +(7724,37,811,7111), +(7725,37,6124,7112), +(7726,37,6125,7113), +(7727,37,6126,7114), +(7728,37,177,7115), +(7729,37,953,7116), +(7730,37,6127,7117), +(7731,37,6128,7118), +(7732,37,6129,7119), +(7733,37,6130,7120), +(7734,37,6131,7121), +(7735,37,287,7122), +(7736,37,287,7123), +(7737,37,280,7124), +(7738,37,6132,7125), +(7739,37,287,7126), +(7740,37,280,7127), +(7741,37,6133,7128), +(7742,37,6134,7129), +(7743,37,6135,7130), +(7744,37,6136,7131), +(7745,37,6137,7132), +(7746,37,6138,7133), +(7747,37,6139,7133), +(7748,37,6140,7134), +(7749,37,6141,7134), +(7750,37,6142,7135), +(7751,37,6143,7135), +(7752,37,6144,7136), +(7753,37,4802,7137), +(7754,37,1413,7138), +(7755,37,6145,7139), +(7756,37,6146,7140), +(7757,37,6147,7141), +(7758,37,6148,7142), +(7759,37,6149,7143), +(7760,37,6150,7143), +(7761,37,6151,7144), +(7762,37,6152,7144), +(7763,37,6153,7144), +(7764,37,6154,7145), +(7765,37,6155,7145), +(7766,37,6156,7146), +(7767,37,525,7147), +(7768,37,6157,7148), +(7769,37,848,7149), +(7770,37,70,7150), +(7771,37,6158,7151), +(7772,37,4962,7152), +(7773,37,6159,7153), +(7774,37,6160,7154), +(7775,37,6161,7155), +(7776,37,513,7156), +(7777,37,513,7157), +(7778,37,6162,7158), +(7779,37,6163,7159), +(7780,37,6164,7160), +(7781,37,6165,7161), +(7782,37,6166,7162), +(7783,37,6167,7162), +(7784,37,6168,7163), +(7785,37,1281,7164), +(7786,37,6169,7165), +(7787,37,1087,7166), +(7788,37,6170,7167), +(7789,37,391,7168), +(7790,37,6171,7169), +(7791,37,260,7170), +(7792,37,6172,7171), +(7793,37,6173,7172), +(7794,37,1295,7173), +(7795,37,265,7174), +(7796,37,6174,7175), +(7797,37,265,7176), +(7798,37,6175,7177), +(7799,37,6176,7178), +(7800,37,6177,7179), +(7801,37,6178,7180), +(7802,37,6179,7181), +(7803,37,6180,7182), +(7804,37,6181,7183), +(7805,37,6018,7184), +(7806,37,6182,7185), +(7807,37,6183,7186), +(7808,37,6184,7187), +(7809,37,6185,7188), +(7810,37,6186,7189), +(7811,37,6187,7190), +(7812,37,6188,7191), +(7813,37,6189,7192), +(7814,37,4421,7193), +(7815,37,6190,7194), +(7816,37,6191,7195), +(7817,37,6192,7196), +(7818,37,6193,7197), +(7819,37,6194,7198), +(7820,37,6195,7199), +(7821,37,6196,7200), +(7822,37,6197,7201), +(7823,37,6198,7202), +(7824,37,6199,7203), +(7825,37,6200,7204), +(7826,37,6201,7205), +(7827,37,119,7206), +(7828,37,6202,7207), +(7829,37,189,7208), +(7830,37,6203,7209), +(7831,37,189,7210), +(7832,37,6204,7211), +(7833,37,184,7212), +(7834,37,6205,7213), +(7835,37,189,7214), +(7836,37,202,7215), +(7837,37,6206,7216), +(7838,37,5123,7217), +(7839,37,6207,7218), +(7840,37,4852,7219), +(7841,37,6208,7220), +(7842,37,6209,7221), +(7843,37,1436,7222), +(7844,37,6210,7223), +(7845,37,6211,7224), +(7846,37,6212,7225), +(7847,37,6213,7226), +(7848,37,6214,7227), +(7849,37,6215,7228), +(7850,37,6216,7229), +(7851,37,3270,7230), +(7852,37,6217,7231), +(7853,37,6218,7232), +(7854,37,1010,7233), +(7855,37,6219,7234), +(7856,37,6220,7235), +(7857,37,6221,7236), +(7858,37,6222,7237), +(7859,37,6223,7237), +(7860,37,6224,7238), +(7861,37,6225,7239), +(7862,37,229,7240), +(7863,37,6226,7241), +(7864,37,229,7242), +(7865,37,6227,7243), +(7866,37,6228,7244), +(7867,37,6229,7244), +(7868,37,6230,7244), +(7869,37,229,7245), +(7870,37,229,7246), +(7871,37,6231,7247), +(7872,37,6232,7248), +(7873,37,229,7249), +(7874,37,6233,7250), +(7875,37,6234,7251), +(7876,37,6235,7252), +(7877,37,6236,7253), +(7878,37,6237,7254), +(7879,37,6238,7255), +(7880,37,6239,7256), +(7881,37,6240,7257), +(7882,37,6241,7257), +(7883,37,6242,7258), +(7884,37,1551,7259), +(7885,37,6243,7260), +(7886,37,6244,7261), +(7887,37,91,7262), +(7888,37,1564,7263), +(7889,37,678,7264), +(7890,37,32,7265), +(7891,37,2635,7266), +(7892,37,33,7267), +(7893,37,6245,7268), +(7894,37,1011,7269), +(7895,37,6246,7270), +(7896,37,6247,7271), +(7897,37,91,7272), +(7898,37,6248,7273), +(7899,37,6249,7274), +(7900,37,6250,7275), +(7901,37,274,7276), +(7902,37,6251,7277), +(7903,37,6252,7278), +(7904,37,6253,7279), +(7905,37,6254,7280), +(7906,37,6255,7281), +(7907,37,6256,7282), +(7908,37,6257,7283), +(7909,37,6258,7284), +(7910,37,6259,7285), +(7911,37,6260,7286), +(7912,37,6261,7287), +(7913,37,6262,7288), +(7914,37,6263,7289), +(7915,37,6264,7289), +(7916,37,6265,7290), +(7917,37,6266,7291), +(7918,37,6267,7292), +(7919,37,6268,7292), +(7920,37,6269,7293), +(7921,37,6270,7294), +(7922,37,6271,7295), +(7923,37,6272,7296), +(7924,37,6273,7297), +(7925,37,6274,7298), +(7926,37,6275,7299), +(7927,37,3751,7300), +(7928,37,6276,7301), +(7929,37,6277,7302), +(7930,37,6278,7303), +(7931,37,6279,7304), +(7932,37,2076,7305), +(7933,37,6280,7306), +(7934,37,6281,7307), +(7935,37,6282,7308), +(7936,37,6283,7309), +(7937,37,6284,7310), +(7938,37,13,7311), +(7939,37,349,7312), +(7940,37,349,7313), +(7941,37,349,7314), +(7942,37,13,7315), +(7943,37,27,7316), +(7944,37,5684,7317), +(7945,37,6285,7318), +(7946,37,6286,7319), +(7947,37,27,7320), +(7948,37,6287,7321), +(7949,37,29,7322), +(7950,37,6288,7323), +(7951,37,474,7324), +(7952,37,6289,7325), +(7953,37,6290,7326), +(7954,37,6291,7327), +(7955,37,6292,7328), +(7956,37,6293,7329), +(7957,37,3776,7329), +(7958,37,536,7330), +(7959,37,6294,7331), +(7960,37,60,7332), +(7961,37,6295,7333), +(7962,37,6296,7334), +(7963,37,6297,7335), +(7964,37,1798,7336), +(7965,37,481,7337), +(7966,37,6298,7338), +(7967,37,6299,7339), +(7968,37,6300,7340), +(7969,37,1163,7341), +(7970,37,6301,7342), +(7971,37,6302,7343), +(7972,37,2154,7344), +(7973,37,6303,7345), +(7974,37,130,7346), +(7975,37,6304,7347), +(7976,37,130,7348), +(7977,37,6305,7349), +(7978,37,6306,7350), +(7979,37,6307,7351), +(7980,37,2272,7352), +(7981,37,6308,7353), +(7982,37,2838,7354), +(7983,37,1360,7355), +(7984,37,2082,7356), +(7985,37,6309,7357), +(7986,37,6310,7358), +(7987,37,6311,7359), +(7988,37,6312,7359), +(7989,37,6313,7360), +(7990,37,6314,7361), +(7991,37,6315,7362), +(7992,37,6316,7363), +(7993,37,6317,7364), +(7994,37,6318,7364), +(7995,37,6319,7365), +(7996,37,6320,7366), +(7997,37,6321,7367), +(7998,37,1273,7368), +(7999,37,6322,7369), +(8000,37,6323,7370), +(8001,37,6324,7371), +(8002,37,6325,7372), +(8003,37,6326,7373), +(8004,37,3310,7374), +(8005,37,6327,7375), +(8006,37,6328,7376), +(8007,37,6329,7377), +(8008,37,6330,7378), +(8009,37,6331,7379), +(8010,37,6332,7380), +(8011,37,6333,7381), +(8012,37,6334,7382), +(8013,37,4041,7383), +(8014,37,3978,7384), +(8015,37,942,7385), +(8016,37,6335,7386), +(8017,37,2721,7387), +(8018,37,6336,7388), +(8019,37,6337,7389), +(8020,37,6338,7390), +(8021,37,2071,7391), +(8022,37,598,7392), +(8023,37,6339,7393), +(8024,37,6340,7394), +(8025,37,6341,7394), +(8026,37,6342,7394), +(8027,37,6343,7395), +(8028,37,280,7396), +(8029,37,280,7397), +(8030,37,280,7398), +(8031,37,280,7399), +(8032,37,287,7400), +(8033,37,6344,7401), +(8034,37,280,7402), +(8035,37,280,7403), +(8036,37,6345,7404), +(8037,37,6346,7405), +(8038,37,6347,7406), +(8039,37,3185,7407), +(8040,37,6348,7408), +(8041,37,6349,7409), +(8042,37,6350,7410), +(8043,37,6351,7411), +(8044,37,111,7412), +(8045,37,111,7413), +(8046,37,6352,7414), +(8047,37,6353,7415), +(8048,37,6354,7416), +(8049,37,6355,7417), +(8050,37,6356,7418), +(8051,37,6357,7419), +(8052,37,6358,7420), +(8053,37,6359,7421), +(8054,37,6360,7422), +(8055,37,6361,7423), +(8056,37,6362,7424), +(8057,37,3834,7425), +(8058,37,6363,7426), +(8059,37,1739,7427), +(8060,37,6364,7428), +(8061,37,1714,7429), +(8062,37,5760,7430), +(8063,37,2076,7431), +(8064,37,974,7432), +(8065,37,976,7433), +(8066,37,6365,7434), +(8067,37,976,7435), +(8068,37,6366,7436), +(8069,37,349,7437), +(8070,37,6367,7438), +(8071,37,6368,7439), +(8072,37,1819,7440), +(8073,37,6369,7441), +(8074,37,29,7442), +(8075,37,29,7443), +(8076,37,6370,7444), +(8077,37,1564,7445), +(8078,37,6371,7446), +(8079,37,6372,7447), +(8080,37,6373,7448), +(8081,37,2552,7449), +(8082,37,91,7450), +(8083,37,6374,7451), +(8084,37,362,7452), +(8085,37,6375,7453), +(8086,37,1007,7454), +(8087,37,364,7455), +(8088,37,360,7456), +(8089,37,360,7457), +(8090,37,1007,7458), +(8091,37,6376,7459), +(8092,37,6377,7460), +(8093,37,91,7461), +(8094,37,6378,7462), +(8095,37,6379,7463), +(8096,37,6380,7464), +(8097,37,6381,7465), +(8098,37,6382,7466), +(8099,37,1428,7467), +(8100,37,6383,7468), +(8101,37,6384,7469), +(8102,37,185,7470), +(8103,37,185,7471), +(8104,37,184,7472), +(8105,37,6385,7473), +(8106,37,6386,7474), +(8107,37,190,7475), +(8108,37,6387,7476), +(8109,37,6388,7477), +(8110,37,6389,7478), +(8111,37,6390,7479), +(8112,37,1436,7480), +(8113,37,6391,7481), +(8114,37,649,7482), +(8115,37,6392,7483), +(8116,37,6393,7484), +(8117,37,6394,7485), +(8118,37,6395,7486), +(8119,37,6396,7487), +(8120,37,6397,7487), +(8121,37,6398,7488), +(8122,37,6399,7489), +(8123,37,6400,7490), +(8124,37,6401,7491), +(8125,37,6402,7492), +(8126,37,6403,7493), +(8127,37,6404,7494), +(8128,37,4632,7495), +(8129,37,6405,7496), +(8130,37,6406,7497), +(8131,37,6407,7498), +(8132,37,6408,7498), +(8133,37,6409,7498), +(8134,37,6410,7499), +(8135,37,6411,7500), +(8136,37,229,7501), +(8137,37,1459,7502), +(8138,37,6412,7503), +(8139,37,2346,7504), +(8140,37,6413,7505), +(8141,37,6414,7505), +(8142,37,6415,7506), +(8143,37,6416,7507), +(8144,37,6417,7508), +(8145,37,6418,7509), +(8146,37,6419,7509), +(8147,37,1537,7510), +(8148,37,6420,7511), +(8149,37,6421,7512), +(8150,37,6422,7513), +(8151,37,513,7514), +(8152,37,6423,7515), +(8153,37,6424,7516), +(8154,37,6425,7517), +(8155,37,6426,7518), +(8156,37,6427,7518), +(8157,37,6428,7519), +(8158,37,6429,7520), +(8159,37,6430,7521), +(8160,37,6431,7522), +(8161,37,1087,7523), +(8162,37,6432,7524), +(8163,37,260,7525), +(8164,37,6433,7526), +(8165,37,6434,7527), +(8166,37,6435,7528), +(8167,37,6436,7529), +(8168,37,260,7530), +(8169,37,6437,7531), +(8170,37,6438,7532), +(8171,37,260,7533), +(8172,37,6439,7534), +(8173,37,6440,7535), +(8174,37,260,7536), +(8175,37,6441,7537), +(8176,37,6442,7538), +(8177,37,260,7539), +(8178,37,6443,7540), +(8179,37,6444,7541), +(8180,37,6445,7542), +(8181,37,6446,7543), +(8182,37,6447,7544), +(8183,37,6448,7545), +(8184,37,6449,7546), +(8185,37,6450,7547), +(8186,37,2458,7548), +(8187,37,6451,7549), +(8188,37,6452,7549), +(8189,37,6453,7550), +(8190,37,6454,7551), +(8191,37,2184,7552), +(8192,37,6455,7553), +(8193,37,6456,7554), +(8194,37,6457,7555), +(8195,37,6458,7556), +(8196,37,6459,7557), +(8197,37,6460,7558), +(8198,37,6461,7559), +(8199,37,6462,7559), +(8200,37,6463,7560), +(8201,37,6464,7561), +(8202,37,6465,7562), +(8203,37,3320,7563), +(8204,37,6466,7564), +(8205,37,6467,7565), +(8206,37,6468,7566), +(8207,37,302,7567), +(8208,37,6469,7568), +(8209,37,6470,7569), +(8210,37,6471,7570), +(8211,37,6472,7571), +(8212,37,6473,7572), +(8213,37,6474,7573), +(8214,37,6475,7574), +(8215,37,6476,7575), +(8216,37,6477,7576), +(8217,37,6478,7577), +(8218,37,6479,7578), +(8219,37,6480,7579), +(8220,37,319,7580), +(8221,37,316,7581), +(8222,37,6481,7582), +(8223,37,6482,7583), +(8224,37,6483,7584), +(8225,37,6484,7585), +(8226,37,6485,7586), +(8227,37,6486,7587), +(8228,37,6487,7588), +(8229,37,1504,7589), +(8230,37,6488,7590), +(8231,37,6489,7591), +(8232,37,6490,7592), +(8233,37,5868,7593), +(8234,37,6491,7594), +(8235,37,444,7594), +(8236,37,2966,7594), +(8237,37,6492,7595), +(8238,37,6493,7596), +(8239,37,2811,7597), +(8240,37,3799,7598), +(8241,37,522,7599), +(8242,37,6494,7600), +(8243,37,3799,7601), +(8244,37,6495,7602), +(8245,37,6496,7603), +(8246,37,5066,7604), +(8247,37,6497,7605), +(8248,37,6498,7606), +(8249,37,1510,7607), +(8250,37,6499,7608), +(8251,37,6500,7609), +(8252,37,6501,7610), +(8253,37,6502,7611), +(8254,37,6503,7612), +(8255,37,6504,7613), +(8256,37,6505,7614), +(8257,37,6506,7615), +(8258,37,6507,7616), +(8259,37,6508,7617), +(8260,37,6509,7618), +(8261,37,6510,7619), +(8262,37,6511,7619), +(8263,37,6512,7619), +(8264,37,6513,7620), +(8265,37,5489,7621), +(8266,37,6514,7622), +(8267,37,6515,7623), +(8268,37,6516,7624), +(8269,37,6517,7625), +(8270,37,6518,7626), +(8271,37,6519,7627), +(8272,37,6520,7628), +(8273,37,919,7629), +(8274,37,6521,7630), +(8275,37,6522,7631), +(8276,37,6523,7632), +(8277,37,6524,7633), +(8278,37,6525,7634), +(8279,37,6526,7635), +(8280,37,578,7636), +(8281,37,6527,7637), +(8282,37,6528,7637), +(8283,37,6529,7637), +(8284,37,141,7638), +(8285,37,6530,7639), +(8286,37,1351,7640), +(8287,37,6531,7641), +(8288,37,6532,7642), +(8289,37,6533,7643), +(8290,37,6534,7644), +(8291,37,6535,7645), +(8292,37,6536,7646), +(8293,37,6537,7647), +(8294,37,6538,7648), +(8295,37,6539,7649), +(8296,37,6540,7650), +(8297,37,6541,7651), +(8298,37,6542,7652), +(8299,37,942,7653), +(8300,37,6543,7654), +(8301,37,6544,7655), +(8302,37,6545,7656), +(8303,37,6546,7657), +(8304,37,6547,7658), +(8305,37,6548,7659), +(8306,37,5589,7660), +(8307,37,6549,7661), +(8308,37,6550,7662), +(8309,37,4609,7663), +(8310,37,6551,7664), +(8311,37,6552,7664), +(8312,37,6553,7664), +(8313,37,6554,7665), +(8314,37,2306,7666), +(8315,37,2725,7667), +(8316,37,6555,7668), +(8317,37,1675,7669), +(8318,37,177,7670), +(8319,37,1177,7671), +(8320,37,6556,7672), +(8321,37,2988,7673), +(8322,37,280,7674), +(8323,37,280,7675), +(8324,37,6557,7676), +(8325,37,6558,7677), +(8326,37,6559,7678), +(8327,37,280,7679), +(8328,37,6560,7680), +(8329,37,280,7681), +(8330,37,6561,7682), +(8331,37,6562,7683), +(8332,37,6563,7684), +(8333,37,6564,7685), +(8334,37,6565,7686), +(8335,37,6566,7687), +(8336,37,6567,7688), +(8337,37,6568,7689), +(8338,37,2030,7690), +(8339,37,6569,7691), +(8340,37,6570,7692), +(8341,37,6571,7693), +(8342,37,3362,7694), +(8343,37,6572,7695), +(8344,37,6573,7696), +(8345,37,6574,7697), +(8346,37,6575,7698), +(8347,37,6576,7699), +(8348,37,6577,7700), +(8349,37,119,7701), +(8350,37,6578,7702), +(8351,37,6579,7703), +(8352,37,6580,7704), +(8353,37,6581,7705), +(8354,37,6582,7706), +(8355,37,274,7707), +(8356,37,6583,7708), +(8357,37,6584,7709), +(8358,37,6585,7710), +(8359,37,5619,7711), +(8360,37,6586,7712), +(8361,37,6587,7713), +(8362,37,6588,7714), +(8363,37,6589,7715), +(8364,37,4671,7716), +(8365,37,6590,7717), +(8366,37,397,7718), +(8367,37,107,7719), +(8368,37,6591,7720), +(8369,37,6592,7721), +(8370,37,319,7722), +(8371,37,319,7723), +(8372,37,6593,7724), +(8373,37,6594,7725), +(8374,37,6595,7726), +(8375,37,649,7727), +(8376,37,111,7728), +(8377,37,6596,7729), +(8378,37,6597,7729), +(8379,37,182,7730), +(8380,37,4362,7731), +(8381,37,1238,7732), +(8382,37,6598,7733), +(8383,37,6599,7734), +(8384,37,6600,7735), +(8385,37,6601,7736), +(8386,37,4690,7737), +(8387,37,6602,7738), +(8388,37,6603,7739), +(8389,37,6604,7739), +(8390,37,6605,7739), +(8391,37,6606,7740), +(8392,37,3148,7741), +(8393,37,69,7742), +(8394,37,1428,7743), +(8395,37,6607,7744), +(8396,37,6608,7745), +(8397,37,4543,7746), +(8398,37,6609,7747), +(8399,37,6610,7748), +(8400,37,5693,7749), +(8401,37,6611,7750), +(8402,37,6612,7751), +(8403,37,6613,7752), +(8404,37,6614,7753), +(8405,37,184,7754), +(8406,37,194,7755), +(8407,37,190,7756), +(8408,37,195,7757), +(8409,37,6615,7758), +(8410,37,6616,7759), +(8411,37,6617,7760), +(8412,37,1024,7761), +(8413,37,6618,7762), +(8414,37,6619,7763), +(8415,37,6620,7764), +(8416,37,6621,7765), +(8417,37,6622,7766), +(8418,37,202,7767), +(8419,37,6623,7768), +(8420,37,6624,7769), +(8421,37,6625,7770), +(8422,37,5121,7771), +(8423,37,6626,7772), +(8424,37,6627,7773), +(8425,37,6628,7774), +(8426,37,6629,7775), +(8427,37,6630,7776), +(8428,37,6631,7777), +(8429,37,6632,7777), +(8430,37,6633,7778), +(8431,37,6634,7779), +(8432,37,4575,7780), +(8433,37,6635,7781), +(8434,37,6636,7782), +(8435,37,6637,7783), +(8436,37,6638,7784), +(8437,37,6639,7785), +(8438,37,816,7786), +(8439,37,6640,7787), +(8440,37,6641,7788), +(8441,37,6642,7789), +(8442,37,229,7790), +(8443,37,1705,7791), +(8444,37,6643,7791), +(8445,37,5582,7792), +(8446,37,6644,7793), +(8447,37,6645,7794), +(8448,37,6646,7795), +(8449,37,6647,7796), +(8450,37,1725,7797), +(8451,37,6648,7798), +(8452,37,6649,7799), +(8453,37,6650,7800), +(8454,37,6651,7801), +(8455,37,6652,7802), +(8456,37,6653,7803), +(8457,37,2076,7804), +(8458,37,6654,7805), +(8459,37,349,7806), +(8460,37,349,7807), +(8461,37,11,7808), +(8462,37,6655,7809), +(8463,37,6656,7810), +(8464,37,6657,7810), +(8465,37,6658,7810), +(8466,37,6659,7810), +(8467,37,6660,7810), +(8468,37,6661,7810), +(8469,37,6662,7811), +(8470,37,6663,7811), +(8471,37,6664,7811), +(8472,37,27,7812), +(8473,37,982,7813), +(8474,37,23,7814), +(8475,37,6665,7815), +(8476,37,6666,7815), +(8477,37,5925,7815), +(8478,37,6667,7815), +(8479,37,6668,7815), +(8480,37,357,7816), +(8481,37,987,7817), +(8482,37,678,7818), +(8483,37,6669,7819), +(8484,37,6670,7820), +(8485,37,6671,7821), +(8486,37,6672,7821), +(8487,37,6673,7822), +(8488,37,6674,7823), +(8489,37,6675,7823), +(8490,37,6676,7823), +(8491,37,6677,7824), +(8492,37,6678,7825), +(8493,37,1079,7826), +(8494,37,6679,7827), +(8495,37,6680,7828), +(8496,37,383,7829), +(8497,37,6681,7830), +(8498,37,6682,7831), +(8499,37,1979,7832), +(8500,37,6683,7833), +(8501,37,260,7834), +(8502,37,6684,7835), +(8503,37,260,7836), +(8504,37,6685,7837), +(8505,37,6686,7838), +(8506,37,6687,7838), +(8507,37,6688,7839), +(8508,37,6689,7839), +(8509,37,6690,7840), +(8510,37,6691,7841), +(8511,37,6692,7842), +(8512,37,6693,7843), +(8513,37,6694,7844), +(8514,37,6695,7845), +(8515,37,6696,7846), +(8516,37,6697,7847), +(8517,37,6698,7848), +(8518,37,6699,7849), +(8519,37,6700,7850), +(8520,37,6701,7851), +(8521,37,6702,7852), +(8522,37,69,7853), +(8523,37,519,7854), +(8524,37,6703,7855), +(8525,37,2800,7856), +(8526,37,6704,7857), +(8527,37,522,7858), +(8528,37,6705,7859), +(8529,37,6706,7860), +(8530,37,6707,7861), +(8531,37,1798,7862), +(8532,37,6708,7863), +(8533,37,6709,7864), +(8534,37,6710,7865), +(8535,37,6711,7866), +(8536,37,6712,7867), +(8537,37,6713,7868), +(8538,37,183,7869), +(8539,37,6714,7870), +(8540,37,6715,7871), +(8541,37,6716,7872), +(8542,37,6717,7873), +(8543,37,6718,7874), +(8544,37,6719,7875), +(8545,37,5479,7876), +(8546,37,6720,7877), +(8547,37,6721,7878), +(8548,37,6722,7879), +(8549,37,6723,7880), +(8550,37,6724,7881), +(8551,37,6725,7882), +(8552,37,6726,7883), +(8553,37,362,7884), +(8554,37,33,7885), +(8555,37,6727,7886), +(8556,37,6728,7887), +(8557,37,6729,7888), +(8558,37,6730,7889), +(8559,37,709,7890), +(8560,37,6731,7891), +(8561,37,6732,7892), +(8562,37,6733,7893), +(8563,37,60,7894), +(8564,37,6734,7895), +(8565,37,6735,7896), +(8566,37,6736,7897), +(8567,37,6737,7898), +(8568,37,1551,7899), +(8569,37,6738,7900), +(8570,37,6739,7901), +(8571,37,661,7902), +(8572,37,6740,7903), +(8573,37,219,7904), +(8574,37,6741,7904), +(8575,37,6742,7905), +(8576,37,6743,7906), +(8577,37,6744,7907), +(8578,37,6745,7908), +(8579,37,6746,7909), +(8580,37,919,7910), +(8581,37,6747,7911), +(8582,37,6748,7911), +(8583,37,6749,7912), +(8584,37,6750,7913), +(8585,37,6751,7914), +(8586,37,6752,7915), +(8587,37,578,7916), +(8588,37,6753,7917), +(8589,37,6754,7918), +(8590,37,6755,7919), +(8591,37,6756,7920), +(8592,37,6757,7921), +(8593,37,6758,7922), +(8594,37,6759,7923), +(8595,37,6760,7924), +(8596,37,6761,7925), +(8597,37,942,7926), +(8598,37,942,7927), +(8599,37,942,7928), +(8600,37,6762,7929), +(8601,37,6763,7929), +(8602,37,6764,7929), +(8603,37,6765,7930), +(8604,37,6766,7931), +(8605,37,1413,7932), +(8606,37,1678,7933), +(8607,37,6767,7934), +(8608,37,6768,7935), +(8609,37,1681,7936), +(8610,37,6769,7937), +(8611,37,6770,7938), +(8612,37,6771,7939), +(8613,37,6772,7940), +(8614,37,6773,7941), +(8615,37,6774,7941), +(8616,37,260,7942), +(8617,37,1079,7943), +(8618,37,6775,7944), +(8619,37,6776,7945), +(8620,37,6777,7946), +(8621,37,6778,7947), +(8622,37,383,7948), +(8623,37,6779,7949), +(8624,37,260,7950), +(8625,37,161,7951), +(8626,37,6780,7952), +(8627,37,260,7953), +(8628,37,6781,7954), +(8629,37,6782,7955), +(8630,37,260,7956), +(8631,37,260,7957), +(8632,37,6783,7958), +(8633,37,6784,7959), +(8634,37,6785,7960), +(8635,37,6786,7961), +(8636,37,265,7962), +(8637,37,6787,7963), +(8638,37,260,7964), +(8639,37,6788,7965), +(8640,37,6789,7966), +(8641,37,6790,7967), +(8642,37,6791,7968), +(8643,37,6792,7969), +(8644,37,1314,7970), +(8645,37,6793,7971), +(8646,37,6794,7972), +(8647,37,6795,7973), +(8648,37,6796,7973), +(8649,37,6797,7974), +(8650,37,6798,7975), +(8651,37,6799,7976), +(8652,37,6800,7977), +(8653,37,6801,7978), +(8654,37,6802,7979), +(8655,37,6803,7980), +(8656,37,6804,7981), +(8657,37,6805,7981), +(8658,37,6806,7982), +(8659,37,6807,7983), +(8660,37,6808,7984), +(8661,37,6809,7985), +(8662,37,6810,7986), +(8663,37,6811,7987), +(8664,37,6812,7987), +(8665,37,280,7988), +(8666,37,6813,7989), +(8667,37,280,7990), +(8668,37,5071,7991), +(8669,37,6814,7992), +(8670,37,6815,7992), +(8671,37,6816,7993), +(8672,37,6817,7994), +(8673,37,6818,7995), +(8674,37,6819,7996), +(8675,37,6820,7997), +(8676,37,6821,7998), +(8677,37,6822,7999), +(8678,37,2318,8000), +(8679,37,6823,8001), +(8680,37,6824,8002), +(8681,37,6825,8003), +(8682,37,792,8004), +(8683,37,6826,8005), +(8684,37,441,8006), +(8685,37,6827,8007), +(8686,37,6828,8008), +(8687,37,200,8009), +(8688,37,202,8010), +(8689,37,6829,8011), +(8690,37,202,8012), +(8691,37,5121,8013), +(8692,37,6830,8014), +(8693,37,397,8015), +(8694,37,6831,8016), +(8695,37,6832,8017), +(8696,37,6833,8018), +(8697,37,6834,8018), +(8698,37,6835,8019), +(8699,37,2801,8020), +(8700,37,6836,8021), +(8701,37,6837,8021), +(8702,37,6838,8022), +(8703,37,6839,8023), +(8704,37,6840,8023), +(8705,37,6841,8024), +(8706,37,6842,8025), +(8707,37,6843,8026), +(8708,37,6844,8027), +(8709,37,6845,8028), +(8710,37,6846,8029), +(8711,37,6847,8030), +(8712,37,6848,8031), +(8713,37,236,8032), +(8714,37,6849,8033), +(8715,37,6850,8034), +(8716,37,6851,8035), +(8717,37,6852,8036), +(8718,37,6547,8037), +(8719,37,6853,8038), +(8720,37,1724,8039), +(8721,37,6854,8040), +(8722,37,6855,8041), +(8723,37,6856,8042), +(8724,37,6857,8043), +(8725,37,6858,8044), +(8726,37,6859,8045), +(8727,37,6860,8046), +(8728,37,6861,8047), +(8729,37,6862,8048), +(8730,37,6863,8049), +(8731,37,6864,8050), +(8732,37,6865,8051), +(8733,37,6866,8052), +(8734,37,6867,8053), +(8735,37,6868,8054), +(8736,37,6869,8055), +(8737,37,6870,8056), +(8738,37,6720,8057), +(8739,37,6871,8058), +(8740,37,6872,8059), +(8741,37,2202,8060), +(8742,37,6873,8060), +(8743,37,6874,8061), +(8744,37,6875,8062), +(8745,37,111,8063), +(8746,37,6876,8064), +(8747,37,111,8065), +(8748,37,6877,8066), +(8749,37,6878,8067), +(8750,37,6879,8068), +(8751,37,6880,8069), +(8752,37,6881,8070), +(8753,37,6882,8071), +(8754,37,6883,8072), +(8755,37,276,8073), +(8756,37,3133,8074), +(8757,37,6884,8075), +(8758,37,1413,8076), +(8759,37,6885,8077), +(8760,37,6886,8077), +(8761,37,963,8078), +(8762,37,654,8079), +(8763,37,654,8080), +(8764,37,3834,8081), +(8765,37,6887,8082), +(8766,37,6888,8083), +(8767,37,6889,8083), +(8768,37,4067,8084), +(8769,37,6890,8085), +(8770,37,6891,8086), +(8771,37,6892,8087), +(8772,37,2079,8088), +(8773,37,6893,8089), +(8774,37,2539,8090), +(8775,37,349,8091), +(8776,37,349,8092), +(8777,37,1487,8093), +(8778,37,6894,8094), +(8779,37,13,8095), +(8780,37,4352,8096), +(8781,37,1819,8097), +(8782,37,6895,8098), +(8783,37,6896,8099), +(8784,37,6897,8100), +(8785,37,33,8101), +(8786,37,362,8102), +(8787,37,6898,8103), +(8788,37,6899,8104), +(8789,37,6900,8104), +(8790,37,711,8105), +(8791,37,6901,8106), +(8792,37,364,8107), +(8793,37,6902,8108), +(8794,37,6903,8109), +(8795,37,6904,8110), +(8796,37,6905,8111), +(8797,37,6906,8112), +(8798,37,6907,8113), +(8799,37,6908,8114), +(8800,37,6909,8115), +(8801,37,481,8116), +(8802,37,6910,8117), +(8803,37,6911,8118), +(8804,37,6912,8119), +(8805,37,6913,8120), +(8806,37,6914,8121), +(8807,37,6915,8122), +(8808,37,6916,8123), +(8809,37,6917,8124), +(8810,37,6918,8125), +(8811,37,6919,8126), +(8812,37,6920,8127), +(8813,37,4962,8128), +(8814,37,6921,8129), +(8815,37,6922,8130), +(8816,37,6923,8131), +(8817,37,6087,8132), +(8818,37,6924,8133), +(8819,37,6925,8134), +(8820,37,6926,8135), +(8821,37,6927,8136), +(8822,37,6928,8137), +(8823,37,3428,8138), +(8824,37,6929,8138), +(8825,37,534,8139), +(8826,37,6930,8140), +(8827,37,6931,8141), +(8828,37,6932,8142), +(8829,37,6933,8143), +(8830,37,6934,8144), +(8831,37,6935,8145), +(8832,37,6936,8146), +(8833,37,6937,8147), +(8834,37,6938,8148), +(8835,37,6939,8149), +(8836,37,6940,8150), +(8837,37,6941,8151), +(8838,37,6942,8152), +(8839,37,6943,8153), +(8840,37,6944,8154), +(8841,37,522,8155), +(8842,37,6945,8156), +(8843,37,2869,8157), +(8844,37,1007,8158), +(8845,37,6946,8159), +(8846,37,6947,8160), +(8847,37,6948,8161), +(8848,37,6949,8162), +(8849,37,6950,8163), +(8850,37,91,8164), +(8851,37,6951,8165), +(8852,37,6952,8166), +(8853,37,6953,8167), +(8854,37,6954,8168); +/*!40000 ALTER TABLE `address` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `addressesview` +-- + +DROP TABLE IF EXISTS `addressesview`; +/*!50001 DROP VIEW IF EXISTS `addressesview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `addressesview` AS SELECT + 1 AS `countryid`, + 1 AS `cityid`, + 1 AS `postcodeid`, + 1 AS `Land`, + 1 AS `Stadt`, + 1 AS `PLZ` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `applicants` +-- + +DROP TABLE IF EXISTS `applicants`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `applicants` ( + `id` varchar(40) NOT NULL, + `title` smallint(6) DEFAULT 0, + `first_name` varchar(255) NOT NULL, + `last_name` varchar(255) NOT NULL, + `street` varchar(255) DEFAULT NULL, + `house_number` varchar(255) DEFAULT NULL, + `zip_code` int(11) DEFAULT NULL, + `phone_number` varchar(255) DEFAULT NULL, + `mobile_number` varchar(255) DEFAULT NULL, + `email_address` varchar(255) DEFAULT NULL, + `salutation` text NOT NULL, + PRIMARY KEY (`id`), + KEY `zip_code` (`zip_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `applicants` +-- + +LOCK TABLES `applicants` WRITE; +/*!40000 ALTER TABLE `applicants` DISABLE KEYS */; +/*!40000 ALTER TABLE `applicants` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `applicantview` +-- + +DROP TABLE IF EXISTS `applicantview`; +/*!50001 DROP VIEW IF EXISTS `applicantview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `applicantview` AS SELECT + 1 AS `EmployeeId`, + 1 AS `Aktenzeichen`, + 1 AS `Vorname`, + 1 AS `Nachname`, + 1 AS `Anrede`, + 1 AS `Mobil`, + 1 AS `Telefon`, + 1 AS `Email`, + 1 AS `Beschäftigungsverhältnis`, + 1 AS `Erledigt` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `assignment` +-- + +DROP TABLE IF EXISTS `assignment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `assignment` ( + `contractid` int(11) NOT NULL AUTO_INCREMENT, + `employeeid` int(11) NOT NULL, + UNIQUE KEY `assignment_unique` (`contractid`), + KEY `assignment_employee_FK` (`employeeid`), + CONSTRAINT `assignment_contract_FK` FOREIGN KEY (`contractid`) REFERENCES `contract` (`contractid`), + CONSTRAINT `assignment_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_estonian_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assignment` +-- + +LOCK TABLES `assignment` WRITE; +/*!40000 ALTER TABLE `assignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `assignment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `bank` +-- + +DROP TABLE IF EXISTS `bank`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `bank` ( + `bankid` int(11) NOT NULL AUTO_INCREMENT, + `bankname` varchar(75) NOT NULL, + PRIMARY KEY (`bankid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `bank` +-- + +LOCK TABLES `bank` WRITE; +/*!40000 ALTER TABLE `bank` DISABLE KEYS */; +/*!40000 ALTER TABLE `bank` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER bank_logger_insert AFTER INSERT ON bank +FOR EACH ROW + CALL logger (new.bankid, 'INSERT', 'bankAccounts() - add a new bank') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `banking` +-- + +DROP TABLE IF EXISTS `banking`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `banking` ( + `bankingid` int(11) NOT NULL AUTO_INCREMENT, + `iban` varchar(150) NOT NULL, + `bankid` int(11) NOT NULL, + `employeeid` int(11) NOT NULL, + PRIMARY KEY (`bankingid`), + UNIQUE KEY `banking_unique` (`iban`), + UNIQUE KEY `banking_unique_1` (`employeeid`), + KEY `banking_bank_FK` (`bankid`), + CONSTRAINT `banking_bank_FK` FOREIGN KEY (`bankid`) REFERENCES `bank` (`bankid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `banking_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `banking` +-- + +LOCK TABLES `banking` WRITE; +/*!40000 ALTER TABLE `banking` DISABLE KEYS */; +/*!40000 ALTER TABLE `banking` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER banking_logger_insert AFTER INSERT ON banking +FOR EACH ROW + CALL logger (new.bankingid, 'INSERT', 'bankAccounts() - add a new bank account') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `business` +-- + +DROP TABLE IF EXISTS `business`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `business` ( + `businessid` int(11) NOT NULL AUTO_INCREMENT, + `company` varchar(100) NOT NULL, + `phone` varchar(50) DEFAULT NULL, + `mobilephone` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `homepage` varchar(255) DEFAULT NULL, + `director` varchar(100) DEFAULT NULL, + `contactpersonid` int(11) DEFAULT NULL, + `info` varchar(500) DEFAULT NULL, + `btid` int(11) DEFAULT 1, + `taxno` varchar(50) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 1, + `locationid` int(11) NOT NULL, + PRIMARY KEY (`businessid`), + UNIQUE KEY `business_unique` (`contactpersonid`), + KEY `business_businesstype_FK` (`btid`), + CONSTRAINT `business_businesstype_FK` FOREIGN KEY (`btid`) REFERENCES `businesstype` (`btypeID`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `business_contactperson_FK` FOREIGN KEY (`contactpersonid`) REFERENCES `contactperson` (`contactpersonid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `business` +-- + +LOCK TABLES `business` WRITE; +/*!40000 ALTER TABLE `business` DISABLE KEYS */; +/*!40000 ALTER TABLE `business` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `businesstype` +-- + +DROP TABLE IF EXISTS `businesstype`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `businesstype` ( + `btypeID` int(11) NOT NULL AUTO_INCREMENT, + `description` varchar(35) NOT NULL, + PRIMARY KEY (`btypeID`), + UNIQUE KEY `businesstype_unique` (`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `businesstype` +-- + +LOCK TABLES `businesstype` WRITE; +/*!40000 ALTER TABLE `businesstype` DISABLE KEYS */; +/*!40000 ALTER TABLE `businesstype` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `city` +-- + +DROP TABLE IF EXISTS `city`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `city` ( + `cityid` int(11) NOT NULL AUTO_INCREMENT, + `city` varchar(50) DEFAULT NULL, + PRIMARY KEY (`cityid`) +) ENGINE=InnoDB AUTO_INCREMENT=6955 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `city` +-- + +LOCK TABLES `city` WRITE; +/*!40000 ALTER TABLE `city` DISABLE KEYS */; +INSERT INTO `city` VALUES +(1,'Herzogenrath'), +(2,'Niederkrüchten'), +(3,'Langerwehe'), +(4,'Schönecken'), +(5,'Dahlem'), +(6,'Welschbillig'), +(7,'Igel'), +(8,'Aach'), +(9,'Lissendorf'), +(10,'Irsch'), +(11,'Neuss'), +(12,'Trier'), +(13,'Düsseldorf'), +(14,'Dinslaken'), +(15,'Antweiler'), +(16,'Aremberg'), +(17,'Dorsel'), +(18,'Eichenbach'), +(19,'Fuchshofen und Müsch'), +(20,'Reifferscheid'), +(21,'Kaltenborn'), +(22,'Wershofen'), +(23,'Saarbrücken'), +(24,'Reinsfeld'), +(25,'Gillenfeld'), +(26,'Velen'), +(27,'Köln'), +(28,'Ettringen'), +(29,'Essen'), +(30,'Bernkastel-Kues'), +(31,'Alflen'), +(32,'Nordhorn'), +(33,'Bonn'), +(34,'Jagsthausen'), +(35,'Oberteuringen'), +(36,'Lenningen'), +(37,'Leutenbach'), +(38,'Wennigsen (Deister)'), +(39,'Schwarmstedt'), +(40,'Kollmar'), +(41,'Pagensand'), +(42,'Dollern'), +(43,'Boffzen'), +(44,'Derental'), +(45,'Königheim'), +(46,'Ehingen (Donau)'), +(47,'Lauterach'), +(48,'Eriskirch'), +(49,'Werbach'), +(50,'Zell unter Aichelberg'), +(51,'Holenberg'), +(52,'Aulendorf'), +(53,'Wangen'), +(54,'Helsa'), +(55,'Eime'), +(56,'Nachrodt-Wiblingwerde'), +(57,'Eschbach'), +(58,'Fürstenau'), +(59,'Ihringen'), +(60,'Iserlohn'), +(61,'Seibersbach'), +(62,'Unna'), +(63,'Guldental'), +(64,'Sankt Goarshausen'), +(65,'Herbolzheim'), +(66,'Kettenkamp'), +(67,'Eggermühlen'), +(68,'Ankum'), +(69,'Hamm'), +(70,'Limburg'), +(71,'Baden-Baden'), +(72,'Grünstadt'), +(73,'Obrigheim (Pfalz)'), +(74,'Rödersheim-Gronau'), +(75,'Heßheim'), +(76,'Sinn'), +(77,'Steinhagen'), +(78,'Goldenstedt'), +(79,'Nastätten'), +(80,'Sembach'), +(81,'Emmerzhausen'), +(82,'Niederdreisbach'), +(83,'Steinebach'), +(84,'Neuhemsbach'), +(85,'Schuttertal'), +(86,'Kirchheimbolanden'), +(87,'Bischheim'), +(88,'Edenkoben'), +(89,'Wiefelstede'), +(90,'Lünen'), +(91,'Dortmund'), +(92,'Dellfeld'), +(93,'Horhausen (Westerwald)'), +(94,'Lauterecken'), +(95,'Emmelshausen'), +(96,'Nortmoor'), +(97,'Neuenburg am Rhein'), +(98,'Steinfurt'), +(99,'Großheide'), +(100,'Hornbach'), +(101,'Leutesdorf'), +(102,'Saffig'), +(103,'Irmenach'), +(104,'Freisen'), +(105,'Rhede (Ems)'), +(106,'Ediger-Eller'), +(107,'Erfurt'), +(108,'Dömitz'), +(109,'Kottgeisering'), +(110,'Ebermannstadt'), +(111,'Nürnberg'), +(112,'Wittenförden'), +(113,'Spatzenhausen'), +(114,'Eberfing'), +(115,'Seeland'), +(116,'Wonsees'), +(117,'Waischenfeld'), +(118,'Schnaittach'), +(119,'Weimar'), +(120,'Bergkirchen'), +(121,'Kinding'), +(122,'Mainleus'), +(123,'Kochel a. See'), +(124,'Puchheim'), +(125,'Reichenschwand'), +(126,'Kirchenlamitz'), +(127,'Köthen'), +(128,'Droyßig'), +(129,'Wetterzeube'), +(130,'Halle/ Saale'), +(131,'Buch a. Buchrain'), +(132,'Steinhöring'), +(133,'Meyenburg'), +(134,'Kümmernitztal'), +(135,'Hohenleuben'), +(136,'Etzenricht'), +(137,'Nabburg'), +(138,'Leuchtenberg'), +(139,'Altendorf'), +(140,'Laberweinting'), +(141,'Leipzig'), +(142,'Lalendorf'), +(143,'Langhagen'), +(144,'Kröning'), +(145,'Oberbergkirchen'), +(146,'Teunz'), +(147,'Pleystein'), +(148,'Chiemsee'), +(149,'Aham'), +(150,'Dingolfing'), +(151,'Rötz'), +(152,'Eilenburg'), +(153,'Ahrenshagen-Daskow'), +(154,'Trinwillershagen'), +(155,'Röbel/Müritz'), +(156,'Machern'), +(157,'Stadlern'), +(158,'Willmering'), +(159,'Torgau'), +(160,'Dreiheide'), +(161,'Tann'), +(162,'Crottendorf'), +(163,'Johanniskirchen'), +(164,'Patersdorf'), +(165,'Potsdam'), +(166,'Wittibreut'), +(167,'Annaberg-Buchholz'), +(168,'Mildenau'), +(169,'Kößlarn'), +(170,'Ruhstorf a.d. Rott'), +(171,'Schlieben'), +(172,'Berlin Charlottenburg'), +(173,'Berlin Steglitz'), +(174,'Berlin Moabit'), +(175,'Neuburg a. Inn'), +(176,'Berlin Mariendorf'), +(177,'Berlin Kreuzberg'), +(178,'Berlin Gesundbrunnen'), +(179,'Perlesreut'), +(180,'Schorfheide'), +(181,'Berlin Friedrichshain'), +(182,'Berlin Neukölln'), +(183,'Gütersloh'), +(184,'Bielefeld'), +(185,'Villingen-Schwenningen'), +(186,'Schwanewede'), +(187,'Wagenfeld'), +(188,'Griesheim'), +(189,'Wetzlar'), +(190,'Bremerhaven'), +(191,'Heppenheim (Bergstraße)'), +(192,'Bad Teinach-Zavelstein'), +(193,'Bretten'), +(194,'Frankfurt am Main'), +(195,'Darmstadt'), +(196,'Diemelsee'), +(197,'Neulingen'), +(198,'Lichtenfels'), +(199,'Rockenberg'), +(200,'Paderborn'), +(201,'Haigerloch'), +(202,'Bremen'), +(203,'Neckargemünd'), +(204,'Mötzingen'), +(205,'Friolzheim'), +(206,'Nordstrand'), +(207,'Elisabeth-Sophien-Koog'), +(208,'Südfall'), +(209,'Hirschhorn'), +(210,'Brombach'), +(211,'Heddesbach'), +(212,'Rabenau'), +(213,'Raddestorf'), +(214,'Hildrizhausen'), +(215,'Eberbach'), +(216,'Erbach'), +(217,'Albstadt'), +(218,'Limeshain'), +(219,'Blomberg'), +(220,'Bückeburg'), +(221,'Willebadessen'), +(222,'Stetten am kalten Markt'), +(223,'Ronneburg'), +(224,'Langwedel'), +(225,'Sigmaringen'), +(226,'Owingen'), +(227,'Reutlingen'), +(228,'Asperg'), +(229,'Stuttgart'), +(230,'Schöllkrippen'), +(231,'Blankenbach'), +(232,'Heilbronn'), +(233,'Schrecksbach'), +(234,'Lautertal'), +(235,'Höxter'), +(236,'Esslingen am Neckar'), +(237,'Heigenbrücken'), +(238,'Neuffen'), +(239,'Hammah'), +(240,'Harsefeld'), +(241,'Hafenlohr'), +(242,'Rothenbuch'), +(243,'Eichenzell'), +(244,'Dörzbach'), +(245,'Hemmingen'), +(246,'Nordstemmen'), +(247,'Ulsnis'), +(248,'Sarstedt'), +(249,'Buchholz in der Nordheide'), +(250,'Borstel-Hohenraden'), +(251,'Hergatz'), +(252,'Kißlegg'), +(253,'Meißner'), +(254,'Giebelstadt'), +(255,'Oberreute'), +(256,'Westerstetten'), +(257,'Bordesholm'), +(258,'Steinheim am Albuch'), +(259,'Eibelstadt'), +(260,'Hamburg'), +(261,'Dietenheim'), +(262,'Bockenem'), +(263,'Gerstungen'), +(264,'Uffenheim'), +(265,'Kiel'), +(266,'Stimpfach'), +(267,'Bröckel'), +(268,'Creuzburg'), +(269,'Schönkirchen'), +(270,'Hermaringen'), +(271,'Vögelsen'), +(272,'Deutsch Evern'), +(273,'Gifhorn'), +(274,'Braunschweig'), +(275,'Drei Gleichen'), +(276,'Schwerin'), +(277,'Scheyern'), +(278,'Sengenthal'), +(279,'Steinwiesen'), +(280,'München'), +(281,'Karlsfeld'), +(282,'Klostermansfeld'), +(283,'Benndorf'), +(284,'Alfeld'), +(285,'Großmehring'), +(286,'Paunzhausen'), +(287,'Magdeburg'), +(288,'Barleben'), +(289,'Reichersbeuern'), +(290,'Wittenberge'), +(291,'Rühstädt'), +(292,'Painten'), +(293,'Parsdorf/Hergolding'), +(294,'Sparneck'), +(295,'Hörgertshausen'), +(296,'Legde/Quitzöbel'), +(297,'Bad Wilsnack'), +(298,'Münchenbernsdorf'), +(299,'Schwarzbach'), +(300,'Bocka'), +(301,'Bleicherode'), +(302,'Wolfenbüttel'), +(303,'Oettingen i. Bay.'), +(304,'Mönchsdeggingen'), +(305,'Themar'), +(306,'Lüder'), +(307,'Ebelsbach'), +(308,'Luisenthal'), +(309,'Ohrdruf'), +(310,'Wolfis'), +(311,'Amberg'), +(312,'Weyhausen'), +(313,'Timmendorfer Strand'), +(314,'Mertingen'), +(315,'Jerxheim'), +(316,'Bamberg'), +(317,'Rohr'), +(318,'Pleinfeld'), +(319,'Augsburg'), +(320,'Hallerndorf'), +(321,'Pappenheim'), +(322,'Garmisch-Partenkirchen (Schneefernerhaus)'), +(323,'Grube'), +(324,'Hollenbach'), +(325,'Kellenhusen'), +(326,'Hagenow'), +(327,'Wriezen'), +(328,'Briesen'), +(329,'Rauen'), +(330,'Bad Schandau'), +(331,'Neutrebbin'), +(332,'Neuhardenberg'), +(333,'Blankensee'), +(334,'Grambow'), +(335,'Guben'), +(336,'Schenkendöbern'), +(337,'Berlin Niederschöneweide'), +(338,'Lauchhammer'), +(339,'Usedom'), +(340,'Goch'), +(341,'Baesweiler'), +(342,'Bleialf'), +(343,'Wachtendonk'), +(344,'Viersen'), +(345,'Ralingen'), +(346,'Kall'), +(347,'Walsdorf'), +(348,'Nohn'), +(349,'Duisburg'), +(350,'Euskirchen'), +(351,'Völklingen'), +(352,'Uelsen'), +(353,'Halle'), +(354,'Gölenkamp'), +(355,'Getelo'), +(356,'Bornheim'), +(357,'Leverkusen'), +(358,'Leichlingen'), +(359,'Quierschied'), +(360,'Bochum'), +(361,'Namborn'), +(362,'Bergisch Gladbach'), +(363,'Wehr'), +(364,'Herne'), +(365,'Dörpen'), +(366,'Lehe'), +(367,'Castrop-Rauxel'), +(368,'Schlier'), +(369,'Eschenbach'), +(370,'Brodersby'), +(371,'Goltoft'), +(372,'Steinfeld'), +(373,'Emkendorf'), +(374,'Winsen (Aller)'), +(375,'Geislingen an der Steige'), +(376,'Oberleichtersbach'), +(377,'Dipperz'), +(378,'Schondra'), +(379,'Hemdingen'), +(380,'Halstenbek'), +(381,'Holzdorf'), +(382,'Kaltenkirchen'), +(383,'Würzburg'), +(384,'Geisa'), +(385,'Bühlertann'), +(386,'Hohenroda'), +(387,'Weidenstetten'), +(388,'Bad Salzdetfurth'), +(389,'Rosenberg'), +(390,'Oberelsbach'), +(391,'Seevetal'), +(392,'Flintbek'), +(393,'Salzhausen'), +(394,'Dettingen an der Iller'), +(395,'Uetze'), +(396,'Celle'), +(397,'Altenstadt'), +(398,'Legau'), +(399,'Herbrechtingen'), +(400,'Rainau'), +(401,'Rickling'), +(402,'Kirchbarkau'), +(403,'Trappenkamp'), +(404,'Pleß'), +(405,'Benningen'), +(406,'Winterrieden'), +(407,'Dinkelsbühl'), +(408,'Mellrichstadt'), +(409,'Feuchtwangen'), +(410,'Grettstadt'), +(411,'Eldingen'), +(412,'Liebenburg'), +(413,'Ziertheim'), +(414,'Kuddewörde'), +(415,'Bienenbüttel'), +(416,'Bad Langensalza'), +(417,'Grönwohld'), +(418,'Waltershausen'), +(419,'Dillingen a.d. Donau'), +(420,'Salgen'), +(421,'Ribbesbüttel'), +(422,'Suhl'), +(423,'Marisfeld'), +(424,'Hohenahr'), +(425,'Dornhan'), +(426,'Gladenbach'), +(427,'Dauchingen'), +(428,'Schopfloch'), +(429,'Reilingen'), +(430,'Langgöns'), +(431,'Rottweil'), +(432,'Haiterbach'), +(433,'Eppelheim'), +(434,'Durchhausen'), +(435,'Rohrdorf'), +(436,'Rimbach'), +(437,'Balgheim'), +(438,'Eppertshausen'), +(439,'Weyhe'), +(440,'Dürbheim'), +(441,'Offenbach am Main'), +(442,'Singen'), +(443,'Waibstadt'), +(444,'Kolbingen'), +(445,'Unter-Hainbrunn'), +(446,'Warburg'), +(447,'Moos'), +(448,'Bad Rappenau'), +(449,'Mainhausen'), +(450,'Bodman-Ludwigshafen'), +(451,'Sersheim'), +(452,'Zwingenberg'), +(453,'Freudental'), +(454,'Erligheim'), +(455,'Sipplingen'), +(456,'Landesbergen'), +(457,'Ulrichstein'), +(458,'Miltenberg'), +(459,'Borgentreich'), +(460,'Ludwigsburg'), +(461,'Aichtal'), +(462,'Ingersheim'), +(463,'Freiberg am Neckar'), +(464,'Geiselbach'), +(465,'Bempflingen'), +(466,'Erfde'), +(467,'Mespelbrunn'), +(468,'Rotenburg'), +(469,'Waiblingen'), +(470,'Ostrach'), +(471,'Silberstedt'), +(472,'Schwittschau'), +(473,'Aichwald'), +(474,'Kassel'), +(475,'Külsheim'), +(476,'Rastede'), +(477,'Schonach im Schwarzwald'), +(478,'Kallstadt'), +(479,'Anröchte'), +(480,'Butjadingen'), +(481,'Wiesbaden'), +(482,'Durmersheim'), +(483,'Wintersheim'), +(484,'Bräunlingen'), +(485,'Freudenstadt'), +(486,'Lemförde'), +(487,'Lippstadt'), +(488,'Dillenburg'), +(489,'Donaueschingen'), +(490,'Dudenhofen'), +(491,'Lampertheim'), +(492,'Stockstadt am Rhein'), +(493,'Malsfeld'), +(494,'Visselhövede'), +(495,'Guxhagen'), +(496,'Pfedelbach'), +(497,'Herzhorn'), +(498,'Kamerlanderdeich'), +(499,'Glücksburg'), +(500,'Munkbrarup'), +(501,'Wees'), +(502,'Uhingen'), +(503,'Lohfelden'), +(504,'Berg'), +(505,'Ravensburg'), +(506,'Hollern-Twielenfleth'), +(507,'Westerheim'), +(508,'Hohenwestedt'), +(509,'Untermarchtal'), +(510,'Tolk'), +(511,'Twedt'), +(512,'Dürnau'), +(513,'Hannover'), +(514,'Fischbach'), +(515,'Erfweiler'), +(516,'Bad Bergzabern'), +(517,'Malterdingen'), +(518,'Münster-Sarmsheim'), +(519,'Freiburg im Breisgau'), +(520,'Offenburg'), +(521,'Todtnau'), +(522,'Osnabrück'), +(523,'Rhodt'), +(524,'Nisterau'), +(525,'Siegen'), +(526,'Ramsen'), +(527,'Ohlsbach'), +(528,'Gommersheim'), +(529,'Georgsmarienhütte'), +(530,'Murg'), +(531,'Schluchsee'), +(532,'Raubach'), +(533,'Altena'), +(534,'Lörrach'), +(535,'Bad Ems Umland'), +(536,'Münster'), +(537,'Sendenhorst'), +(538,'Eichstetten'), +(539,'Friesoythe'), +(540,'Rockenhausen'), +(541,'Bisterschied'), +(542,'Montabaur'), +(543,'Gundersweiler'), +(544,'Gonbach'), +(545,'Pfaffenweiler'), +(546,'Winterborn'), +(547,'Waldgrehweiler'), +(548,'Niedermoschel'), +(549,'Nordwalde'), +(550,'Lünne'), +(551,'Schapen'), +(552,'Spelle'), +(553,'Döhlau'), +(554,'Rottenburg a.d. Laaber'), +(555,'Brannenburg'), +(556,'Zeitz'), +(557,'Gutenborn'), +(558,'Landshut'), +(559,'Altdorf'), +(560,'Rosenbach'), +(561,'Gera'), +(562,'Wernberg-Köblitz'), +(563,'Vogtareuth'), +(564,'Hohenberg a.d. Eger'), +(565,'Pegau'), +(566,'Elstertrebnitz'), +(567,'Konnersreuth'), +(568,'Sandersdorf-Brehna'), +(569,'Waldthurn'), +(570,'Tännesberg'), +(571,'Pfatter'), +(572,'Gars am Inn'), +(573,'Premnitz'), +(574,'Neukieritzsch'), +(575,'Deutzen'), +(576,'Neukirchen-Balbini'), +(577,'Rodewisch'), +(578,'Zwickau'), +(579,'Saal'), +(580,'Gräfenhainichen'), +(581,'Traunstein'), +(582,'Ascha'), +(583,'Konzell'), +(584,'Wonneberg'), +(585,'Stollberg/Erzgeb.'), +(586,'Neukalen'), +(587,'Gleißenberg'), +(588,'Mockrehna'), +(589,'Marktl'), +(590,'Teisnach'), +(591,'Seddiner See'), +(592,'Berlin Wannsee'), +(593,'Zwiesel'), +(594,'Berlin Westend'), +(595,'Innernzell'), +(596,'Großbeeren'), +(597,'Berlin-Lichterfelde'), +(598,'Berlin Wedding'), +(599,'Querfurt'), +(600,'Obhausen'), +(601,'Mücheln'), +(602,'Röhrmoos'), +(603,'Vierkirchen'), +(604,'Eisleben'), +(605,'Krölpa'), +(606,'Staßfurt'), +(607,'Guttenberg'), +(608,'Schweitenkirchen'), +(609,'Neufahrn b. Freising'), +(610,'Illschwang'), +(611,'Haar'), +(612,'Teutschenthal'), +(613,'Moosinning'), +(614,'Neustadt a. Kulm'), +(615,'Trabitz'), +(616,'Kastl'), +(617,'Spornitz'), +(618,'Wildenberg'), +(619,'Südharz'), +(620,'Berga'), +(621,'Erxleben'), +(622,'Nordgermersleben'), +(623,'Weilersbach'), +(624,'Brüsewitz'), +(625,'Hedersleben'), +(626,'Pressig'), +(627,'Ahorntal'), +(628,'Aitrang'), +(629,'Burgpreppach'), +(630,'Blekendorf'), +(631,'Hedeper'), +(632,'Wiedergeltingen'), +(633,'Kirchlauter'), +(634,'Gudow'), +(635,'Seßlach'), +(636,'Amt Neuhaus'), +(637,'Stapel'), +(638,'Veilsdorf'), +(639,'Reckendorf'), +(640,'Arnstadt'), +(641,'Genderkingen'), +(642,'Biberau'), +(643,'Masserberg'), +(644,'Spalt'), +(645,'Langenstein'), +(646,'Derenburg'), +(647,'Kinsau'), +(648,'Penzing'), +(649,'Fürth'), +(650,'Röhrnbach'), +(651,'Büchlberg'), +(652,'Berlin Altglienicke'), +(653,'Wolgast'), +(654,'Dresden'), +(655,'Woltersdorf'), +(656,'Rüdersdorf'), +(657,'Bad Saarow-Pieskow'), +(658,'Cottbus'), +(659,'Sohland a. d. Spree'), +(660,'Görlitz'), +(661,'Hagen'), +(662,'Gummersbach'), +(663,'Ochtersum'), +(664,'Mittelbrunn'), +(665,'Queidersbach'), +(666,'Sobernheim'), +(667,'Übach-Palenberg'), +(668,'Kevelaer-Winnekendonk'), +(669,'Krefeld'), +(670,'Bettenfeld'), +(671,'Niederöfflingen'), +(672,'Dillingen/Saar'), +(673,'Oberhausen'), +(674,'Malborn'), +(675,'Adenau'), +(676,'Kottenborn'), +(677,'Wülfrath'), +(678,'Gelsenkirchen'), +(679,'Deuselbach'), +(680,'Hermeskeil'), +(681,'Rorodt'), +(682,'Mehlingen'), +(683,'Mogendorf'), +(684,'Ebernhahn'), +(685,'Staudt'), +(686,'Lohnsfeld'), +(687,'Essen (Oldenburg)'), +(688,'Katzenelnbogen'), +(689,'Bad Säckingen'), +(690,'Steinbach'), +(691,'Weitersweiler'), +(692,'Bennhausen'), +(693,'Mörsfeld'), +(694,'Würzweiler'), +(695,'Ruppertsecken'), +(696,'Feldberg'), +(697,'Carlsberg'), +(698,'Flonheim'), +(699,'Burgschwalbach'), +(700,'Simonswald'), +(701,'Breitnau'), +(702,'Steinweiler'), +(703,'Oelde'), +(704,'Solingen'), +(705,'Büchel'), +(706,'Bad Neuenahr-Ahrweiler'), +(707,'Peterswald-Löffelscheid'), +(708,'Bell'), +(709,'Hattingen'), +(710,'Wermelskirchen'), +(711,'Remscheid'), +(712,'Dickenschied'), +(713,'Südbrookmerland'), +(714,'Fürthen'), +(715,'Kleinmaischeid'), +(716,'Voltlage'), +(717,'Tecklenburg'), +(718,'Freilingen'), +(719,'Freirachdorf'), +(720,'Hattert'), +(721,'Kaiserslautern'), +(722,'Feilbingert'), +(723,'Salzbergen'), +(724,'Westoverledingen'), +(725,'Havixbeck'), +(726,'Bechhofen'), +(727,'Achberg'), +(728,'Deggingen'), +(729,'Appen'), +(730,'Bad Mergentheim'), +(731,'Eiterfeld'), +(732,'Gingen an der Fils'), +(733,'Hochdorf'), +(734,'Kist'), +(735,'Irtenberger Wald'), +(736,'Erlabrunn'), +(737,'Quickborn'), +(738,'Geroldshausen'), +(739,'Hambühren'), +(740,'Lamspringe'), +(741,'Burkardroth'), +(742,'Wildeck'), +(743,'Röthenbach (Allgäu)'), +(744,'Staig'), +(745,'Essingen'), +(746,'Theilheim'), +(747,'Bad Bocklet'), +(748,'Bergtheim'), +(749,'Oberpleichfeld'), +(750,'Katlenburg-Lindau'), +(751,'Frickenhausen'), +(752,'Blaichach'), +(753,'Nahe'), +(754,'Treffurt/Ifta'), +(755,'Kolitzheim'), +(756,'Heere'), +(757,'Bubesheim'), +(758,'Egg an der Günz'), +(759,'Mihla'), +(760,'Herzberg'), +(761,'Elbingerode'), +(762,'Hörden'), +(763,'Schonungen'), +(764,'Sulzfeld'), +(765,'Dürrwangen'), +(766,'Lütjensee'), +(767,'Lüneburg'), +(768,'Gerdau'), +(769,'Markt Bibart'), +(770,'Dingolshausen'), +(771,'Kirchheim in Schwaben'), +(772,'Adendorf'), +(773,'Zarpen'), +(774,'Goslar'), +(775,'Winterbach'), +(776,'Ebeleben'), +(777,'Wesendorf'), +(778,'Groß-Gerau'), +(779,'Nauheim'), +(780,'Karlsruhe'), +(781,'Graben-Neudorf'), +(782,'Büren'), +(783,'Battenberg'), +(784,'Herford'), +(785,'Heuchelheim'), +(786,'Ober-Mörlen'), +(787,'Langen'), +(788,'Linden'), +(789,'Lautertal (Odenwald)'), +(790,'Tuttlingen'), +(791,'Hille'), +(792,'Pforzheim'), +(793,'Zimmern unter der Burg'), +(794,'Staufenberg'), +(795,'Lich'), +(796,'Rödermark'), +(797,'Cölbe'), +(798,'Ebsdorfergrund'), +(799,'Tiefenbronn'), +(800,'Petershagen'), +(801,'Maintal'), +(802,'Risum-Lindholm'), +(803,'Stedesand'), +(804,'Mönsheim'), +(805,'Eschelbronn'), +(806,'Öhningen'), +(807,'Nusplingen'), +(808,'Mossautal'), +(809,'Orsingen-Nenzingen'), +(810,'Diemelstadt'), +(811,'Neuenkirchen'), +(812,'Aglasterhausen'), +(813,'Ladelund'), +(814,'Edertal'), +(815,'Neckargerach'), +(816,'Aschaffenburg'), +(817,'Sulzbach am Main'), +(818,'Dörverden'), +(819,'Behrendorf'), +(820,'Bondelum'), +(821,'Eschau'), +(822,'Eggstedt'), +(823,'Brokdorf'), +(824,'Neukirchen (Knüll)'), +(825,'Kernen im Remstal'), +(826,'Hanerau-Hademarschen'), +(827,'Seefeld'), +(828,'Aspach'), +(829,'Wewelsfleth'), +(830,'Wrohm'), +(831,'Wertheim'), +(832,'Dettingen unter Teck'), +(833,'Öhringen'), +(834,'Insel Poel'), +(835,'Kirchensittenbach'), +(836,'Hummeltal'), +(837,'Pinnow'), +(838,'Neuengönna'), +(839,'Königstein'), +(840,'Ranis'), +(841,'Goldkronach'), +(842,'Schleiz'), +(843,'Tegernsee'), +(844,'Wellheim'), +(845,'Althegnenberg'), +(846,'Raisting'), +(847,'Effeltrich'), +(848,'Steinach'), +(849,'Oberschweinbach'), +(850,'Marktzeuln'), +(851,'Altomünster'), +(852,'Allersberg'), +(853,'Walchensee'), +(854,'Iffeldorf'), +(855,'Rastow'), +(856,'Hettstedt'), +(857,'Endorf'), +(858,'Marktrodach'), +(859,'Lutzingen'), +(860,'Zusmarshausen'), +(861,'Schönewörde'), +(862,'Westheim'), +(863,'Weste'), +(864,'Großaitingen'), +(865,'Gessertshausen'), +(866,'Lübeck'), +(867,'Langerringen'), +(868,'Bad Tennstedt'), +(869,'Wolfsburg'), +(870,'Göhrde'), +(871,'Mitteleschenbach'), +(872,'Landsberg a. Lech'), +(873,'Frensdorf'), +(874,'Alesheim'), +(875,'Peiting'), +(876,'Vilgertshofen'), +(877,'Rain'), +(878,'Helmstedt'), +(879,'Hötensleben'), +(880,'Völpke'), +(881,'Ottleben'), +(882,'Scheßlitz'), +(883,'Dörfles-Esbach'), +(884,'Rockhausen'), +(885,'Klettbach'), +(886,'Meschede'), +(887,'Edesheim'), +(888,'Herxheim'), +(889,'Herborn'), +(890,'Dittelsheim-Heßloch'), +(891,'Dirmstein'), +(892,'Bodenheim'), +(893,'Lauterbach'), +(894,'Westheim (Pfalz)'), +(895,'Lingenfeld'), +(896,'Werther (Westf.)'), +(897,'Biblis'), +(898,'Breidenbach'), +(899,'Solms'), +(900,'Hohenaspe'), +(901,'Fronreute'), +(902,'Fuldatal'), +(903,'Mittelangeln'), +(904,'Hetlingen'), +(905,'Fockbek'), +(906,'Weißbach'), +(907,'Lorch'), +(908,'Heiningen'), +(909,'Plattenburg'), +(910,'Gammelsdorf'), +(911,'Tuntenhausen'), +(912,'Eching'), +(913,'Kiefersfelden'), +(914,'Flintsbach a. Inn'), +(915,'Weiden in der OPf.'), +(916,'Theisseil'), +(917,'Thalmassing'), +(918,'Regensburg'), +(919,'Dessau-Roßlau'), +(920,'Berga/Elster'), +(921,'Schirmitz'), +(922,'Riedering'), +(923,'Treuen'), +(924,'Großpösna'), +(925,'Unterwössen'), +(926,'Kienberg'), +(927,'Wusterhausen'), +(928,'Reit im Winkl'), +(929,'Schönsee'), +(930,'Traunreut'), +(931,'Mamming'), +(932,'Pleiskirchen'), +(933,'Wittenberg'), +(934,'Zschorlau'), +(935,'Brück'), +(936,'Borkheide'), +(937,'Waging a. See'), +(938,'Straßkirchen'), +(939,'Zingst a. Darß'), +(940,'Kirchdorf a. Inn'), +(941,'Pfarrkirchen'), +(942,'Chemnitz'), +(943,'Marktschellenberg'), +(944,'Leubsdorf'), +(945,'Gornau'), +(946,'Augustusburg'), +(947,'Schöfweg'), +(948,'Außernzell'), +(949,'Feldberger Seenlandschaft'), +(950,'Eppenschlag'), +(951,'Berlin Märkisches Viertel'), +(952,'Berlin Rosenthal'), +(953,'Passau'), +(954,'Putbus'), +(955,'Berlin Pankow'), +(956,'Berlin Britz'), +(957,'Waldkirchen'), +(958,'Obernzell'), +(959,'Berlin Köpenick'), +(960,'Uckerland'), +(961,'Groß Luckow'), +(962,'Schönhausen'), +(963,'Königs Wusterhausen'), +(964,'Erkner'), +(965,'Großräschen'), +(966,'Schwedt'), +(967,'Biesendahlshof'), +(968,'Berkholz-Meyenburg'), +(969,'Müllrose'), +(970,'Ostritz'), +(971,'Schönau-Berzdorf'), +(972,'Pronsfeld'), +(973,'Bettingen'), +(974,'Düren'), +(975,'Alpen'), +(976,'Grevenbroich'), +(977,'Meerbusch'), +(978,'Frechen'), +(979,'Raesfeld'), +(980,'Bous'), +(981,'Bausendorf'), +(982,'Bottrop'), +(983,'Thalfang'), +(984,'Lutzerath'), +(985,'Gusenburg'), +(986,'Grafschaft'), +(987,'Velbert'), +(988,'Bad Bertrich'), +(989,'Marl'), +(990,'Hartheim'), +(991,'Wolfstein'), +(992,'Lüdenscheid'), +(993,'Bacharach'), +(994,'Breitscheid'), +(995,'Stromberg'), +(996,'Bahlingen am Kaiserstuhl'), +(997,'Nußbach'), +(998,'Halver'), +(999,'Neuwied'), +(1000,'Simmertal'), +(1001,'Bad Bellingen'), +(1002,'Riesweiler'), +(1003,'Werne'), +(1004,'Neitersen'), +(1005,'Saerbeck'), +(1006,'Spiesen-Elversberg'), +(1007,'Wuppertal'), +(1008,'Blieskastel'), +(1009,'Emden'), +(1010,'Neunkirchen'), +(1011,'Recklinghausen'), +(1012,'Bexbach'), +(1013,'Blankenrath'), +(1014,'Beltheim'), +(1015,'Herschweiler-Pettersheim'), +(1016,'Angelburg'), +(1017,'Fluorn-Winzeln'), +(1018,'Winterberg'), +(1019,'Waghäusel'), +(1020,'Hüttenberg'), +(1021,'Enger'), +(1022,'Ilvesheim'), +(1023,'Steinbach (Taunus)'), +(1024,'Cuxhaven'), +(1025,'Schloß Holte-Stukenbrock'), +(1026,'Bickenbach'), +(1027,'Forst'), +(1028,'Bad Schönborn'), +(1029,'Löhne'), +(1030,'Gießen'), +(1031,'Delmenhorst'), +(1032,'Augustdorf'), +(1033,'Wanna'), +(1034,'Gaiberg'), +(1035,'Schlangen'), +(1036,'Deilingen'), +(1037,'Grasellenbach'), +(1038,'Lobbach'), +(1039,'Amöneburg'), +(1040,'Ahrenshöft'), +(1041,'Großostheim'), +(1042,'Horstedt'), +(1043,'Jesberg'), +(1044,'Gründau'), +(1045,'Überlingen'), +(1046,'Wörth a.Main'), +(1047,'Rantrum'), +(1048,'Gedern'), +(1049,'Willingshausen'), +(1050,'Gemmrigheim'), +(1051,'Linsengericht'), +(1052,'Hechthausen'), +(1053,'Stuttgart/Leinfelden-Echterdingen'), +(1054,'Leidersbach'), +(1055,'Bad Emstal'), +(1056,'Frickingen'), +(1057,'Remseck am Neckar'), +(1058,'Wischhafen'), +(1059,'Hagenburg'), +(1060,'Kirchlinteln'), +(1061,'Abstatt'), +(1062,'Treia'), +(1063,'Ahrenviölfeld'), +(1064,'Habichtswald'), +(1065,'Beilstein'), +(1066,'Kohlberg'), +(1067,'Rethem (Aller)'), +(1068,'Häuslingen'), +(1069,'Frankenfeld'), +(1070,'Schwaikheim'), +(1071,'Ahlerstedt'), +(1072,'Bad Saulgau'), +(1073,'Allmannsweiler'), +(1074,'Königseggwald'), +(1075,'Rodewald'), +(1076,'Wartenberg'), +(1077,'Hoßkirch'), +(1078,'Rosengarten'), +(1079,'Witzenhausen'), +(1080,'Berghülen'), +(1081,'Motten'), +(1082,'Bad Bramstedt'), +(1083,'Isernhagen'), +(1084,'Loose'), +(1085,'Riedenberg'), +(1086,'Bühlerzell'), +(1087,'Hildesheim'), +(1088,'Bieberehren'), +(1089,'Melsdorf'), +(1090,'Norderstedt'), +(1091,'Großharrie'), +(1092,'Jagstzell'), +(1093,'Krayenberggemeinde'), +(1094,'Frauensee'), +(1095,'Toppenstedt'), +(1096,'Heidenheim an der Brenz'), +(1097,'Kellmünz a.d. Iller'), +(1098,'Bastheim'), +(1099,'Lahstedt'), +(1100,'Hattorf'), +(1101,'Dittelbrunn'), +(1102,'Üchtelhausen'), +(1103,'Günzburg'), +(1104,'Lauben'), +(1105,'Langlingen'), +(1106,'Nehms'), +(1107,'Deisenhausen'), +(1108,'Sulzheim'), +(1109,'Bad Liebenstein'), +(1110,'Hamfelde'), +(1111,'Kasseburg'), +(1112,'Köthel'), +(1113,'Rausdorf'), +(1114,'Schönberg'), +(1115,'Wutha-Farnroda'), +(1116,'Lasbek'), +(1117,'Kirchheim am Ries'), +(1118,'Burtenbach'), +(1119,'Lütjenburg'), +(1120,'Unterthingau'), +(1121,'Pronstorf'), +(1122,'Scharnebeck'), +(1123,'Echem'), +(1124,'Lüdersburg'), +(1125,'Rullstorf'), +(1126,'Tabarz/ Thür. Wald'), +(1127,'Lengenwang'), +(1128,'Bidingen'), +(1129,'Ziethen'), +(1130,'Höchstadt a.d.Aisch'), +(1131,'Oberharz am Brocken'), +(1132,'Hurlach'), +(1133,'Rattelsdorf'), +(1134,'Scheuring'), +(1135,'Ebensfeld'), +(1136,'Tagmersheim'), +(1137,'Katzhütte'), +(1138,'Sömmerda'), +(1139,'Schwarzengraben'), +(1140,'St. Alban'), +(1141,'Gerbach'), +(1142,'Lotte'), +(1143,'Herrischried'), +(1144,'Berghaupten'), +(1145,'Bad Schwalbach'), +(1146,'Elzach'), +(1147,'Biederbach'), +(1148,'Winden im Elztal'), +(1149,'Oberrod'), +(1150,'Frankweiler'), +(1151,'Dinklage'), +(1152,'Neustadt an der Weinstraße'), +(1153,'Insheim'), +(1154,'Hatzenbühl'), +(1155,'Hatten'), +(1156,'Weisenheim am Sand'), +(1157,'Hillesheim'), +(1158,'Bad Laasphe'), +(1159,'Rülzheim'), +(1160,'Eschenburg'), +(1161,'Nackenheim'), +(1162,'Hochheim am Main'), +(1163,'Ludwigshafen am Rhein'), +(1164,'Bad Herrenalb'), +(1165,'Hamdorf'), +(1166,'Breitenbach am Herzberg'), +(1167,'Sulzbach an der Murr'), +(1168,'Lichtenwald'), +(1169,'Grünendeich'), +(1170,'Göppingen'), +(1171,'Neubrunn'), +(1172,'Fleckeby'), +(1173,'Langenhagen'), +(1174,'Kaulsdorf'), +(1175,'Schäftlarn'), +(1176,'Baar-Ebenhausen'), +(1177,'Ingolstadt'), +(1178,'Pommelsbrunn'), +(1179,'Kösching'), +(1180,'Schraplau'), +(1181,'Farnstädt'), +(1182,'Etzelwang'), +(1183,'Oberdolling'), +(1184,'Hemau'), +(1185,'Möckern'), +(1186,'Schermen'), +(1187,'Nedlitz'), +(1188,'Gefell'), +(1189,'Weyarn'), +(1190,'Bernitt'), +(1191,'Qualitz'), +(1192,'Warnow'), +(1193,'Zernin'), +(1194,'Hermsdorf'), +(1195,'Crossen'), +(1196,'Heideland'), +(1197,'Ebnath'), +(1198,'Oberaudorf'), +(1199,'Gumtow'), +(1200,'Kyritz'), +(1201,'Plauen'), +(1202,'Windischeschenbach'), +(1203,'Söchtenau'), +(1204,'Adlkofen'), +(1205,'Waldsassen'), +(1206,'Bad Endorf'), +(1207,'Bitterfeld-Wolfen'), +(1208,'Nossentiner Hütte'), +(1209,'Neukirchen/Pleiße'), +(1210,'Neualbenreuth'), +(1211,'Muldenhammer'), +(1212,'Aholfing'), +(1213,'Stamsried'), +(1214,'Stützengrün'), +(1215,'Frontenhausen'), +(1216,'Eibenstock'), +(1217,'Waldenburg'), +(1218,'Waren/ Müritz'), +(1219,'Wurzen'), +(1220,'Fehrbellin'), +(1221,'Halsbach'), +(1222,'Wallersdorf'), +(1223,'Runding'), +(1224,'Niederwinkling'), +(1225,'Grünhain-Beierfeld'), +(1226,'Neuruppin'), +(1227,'Grafenwiesen'), +(1228,'Julbach'), +(1229,'Drebach'), +(1230,'Großrückerswalde'), +(1231,'Gingst'), +(1232,'Berlin Hakenfelde'), +(1233,'Hennigsdorf'), +(1234,'Lommatzsch'), +(1235,'Riesa'), +(1236,'Halsbrücke'), +(1237,'Tittling'), +(1238,'Berlin Lichtenberg'), +(1239,'Sassnitz'), +(1240,'Grainet'), +(1241,'Altenberg'), +(1242,'Karlshagen'), +(1243,'Lübbenau/ Spreewald'), +(1244,'Zeschdorf'), +(1245,'Podelzig'), +(1246,'Lebus'), +(1247,'Großschönau'), +(1248,'Krauschwitz'), +(1249,'Weißkeißel'), +(1250,'Jonsdorf'), +(1251,'Weilheim i. OB'), +(1252,'Eching a. Ammersee'), +(1253,'Oschersleben (Bode)'), +(1254,'Nassenfels'), +(1255,'Haldensleben'), +(1256,'Flechtingen'), +(1257,'Bülstringen'), +(1258,'Egweil'), +(1259,'Sulzemoos'), +(1260,'Erdweg'), +(1261,'Buttstädt'), +(1262,'Großbrembach'), +(1263,'Kleinbrembach'), +(1264,'Weißenbrunn'), +(1265,'Arnstein'), +(1266,'Allstedt'), +(1267,'Gartow'), +(1268,'Penzberg'), +(1269,'Böhmfeld'), +(1270,'Taarstedt'), +(1271,'Barmstedt'), +(1272,'Dornstadt'), +(1273,'Bergen'), +(1274,'Lohheide'), +(1275,'Holtsee'), +(1276,'Lauterstein'), +(1277,'Ronshausen'), +(1278,'Ellerbek'), +(1279,'Bispingen'), +(1280,'Weiler-Simmerberg'), +(1281,'Ulm'), +(1282,'Nentershausen'), +(1283,'Böbingen an der Rems'), +(1284,'Hilders'), +(1285,'Ehrenberg'), +(1286,'Schechingen'), +(1287,'Heringen'), +(1288,'Kirchberg an der Jagst'), +(1289,'Schwendi'), +(1290,'Aichstetten'), +(1291,'Schellerten'), +(1292,'Berkheim'), +(1293,'Struvenhütten'), +(1294,'Fladungen'), +(1295,'Aalen'), +(1296,'Nienhagen'), +(1297,'Stelle'), +(1298,'Ippesheim'), +(1299,'Poppenhausen'), +(1300,'Oerlenbach'), +(1301,'Münnerstadt'), +(1302,'Wettringen'), +(1303,'Kreßberg'), +(1304,'Buchenberg'), +(1305,'Immenstadt im Allgäu'), +(1306,'Peine'), +(1307,'Insingen'), +(1308,'Ohrenbach'), +(1309,'Hohenroth'), +(1310,'Kleinlangheim'), +(1311,'Hawangen'), +(1312,'Siek'), +(1313,'Embsen'), +(1314,'Salzgitter'), +(1315,'Ebershausen'), +(1316,'Untrasried'), +(1317,'Oy-Mittelberg'), +(1318,'Melbeck'), +(1319,'Barnstedt'), +(1320,'Rohlstorf'), +(1321,'Geschendorf'), +(1322,'Thannhausen'), +(1323,'Ellrich'), +(1324,'Barum'), +(1325,'Gerolfingen'), +(1326,'Poxdorf'), +(1327,'Mittelstetten'), +(1328,'Sangerhausen'), +(1329,'Neunkirchen a. Brand'), +(1330,'Wendelstein'), +(1331,'Neuburg an der Donau'), +(1332,'Igensdorf'), +(1333,'Aufseß'), +(1334,'Obersöchering'), +(1335,'Schiltberg'), +(1336,'Gardelegen'), +(1337,'Buxheim'), +(1338,'Antdorf'), +(1339,'Pentenried'), +(1340,'Mühlhausen'), +(1341,'Börde-Hakel'), +(1342,'Hepberg'), +(1343,'Plate'), +(1344,'Rerik'), +(1345,'Bastorf'), +(1346,'Biendorf'), +(1347,'Seubersdorf i.d. OPf.'), +(1348,'Vohburg a.d. Donau'), +(1349,'Attenkirchen'), +(1350,'Höhenkirchen-Siegertsbrunn'), +(1351,'Feldkirchen'), +(1352,'Burg'), +(1353,'Tanna'), +(1354,'Volkenschwand'), +(1355,'Markt Schwaben'), +(1356,'Pielenhofen'), +(1357,'Schwandorf'), +(1358,'Waldershof'), +(1359,'Kolbermoor'), +(1360,'Rosenheim'), +(1361,'Pechbrunn'), +(1362,'Störnstein'), +(1363,'Netzschkau'), +(1364,'Limbach'), +(1365,'Coswig (Anhalt)'), +(1366,'Gars a. Inn'), +(1367,'Wiesent'), +(1368,'Kemberg'), +(1369,'Waidhaus'), +(1370,'Aiterhofen'), +(1371,'Nußdorf'), +(1372,'Falkenfels'), +(1373,'Waffenbrunn'), +(1374,'Rechlin'), +(1375,'Haibach'), +(1376,'Lößnitz'), +(1377,'Chamerau'), +(1378,'Wurmannsquick'), +(1379,'Arnstorf'), +(1380,'Werder/ Havel'), +(1381,'Kremmen'), +(1382,'Roßbach'), +(1383,'Ehrenfriedersdorf'), +(1384,'Döbeln'), +(1385,'Großweitzschen'), +(1386,'Falkenberg/ Elster'), +(1387,'Eppendorf'), +(1388,'Berlin Tegel'), +(1389,'Aicha vorm Wald'), +(1390,'Bobritzsch'), +(1391,'Berlin Mitte'), +(1392,'Marktoberdorf'), +(1393,'Diespeck'), +(1394,'Kaufbeuren'), +(1395,'Wernigerode'), +(1396,'Füssen'), +(1397,'Megesheim'), +(1398,'Merkendorf'), +(1399,'Nordharz'), +(1400,'Gerhardshofen'), +(1401,'Muhr a. See'), +(1402,'Diedorf'), +(1403,'Monheim'), +(1404,'Buchdorf'), +(1405,'Herzogenaurach'), +(1406,'Zarrentin'), +(1407,'Nesse-Apfelstädt'), +(1408,'Nottleben'), +(1409,'Kyffhäuserland'), +(1410,'Oebisfelde'), +(1411,'Erlangen'), +(1412,'Mittenwalde'), +(1413,'Berlin'), +(1414,'Halbe'), +(1415,'Breitenberg'), +(1416,'Calau'), +(1417,'Bronkow'), +(1418,'Oberbarnim'), +(1419,'Märkische Höhe'), +(1420,'Großharthau'), +(1421,'Frankenthal'), +(1422,'Beiersdorf'), +(1423,'Oppach'), +(1424,'Groß-Rohrheim'), +(1425,'Rödinghausen'), +(1426,'Kronberg im Taunus'), +(1427,'Büttelborn'), +(1428,'Mannheim'), +(1429,'Schwalbach am Taunus'), +(1430,'Biebertal'), +(1431,'Birkenfeld'), +(1432,'Oberreichenbach'), +(1433,'Ubstadt-Weiher'), +(1434,'Medebach'), +(1435,'Niebüll'), +(1436,'Heidelberg'), +(1437,'Jettingen'), +(1438,'Habel'), +(1439,'Gröde'), +(1440,'Starzach'), +(1441,'Balingen'), +(1442,'Mühlacker'), +(1443,'Reichelsheim (Odenwald)'), +(1444,'Büsum'), +(1445,'Rangendingen'), +(1446,'Nufringen'), +(1447,'Ehningen'), +(1448,'Radolfzell am Bodensee'), +(1449,'Eberdingen'), +(1450,'Höchst i. Odw.'), +(1451,'Großkrotzenburg'), +(1452,'Brackenheim'), +(1453,'Sankt Annen'), +(1454,'Rehm-Flehde-Bargen'), +(1455,'Markgröningen'), +(1456,'Bönnigheim'), +(1457,'Korntal-Münchingen'), +(1458,'Medelby'), +(1459,'Konstanz'), +(1460,'Glattbach'), +(1461,'Erlenbach a.Main'), +(1462,'Oldendorf'), +(1463,'Kutenholz'), +(1464,'Freiensteinau'), +(1465,'Weibersbrunn'), +(1466,'Rohrbrunner Forst'), +(1467,'Rothenbucher Forst'), +(1468,'Riedlingen'), +(1469,'Burgstetten'), +(1470,'Heinsen'), +(1471,'Steinau an der Straße'), +(1472,'Herbertingen'), +(1473,'Groß Rheide'), +(1474,'Bad Karlshafen'), +(1475,'Gangelt'), +(1476,'Selfkant'), +(1477,'Kevelaer-Mitte'), +(1478,'Kevelaer-Wetten'), +(1479,'Hellenthal'), +(1480,'Titz'), +(1481,'Nideggen'), +(1482,'Nittel'), +(1483,'Moers'), +(1484,'Landscheid'), +(1485,'Wadgassen'), +(1486,'Schwalbach'), +(1487,'Dormagen'), +(1488,'Wittlich'), +(1489,'Juist'), +(1490,'Memmert'), +(1491,'Riegelsberg'), +(1492,'Uersfeld'), +(1493,'Nohfelden'), +(1494,'Twist'), +(1495,'Kaisersesch'), +(1496,'Ostrhauderfehn'), +(1497,'Clausen'), +(1498,'Kreimbach-Kaulbach'), +(1499,'Becherbach'), +(1500,'Spiekeroog'), +(1501,'Geiselberg'), +(1502,'Birken-Honigsessen'), +(1503,'Wilgartswiesen'), +(1504,'Menden'), +(1505,'Malberg'), +(1506,'Norken'), +(1507,'Höchstenbach'), +(1508,'Kippenheim'), +(1509,'Dielkirchen'), +(1510,'Mainz'), +(1511,'Löhnberg'), +(1512,'Forbach'), +(1513,'Weinbach'), +(1514,'Dietzhölztal'), +(1515,'Ginsheim-Gustavsburg'), +(1516,'Worms'), +(1517,'Ehringshausen'), +(1518,'Melle'), +(1519,'Eich'), +(1520,'Seewald'), +(1521,'Hardt'), +(1522,'Jever'), +(1523,'Annweiler am Trifels'), +(1524,'Schortens'), +(1525,'Rheinau'), +(1526,'Elkenroth'), +(1527,'Bolanden'), +(1528,'Renchen'), +(1529,'Dreisen'), +(1530,'Standenbühl'), +(1531,'Venningen'), +(1532,'Frankenstein'), +(1533,'Neidenfels'), +(1534,'Frankeneck'), +(1535,'Bakum'), +(1536,'Waldbrunn'), +(1537,'Friedrichshafen'), +(1538,'Rechtenbach'), +(1539,'Beringstedt'), +(1540,'Esselbach'), +(1541,'Niestetal'), +(1542,'Ebersbach-Musbach'), +(1543,'Krautheim'), +(1544,'Neuendorf'), +(1545,'Baienfurt'), +(1546,'Büdelsdorf'), +(1547,'Rickert'), +(1548,'Reil'), +(1549,'Schiffweiler'), +(1550,'Enkirch'), +(1551,'Lingen'), +(1552,'Breitenbach'), +(1553,'Linz am Rhein'), +(1554,'Ockenfels'), +(1555,'Wetter (Ruhr)'), +(1556,'Dornum'), +(1557,'Sankt Katharinen (Landkreis Neuwied)'), +(1558,'Eitorf'), +(1559,'Wildenbungert'), +(1560,'Gondershausen'), +(1561,'Nörtershausen'), +(1562,'Medard'), +(1563,'Rathskirchen'), +(1564,'Rheine'), +(1565,'Auggen'), +(1566,'Königsdorf'), +(1567,'Wallenfels'), +(1568,'Neustadt-Glewe'), +(1569,'Jena'), +(1570,'Bucha'), +(1571,'Großpürschütz'), +(1572,'Otterfing'), +(1573,'Ihrlerstein'), +(1574,'Immenreuth'), +(1575,'Braunsbedra'), +(1576,'Güterglück'), +(1577,'Lindau'), +(1578,'Deetz'), +(1579,'Schwarzenbach a.d. Saale'), +(1580,'Tröstau'), +(1581,'Kallmünz'), +(1582,'Duggendorf'), +(1583,'Farchant'), +(1584,'Herrsching a. Ammersee'), +(1585,'Udestedt'), +(1586,'Mönchenholzhausen'), +(1587,'Boltenhagen'), +(1588,'Schöngeising'), +(1589,'Saalfeld/Saale'), +(1590,'Neu Kaliß'), +(1591,'Blankenhain'), +(1592,'Burgthann'), +(1593,'Rastenberg'), +(1594,'Pottenstein'), +(1595,'Klein Offenseth-Sparrieshoop'), +(1596,'Unterstadion'), +(1597,'Petersberg'), +(1598,'Mittelbiberach'), +(1599,'Stadt Schwäbisch Gmünd'), +(1600,'Igersheim'), +(1601,'Kleinrinderfeld'), +(1602,'Margetshöchheim'), +(1603,'Lonsee'), +(1604,'Mietingen'), +(1605,'Freden (Leine)'), +(1606,'Neu-Eichenberg'), +(1607,'Felde'), +(1608,'Hanstedt'), +(1609,'Asendorf'), +(1610,'Rabenkirchen-Faulück'), +(1611,'Algermissen'), +(1612,'Bad Kissingen'), +(1613,'Kisdorf'), +(1614,'Hohenhameln'), +(1615,'Aub'), +(1616,'Schillsdorf'), +(1617,'Stadtlengsfeld'), +(1618,'Weilar'), +(1619,'Urnshausen'), +(1620,'Bad Grund'), +(1621,'Wankendorf'), +(1622,'Hahausen'), +(1623,'Lutter'), +(1624,'Wallmoden'), +(1625,'Sonthofen'), +(1626,'Nattheim'), +(1627,'Reinbek'), +(1628,'Ottobeuren'), +(1629,'Hoisdorf'), +(1630,'Theres'), +(1631,'Tannhausen'), +(1632,'Michelau i. Steigerwald'), +(1633,'Hundelshausen'), +(1634,'Obernzenn'), +(1635,'Nördlingen'), +(1636,'Viernau'), +(1637,'Kollow'), +(1638,'Wrestedt'), +(1639,'Hofheim i. UFr.'), +(1640,'Wagenhoff'), +(1641,'Ringelah'), +(1642,'Jelmstorf'), +(1643,'Dinkelscherben'), +(1644,'Bayrischzell'), +(1645,'Teugn'), +(1646,'Sandau'), +(1647,'Obertraubling'), +(1648,'Arzberg'), +(1649,'Laage'), +(1650,'Wardow'), +(1651,'Schirnding'), +(1652,'Böhlen'), +(1653,'Breitbrunn a. Chiemsee'), +(1654,'Beetzsee'), +(1655,'Wollin'), +(1656,'Wenzlow'), +(1657,'Golzow'), +(1658,'Winklarn'), +(1659,'Falkenberg'), +(1660,'Bockau'), +(1661,'Johanngeorgenstadt'), +(1662,'Hohndorf'), +(1663,'Neuötting'), +(1664,'Reischach'), +(1665,'Mitterskirchen'), +(1666,'Sankt Englmar'), +(1667,'Claußnitz'), +(1668,'Kleinmachnow'), +(1669,'Berlin Nikolassee'), +(1670,'Zenting'), +(1671,'Kirchdorf i. Wald'), +(1672,'Hohen Neuendorf'), +(1673,'Dahme'), +(1674,'Baruth'), +(1675,'Berlin Tiergarten'), +(1676,'Doberlug-Kirchhain'), +(1677,'Groß Miltzow'), +(1678,'Berlin Tempelhof'), +(1679,'Sankt Oswald'), +(1680,'Berlin Prenzlauer Berg'), +(1681,'Friedland'), +(1682,'Galenbeck'), +(1683,'Datzetal'), +(1684,'Delbrück'), +(1685,'Kriftel'), +(1686,'Neuwerk'), +(1687,'Bad Dürrheim'), +(1688,'Hüllhorst'), +(1689,'Bassum'), +(1690,'Malsch'), +(1691,'Calw'), +(1692,'Roßdorf'), +(1693,'Rottenburg am Neckar'), +(1694,'Weilen unter den Rinnen'), +(1695,'Dormettingen'), +(1696,'Simmozheim'), +(1697,'Rodgau'), +(1698,'Eigeltingen'), +(1699,'Grünberg'), +(1700,'Grosselfingen'), +(1701,'Bärenthal'), +(1702,'Gnarrenburg'), +(1703,'Achim'), +(1704,'Stadtallendorf'), +(1705,'Steinheim'), +(1706,'Nieheim'), +(1707,'Besigheim'), +(1708,'Kleinheubach'), +(1709,'Rüdenau'), +(1710,'Barkenholm'), +(1711,'Himmelpforten'), +(1712,'Bingen'), +(1713,'Marbach am Neckar'), +(1714,'Schwalmtal'), +(1715,'Herbstein'), +(1716,'Schafstedt'), +(1717,'Weidenhof'), +(1718,'Bornholt'), +(1719,'Langenenslingen'), +(1720,'Oberstenfeld'), +(1721,'St. Johann'), +(1722,'Affalterbach'), +(1723,'Heinrichsthal'), +(1724,'Flensburg'), +(1725,'Hameln'), +(1726,'Bodenfelde'), +(1727,'Wahlsburg'), +(1728,'Berlin Buckow'), +(1729,'Klingenberg'), +(1730,'Berlin Schmöckwitz'), +(1731,'Schulzendorf b. Eichenwade'), +(1732,'Dorfhain'), +(1733,'Ducherow'), +(1734,'Senftenberg'), +(1735,'Fürstenwalde/ Spree'), +(1736,'Müncheberg'), +(1737,'Hoyerswerda'), +(1738,'Cunewalde'), +(1739,'Frankfurt/ Oder'), +(1740,'Rietschen'), +(1741,'Oybin'), +(1742,'Tussenhausen'), +(1743,'Seeg'), +(1744,'Werther Hohenstein Wolkramshausen'), +(1745,'Maroldsweisach'), +(1746,'Türkheim'), +(1747,'Schönbrunn i. Steigerwald'), +(1748,'Ustersbach'), +(1749,'Dahlenburg'), +(1750,'Osloß'), +(1751,'Schwabmünchen'), +(1752,'Polsingen'), +(1753,'Rodach b. Coburg'), +(1754,'Hagenbüchach'), +(1755,'Lauter'), +(1756,'Neusäß'), +(1757,'Westendorf'), +(1758,'Kühlenthal'), +(1759,'Markt Berolzheim'), +(1760,'Brome'), +(1761,'Neu Darchau'), +(1762,'Süpplingenburg'), +(1763,'Affing'), +(1764,'Pettstadt'), +(1765,'Karwitz'), +(1766,'Bahrdorf'), +(1767,'Büchenbach'), +(1768,'Berglen'), +(1769,'Knüllwald'), +(1770,'Lohr a. Main'), +(1771,'Seestermühe'), +(1772,'Wolpertswende'), +(1773,'Kiebitzreihe'), +(1774,'Mittelsinn'), +(1775,'Ronnenberg'), +(1776,'Hessisch Lichtenau'), +(1777,'Buggingen'), +(1778,'Rust'), +(1779,'Kappel-Grafenhausen'), +(1780,'Everswinkel'), +(1781,'Singhofen'), +(1782,'Olpe'), +(1783,'Zell im Wiesental'), +(1784,'Freiamt'), +(1785,'Alfhausen'), +(1786,'Börrstadt'), +(1787,'Bad Zwischenahn'), +(1788,'Lippetal'), +(1789,'Armsheim'), +(1790,'Netphen'), +(1791,'Rennerod'), +(1792,'Zehnhausen'), +(1793,'Nister-Möhrendorf'), +(1794,'Waigandshain'), +(1795,'Weisenheim am Berg'), +(1796,'Furtwangen im Schwarzwald'), +(1797,'Freinsheim'), +(1798,'Oldenburg (Oldenburg)'), +(1799,'Bietigheim'), +(1800,'Fußgönheim'), +(1801,'Bad Essen'), +(1802,'Rietberg'), +(1803,'Mommenheim'), +(1804,'Wutach'), +(1805,'Simmern/Hunsrück'), +(1806,'Rengsdorf'), +(1807,'Großefehn'), +(1808,'Ascheberg'), +(1809,'Rothselberg'), +(1810,'Neuerburg'), +(1811,'Stolberg (Rhld.)'), +(1812,'Bollendorf'), +(1813,'Freudenburg'), +(1814,'Zülpich'), +(1815,'Blankenheim'), +(1816,'Beckingen'), +(1817,'Itterbeck/Wielen'), +(1818,'Ensdorf'), +(1819,'Ratingen'), +(1820,'Monheim am Rhein'), +(1821,'Hilden'), +(1822,'Oberthal'), +(1823,'Papenburg'), +(1824,'Contwig'), +(1825,'Altenberge'), +(1826,'Kleinbundenbach'), +(1827,'Sankt Augustin'), +(1828,'Briedel'), +(1829,'Barnstorf'), +(1830,'Eydelstedt'), +(1831,'Drentwede'), +(1832,'Eschbronn'), +(1833,'Biedenkopf'), +(1834,'Bünde'), +(1835,'Lahnau'), +(1836,'Deißlingen'), +(1837,'Bensheim'), +(1838,'Hiddenhausen'), +(1839,'Trossingen'), +(1840,'Gondelsheim'), +(1841,'Friedberg (Hessen)'), +(1842,'Östringen'), +(1843,'Bad Nauheim'), +(1844,'Gosheim'), +(1845,'Fernwald'), +(1846,'Worpswede'), +(1847,'Sternenfels'), +(1848,'Gärtringen'), +(1849,'Volkertshausen'), +(1850,'Renquishausen'), +(1851,'Bordelum'), +(1852,'Horn-Bad Meinberg'), +(1853,'Brombachtal'), +(1854,'Leibertingen'), +(1855,'Buchheim'), +(1856,'Stockach'), +(1857,'Tübingen'), +(1858,'Pennigsehl'), +(1859,'Gemünden (Felda)'), +(1860,'Burladingen'), +(1861,'Hasselroth'), +(1862,'Luhden'), +(1863,'Marklohe'), +(1864,'Haßmersheim'), +(1865,'Walddorfhäslach'), +(1866,'Elsenfeld'), +(1867,'Husum'), +(1868,'Flein'), +(1869,'Benningen am Neckar'), +(1870,'Freiburg (Elbe)'), +(1871,'Amorbach'), +(1872,'Grebenhain'), +(1873,'Scheer'), +(1874,'Möckmühl'), +(1875,'Dörpstedt'), +(1876,'Ellhofen'), +(1877,'Wiesen'), +(1878,'Wiesener Forst'), +(1879,'Illmensee'), +(1880,'Hardthausen am Kocher'), +(1881,'Hayingen'), +(1882,'Meggerdorf'), +(1883,'Friedrichsholm'), +(1884,'Friedrichsgraben'), +(1885,'Menteroda'), +(1886,'Obermehler'), +(1887,'Bad Sachsa'), +(1888,'Meine'), +(1889,'Benshausen'), +(1890,'Sachsen b. Ansbach'), +(1891,'Wittmar'), +(1892,'Mauerstetten'), +(1893,'Wolframs-Eschenbach'), +(1894,'Lamerdingen'), +(1895,'Roklum'), +(1896,'Gräfenroda'), +(1897,'Pommersfelden'), +(1898,'Bergfeld'), +(1899,'Ammerndorf'), +(1900,'Abenberg'), +(1901,'Schwabach'), +(1902,'Grainau'), +(1903,'Kelbra (Kyffhäuser)'), +(1904,'Tastrup'), +(1905,'Neuhof'), +(1906,'Krempe'), +(1907,'Grevenkop'), +(1908,'Süderau'), +(1909,'Muchelndorf'), +(1910,'Ebersbach an der Fils'), +(1911,'Aura i. Sinngrund'), +(1912,'Münsterdorf'), +(1913,'Rothenfels'), +(1914,'Lägerdorf'), +(1915,'Burgsinn'), +(1916,'Roden'), +(1917,'Rieneck'), +(1918,'Bad Schussenried'), +(1919,'Buxtehude'), +(1920,'Uslar'), +(1921,'Schneverdingen'), +(1922,'Heimbuch'), +(1923,'Mühlhausen im Täle'), +(1924,'Alfdorf'), +(1925,'Schillinghof'), +(1926,'Gammelshausen'), +(1927,'Schwörstadt'), +(1928,'Hackenheim'), +(1929,'Nistertal'), +(1930,'Enspel'), +(1931,'Bad Dürkheim'), +(1932,'Ockenheim'), +(1933,'Maikammer'), +(1934,'Hünfelden'), +(1935,'Versmold'), +(1936,'Lautenbach'), +(1937,'Kindenheim'), +(1938,'Grafenhausen'), +(1939,'Erpolzheim'), +(1940,'Niederkirchen bei Deidesheim'), +(1941,'Halle (Westfalen)'), +(1942,'Oppenheim'), +(1943,'Fröndenberg/Ruhr'), +(1944,'Vinningen'), +(1945,'Trulben'), +(1946,'Ruppertsweiler'), +(1947,'Telgte'), +(1948,'Hinterweidenthal'), +(1949,'Lengerich'), +(1950,'Bollschweil'), +(1951,'Norheim'), +(1952,'Schwanebeck'), +(1953,'Gröningen'), +(1954,'Kroppenstedt'), +(1955,'Heideck'), +(1956,'Quedlinburg'), +(1957,'Ballenstedt'), +(1958,'Harsleben'), +(1959,'Schwaigen'), +(1960,'Stadelhofen'), +(1961,'Mammendorf'), +(1962,'Kranichfeld'), +(1963,'Pretzfeld'), +(1964,'Barnekow'), +(1965,'Gägelow'), +(1966,'Jachenau'), +(1967,'Altdorf bei Nürnberg'), +(1968,'Gröbenzell'), +(1969,'Adelebsen'), +(1970,'Fichtenberg'), +(1971,'Böel'), +(1972,'Wangen im Allgäu'), +(1973,'Altheim'), +(1974,'Allmendingen'), +(1975,'Donzdorf'), +(1976,'Cornberg'), +(1977,'Langenburg'), +(1978,'Scheidegg'), +(1979,'Göttingen'), +(1980,'Philippsthal'), +(1981,'Burgrieden'), +(1982,'Waabs'), +(1983,'Neumünster'), +(1984,'Schmalfeld'), +(1985,'Neu-Ulm'), +(1986,'Kürnach'), +(1987,'Wallhausen'), +(1988,'Seulingen'), +(1989,'Waake'), +(1990,'Heiligenstadt'), +(1991,'Kronshagen'), +(1992,'Lautrach'), +(1993,'Geldersheim'), +(1994,'Börnhöved'), +(1995,'Rothenburg ob der Tauber'), +(1996,'Eschede'), +(1997,'Fellheim'), +(1998,'Unterroth'), +(1999,'Waltenhofen'), +(2000,'Röthlein'), +(2001,'Lachendorf'), +(2002,'Sehlde'), +(2003,'Schwarzach a. Main'), +(2004,'Leinefelde-Worbis'), +(2005,'Wingerode'), +(2006,'Hausen'), +(2007,'Breitenthal'), +(2008,'Vechelde'), +(2009,'Erkheim'), +(2010,'Witzhave'), +(2011,'Handorf'), +(2012,'Geesthacht'), +(2013,'Aurach'), +(2014,'Schwienau'), +(2015,'Wertach'), +(2016,'Kammlach'), +(2017,'Didderse'), +(2018,'Riesbürg'), +(2019,'Langfurth'), +(2020,'Dorstadt'), +(2021,'Flöthe'), +(2022,'Börßum'), +(2023,'Sandesneben'), +(2024,'Grebin'), +(2025,'Balzhausen'), +(2026,'Neustadt a.d.Aisch'), +(2027,'Braunlage'), +(2028,'Zeulenroda-Triebes'), +(2029,'Langenwolschendorf'), +(2030,'Hof'), +(2031,'Regnitzlosau'), +(2032,'Altenstadt a.d. Waldnaab'), +(2033,'Maxhütte-Haidhof'), +(2034,'Schechen'), +(2035,'Rechtmehring'), +(2036,'Stephanskirchen'), +(2037,'Neufraunhofen'), +(2038,'Reichertsheim'), +(2039,'Trausnitz'), +(2040,'Reichenbach/Vogtl.'), +(2041,'Niedermurach'), +(2042,'Nobitz'), +(2043,'Göhren'), +(2044,'Windischleuba'), +(2045,'Eggstätt'), +(2046,'Moosbach'), +(2047,'Jördenstorf'), +(2048,'Prebberede'), +(2049,'Kirchberg'), +(2050,'Brandenburg/ Havel'), +(2051,'Nauen'), +(2052,'Landau a.d. Isar'), +(2053,'Eichendorf'), +(2054,'Zwönitz'), +(2055,'Mariaposching'), +(2056,'Temnitzquell'), +(2057,'Märkisch Linden'), +(2058,'Wesenberg'), +(2059,'Mittweida'), +(2060,'Kriebstein'), +(2061,'Lindow'), +(2062,'Bischofswiesen'), +(2063,'Belgern-Schildau'), +(2064,'Lohberg'), +(2065,'Roßwein'), +(2066,'Oranienburg'), +(2067,'Mühlenbecker Land'), +(2068,'Tettenweis'), +(2069,'Birkenwerder'), +(2070,'Glienicke/Nordbahn'), +(2071,'Berlin Friedenau'), +(2072,'Riedlhütte'), +(2073,'Aachen'), +(2074,'Wassenberg'), +(2075,'Kalkar'), +(2076,'Mönchengladbach'), +(2077,'Nörvenich'), +(2078,'Losheim'), +(2079,'Kerpen'), +(2080,'Stadtlohn'), +(2081,'Mehren'), +(2082,'Tiefenbach'), +(2083,'Hopsten'), +(2084,'Schliengen'), +(2085,'Haren'), +(2086,'Schalkenbach'), +(2087,'Königsfeld'), +(2088,'Dedenbach'), +(2089,'Remagen'), +(2090,'Dersum'), +(2091,'Jemgum'), +(2092,'Reichertshofen'), +(2093,'Neuhaus a.d.Pegnitz'), +(2094,'Grünwald'), +(2095,'Harsdorf'), +(2096,'Karstädt'), +(2097,'Dambeck'), +(2098,'Klüß'), +(2099,'Birgland'), +(2100,'Marktleugast'), +(2101,'Riedenburg'), +(2102,'Stadtroda'), +(2103,'Hohenbrunn'), +(2104,'Barby'), +(2105,'Bad Doberan'), +(2106,'Bartenshagen-Parkentin'), +(2107,'Brand'), +(2108,'Schmidmühlen'), +(2109,'Berlin Gropiusstadt'), +(2110,'Berlin Alt Treptow'), +(2111,'Berlin Biesdorf'), +(2112,'Melchow'), +(2113,'Chorin'), +(2114,'Glashütte'), +(2115,'Bannewitz'), +(2116,'Angermünde'), +(2117,'Neu-Seeland'), +(2118,'Neupetershain'), +(2119,'Letschin'), +(2120,'Weißenberg'), +(2121,'Hochkirch'), +(2122,'Zittau'), +(2123,'Icking'), +(2124,'Denkendorf'), +(2125,'Straßlach-Dingharting'), +(2126,'Remptendorf'), +(2127,'Hirschbach'), +(2128,'Bayreuth'), +(2129,'Bindlach'), +(2130,'Breitenbrunn'), +(2131,'Bad Steben'), +(2132,'Nienburg (Saale)'), +(2133,'Schönebeck'), +(2134,'Gefrees'), +(2135,'Schauenstein'), +(2136,'Hallbergmoos'), +(2137,'Calbe'), +(2138,'Rosenburg'), +(2139,'Siegenburg'), +(2140,'Bilzingsleben Kannawurf Oldisleben'), +(2141,'Fehmarn'), +(2142,'Eglfing'), +(2143,'Lützow'), +(2144,'Eschenlohe'), +(2145,'Pyrbaum'), +(2146,'Hollfeld'), +(2147,'Rückersdorf'), +(2148,'Arendsee'), +(2149,'Postbauer-Heng'), +(2150,'Gorleben'), +(2151,'Klingenmünster'), +(2152,'Hasel'), +(2153,'Westerburg'), +(2154,'Bockhorn'), +(2155,'Sprendlingen'), +(2156,'Biberach'), +(2157,'Soest'), +(2158,'Wörrstadt'), +(2159,'Sinzheim'), +(2160,'Heidesheim am Rhein'), +(2161,'Bad Waldsee'), +(2162,'Soltau'), +(2163,'Borgstedt'), +(2164,'Hardegsen'), +(2165,'Nüsttal'), +(2166,'Ilshofen'), +(2167,'Undeloh'), +(2168,'Diekholzen'), +(2169,'Frankenhardt'), +(2170,'Rot an der Rot'), +(2171,'Bendestorf'), +(2172,'Bellenberg'), +(2173,'Marktbreit'), +(2174,'Albertshofen'), +(2175,'Wathlingen'), +(2176,'Bad Salzungen'), +(2177,'Volkach'), +(2178,'Kirchgellersen'), +(2179,'Westergellersen'), +(2180,'Südergellersen'), +(2181,'Babenhausen'), +(2182,'Beedenbostel'), +(2183,'Oberschönegg'), +(2184,'Haldenwang'), +(2185,'Burgau'), +(2186,'Leiferde'), +(2187,'Stetten'), +(2188,'Ursberg'), +(2189,'Pfaffenhausen'), +(2190,'Glött'), +(2191,'Möttingen'), +(2192,'Eutin'), +(2193,'Süsel'), +(2194,'Fischach'), +(2195,'Scherstetten'), +(2196,'Schlotheim'), +(2197,'Bernbeuren'), +(2198,'Meinheim'), +(2199,'Aindling'), +(2200,'Rehling'), +(2201,'Heiligenhafen'), +(2202,'Halberstadt'), +(2203,'Bissingen an der Teck'), +(2204,'Großerlach'), +(2205,'Meckenbeuren'), +(2206,'Selk'), +(2207,'Geltdorf'), +(2208,'Hahnekrug'), +(2209,'Seester'), +(2210,'Sörup'), +(2211,'Nonnenhorn'), +(2212,'Haunetal'), +(2213,'Börtlingen'), +(2214,'Kevelaer-Twisteden'), +(2215,'Waxweiler'), +(2216,'Elsdorf'), +(2217,'Newel'), +(2218,'Saarlouis'), +(2219,'Niersbach'), +(2220,'Sehlem'), +(2221,'Plein'), +(2222,'Osburg'), +(2223,'Gusterath'), +(2224,'Farschweiler'), +(2225,'Kasel'), +(2226,'Salmtal'), +(2227,'Mülheim an der Ruhr'), +(2228,'Ahaus'), +(2229,'Piesport'), +(2230,'Eppelborn'), +(2231,'Kandern'), +(2232,'Ellern (Hunsrück)'), +(2233,'Schnorbach'), +(2234,'Reichshof'), +(2235,'Sankt Goar'), +(2236,'Bad Krozingen'), +(2237,'Ladbergen'), +(2238,'Otterbach'), +(2239,'Bruchweiler-Bärenbach'), +(2240,'Siershahn'), +(2241,'Lehmen'), +(2242,'Niederfell'), +(2243,'Oberfell'), +(2244,'Wolken'), +(2245,'Windeck'), +(2246,'Hundsbach'), +(2247,'Hünstetten'), +(2248,'Idstein'), +(2249,'Greifenstein'), +(2250,'Hornberg'), +(2251,'Vechta'), +(2252,'Offstein'), +(2253,'Drebber'), +(2254,'Pfeffelbach'), +(2255,'Dattenberg'), +(2256,'Hümmerich'), +(2257,'Kasbach-Ohlenberg'), +(2258,'Gevelsberg'), +(2259,'Witten'), +(2260,'Baltrum'), +(2261,'Burscheid'), +(2262,'Pünderich'), +(2263,'Meppen'), +(2264,'Kleinich'), +(2265,'Siegburg'), +(2266,'Fraunberg'), +(2267,'Gattendorf'), +(2268,'Weihmichl'), +(2269,'Erbendorf'), +(2270,'Bad Alexandersbad'), +(2271,'Lengdorf'), +(2272,'Rostock'), +(2273,'Bad Dürrenberg'), +(2274,'Dorfen'), +(2275,'Neustadt (Dosse)'), +(2276,'Mallersdorf-Pfaffenberg'), +(2277,'Wackersdorf'), +(2278,'Griesstätt'), +(2279,'Raguhn-Jeßnitz'), +(2280,'Bodenwöhr'), +(2281,'Floß'), +(2282,'Schöneck/Vogtl.'), +(2283,'Wurmsham'), +(2284,'Wald'), +(2285,'Schneeberg'), +(2286,'Löbnitz'), +(2287,'Bad Schmiedeberg'), +(2288,'Callenberg'), +(2289,'Hohenstein-Ernstthal'), +(2290,'Bernsdorf'), +(2291,'Tribsees'), +(2292,'Röhrsdorf'), +(2293,'Wallerfing'), +(2294,'Arnbruck'), +(2295,'Triftern'), +(2296,'Prohn'), +(2297,'Frankenberg'), +(2298,'Regen'), +(2299,'Nuthetal'), +(2300,'Herzberg/ Elster'), +(2301,'Zschopau'), +(2302,'Pockau-Lengefeld (Pockau)'), +(2303,'Borgsdorf'), +(2304,'Liebenwalde'), +(2305,'Hohen Neuendorf OT Bergfelde'), +(2306,'Berlin Lichtenfelde'), +(2307,'Berlin Wilhelmsdorf'), +(2308,'Greifswald'), +(2309,'Königstein im Taunus'), +(2310,'Bruchsal'), +(2311,'Kämpfelbach'), +(2312,'Neubulach'), +(2313,'Oerlinghausen'), +(2314,'Ebhausen'), +(2315,'Bad Liebenzell'), +(2316,'Eisingen'), +(2317,'Birkenau'), +(2318,'Marburg'), +(2319,'Niddatal'), +(2320,'Schwaförden'), +(2321,'Zaisenhausen'), +(2322,'Wiesenbach'), +(2323,'Reichelsheim (Wetterau)'), +(2324,'Schöneck'), +(2325,'Tönning'), +(2326,'Königsheim'), +(2327,'Illingen'), +(2328,'Sachsenheim'), +(2329,'Vaihingen an der Enz'), +(2330,'Schwaigern'), +(2331,'Grasberg'), +(2332,'Dörentrup'), +(2333,'Rinteln'), +(2334,'Büdingen'), +(2335,'Zeven'), +(2336,'Reichenau'), +(2337,'Viöl'), +(2338,'Herdwangen-Schönach'), +(2339,'Antrifttal'), +(2340,'Nordsehl'), +(2341,'Marienmünster'), +(2342,'Billigheim'), +(2343,'Pleidelsheim'), +(2344,'Fritzlar'), +(2345,'Sailauf'), +(2346,'Fellbach'), +(2347,'Mengen'), +(2348,'Wabern'), +(2349,'Dammbach'), +(2350,'Meersburg'), +(2351,'Immenstaad am Bodensee'), +(2352,'Gomadingen'), +(2353,'Obersulm'), +(2354,'Altbach'), +(2355,'Münsingen'), +(2356,'Berlin Wartenberg'), +(2357,'Berlin Falkenberg'), +(2358,'Plessa'), +(2359,'Schraden'), +(2360,'Strausberg'), +(2361,'Straupitz'), +(2362,'Kolkwitz'), +(2363,'Vogelsang-Warsin'), +(2364,'Meiersberg'), +(2365,'Mönkebude'), +(2366,'Egeln'), +(2367,'Borne'), +(2368,'Wolmirsleben'), +(2369,'Hersbruck'), +(2370,'Bad Heilbrunn'), +(2371,'Hohenkammer'), +(2372,'Gesees'), +(2373,'Warin'), +(2374,'Geisenfeld'), +(2375,'Taufkirchen'), +(2376,'Stammbach'), +(2377,'Bernburg (Saale)'), +(2378,'Münchberg'), +(2379,'Rochau'), +(2380,'Rudelzhausen'), +(2381,'Selbitz'), +(2382,'Schönebeck (Elbe)'), +(2383,'Finsing'), +(2384,'Vaterstetten'), +(2385,'Train'), +(2386,'Feldkirchen-Westerham'), +(2387,'Marnitz'), +(2388,'Siggelkow'), +(2389,'Kirchseeon'), +(2390,'Polling'), +(2391,'Heiligenstadt i. OFr.'), +(2392,'Sielenbach'), +(2393,'Wallgau'), +(2394,'Alling'), +(2395,'Lemgow'), +(2396,'Hilgertshausen-Tandern'), +(2397,'Schlehdorf'), +(2398,'Waidhofen'), +(2399,'Wilhelmsthal'), +(2400,'Teuchern'), +(2401,'Schwaan'), +(2402,'Rott a. Inn'), +(2403,'Gelbensande'), +(2404,'Rövershagen'), +(2405,'Elsteraue'), +(2406,'Tirschenreuth'), +(2407,'Buchbach'), +(2408,'Meuselwitz'), +(2409,'Bayerbach bei Ergoldsbach'), +(2410,'Ampfing'), +(2411,'Markkleeberg'), +(2412,'Dieterskirchen'), +(2413,'Marquartstein'), +(2414,'Altenmarkt a.d. Alz'), +(2415,'Roding'), +(2416,'Ruhpolding'), +(2417,'Vachendorf'), +(2418,'Brandis'), +(2419,'Barth'), +(2420,'Zandt'), +(2421,'Lugau/Erzgeb.'), +(2422,'Erlbach'), +(2423,'Viechtach'), +(2424,'Hohenwarth'), +(2425,'Sehma'), +(2426,'Nuthe-Urstromtal'), +(2427,'Bischofsmais'), +(2428,'Ering'), +(2429,'Börnichen'), +(2430,'Hofkirchen'), +(2431,'Oederan'), +(2432,'Rinchnach'), +(2433,'Berlin Zehlendorf'), +(2434,'Ruderting'), +(2435,'Hennstedt'), +(2436,'Otter'), +(2437,'Wrist'), +(2438,'Untermünkheim'), +(2439,'Moringen'), +(2440,'Bebra'), +(2441,'Fitzbek'), +(2442,'Hofbieber'), +(2443,'Sehestedt'), +(2444,'Burgwedel'), +(2445,'Stoltebüll'), +(2446,'Geroda'), +(2447,'Blumenthal'), +(2448,'Herleshausen'), +(2449,'Ballendorf'), +(2450,'Illertissen'), +(2451,'Altusried'), +(2452,'Woringen'), +(2453,'Ellenberg'), +(2454,'Meiningen'), +(2455,'Wörnitz'), +(2456,'Seth'), +(2457,'Böhen'), +(2458,'Kempten (Allgäu)'), +(2459,'Sulzberg'), +(2460,'Mönchsroth'), +(2461,'Ruhla'), +(2462,'Grabfeld'), +(2463,'Fuhlenhagen'), +(2464,'Walkenried'), +(2465,'Schöffengrund'), +(2466,'Altlußheim'), +(2467,'Oberursel (Taunus)'), +(2468,'Nordenham'), +(2469,'Hallig Hooge'), +(2470,'Lübbecke'), +(2471,'Egenhausen'), +(2472,'Süderoog'), +(2473,'Pellworm'), +(2474,'Leopoldshöhe'), +(2475,'Rosenthal'), +(2476,'Zuzenhausen'), +(2477,'Emmingen-Liptingen'), +(2478,'Porta Westfalica'), +(2479,'Meßstetten'), +(2480,'Kronprinzenkoog'), +(2481,'Marne'), +(2482,'Schwenningen'), +(2483,'Bad Wildungen'), +(2484,'Cadenberge'), +(2485,'Extertal'), +(2486,'Löchgau'), +(2487,'Joldelund'), +(2488,'Leingarten'), +(2489,'Osten'), +(2490,'Estorf'), +(2491,'Trochtelfingen'), +(2492,'Krombach'), +(2493,'Hettingen'), +(2494,'Delve'), +(2495,'Rohrsen'), +(2496,'Heemsen'), +(2497,'Beckedorf'), +(2498,'Eggebek'), +(2499,'Langstedt'), +(2500,'Sollerup'), +(2501,'Süderhackstedt'), +(2502,'Bermatingen'), +(2503,'Brevörde'), +(2504,'Polle'), +(2505,'Vahlbruch'), +(2506,'Felsberg'), +(2507,'Wilhelmsdorf'), +(2508,'Plochingen'), +(2509,'Borsfleth'), +(2510,'Müssen'), +(2511,'Aichen'), +(2512,'Burgwindheim'), +(2513,'Deiningen'), +(2514,'Sand a. Main'), +(2515,'Berkenthin'), +(2516,'Thomasburg'), +(2517,'Harburg'), +(2518,'Ingenried'), +(2519,'Wehringen'), +(2520,'Burggen'), +(2521,'Gerach'), +(2522,'Meeder'), +(2523,'Räbke'), +(2524,'Söllingen'), +(2525,'Parsau'), +(2526,'Königsbrunn'), +(2527,'Waddeweitz'), +(2528,'Merching'), +(2529,'Höttingen'), +(2530,'Petersdorf'), +(2531,'Baiersdorf'), +(2532,'Grub a. Forst'), +(2533,'Lützkampen'), +(2534,'Eschweiler'), +(2535,'Geldern'), +(2536,'Arzfeld'), +(2537,'Monschau'), +(2538,'Wincheringen'), +(2539,'Bocholt'), +(2540,'Konz'), +(2541,'Wesel'), +(2542,'Bergheim'), +(2543,'Überherrn'), +(2544,'Üxheim'), +(2545,'Kenn'), +(2546,'Neumagen-Dhron'), +(2547,'Ulmen'), +(2548,'Reken'), +(2549,'Marpingen'), +(2550,'Vogtsburg im Kaiserstuhl'), +(2551,'Sasbach am Kaiserstuhl'), +(2552,'Koblenz'), +(2553,'Niederburg'), +(2554,'Waldfischbach-Burgalben'), +(2555,'Höhr-Grenzhausen'), +(2556,'Rodenbach'), +(2557,'Rheinhausen'), +(2558,'Dahn'), +(2559,'Obermoschel'), +(2560,'Schiersfeld'), +(2561,'Katzwinkel (Sieg)'), +(2562,'Berlin Buch'), +(2563,'Berlin Mahlsdorf'), +(2564,'Elstra'), +(2565,'Oßling'), +(2566,'Großröhrsdorf'), +(2567,'Bretnig-Hauswalde'), +(2568,'Lohsa'), +(2569,'Reichenbach'), +(2570,'Battweiler'), +(2571,'Mülheim-Kärlich'), +(2572,'Oberlahr'), +(2573,'Greven'), +(2574,'Pirmasens'), +(2575,'Finnentrop'), +(2576,'Weitefeld'), +(2577,'Kreuztal'), +(2578,'Bad Marienberg (Westerwald)'), +(2579,'Schlangenbad'), +(2580,'Achern (Abweichung Exklaven)'), +(2581,'Schönborn'), +(2582,'Ottersweier'), +(2583,'Zell am Harmersbach'), +(2584,'Bühl'), +(2585,'Albig'), +(2586,'Albbruck'), +(2587,'Schollbrunn'), +(2588,'Stade'), +(2589,'Breiholz'), +(2590,'Tackesdorf-Nord'), +(2591,'Schlierbach'), +(2592,'Melsungen'), +(2593,'Fellen'), +(2594,'Schleswig'), +(2595,'Murrhardt'), +(2596,'Bad Hersfeld'), +(2597,'Ludwigsau'), +(2598,'Karlstadt'), +(2599,'Wadersloh'), +(2600,'Weilheim'), +(2601,'Sasbach'), +(2602,'Vöhrenbach'), +(2603,'Ellerstadt'), +(2604,'Trebur'), +(2605,'Odenthal'), +(2606,'Kirkel'), +(2607,'Neunkirchen-Seelscheid'), +(2608,'Kastellaun'), +(2609,'Plaidt'), +(2610,'Breckerfeld'), +(2611,'Kirchen (Sieg)'), +(2612,'Arnsberg'), +(2613,'Ennigerloh'), +(2614,'Kriegsfeld'), +(2615,'Seelbach'), +(2616,'Weidenthal'), +(2617,'Neuenkirchen-Vörden'), +(2618,'Ober-Olm'), +(2619,'St. Märgen'), +(2620,'Wardenburg'), +(2621,'Kleve'), +(2622,'Wegberg'), +(2623,'Linnich'), +(2624,'Kempen'), +(2625,'Tönisvorst'), +(2626,'Mettlach'), +(2627,'Leiwen'), +(2628,'Hetzerath'), +(2629,'Dierscheid'), +(2630,'Heckenmünster'), +(2631,'Bad Bentheim'), +(2632,'Friedrichsthal'), +(2633,'Norden'), +(2634,'Herten'), +(2635,'Troisdorf'), +(2636,'Upgant-Schott'), +(2637,'Osteel'), +(2638,'Billerbeck'), +(2639,'Büchenbeuren'), +(2640,'Weener'), +(2641,'Nickenich'), +(2642,'Andernach'), +(2643,'Olfen'), +(2644,'Niederbreitbach'), +(2645,'Glan-Münchweiler'), +(2646,'Weisweil'), +(2647,'Inzlingen'), +(2648,'Schallodenbach'), +(2649,'Hargesheim'), +(2650,'Herschbach'), +(2651,'Schwanau'), +(2652,'Wirges'), +(2653,'Stadt'), +(2654,'Plettenberg'), +(2655,'Willroth'), +(2656,'Elsterwerda'), +(2657,'Zeuthen'), +(2658,'Groß Köris'), +(2659,'Neureichenau'), +(2660,'Kreischa'), +(2661,'Fredersdorf-Vogelsdorf'), +(2662,'Ostseebad Heringsdorf'), +(2663,'Treplin'), +(2664,'Jacobsdorf'), +(2665,'Frankfurt (Oder)'), +(2666,'Eurasburg'), +(2667,'Höhbeck'), +(2668,'Kahla'), +(2669,'Happurg'), +(2670,'Neuburg-Steinhausen'), +(2671,'Hornstorf'), +(2672,'Ködnitz'), +(2673,'Haimhausen'), +(2674,'Wolnzach'), +(2675,'Velburg'), +(2676,'Garching b. München'), +(2677,'Sachsenkam'), +(2678,'Alsleben/Saale'), +(2679,'Plötzkau'), +(2680,'Bad Lauchstädt'), +(2681,'Biederitz'), +(2682,'Gerwisch'), +(2683,'Menz'), +(2684,'Nandlstadt'), +(2685,'Neuching'), +(2686,'Weißdorf'), +(2687,'Mehlmeisel'), +(2688,'Fensterbach'), +(2689,'Brahmenau'), +(2690,'Steinberg'), +(2691,'Wiesau'), +(2692,'Pöhl'), +(2693,'Mohlsdorf-Teichwolframsdorf'), +(2694,'Hagelstadt'), +(2695,'Graal-Müritz'), +(2696,'Barbing'), +(2697,'Velden'), +(2698,'Görzke'), +(2699,'Ziesar'), +(2700,'Rimsting'), +(2701,'Regis-Breitingen'), +(2702,'Moosthenning'), +(2703,'Bad Sülze'), +(2704,'Naunhof'), +(2705,'Töging a. Inn'), +(2706,'Palling'), +(2707,'Rheinsberg'), +(2708,'Taching a. See'), +(2709,'Mirow'), +(2710,'Niederfrohna'), +(2711,'Rattenberg'), +(2712,'Niederwürschnitz'), +(2713,'Burgstädt'), +(2714,'Burghausen'), +(2715,'Schönau'), +(2716,'Metten'), +(2717,'Dahlen'), +(2718,'Winzer'), +(2719,'Stralsund'), +(2720,'Griesbach i. Rottal'), +(2721,'Berlin Spandau'), +(2722,'Berlin Haselhorst'), +(2723,'Lychen'), +(2724,'Berlin Lübars'), +(2725,'Berlin Wilmersdorf'), +(2726,'Schildow'), +(2727,'Wäschenbeuren'), +(2728,'Ascheffel'), +(2729,'Rottenacker'), +(2730,'Ingoldingen'), +(2731,'Steinbergkirche'), +(2732,'Großrinderfeld'), +(2733,'Eckernförde'), +(2734,'Mutlangen'), +(2735,'Esgrus'), +(2736,'Hammelburg'), +(2737,'Schrozberg'), +(2738,'Iggingen'), +(2739,'Veitshöchheim'), +(2740,'Bartholomä'), +(2741,'Osdorf'), +(2742,'Wittbeck'), +(2743,'Altenholz'), +(2744,'Holzheim'), +(2745,'Burglauer'), +(2746,'Schweinfurt'), +(2747,'Sommerach'), +(2748,'Gebsattel'), +(2749,'Rannungen'), +(2750,'Habighorst'), +(2751,'Südeichsfeld'), +(2752,'Lachen'), +(2753,'Sennfeld'), +(2754,'Stödtlen'), +(2755,'Plön'), +(2756,'Hillerse'), +(2757,'Ronsberg'), +(2758,'Steinhorst'), +(2759,'Wittislingen'), +(2760,'Seebach'), +(2761,'Lehrberg'), +(2762,'Haßfurt'), +(2763,'Wendisch Evern'), +(2764,'Pfronten'), +(2765,'Görisried'), +(2766,'Bad Bevensen'), +(2767,'Bertelsmann'), +(2768,'Dunningen'), +(2769,'Bad Soden am Taunus'), +(2770,'Blumberg'), +(2771,'Zimmern ob Rottweil'), +(2772,'Lottstetten'), +(2773,'Alsbach-Hähnlein'), +(2774,'Heddesheim'), +(2775,'Kronau'), +(2776,'Laudenbach'), +(2777,'Dietingen'), +(2778,'Engelsbrand'), +(2779,'Tating'), +(2780,'Westerhever'), +(2781,'Tümlauer Koog'), +(2782,'Leimen'), +(2783,'Gunningen'), +(2784,'Karben'), +(2785,'Modautal'), +(2786,'Hambergen'), +(2787,'Holste'), +(2788,'Oberderdingen'), +(2789,'Fischbachtal'), +(2790,'Frankenau'), +(2791,'Friedrichskoog'), +(2792,'Hanau'), +(2793,'Bruchhausen-Vilsen'), +(2794,'Süstedt'), +(2795,'Bruchköbel'), +(2796,'Reichartshausen'), +(2797,'Barlt'), +(2798,'Busenwurth'), +(2799,'Bad Driburg'), +(2800,'Ortenberg'), +(2801,'Sindelfingen'), +(2802,'Lützelbach'), +(2803,'Meerbeck'), +(2804,'Weilbach'), +(2805,'Kirchheim am Neckar'), +(2806,'Nienstädt'), +(2807,'Hessisch Oldendorf'), +(2808,'Filderstadt'), +(2809,'Bad Friedrichshall'), +(2810,'Albersdorf'), +(2811,'Haßbergen'), +(2812,'Liebenau (Hessen)'), +(2813,'Birstein'), +(2814,'Emmerthal'), +(2815,'Wacken'), +(2816,'Roigheim'), +(2817,'Ottrau'), +(2818,'Bad Nenndorf'), +(2819,'Adelsheim'), +(2820,'Hülben'), +(2821,'Wernau (Neckar)'), +(2822,'Hodenhagen'), +(2823,'Barsinghausen'), +(2824,'Sittensen'), +(2825,'Bischbrunn'), +(2826,'Schernfeld'), +(2827,'Dollnstein'), +(2828,'Bad Frankenhausen/Kyffhäuser'), +(2829,'Türkenfeld'), +(2830,'Redwitz a.d. Rodach'), +(2831,'Kölleda'), +(2832,'Wanzleben-Börde'), +(2833,'Gilching'), +(2834,'Seeshaupt'), +(2835,'Bernried'), +(2836,'Winkelhaid'), +(2837,'Kipfenberg'), +(2838,'Emmering'), +(2839,'Probstzella'), +(2840,'Berching'), +(2841,'Auhausen'), +(2842,'Altenmedingen'), +(2843,'Eltmann'), +(2844,'Bleckede'), +(2845,'Himbergen'), +(2846,'Bruckberg'), +(2847,'Bonstetten'), +(2848,'Oberostendorf'), +(2849,'Rentweinsdorf'), +(2850,'Dähre'), +(2851,'Diesdorf'), +(2852,'Wallstawe'), +(2853,'Igling'), +(2854,'Schwabsoien'), +(2855,'Cadolzburg'), +(2856,'Tülau'), +(2857,'Schmiechen'), +(2858,'Salzwedel'), +(2859,'Saulgrub'), +(2860,'Rennertshofen'), +(2861,'Solnhofen'), +(2862,'Litzendorf'), +(2863,'Pöttmes'), +(2864,'Burgheim'), +(2865,'Eggolsheim'), +(2866,'Aichach'), +(2867,'Langensendelbach'), +(2868,'Runkel'), +(2869,'Wilhelmshaven'), +(2870,'Hilter'), +(2871,'Hausach'), +(2872,'Schmallenberg'), +(2873,'Hochstadt'), +(2874,'Gau-Odernheim'), +(2875,'Offenbach an der Queich'), +(2876,'Gerolsheim'), +(2877,'Bonndorf im Schwarzwald'), +(2878,'Lustadt'), +(2879,'Hochdorf-Assenheim'), +(2880,'Löffingen'), +(2881,'Hude (Oldenburg)'), +(2882,'Neupotz'), +(2883,'Frankenthal (Pfalz)'), +(2884,'Hanhofen'), +(2885,'Eggenstein-Leopoldshafen'), +(2886,'Glashütten'), +(2887,'Römerberg'), +(2888,'Allmersbach im Tal'), +(2889,'Stolk'), +(2890,'Unterwaldhausen'), +(2891,'Dürmentingen'), +(2892,'Söhrewald'), +(2893,'Wiesensteig'), +(2894,'Beckdorf'), +(2895,'Nübbel'), +(2896,'Alheim'), +(2897,'Müllheim'), +(2898,'Staudernheim'), +(2899,'Heitersheim'), +(2900,'Holzwickede'), +(2901,'Ibbenbüren'), +(2902,'Drensteinfurt'), +(2903,'Friedeburg'), +(2904,'Miehlen'), +(2905,'Hemer'), +(2906,'Bad Kreuznach'), +(2907,'Hügelsheim'), +(2908,'Ottenhöfen im Schwarzwald'), +(2909,'Bockenheim an der Weinstraße'), +(2910,'Kirchheim an der Weinstraße'), +(2911,'Weilburg'), +(2912,'Rheda-Wiedenbrück'), +(2913,'Bad Rippoldsau-Schapbach'), +(2914,'Visbek'), +(2915,'Bellheim'), +(2916,'Gernsbach'), +(2917,'Weilmünster'), +(2918,'Mittenaar'), +(2919,'Bestwig'), +(2920,'Lembruch'), +(2921,'Burlage'), +(2922,'Düngenheim'), +(2923,'Niederwörresbach'), +(2924,'Hinte'), +(2925,'Klotten'), +(2926,'Binningen'), +(2927,'Horstmar'), +(2928,'Daleiden'), +(2929,'Preischeid'), +(2930,'Grefrath'), +(2931,'Prüm'), +(2932,'Ayl'), +(2933,'Trassem'), +(2934,'Irrel'), +(2935,'Schüller'), +(2936,'Kaarst'), +(2937,'Badem'), +(2938,'Gindorf'), +(2939,'Neidenbach'), +(2940,'Daun'), +(2941,'Zeltingen-Rachtig'), +(2942,'Erden'), +(2943,'Lösnich'), +(2944,'Alfter'), +(2945,'Haltern am See'), +(2946,'Sögel'), +(2947,'Aurich'), +(2948,'Esens'), +(2949,'Neuharlingersiel'), +(2950,'Esterwegen'), +(2951,'Puderbach'), +(2952,'Dürrholz'), +(2953,'Imsbach'), +(2954,'Oberried'), +(2955,'Waldkirch'), +(2956,'Göllheim'), +(2957,'Rieste'), +(2958,'Bad Iburg'), +(2959,'Görwihl'), +(2960,'Aarbergen'), +(2961,'Homburg'), +(2962,'Kruft'), +(2963,'Zweibrücken'), +(2964,'Kretz'), +(2965,'Haselünne'), +(2966,'Gemünden'), +(2967,'Urmitz'), +(2968,'Dollerup'), +(2969,'Bad Fallingbostel'), +(2970,'Osterheide'), +(2971,'Groß Wittensee'), +(2972,'Sterup'), +(2973,'Bodnegg'), +(2974,'Salach'), +(2975,'Gerabronn'), +(2976,'Alveslohe'), +(2977,'Gettorf'), +(2978,'Gerstetten'), +(2979,'Crailsheim'), +(2980,'Oberstaufen'), +(2981,'Isny im Allgäu'), +(2982,'Euerdorf'), +(2983,'Maasholm'), +(2984,'Schleimünde'), +(2985,'Langenau'), +(2986,'Dettelbach'), +(2987,'Buch'), +(2988,'Leezen'), +(2989,'Laboe'), +(2990,'Wört'), +(2991,'Ungerhausen'), +(2992,'Markt Nordheim'), +(2993,'Meinersen'), +(2994,'Dombühl'), +(2995,'Sugenheim'), +(2996,'Prichsenstadt'), +(2997,'Neuburg a.d. Kammel'), +(2998,'Bad Windsheim'), +(2999,'Oberschwarzach'), +(3000,'Münsterhausen'), +(3001,'Hohenfelde'), +(3002,'Wieseth'), +(3003,'Knetzgau'), +(3004,'Malente'), +(3005,'Kirchnüchel'), +(3006,'Bichl'), +(3007,'Neumarkt i.d. OPf.'), +(3008,'Deining'), +(3009,'Pößneck'), +(3010,'Lobenstein'), +(3011,'Weidenberg'), +(3012,'Kirchenpingarten'), +(3013,'Ilberstedt'), +(3014,'Hahnbach'), +(3015,'Ammerthal'), +(3016,'Kümmersbruck'), +(3017,'Deuerling'), +(3018,'Wörth'), +(3019,'Kirschkau'), +(3020,'Pausa-Mühltroff'), +(3021,'Oberweißbach'), +(3022,'Pinzberg'), +(3023,'Jesenwang'), +(3024,'Krün'), +(3025,'Wörthsee'), +(3026,'Kronach'), +(3027,'Plankenfels'), +(3028,'Gaimersheim'), +(3029,'Hecklingen'), +(3030,'Stadland'), +(3031,'Neuhofen'), +(3032,'Waldolms'), +(3033,'Bad Wildbad'), +(3034,'Lemwerder'), +(3035,'Lohra'), +(3036,'Hilzingen'), +(3037,'Lindenfels'), +(3038,'Affinghausen und Sudwalde'), +(3039,'Florstadt'), +(3040,'Renningen'), +(3041,'Meldorf'), +(3042,'Kleinostheim'), +(3043,'Allensbach'), +(3044,'Binau'), +(3045,'Bitz'), +(3046,'Buchholz'), +(3047,'Fahrenbach'), +(3048,'Gundelsheim'), +(3049,'Breuna'), +(3050,'Pollhagen'), +(3051,'Romrod'), +(3052,'Wölpinghausen'), +(3053,'Veringenstadt'), +(3054,'Krauchenwies'), +(3055,'Sigmaringendorf'), +(3056,'Neuhausen auf den Fildern'), +(3057,'Pahlen'), +(3058,'Freudenberg'), +(3059,'Collenberg'), +(3060,'Haste'), +(3061,'Hohnhorst'), +(3062,'Winnenden'), +(3063,'Backnang'), +(3064,'Riedhausen'), +(3065,'Klein Wesenberg'), +(3066,'Münchsteinach'), +(3067,'Ilsenburg'), +(3068,'Gutenstetten'), +(3069,'Mickhausen'), +(3070,'Krummesse'), +(3071,'Klempau'), +(3072,'Breitenfelde'), +(3073,'Lankau'), +(3074,'Buttenwiesen'), +(3075,'Bobingen'), +(3076,'Gnotzheim'), +(3077,'Kaltental'), +(3078,'Kaisheim'), +(3079,'Geschwenda'), +(3080,'Gevensleben'), +(3081,'Pfofeld'), +(3082,'Ilmenau'), +(3083,'Pürgen'), +(3084,'Weißenburg i. Bay.'), +(3085,'Finning'), +(3086,'Harbke'), +(3087,'Sommersdorf'), +(3088,'Wefensleben'), +(3089,'Ummendorf'), +(3090,'Eilsleben'), +(3091,'Coppenbrügge'), +(3092,'Forchtenberg'), +(3093,'Großenlüder'), +(3094,'Böklund'), +(3095,'Weilheim an der Teck'), +(3096,'Neidlingen'), +(3097,'Schwäbisch Hall'), +(3098,'Kupferzell'), +(3099,'Duingen'), +(3100,'Bad Aibling'), +(3101,'Lambrechtshagen'), +(3102,'Rößnitz'), +(3103,'Schwarzenfeld'), +(3104,'Tegernheim'), +(3105,'Püchersreuth'), +(3106,'Mintraching'), +(3107,'Groitzsch'), +(3108,'Guteneck'), +(3109,'Flossenbürg'), +(3110,'Pittenhart'), +(3111,'Jettenbach'), +(3112,'Falkenstein'), +(3113,'Seeon-Seebruck'), +(3114,'Belzig'), +(3115,'Groß Kreutz'), +(3116,'Velgast'), +(3117,'Neukirchen am Teisenberg'), +(3118,'Mühlau'), +(3119,'Jahnsdorf'), +(3120,'Leisnig'), +(3121,'Michendorf'), +(3122,'Niederwiesa'), +(3123,'Künzing'), +(3124,'Rotthalmünster'), +(3125,'Samtens'), +(3126,'Bad Liebenwerda'), +(3127,'Jarmen'), +(3128,'Am Mellensee'), +(3129,'Dorfchemnitz'), +(3130,'Mulda'), +(3131,'Sayda'), +(3132,'Berlin Niederschönhausen'), +(3133,'Berlin Rudow'), +(3134,'Thyrnau'), +(3135,'Freital'), +(3136,'Joachimsthal'), +(3137,'Schönwalde'), +(3138,'Lübben (Spreewald)'), +(3139,'Kröslin'), +(3140,'Krummin'), +(3141,'Lassan'), +(3142,'Benz'), +(3143,'Heringsdorf'), +(3144,'Beeskow'), +(3145,'Seebad Ahlbeck'), +(3146,'Wittichenau'), +(3147,'Löbau'), +(3148,'Kottmar'), +(3149,'Hutthurm'), +(3150,'Coswig'), +(3151,'Mauth'), +(3152,'Untergriesbach'), +(3153,'Strasburg'), +(3154,'Pasewalk'), +(3155,'Lichtenow'), +(3156,'Altlandsberg'), +(3157,'Koserow'), +(3158,'Arnsdorf b. Dresden'), +(3159,'Harsewinkel'), +(3160,'Gütenbach'), +(3161,'Budenheim'), +(3162,'Amrum'), +(3163,'Alpirsbach'), +(3164,'Königsfeld im Schwarzwald'), +(3165,'Unterkirnach'), +(3166,'Speyer'), +(3167,'Philippsburg'), +(3168,'Schönau im Schwarzwald'), +(3169,'Willstätt'), +(3170,'Denzlingen'), +(3171,'Hochspeyer'), +(3172,'Helgoland'), +(3173,'Ingelheim am Rhein'), +(3174,'Beelen'), +(3175,'Kamenz'), +(3176,'Krackow'), +(3177,'Nadrensee'), +(3178,'Markersdorf'), +(3179,'Neißeaue'), +(3180,'Jetzendorf'), +(3181,'Gräfelfing'), +(3182,'Sülzetal'), +(3183,'Bad Sulza'), +(3184,'Seegebiet Mansfelder Land'), +(3185,'Freising'), +(3186,'Edelsfeld'), +(3187,'Naumburg'), +(3188,'Kelheim'), +(3189,'Hohenburg'), +(3190,'Hohenfels'), +(3191,'Poing'), +(3192,'Ebersberg'), +(3193,'Weißenstadt'), +(3194,'Lüdinghausen'), +(3195,'Laer'), +(3196,'Schönenberg-Kübelberg'), +(3197,'Ochtendung'), +(3198,'Altenkirchen'), +(3199,'Kirn'), +(3200,'Wietmarschen'), +(3201,'Zell (Mosel)'), +(3202,'Bad Honnef'), +(3203,'Altenglan'), +(3204,'Senden'), +(3205,'Efringen-Kirchen'), +(3206,'Monzingen'), +(3207,'Heroldsberg'), +(3208,'Wustrow'), +(3209,'Burgkunstadt'), +(3210,'Schwarzenbruck'), +(3211,'Gräfenthal'), +(3212,'Tettau'), +(3213,'Großweil'), +(3214,'Gauting'), +(3215,'Brunnen'), +(3216,'Münsing'), +(3217,'Obersüßbach'), +(3218,'Merseburg'), +(3219,'Triglitz'), +(3220,'Putlitz'), +(3221,'Wunsiedel'), +(3222,'Mantel'), +(3223,'Havelberg'), +(3224,'Greiz'), +(3225,'Hohenpolding'), +(3226,'Pfreimd'), +(3227,'Markranstädt'), +(3228,'Krakow'), +(3229,'Dobbin-Linstow'), +(3230,'Alteglofsheim'), +(3231,'Pfakofen'), +(3232,'Atting'), +(3233,'Marklkofen'), +(3234,'Wiesenfelden'), +(3235,'Glauchau'), +(3236,'Kitzscher'), +(3237,'Bad Lausick'), +(3238,'Siegsdorf'), +(3239,'Bennewitz'), +(3240,'Trebsen/Mulde'), +(3241,'Malgersdorf'), +(3242,'Ketzin'), +(3243,'Prackenbach'), +(3244,'Annaburg'), +(3245,'Laufen'), +(3246,'Berchtesgaden & Schönau'), +(3247,'Gransee'), +(3248,'Löwenberg'), +(3249,'Niederalteich'), +(3250,'Oschatz'), +(3251,'Neubrandenburg'), +(3252,'Berlin-West'), +(3253,'Berlin Blankenfelde'), +(3254,'Sagard'), +(3255,'Aßlar'), +(3256,'Brake'), +(3257,'Liederbach am Taunus'), +(3258,'Butzbach'), +(3259,'Espelkamp'), +(3260,'Sulz am Neckar'), +(3261,'Kirchlengern'), +(3262,'Dossenheim'), +(3263,'Ölbronn-Dürrn'), +(3264,'Schömberg'), +(3265,'Syke'), +(3266,'Althengstett'), +(3267,'Bammental'), +(3268,'Wilhelmsfeld'), +(3269,'Fränkisch-Crumbach'), +(3270,'Minden'), +(3271,'Wohratal'), +(3272,'Nidda'), +(3273,'Hattstedt'), +(3274,'Gemmingen'), +(3275,'Stolzenau'), +(3276,'Neuberg'), +(3277,'Kirchardt'), +(3278,'Volkmarsen'), +(3279,'Mömlingen'), +(3280,'Obernburg a.Main'), +(3281,'Bad Wimpfen'), +(3282,'Lauffen am Neckar'), +(3283,'Wannweil'), +(3284,'Burg (Dithmarschen)'), +(3285,'Neckarsulm'), +(3286,'Auhagen'), +(3287,'Sachsenhagen'), +(3288,'Seckach'), +(3289,'Großbettlingen'), +(3290,'Holstenniendorf'), +(3291,'Beuren'), +(3292,'Hohnstorf (Elbe)'), +(3293,'Hittbergen'), +(3294,'Leinatal'), +(3295,'Irsee'), +(3296,'Walkertshofen'), +(3297,'Hildburghausen'), +(3298,'Blindheim'), +(3299,'Pfarrweisach'), +(3300,'Oldenburg in Holstein'), +(3301,'Rosche'), +(3302,'Prem'), +(3303,'Asbach-Bäumenheim'), +(3304,'Gremsdorf'), +(3305,'Gebesee'), +(3306,'Schwifting'), +(3307,'Röttenbach'), +(3308,'Böbing'), +(3309,'Rottenbuch'), +(3310,'Neukirchen'), +(3311,'Grevesmühlen'), +(3312,'Stepenitztal'), +(3313,'Upahl'), +(3314,'Luckau (Wendland)'), +(3315,'Weil am Rhein'), +(3316,'Lemberg'), +(3317,'Lahnstein'), +(3318,'Filsum'), +(3319,'Rümmingen'), +(3320,'Meisenheim'), +(3321,'Badenweiler'), +(3322,'Hillscheid'), +(3323,'Selters (Westerwald)'), +(3324,'Kleines Wiesental'), +(3325,'Balve'), +(3326,'Vörstetten'), +(3327,'Schlat'), +(3328,'Brokstedt'), +(3329,'Laatzen'), +(3330,'Waldkappel'), +(3331,'Blaustein'), +(3332,'Amstetten'), +(3333,'Damp'), +(3334,'Achstetten'), +(3335,'Nörten-Hardenberg'), +(3336,'Henstedt-Ulzburg'), +(3337,'Altheim (Alb)'), +(3338,'Illerkirchberg'), +(3339,'Königsbronn'), +(3340,'Missen-Wilhams'), +(3341,'Bark'), +(3342,'Neusitz'), +(3343,'Langelsheim'), +(3344,'Burgbernheim'), +(3345,'Medlingen'), +(3346,'Lülsfeld'), +(3347,'Gundremmingen'), +(3348,'Hallschlag'), +(3349,'Bad Münstereifel'), +(3350,'Südlohn'), +(3351,'Wilsum'), +(3352,'Rheinbach'), +(3353,'Gladbeck'), +(3354,'Traben-Trarbach'), +(3355,'Schöntal'), +(3356,'Havetoft'), +(3357,'Dägeling'), +(3358,'Neuenbrook'), +(3359,'Golmbach'), +(3360,'Elmshorn'), +(3361,'Obermarchtal'), +(3362,'Hattenhofen'), +(3363,'Laichingen'), +(3364,'Hünfeld'), +(3365,'Rechberghausen'), +(3366,'Oberkotzau'), +(3367,'Weischlitz'), +(3368,'Kaltenbrunn'), +(3369,'Lübz'), +(3370,'Passow'), +(3371,'Rohr i. NB'), +(3372,'Thierstein'), +(3373,'Ergoldsbach'), +(3374,'Köfering'), +(3375,'Donaustauf'), +(3376,'Bad Elster'), +(3377,'Langenbernsdorf'), +(3378,'Rositz'), +(3379,'Starkenberg'), +(3380,'Treben'), +(3381,'Vohenstrauß'), +(3382,'Sünching'), +(3383,'Neumark'), +(3384,'Mengkofen'), +(3385,'Grassau'), +(3386,'Mettenheim'), +(3387,'Prerow a. Darß'), +(3388,'Langenweißbach'), +(3389,'Wildenfels'), +(3390,'Tüßling'), +(3391,'St. Egidien'), +(3392,'Rattiszell'), +(3393,'Geratskirchen'), +(3394,'Perasdorf'), +(3395,'Dietersburg'), +(3396,'Saaldorf'), +(3397,'Hartha'), +(3398,'Wiesa'), +(3399,'Böbrach'), +(3400,'Lam'), +(3401,'Stubenberg'), +(3402,'Ostrau'), +(3403,'Burow'), +(3404,'Weißenborn'), +(3405,'Oberschöna'), +(3406,'Bad Füssing'), +(3407,'Reinsberg'), +(3408,'Käbschütztal'), +(3409,'Klipphausen'), +(3410,'Diera-Zehren'), +(3411,'Ringelai'), +(3412,'Engelthal/Offenhausen'), +(3413,'Bad Bibra'), +(3414,'Finne'), +(3415,'Beilngries'), +(3416,'Neuried'), +(3417,'Pullach i. Isartal'), +(3418,'Rosenthal am Rennsteig'), +(3419,'Grafengehaig'), +(3420,'Mindelstetten'), +(3421,'Himmelkron'), +(3422,'Laucha an der Unstrut'), +(3423,'Marktschorgast'), +(3424,'Waakirchen'), +(3425,'Brunnthal'), +(3426,'Warngau'), +(3427,'Perleberg'), +(3428,'Berge'), +(3429,'Vorbach'), +(3430,'Kröpelin'), +(3431,'Carinerland'), +(3432,'Warmensteinach'), +(3433,'Hirschberg'), +(3434,'Abensberg'), +(3435,'Bad Klosterlausnitz'), +(3436,'Bad Köstritz'), +(3437,'Bruckmühl'), +(3438,'Berlin Oberschöneweide'), +(3439,'Prenzlau'), +(3440,'Nordwestuckermark'), +(3441,'Ottendorf-Okrilla'), +(3442,'Wendisch Rietz'), +(3443,'Brüssow'), +(3444,'Weißwasser'), +(3445,'Boxberg'), +(3446,'Neusalza-Spremberg'), +(3447,'Rheinböllen'), +(3448,'Odenbach'), +(3449,'Braubach'), +(3450,'Endingen am Kaiserstuhl'), +(3451,'Schneckenhausen'), +(3452,'Münstertal'), +(3453,'Ettenheim'), +(3454,'Reute'), +(3455,'Roetgen'), +(3456,'Perl'), +(3457,'Issum'), +(3458,'Bedburg'), +(3459,'Tawern'), +(3460,'Vettweiß'), +(3461,'Rommerskirchen'), +(3462,'Vreden'), +(3463,'Nalbach'), +(3464,'Großlittgen'), +(3465,'Dorsten'), +(3466,'Neuhütten'), +(3467,'Kempenich'), +(3468,'Wachtberg'), +(3469,'Wipperfürth'), +(3470,'Ruppichteroth'), +(3471,'Waldbreitbach'), +(3472,'Hasuen'), +(3473,'Bruchmühlbach-Miesau'), +(3474,'Hoppstädten-Weiersbach'), +(3475,'Brücken'), +(3476,'Oberbrombach'), +(3477,'Oer-Erkenschwick'), +(3478,'Rheinbreitbach'), +(3479,'Herzlake'), +(3480,'Dohren'), +(3481,'Rätzlingen'), +(3482,'Wegenstedt'), +(3483,'Calvörde'), +(3484,'Böddensell'), +(3485,'Utting a. Ammersee'), +(3486,'Uffing a. Staffelsee'), +(3487,'Wielenbach'), +(3488,'Sonneberg'), +(3489,'Wegeleben'), +(3490,'Neuhaus-Schierschnitz'), +(3491,'Judenbach'), +(3492,'Eckental'), +(3493,'Langenmosen'), +(3494,'Aresing'), +(3495,'Eitensheim'), +(3496,'Obertrubach'), +(3497,'Dettighofen'), +(3498,'Gernsheim'), +(3499,'Willingen (Upland)'), +(3500,'Ladenburg'), +(3501,'Tuningen'), +(3502,'Hemsbach'), +(3503,'Walldorf'), +(3504,'Egelsbach'), +(3505,'Ispringen'), +(3506,'Spaichingen'), +(3507,'Opernturm'), +(3508,'Bad Salzuflen'), +(3509,'Nordleda'), +(3510,'Abtsteinach'), +(3511,'Kürnbach'), +(3512,'Aidlingen'), +(3513,'Ostelsheim'), +(3514,'Neustetten'), +(3515,'Bremervörde'), +(3516,'Schwesing'), +(3517,'Güglingen'), +(3518,'Gerlingen'), +(3519,'Mainaschaff'), +(3520,'Selsingen'), +(3521,'Nordheim'), +(3522,'Heeßen'), +(3523,'Bad Eilsen'), +(3524,'Steinenbronn'), +(3525,'Schwabstedt'), +(3526,'Schlaitdorf'), +(3527,'Mönchberg'), +(3528,'Lüdersfeld'), +(3529,'Eningen'), +(3530,'Riederich'), +(3531,'Heimbuchenthal'), +(3532,'Laufach'), +(3533,'Grafenberg'), +(3534,'Gudensberg'), +(3535,'Dettingen an der Erms'), +(3536,'Börm'), +(3537,'Oppenweiler'), +(3538,'Moisburg'), +(3539,'Hauneck'), +(3540,'Aukrug'), +(3541,'Wiedenborstel'), +(3542,'Schacht-Audorf'), +(3543,'Bad Brückenau'), +(3544,'Gössenheim'), +(3545,'Eußenheim'), +(3546,'Bredenbek'), +(3547,'Lentföhrden'), +(3548,'Handeloh'), +(3549,'Blaufelden'), +(3550,'Rasdorf'), +(3551,'Adelheidsdorf'), +(3552,'Schönau a.d. Brend'), +(3553,'Tangstedt'), +(3554,'Oberstdorf'), +(3555,'Westhausen'), +(3556,'Geslau'), +(3557,'Bopfingen'), +(3558,'Mechtersen'), +(3559,'Rödelsee'), +(3560,'Burk'), +(3561,'Lauenburg/Elbe'), +(3562,'Uelzen'), +(3563,'Ziemetshausen'), +(3564,'Wahrenholz'), +(3565,'Osterwieck'), +(3566,'Römstedt'), +(3567,'Bad Schwartau'), +(3568,'Roßhaupten'), +(3569,'Königslutter am Elm'), +(3570,'Untermeitingen'), +(3571,'Unterdießen'), +(3572,'Zirndorf'), +(3573,'Ettal'), +(3574,'Weißensee'), +(3575,'Weferlingen'), +(3576,'Behnsdorf'), +(3577,'Belsdorf'), +(3578,'Harzgerode'), +(3579,'Königsee-Rottenbach'), +(3580,'Ebertsheim'), +(3581,'Lauf'), +(3582,'Oppenau'), +(3583,'Bad Rothenfelde'), +(3584,'Erndtebrück'), +(3585,'Triberg im Schwarzwald'), +(3586,'Hagenbach'), +(3587,'Freisbach'), +(3588,'Muggensturm'), +(3589,'Langenberg'), +(3590,'Dannstadt-Schauernheim'), +(3591,'Stemwede'), +(3592,'Wenningstedt-Braderup (Sylt)'), +(3593,'Harthausen'), +(3594,'Stühlingen'), +(3595,'Kampen (Sylt)'), +(3596,'Flörsheim am Main'), +(3597,'Riedstadt'), +(3598,'Friesenheim'), +(3599,'Meudt'), +(3600,'Molsberg'), +(3601,'Hundsangen'), +(3602,'Niederahr'), +(3603,'Wöllstein'), +(3604,'Stegen'), +(3605,'Sande'), +(3606,'Kirrweiler (Pfalz)'), +(3607,'Landau in der Pfalz'), +(3608,'Kiedrich'), +(3609,'Schlüchtern'), +(3610,'Römerstein'), +(3611,'Schorndorf'), +(3612,'Horst'), +(3613,'Ohmden'), +(3614,'Horneburg'), +(3615,'Urbach'), +(3616,'Plüderhausen'), +(3617,'Adelberg'), +(3618,'Dielmissen'), +(3619,'Bomlitz'), +(3620,'Struxdorf'), +(3621,'Schnarup-Thumby'), +(3622,'Tostedt'), +(3623,'Kakenstorf'), +(3624,'Jevenstedt'), +(3625,'Ebermannsdorf'), +(3626,'Zerbst/Anhalt'), +(3627,'Luhe-Wildenau'), +(3628,'Vilsheim'), +(3629,'Nittenau'), +(3630,'Samerberg'), +(3631,'Neutraubling'), +(3632,'Geisenhausen'), +(3633,'Mylau'), +(3634,'Falkenstein/Vogtl.'), +(3635,'Niederaichbach'), +(3636,'Bärnau'), +(3637,'Niederviehbach'), +(3638,'Altenburg'), +(3639,'Leiblfing'), +(3640,'Tacherting'), +(3641,'Chieming'), +(3642,'Malchin'), +(3643,'Mitterfels'), +(3644,'Aue'), +(3645,'Stephansposching'), +(3646,'Piding'), +(3647,'Jöhstadt'), +(3648,'Luckenwalde'), +(3649,'Berlin Staaken'), +(3650,'Bayerisch Eisenstein'), +(3651,'Nossen'), +(3652,'Berlin Siemensstadt'), +(3653,'Usingen'), +(3654,'Lorsch'), +(3655,'Stuhr'), +(3656,'Fronhausen'), +(3657,'Unterreichenbach'), +(3658,'Eutingen im Gäu'), +(3659,'Kieselbronn'), +(3660,'Tetenbüll'), +(3661,'Mühlhausen-Ehingen'), +(3662,'Wald-Michelbach'), +(3663,'Bubsheim'), +(3664,'Neidenstein'), +(3665,'Mücke'), +(3666,'Gaienhofen'), +(3667,'Cleebronn'), +(3668,'Sankt Michaelisdonn'), +(3669,'Gudendorf'), +(3670,'Volsemenhusen'), +(3671,'Trennewurth'), +(3672,'Meßkirch'), +(3673,'Sauldorf'), +(3674,'Balje'), +(3675,'Nehren'), +(3676,'Binnen'), +(3677,'Badisch Schöllenbach'), +(3678,'Kusterdingen'), +(3679,'Ahnsen'), +(3680,'Hespe'), +(3681,'Drage'), +(3682,'Seeth'), +(3683,'Neuental'), +(3684,'Ilsfeld'), +(3685,'Großenwörden'), +(3686,'Neudenau'), +(3687,'Biebergemünd'), +(3688,'Vaale'), +(3689,'Unterensingen'), +(3690,'Markdorf'), +(3691,'Weinstadt'), +(3692,'Korb'), +(3693,'Lauenförde'), +(3694,'Kropp'), +(3695,'Waldburg'), +(3696,'Grünenplan'), +(3697,'Delligsen'), +(3698,'Altertheim'), +(3699,'Barkelsby'), +(3700,'Güntersleben'), +(3701,'Adelmannsfelden'), +(3702,'Rimpar'), +(3703,'Röttingen'), +(3704,'Tauberrettersheim'), +(3705,'Hüttisheim'), +(3706,'Berka/ Werra'), +(3707,'Breitingen'), +(3708,'Estenfeld'), +(3709,'Vöhringen'), +(3710,'Ramsthal'), +(3711,'Soderstorf'), +(3712,'Adelshofen'), +(3713,'Pfaffenhofen a.d. Roth'), +(3714,'Worbis'), +(3715,'Iphofen'), +(3716,'Oberstreu'), +(3717,'Clausthal-Zellerfeld'), +(3718,'Oberschulenberg'), +(3719,'Kirchhaslach'), +(3720,'Gerolzhofen'), +(3721,'Todendorf'), +(3722,'Sontheim'), +(3723,'Stadtlauringen'), +(3724,'Gädheim'), +(3725,'Colmberg'), +(3726,'Oberrieden'), +(3727,'Groß Oesingen'), +(3728,'Trittau'), +(3729,'Gülzow'), +(3730,'Sulzdorf a.d. Lederhecke'), +(3731,'Schleusingen'), +(3732,'Germaringen'), +(3733,'Wachenroth'), +(3734,'Wolferstadt'), +(3735,'Scharbeutz'), +(3736,'Bischberg'), +(3737,'Stegaurach'), +(3738,'Hallstadt'), +(3739,'Veitsbronn'), +(3740,'Itzgrund'), +(3741,'Hohenfurch'), +(3742,'Garmisch-Partenkirchen'), +(3743,'Dassow'), +(3744,'Wolsdorf'), +(3745,'Stein'), +(3746,'Kissing'), +(3747,'Rott'), +(3748,'Großrudestedt'), +(3749,'Schloßvippach'), +(3750,'Steindorf'), +(3751,'Eresing'), +(3752,'Jüchen'), +(3753,'Esch'), +(3754,'Föhren'), +(3755,'Fell'), +(3756,'Klausen'), +(3757,'Monzelfeld'), +(3758,'Hochscheid'), +(3759,'Mayschoß'), +(3760,'Krummhörn'), +(3761,'Vellmar'), +(3762,'Husby'), +(3763,'Mainhardt'), +(3764,'Reher'), +(3765,'Gemünden a. Main'), +(3766,'Oberrot'), +(3767,'Gutsbezirk'), +(3768,'Eckersdorf'), +(3769,'Grabow'), +(3770,'Wolmirstedt'), +(3771,'Schwarzenbach a. Wald'), +(3772,'Crivitz'), +(3773,'Friedrichsruhe'), +(3774,'Lanitz-Hassel-Tal'), +(3775,'Molauer Land'), +(3776,'Holzkirchen'), +(3777,'Unterföhring'), +(3778,'Grafenwöhr'), +(3779,'Bad Wiessee'), +(3780,'Mücheln/ Geiseltal'), +(3781,'Beratzhausen'), +(3782,'Poppenricht'), +(3783,'Zorneding'), +(3784,'Goldbeck'), +(3785,'Arneburg'), +(3786,'Weyerbusch'), +(3787,'Lähden'), +(3788,'Obernheim-Kirchenarnbach'), +(3789,'Wangerooge'), +(3790,'Bingen am Rhein'), +(3791,'Sexau'), +(3792,'Dannenfels'), +(3793,'Aspisheim'), +(3794,'Grolsheim'), +(3795,'Rheinmünster'), +(3796,'Burbach'), +(3797,'Marnheim'), +(3798,'Hahnstätten'), +(3799,'Eltville am Rhein'), +(3800,'Meinerzhagen'), +(3801,'Bornich'), +(3802,'Patersberg'), +(3803,'Sulzburg'), +(3804,'Schmalenberg'), +(3805,'Ringsheim'), +(3806,'March'), +(3807,'Wenden'), +(3808,'Saulheim'), +(3809,'Eisenbach'), +(3810,'Baiersbronn'), +(3811,'Osthofen'), +(3812,'Waldems'), +(3813,'Bobenheim-Roxheim'), +(3814,'Linkenheim-Hochstetten'), +(3815,'Engden'), +(3816,'Isterberg'), +(3817,'Schüttorf'), +(3818,'Walchum'), +(3819,'Königswinter'), +(3820,'Ellenz-Poltersdorf'), +(3821,'Erpel'), +(3822,'Ennepetal'), +(3823,'Herrstein'), +(3824,'Neustadt b. Coburg'), +(3825,'Inning a. Ammersee'), +(3826,'Egenhofen'), +(3827,'Schwarzburg'), +(3828,'Aschersleben'), +(3829,'Neuhausen/Erzgeb.'), +(3830,'Berlin Karlshorst'), +(3831,'Sellin'), +(3832,'Radeburg'), +(3833,'Ferdinandshof'), +(3834,'Schipkau'), +(3835,'Bad Gottleuba-Berggießhübel'), +(3836,'Ueckermünde'), +(3837,'Königstein/Sächs.Schw.'), +(3838,'Burg/Spreewald'), +(3839,'Welzow'), +(3840,'Königswartha'), +(3841,'Gartz (Oder)'), +(3842,'Herrnhut'), +(3843,'Bedburg-Hau'), +(3844,'Alsdorf'), +(3845,'Simmerath'), +(3846,'Niederzier'), +(3847,'Neukirchen-Vluyn'), +(3848,'Dudeldorf'), +(3849,'Pluwig'), +(3850,'Pulheim'), +(3851,'Tholey'), +(3852,'Gevenich'), +(3853,'Rosendahl'), +(3854,'Titisee-Neustadt'), +(3855,'Driedorf'), +(3856,'Rastatt'), +(3857,'Bissendorf'), +(3858,'Oldenburg'), +(3859,'Küssaberg'), +(3860,'Mainz-Kastel'), +(3861,'Rheinzabern'), +(3862,'Alsheim'), +(3863,'Schwegenheim'), +(3864,'Dötlingen'), +(3865,'Rüthen'), +(3866,'Limburgerhof'), +(3867,'Steimel'), +(3868,'Kindsbach'), +(3869,'Waldböckelheim'), +(3870,'Eitelborn'), +(3871,'Malsburg-Marzell'), +(3872,'Kaub'), +(3873,'Otterberg'), +(3874,'Mettingen'), +(3875,'Hachenburg'), +(3876,'Lienen'), +(3877,'Waldleiningen'), +(3878,'Münchweiler an der Alsenz'), +(3879,'Ense'), +(3880,'Diez'), +(3881,'Hambach'), +(3882,'Aull'), +(3883,'Birlenbach'), +(3884,'Wallertheim'), +(3885,'Möhnesee'), +(3886,'Wilnsdorf'), +(3887,'Albisheim (Pfrimm)'), +(3888,'Nordrach'), +(3889,'Wachenheim an der Weinstraße'), +(3890,'Surwold'), +(3891,'Langeoog'), +(3892,'Bottenbach'), +(3893,'Waldesch'), +(3894,'Hünenfeld'), +(3895,'Mendig'), +(3896,'Berglangenbach'), +(3897,'Ruschberg'), +(3898,'Polch'), +(3899,'Osterrönfeld'), +(3900,'Eislingen/Fils'), +(3901,'Ottenbach'), +(3902,'Schenklengsfeld'), +(3903,'Laupheim'), +(3904,'Bovenden'), +(3905,'Wietzendorf'), +(3906,'Argenbühl'), +(3907,'Arnis'), +(3908,'Marienhof'), +(3909,'Sandberg'), +(3910,'Nordheim v.d. Rhön'), +(3911,'Wahlstedt'), +(3912,'Waigolshausen'), +(3913,'Marksuhl'), +(3914,'Krauthausen'), +(3915,'Niederstotzingen'), +(3916,'Trunkelsberg'), +(3917,'Holzgünz'), +(3918,'Sontheim an der Brenz'), +(3919,'Syrgenstein'), +(3920,'Schmalensee'), +(3921,'Kammeltal'), +(3922,'Selent'), +(3923,'Amerdingen'), +(3924,'Geiselwind'), +(3925,'Röfingen'), +(3926,'Apfeltrach'), +(3927,'Dietersheim'), +(3928,'Preußisch Oldendorf'), +(3929,'Salzkotten'), +(3930,'Einhausen'), +(3931,'Bösingen'), +(3932,'Remchingen'), +(3933,'Walzbachtal'), +(3934,'Hövelhof'), +(3935,'Weinheim'), +(3936,'Beverstedt'), +(3937,'Bad Vilbel'), +(3938,'Bad Lippspringe'), +(3939,'Wöllstadt'), +(3940,'Bahrenborstel'), +(3941,'Barenburg'), +(3942,'Kirchdorf'), +(3943,'Heusenstamm'), +(3944,'Bad Oeynhausen'), +(3945,'Brensbach'), +(3946,'Otzberg'), +(3947,'Steyerberg'), +(3948,'Lunden'), +(3949,'Magstadt'), +(3950,'Neuhaus (Oste)'), +(3951,'Tarmstedt'), +(3952,'Breddorf'), +(3953,'Oberriexingen'), +(3954,'Massenbachhausen'), +(3955,'Neustadt'), +(3956,'Schotten'), +(3957,'Mildstedt'), +(3958,'Wiedensahl'), +(3959,'Nordhastedt'), +(3960,'Kornwestheim'), +(3961,'Hösbach'), +(3962,'Walldürn'), +(3963,'Waldaschaff'), +(3964,'Waldaschaffer Forst'), +(3965,'Pohle'), +(3966,'Lauenau'), +(3967,'Messenkamp'), +(3968,'Hülsede etc'), +(3969,'Hardheim'), +(3970,'Kirchheim unter Teck'), +(3971,'Markt Erlbach'), +(3972,'Rügland'), +(3973,'Cremlingen'), +(3974,'Remlingen'), +(3975,'Lehre'), +(3976,'Bad Bodenteich'), +(3977,'Ornbau'), +(3978,'Lichtenau'), +(3979,'Huisheim'), +(3980,'Stettfeld'), +(3981,'Biberbach'), +(3982,'Großfahner'), +(3983,'Dachwig'), +(3984,'Fuchstal'), +(3985,'Untermerzbach'), +(3986,'Oberottmarshausen'), +(3987,'Heroldsbach'), +(3988,'Dannewerk'), +(3989,'Reichenbach an der Fils'), +(3990,'Bad Salzschlirf'), +(3991,'Körle'), +(3992,'Todenbüttel'), +(3993,'Aichelberg'), +(3994,'Halvesbostel'), +(3995,'Bad Boll'), +(3996,'Spangenberg'), +(3997,'Gruibingen'), +(3998,'Assamstadt'), +(3999,'Berg b.Neumarkt i.d.OPf.'), +(4000,'Manching'), +(4001,'Oberschleißheim'), +(4002,'Allershausen'), +(4003,'Karsdorf'), +(4004,'Helmbrechts'), +(4005,'Neubiberg'), +(4006,'Kirchdorf a.d. Amper'), +(4007,'Sulzbach-Rosenberg'), +(4008,'Gmund a. Tegernsee'), +(4009,'Salzatal'), +(4010,'Fichtelberg'), +(4011,'Attenhofen'), +(4012,'Irschenberg'), +(4013,'Moosburg a.d. Isar'), +(4014,'Rieden'), +(4015,'Tangermünde'), +(4016,'Sinzing'), +(4017,'Schkopau'), +(4018,'Bad Feilnbach'), +(4019,'Forstern'), +(4020,'Hohenthann'), +(4021,'Maitenbeth'), +(4022,'Haag i. OB'), +(4023,'Milower Land'), +(4024,'Schollene'), +(4025,'Nennhausen'), +(4026,'Nußdorf a. Inn'), +(4027,'Zeitlarn'), +(4028,'Rhinow'), +(4029,'Gößnitz'), +(4030,'Lichtentanne'), +(4031,'Crinitzberg'), +(4032,'Lehnin'), +(4033,'Weiding'), +(4034,'Feichten a.d. Alz'), +(4035,'Lauter-Bernsbach'), +(4036,'Fridolfing'), +(4037,'Blaibach'), +(4038,'Plattling'), +(4039,'Oberwiesenthal'), +(4040,'Osterhofen'), +(4041,'Demmin'), +(4042,'Rakow'), +(4043,'Aldersbach'), +(4044,'Lalling'), +(4045,'Bayerbach'), +(4046,'Pockau-Lengefeld (Lengefeld)'), +(4047,'Garz/ Rügen'), +(4048,'Brand-Erbisdorf'), +(4049,'Großhartmannsdorf'), +(4050,'Thurmansbang'), +(4051,'Berlin Lankwitz'), +(4052,'Grafenau'), +(4053,'Murnau a. Staffelsee'), +(4054,'Rohrenfels'), +(4055,'Pampow'), +(4056,'Hiltpoltstein'), +(4057,'Kasendorf'), +(4058,'Roßleben-Wiehe'), +(4059,'Gehofen'), +(4060,'Germering'), +(4061,'Prezelle'), +(4062,'Ottensoos'), +(4063,'Stolpen'), +(4064,'Dürrröhrsdorf-Dittersbach'), +(4065,'Burkau'), +(4066,'Forst/ Lausitz'), +(4067,'Ebersbach-Neugersdorf'), +(4068,'Salzweg'), +(4069,'Hohenau'), +(4070,'Finsterwalde'), +(4071,'Moritzburg'), +(4072,'Anklam'), +(4073,'Ruhland'), +(4074,'Bawinkel'), +(4075,'Andervenne'), +(4076,'Beesten'), +(4077,'Freren'), +(4078,'Messingen'), +(4079,'Thuine'), +(4080,'Rheurdt'), +(4081,'Stadtkyll'), +(4082,'Kyllburg'), +(4083,'Erkrath'), +(4084,'Morbach'), +(4085,'Pollenfeld'), +(4086,'Schwaig b. Nürnberg'), +(4087,'Behringersdorfer Forst'), +(4088,'Bad Blankenburg'), +(4089,'Tutzing'), +(4090,'Trebel'), +(4091,'Mansfeld'), +(4092,'Olching'), +(4093,'Lübstorf'), +(4094,'Lenggries'), +(4095,'Melsbach'), +(4096,'Nümbrecht'), +(4097,'Reifenberg'), +(4098,'Nordkirchen'), +(4099,'Höheinöd'), +(4100,'Winningen'), +(4101,'Birnbach'), +(4102,'Horgenzell'), +(4103,'Lütjenwestedt'), +(4104,'Tackesdorf'), +(4105,'Altshausen'), +(4106,'Kirchheim (Hessen)'), +(4107,'Jagel'), +(4108,'Lottorf'), +(4109,'Sauensiek'), +(4110,'Althütte'), +(4111,'Gehrden'), +(4112,'Apensen'), +(4113,'Kalbach'), +(4114,'Selters'), +(4115,'Rheinstetten'), +(4116,'Nierstein'), +(4117,'Schifferstadt'), +(4118,'Hofheim am Taunus'), +(4119,'Altenkirchen (Westerwald)'), +(4120,'Wyhl'), +(4121,'Niederkirchen'), +(4122,'Hamm (Sieg)'), +(4123,'Schallstadt'), +(4124,'Steinen'), +(4125,'Riegel Kaiserstuhl'), +(4126,'Sohren'), +(4127,'Bad Hönningen'), +(4128,'Sinzig'), +(4129,'Senheim'), +(4130,'Berglern'), +(4131,'Pastetten'), +(4132,'Pressath'), +(4133,'Röslau'), +(4134,'Pullenreuth'), +(4135,'Aken (Elbe)'), +(4136,'Schnaittenbach'), +(4137,'Langquaid'), +(4138,'Isen'), +(4139,'Hohenmölsen'), +(4140,'Herrngiersdorf'), +(4141,'Ramerberg'), +(4142,'Güstrow'), +(4143,'Neustadt a.d. Waldnaab'), +(4144,'Bechtsried'), +(4145,'Eiselfing'), +(4146,'Aufhausen'), +(4147,'Aschau i. Chiemgau'), +(4148,'Bach an der Donau'), +(4149,'Markneukirchen'), +(4150,'Oranienbaum-Wörlitz'), +(4151,'Brennberg'), +(4152,'Obing'), +(4153,'Walderbach'), +(4154,'Marlow'), +(4155,'Thanstein'), +(4156,'Schönheide'), +(4157,'Taucha'), +(4158,'Garching a.d. Alz'), +(4159,'St. Georgen'), +(4160,'Traitsching'), +(4161,'Simbach'), +(4162,'Franzburg'), +(4163,'Richtenberg'), +(4164,'Otzing'), +(4165,'Niepars'), +(4166,'Bad Reichenhall'), +(4167,'Waldheim'), +(4168,'Grimmen'), +(4169,'Egglham'), +(4170,'Trebbin'), +(4171,'Grünhainichen'), +(4172,'Hiddensee'), +(4173,'Berlin Reinickendorf'), +(4174,'Krien'), +(4175,'Berlin Schöneberg'), +(4176,'Lehesten'), +(4177,'Tschirn'), +(4178,'Presseck'), +(4179,'Banzkow'), +(4180,'Sukow'), +(4181,'Bismark'), +(4182,'Schnackenburg'), +(4183,'Tangerhütte'), +(4184,'Creußen'), +(4185,'Auerbach i.d. OPf.'), +(4186,'Neukloster'), +(4187,'Sauerlach'), +(4188,'Freyburg'), +(4189,'Balgstädt'), +(4190,'Emtmannsberg'), +(4191,'Ziegenrück'), +(4192,'Pliening'), +(4193,'Bützow'), +(4194,'Eisenberg'), +(4195,'Gösen'), +(4196,'Hainspitz'), +(4197,'Nittendorf'), +(4198,'Neukirch'), +(4199,'Warthausen'), +(4200,'Mulfingen'), +(4201,'Alfeld (Leine)'), +(4202,'Ebersburg'), +(4203,'Schenefeld'), +(4204,'Bütthard'), +(4205,'Zell a. Main'), +(4206,'Retzstadt'), +(4207,'Ochsenhausen'), +(4208,'Abtsgmünd'), +(4209,'Heubach'), +(4210,'Rot am See'), +(4211,'Ochsenfurt'), +(4212,'Eggestorf'), +(4213,'Vierhöfen'), +(4214,'Windelsbach'), +(4215,'Probsteierhagen'), +(4216,'Ahnsbeck'), +(4217,'Eimke'), +(4218,'Waldstetten'), +(4219,'Betzendorf'), +(4220,'Fargau-Pratjau'), +(4221,'Bardowick'), +(4222,'Wittorf'), +(4223,'Wilburgstetten'), +(4224,'Hohenhorn'), +(4225,'Reinfeld (Holstein)'), +(4226,'Sprakensehl'), +(4227,'Bosau'), +(4228,'Flachslanden'), +(4229,'Spenge'), +(4230,'Ketsch'), +(4231,'Oberndorf am Neckar'), +(4232,'Epfendorf'), +(4233,'Münchhausen'), +(4234,'Wildberg'), +(4235,'Wellendingen'), +(4236,'Scholen'), +(4237,'Pohlheim'), +(4238,'Korbach'), +(4239,'Dotternhausen'), +(4240,'Ötisheim'), +(4241,'Herrenberg'), +(4242,'Kirchhain'), +(4243,'Groß-Umstadt'), +(4244,'Bisingen'), +(4245,'Hechingen'), +(4246,'Ranstadt'), +(4247,'Hammersbach'), +(4248,'Neufeld'), +(4249,'Schmedeswurth'), +(4250,'Erlensee'), +(4251,'Schaafheim'), +(4252,'Dußlingen'), +(4253,'Brunsbüttel'), +(4254,'Siegelsbach'), +(4255,'Dettenhausen'), +(4256,'Niederwöhren'), +(4257,'Neckarzimmern'), +(4258,'Oederquart'), +(4259,'Talheim'), +(4260,'Sankt Margarethen'), +(4261,'Untergruppenbach'), +(4262,'Bothel'), +(4263,'Kirchwalsede'), +(4264,'Hohentengen'), +(4265,'Ahnatal'), +(4266,'Grebenau'), +(4267,'Oberboihingen'), +(4268,'Zwiefalten'), +(4269,'Köngen'), +(4270,'Glückstadt'), +(4271,'Grabenstetten'), +(4272,'Reimlingen'), +(4273,'Reinstorf'), +(4274,'Boizenburg'), +(4275,'Gresse'), +(4276,'Calberlah'), +(4277,'Welden'), +(4278,'Großvargula'), +(4279,'Tonna'), +(4280,'Jembke'), +(4281,'Roßtal'), +(4282,'Beetzendorf'), +(4283,'Rohrberg'), +(4284,'Jübar'), +(4285,'Süpplingen'), +(4286,'Frellstedt'), +(4287,'Warberg'), +(4288,'Velpke'), +(4289,'Hirschaid'), +(4290,'Zapfendorf'), +(4291,'Hofstetten'), +(4292,'Huy'), +(4293,'Wessobrunn'), +(4294,'Großenbrode'), +(4295,'Ehekirchen'), +(4296,'Merzhausen'), +(4297,'Rüdesheim am Rhein'), +(4298,'Glandorf'), +(4299,'Sundern'), +(4300,'Oestrich-Winkel'), +(4301,'Höhn'), +(4302,'Gutach im Breisgau'), +(4303,'Esthal'), +(4304,'Bernau im Schwarzwald'), +(4305,'Holdorf'), +(4306,'Scheibenhardt'), +(4307,'Mühlenbach'), +(4308,'Luckau'), +(4309,'Waldrehna'), +(4310,'Heideblick'), +(4311,'Fürstlich Drehna'), +(4312,'Binz'), +(4313,'Berlin Bohnsdorf'), +(4314,'Biesenthal'), +(4315,'Philippsreut'), +(4316,'Königsbrück'), +(4317,'Torgelow'), +(4318,'Eisenhüttenstadt'), +(4319,'Rothenburg/O.L.'), +(4320,'Loburg'), +(4321,'Leitzkau'), +(4322,'Langenpreising'), +(4323,'Burglengenfeld'), +(4324,'Weißendorf'), +(4325,'Rehau'), +(4326,'Genthin'), +(4327,'Hohenseeden'), +(4328,'Zabakuck'), +(4329,'Elmenhorst/Lichtenhagen'), +(4330,'Buch a. Erlbach'), +(4331,'Thiersheim'), +(4332,'Adorf'), +(4333,'Fuchsmühl'), +(4334,'Pirk'), +(4335,'Postau'), +(4336,'Dierhagen'), +(4337,'Geiselhöring'), +(4338,'Schleching'), +(4339,'Tessin'), +(4340,'Grammow'), +(4341,'Gerzen'), +(4342,'Gstadt a. Chiemsee'), +(4343,'Loiching'), +(4344,'Hirschfeld'), +(4345,'Egglkofen'), +(4346,'Gangkofen'), +(4347,'Langenleuba-Niederhain'), +(4348,'Geithain'), +(4349,'Bogen'), +(4350,'Limbach-Oberfrohna'), +(4351,'Zahna-Elster'), +(4352,'Mehring'), +(4353,'Neukirchen/Erzgeb.'), +(4354,'Geringswalde'), +(4355,'Wermsdorf'), +(4356,'Gelenau/Erzgeb.'), +(4357,'Drachselsried'), +(4358,'Marienberg'), +(4359,'Leegebruch'), +(4360,'Strehla'), +(4361,'Berlin Halensee'), +(4362,'Großenhain'), +(4363,'Ebersbach'), +(4364,'Meißen'), +(4365,'Weichs'), +(4366,'Wolfratshausen'), +(4367,'Hebertshausen'), +(4368,'Wismar'), +(4369,'Untersteinach'), +(4370,'Rohrbach'), +(4371,'Weigendorf'), +(4372,'Güsten'), +(4373,'Kupferberg'), +(4374,'Brüel'), +(4375,'Parsberg'), +(4376,'Grasbrunn'), +(4377,'Köditz'), +(4378,'Titting'), +(4379,'Altenkunstadt'), +(4380,'Walting'), +(4381,'Greding'), +(4382,'Freystadt'), +(4383,'Eichenau'), +(4384,'Schwabhausen'), +(4385,'Lehnstedt'), +(4386,'Markt Taschendorf'), +(4387,'Trautskirchen'), +(4388,'Uehlfeld'), +(4389,'Oberhaid'), +(4390,'Halblech'), +(4391,'Baunach'), +(4392,'Eisfeld'), +(4393,'Auengrund'), +(4394,'Nordendorf'), +(4395,'Greußen Clingen Großenehrich'), +(4396,'Adelsdorf'), +(4397,'Rennau'), +(4398,'Querenhorst'), +(4399,'Mariental'), +(4400,'Grasleben'), +(4401,'Egling a.d. Paar'), +(4402,'Hohenpeißenberg'), +(4403,'Rödental'), +(4404,'Obergriesbach'), +(4405,'Hohnstein'), +(4406,'Spreetal'), +(4407,'Elsterheide'), +(4408,'Neukirch/Lausitz'), +(4409,'Sebnitz'), +(4410,'Wilthen'), +(4411,'Berlin Weißensee'), +(4412,'Dippoldiswalde'), +(4413,'Geilenkirchen'), +(4414,'Kerken'), +(4415,'Schleiden'), +(4416,'Hamminkeln'), +(4417,'Jünkerath'), +(4418,'Wiltingen'), +(4419,'Voerde (Niederrhein)'), +(4420,'Wadern'), +(4421,'Langenfeld'), +(4422,'Dernau'), +(4423,'Kürten'), +(4424,'Mohrkirch'), +(4425,'Rügge'), +(4426,'Blaubeuren'), +(4427,'Sigmarszell'), +(4428,'Grünsfeld'), +(4429,'Vogt'), +(4430,'Nortorf'), +(4431,'Wolpertshausen'), +(4432,'Friedewald'), +(4433,'Leinzell'), +(4434,'Eschwege'), +(4435,'Creglingen'), +(4436,'Aitrach'), +(4437,'Illerrieden'), +(4438,'Bönebüttel'), +(4439,'Kaltennordheim'), +(4440,'Seesen'), +(4441,'Memmingen'), +(4442,'Boos'), +(4443,'Lauchheim'), +(4444,'Wolfertschwenden'), +(4445,'Hohne'), +(4446,'Wensin'), +(4447,'Ebstorf'), +(4448,'Illesheim'), +(4449,'Oberscheinfeld'), +(4450,'Wonfurt'), +(4451,'Ederheim'), +(4452,'Unteregg'), +(4453,'Marktoffingen'), +(4454,'Artlenburg'), +(4455,'Rauhenebrach'), +(4456,'Glasau'), +(4457,'Geseke'), +(4458,'Oberhausen-Rheinhausen'), +(4459,'Hatzfeld'), +(4460,'Wetzlar Garbeinheim'), +(4461,'Sulingen'), +(4462,'Aventoft'), +(4463,'Garding'), +(4464,'Osterhever'), +(4465,'Poppenbüll'), +(4466,'Ober-Ramstadt'), +(4467,'Hausen ob Verena'), +(4468,'Maulbronn'), +(4469,'Weil der Stadt'), +(4470,'Rielasingen-Worblingen'), +(4471,'Obernheim'), +(4472,'Wiernsheim'), +(4473,'Ihlienworth'), +(4474,'Kalletal'), +(4475,'Rutesheim'), +(4476,'Uelvesbüll'), +(4477,'Witzwort'), +(4478,'Glauburg'), +(4479,'Kirtorf'), +(4480,'Großenwiehe'), +(4481,'Lindewitt'), +(4482,'Leese'), +(4483,'Windbergen'), +(4484,'Goldbach'), +(4485,'Nienburg/Weser'), +(4486,'Pfullingen'), +(4487,'Lügde'), +(4488,'Lauenhagen'), +(4489,'Ostfildern'), +(4490,'Drochtersen'), +(4491,'Heiligenberg'), +(4492,'Daisendorf'), +(4493,'Steimbke'), +(4494,'Eberstadt'), +(4495,'Hofgeismar'), +(4496,'Harrislee'), +(4497,'Stadtprozelten'), +(4498,'Beidenfleth'), +(4499,'Klein Kampen'), +(4500,'Widdern'), +(4501,'Wiesthal'), +(4502,'Tetenhusen'), +(4503,'Wiehl'), +(4504,'Hörstel'), +(4505,'Straßenhaus'), +(4506,'Rhauderfehn'), +(4507,'Eßweiler'), +(4508,'Werlte'), +(4509,'Vrees'), +(4510,'Lahn'), +(4511,'Thaleischweiler-Fröschen'), +(4512,'Vallendar'), +(4513,'Rehborn'), +(4514,'Wiesmoor'), +(4515,'Münchweiler an der Rodalb'), +(4516,'Barßel'), +(4517,'Heltersberg'), +(4518,'Trippstadt'), +(4519,'Ostbevern'), +(4520,'Teningen'), +(4521,'Maulburg'), +(4522,'Ebringen'), +(4523,'Gebhardshain'), +(4524,'Alzey'), +(4525,'Taunusstein'), +(4526,'Wackernheim'), +(4527,'Haiger'), +(4528,'Höchenschwand'), +(4529,'Dogern'), +(4530,'Steinmauern'), +(4531,'Warstein'), +(4532,'Bad Camberg'), +(4533,'Weingarten (Pfalz)'), +(4534,'Kuhardt'), +(4535,'Itzehoe'), +(4536,'Fintel'), +(4537,'Lauenbrück'), +(4538,'Ebenweiler'), +(4539,'Neustadt a. Main'), +(4540,'Holzmaden'), +(4541,'Nübel'), +(4542,'Busdorf'), +(4543,'Weingarten'), +(4544,'Heroldstatt'), +(4545,'Alpenrod'), +(4546,'Unnau'), +(4547,'Bretzenheim'), +(4548,'Mudersbach'), +(4549,'Hettenleidelheim'), +(4550,'Waldmohr'), +(4551,'Neubörger'), +(4552,'Neulehe'), +(4553,'Weißenfels'), +(4554,'Stößen'), +(4555,'Selb'), +(4556,'Lützen'), +(4557,'Großkarolinenfeld'), +(4558,'Krummennaab'), +(4559,'Ergolding'), +(4560,'Neufahrn i. NB'), +(4561,'Neubeuern'), +(4562,'Roggentin'), +(4563,'Broderstorf'), +(4564,'Schwindegg'), +(4565,'Bruck i.d. OPf.'), +(4566,'Zwenkau'), +(4567,'Muldestausee'), +(4568,'Wörth a.d. Isar'), +(4569,'Gottfrieding'), +(4570,'Niemegk'), +(4571,'Oberschneiding'), +(4572,'Colditz'), +(4573,'Oberlungwitz'), +(4574,'Breitenbrunn/Erzgeb.'), +(4575,'Schwarzach'), +(4576,'Burkhardtsdorf'), +(4577,'Eschlkam'), +(4578,'Buchhofen'), +(4579,'Penzlin'), +(4580,'Falkensee'), +(4581,'Berlin Wilhelmstadt'), +(4582,'Berlin Falkenhagener Feld'), +(4583,'Dranske'), +(4584,'Frauenau'), +(4585,'Fürstenzell'), +(4586,'Golßen'), +(4587,'Schönefeld'), +(4588,'Kulmbach'), +(4589,'Dachau'), +(4590,'Groß Krankow'), +(4591,'Neudrossenfeld'), +(4592,'Pilsach'), +(4593,'Altmannstein'), +(4594,'Welsleben'), +(4595,'Biere'), +(4596,'Eickendorf'), +(4597,'Domsühl'), +(4598,'Mestlin'), +(4599,'Obere Warnow'), +(4600,'Mainburg'), +(4601,'Kühlungsborn'), +(4602,'Vilseck'), +(4603,'Moosach'), +(4604,'Mauern'), +(4605,'Erding'), +(4606,'Inchenhofen'), +(4607,'Schrobenhausen'), +(4608,'Mittenwald'), +(4609,'Pöcking'), +(4610,'Föhr'), +(4611,'Bürstadt'), +(4612,'Brigachtal'), +(4613,'Barver'), +(4614,'Dickel'), +(4615,'Hemsloh'), +(4616,'Rehden'), +(4617,'Wetschen'), +(4618,'Wehrblecker Heide'), +(4619,'Wehrheim'), +(4620,'Neuweiler'), +(4621,'Horb am Neckar'), +(4622,'Lahntal'), +(4623,'Schiffdorf'), +(4624,'Schriesheim'), +(4625,'Wiesloch'), +(4626,'Ritterhude'), +(4627,'Egesheim'), +(4628,'Haina'), +(4629,'Oberzent'), +(4630,'Steißlingen'), +(4631,'Helmstadt-Bargen'), +(4632,'Böblingen'), +(4633,'Weil im Schönbuch'), +(4634,'Helpsen'), +(4635,'Seggebruch'), +(4636,'Kefenrod'), +(4637,'Pliezhausen'), +(4638,'Auetal'), +(4639,'Bietigheim-Bissingen'), +(4640,'Eystrup'), +(4641,'Hassel'), +(4642,'Pfullendorf'), +(4643,'Buchen'), +(4644,'Zierenberg'), +(4645,'Calden'), +(4646,'Trendelburg'), +(4647,'Dellstedt'), +(4648,'Jossgrund'), +(4649,'Höpfingen'), +(4650,'Künzell'), +(4651,'Süßen'), +(4652,'Neu Wulmstorf'), +(4653,'Himmelstadt'), +(4654,'Sulzbach-Laufen'), +(4655,'Höchberg'), +(4656,'Hausen b. Würzburg'), +(4657,'Euerbach'), +(4658,'Schnelldorf'), +(4659,'Barsbüttel'), +(4660,'Bad Grönenbach'), +(4661,'Dietmannsried'), +(4662,'Sülfeld'), +(4663,'Bad Segeberg'), +(4664,'Wendeburg'), +(4665,'Müden (Aller)'), +(4666,'Marktbergel'), +(4667,'Donnersdorf'), +(4668,'Ummern'), +(4669,'Finningen'), +(4670,'Sollstedt'), +(4671,'Ehingen'), +(4672,'Rammingen'), +(4673,'Isenbüttel'), +(4674,'Alerheim'), +(4675,'Dachsbach'), +(4676,'Schwangau'), +(4677,'Viereth-Trunstadt'), +(4678,'Stoetze'), +(4679,'Zernien'), +(4680,'Vellahn'), +(4681,'Thaining'), +(4682,'Friedberg'), +(4683,'Klötze'), +(4684,'Apenburg-Winterfeld'), +(4685,'Bayersoien'), +(4686,'Moorenweis'), +(4687,'Weinböhla'), +(4688,'Werneuchen'), +(4689,'Wildau'), +(4690,'Eberswalde'), +(4691,'Haidmühle'), +(4692,'Spreenhagen'), +(4693,'Liebstadt'), +(4694,'Bahretal'), +(4695,'Fuldabrück'), +(4696,'Unlingen'), +(4697,'Oberweser'), +(4698,'Haseldorf'), +(4699,'Hann. Münden'), +(4700,'Gutsbezirk Reinhardswald'), +(4701,'Tauberbischofsheim'), +(4702,'Lüerdissen'), +(4703,'Grünkraut'), +(4704,'Lindau (Bodensee)'), +(4705,'Seelow'), +(4706,'Lietzen'), +(4707,'Bautzen'), +(4708,'Brieskow-Finkenheerd'), +(4709,'Oderwitz'), +(4710,'Saarburg'), +(4711,'Willich'), +(4712,'Langsur'), +(4713,'Pelm'), +(4714,'Neroth'), +(4715,'Kell am See'), +(4716,'Schmelz'), +(4717,'Trittenheim'), +(4718,'Sulzbach/Saar'), +(4719,'Schalksmühle'), +(4720,'Wangerland'), +(4721,'Hübingen'), +(4722,'Niederelbert'), +(4723,'Nauroth'), +(4724,'Quakenbrück'), +(4725,'Gehrde'), +(4726,'Sassenberg'), +(4727,'Gau-Algesheim'), +(4728,'Billigheim-Ingenheim'), +(4729,'Birkweiler'), +(4730,'Hilchenbach'), +(4731,'Laufenburg (Baden)'), +(4732,'Lindenberg'), +(4733,'Dierdorf'), +(4734,'Urbar (bei Koblenz)'), +(4735,'Spay'), +(4736,'Uplengen'), +(4737,'Ehrenkirchen'), +(4738,'Merzen'), +(4739,'Nassau'), +(4740,'Rhaunen'), +(4741,'Much'), +(4742,'Lonnig'), +(4743,'Herdecke'), +(4744,'Neustadt (Wied)'), +(4745,'Hennweiler'), +(4746,'Sankt Wendel'), +(4747,'Ottweiler'), +(4748,'Cochem'), +(4749,'Emsbüren'), +(4750,'Beselich'), +(4751,'Bad Sassendorf'), +(4752,'Ovelgönne'), +(4753,'Wettstetten'), +(4754,'Petershausen'), +(4755,'Plech'), +(4756,'Stadtsteinach'), +(4757,'Seehausen'), +(4758,'Werben'), +(4759,'Leppin'), +(4760,'Ludwigschorgast'), +(4761,'Bad Berneck im Fichtelgebirge'), +(4762,'Miesbach'), +(4763,'Anzing'), +(4764,'Freihung'), +(4765,'Frankleben'), +(4766,'Nagel'), +(4767,'Zedlitz'), +(4768,'Leuna'), +(4769,'Friedenfels'), +(4770,'Albaching'), +(4771,'Dummerstorf'), +(4772,'Braunichswalde'), +(4773,'Großenstein'), +(4774,'Schwarzach b. Nabburg'), +(4775,'Rathenow'), +(4776,'Bad Brambach'), +(4777,'Wittstock/Dosse'), +(4778,'Heiligengrabe'), +(4779,'Schnaitsee'), +(4780,'Auerbach/Vogtl.'), +(4781,'Engelsberg'), +(4782,'Pilsting'), +(4783,'Pemfling'), +(4784,'Waldmünchen'), +(4785,'Schlema'), +(4786,'Treuenbrietzen'), +(4787,'Kirchanschöring'), +(4788,'Hartmannsdorf'), +(4789,'Kötzting'), +(4790,'Amtsberg'), +(4791,'Flöha'), +(4792,'Miltzow'), +(4793,'Sponholz'), +(4794,'Berlin Schmargendorf'), +(4795,'Fürstenstein'), +(4796,'Gützkow'), +(4797,'Röderland'), +(4798,'Großthiemig'), +(4799,'Wilsdruff'), +(4800,'Tharandt'), +(4801,'Bernau'), +(4802,'Berlin Alt-Hohenschönhausen'), +(4803,'Berlin Friedrichsfelde'), +(4804,'Teupitz'), +(4805,'Bestensee'), +(4806,'Eggesin'), +(4807,'Göda'), +(4808,'Odelzhausen'), +(4809,'Pähl'), +(4810,'Landsberied'), +(4811,'Ludwigslust'), +(4812,'Lenzen'), +(4813,'Weichering'), +(4814,'Benediktbeuern'), +(4815,'Teuschnitz'), +(4816,'Kamp-Lintfort'), +(4817,'Preist'), +(4818,'Schermbeck'), +(4819,'Borken'), +(4820,'Swisttal'), +(4821,'Hoogstede'), +(4822,'Ahrbrück'), +(4823,'Heckenbach'), +(4824,'Hönningen'), +(4825,'Kesseling'), +(4826,'Rech'), +(4827,'Ürzig'), +(4828,'Merchweiler'), +(4829,'Rammelsbach'), +(4830,'Detern'), +(4831,'Mackenbach'), +(4832,'Hückeswagen'), +(4833,'Radevormwald'), +(4834,'Asbach'), +(4835,'Leer'), +(4836,'Gelsenkirchen Rotthausen'), +(4837,'Schöppingen'), +(4838,'Norderney'), +(4839,'Oberlangen'), +(4840,'Niederlangen'), +(4841,'Bad Breisig'), +(4842,'Waldorf'), +(4843,'Gönnersdorf'), +(4844,'Waldsee'), +(4845,'Ganderkesee'), +(4846,'Twistringen'), +(4847,'Harpstedt'), +(4848,'Groß Ippener'), +(4849,'Colnrade'), +(4850,'Pfalzgrafenweiler'), +(4851,'Weiterstadt'), +(4852,'Bad Homburg v.d. Höhe'), +(4853,'Königsbach-Stein'), +(4854,'Wetter'), +(4855,'Wettenberg'), +(4856,'Weimar (Lahn)'), +(4857,'Mühltal'), +(4858,'Borchen'), +(4859,'Mörlenbach'), +(4860,'Diepenau'), +(4861,'Burgwald'), +(4862,'Gottmadingen'), +(4863,'Vlotho'), +(4864,'Bondorf'), +(4865,'Neckarsteinach'), +(4866,'Rauschenberg'), +(4867,'Heimsheim'), +(4868,'Bodelshausen'), +(4869,'Ditzingen'), +(4870,'Leonberg'), +(4871,'Lamstedt'), +(4872,'Ofterdingen'), +(4873,'Hirzenhain'), +(4874,'Großwallstadt'), +(4875,'Stadthagen'), +(4876,'Hessigheim'), +(4877,'Untereisesheim'), +(4878,'Bad Pyrmont'), +(4879,'Drakenburg'), +(4880,'Stöckse'), +(4881,'Wunstorf'), +(4882,'Bad Soden-Salmünster'), +(4883,'Löwenstein'), +(4884,'Handewitt'), +(4885,'Spiegelberg'), +(4886,'Gräfendorf'), +(4887,'Amtzell'), +(4888,'Prisdorf'), +(4889,'Ruppertshofen'), +(4890,'Oberdischingen'), +(4891,'Rellingen'), +(4892,'Thüngen'), +(4893,'Vellberg'), +(4894,'Böhmenkirch'), +(4895,'Kappeln'), +(4896,'Burgdorf'), +(4897,'Randersacker'), +(4898,'Wain'), +(4899,'Bernstadt'), +(4900,'Oldendorf (Luhe)'), +(4901,'Amelinghausen'), +(4902,'Rehlingen'), +(4903,'Ellwangen (Jagst)'), +(4904,'Nersingen'), +(4905,'Osterode am Harz'), +(4906,'Duderstadt'), +(4907,'Eisenheim'), +(4908,'Höfer'), +(4909,'Glinde'), +(4910,'Schwentinental'), +(4911,'Radbruch'), +(4912,'Schönberg (Holstein)'), +(4913,'Kröppelshagen-Fahrendorf'), +(4914,'Markt Rettenbach'), +(4915,'Wallerstein'), +(4916,'Ahrensbök'), +(4917,'Vordorf'), +(4918,'Rötgesbüttel'), +(4919,'Oberaurach'), +(4920,'Weihenzell'), +(4921,'Kissenbrück'), +(4922,'Wasbüttel'), +(4923,'Vestenbergsgreuth'), +(4924,'Biessenhofen'), +(4925,'Burgebrach'), +(4926,'Zella-Mehlis'), +(4927,'Pansdorf'), +(4928,'Rieden am Forggensee'), +(4929,'Harztor'), +(4930,'Großhabersdorf'), +(4931,'Langweid a. Lech'), +(4932,'Oberndorf a.Lech'), +(4933,'Reichling'), +(4934,'Schöningen'), +(4935,'Unterammergau'), +(4936,'Stadtilm'), +(4937,'Ilmtal'), +(4938,'Oberammergau'), +(4939,'Dannenberg'), +(4940,'Betzdorf'), +(4941,'Edewecht'), +(4942,'Herdorf'), +(4943,'Garrel'), +(4944,'Appenweier'), +(4945,'Cloppenburg'), +(4946,'Bad Laer'), +(4947,'Ruppertsberg'), +(4948,'Herzebrock-Clarholz'), +(4949,'Ühlingen-Birkendorf'), +(4950,'Hörnum (Sylt)'), +(4951,'Germersheim'), +(4952,'Rüsselsheim'), +(4953,'Aichhalden'), +(4954,'Schlitz'), +(4955,'Niederaula'), +(4956,'Alt Duvenstedt'), +(4957,'Dassel'), +(4958,'Fahrdorf'), +(4959,'Schelklingen'), +(4960,'Nieste'), +(4961,'Kellinghusen'), +(4962,'Fulda'), +(4963,'Kamen'), +(4964,'Morsbach'), +(4965,'Bad Ems'), +(4966,'Weiler bei Bingen'), +(4967,'Bönen'), +(4968,'Waldalgesheim'), +(4969,'Westerstede'), +(4970,'Weida'), +(4971,'Harth-Pöllnitz'), +(4972,'Wünschendorf'), +(4973,'Goldberg'), +(4974,'Kabelsketal'), +(4975,'Neuensalz'), +(4976,'Perkam'), +(4977,'Michelsneukirchen'), +(4978,'Grabenstätt'), +(4979,'Winhöring'), +(4980,'Kirchweidach'), +(4981,'Dommitzsch'), +(4982,'Furth i. Wald'), +(4983,'Stavenhagen'), +(4984,'Oberpöring'), +(4985,'Deggendorf'), +(4986,'Schlettau'), +(4987,'Mügeln'), +(4988,'Neukirchen b. Hl. Blut'), +(4989,'Zachenberg'), +(4990,'Simbach a. Inn'), +(4991,'Bad Birnbach'), +(4992,'Berlin Gatow'), +(4993,'Bentzin'), +(4994,'Bergen/ Rügen'), +(4995,'Gröditz'), +(4996,'Wülknitz'), +(4997,'Röderaue'), +(4998,'Blankenfelde-Mahlow'), +(4999,'Wandlitz'), +(5000,'Berlin Französisch Buchholz'), +(5001,'Karlsburg'), +(5002,'Fürsteneck'), +(5003,'Bergatreute'), +(5004,'Greußenheim'), +(5005,'Eberhardzell'), +(5006,'Kummerfeld'), +(5007,'Gnutz'), +(5008,'Großalmerode'), +(5009,'Thüngershem'), +(5010,'Oberthulba'), +(5011,'Warder'), +(5012,'Lehrte'), +(5013,'Harsum'), +(5014,'Bad Gandersheim'), +(5015,'Harmstorf'), +(5016,'Vacha'), +(5017,'Unterbreizbach'), +(5018,'Mielkendorf'), +(5019,'Rottendorf'), +(5020,'Neenstetten'), +(5021,'Balzheim'), +(5022,'Satteldorf'), +(5023,'Sievershütten'), +(5024,'Oststeinbek'), +(5025,'Weitnau'), +(5026,'Kronburg'), +(5027,'Edemissen'), +(5028,'Obernbreit'), +(5029,'Leipheim'), +(5030,'Bergrheinfeld'), +(5031,'Eicklingen'), +(5032,'Wiggensbach'), +(5033,'Ammersbek'), +(5034,'Niederrieden'), +(5035,'Giengen an der Brenz'), +(5036,'Kettershausen'), +(5037,'Schwebheim'), +(5038,'Rettenberg'), +(5039,'Tensfeld'), +(5040,'Bad Hindelang'), +(5041,'Seedorf'), +(5042,'Lauingen (Donau)'), +(5043,'Oberdachstetten'), +(5044,'Wildpoldsried'), +(5045,'Aidhausen'), +(5046,'Römhild'), +(5047,'Hankensbüttel'), +(5048,'Obernholz'), +(5049,'Dedelstorf'), +(5050,'Friesenried'), +(5051,'Baudenbach'), +(5052,'Großengottern'), +(5053,'Heroldishausen'), +(5054,'Waldfeucht'), +(5055,'Heinsberg'), +(5056,'Rees'), +(5057,'Rittersdorf'), +(5058,'Kreuzau'), +(5059,'Pellingen'), +(5060,'Serrig'), +(5061,'Schweich'), +(5062,'Schillingen'), +(5063,'Großrosseln'), +(5064,'Nonnweiler'), +(5065,'Maring-Noviand'), +(5066,'Meckenheim'), +(5067,'Bruchhausen'), +(5068,'Unkel'), +(5069,'Bullay'), +(5070,'Alf'), +(5071,'Zell'), +(5072,'Ramstein-Miesenbach'), +(5073,'Weilerbach'), +(5074,'Pfaffenhofen a.d. Ilm'), +(5075,'Rugendorf'), +(5076,'Reichertshausen'), +(5077,'Stendal'), +(5078,'Aschheim'), +(5079,'Ursensollen'), +(5080,'Essing'), +(5081,'Baldham'), +(5082,'Hausham'), +(5083,'Schliersee'), +(5084,'Frauenstein'), +(5085,'Hermsdorf/Erzgeb.'), +(5086,'Crinitz'), +(5087,'Schwarzheide N.L.'), +(5088,'Altdöbern'), +(5089,'Luckaitztal'), +(5090,'Lauta'), +(5091,'Drebkau'), +(5092,'Neuzelle'), +(5093,'Döbern'), +(5094,'Roth'), +(5095,'Nennslingen'), +(5096,'Wattendorf'), +(5097,'Andechs'), +(5098,'Weismain'), +(5099,'Döschnitz'), +(5100,'Sitzendorf'), +(5101,'Nürnberg-Feucht'), +(5102,'Feuchter Forst'), +(5103,'Küps'), +(5104,'Stockheim'), +(5105,'Gerolsbach'), +(5106,'Berngau'), +(5107,'Mönchweiler'), +(5108,'Altrip'), +(5109,'Glatten'), +(5110,'Straubenhardt'), +(5111,'Grömbach'), +(5112,'Bromskirchen'), +(5113,'Hallenberg'), +(5114,'Keltern'), +(5115,'Wörnersberg'), +(5116,'Sankt Leon-Rot'), +(5117,'Erzhausen'), +(5118,'Aldingen'), +(5119,'Denkingen'), +(5120,'Buseck'), +(5121,'Detmold'), +(5122,'Mauer'), +(5123,'Allendorf'), +(5124,'Reinheim'), +(5125,'Wurmberg'), +(5126,'Schönbrunn'), +(5127,'Ammerbuch'), +(5128,'Neuhausen ob Eck'), +(5129,'Borstel'), +(5130,'Gilserberg'), +(5131,'Obrigheim'), +(5132,'Straßberg'), +(5133,'Liebenau'), +(5134,'Hemmoor'), +(5135,'Freigericht'), +(5136,'Blender'), +(5137,'Schieder-Schwalenberg'), +(5138,'Neufra'), +(5139,'Kirchentellinsfurt'), +(5140,'Altenriet'), +(5141,'Tellingstedt'), +(5142,'Salem'), +(5143,'Neckartailfingen'), +(5144,'Brachttal'), +(5145,'Heuerßen'), +(5146,'Neuenstadt am Kocher'), +(5147,'Edermünde'), +(5148,'Fredenbeck'), +(5149,'Grebenstein'), +(5150,'Bollingstedt'), +(5151,'Jübek'), +(5152,'Deizisau'), +(5153,'Erkenbrechtsweiler'), +(5154,'Barendorf'), +(5155,'Vastorf'), +(5156,'Neuhof a.d.Zenn'), +(5157,'Tapfheim'), +(5158,'Tambach-Dietharz/ Thür.'), +(5159,'Sarkwitz'), +(5160,'Jengen'), +(5161,'Gunzenhausen'), +(5162,'Kutzenhausen'), +(5163,'Semmenstedt'), +(5164,'Breitbrunn'), +(5165,'Nordhausen'), +(5166,'Buchloe'), +(5167,'Stöttwang'), +(5168,'Oberhof'), +(5169,'Tappenbeck'), +(5170,'Denklingen'), +(5171,'Gablingen'), +(5172,'Neuendettelsau'), +(5173,'Stadtbergen'), +(5174,'Badersleben'), +(5175,'Schleusegrund'), +(5176,'Schongau'), +(5177,'Hitzacker (Elbe)'), +(5178,'Grafhorst'), +(5179,'Heßdorf'), +(5180,'Baar'), +(5181,'Mörnsheim'), +(5182,'Georgensgmünd'), +(5183,'Windach'), +(5184,'Uttenreuth'), +(5185,'Marloffstein'), +(5186,'Olsbrücken'), +(5187,'Saterland'), +(5188,'Forchheim'), +(5189,'Herscheid'), +(5190,'Lahr/Schwarzwald'), +(5191,'Kehl'), +(5192,'Westerkappeln'), +(5193,'Hausen im Wiesental'), +(5194,'Zetel'), +(5195,'Sippersfeld'), +(5196,'Gensingen'), +(5197,'Kirchhundem'), +(5198,'Wallenhorst'), +(5199,'Beckum'), +(5200,'Sankt Peter'), +(5201,'Dachsberg'), +(5202,'Ravenstein'), +(5203,'Neuenstein (Hessen)'), +(5204,'Seelze'), +(5205,'Albershausen'), +(5206,'Obersinn'), +(5207,'Wedemark'), +(5208,'Künzelsau'), +(5209,'Ingelfingen'), +(5210,'Dransfeld'), +(5211,'Gundersheim'), +(5212,'Friedelsheim'), +(5213,'Neuburg am Rhein'), +(5214,'Gundheim'), +(5215,'Bechtheim'), +(5216,'Dorn-Dürkheim'), +(5217,'Lambsheim'), +(5218,'Maxdorf'), +(5219,'Gimbsheim'), +(5220,'Eggingen'), +(5221,'Bad Kohlgrub'), +(5222,'Kirchehrenbach'), +(5223,'Bad Berka'), +(5224,'Ohlstadt'), +(5225,'Maisach'), +(5226,'Weßling'), +(5227,'Bad Kleinen'), +(5228,'Thurnau'), +(5229,'Henfenfeld'), +(5230,'Dorf Mecklenburg'), +(5231,'Lübow'), +(5232,'Geretsried'), +(5233,'Velden/Hartenstein'), +(5234,'Lauterhofen'), +(5235,'Eckartsberga'), +(5236,'Wurzbach'), +(5237,'Ernsgaden'), +(5238,'Unterhaching'), +(5239,'Dornburg-Camburg'), +(5240,'Au in der Hallertau'), +(5241,'Issigau'), +(5242,'Kemnath'), +(5243,'Marktleuthen'), +(5244,'Pettendorf'), +(5245,'Papendorf'), +(5246,'Raubling'), +(5247,'Stulln'), +(5248,'Schkeuditz'), +(5249,'Babensham'), +(5250,'Wredenhagen'), +(5251,'Lengenfeld'), +(5252,'Sanitz'), +(5253,'Rackwitz'), +(5254,'Kraiburg a. Inn'), +(5255,'Grabowhöfe'), +(5256,'Moltzow'), +(5257,'Klingenthal/Sa.'), +(5258,'Frohburg'), +(5259,'Tittmoning'), +(5260,'Möllenbeck'), +(5261,'Dallgow-Döberitz'), +(5262,'Hengersberg'), +(5263,'Iggensbach'), +(5264,'Großschirma'), +(5265,'Teltow'), +(5266,'Berlin Frohnau'), +(5267,'Lichtenberg/Erzgeb.'), +(5268,'Nünchritz'), +(5269,'Glaubitz'), +(5270,'Bad Wörishofen'), +(5271,'Bad Colberg-Heldburg'), +(5272,'Ebern'), +(5273,'Sickte'), +(5274,'Dettum'), +(5275,'Hainsfarth'), +(5276,'Sterley'), +(5277,'Heidenheim'), +(5278,'Ratekau'), +(5279,'Langenzenn'), +(5280,'Treuchtlingen'), +(5281,'Otting'), +(5282,'Blankenburg'), +(5283,'Schnega'), +(5284,'Rühen'), +(5285,'Großenseebach'), +(5286,'Oberasbach'), +(5287,'Jameln'), +(5288,'Lübtheen'), +(5289,'Buttenheim'), +(5290,'Berlin Teltowkanal III'), +(5291,'Berlin Hellersdorf'), +(5292,'Radeberg'), +(5293,'Wachau'), +(5294,'Pirna'), +(5295,'Struppen'), +(5296,'Dohma'), +(5297,'Wehlen'), +(5298,'Jänschwalde'), +(5299,'Üttfeld'), +(5300,'Stolberg'), +(5301,'Uedem'), +(5302,'Kevelaer-Kervenheim'), +(5303,'Jülich'), +(5304,'Ferschweiler'), +(5305,'Isselburg'), +(5306,'Bitburg'), +(5307,'Waldrach'), +(5308,'Weilerswist'), +(5309,'Gescher'), +(5310,'Mülheim (Mosel)'), +(5311,'Legden'), +(5312,'Pommern'), +(5313,'Birenbach'), +(5314,'Gschwend'), +(5315,'Braunsbach'), +(5316,'Hettstadt'), +(5317,'Jesteburg'), +(5318,'Northeim'), +(5319,'Gelchsheim'), +(5320,'Sonderhofen'), +(5321,'Gaukönigshofen'), +(5322,'Brackel'), +(5323,'Nüdlingen'), +(5324,'Tiefenort'), +(5325,'Fichtenau'), +(5326,'Oberroth'), +(5327,'Baddeckenstedt'), +(5328,'Küllstedt'), +(5329,'Maßbach'), +(5330,'Rodeberg'), +(5331,'Dünwald'), +(5332,'Breitungen/Werra'), +(5333,'Ichenhausen'), +(5334,'Elmenhorst'), +(5335,'Gochsheim'), +(5336,'Bad Oldesloe'), +(5337,'Barchfeld-Immelborn'), +(5338,'Wiesentheid'), +(5339,'Großhansdorf'), +(5340,'Reppenstedt'), +(5341,'Haverlah'), +(5342,'Altenau'), +(5343,'Schulenberg'), +(5344,'Fremdingen'), +(5345,'Schwülper'), +(5346,'Ebrach'), +(5347,'Floh-Seligenthal'), +(5348,'Eppishausen'), +(5349,'Wassertrüdingen'), +(5350,'Marxzell'), +(5351,'Stutensee'), +(5352,'Niedereschach'), +(5353,'Villingendorf'), +(5354,'Nußloch'), +(5355,'Nagold'), +(5356,'Knittlingen'), +(5357,'Böttingen'), +(5358,'Warmsen'), +(5359,'Mahlstetten'), +(5360,'Reiskirchen'), +(5361,'Altenbeken'), +(5362,'Neckarbischofsheim'), +(5363,'Mühlingen'), +(5364,'Karlstein am Main'), +(5365,'Breuberg'), +(5366,'Eddelak'), +(5367,'Averlak'), +(5368,'Dingen'), +(5369,'Ramhusen'), +(5370,'Aerzen'), +(5371,'Offenau'), +(5372,'Ostenfeld'), +(5373,'Winnert'), +(5374,'Jörl'), +(5375,'Oedheim'), +(5376,'Wanderup'), +(5377,'Nürtingen'), +(5378,'Bad Münder am Deister'), +(5379,'Baunatal'), +(5380,'Homberg'), +(5381,'Deggenhausertal'), +(5382,'Ottenstein'), +(5383,'Scheeßel'), +(5384,'Niederfischbach'), +(5385,'Enkenbach-Alsenborn'), +(5386,'Kirchzarten'), +(5387,'Daaden'), +(5388,'Cappeln (Oldenburg)'), +(5389,'Hinterzarten'), +(5390,'Eslohe'), +(5391,'Steinwenden'), +(5392,'Bergkamen'), +(5393,'Kamp-Bornhofen-Filsen'), +(5394,'Großmaischeid'), +(5395,'Schallbach'), +(5396,'Bergneustadt'), +(5397,'Grenzach-Wyhlen'), +(5398,'Krickenbach'), +(5399,'Mammelzen'), +(5400,'Fachbach'), +(5401,'Exklave Lahnstein'), +(5402,'Schopp'), +(5403,'Werdohl'), +(5404,'Schopfheim'), +(5405,'Alsenz'), +(5406,'Attendorn'), +(5407,'Stadtoldendorf'), +(5408,'Salzhemmendorf'), +(5409,'Kaufungen'), +(5410,'Reinhardshagen'), +(5411,'Schaalby'), +(5412,'Geelbek'), +(5413,'Karbach'), +(5414,'Jork'), +(5415,'Belm'), +(5416,'Lenzkirch'), +(5417,'Mengerskirchen'), +(5418,'Villmar'), +(5419,'Flörsheim-Dalsheim'), +(5420,'Erwitte'), +(5421,'Schramberg'), +(5422,'Lauchringen'), +(5423,'Vettelschloß'), +(5424,'Kretzhaus (Linz am Rhein)'), +(5425,'Münstermaifeld'), +(5426,'Kobern-Gondorf'), +(5427,'Selm'), +(5428,'Ettenstatt'), +(5429,'Sonnefeld'), +(5430,'Weidhausen b. Coburg'), +(5431,'Karlshuld'), +(5432,'Hitzhofen'), +(5433,'Steinbach a. Wald'), +(5434,'Mistelgau'), +(5435,'Attenweiler'), +(5436,'Bad Ditzenbach'), +(5437,'Pattensen'), +(5438,'Schwäbisch Gmünd'), +(5439,'Täferrot'), +(5440,'Wildflecken'), +(5441,'Leinach'), +(5442,'Weikersheim'), +(5443,'Berkatal'), +(5444,'Heimenkirch'), +(5445,'Sibbesse'), +(5446,'Unterpleichfeld'), +(5447,'Rumohr'), +(5448,'Elchingen'), +(5449,'Kirchdorf an der Iller'), +(5450,'Kiel Russee'), +(5451,'Hüttlingen'), +(5452,'Faßberg'), +(5453,'Holle'), +(5454,'Schwanfeld'), +(5455,'Steinsfeld'), +(5456,'Wipfeld'), +(5457,'Schwentinetal'), +(5458,'Neresheim'), +(5459,'Elbe'), +(5460,'Buch a. Wald'), +(5461,'Offingen'), +(5462,'Bad Lauterberg'), +(5463,'Dürrlauingen'), +(5464,'Brunstorf'), +(5465,'Königsberg i. Bay.'), +(5466,'Ansbach'), +(5467,'Körner'), +(5468,'Weinbergen'), +(5469,'Neuhausen/Spree'), +(5470,'Zechin'), +(5471,'Bernstadt a. d. Eigen'), +(5472,'Dissen'), +(5473,'Jade'), +(5474,'Wolfach'), +(5475,'Oberwolfach'), +(5476,'Elchesheim-Illingen'), +(5477,'Westhofen'), +(5478,'Bermersheim'), +(5479,'Haßloch'), +(5480,'Bad Berleburg'), +(5481,'Mainz Ebersheim'), +(5482,'Hechtsheim'), +(5483,'Friedenweiler'), +(5484,'Hördt'), +(5485,'Wildeshausen'), +(5486,'Dettenheim'), +(5487,'Ottenbüttel'), +(5488,'Idstedt'), +(5489,'Garbsen'), +(5490,'Negenborn'), +(5491,'Uttenweiler'), +(5492,'Osterstedt'), +(5493,'Michelfeld'), +(5494,'Munderkingen'), +(5495,'Heist'), +(5496,'Wieden'), +(5497,'Geisenheim'), +(5498,'Rickenbach'), +(5499,'Durbach'), +(5500,'Gau-Bickelheim'), +(5501,'Hohenstein'), +(5502,'Altleiningen'), +(5503,'Lorup'), +(5504,'Rastdorf'), +(5505,'Recke'), +(5506,'Wittlingen'), +(5507,'Mehlbach'), +(5508,'Ransbach-Baumbach'), +(5509,'Drolshagen'), +(5510,'Waldbröl'), +(5511,'Merxheim'), +(5512,'Hesel'), +(5513,'Neukamperfehn'), +(5514,'Hinzweiler'), +(5515,'Grumbach'), +(5516,'Schmitten'), +(5517,'Bischoffen'), +(5518,'Waldbronn'), +(5519,'Wurster Nordseeküste'), +(5520,'Karlsdorf-Neuthard'), +(5521,'Neulußheim'), +(5522,'Hambrücken'), +(5523,'Pfungstadt'), +(5524,'Rosenfeld'), +(5525,'Oland'), +(5526,'Engen'), +(5527,'Gorxheimertal'), +(5528,'Dieburg'), +(5529,'Groß-Bieberau'), +(5530,'Deckenpfronn'), +(5531,'Süderlügum'), +(5532,'Braderup'), +(5533,'Wesselburen'), +(5534,'Otterndorf'), +(5535,'Echzell'), +(5536,'Ittlingen'), +(5537,'Michelstadt'), +(5538,'Irndorf'), +(5539,'Ottersberg'), +(5540,'Holzgerlingen'), +(5541,'Wietzen'), +(5542,'Stockstadt am Main'), +(5543,'Hemmingstedt'), +(5544,'Leinfelden-Echterdingen'), +(5545,'Tamm'), +(5546,'Mosbach'), +(5547,'Waldenbuch'), +(5548,'Wolfhagen'), +(5549,'Balge'), +(5550,'Mömbris'), +(5551,'Süderhastedt'), +(5552,'Neckarwestheim'), +(5553,'Uhldingen-Mühlhofen'), +(5554,'Neckartenzlingen'), +(5555,'Lindhorst'), +(5556,'Wilster'), +(5557,'Erdmannhausen'), +(5558,'Dorfprozelten'), +(5559,'Schuby'), +(5560,'Bodenwerder'), +(5561,'Pegestorf'), +(5562,'Kirchbrak'), +(5563,'Hehlen'), +(5564,'Elbe-Parey'), +(5565,'Stäbelow'), +(5566,'Kritzmow'), +(5567,'Langenwetzendorf'), +(5568,'Mitterteich'), +(5569,'Unterreit'), +(5570,'Amerang'), +(5571,'Wusterwitz'), +(5572,'Rosenau'), +(5573,'Bensdorf'), +(5574,'Ellefeld'), +(5575,'Rötha'), +(5576,'Havelsee'), +(5577,'Meerane'), +(5578,'Kirchroth'), +(5579,'Bad Düben'), +(5580,'Remse'), +(5581,'Teising'), +(5582,'Lichtenstein'), +(5583,'Burgkirchen an der Alz'), +(5584,'Teisendorf'), +(5585,'Taura b. Burgstädt'), +(5586,'Postmünster'), +(5587,'Geyer'), +(5588,'Bayerisch Gmain'), +(5589,'Auerbach'), +(5590,'Neustrelitz'), +(5591,'Langdorf'), +(5592,'Altentreptow'), +(5593,'Brüggen'), +(5594,'Nettetal'), +(5595,'Winterspelt'), +(5596,'Körperich'), +(5597,'Sonsbeck'), +(5598,'Wasserliesch'), +(5599,'Mechernich'), +(5600,'Wallerfangen'), +(5601,'Erftstadt'), +(5602,'Ringe'), +(5603,'Laar'), +(5604,'Emlichheim'), +(5605,'Altenahr'), +(5606,'Kalenborn'), +(5607,'Kirchsahr'), +(5608,'Heiden'), +(5609,'Berschweiler bei Baumholder'), +(5610,'Waltrop'), +(5611,'Sankt Ingbert'), +(5612,'Dülmen'), +(5613,'Metelen'), +(5614,'Röckingen'), +(5615,'Stockelsdorf'), +(5616,'Langenneufnach'), +(5617,'Emskirchen'), +(5618,'Lübeck St. Lorenz Nord'), +(5619,'Wittingen'), +(5620,'Heilsbronn'), +(5621,'Soltendiek'), +(5622,'Gersthofen'), +(5623,'Groß Twülpstedt'), +(5624,'Thierhaupten'), +(5625,'Büddenstedt'), +(5626,'Ried'), +(5627,'Kuhfelde'), +(5628,'Neuschönau'), +(5629,'Panketal'), +(5630,'Sonnen'), +(5631,'Bad Freienwalde'), +(5632,'Nebra'), +(5633,'Kaiserpfalz'), +(5634,'Egling'), +(5635,'Baierbrunn'), +(5636,'Nordhalben'), +(5637,'Helbra'), +(5638,'Osterburg'), +(5639,'Altmärkische Höhe'), +(5640,'Mistelbach'), +(5641,'Schnabelwaid'), +(5642,'Bischofsgrün'), +(5643,'Glonn'), +(5644,'Feilitzsch'), +(5645,'Laaber'), +(5646,'Brunn'), +(5647,'Pfeffenhausen'), +(5648,'Wolfsegg'), +(5649,'Parkstein'), +(5650,'Lappersdorf'), +(5651,'Sankt Wolfgang'), +(5652,'Schmölln'), +(5653,'Altkirchen'), +(5654,'Nöbdenitz'), +(5655,'Werdau'), +(5656,'Ribnitz-Damgarten'), +(5657,'Bernau a. Chiemsee'), +(5658,'Weng'), +(5659,'Bodenkirchen'), +(5660,'Übersee'), +(5661,'Oberneukirchen'), +(5662,'Straubing'), +(5663,'Borsdorf'), +(5664,'Altötting'), +(5665,'Oelsnitz/Erzgebirge'), +(5666,'Rochlitz'), +(5667,'Aholming'), +(5668,'Brieselang'), +(5669,'Beilrode'), +(5670,'Rosenow'), +(5671,'Arrach'), +(5672,'Velten'), +(5673,'Oberkrämer'), +(5674,'Schaufling'), +(5675,'Bodenmais'), +(5676,'Grattersdorf'), +(5677,'Mühlberg'), +(5678,'Berlin Grunewald'), +(5679,'Zossen'), +(5680,'Templin'), +(5681,'Boitzenburg'), +(5682,'Spantekow'), +(5683,'Karlsbad'), +(5684,'Brühl'), +(5685,'Loxstedt'), +(5686,'Sulzbach (Taunus)'), +(5687,'Eschborn'), +(5688,'Friedrichsdorf'), +(5689,'Freistatt'), +(5690,'Varrel'), +(5691,'Wehrbleck'), +(5692,'Lollar'), +(5693,'Geestland'), +(5694,'Neuhausen'), +(5695,'Langenhorn'), +(5696,'Ockholm'), +(5697,'Wehingen'), +(5698,'Ratshausen'), +(5699,'Lemgo'), +(5700,'Mühlheim am Main'), +(5701,'Nidderau'), +(5702,'Homberg (Ohm)'), +(5703,'Wöhrden'), +(5704,'Oyten'), +(5705,'Wingst'), +(5706,'Weddingstedt'), +(5707,'Hoya'), +(5708,'Hoyerhagen'), +(5709,'Hilgermissen'), +(5710,'Brakel'), +(5711,'Kirchzell'), +(5712,'Schwalmstadt'), +(5713,'Gelnhausen'), +(5714,'Verden'), +(5715,'Wächtersbach'), +(5716,'Röllbach'), +(5717,'Metzingen'), +(5718,'Bad Orb'), +(5719,'Pfronstetten'), +(5720,'Bretzfeld'), +(5721,'Flörsbachtal'), +(5722,'Schwarzenborn'), +(5723,'Greifenberg'), +(5724,'Huglfing'), +(5725,'Adelschlag'), +(5726,'Artern/Unstrut'), +(5727,'Gachenbach'), +(5728,'Starnberg'), +(5729,'Neunkirchen am Sand'), +(5730,'Hergisdorf'), +(5731,'Gerbstedt'), +(5732,'Kranzberg'), +(5733,'Könnern'), +(5734,'Aiglsbach'), +(5735,'Kirchheim b. München'), +(5736,'Parchim'), +(5737,'Triptis'), +(5738,'Konradsreuth'), +(5739,'Berlin Baumschulenweg'), +(5740,'Sonnewalde'), +(5741,'Hauzenberg'), +(5742,'Hinterschmiding'), +(5743,'Berlin Wiesengrund'), +(5744,'Jandelsbrunn'), +(5745,'Berlin Rahnsdorf'), +(5746,'Ortrand'), +(5747,'Lohmen'), +(5748,'Bischofswerda'), +(5749,'Neustadt i. Sa.'), +(5750,'Leutersdorf'), +(5751,'Spitzkunnersdorf'), +(5752,'Olbersdorf'), +(5753,'Flammersfeld'), +(5754,'Seesbach'), +(5755,'Anhausen'), +(5756,'Landstuhl'), +(5757,'Bendorf'), +(5758,'Argenthal'), +(5759,'Coesfeld'), +(5760,'Heimbach'), +(5761,'Hage'), +(5762,'Halbemond'), +(5763,'Treis-Karden'), +(5764,'Mastershausen'), +(5765,'Kusel'), +(5766,'Westerholt'), +(5767,'Schweindorf'), +(5768,'Hütschenhausen'), +(5769,'Langenhagen (Flughafen)'), +(5770,'Nellingen'), +(5771,'Karsbach'), +(5772,'Spraitbach'), +(5773,'Welle'), +(5774,'Durlangen'), +(5775,'Weggen-Ziegelhütte'), +(5776,'Leinhäusle'), +(5777,'Griesingen'), +(5778,'Kuchen'), +(5779,'Wittighausen'), +(5780,'Reichenberg'), +(5781,'Guttenberger Wald'), +(5782,'Lindenberg im Allgäu'), +(5783,'Fuchsstadt'), +(5784,'Schnürpflingen'), +(5785,'Hermannsburg'), +(5786,'Kirchberg an der Iller'), +(5787,'Kitzingen'), +(5788,'Winsen'), +(5789,'Wulften'), +(5790,'Bad Neustadt an der Saale'), +(5791,'Bibertal'), +(5792,'Bargteheide'), +(5793,'Delingsdorf'), +(5794,'Heikendorf'), +(5795,'Dingelstädt'), +(5796,'Gallmersgarten'), +(5797,'Lengede'), +(5798,'Schmalkalden'), +(5799,'Ellzee'), +(5800,'Bachhagel'), +(5801,'Bächingen a.d. Brenz'), +(5802,'Marschacht'), +(5803,'Betzigau'), +(5804,'Brotterode-Trusetal'), +(5805,'Obergünzburg'), +(5806,'Hörselberg-Hainich'), +(5807,'Dentlein a. Forst'), +(5808,'Weiltingen'), +(5809,'Aislingen'), +(5810,'Bundorf'), +(5811,'Landensberg'), +(5812,'Mittelneufnach'), +(5813,'Emersacker'), +(5814,'Stötten am Auerberg'), +(5815,'Groß Grönau'), +(5816,'Lonnerstadt'), +(5817,'Haundorf'), +(5818,'Dittenheim'), +(5819,'Waal'), +(5820,'Kemmern'), +(5821,'Ellgau'), +(5822,'Thale'), +(5823,'Straußfurt'), +(5824,'Memmelsdorf'), +(5825,'Frankenblick'), +(5826,'Schalkau'), +(5827,'Bachfeld'), +(5828,'Wittenburg'), +(5829,'Dasing'), +(5830,'Klütz'), +(5831,'Straelen'), +(5832,'Hürtgenwald'), +(5833,'Xanten'), +(5834,'Lasel'), +(5835,'Korschenbroich'), +(5836,'Nettersheim'), +(5837,'Birresborn'), +(5838,'Spangdahlem'), +(5839,'Hünxe'), +(5840,'Hürth'), +(5841,'Lebach'), +(5842,'Püttlingen'), +(5843,'Wintrich'), +(5844,'Niederkassel'), +(5845,'Kleinblittersdorf'), +(5846,'Espenau'), +(5847,'Zweiflingen'), +(5848,'Fleischwangen'), +(5849,'Bevern'), +(5850,'Rudersberg'), +(5851,'Bad Buchau'), +(5852,'Neuenstein'), +(5853,'Niedernhall'), +(5854,'Wasserburg (Bodensee)'), +(5855,'Breisach am Rhein'), +(5856,'Katzweiler'), +(5857,'Löningen'), +(5858,'Wittmund'), +(5859,'Merdingen'), +(5860,'Hilgert'), +(5861,'Ballrechten-Dottingen'), +(5862,'Staufen im Breisgau'), +(5863,'Apen'), +(5864,'Neuhäusel'), +(5865,'Rheinfelden (Baden)'), +(5866,'Mahlberg'), +(5867,'Rüdesheim'), +(5868,'Ahlen'), +(5869,'Kappelrodeck'), +(5870,'Deidesheim'), +(5871,'Kandel'), +(5872,'Bühlertal'), +(5873,'Gutach (Schwarzwaldbahn)'), +(5874,'Nieder-Olm'), +(5875,'Niedernhausen'), +(5876,'Sylt'), +(5877,'Leimersheim'), +(5878,'Hohentengen am Hochrhein'), +(5879,'Elmstein'), +(5880,'Werl'), +(5881,'Bersenbrück'), +(5882,'Wattenheim'), +(5883,'Eisenberg (Pfalz)'), +(5884,'Elz'), +(5885,'Lambrecht (Pfalz)'), +(5886,'Fischerbach'), +(5887,'Haslach'), +(5888,'Holm'), +(5889,'Kosel'), +(5890,'Rieseby'), +(5891,'Merklingen'), +(5892,'Wartmannsroth'), +(5893,'Schemmerhofen'), +(5894,'Osterby'), +(5895,'Waldbüttelbrunn'), +(5896,'Gelting'), +(5897,'Obersontheim'), +(5898,'Elfershausen'), +(5899,'Gerbrunn'), +(5900,'Werneck'), +(5901,'Groß Kummerfeld'), +(5902,'Dänischenhagen'), +(5903,'Wulfsen'), +(5904,'Bargfeld-Stegen'), +(5905,'Garstedt'), +(5906,'Wienhausen'), +(5907,'Heimertingen'), +(5908,'Ahrensburg'), +(5909,'Grafenrheinfeld'), +(5910,'Wittenborn'), +(5911,'Zöschingen'), +(5912,'Unstruttal'), +(5913,'Herrieden'), +(5914,'Scheinfeld'), +(5915,'Linau'), +(5916,'Eggenthal'), +(5917,'Biebesheim am Rhein'), +(5918,'Hattersheim'), +(5919,'Rahden'), +(5920,'Altensteig'), +(5921,'Edingen-Neckarhausen'), +(5922,'Seeheim-Jugenheim'), +(5923,'Büsingen am Hochrhein'), +(5924,'Osterholz-Scharmbeck'), +(5925,'Lage'), +(5926,'Gailingen am Hochrhein'), +(5927,'Niederdorfelden'), +(5928,'Vöhl'), +(5929,'Obertshausen'), +(5930,'Bredstedt'), +(5931,'Breklum'), +(5932,'Zaberfeld'), +(5933,'Oldenswort'), +(5934,'Fridingen an der Donau'), +(5935,'Leck'), +(5936,'Stinstedt'), +(5937,'Kahl am Main'), +(5938,'Högel'), +(5939,'Schwieberdingen'), +(5940,'Niedernberg'), +(5941,'Feldatal'), +(5942,'Sonnenbühl'), +(5943,'Haselund'), +(5944,'Kleinwallstadt'), +(5945,'Großheubach'), +(5946,'Bessenbach'), +(5947,'Wolfschlugen'), +(5948,'Oeversee'), +(5949,'Suthfeld'), +(5950,'Oberaula'), +(5951,'Kremperheide'), +(5952,'Owen'), +(5953,'Nortrup'), +(5954,'Langenlonsheim'), +(5955,'Gundelfingen'), +(5956,'Heuweiler'), +(5957,'Hohberg'), +(5958,'Warendorf'), +(5959,'Albersweiler'), +(5960,'Silz'), +(5961,'Glottertal'), +(5962,'Altendiez'), +(5963,'Hadamar'), +(5964,'Oberkirch'), +(5965,'Niederneisen'), +(5966,'St. Blasien'), +(5967,'Ibach'), +(5968,'Ostercappeln'), +(5969,'Walluf'), +(5970,'Bad Peterstal-Griesbach'), +(5971,'Kuppenheim'), +(5972,'Elsfleth'), +(5973,'Schenkenzell'), +(5974,'Weilrod'), +(5975,'Loffenau'), +(5976,'Hosenfeld'), +(5977,'Faulbach'), +(5978,'Großsolt'), +(5979,'Partenstein'), +(5980,'Langenargen'), +(5981,'Hohenlockstedt'), +(5982,'Sinntal'), +(5983,'Erlenbach b. Marktheidenfeld'), +(5984,'Zeitlofs'), +(5985,'Helmstadt'), +(5986,'Marienheide'), +(5987,'Rieschweiler-Mühlbach'), +(5988,'Leiningen'), +(5989,'Binzen'), +(5990,'Lindern (Oldenburg)'), +(5991,'Mertloch'), +(5992,'Welling'), +(5993,'Rheinbrohl'), +(5994,'Grafrath'), +(5995,'Unterleinleiter'), +(5996,'Rudolstadt'), +(5997,'Mitwitz'), +(5998,'Egloffstein'), +(5999,'Kalbe'), +(6000,'Gößweinstein'), +(6001,'Feldafing'), +(6002,'Simmelsdorf'), +(6003,'Planegg/Krailling'), +(6004,'Betzenstein'), +(6005,'Aßling'), +(6006,'Walpertskirchen'), +(6007,'Jerichow'), +(6008,'Schierling'), +(6009,'Wenzenbach'), +(6010,'Prutting'), +(6011,'Altfraunhofen'), +(6012,'Baierbach'), +(6013,'Bernhardswald'), +(6014,'Soyen'), +(6015,'Neunburg vorm Wald'), +(6016,'Crimmitschau'), +(6017,'Wörth an der Donau'), +(6018,'Rettenbach'), +(6019,'Eslarn'), +(6020,'Trostberg'), +(6021,'Schönthal'), +(6022,'Cham'), +(6023,'Parkstetten'), +(6024,'Massing'), +(6025,'Penig'), +(6026,'Haselbach'), +(6027,'Surberg'), +(6028,'Schwarzenberg/Erzgeb.'), +(6029,'Thum'), +(6030,'Haarbach'), +(6031,'Ludwigsfelde'), +(6032,'Ortenburg'), +(6033,'Eging a. See'), +(6034,'Kirchham'), +(6035,'Berlin Dahlem'), +(6036,'Freiberg'), +(6037,'Spiegelau'), +(6038,'Berlin Hermsdorf'), +(6039,'Neuhaus a. Inn'), +(6040,'Kröv'), +(6041,'Ochtrup'), +(6042,'Lohmar'), +(6043,'Burgbrohl'), +(6044,'Weeze'), +(6045,'Aldenhoven'), +(6046,'Rheinberg'), +(6047,'Rehlingen-Siersburg'), +(6048,'Zerf'), +(6049,'Apolda'), +(6050,'Ilmmünster'), +(6051,'Bad Tölz'), +(6052,'Wackersberg'), +(6053,'Dietramszell'), +(6054,'Neuenmarkt'), +(6055,'Münchsmünster'), +(6056,'Neustadt/ Orla'), +(6057,'Neustadt a.d. Donau'), +(6058,'Zolling'), +(6059,'Oberding'), +(6060,'Marzling'), +(6061,'Leupoldsgrün'), +(6062,'Satow'), +(6063,'Südliches Anhalt'), +(6064,'Kulmain'), +(6065,'Saal a.d. Donau'), +(6066,'Steinbach-Hallenberg'), +(6067,'Sassenburg'), +(6068,'Unterschwaningen'), +(6069,'Hopferau'), +(6070,'Schöppenstedt'), +(6071,'Lisberg'), +(6072,'Schönwalde am Bungsberg'), +(6073,'Lechbruck'), +(6074,'Tosterglope'), +(6075,'Aurachtal'), +(6076,'Beierstedt'), +(6077,'Niederschönenfeld'), +(6078,'Prittriching'), +(6079,'Wildsteig'), +(6080,'Staffelstein'), +(6081,'Kindelbrück'), +(6082,'Peißenberg'), +(6083,'Freyung'), +(6084,'Berlin Köpenik'), +(6085,'Radebeul'), +(6086,'Märkisch Buchholz'), +(6087,'Heidenau'), +(6088,'Löcknitz'), +(6089,'Rothenklempenow'), +(6090,'Schleife'), +(6091,'Hähnichen'), +(6092,'Horka'), +(6093,'Kodersdorf'), +(6094,'Hohenlinden'), +(6095,'Schwarzenbach'), +(6096,'Reimershagen'), +(6097,'Zehna'), +(6098,'Hägerfelde'), +(6099,'Pentling'), +(6100,'Regenstauf'), +(6101,'Teublitz'), +(6102,'Taufkirchen (Vils)'), +(6103,'Schönwald'), +(6104,'Steinkirchen'), +(6105,'Essenbach'), +(6106,'Lucka'), +(6107,'Höslwang'), +(6108,'Fraureuth'), +(6109,'Mötzing'), +(6110,'Neumarkt-Sankt Veit'), +(6111,'Treffelstein'), +(6112,'Loitzendorf'), +(6113,'Gersdorf'), +(6114,'Eggenfelden'), +(6115,'Miltach'), +(6116,'Jessen (Elster)'), +(6117,'Beelitz'), +(6118,'Raschau'), +(6119,'Thalheim/Erzgebirge'), +(6120,'Gornsdorf'), +(6121,'Berlin Wlhelmstadt'), +(6122,'Stauchitz'), +(6123,'Hirschstein'), +(6124,'Uebigau-Wahrenbrück'), +(6125,'Saldenburg'), +(6126,'Seiffen/Erzgeb.'), +(6127,'Pörnbach'), +(6128,'Lenting'), +(6129,'Trebgast'), +(6130,'Dietfurt a.d. Altmühl'), +(6131,'Oberhaching'), +(6132,'Kirchenthumbach'), +(6133,'Valley'), +(6134,'Schkölen'), +(6135,'Sternberg'), +(6136,'Langenbach'), +(6137,'Haag a.d. Amper'), +(6138,'Retschow'), +(6139,'Admannshagen-Bargeshagen'), +(6140,'Pritzwalk'), +(6141,'Groß Pankow'), +(6142,'Meineweh'), +(6143,'Osterfeld'), +(6144,'Berlin Blankenburg'), +(6145,'Berlin Kaulsdorf'), +(6146,'Pulsnitz'), +(6147,'Vetschau'), +(6148,'Penkun'), +(6149,'Großdubrau'), +(6150,'Malschwitz'), +(6151,'Bad Muskau'), +(6152,'Groß Düben'), +(6153,'Gablenz'), +(6154,'Niesky'), +(6155,'Hohendubrau'), +(6156,'Häg-Ehrsberg'), +(6157,'Lennestadt'), +(6158,'Brande-Hörnerkirchen'), +(6159,'Rotenburg an der Fulda'), +(6160,'Gaildorf'), +(6161,'Wietze'), +(6162,'Gersfeld'), +(6163,'Sontra'), +(6164,'Westensee'), +(6165,'Sehnde'), +(6166,'Arenshausen'), +(6167,'Uder'), +(6168,'Gleichen'), +(6169,'Achterwehr'), +(6170,'Boostedt'), +(6171,'Kalefeld'), +(6172,'Felm'), +(6173,'Fischen im Allgäu'), +(6174,'Weißenhorn'), +(6175,'Niederwerrn'), +(6176,'Söhlde'), +(6177,'Preetz'), +(6178,'Ergersheim'), +(6179,'Unterschneidheim'), +(6180,'Dischingen'), +(6181,'Haunsheim'), +(6182,'Krumbach (Schwaben)'), +(6183,'Neuengörs'), +(6184,'Niederorschel'), +(6185,'Tespe'), +(6186,'Brietlingen'), +(6187,'Natendorf'), +(6188,'Bad Königshofen i. Grabfeld'), +(6189,'Nesselwang'), +(6190,'Bissingen'), +(6191,'Lüchow'), +(6192,'Schondorf a. Ammersee'), +(6193,'Oberau'), +(6194,'Schwanstetten'), +(6195,'Königsmoos'), +(6196,'Kunreuth'), +(6197,'Lübbow'), +(6198,'Lauf an der Pegnitz'), +(6199,'Berlstedt'), +(6200,'Langendorf'), +(6201,'Sindelsdorf'), +(6202,'Steffenberg'), +(6203,'Dornstetten'), +(6204,'Dautphetal'), +(6205,'Waldachtal'), +(6206,'Sankt Peter-Ording'), +(6207,'Neu-Isenburg'), +(6208,'Immendingen'), +(6209,'Kraichtal'), +(6210,'Münzenberg'), +(6211,'Frittlingen'), +(6212,'Dielheim'), +(6213,'Dautmergen'), +(6214,'Rietheim-Weilheim'), +(6215,'Niefern-Öschelbronn'), +(6216,'Uchte'), +(6217,'Mühlheim an der Donau'), +(6218,'Hirrlingen'), +(6219,'Langenselbold'), +(6220,'Barntrup'), +(6221,'Mudau'), +(6222,'Schafflund'), +(6223,'Meyn'), +(6224,'Johannesberg'), +(6225,'Oberndorf'), +(6226,'Walheim'), +(6227,'Wester-Ohrstedt'), +(6228,'Sottrum'), +(6229,'Reeßum'), +(6230,'Bötersen'), +(6231,'Gammertingen'), +(6232,'Mundelsheim'), +(6233,'Großbottwar'), +(6234,'Schauenburg'), +(6235,'Weinsberg'), +(6236,'Engelschoff'), +(6237,'Niedenstein'), +(6238,'Lehrensteinsfeld'), +(6239,'Eichenbühl'), +(6240,'Wüstenrot'), +(6241,'Beilstein-Stocksberg'), +(6242,'Moormerland'), +(6243,'Windhagen'), +(6244,'Engelskirchen'), +(6245,'Sprockhövel'), +(6246,'Kottenheim'), +(6247,'Datteln'), +(6248,'Baisweil'), +(6249,'Schlüsselfeld'), +(6250,'Altenmünster'), +(6251,'Zeil a. Main'), +(6252,'Bröthen'), +(6253,'Wertingen'), +(6254,'Burgoberbach'), +(6255,'Pforzen'), +(6256,'Wechingen'), +(6257,'Weidenbach'), +(6258,'Oetzen'), +(6259,'Wemding'), +(6260,'Hiltenfingen'), +(6261,'Aystetten'), +(6262,'Windsbach'), +(6263,'Rehna'), +(6264,'Carlow'), +(6265,'Heringen/ Helme'), +(6266,'Steingaden'), +(6267,'Elleben'), +(6268,'Wachsenburg'), +(6269,'Clenze'), +(6270,'Weil'), +(6271,'Großbreitenbach'), +(6272,'Hemhofen'), +(6273,'Geltendorf'), +(6274,'Dießen a. Ammersee'), +(6275,'Küsten'), +(6276,'Kranenburg'), +(6277,'Würselen'), +(6278,'Hückelhoven'), +(6279,'Inden'), +(6280,'Merzenich'), +(6281,'Kordel'), +(6282,'Zemmer'), +(6283,'Borkum'), +(6284,'Mertesdorf'), +(6285,'Heiligenhaus'), +(6286,'Wesseling'), +(6287,'Heek'), +(6288,'Weissach im Tal'), +(6289,'Marktheidenfeld'), +(6290,'Lauda-Königshofen'), +(6291,'Rendsburg'), +(6292,'Emerkingen'), +(6293,'Üttingen'), +(6294,'Oberdreis'), +(6295,'Tiefenthal'), +(6296,'Iffezheim'), +(6297,'Damme'), +(6298,'Gönnheim'), +(6299,'Harxheim'), +(6300,'Gaggenau'), +(6301,'Mutterstadt'), +(6302,'Forstinning'), +(6303,'Neusorg'), +(6304,'Weiherhammer'), +(6305,'Bad Abbach'), +(6306,'Oelsnitz'), +(6307,'Landsberg'), +(6308,'Zörbig'), +(6309,'Elsterberg'), +(6310,'Plößberg'), +(6311,'Roitzsch'), +(6312,'Petersroda'), +(6313,'Halfing'), +(6314,'Frasdorf'), +(6315,'Wiesenburg'), +(6316,'Vilsbiburg'), +(6317,'Prien a. Chiemsee'), +(6318,'Herrenchiemssee'), +(6319,'Georgenberg'), +(6320,'Mähring'), +(6321,'Mühldorf a. Inn'), +(6322,'Stein a.d. Traun'), +(6323,'Unterdietfurt'), +(6324,'Lunzenau'), +(6325,'Schneizlreuth'), +(6326,'Inzell'), +(6327,'Emmerting'), +(6328,'Anger'), +(6329,'Arnschwang'), +(6330,'Petting'), +(6331,'Jüterbog'), +(6332,'Ramsau b. Berchtesgaden'), +(6333,'Achslach'), +(6334,'Möllenhagen'), +(6335,'Freilassing'), +(6336,'Cölpin'), +(6337,'Zehdenick'), +(6338,'Zeithain'), +(6339,'Berlin Heinelsdorf'), +(6340,'Eichenbarleben'), +(6341,'Irxleben'), +(6342,'Niederndodeleben'), +(6343,'Unterschleißheim'), +(6344,'Kreuth'), +(6345,'Lichtenberg'), +(6346,'Bürgel'), +(6347,'Speichersdorf'), +(6348,'Eschenbach i.d. OPf.'), +(6349,'Elsendorf'), +(6350,'Oberpframmern'), +(6351,'Hirschau'), +(6352,'Adelzhausen'), +(6353,'Fürstenfeldbruck'), +(6354,'Röthenbach an der Pegnitz'), +(6355,'Markt Indersdorf'), +(6356,'Karlskron'), +(6357,'Berlin Rummelsburg'), +(6358,'Klein Bünzow'), +(6359,'Schöneiche bei Berlin'), +(6360,'Wegscheid'), +(6361,'Storkow'), +(6362,'Oderberg'), +(6363,'Zinnowitz'), +(6364,'Emmerich am Rhein'), +(6365,'Trierweiler'), +(6366,'Rhede'), +(6367,'Weiskirchen'), +(6368,'Heusweiler'), +(6369,'Gronau'), +(6370,'Weißenthurm'), +(6371,'Emsdetten'), +(6372,'Börger'), +(6373,'Boppard'), +(6374,'Kierspe'), +(6375,'Mandelbachtal'), +(6376,'Lindlar'), +(6377,'Schwelm'), +(6378,'Olsberg'), +(6379,'Otterstadt'), +(6380,'Bad Endbach'), +(6381,'Verl'), +(6382,'Simmersfeld'), +(6383,'Dobel'), +(6384,'Brilon'), +(6385,'Langeneß'), +(6386,'Schwetzingen'), +(6387,'Geisingen'), +(6388,'Rosbach v.d. Höhe'), +(6389,'Rauenberg'), +(6390,'Frankfurt'), +(6391,'Seitingen-Oberflacht'), +(6392,'Groß-Zimmern'), +(6393,'Sinsheim'), +(6394,'Wimsheim'), +(6395,'Lilienthal'), +(6396,'Maasen'), +(6397,'Mellinghausen'), +(6398,'Twistetal'), +(6399,'Riede'), +(6400,'Hainburg'), +(6401,'Seligenstadt'), +(6402,'Bad Arolsen'), +(6403,'Pfaffenhofen'), +(6404,'Mittelstenahe'), +(6405,'Alzenau'), +(6406,'Schönaich'), +(6407,'Schweringen'), +(6408,'Warpe'), +(6409,'Bücken'), +(6410,'Obernkirchen'), +(6411,'Rehburg-Loccum'), +(6412,'Krummendeich'), +(6413,'Apelern'), +(6414,'Rodenberg'), +(6415,'Linsburg'), +(6416,'Bad Urach'), +(6417,'Langenbrettach'), +(6418,'Walsrode'), +(6419,'Ostenholz'), +(6420,'Baltmannsweiler'), +(6421,'Holzminden'), +(6422,'Biberach an der Riß'), +(6423,'Pinneberg'), +(6424,'Öpfingen'), +(6425,'Bad Wurzach'), +(6426,'Eschach'), +(6427,'Obergröningen'), +(6428,'Maselheim'), +(6429,'Wasbek'), +(6430,'Niederstetten'), +(6431,'Timmaspe'), +(6432,'Wiemersdorf'), +(6433,'Riedenheim'), +(6434,'Wehretal'), +(6435,'Gutenzell-Hürbel'), +(6436,'Heuchlingen'), +(6437,'Mögglingen'), +(6438,'Beimerstetten'), +(6439,'Winterhausen'), +(6440,'Marxen'), +(6441,'Hartenholm'), +(6442,'Tannheim'), +(6443,'Wriedel'), +(6444,'Asselfingen'), +(6445,'Eisenach'), +(6446,'Schwallungen'), +(6447,'Memmingerberg'), +(6448,'Burgberg im Allgäu'), +(6449,'Aumühle'), +(6450,'Gundelfingen a.d. Donau'), +(6451,'Vogtei'), +(6452,'Kammerforst'), +(6453,'Leutershausen'), +(6454,'Steinburg'), +(6455,'Eimeldingen'), +(6456,'Osterspai'), +(6457,'Pracht'), +(6458,'Weitersburg'), +(6459,'Nauort'), +(6460,'Oberwesel'), +(6461,'Wissen'), +(6462,'Hövels'), +(6463,'Kenzingen'), +(6464,'Neuenrade'), +(6465,'Umkirch'), +(6466,'Hallgarten'), +(6467,'Ehingen a. Ries'), +(6468,'Höchstädt a.d. Donau'), +(6469,'Emmendorf'), +(6470,'Markt Wald'), +(6471,'Neetze'), +(6472,'Horgau'), +(6473,'Bokensdorf'), +(6474,'Ratzeburg'), +(6475,'Lübeck Schlutup/St. Gertrud'), +(6476,'Fünfstetten'), +(6477,'Nahrendorf'), +(6478,'Tiddische'), +(6479,'Schwabbruck'), +(6480,'Puschendorf'), +(6481,'Kaufering'), +(6482,'Danndorf'), +(6483,'Coburg'), +(6484,'Grömitz'), +(6485,'Rögling'), +(6486,'Mering'), +(6487,'Niederfüllbach'), +(6488,'Hauenstein'), +(6489,'Wittnau'), +(6490,'Horben'), +(6491,'Bellingen'), +(6492,'Bösel'), +(6493,'Hagen am Teutoburger Wald'), +(6494,'Oberharmersbach'), +(6495,'Forst an der Weinstraße'), +(6496,'Bohmte'), +(6497,'Borgholzhausen'), +(6498,'Birkenheide'), +(6499,'Beindersheim'), +(6500,'Diepholz'), +(6501,'Braunfels'), +(6502,'Guntersblum'), +(6503,'Bischofsheim'), +(6504,'Notzingen'), +(6505,'Immenhausen'), +(6506,'Flieden'), +(6507,'Mehrstetten'), +(6508,'Morschen'), +(6509,'Triefenstein'), +(6510,'Holzen'), +(6511,'Eschershausen'), +(6512,'Eimen'), +(6513,'Hamweddel'), +(6514,'Oberstadion'), +(6515,'Grafing b. München'), +(6516,'Marktredwitz'), +(6517,'Pfaffing'), +(6518,'Edling'), +(6519,'Reuth b. Erbendorf'), +(6520,'Plau am See'), +(6521,'Wasserburg a. Inn'), +(6522,'Schonstett'), +(6523,'Altenthann'), +(6524,'Malchow'), +(6525,'Oberviechtach'), +(6526,'Waldkraiburg'), +(6527,'Dahmen'), +(6528,'Groß Wokern'), +(6529,'Teterow'), +(6530,'Borna'), +(6531,'Mülsen'), +(6532,'Friesack'), +(6533,'Reinsdorf'), +(6534,'Pösing'), +(6535,'Reisbach'), +(6536,'Unterneukirchen'), +(6537,'Stallwang'), +(6538,'Hunderdorf'), +(6539,'Glewitz'), +(6540,'Hebertsfelden'), +(6541,'Kollnburg'), +(6542,'Offenberg'), +(6543,'Ainring'), +(6544,'Grafling'), +(6545,'Loitz'), +(6546,'Bärenstein'), +(6547,'Fürstenberg'), +(6548,'Großolbersdorf'), +(6549,'Schöllnach'), +(6550,'Windorf'), +(6551,'Olbernhau'), +(6552,'Pfaffroda'), +(6553,'Heidersdorf'), +(6554,'Berlin Charlottenburg-Nord'), +(6555,'Neukirchen vorm Wald'), +(6556,'Vorra'), +(6557,'Gaißach'), +(6558,'Neukirchen b. Sulzbach-Rosen'), +(6559,'Saalburg-Ebersdorf'), +(6560,'Naila'), +(6561,'Ottobrunn/Riemerling'), +(6562,'Ismaning'), +(6563,'Putzbrunn'), +(6564,'Aying'), +(6565,'Rottach-Egern'), +(6566,'Egmating'), +(6567,'Eitting'), +(6568,'Gebenbach'), +(6569,'Auma-Weidatal'), +(6570,'Ebersdorf b. Coburg'), +(6571,'Michelau i. OFr.'), +(6572,'Wiesenthau'), +(6573,'Damnatz'), +(6574,'Kühbach'), +(6575,'Gusborn'), +(6576,'Wiesenttal'), +(6577,'Berg im Gau'), +(6578,'Leinburg'), +(6579,'Ludwigsstadt'), +(6580,'Hohenwart'), +(6581,'Unterwellenborn'), +(6582,'Nusse'), +(6583,'Arberg'), +(6584,'Sondershausen'), +(6585,'Gotha'), +(6586,'Mölln'), +(6587,'Kasseedorf'), +(6588,'Laugna'), +(6589,'Meitingen'), +(6590,'Lensahn'), +(6591,'Marxheim'), +(6592,'Ellingen'), +(6593,'Untersiemau'), +(6594,'Gadebusch'), +(6595,'Möhrendorf/Mark'), +(6596,'Neuhaus am Rennweg'), +(6597,'Lauscha'), +(6598,'Lubmin'), +(6599,'Berlin Neu-Schönhausen'), +(6600,'Hartmannsdorf-Reichenau'), +(6601,'Heidesee'), +(6602,'Peitz'), +(6603,'Doberschau-Gaußig'), +(6604,'Großpostwitz'), +(6605,'Obergurig'), +(6606,'Seifhennersdorf'), +(6607,'Kelsterbach'), +(6608,'Neu-Anspach'), +(6609,'Pfinztal'), +(6610,'Mörfelden-Walldorf'), +(6611,'Neuenbürg'), +(6612,'Jestetten'), +(6613,'Höfen an der Enz'), +(6614,'Rodenäs'), +(6615,'Sandhausen'), +(6616,'Tengen'), +(6617,'Wünnenberg'), +(6618,'Empfingen'), +(6619,'Geislingen'), +(6620,'Angelbachtal'), +(6621,'Wurmlingen'), +(6622,'Heiligkreuzsteinach'), +(6623,'Wölfersheim'), +(6624,'Meckesheim'), +(6625,'Gäufelden'), +(6626,'Hungen'), +(6627,'Hausen am Tann'), +(6628,'Eppingen'), +(6629,'Spechbach'), +(6630,'Weissach'), +(6631,'Siedenburg'), +(6632,'Staffhorst'), +(6633,'Beuron'), +(6634,'Waldeck'), +(6635,'Heide'), +(6636,'Mössingen'), +(6637,'Hüffenhardt'), +(6638,'Winterlingen'), +(6639,'Inzigkofen'), +(6640,'Klingenberg a. Main'), +(6641,'Löwenstedt'), +(6642,'Elztal'), +(6643,'Murr'), +(6644,'Schefflenz'), +(6645,'Neustadt am Rübenberge'), +(6646,'Frielendorf'), +(6647,'Wohlde'), +(6648,'Tarp'), +(6649,'Frammersbach'), +(6650,'Wendlingen am Neckar'), +(6651,'Ellingstedt'), +(6652,'Ertingen'), +(6653,'Sieverstedt'), +(6654,'Büdesheim'), +(6655,'Saarwellingen'), +(6656,'Barweiler'), +(6657,'Bauler'), +(6658,'Hoffeld'), +(6659,'Pomster'), +(6660,'Wiesemscheid'), +(6661,'Wirft'), +(6662,'Bodenbach'), +(6663,'Kelberg'), +(6664,'Kirsbach'), +(6665,'Esche'), +(6666,'Georgsdorf'), +(6667,'Neuenhaus'), +(6668,'Osterwald'), +(6669,'Wedel'), +(6670,'Urspringen'), +(6671,'Hollenstedt'), +(6672,'Drestedt'), +(6673,'Zellingen'), +(6674,'Bargstedt'), +(6675,'Brammer'), +(6676,'Oldenbüttel'), +(6677,'Gronau (Leine)'), +(6678,'Michelbach an der Bilz'), +(6679,'Kirchheim'), +(6680,'Göggingen'), +(6681,'Großenaspe'), +(6682,'Leutkirch im Allgäu'), +(6683,'Wasserlosen'), +(6684,'Neuler'), +(6685,'Wasungen'), +(6686,'Gieboldehausen'), +(6687,'Rhumequelle'), +(6688,'Dermbach'), +(6689,'Wiesenthal'), +(6690,'Wanfried'), +(6691,'Ilsede'), +(6692,'Kötz'), +(6693,'Wildemann'), +(6694,'Tremsbüttel'), +(6695,'Suderburg'), +(6696,'Mindelheim'), +(6697,'Burghaslach'), +(6698,'Maihingen'), +(6699,'Winnweiler'), +(6700,'Au (Breisgau)'), +(6701,'Wickede (Ruhr)'), +(6702,'Schutterwald'), +(6703,'Welver'), +(6704,'Gengenbach'), +(6705,'Varel'), +(6706,'Elbtal'), +(6707,'Emstek'), +(6708,'Schönwald im Schwarzwald'), +(6709,'Au am Rhein'), +(6710,'Zeiskam'), +(6711,'Bischweier'), +(6712,'Leun'), +(6713,'Böhl-Iggelheim'), +(6714,'Eppstein'), +(6715,'Weisenbach'), +(6716,'Ettlingen'), +(6717,'List'), +(6718,'Kelkheim'), +(6719,'Berne'), +(6720,'Ahorn'), +(6721,'Tettnang'), +(6722,'Kressbronn am Bodensee'), +(6723,'Welzheim'), +(6724,'Regesbostel'), +(6725,'Elze'), +(6726,'Hohenstadt/Drackenstein'), +(6727,'Mayen'), +(6728,'Niederzissen'), +(6729,'Rösrath'), +(6730,'Gersheim'), +(6731,'Idar-Oberstein'), +(6732,'Hennef (Sieg)'), +(6733,'Fischingen'), +(6734,'Odernheim am Glan'), +(6735,'Menslage'), +(6736,'Dernbach (Westerwald)'), +(6737,'Ihlow'), +(6738,'Müden'), +(6739,'Brücken (Pfalz)'), +(6740,'Langweiler'), +(6741,'Neuschoo'), +(6742,'Offenbach-Hundheim'), +(6743,'Fischbachau'), +(6744,'Frauenneuharting'), +(6745,'Schmidgaden'), +(6746,'Jößnitz'), +(6747,'Delitzsch'), +(6748,'Krostitz'), +(6749,'Schwarzhofen'), +(6750,'Heldenstein'), +(6751,'Aschau a. Inn'), +(6752,'Klingenthal'), +(6753,'Brandenburg/Havel'), +(6754,'Wilkau-Haßlau'), +(6755,'Gnoien'), +(6756,'Grimma'), +(6757,'Hartenstein'), +(6758,'Dargun'), +(6759,'Scheibenberg'), +(6760,'Schwielowswee'), +(6761,'Wittenhagen'), +(6762,'Hainichen'), +(6763,'Rossau'), +(6764,'Striegistal'), +(6765,'Wolkenstein'), +(6766,'Vilshofen an der Donau'), +(6767,'Rangsdorf'), +(6768,'Woldegk'), +(6769,'Süderbrarup'), +(6770,'Bad Überkingen'), +(6771,'Wolfegg'), +(6772,'Ellerhoop'), +(6773,'Einbeck'), +(6774,'Kreiensen'), +(6775,'Padenstedt'), +(6776,'Bad Sooden-Allendorf'), +(6777,'Ellerau'), +(6778,'Dörphof'), +(6779,'Bischofsheim a.d. Rhön'), +(6780,'Ringgau'), +(6781,'Erolzheim'), +(6782,'Meinhard'), +(6783,'Oberkochen'), +(6784,'Ostheim v.d. Rhön'), +(6785,'Prosselsheim'), +(6786,'Nettelsee'), +(6787,'Osterberg'), +(6788,'Schillingsfürst'), +(6789,'Unterlüß'), +(6790,'Mönkeberg'), +(6791,'Mainbernheim'), +(6792,'Roggenburg'), +(6793,'Aletshausen'), +(6794,'Durach'), +(6795,'Am Ohmberg'), +(6796,'Sonnenstein'), +(6797,'Riedbach'), +(6798,'Jettingen-Scheppach'), +(6799,'Wittelshofen'), +(6800,'Adenbüttel'), +(6801,'Ipsheim'), +(6802,'Schladen-Werla'), +(6803,'Hohenaltheim'), +(6804,'Bad Harzburg'), +(6805,'Torfhaus'), +(6806,'Stammham'), +(6807,'Pegnitz'), +(6808,'Heinersreuth'), +(6809,'Fahrenzhausen'), +(6810,'Geroldsgrün'), +(6811,'Neubukow'), +(6812,'Ravensberg'), +(6813,'Pförring'), +(6814,'Gommern'), +(6815,'Dannigkow'), +(6816,'Osternienburger Land'), +(6817,'Enzklösterle'), +(6818,'Raunheim'), +(6819,'Hüfingen'), +(6820,'Hockenheim'), +(6821,'Viernheim'), +(6822,'Hirschberg an der Bergstraße'), +(6823,'Ehrenburg'), +(6824,'Dreieich'), +(6825,'Frankfurt am Main (Taunusturm)'), +(6826,'Marsberg'), +(6827,'Messel'), +(6828,'Dietzenbach'), +(6829,'Gechingen'), +(6830,'Epfenbach'), +(6831,'Laubach'), +(6832,'Bad König'), +(6833,'Thedinghausen'), +(6834,'Emtinghausen'), +(6835,'Bülkau'), +(6836,'Martfeld'), +(6837,'Schwarme'), +(6838,'Jungingen'), +(6839,'Friedrichstadt'), +(6840,'Koldenbüttel'), +(6841,'Gomaringen'), +(6842,'Bad Zwesten'), +(6843,'Möglingen'), +(6844,'Alsfeld'), +(6845,'Erlenbach'), +(6846,'Beverungen'), +(6847,'Engstingen'), +(6848,'Kleinkahl'), +(6849,'Bergenhusen'), +(6850,'Hollingstedt'), +(6851,'Osterburken'), +(6852,'Altenbuch'), +(6853,'Remshalden'), +(6854,'Rückholz'), +(6855,'Ruderatshofen'), +(6856,'Georgenthal/ Thür. Wald'), +(6857,'Denkte'), +(6858,'Munningen'), +(6859,'Dietenhofen'), +(6860,'Petersaurach'), +(6861,'Donauwörth'), +(6862,'Suhlendorf'), +(6863,'Wilhermsdorf'), +(6864,'Adelsried'), +(6865,'Ehra-Lessien'), +(6866,'Barwedel'), +(6867,'Theilenhofen'), +(6868,'Absberg'), +(6869,'Weitramsdorf'), +(6870,'Langenaltheim'), +(6871,'Breitengüßbach'), +(6872,'Großheirath'), +(6873,'Groß Quenstedt'), +(6874,'Apfeldorf'), +(6875,'Strullendorf'), +(6876,'Bubenreuth'), +(6877,'Hilpoltstein'), +(6878,'Eichstätt'), +(6879,'Hochstadt a. Main'), +(6880,'Heldrungen'), +(6881,'Schneckenlohe'), +(6882,'Weißenohe'), +(6883,'Habach'), +(6884,'Hohenleipisch'), +(6885,'Neuenhagen'), +(6886,'Hoppegarten'), +(6887,'Lieberose'), +(6888,'Spremberg'), +(6889,'Tschernitz'), +(6890,'Erkelenz'), +(6891,'Merzig'), +(6892,'Gerolstein'), +(6893,'Speicher'), +(6894,'Manderscheid'), +(6895,'Mettmann'), +(6896,'Retterath'), +(6897,'Haan'), +(6898,'Geeste'), +(6899,'Sustrum'), +(6900,'Lathen'), +(6901,'Overath'), +(6902,'Sasbachwalden'), +(6903,'Stadecken-Elsheim'), +(6904,'Großenkneten'), +(6905,'Brechen'), +(6906,'Waldshut-Tiengen'), +(6907,'Merenberg'), +(6908,'Ötigheim'), +(6909,'Jockgrim'), +(6910,'Schiltach'), +(6911,'Wutöschingen'), +(6912,'Klettgau'), +(6913,'Loßburg'), +(6914,'Siegbach'), +(6915,'Grävenwiesbach'), +(6916,'Elsdorf-Westermühlen'), +(6917,'Springe'), +(6918,'Auenwald'), +(6919,'Kreuzwertheim'), +(6920,'Owschlag'), +(6921,'Langballig'), +(6922,'Uetersen'), +(6923,'Westermoor'), +(6924,'Schülp bei Rendsburg'), +(6925,'Kaisersbach'), +(6926,'Burghaun'), +(6927,'Westerrönfeld'), +(6928,'Rodalben'), +(6929,'Bippen'), +(6930,'Callbach'), +(6931,'Bötzingen'), +(6932,'Gottenheim'), +(6933,'Friesenhagen'), +(6934,'Sölden'), +(6935,'Molbergen'), +(6936,'Lastrup'), +(6937,'Emmendingen'), +(6938,'Nister'), +(6939,'Scheuerfeld'), +(6940,'Bramsche'), +(6941,'Badbergen'), +(6942,'Heidenrod'), +(6943,'Utzenfeld'), +(6944,'Todtmoos'), +(6945,'Dornburg'), +(6946,'Nottuln'), +(6947,'Brohl-Lützing'), +(6948,'Baumholder'), +(6949,'Stavern'), +(6950,'Bundenbach'), +(6951,'Wallhalben'), +(6952,'Maßweiler'), +(6953,'Schwerte'), +(6954,'Rhens'); +/*!40000 ALTER TABLE `city` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `clienteleinfo` +-- + +DROP TABLE IF EXISTS `clienteleinfo`; +/*!50001 DROP VIEW IF EXISTS `clienteleinfo`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `clienteleinfo` AS SELECT + 1 AS `BusinessId`, + 1 AS `Kundenname`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `contact` +-- + +DROP TABLE IF EXISTS `contact`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contact` ( + `contactpersonid` int(11) NOT NULL, + `isbusiness` tinyint(1) NOT NULL DEFAULT 1, + UNIQUE KEY `contact_unique` (`contactpersonid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contact` +-- + +LOCK TABLES `contact` WRITE; +/*!40000 ALTER TABLE `contact` DISABLE KEYS */; +/*!40000 ALTER TABLE `contact` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contactperson` +-- + +DROP TABLE IF EXISTS `contactperson`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contactperson` ( + `contactpersonid` int(11) NOT NULL AUTO_INCREMENT, + `priority` tinyint(1) NOT NULL DEFAULT 0, + `lastname` varchar(75) NOT NULL, + `firstname` varchar(75) NOT NULL, + `phone` varchar(75) DEFAULT NULL, + `mobilephone` varchar(75) DEFAULT NULL, + `pos` varchar(50) DEFAULT NULL, + `salutation` varchar(15) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `birthday` varchar(35) DEFAULT NULL, + `active` tinyint(1) NOT NULL DEFAULT 1, + `invoice` tinyint(1) NOT NULL DEFAULT 0, + `reminder` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`contactpersonid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contactperson` +-- + +LOCK TABLES `contactperson` WRITE; +/*!40000 ALTER TABLE `contactperson` DISABLE KEYS */; +/*!40000 ALTER TABLE `contactperson` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `contactpersonview` +-- + +DROP TABLE IF EXISTS `contactpersonview`; +/*!50001 DROP VIEW IF EXISTS `contactpersonview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `contactpersonview` AS SELECT + 1 AS `contactid`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname`, + 1 AS `Telefon`, + 1 AS `Mobil`, + 1 AS `E-Mail`, + 1 AS `Position`, + 1 AS `Entscheider` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `contract` +-- + +DROP TABLE IF EXISTS `contract`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract` ( + `contractid` int(11) NOT NULL AUTO_INCREMENT, + `tariffid` int(11) NOT NULL, + `officeid` int(11) NOT NULL COMMENT 'Kostenstelle', + `startdate` date NOT NULL, + `enddate` date DEFAULT NULL, + PRIMARY KEY (`contractid`), + KEY `contract_office_FK` (`officeid`), + CONSTRAINT `contract_office_FK` FOREIGN KEY (`officeid`) REFERENCES `office` (`officeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract` +-- + +LOCK TABLES `contract` WRITE; +/*!40000 ALTER TABLE `contract` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `country` +-- + +DROP TABLE IF EXISTS `country`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `country` ( + `countryid` int(11) NOT NULL AUTO_INCREMENT, + `country` varchar(200) NOT NULL, + `countryshort` varchar(100) NOT NULL, + `nationality` varchar(100) NOT NULL, + `iso2` varchar(2) NOT NULL, + `iso3` varchar(3) NOT NULL, + PRIMARY KEY (`countryid`), + UNIQUE KEY `country_unique` (`country`), + UNIQUE KEY `country_unique_1` (`iso2`), + UNIQUE KEY `country_unique_2` (`iso3`) +) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `country` +-- + +LOCK TABLES `country` WRITE; +/*!40000 ALTER TABLE `country` DISABLE KEYS */; +INSERT INTO `country` VALUES +(1,'die Islamische Republik Afghanistan','Afghanistan','afghanisch','AF','AFG'), +(2,'die Arabische Republik Ägypten','Ägypten','ägyptisch','EG','EGY'), +(3,'die Republik Albanien','Albanien','albanisch','AL','ALB'), +(4,'die Demokratische Volksrepublik Algerien','Algerien','algerisch','DZ','DZA'), +(5,'das Fürstentum Andorra','Andorra','andorranisch','AD','AND'), +(6,'die Republik Angola','Angola','angolanisch','AO','AGO'), +(7,'Antigua und Barbuda','Antigua und Barbuda','antiguanisch','AG','ATG'), +(8,'die Republik Äquatorialguinea','Äquatorialguinea','äquatorialguineisch','GQ','GNQ'), +(9,'die Argentinische Republik','Argentinien','argentinisch','AR','ARG'), +(10,'die Republik Armenien','Armenien','armenisch','AM','ARM'), +(11,'die Republik Aserbaidschan','Aserbaidschan','aserbaidschanisch','AZ','AZE'), +(12,'die Demokratische Bundesrepublik Äthiopien','Äthiopien','äthiopisch','ET','ETH'), +(13,'Australien','Australien','australisch','AU','AUS'), +(14,'das Commonwealth der Bahamas','Bahamas','bahamaisch','BS','BHS'), +(15,'das Königreich Bahrain','Bahrain','bahrainisch','BH','BHR'), +(16,'die Volksrepublik Bangladesch','Bangladesch','bangladeschisch','BD','BGD'), +(17,'Barbados','Barbados','barbadisch','BB','BRB'), +(18,'die Republik Belarus','Belarus','belarussisch','BY','BLR'), +(19,'das Königreich Belgien','Belgien','belgisch','BE','BEL'), +(20,'Belize','Belize','belizisch','BZ','BLZ'), +(21,'die Republik Benin','Benin','beninisch','BJ','BEN'), +(22,'das Königreich Bhutan','Bhutan','bhutanisch','BT','BTN'), +(23,'der Plurinationale Staat Bolivien','Plurinationaler Staat Bolivien','bolivianisch','BO','BOL'), +(24,'die Republik Botsuana','Botsuana','botsuanisch','BW','BWA'), +(25,'die Föderative Republik Brasilien','Brasilien','brasilianisch','BR','BRA'), +(26,'die Überseegebiete, deren internationale Beziehungen das Vereinigte Königreich Großbritannien und Nordirland wahrnimmt','Britische Überseegebiete','britisch (BOTC)','··','···'), +(27,'Brunei Darussalam','Brunei Darussalam','bruneiisch','BN','BRN'), +(28,'die Republik Bulgarien','Bulgarien','bulgarisch','BG','BGR'), +(29,'Burkina Faso','Burkina Faso','burkinisch','BF','BFA'), +(30,'die Republik Burundi','Burundi','burundisch','BI','BDI'), +(31,'die Republik Cabo Verde','Cabo Verde','cabo-verdisch','CV','CPV'), +(32,'die Republik Chile','Chile','chilenisch','CL','CHL'), +(33,'die Volksrepublik China','China','chinesisch','CN','CHN'), +(34,'die Republik Costa Rica','Costa Rica','costa-ricanisch','CR','CRI'), +(35,'die Republik Côte d’Ivoire','Côte d’Ivoire','ivorisch','CI','CIV'), +(36,'das Königreich Dänemark','Dänemark','dänisch','DK','DNK'), +(37,'die Bundesrepublik Deutschland','Deutschland','deutsch','DE','DEU'), +(38,'das Commonwealth Dominica','Dominica','dominicanisch','DM','DMA'), +(39,'die Dominikanische Republik','Dominikanische Republik','dominikanisch','DO','DOM'), +(40,'die Republik Dschibuti','Dschibuti','dschibutisch','DJ','DJI'), +(41,'die Republik Ecuador','Ecuador','ecuadorianisch','EC','ECU'), +(42,'die Republik El Salvador','El Salvador','salvadorianisch','SV','SLV'), +(43,'der Staat Eritrea','Eritrea','eritreisch','ER','ERI'), +(44,'die Republik Estland','Estland','estnisch','EE','EST'), +(45,'das Königreich Eswatini','Eswatini','eswatinisch','SZ','SWZ'), +(46,'die Republik Fidschi','Fidschi','fidschianisch','FJ','FJI'), +(47,'die Republik Finnland','Finnland','finnisch','FI','FIN'), +(48,'die Französische Republik','Frankreich','französisch','FR','FRA'), +(49,'die Gabunische Republik','Gabun','gabunisch','GA','GAB'), +(50,'die Republik Gambia','Gambia','gambisch','GM','GMB'), +(51,'Georgien','Georgien','georgisch','GE','GEO'), +(52,'die Republik Ghana','Ghana','ghanaisch','GH','GHA'), +(53,'Grenada','Grenada','grenadisch','GD','GRD'), +(54,'die Hellenische Republik','Griechenland','griechisch','GR','GRC'), +(55,'die Republik Guatemala','Guatemala','guatemaltekisch','GT','GTM'), +(56,'die Republik Guinea','Guinea','guineisch','GN','GIN'), +(57,'die Republik Guinea-Bissau','Guinea-Bissau','guinea-bissauisch','GW','GNB'), +(58,'die Kooperative Republik Guyana','Guyana','guyanisch','GY','GUY'), +(59,'die Republik Haiti','Haiti','haitianisch','HT','HTI'), +(60,'die Republik Honduras','Honduras','honduranisch','HN','HND'), +(61,'die Sonderverwaltungsregion Hongkong','Hongkong','chinesisch (Hongkong)','HK','HKG'), +(62,'die Republik Indien','Indien','indisch','IN','IND'), +(63,'die Republik Indonesien','Indonesien','indonesisch','ID','IDN'), +(64,'die Republik Irak','Irak','irakisch','IQ','IRQ'), +(65,'die Islamische Republik Iran','Islamische Republik Iran','iranisch','IR','IRN'), +(66,'Irland','Irland','irisch','IE','IRL'), +(67,'Island','Island','isländisch','IS','ISL'), +(68,'der Staat Israel','Israel','israelisch','IL','ISR'), +(69,'die Italienische Republik','Italien','italienisch','IT','ITA'), +(70,'Jamaika','Jamaika','jamaikanisch','JM','JAM'), +(71,'Japan','Japan','japanisch','JP','JPN'), +(72,'die Republik Jemen','Jemen','jemenitisch','YE','YEM'), +(73,'das Haschemitische Königreich Jordanien','Jordanien','jordanisch','JO','JOR'), +(74,'das Königreich Kambodscha','Kambodscha','kambodschanisch','KH','KHM'), +(75,'die Republik Kamerun','Kamerun','kamerunisch','CM','CMR'), +(76,'Kanada','Kanada','kanadisch','CA','CAN'), +(77,'die Republik Kasachstan','Kasachstan','kasachisch','KZ','KAZ'), +(78,'der Staat Katar','Katar','katarisch','QA','QAT'), +(79,'die Republik Kenia','Kenia','kenianisch','KE','KEN'), +(80,'die Kirgisische Republik','Kirgisistan','kirgisisch','KG','KGZ'), +(81,'die Republik Kiribati','Kiribati','kiribatisch','KI','KIR'), +(82,'die Republik Kolumbien','Kolumbien','kolumbianisch','CO','COL'), +(83,'die Union der Komoren','Komoren','komorisch','KM','COM'), +(84,'die Republik Kongo','Kongo','kongolesisch','CG','COG'), +(85,'die Demokratische Republik Kongo','Demokratische Republik Kongo','der Demokratischen Republik Kongo','CD','COD'), +(86,'die Demokratische Volksrepublik Korea','Demokratische Volksrepublik Korea','der Demokratischen Volksrepublik Korea','KP','PRK'), +(87,'die Republik Korea','Republik Korea','der Republik Korea','KR','KOR'), +(88,'die Republik Kosovo','Kosovo','kosovarisch','XK','XXK'), +(89,'die Republik Kroatien','Kroatien','kroatisch','HR','HRV'), +(90,'die Republik Kuba','Kuba','kubanisch','CU','CUB'), +(91,'der Staat Kuwait','Kuwait','kuwaitisch','KW','KWT'), +(92,'die Demokratische Volksrepublik Laos','Demokratische Volksrepublik Laos','laotisch','LA','LAO'), +(93,'das Königreich Lesotho','Lesotho','lesothisch','LS','LSO'), +(94,'die Republik Lettland','Lettland','lettisch','LV','LVA'), +(95,'die Libanesische Republik','Libanon','libanesisch','LB','LBN'), +(96,'die Republik Liberia','Liberia','liberianisch','LR','LBR'), +(97,'der Staat Libyen','Libyen','libysch','LY','LBY'), +(98,'das Fürstentum Liechtenstein','Liechtenstein','liechtensteinisch','LI','LIE'), +(99,'die Republik Litauen','Litauen','litauisch','LT','LTU'), +(100,'das Großherzogtum Luxemburg','Luxemburg','luxemburgisch','LU','LUX'), +(101,'die Sonderverwaltungsregion Macau','Macau','chinesisch (Macau)','MO','MAC'), +(102,'die Republik Madagaskar','Madagaskar','madagassisch','MG','MDG'), +(103,'die Republik Malawi','Malawi','malawisch','MW','MWI'), +(104,'Malaysia','Malaysia','malaysisch','MY','MYS'), +(105,'die Republik Malediven','Malediven','maledivisch','MV','MDV'), +(106,'die Republik Mali','Mali','malisch','ML','MLI'), +(107,'die Republik Malta','Malta','maltesisch','MT','MLT'), +(108,'das Königreich Marokko','Marokko','marokkanisch','MA','MAR'), +(109,'die Republik Marshallinseln','Marshallinseln','marshallisch','MH','MHL'), +(110,'die Islamische Republik Mauretanien','Mauretanien','mauretanisch','MR','MRT'), +(111,'die Republik Mauritius','Mauritius','mauritisch','MU','MUS'), +(112,'die Vereinigten Mexikanischen Staaten','Mexiko','mexikanisch','MX','MEX'), +(113,'die Föderierten Staaten von Mikronesien','Föderierte Staaten von Mikronesien','mikronesisch','FM','FSM'), +(114,'die Republik Moldau','Republik Moldau','moldauisch','MD','MDA'), +(115,'das Fürstentum Monaco','Monaco','monegassisch','MC','MCO'), +(116,'die Mongolei','Mongolei','mongolisch','MN','MNG'), +(117,'Montenegro','Montenegro','montenegrinisch','ME','MNE'), +(118,'die Republik Mosambik','Mosambik','mosambikanisch','MZ','MOZ'), +(119,'die Republik der Union Myanmar','Myanmar','myanmarisch','MM','MMR'), +(120,'die Republik Namibia','Namibia','namibisch','NA','NAM'), +(121,'die Republik Nauru','Nauru','nauruisch','NR','NRU'), +(122,'Nepal','Nepal','nepalesisch','NP','NPL'), +(123,'Neuseeland','Neuseeland','neuseeländisch','NZ','NZL'), +(124,'die Republik Nicaragua','Nicaragua','nicaraguanisch','NI','NIC'), +(125,'das Königreich der Niederlande','Königreich der Niederlande','niederländisch','NL','NLD'), +(126,'die Republik Niger','Niger','nigrisch','NE','NER'), +(127,'die Bundesrepublik Nigeria','Nigeria','nigerianisch','NG','NGA'), +(128,'die Republik Nordmazedonien','Nordmazedonien','mazedonisch/Bürger der Republik Nordmazedonien','MK','MKD'), +(129,'das Königreich Norwegen','Norwegen','norwegisch','NO','NOR'), +(130,'das Sultanat Oman','Oman','omanisch','OM','OMN'), +(131,'die Republik Österreich','Österreich','österreichisch','AT','AUT'), +(132,'die Islamische Republik Pakistan','Pakistan','pakistanisch','PK','PAK'), +(133,'die Palästinensischen Gebiete','Palästinensische Gebiete','ohne Bezeichnung','–','–'), +(134,'die Republik Palau','Palau','palauisch','PW','PLW'), +(135,'die Republik Panama','Panama','panamaisch','PA','PAN'), +(136,'der Unabhängige Staat Papua-Neuguinea','Papua-Neuguinea','papua-neuguineisch','PG','PNG'), +(137,'die Republik Paraguay','Paraguay','paraguayisch','PY','PRY'), +(138,'die Republik Peru','Peru','peruanisch','PE','PER'), +(139,'die Republik der Philippinen','Philippinen','philippinisch','PH','PHL'), +(140,'die Republik Polen','Polen','polnisch','PL','POL'), +(141,'die Portugiesische Republik','Portugal','portugiesisch','PT','PRT'), +(142,'die Republik Ruanda','Ruanda','ruandisch','RW','RWA'), +(143,'Rumänien','Rumänien','rumänisch','RO','ROU'), +(144,'die Russische Föderation','Russische Föderation','russisch','RU','RUS'), +(145,'die Salomonen','Salomonen','salomonisch','SB','SLB'), +(146,'die Republik Sambia','Sambia','sambisch','ZM','ZMB'), +(147,'der Unabhängige Staat Samoa','Samoa','samoanisch','WS','WSM'), +(148,'die Republik San Marino','San Marino','san-marinesisch','SM','SMR'), +(149,'die Demokratische Republik São Tomé und Príncipe','São Tomé und Príncipe','são-toméisch','ST','STP'), +(150,'das Königreich Saudi-Arabien','Saudi-Arabien','saudi-arabisch','SA','SAU'), +(151,'das Königreich Schweden','Schweden','schwedisch','SE','SWE'), +(152,'die Schweizerische Eidgenossenschaft','Schweiz','schweizerisch','CH','CHE'), +(153,'die Republik Senegal','Senegal','senegalesisch','SN','SEN'), +(154,'die Republik Serbien','Serbien','serbisch','RS','SRB'), +(155,'die Republik Seychellen','Seychellen','seychellisch','SC','SYC'), +(156,'die Republik Sierra Leone','Sierra Leone','sierra-leonisch','SL','SLE'), +(157,'die Republik Simbabwe','Simbabwe','simbabwisch','ZW','ZWE'), +(158,'die Republik Singapur','Singapur','singapurisch','SG','SGP'), +(159,'die Slowakische Republik','Slowakei','slowakisch','SK','SVK'), +(160,'die Republik Slowenien','Slowenien','slowenisch','SI','SVN'), +(161,'die Bundesrepublik Somalia','Somalia','somalisch','SO','SOM'), +(162,'die Union der Sozialistischen Sowjetrepubliken','Sowjetunion','sowjetisch','SU','SUN'), +(163,'das Königreich Spanien','Spanien','spanisch','ES','ESP'), +(164,'die Demokratische Sozialistische Republik Sri Lanka','Sri Lanka','sri-lankisch','LK','LKA'), +(165,'die Föderation St. Kitts und Nevis','St. Kitts und Nevis','von St. Kitts und Nevis','KN','KNA'), +(166,'St. Lucia','St. Lucia','lucianisch','LC','LCA'), +(167,'St. Vincent und die Grenadinen','St. Vincent und die Grenadinen','vincentisch','VC','VCT'), +(168,'die Republik Südafrika','Südafrika','südafrikanisch','ZA','ZAF'), +(169,'die Republik Sudan','Sudan','sudanesisch','SD','SDN'), +(170,'die Republik Südsudan','Südsudan','südsudanesisch','SS','SSD'), +(171,'die Republik Suriname','Suriname','surinamisch','SR','SUR'), +(172,'die Arabische Republik Syrien','Arabische Republik Syrien','syrisch','SY','SYR'), +(173,'die Republik Tadschikistan','Tadschikistan','tadschikisch','TJ','TJK'), +(174,'Taiwan','Taiwan','taiwanisch','TW','TWN'), +(175,'die Vereinigte Republik Tansania','Vereinigte Republik Tansania','tansanisch','TZ','TZA'), +(176,'das Königreich Thailand','Thailand','thailändisch','TH','THA'), +(177,'die Demokratische Republik Timor-Leste','Timor-Leste','von Timor-Leste','TL','TLS'), +(178,'die Republik Togo','Togo','togoisch','TG','TGO'), +(179,'das Königreich Tonga','Tonga','tongaisch','TO','TON'), +(180,'die Republik Trinidad und Tobago','Trinidad und Tobago','von Trinidad und Tobago','TT','TTO'), +(181,'die Republik Tschad','Tschad','tschadisch','TD','TCD'), +(182,'die Tschechische Republik','Tschechien','tschechisch','CZ','CZE'), +(183,'die Tschechoslowakische Sozialistische Republik','Tschechoslowakei','tschechoslowakisch','CS','CSK'), +(184,'die Tunesische Republik','Tunesien','tunesisch','TN','TUN'), +(185,'die Republik Türkei','Türkei','türkisch','TR','TUR'), +(186,'Turkmenistan','Turkmenistan','turkmenisch','TM','TKM'), +(187,'Tuvalu','Tuvalu','tuvaluisch','TV','TUV'), +(188,'die Republik Uganda','Uganda','ugandisch','UG','UGA'), +(189,'die Ukraine','Ukraine','ukrainisch','UA','UKR'), +(190,'Ungarn','Ungarn','ungarisch','HU','HUN'), +(191,'die Republik Östlich des Uruguay','Uruguay','uruguayisch','UY','URY'), +(192,'die Republik Usbekistan','Usbekistan','usbekisch','UZ','UZB'), +(193,'die Republik Vanuatu','Vanuatu','vanuatuisch','VU','VUT'), +(194,'der Staat Vatikanstadt','Vatikanstadt','vatikanisch','VA','VAT'), +(195,'die Bolivarische Republik Venezuela','Bolivarische Republik Venezuela','venezolanisch','VE','VEN'), +(196,'die Vereinigten Arabischen Emirate (Abu Dhabi, Adschman, Dubai, Fudschaira, Ras al Chaima, Schardscha, Umm al Kaiwain)','Vereinigte Arabische Emirate','der Vereinigten Arabischen Emirate','AE','ARE'), +(197,'die Vereinigten Staaten von Amerika','Vereinigte Staaten','amerikanisch','US','USA'), +(198,'das Vereinigte Königreich Großbritannien und Nordirland','Vereinigtes Königreich','britisch','GB','GBR'), +(199,'die Sozialistische Republik Vietnam','Vietnam','vietnamesisch','VN','VNM'), +(200,'die Zentralafrikanische Republik','Zentralafrikanische Republik','zentralafrikanisch','CF','CAF'), +(201,'die Republik Zypern','Zypern','zyprisch','CY','CYP'); +/*!40000 ALTER TABLE `country` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `customerinfo` +-- + +DROP TABLE IF EXISTS `customerinfo`; +/*!50001 DROP VIEW IF EXISTS `customerinfo`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `customerinfo` AS SELECT + 1 AS `BusinessId`, + 1 AS `Kundenname`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname`, + 1 AS `PLZ`, + 1 AS `Stadt`, + 1 AS `Straße`, + 1 AS `Hausnummer` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `employee` +-- + +DROP TABLE IF EXISTS `employee`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `employee` ( + `employeeid` int(11) NOT NULL AUTO_INCREMENT, + `lastname` varchar(75) NOT NULL, + `firstname` varchar(75) NOT NULL, + `maritalstatusid` int(11) NOT NULL DEFAULT 1, + `countryid` int(11) NOT NULL DEFAULT 37 COMMENT 'used for nationality', + `birthday` varchar(75) NOT NULL, + `phone` varchar(75) DEFAULT NULL, + `mobilephone` varchar(75) DEFAULT NULL, + `email` varchar(75) DEFAULT NULL, + `employeecontracttypeid` int(11) NOT NULL DEFAULT 5, + `formofaddress` varchar(35) DEFAULT NULL COMMENT 'Briefanrede', + `salutation` varchar(35) NOT NULL, + `applicant` tinyint(1) NOT NULL DEFAULT 1, + `enabled` tinyint(1) NOT NULL DEFAULT 1, + `processed` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'erledigt', + `disability` varchar(75) DEFAULT '0', + `reference` varchar(75) NOT NULL, + `empreference` varchar(75) NOT NULL DEFAULT '0', + `officeid` int(11) DEFAULT NULL, + `taxno` varchar(75) NOT NULL, + `userid` int(11) DEFAULT NULL COMMENT 'supervisor/dispatcher', + `birthname` varchar(75) DEFAULT NULL, + `placeofbirth` varchar(75) DEFAULT NULL, + `workpermit` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`employeeid`), + UNIQUE KEY `employee_unique_2` (`reference`), + UNIQUE KEY `employee_unique_3` (`taxno`), + KEY `employee_jobstatus_FK` (`employeecontracttypeid`), + KEY `employee_maritalstatus_FK` (`maritalstatusid`), + KEY `employee_office_FK` (`officeid`), + KEY `employee_country_FK` (`countryid`), + KEY `employee_users_FK` (`userid`), + CONSTRAINT `employee_country_FK` FOREIGN KEY (`countryid`) REFERENCES `country` (`countryid`) ON UPDATE CASCADE, + CONSTRAINT `employee_jobstatus_FK` FOREIGN KEY (`employeecontracttypeid`) REFERENCES `employeecontracttype` (`employeecontracttypeid`), + CONSTRAINT `employee_maritalstatus_FK` FOREIGN KEY (`maritalstatusid`) REFERENCES `maritalstatus` (`maritalstatusid`) ON UPDATE CASCADE, + CONSTRAINT `employee_office_FK` FOREIGN KEY (`officeid`) REFERENCES `office` (`officeid`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `employee_users_FK` FOREIGN KEY (`userid`) REFERENCES `users` (`usersid`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `employee` +-- + +LOCK TABLES `employee` WRITE; +/*!40000 ALTER TABLE `employee` DISABLE KEYS */; +/*!40000 ALTER TABLE `employee` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER employee_logger_insert AFTER INSERT ON employee +FOR EACH ROW + CALL logger (new.employeeid, 'INSERT', 'addApplicant() - new Applicant inserted') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Temporary table structure for view `employeeapplicantview` +-- + +DROP TABLE IF EXISTS `employeeapplicantview`; +/*!50001 DROP VIEW IF EXISTS `employeeapplicantview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `employeeapplicantview` AS SELECT + 1 AS `EmployeeId`, + 1 AS `Aktenzeichen`, + 1 AS `Vorname`, + 1 AS `Nachname`, + 1 AS `Anrede`, + 1 AS `Mobil`, + 1 AS `Telefon`, + 1 AS `Email`, + 1 AS `Beschäftigungsverhältnis`, + 1 AS `Erledigt`, + 1 AS `Bewerber` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `employeecontract` +-- + +DROP TABLE IF EXISTS `employeecontract`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `employeecontract` ( + `empcontractid` int(11) NOT NULL AUTO_INCREMENT, + `employeeid` int(11) NOT NULL, + `contractstart` date NOT NULL DEFAULT current_timestamp(), + `contractend` date DEFAULT NULL, + `salary` decimal(5,2) unsigned NOT NULL DEFAULT 12.82, + `jobdescription` varchar(100) DEFAULT NULL, + PRIMARY KEY (`empcontractid`), + KEY `employeecontract_employee_FK` (`employeeid`), + CONSTRAINT `employeecontract_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `employeecontract` +-- + +LOCK TABLES `employeecontract` WRITE; +/*!40000 ALTER TABLE `employeecontract` DISABLE KEYS */; +/*!40000 ALTER TABLE `employeecontract` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.employeecontract_logger_insert AFTER INSERT ON employeecontract +FOR EACH ROW + CALL logger (new.empcontractid, 'INSERT', 'getEmployeeContract() - add a Contract') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `employeecontracttype` +-- + +DROP TABLE IF EXISTS `employeecontracttype`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `employeecontracttype` ( + `employeecontracttypeid` int(11) NOT NULL AUTO_INCREMENT, + `description` varchar(30) NOT NULL, + PRIMARY KEY (`employeecontracttypeid`), + UNIQUE KEY `jobstatus_unique` (`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `employeecontracttype` +-- + +LOCK TABLES `employeecontracttype` WRITE; +/*!40000 ALTER TABLE `employeecontracttype` DISABLE KEYS */; +/*!40000 ALTER TABLE `employeecontracttype` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `employeeview` +-- + +DROP TABLE IF EXISTS `employeeview`; +/*!50001 DROP VIEW IF EXISTS `employeeview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `employeeview` AS SELECT + 1 AS `EmployeeId`, + 1 AS `Aktenzeichen`, + 1 AS `Vorname`, + 1 AS `Nachname`, + 1 AS `Anrede`, + 1 AS `Mobil`, + 1 AS `Telefon`, + 1 AS `Email`, + 1 AS `Beschäftigungsverhältnis`, + 1 AS `Erledigt`, + 1 AS `Bewerber` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `employeeweeklyhours` +-- + +DROP TABLE IF EXISTS `employeeweeklyhours`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `employeeweeklyhours` ( + `empcontractid` int(11) NOT NULL, + `workhours` tinyint(1) unsigned NOT NULL, + `workdays` tinyint(1) unsigned NOT NULL, + KEY `employeeweeklyhours_employeecontract_FK` (`empcontractid`), + CONSTRAINT `employeeweeklyhours_employeecontract_FK` FOREIGN KEY (`empcontractid`) REFERENCES `employeecontract` (`empcontractid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `employeeweeklyhours` +-- + +LOCK TABLES `employeeweeklyhours` WRITE; +/*!40000 ALTER TABLE `employeeweeklyhours` DISABLE KEYS */; +/*!40000 ALTER TABLE `employeeweeklyhours` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.employeeweeklyhours_logger_insert AFTER INSERT ON employeeweeklyhours +FOR EACH ROW + CALL logger (new.empcontractid, 'INSERT', 'getEmployeeContract() - add a Contract') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Temporary table structure for view `empprocessedview` +-- + +DROP TABLE IF EXISTS `empprocessedview`; +/*!50001 DROP VIEW IF EXISTS `empprocessedview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `empprocessedview` AS SELECT + 1 AS `1` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `entities` +-- + +DROP TABLE IF EXISTS `entities`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `entities` ( + `entityid` int(11) NOT NULL AUTO_INCREMENT, + `entity` varchar(35) NOT NULL, + PRIMARY KEY (`entityid`), + UNIQUE KEY `entities_unique` (`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `entities` +-- + +LOCK TABLES `entities` WRITE; +/*!40000 ALTER TABLE `entities` DISABLE KEYS */; +/*!40000 ALTER TABLE `entities` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `finishedinfo` +-- + +DROP TABLE IF EXISTS `finishedinfo`; +/*!50001 DROP VIEW IF EXISTS `finishedinfo`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `finishedinfo` AS SELECT + 1 AS `BusinessId`, + 1 AS `Kundenname`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `house` +-- + +DROP TABLE IF EXISTS `house`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `house` ( + `houseid` int(11) NOT NULL AUTO_INCREMENT, + `houseno` varchar(6) NOT NULL, + PRIMARY KEY (`houseid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `house` +-- + +LOCK TABLES `house` WRITE; +/*!40000 ALTER TABLE `house` DISABLE KEYS */; +/*!40000 ALTER TABLE `house` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `housemap` +-- + +DROP TABLE IF EXISTS `housemap`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `housemap` ( + `housemapid` int(11) NOT NULL AUTO_INCREMENT, + `streetid` int(11) NOT NULL, + `housenoid` int(11) NOT NULL, + PRIMARY KEY (`housemapid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `housemap` +-- + +LOCK TABLES `housemap` WRITE; +/*!40000 ALTER TABLE `housemap` DISABLE KEYS */; +/*!40000 ALTER TABLE `housemap` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `identification` +-- + +DROP TABLE IF EXISTS `identification`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `identification` ( + `identificationid` int(11) NOT NULL AUTO_INCREMENT, + `idnumber` varchar(75) NOT NULL, + `expiry` date NOT NULL, + `issued` date NOT NULL, + `authority` varchar(75) NOT NULL, + `typeid` int(11) NOT NULL, + `employeeid` int(11) NOT NULL, + PRIMARY KEY (`identificationid`), + UNIQUE KEY `identification_unique` (`idnumber`), + KEY `identification_identificationtype_FK` (`typeid`), + KEY `identification_employee_FK` (`employeeid`), + CONSTRAINT `identification_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `identification_identificationtype_FK` FOREIGN KEY (`typeid`) REFERENCES `identificationtype` (`typeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `identification` +-- + +LOCK TABLES `identification` WRITE; +/*!40000 ALTER TABLE `identification` DISABLE KEYS */; +/*!40000 ALTER TABLE `identification` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.identification_logger_insert AFTER INSERT ON identification +FOR EACH ROW + CALL logger (new.identificationid, 'INSERT', 'getIdentification() - add an identification') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `identificationtype` +-- + +DROP TABLE IF EXISTS `identificationtype`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `identificationtype` ( + `typeid` int(11) NOT NULL AUTO_INCREMENT, + `idtype` varchar(50) NOT NULL, + PRIMARY KEY (`typeid`), + UNIQUE KEY `identificationtype_unique` (`idtype`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `identificationtype` +-- + +LOCK TABLES `identificationtype` WRITE; +/*!40000 ALTER TABLE `identificationtype` DISABLE KEYS */; +/*!40000 ALTER TABLE `identificationtype` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `interestedinfo` +-- + +DROP TABLE IF EXISTS `interestedinfo`; +/*!50001 DROP VIEW IF EXISTS `interestedinfo`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `interestedinfo` AS SELECT + 1 AS `BusinessId`, + 1 AS `Kundenname`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `invoice` +-- + +DROP TABLE IF EXISTS `invoice`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `invoice` ( + `invoiceid` int(11) NOT NULL AUTO_INCREMENT, + `issued` date NOT NULL COMMENT 'Rechnungsdatum', + `entry` date NOT NULL COMMENT 'Buchungsdatum', + `contractid` int(11) NOT NULL, + PRIMARY KEY (`invoiceid`), + KEY `invoice_contract_FK` (`contractid`), + CONSTRAINT `invoice_contract_FK` FOREIGN KEY (`contractid`) REFERENCES `contract` (`contractid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `invoice` +-- + +LOCK TABLES `invoice` WRITE; +/*!40000 ALTER TABLE `invoice` DISABLE KEYS */; +/*!40000 ALTER TABLE `invoice` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jobdetail` +-- + +DROP TABLE IF EXISTS `jobdetail`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `jobdetail` ( + `jobdetailid` int(11) NOT NULL AUTO_INCREMENT, + `duration` decimal(10,0) NOT NULL COMMENT 'Zeitaufwand für Leistungen', + `objectid` int(11) NOT NULL, + `period` varchar(15) NOT NULL COMMENT 'Zeitraum des Reinigungsvertrag', + `personnel` int(11) NOT NULL DEFAULT 1 COMMENT 'number of employees', + `price` decimal(10,0) NOT NULL, + PRIMARY KEY (`jobdetailid`), + UNIQUE KEY `jobdetail_unique` (`objectid`), + CONSTRAINT `jobdetail_object_FK` FOREIGN KEY (`objectid`) REFERENCES `objects` (`objectid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jobdetail` +-- + +LOCK TABLES `jobdetail` WRITE; +/*!40000 ALTER TABLE `jobdetail` DISABLE KEYS */; +/*!40000 ALTER TABLE `jobdetail` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `location` +-- + +DROP TABLE IF EXISTS `location`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `location` ( + `locationid` int(11) NOT NULL AUTO_INCREMENT, + `addressid` int(11) NOT NULL, + `housemapid` int(11) NOT NULL, + PRIMARY KEY (`locationid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `location` +-- + +LOCK TABLES `location` WRITE; +/*!40000 ALTER TABLE `location` DISABLE KEYS */; +/*!40000 ALTER TABLE `location` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `locationview` +-- + +DROP TABLE IF EXISTS `locationview`; +/*!50001 DROP VIEW IF EXISTS `locationview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `locationview` AS SELECT + 1 AS `locationid`, + 1 AS `addressid`, + 1 AS `housemapid`, + 1 AS `countryid`, + 1 AS `cityid`, + 1 AS `postcodeid`, + 1 AS `streetid`, + 1 AS `housenoid`, + 1 AS `Land`, + 1 AS `Stadt`, + 1 AS `PLZ`, + 1 AS `Straße`, + 1 AS `Hausnummer` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `logs` +-- + +DROP TABLE IF EXISTS `logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `logs` ( + `logid` int(11) NOT NULL AUTO_INCREMENT, + `recordid` int(11) DEFAULT NULL, + `operationtype` varchar(100) NOT NULL, + `message` varchar(100) DEFAULT NULL, + `logdate` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`logid`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `logs` +-- + +LOCK TABLES `logs` WRITE; +/*!40000 ALTER TABLE `logs` DISABLE KEYS */; +INSERT INTO `logs` VALUES +(1,NULL,'SELECT','getAddress: All from addressview written by OSCHKAR','2025-05-14 10:54:31'), +(2,NULL,'SELECT','getBtype: All from businesstype written by OSCHKAR','2025-05-14 10:54:31'), +(3,NULL,'SELECT','getAddress: All from addressview written by OSCHKAR','2025-05-14 10:55:16'), +(4,NULL,'SELECT','getBtype: All from businesstype written by OSCHKAR','2025-05-14 10:55:16'), +(5,NULL,'SELECT','getAddress: All from addressview written by OSCHKAR','2025-05-14 11:09:46'), +(6,NULL,'SELECT','getBtype: All from businesstype written by OSCHKAR','2025-05-14 11:09:46'); +/*!40000 ALTER TABLE `logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `maritalstatus` +-- + +DROP TABLE IF EXISTS `maritalstatus`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `maritalstatus` ( + `maritalstatusid` int(11) NOT NULL AUTO_INCREMENT, + `status` varchar(25) NOT NULL, + PRIMARY KEY (`maritalstatusid`), + UNIQUE KEY `maritalstatus_unique` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `maritalstatus` +-- + +LOCK TABLES `maritalstatus` WRITE; +/*!40000 ALTER TABLE `maritalstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `maritalstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `medicalcare` +-- + +DROP TABLE IF EXISTS `medicalcare`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `medicalcare` ( + `medicalcareid` int(11) NOT NULL AUTO_INCREMENT, + `company` varchar(50) NOT NULL, + PRIMARY KEY (`medicalcareid`), + UNIQUE KEY `medicalcare_unique` (`company`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `medicalcare` +-- + +LOCK TABLES `medicalcare` WRITE; +/*!40000 ALTER TABLE `medicalcare` DISABLE KEYS */; +/*!40000 ALTER TABLE `medicalcare` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.medicalcare_logger_insert AFTER INSERT ON medicalcare +FOR EACH ROW + CALL logger (new.medicalcareid, 'INSERT', 'getSocialInformation() - add a Company') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `object_mitarbeiter` +-- + +DROP TABLE IF EXISTS `object_mitarbeiter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `object_mitarbeiter` ( + `employeeid` int(11) NOT NULL, + `hour_wage` int(3) NOT NULL, + `duration` varchar(20) NOT NULL, + `workdays` varchar(25) NOT NULL, + `tasks` varchar(50) NOT NULL COMMENT 'Tätigkeiten', + `profit` int(4) NOT NULL COMMENT 'Ertrag', + `objectid` int(11) NOT NULL, + KEY `fk_objectid` (`objectid`), + KEY `fk_employeeid` (`employeeid`), + CONSTRAINT `fk_employeeid` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`), + CONSTRAINT `fk_objectid` FOREIGN KEY (`objectid`) REFERENCES `objects` (`objectid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `object_mitarbeiter` +-- + +LOCK TABLES `object_mitarbeiter` WRITE; +/*!40000 ALTER TABLE `object_mitarbeiter` DISABLE KEYS */; +/*!40000 ALTER TABLE `object_mitarbeiter` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `objectmanagement` +-- + +DROP TABLE IF EXISTS `objectmanagement`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `objectmanagement` ( + `objectid` int(11) NOT NULL, + `businessid` int(11) DEFAULT NULL, + `contact1id` int(11) DEFAULT NULL, + `contact2id` int(11) DEFAULT NULL, + `contact3id` int(11) DEFAULT NULL, + KEY `objectmanagement_objects_FK` (`objectid`), + CONSTRAINT `objectmanagement_objects_FK` FOREIGN KEY (`objectid`) REFERENCES `objects` (`objectid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Relationtiops between objects, businesses and contact persons'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `objectmanagement` +-- + +LOCK TABLES `objectmanagement` WRITE; +/*!40000 ALTER TABLE `objectmanagement` DISABLE KEYS */; +/*!40000 ALTER TABLE `objectmanagement` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER logObjectContacts +AFTER INSERT +ON objectmanagement FOR EACH ROW + CALL logger (new.objectid, 'INSERT', 'addObject() - add an Object') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `objects` +-- + +DROP TABLE IF EXISTS `objects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `objects` ( + `objectid` int(11) NOT NULL AUTO_INCREMENT, + `info` varchar(500) DEFAULT NULL, + `units` smallint(6) NOT NULL DEFAULT 1 COMMENT 'Parteien', + `floors` smallint(6) NOT NULL DEFAULT 0 COMMENT 'Etage', + `mezzanine` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Zwischenetage', + `elevator` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Aufzug vorhanden?', + `remarks` varchar(100) DEFAULT NULL COMMENT 'Besonderheiten', + `cleaningproducts` varchar(100) DEFAULT NULL COMMENT 'Reinigungsmittel Ort', + `active` tinyint(1) NOT NULL DEFAULT 0, + `objectno` varchar(100) NOT NULL COMMENT 'Objektnummer', + PRIMARY KEY (`objectid`), + UNIQUE KEY `objects_unique` (`objectno`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `objects` +-- + +LOCK TABLES `objects` WRITE; +/*!40000 ALTER TABLE `objects` DISABLE KEYS */; +/*!40000 ALTER TABLE `objects` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.objects_logger_insert AFTER INSERT ON objects +FOR EACH ROW + CALL logger (new.objectid, 'INSERT', 'addObject() - add an Object') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Temporary table structure for view `objectview` +-- + +DROP TABLE IF EXISTS `objectview`; +/*!50001 DROP VIEW IF EXISTS `objectview`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `objectview` AS SELECT + 1 AS `ObjektId`, + 1 AS `Aktiv`, + 1 AS `Objekt-Nr.`, + 1 AS `Parteien`, + 1 AS `Besonderheiten`, + 1 AS `Kunde`, + 1 AS `Hi1`, + 1 AS `Fkon1`, + 1 AS `Lkon1`, + 1 AS `Hi2`, + 1 AS `Fkon2`, + 1 AS `Lkon2`, + 1 AS `Hi3`, + 1 AS `Fkon3`, + 1 AS `Lkon3` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `offer` +-- + +DROP TABLE IF EXISTS `offer`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `offer` ( + `offerid` int(11) NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + PRIMARY KEY (`offerid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer` +-- + +LOCK TABLES `offer` WRITE; +/*!40000 ALTER TABLE `offer` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offers` +-- + +DROP TABLE IF EXISTS `offers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `offers` ( + `offerid` int(11) DEFAULT NULL, + `contractid` int(11) DEFAULT NULL, + `jobdetailid` int(11) NOT NULL, + UNIQUE KEY `offers_unique` (`jobdetailid`), + KEY `offers_offer_FK` (`offerid`), + KEY `offers_contract_FK` (`contractid`), + CONSTRAINT `offers_jobdetail_FK` FOREIGN KEY (`jobdetailid`) REFERENCES `jobdetail` (`jobdetailid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle Angebot - Auftrag'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offers` +-- + +LOCK TABLES `offers` WRITE; +/*!40000 ALTER TABLE `offers` DISABLE KEYS */; +/*!40000 ALTER TABLE `offers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `office` +-- + +DROP TABLE IF EXISTS `office`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `office` ( + `officeid` int(11) NOT NULL AUTO_INCREMENT, + `office` varchar(50) NOT NULL COMMENT 'Kostenstelle', + PRIMARY KEY (`officeid`), + UNIQUE KEY `office_unique` (`office`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kostenstelle'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `office` +-- + +LOCK TABLES `office` WRITE; +/*!40000 ALTER TABLE `office` DISABLE KEYS */; +/*!40000 ALTER TABLE `office` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER office_logger_insert AFTER INSERT ON office +FOR EACH ROW + CALL logger (new.officeid, 'INSERT', 'getCostOffice() - add an officeid') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `permissions` +-- + +DROP TABLE IF EXISTS `permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `permissions` ( + `permissionid` int(11) NOT NULL AUTO_INCREMENT, + `permission` varchar(50) NOT NULL, + PRIMARY KEY (`permissionid`), + UNIQUE KEY `berechtigungen_unique` (`permission`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permissions` +-- + +LOCK TABLES `permissions` WRITE; +/*!40000 ALTER TABLE `permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `personalrole` +-- + +DROP TABLE IF EXISTS `personalrole`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `personalrole` ( + `employeeid` int(11) NOT NULL, + `roleid` int(11) NOT NULL, + KEY `personalrole_employee_FK` (`employeeid`), + KEY `personalrole_role_FK` (`roleid`), + CONSTRAINT `personalrole_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`), + CONSTRAINT `personalrole_role_FK` FOREIGN KEY (`roleid`) REFERENCES `userrole` (`roleid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `personalrole` +-- + +LOCK TABLES `personalrole` WRITE; +/*!40000 ALTER TABLE `personalrole` DISABLE KEYS */; +/*!40000 ALTER TABLE `personalrole` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `postcode` +-- + +DROP TABLE IF EXISTS `postcode`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `postcode` ( + `postcodeid` int(11) NOT NULL AUTO_INCREMENT, + `postcode` varchar(15) NOT NULL, + PRIMARY KEY (`postcodeid`) +) ENGINE=InnoDB AUTO_INCREMENT=8170 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `postcode` +-- + +LOCK TABLES `postcode` WRITE; +/*!40000 ALTER TABLE `postcode` DISABLE KEYS */; +INSERT INTO `postcode` VALUES +(1,'52134'), +(2,'41372'), +(3,'52379'), +(4,'54614'), +(5,'53949'), +(6,'54298'), +(7,'54587'), +(8,'54451'), +(9,'41462'), +(10,'54295'), +(11,'41468'), +(12,'40489'), +(13,'46539'), +(14,'53533'), +(15,'40472'), +(16,'53520'), +(17,'66127'), +(18,'54421'), +(19,'54558'), +(20,'46342'), +(21,'50676'), +(22,'50733'), +(23,'56729'), +(24,'45127'), +(25,'54470'), +(26,'56828'), +(27,'48529'), +(28,'53119'), +(29,'45259'), +(30,'74249'), +(31,'88094'), +(32,'73252'), +(33,'71397'), +(34,'30974'), +(35,'29690'), +(36,'25377'), +(37,'21739'), +(38,'37691'), +(39,'97953'), +(40,'89584'), +(41,'88097'), +(42,'97956'), +(43,'73119'), +(44,'37642'), +(45,'88326'), +(46,'73117'), +(47,'34298'), +(48,'31036'), +(49,'58769'), +(50,'79427'), +(51,'49584'), +(52,'79241'), +(53,'58640'), +(54,'55444'), +(55,'59423'), +(56,'55452'), +(57,'56346'), +(58,'79336'), +(59,'49577'), +(60,'59073'), +(61,'65551'), +(62,'76534'), +(63,'67269'), +(64,'67283'), +(65,'67127'), +(66,'67258'), +(67,'35764'), +(68,'33803'), +(69,'49424'), +(70,'56355'), +(71,'67681'), +(72,'57520'), +(73,'67680'), +(74,'77978'), +(75,'67292'), +(76,'67294'), +(77,'67480'), +(78,'26215'), +(79,'44536'), +(80,'44339'), +(81,'66503'), +(82,'56593'), +(83,'67742'), +(84,'56281'), +(85,'26845'), +(86,'79395'), +(87,'48565'), +(88,'26532'), +(89,'66500'), +(90,'56599'), +(91,'56648'), +(92,'56843'), +(93,'66629'), +(94,'26899'), +(95,'56814'), +(96,'99085'), +(97,'19303'), +(98,'82288'), +(99,'91320'), +(100,'90471'), +(101,'19073'), +(102,'82447'), +(103,'82390'), +(104,'06466'), +(105,'96197'), +(106,'91344'), +(107,'91220'), +(108,'99425'), +(109,'85232'), +(110,'85125'), +(111,'95336'), +(112,'82431'), +(113,'82178'), +(114,'91244'), +(115,'95158'), +(116,'06366'), +(117,'06722'), +(118,'06114'), +(119,'85656'), +(120,'85643'), +(121,'16945'), +(122,'07958'), +(123,'92694'), +(124,'92507'), +(125,'92705'), +(126,'92540'), +(127,'84082'), +(128,'04207'), +(129,'18279'), +(130,'84178'), +(131,'84564'), +(132,'92552'), +(133,'92714'), +(134,'04279'), +(135,'83256'), +(136,'84168'), +(137,'84130'), +(138,'92444'), +(139,'04838'), +(140,'18320'), +(141,'17207'), +(142,'04827'), +(143,'92549'), +(144,'93497'), +(145,'04860'), +(146,'84367'), +(147,'09474'), +(148,'84381'), +(149,'94265'), +(150,'14476'), +(151,'84384'), +(152,'09456'), +(153,'94149'), +(154,'94099'), +(155,'04936'), +(156,'10589'), +(157,'10587'), +(158,'12163'), +(159,'10551'), +(160,'94127'), +(161,'12107'), +(162,'10965'), +(163,'13357'), +(164,'94157'), +(165,'16244'), +(166,'10243'), +(167,'12043'), +(168,'33335'), +(169,'33619'), +(170,'78052'), +(171,'28790'), +(172,'33615'), +(173,'49419'), +(174,'64347'), +(175,'35582'), +(176,'27576'), +(177,'64646'), +(178,'75385'), +(179,'75015'), +(180,'60325'), +(181,'64289'), +(182,'34519'), +(183,'75245'), +(184,'35104'), +(185,'35519'), +(186,'33102'), +(187,'60388'), +(188,'72401'), +(189,'28217'), +(190,'69151'), +(191,'71159'), +(192,'71292'), +(193,'25845'), +(194,'69434'), +(195,'35466'), +(196,'28207'), +(197,'31604'), +(198,'71157'), +(199,'69412'), +(200,'64711'), +(201,'72461'), +(202,'63694'), +(203,'32825'), +(204,'31675'), +(205,'34439'), +(206,'72510'), +(207,'63549'), +(208,'27299'), +(209,'72488'), +(210,'88696'), +(211,'72770'), +(212,'71679'), +(213,'70437'), +(214,'70186'), +(215,'63825'), +(216,'74072'), +(217,'70378'), +(218,'34637'), +(219,'36369'), +(220,'37671'), +(221,'73734'), +(222,'63869'), +(223,'72639'), +(224,'21714'), +(225,'21698'), +(226,'97840'), +(227,'36124'), +(228,'74677'), +(229,'30966'), +(230,'31171'), +(231,'24897'), +(232,'31157'), +(233,'21244'), +(234,'25494'), +(235,'88145'), +(236,'88353'), +(237,'37290'), +(238,'97232'), +(239,'88179'), +(240,'89198'), +(241,'24582'), +(242,'89555'), +(243,'97246'), +(244,'20095'), +(245,'89165'), +(246,'31167'), +(247,'99834'), +(248,'22305'), +(249,'22175'), +(250,'97215'), +(251,'24116'), +(252,'22115'), +(253,'22143'), +(254,'22145'), +(255,'74597'), +(256,'29356'), +(257,'99831'), +(258,'24232'), +(259,'89568'), +(260,'21360'), +(261,'21407'), +(262,'38518'), +(263,'38120'), +(264,'99869'), +(265,'19055'), +(266,'85298'), +(267,'92369'), +(268,'96349'), +(269,'81243'), +(270,'85757'), +(271,'06308'), +(272,'91236'), +(273,'85098'), +(274,'81477'), +(275,'85307'), +(276,'39110'), +(277,'39179'), +(278,'80804'), +(279,'83677'), +(280,'19322'), +(281,'93351'), +(282,'85599'), +(283,'95234'), +(284,'85413'), +(285,'19336'), +(286,'07589'), +(287,'99752'), +(288,'38300'), +(289,'86732'), +(290,'86751'), +(291,'98660'), +(292,'29394'), +(293,'86833'), +(294,'97500'), +(295,'99885'), +(296,'86854'), +(297,'38554'), +(298,'23669'), +(299,'86690'), +(300,'38381'), +(301,'96047'), +(302,'91189'), +(303,'91785'), +(304,'86150'), +(305,'91352'), +(306,'91788'), +(307,'82475'), +(308,'23749'), +(309,'86568'), +(310,'23746'), +(311,'19230'), +(312,'16269'), +(313,'15518'), +(314,'01814'), +(315,'15320'), +(316,'17322'), +(317,'03172'), +(318,'12439'), +(319,'01979'), +(320,'17406'), +(321,'47574'), +(322,'52499'), +(323,'54608'), +(324,'47669'), +(325,'41747'), +(326,'54310'), +(327,'53925'), +(328,'54578'), +(329,'47179'), +(330,'41470'), +(331,'53881'), +(332,'66333'), +(333,'47166'), +(334,'40547'), +(335,'49843'), +(336,'40237'), +(337,'40593'), +(338,'53332'), +(339,'45356'), +(340,'51379'), +(341,'42799'), +(342,'66287'), +(343,'45130'), +(344,'45128'), +(345,'51069'), +(346,'44866'), +(347,'66640'), +(348,'51429'), +(349,'56653'), +(350,'44625'), +(351,'44789'), +(352,'26892'), +(353,'44579'), +(354,'88281'), +(355,'73107'), +(356,'24864'), +(357,'24888'), +(358,'24802'), +(359,'29308'), +(360,'73312'), +(361,'97789'), +(362,'36160'), +(363,'97795'), +(364,'25485'), +(365,'25469'), +(366,'24364'), +(367,'24568'), +(368,'97080'), +(369,'36419'), +(370,'74424'), +(371,'36284'), +(372,'97070'), +(373,'89197'), +(374,'31162'), +(375,'73494'), +(376,'97656'), +(377,'21220'), +(378,'24220'), +(379,'21376'), +(380,'88451'), +(381,'31311'), +(382,'29221'), +(383,'22119'), +(384,'89281'), +(385,'87764'), +(386,'89542'), +(387,'73492'), +(388,'24635'), +(389,'24245'), +(390,'24610'), +(391,'87773'), +(392,'87734'), +(393,'87785'), +(394,'91550'), +(395,'97638'), +(396,'91555'), +(397,'97508'), +(398,'29351'), +(399,'38704'), +(400,'89446'), +(401,'22958'), +(402,'29553'), +(403,'99947'), +(404,'22956'), +(405,'99880'), +(406,'89407'), +(407,'87775'), +(408,'38551'), +(409,'98530'), +(410,'35644'), +(411,'33647'), +(412,'33739'), +(413,'72175'), +(414,'35075'), +(415,'78083'), +(416,'72296'), +(417,'68799'), +(418,'35428'), +(419,'78628'), +(420,'64295'), +(421,'60439'), +(422,'72221'), +(423,'69214'), +(424,'78591'), +(425,'72229'), +(426,'60314'), +(427,'64668'), +(428,'78582'), +(429,'64859'), +(430,'28199'), +(431,'28844'), +(432,'78589'), +(433,'63073'), +(434,'78224'), +(435,'74915'), +(436,'78600'), +(437,'64757'), +(438,'34414'), +(439,'78345'), +(440,'74906'), +(441,'63533'), +(442,'78351'), +(443,'74372'), +(444,'69439'), +(445,'74392'), +(446,'70569'), +(447,'74391'), +(448,'78354'), +(449,'31628'), +(450,'35327'), +(451,'63897'), +(452,'34434'), +(453,'71634'), +(454,'72631'), +(455,'74379'), +(456,'71691'), +(457,'63826'), +(458,'71642'), +(459,'72658'), +(460,'24803'), +(461,'63875'), +(462,'27356'), +(463,'71334'), +(464,'88356'), +(465,'24887'), +(466,'73773'), +(467,'34128'), +(468,'97900'), +(469,'26180'), +(470,'78136'), +(471,'67169'), +(472,'59609'), +(473,'26969'), +(474,'65183'), +(475,'65185'), +(476,'76448'), +(477,'67587'), +(478,'78199'), +(479,'72250'), +(480,'49448'), +(481,'59555'), +(482,'35688'), +(483,'78166'), +(484,'67373'), +(485,'68623'), +(486,'64589'), +(487,'34323'), +(488,'27374'), +(489,'34302'), +(490,'74629'), +(491,'25379'), +(492,'24960'), +(493,'24999'), +(494,'73066'), +(495,'34253'), +(496,'88276'), +(497,'88214'), +(498,'21723'), +(499,'72589'), +(500,'24594'), +(501,'89617'), +(502,'24894'), +(503,'73105'), +(504,'30455'), +(505,'30453'), +(506,'66996'), +(507,'76887'), +(508,'79364'), +(509,'55424'), +(510,'79106'), +(511,'79117'), +(512,'77656'), +(513,'79674'), +(514,'49076'), +(515,'76835'), +(516,'56472'), +(517,'57072'), +(518,'77654'), +(519,'67305'), +(520,'77797'), +(521,'67377'), +(522,'49124'), +(523,'79730'), +(524,'79859'), +(525,'56316'), +(526,'58762'), +(527,'59425'), +(528,'79541'), +(529,'56132'), +(530,'48167'), +(531,'48324'), +(532,'79356'), +(533,'59075'), +(534,'26169'), +(535,'67806'), +(536,'56410'), +(537,'67724'), +(538,'79292'), +(539,'67822'), +(540,'79114'), +(541,'48356'), +(542,'44137'), +(543,'48480'), +(544,'06128'), +(545,'95182'), +(546,'84056'), +(547,'83098'), +(548,'06712'), +(549,'84032'), +(550,'08548'), +(551,'07551'), +(552,'92533'), +(553,'84036'), +(554,'83569'), +(555,'95691'), +(556,'04523'), +(557,'95692'), +(558,'06792'), +(559,'92727'), +(560,'92723'), +(561,'93102'), +(562,'83546'), +(563,'14727'), +(564,'04575'), +(565,'92445'), +(566,'08228'), +(567,'08062'), +(568,'18317'), +(569,'06772'), +(570,'83278'), +(571,'94347'), +(572,'94357'), +(573,'83379'), +(574,'09366'), +(575,'17154'), +(576,'93477'), +(577,'04862'), +(578,'84533'), +(579,'94244'), +(580,'14554'), +(581,'14109'), +(582,'94227'), +(583,'14053'), +(584,'94548'), +(585,'14979'), +(586,'12209'), +(587,'13351'), +(588,'06268'), +(589,'85244'), +(590,'85256'), +(591,'81247'), +(592,'06295'), +(593,'07387'), +(594,'80639'), +(595,'39446'), +(596,'81371'), +(597,'95358'), +(598,'85301'), +(599,'80803'), +(600,'85376'), +(601,'39108'), +(602,'81925'), +(603,'92278'), +(604,'85540'), +(605,'06179'), +(606,'85452'), +(607,'95514'), +(608,'92724'), +(609,'95506'), +(610,'19372'), +(611,'93359'), +(612,'06536'), +(613,'39343'), +(614,'91365'), +(615,'19071'), +(616,'06458'), +(617,'96332'), +(618,'06464'), +(619,'95491'), +(620,'87648'), +(621,'97496'), +(622,'24327'), +(623,'38322'), +(624,'86879'), +(625,'96166'), +(626,'23899'), +(627,'96145'), +(628,'19273'), +(629,'98669'), +(630,'96182'), +(631,'99338'), +(632,'86682'), +(633,'98666'), +(634,'91174'), +(635,'38895'), +(636,'86981'), +(637,'86929'), +(638,'96486'), +(639,'90762'), +(640,'99087'), +(641,'90451'), +(642,'94133'), +(643,'94124'), +(644,'12524'), +(645,'17438'), +(646,'01157'), +(647,'15569'), +(648,'01069'), +(649,'15378'), +(650,'15526'), +(651,'03054'), +(652,'02689'), +(653,'02827'), +(654,'58099'), +(655,'44534'), +(656,'51645'), +(657,'26489'), +(658,'44267'), +(659,'66851'), +(660,'55566'), +(661,'52531'), +(662,'47626'), +(663,'41748'), +(664,'47804'), +(665,'47829'), +(666,'54533'), +(667,'66763'), +(668,'46045'), +(669,'50767'), +(670,'54426'), +(671,'53518'), +(672,'66128'), +(673,'50677'), +(674,'45147'), +(675,'42489'), +(676,'45897'), +(677,'51375'), +(678,'54411'), +(679,'67678'), +(680,'56424'), +(681,'67727'), +(682,'79110'), +(683,'49632'), +(684,'56368'), +(685,'79713'), +(686,'67808'), +(687,'79868'), +(688,'67316'), +(689,'55237'), +(690,'65558'), +(691,'79263'), +(692,'79874'), +(693,'76872'), +(694,'59302'), +(695,'42653'), +(696,'56823'), +(697,'53474'), +(698,'53115'), +(699,'56858'), +(700,'56745'), +(701,'45529'), +(702,'42929'), +(703,'44791'), +(704,'42899'), +(705,'55483'), +(706,'26624'), +(707,'79540'), +(708,'57539'), +(709,'56271'), +(710,'49599'), +(711,'49545'), +(712,'56244'), +(713,'57644'), +(714,'67655'), +(715,'67824'), +(716,'48499'), +(717,'26810'), +(718,'48329'), +(719,'66894'), +(720,'44227'), +(721,'88147'), +(722,'73326'), +(723,'25482'), +(724,'97980'), +(725,'36132'), +(726,'73333'), +(727,'30175'), +(728,'88454'), +(729,'30625'), +(730,'97270'), +(731,'97250'), +(732,'25451'), +(733,'97256'), +(734,'29313'), +(735,'22609'), +(736,'31195'), +(737,'97705'), +(738,'36208'), +(739,'88167'), +(740,'89195'), +(741,'73457'), +(742,'20354'), +(743,'97288'), +(744,'97708'), +(745,'22089'), +(746,'97241'), +(747,'37191'), +(748,'97252'), +(749,'22043'), +(750,'87544'), +(751,'23866'), +(752,'99830'), +(753,'97509'), +(754,'38277'), +(755,'89347'), +(756,'87743'), +(757,'99826'), +(758,'37412'), +(759,'97453'), +(760,'97633'), +(761,'91602'), +(762,'22952'), +(763,'21335'), +(764,'29581'), +(765,'91477'), +(766,'97497'), +(767,'87757'), +(768,'21365'), +(769,'23619'), +(770,'38642'), +(771,'89368'), +(772,'99713'), +(773,'29392'), +(774,'38124'), +(775,'64521'), +(776,'64569'), +(777,'76227'), +(778,'76676'), +(779,'33142'), +(780,'35088'), +(781,'65929'), +(782,'27580'), +(783,'32051'), +(784,'35452'), +(785,'60528'), +(786,'61239'), +(787,'63225'), +(788,'35440'), +(789,'32052'), +(790,'64291'), +(791,'64686'), +(792,'78532'), +(793,'32479'), +(794,'75175'), +(795,'60385'), +(796,'72369'), +(797,'35460'), +(798,'35423'), +(799,'63322'), +(800,'35091'), +(801,'35085'), +(802,'75233'), +(803,'64839'), +(804,'32469'), +(805,'63477'), +(806,'25920'), +(807,'71297'), +(808,'74927'), +(809,'78337'), +(810,'72362'), +(811,'64756'), +(812,'78359'), +(813,'34474'), +(814,'25792'), +(815,'74858'), +(816,'25926'), +(817,'34549'), +(818,'72458'), +(819,'69437'), +(820,'63741'), +(821,'70565'), +(822,'74081'), +(823,'63834'), +(824,'27313'), +(825,'71638'), +(826,'25850'), +(827,'72766'), +(828,'63863'), +(829,'25721'), +(830,'72655'), +(831,'25576'), +(832,'34626'), +(833,'71394'), +(834,'25557'), +(835,'71546'), +(836,'25599'), +(837,'25799'), +(838,'97877'), +(839,'73265'), +(840,'74613'), +(841,'23999'), +(842,'91241'), +(843,'80999'), +(844,'95503'), +(845,'19065'), +(846,'81373'), +(847,'81369'), +(848,'07778'), +(849,'92281'), +(850,'80805'), +(851,'07389'), +(852,'95497'), +(853,'07907'), +(854,'83684'), +(855,'39114'), +(856,'91809'), +(857,'82278'), +(858,'86697'), +(859,'82399'), +(860,'91090'), +(861,'96523'), +(862,'82294'), +(863,'96275'), +(864,'85250'), +(865,'90584'), +(866,'82432'), +(867,'82393'), +(868,'19077'), +(869,'06333'), +(870,'96364'), +(871,'89440'), +(872,'86441'), +(873,'29396'), +(874,'91747'), +(875,'29599'), +(876,'86845'), +(877,'86459'), +(878,'23552'), +(879,'86853'), +(880,'99955'), +(881,'38440'), +(882,'29473'), +(883,'91734'), +(884,'86899'), +(885,'96158'), +(886,'91793'), +(887,'86971'), +(888,'86946'), +(889,'86641'), +(890,'38350'), +(891,'39393'), +(892,'96110'), +(893,'96487'), +(894,'99102'), +(895,'59872'), +(896,'67483'), +(897,'76863'), +(898,'65197'), +(899,'35745'), +(900,'67596'), +(901,'65193'), +(902,'67246'), +(903,'55294'), +(904,'78730'), +(905,'67368'), +(906,'67360'), +(907,'33330'), +(908,'33824'), +(909,'68647'), +(910,'35236'), +(911,'35606'), +(912,'25582'), +(913,'34127'), +(914,'88273'), +(915,'34233'), +(916,'24986'), +(917,'25491'), +(918,'24787'), +(919,'74679'), +(920,'73547'), +(921,'73092'), +(922,'19339'), +(923,'85408'), +(924,'83104'), +(925,'84174'), +(926,'84034'), +(927,'83088'), +(928,'83126'), +(929,'92637'), +(930,'93107'), +(931,'93057'), +(932,'06862'), +(933,'07980'), +(934,'92718'), +(935,'06794'), +(936,'83083'), +(937,'08233'), +(938,'04463'), +(939,'83246'), +(940,'83361'), +(941,'16868'), +(942,'83242'), +(943,'92539'), +(944,'83301'), +(945,'94437'), +(946,'84568'), +(947,'06889'), +(948,'08321'), +(949,'14822'), +(950,'83329'), +(951,'94342'), +(952,'18374'), +(953,'84375'), +(954,'84347'), +(955,'09125'), +(956,'09130'), +(957,'83487'), +(958,'09573'), +(959,'94572'), +(960,'94532'), +(961,'17258'), +(962,'94536'), +(963,'10627'), +(964,'13439'), +(965,'13158'), +(966,'94034'), +(967,'18581'), +(968,'13189'), +(969,'12347'), +(970,'94065'), +(971,'94130'), +(972,'12559'), +(973,'17337'), +(974,'15712'), +(975,'15537'), +(976,'01983'), +(977,'16303'), +(978,'16306'), +(979,'15299'), +(980,'02899'), +(981,'54597'), +(982,'54646'), +(983,'52353'), +(984,'46519'), +(985,'41516'), +(986,'47800'), +(987,'40668'), +(988,'50226'), +(989,'46348'), +(990,'40479'), +(991,'40477'), +(992,'66359'), +(993,'40235'), +(994,'40597'), +(995,'50939'), +(996,'54538'), +(997,'46238'), +(998,'50667'), +(999,'54424'), +(1000,'56826'), +(1001,'54413'), +(1002,'53501'), +(1003,'42549'), +(1004,'56864'), +(1005,'45768'), +(1006,'79258'), +(1007,'67752'), +(1008,'58511'), +(1009,'55422'), +(1010,'55442'), +(1011,'79353'), +(1012,'67759'), +(1013,'58553'), +(1014,'56564'), +(1015,'58095'), +(1016,'55618'), +(1017,'44328'), +(1018,'79415'), +(1019,'58119'), +(1020,'55499'), +(1021,'59368'), +(1022,'57638'), +(1023,'48369'), +(1024,'45289'), +(1025,'66583'), +(1026,'53227'), +(1027,'42109'), +(1028,'44652'), +(1029,'66440'), +(1030,'26721'), +(1031,'66539'), +(1032,'45663'), +(1033,'66450'), +(1034,'56865'), +(1035,'44805'), +(1036,'56290'), +(1037,'66909'), +(1038,'35719'), +(1039,'78050'), +(1040,'78737'), +(1041,'59955'), +(1042,'65931'), +(1043,'68753'), +(1044,'35625'), +(1045,'32130'), +(1046,'68549'), +(1047,'61449'), +(1048,'27476'), +(1049,'33758'), +(1050,'64404'), +(1051,'76694'), +(1052,'76669'), +(1053,'32584'), +(1054,'75172'), +(1055,'35396'), +(1056,'27755'), +(1057,'32832'), +(1058,'21776'), +(1059,'69251'), +(1060,'33189'), +(1061,'78586'), +(1062,'64689'), +(1063,'74931'), +(1064,'35287'), +(1065,'71155'), +(1066,'25853'), +(1067,'63762'), +(1068,'25860'), +(1069,'34632'), +(1070,'63584'), +(1071,'88662'), +(1072,'63939'), +(1073,'25873'), +(1074,'63739'), +(1075,'63688'), +(1076,'34628'), +(1077,'74376'), +(1078,'63589'), +(1079,'70176'), +(1080,'21755'), +(1081,'72762'), +(1082,'70629'), +(1083,'63849'), +(1084,'74076'), +(1085,'34308'), +(1086,'88699'), +(1087,'70374'), +(1088,'71686'), +(1089,'21737'), +(1090,'31558'), +(1091,'27308'), +(1092,'74232'), +(1093,'24896'), +(1094,'34317'), +(1095,'71717'), +(1096,'72664'), +(1097,'27336'), +(1098,'71409'), +(1099,'21702'), +(1100,'88348'), +(1101,'88376'), +(1102,'31637'), +(1103,'36367'), +(1104,'88374'), +(1105,'74538'), +(1106,'37217'), +(1107,'30169'), +(1108,'89180'), +(1109,'97786'), +(1110,'24576'), +(1111,'30916'), +(1112,'24366'), +(1113,'97792'), +(1114,'74426'), +(1115,'22769'), +(1116,'31141'), +(1117,'97243'), +(1118,'24109'), +(1119,'22851'), +(1120,'24625'), +(1121,'73489'), +(1122,'36460'), +(1123,'21442'), +(1124,'89518'), +(1125,'22117'), +(1126,'89293'), +(1127,'97654'), +(1128,'31246'), +(1129,'24146'), +(1130,'37197'), +(1131,'97456'), +(1132,'97532'), +(1133,'89312'), +(1134,'87761'), +(1135,'29364'), +(1136,'87784'), +(1137,'23813'), +(1138,'86489'), +(1139,'97529'), +(1140,'36448'), +(1141,'22929'), +(1142,'99848'), +(1143,'23847'), +(1144,'73467'), +(1145,'89349'), +(1146,'24321'), +(1147,'87647'), +(1148,'23820'), +(1149,'21379'), +(1150,'99891'), +(1151,'87663'), +(1152,'87651'), +(1153,'23911'), +(1154,'91315'), +(1155,'38899'), +(1156,'86857'), +(1157,'96179'), +(1158,'86157'), +(1159,'86937'), +(1160,'99092'), +(1161,'86154'), +(1162,'96250'), +(1163,'96050'), +(1164,'86704'), +(1165,'98746'), +(1166,'99097'), +(1167,'99610'), +(1168,'79115'), +(1169,'67813'), +(1170,'79664'), +(1171,'49504'), +(1172,'77652'), +(1173,'79737'), +(1174,'77791'), +(1175,'65307'), +(1176,'79215'), +(1177,'79297'), +(1178,'56479'), +(1179,'76833'), +(1180,'49413'), +(1181,'67433'), +(1182,'76865'), +(1183,'76768'), +(1184,'76770'), +(1185,'26209'), +(1186,'67256'), +(1187,'67586'), +(1188,'57334'), +(1189,'76761'), +(1190,'35713'), +(1191,'55299'), +(1192,'65239'), +(1193,'59558'), +(1194,'67069'), +(1195,'76332'), +(1196,'24805'), +(1197,'36287'), +(1198,'71560'), +(1199,'73669'), +(1200,'21720'), +(1201,'73035'), +(1202,'97277'), +(1203,'24357'), +(1204,'30855'), +(1205,'07338'), +(1206,'82069'), +(1207,'85107'), +(1208,'85053'), +(1209,'91224'), +(1210,'85092'), +(1211,'06279'), +(1212,'92268'), +(1213,'85129'), +(1214,'80802'), +(1215,'81927'), +(1216,'93155'), +(1217,'39291'), +(1218,'07926'), +(1219,'83629'), +(1220,'18249'), +(1221,'07629'), +(1222,'07613'), +(1223,'95683'), +(1224,'83080'), +(1225,'16866'), +(1226,'08523'), +(1227,'92670'), +(1228,'83139'), +(1229,'84166'), +(1230,'06842'), +(1231,'95652'), +(1232,'83093'), +(1233,'06803'), +(1234,'06808'), +(1235,'17214'), +(1236,'08459'), +(1237,'04277'), +(1238,'95698'), +(1239,'08262'), +(1240,'94345'), +(1241,'93491'), +(1242,'08328'), +(1243,'84160'), +(1244,'08309'), +(1245,'08396'), +(1246,'17192'), +(1247,'04808'), +(1248,'16833'), +(1249,'84553'), +(1250,'94522'), +(1251,'93486'), +(1252,'94559'), +(1253,'08344'), +(1254,'16827'), +(1255,'93479'), +(1256,'84387'), +(1257,'14469'), +(1258,'09430'), +(1259,'09518'), +(1260,'18569'), +(1261,'13587'), +(1262,'16761'), +(1263,'01623'), +(1264,'01589'), +(1265,'09633'), +(1266,'94104'), +(1267,'10367'), +(1268,'18546'), +(1269,'94143'), +(1270,'01773'), +(1271,'01778'), +(1272,'17449'), +(1273,'03222'), +(1274,'15326'), +(1275,'02799'), +(1276,'02957'), +(1277,'02796'), +(1278,'82362'), +(1279,'90409'), +(1280,'90478'), +(1281,'82279'), +(1282,'39387'), +(1283,'85128'), +(1284,'39345'), +(1285,'85116'), +(1286,'85254'), +(1287,'85259'), +(1288,'85253'), +(1289,'99628'), +(1290,'96369'), +(1291,'06456'), +(1292,'06542'), +(1293,'29471'), +(1294,'82377'), +(1295,'85113'), +(1296,'24893'), +(1297,'25355'), +(1298,'30171'), +(1299,'30659'), +(1300,'89160'), +(1301,'29303'), +(1302,'24363'), +(1303,'73111'), +(1304,'36217'), +(1305,'25474'), +(1306,'29646'), +(1307,'88171'), +(1308,'89081'), +(1309,'36214'), +(1310,'73560'), +(1311,'36115'), +(1312,'73579'), +(1313,'36266'), +(1314,'74592'), +(1315,'88477'), +(1316,'22765'), +(1317,'21109'), +(1318,'88317'), +(1319,'31174'), +(1320,'88450'), +(1321,'24643'), +(1322,'97650'), +(1323,'73431'), +(1324,'29336'), +(1325,'21435'), +(1326,'22179'), +(1327,'22397'), +(1328,'97258'), +(1329,'97490'), +(1330,'97714'), +(1331,'97702'), +(1332,'91631'), +(1333,'74594'), +(1334,'87474'), +(1335,'87509'), +(1336,'31228'), +(1337,'91610'), +(1338,'91620'), +(1339,'97618'), +(1340,'97355'), +(1341,'87749'), +(1342,'22962'), +(1343,'21409'), +(1344,'38259'), +(1345,'86491'), +(1346,'87496'), +(1347,'87466'), +(1348,'21406'), +(1349,'23821'), +(1350,'23815'), +(1351,'86470'), +(1352,'99755'), +(1353,'29576'), +(1354,'91726'), +(1355,'91099'), +(1356,'82293'), +(1357,'06526'), +(1358,'91077'), +(1359,'90530'), +(1360,'86633'), +(1361,'91338'), +(1362,'91347'), +(1363,'82395'), +(1364,'86576'), +(1365,'39638'), +(1366,'85114'), +(1367,'82387'), +(1368,'82349'), +(1369,'92360'), +(1370,'19059'), +(1371,'39448'), +(1372,'85120'), +(1373,'19086'), +(1374,'18230'), +(1375,'92358'), +(1376,'85088'), +(1377,'39122'), +(1378,'85395'), +(1379,'85635'), +(1380,'85622'), +(1381,'39288'), +(1382,'07922'), +(1383,'84106'), +(1384,'85570'), +(1385,'06124'), +(1386,'93188'), +(1387,'92421'), +(1388,'95679'), +(1389,'07548'), +(1390,'83059'), +(1391,'83024'), +(1392,'95701'), +(1393,'92721'), +(1394,'08491'), +(1395,'06868'), +(1396,'04209'), +(1397,'83559'), +(1398,'93109'), +(1399,'04356'), +(1400,'04357'), +(1401,'06901'), +(1402,'92726'), +(1403,'94330'), +(1404,'83365'), +(1405,'94350'), +(1406,'93494'), +(1407,'17248'), +(1408,'94353'), +(1409,'08294'), +(1410,'93466'), +(1411,'84329'), +(1412,'94424'), +(1413,'14542'), +(1414,'16766'), +(1415,'94439'), +(1416,'09427'), +(1417,'04720'), +(1418,'04895'), +(1419,'09575'), +(1420,'13503'), +(1421,'94529'), +(1422,'10559'), +(1423,'09627'), +(1424,'10179'), +(1425,'87616'), +(1426,'91456'), +(1427,'87600'), +(1428,'38879'), +(1429,'87629'), +(1430,'86750'), +(1431,'91732'), +(1432,'38855'), +(1433,'91466'), +(1434,'91735'), +(1435,'86420'), +(1436,'38444'), +(1437,'86653'), +(1438,'86675'), +(1439,'91074'), +(1440,'19246'), +(1441,'99192'), +(1442,'99707'), +(1443,'39646'), +(1444,'91058'), +(1445,'15749'), +(1446,'12487'), +(1447,'15757'), +(1448,'01127'), +(1449,'94139'), +(1450,'03205'), +(1451,'15377'), +(1452,'01909'), +(1453,'02736'), +(1454,'68649'), +(1455,'32289'), +(1456,'61476'), +(1457,'64572'), +(1458,'68219'), +(1459,'65824'), +(1460,'35444'), +(1461,'75217'), +(1462,'75394'), +(1463,'76698'), +(1464,'59964'), +(1465,'60327'), +(1466,'28759'), +(1467,'75177'), +(1468,'27472'), +(1469,'25899'), +(1470,'69117'), +(1471,'69118'), +(1472,'71131'), +(1473,'25869'), +(1474,'72181'), +(1475,'72336'), +(1476,'75417'), +(1477,'64385'), +(1478,'25761'), +(1479,'72414'), +(1480,'71154'), +(1481,'28327'), +(1482,'71139'), +(1483,'78315'), +(1484,'71735'), +(1485,'64739'), +(1486,'63538'), +(1487,'74336'), +(1488,'25776'), +(1489,'71706'), +(1490,'74357'), +(1491,'70825'), +(1492,'24994'), +(1493,'78467'), +(1494,'63864'), +(1495,'63906'), +(1496,'21726'), +(1497,'27449'), +(1498,'73730'), +(1499,'36399'), +(1500,'63879'), +(1501,'63860'), +(1502,'88499'), +(1503,'71576'), +(1504,'37649'), +(1505,'36396'), +(1506,'88518'), +(1507,'24872'), +(1508,'34385'), +(1509,'52538'), +(1510,'47623'), +(1511,'47625'), +(1512,'53940'), +(1513,'52445'), +(1514,'52385'), +(1515,'54453'), +(1516,'47445'), +(1517,'40670'), +(1518,'54526'), +(1519,'47059'), +(1520,'47119'), +(1521,'66787'), +(1522,'40225'), +(1523,'66773'), +(1524,'41541'), +(1525,'54516'), +(1526,'26571'), +(1527,'66292'), +(1528,'56767'), +(1529,'45133'), +(1530,'45144'), +(1531,'50678'), +(1532,'66625'), +(1533,'49767'), +(1534,'56759'), +(1535,'26842'), +(1536,'66978'), +(1537,'67757'), +(1538,'67827'), +(1539,'26474'), +(1540,'67715'), +(1541,'57587'), +(1542,'76848'), +(1543,'58706'), +(1544,'57629'), +(1545,'77971'), +(1546,'67811'), +(1547,'55124'), +(1548,'59556'), +(1549,'35792'), +(1550,'76596'), +(1551,'35796'), +(1552,'35716'), +(1553,'55130'), +(1554,'65462'), +(1555,'67549'), +(1556,'35630'), +(1557,'49328'), +(1558,'67575'), +(1559,'33649'), +(1560,'72297'), +(1561,'78739'), +(1562,'26441'), +(1563,'76855'), +(1564,'26419'), +(1565,'77866'), +(1566,'57578'), +(1567,'67295'), +(1568,'77871'), +(1569,'67816'), +(1570,'67482'), +(1571,'67468'), +(1572,'49456'), +(1573,'65620'), +(1574,'88045'), +(1575,'97848'), +(1576,'25575'), +(1577,'97839'), +(1578,'34266'), +(1579,'88371'), +(1580,'74238'), +(1581,'97788'), +(1582,'30419'), +(1583,'88255'), +(1584,'24782'), +(1585,'51147'), +(1586,'45307'), +(1587,'56861'), +(1588,'66578'), +(1589,'42115'), +(1590,'56850'), +(1591,'49808'), +(1592,'44807'), +(1593,'44799'), +(1594,'48493'), +(1595,'66916'), +(1596,'53545'), +(1597,'58300'), +(1598,'26553'), +(1599,'53562'), +(1600,'53783'), +(1601,'55608'), +(1602,'56283'), +(1603,'67744'), +(1604,'48432'), +(1605,'79424'), +(1606,'82549'), +(1607,'96346'), +(1608,'80995'), +(1609,'19306'), +(1610,'07751'), +(1611,'80935'), +(1612,'07749'), +(1613,'81671'), +(1614,'83624'), +(1615,'81829'), +(1616,'95180'), +(1617,'92224'), +(1618,'93346'), +(1619,'95505'), +(1620,'06242'), +(1621,'39264'), +(1622,'95126'), +(1623,'95709'), +(1624,'93183'), +(1625,'93182'), +(1626,'82490'), +(1627,'90469'), +(1628,'90491'), +(1629,'82211'), +(1630,'99198'), +(1631,'23946'), +(1632,'82296'), +(1633,'07318'), +(1634,'19294'), +(1635,'99444'), +(1636,'90559'), +(1637,'99636'), +(1638,'91278'), +(1639,'25365'), +(1640,'89619'), +(1641,'36100'), +(1642,'88441'), +(1643,'30853'), +(1644,'97295'), +(1645,'73525'), +(1646,'97999'), +(1647,'97271'), +(1648,'97276'), +(1649,'89173'), +(1650,'88487'), +(1651,'31084'), +(1652,'37249'), +(1653,'24242'), +(1654,'22457'), +(1655,'21271'), +(1656,'24407'), +(1657,'31191'), +(1658,'22848'), +(1659,'20255'), +(1660,'20357'), +(1661,'97688'), +(1662,'24629'), +(1663,'20149'), +(1664,'29223'), +(1665,'31249'), +(1666,'97239'), +(1667,'21037'), +(1668,'24637'), +(1669,'36457'), +(1670,'37539'), +(1671,'24601'), +(1672,'38729'), +(1673,'87527'), +(1674,'21029'), +(1675,'89564'), +(1676,'21465'), +(1677,'91626'), +(1678,'87724'), +(1679,'22955'), +(1680,'97531'), +(1681,'73497'), +(1682,'97513'), +(1683,'38112'), +(1684,'91619'), +(1685,'86720'), +(1686,'98547'), +(1687,'21527'), +(1688,'29559'), +(1689,'97461'), +(1690,'38110'), +(1691,'38559'), +(1692,'29585'), +(1693,'86424'), +(1694,'83735'), +(1695,'93356'), +(1696,'06112'), +(1697,'39524'), +(1698,'93053'), +(1699,'93083'), +(1700,'95659'), +(1701,'18299'), +(1702,'95706'), +(1703,'04158'), +(1704,'04105'), +(1705,'04564'), +(1706,'83254'), +(1707,'14778'), +(1708,'04315'), +(1709,'92559'), +(1710,'84326'), +(1711,'08324'), +(1712,'08349'), +(1713,'09394'), +(1714,'84524'), +(1715,'84571'), +(1716,'84335'), +(1717,'94379'), +(1718,'09236'), +(1719,'14478'), +(1720,'14532'), +(1721,'14129'), +(1722,'94579'), +(1723,'94261'), +(1724,'16540'), +(1725,'15936'), +(1726,'15837'), +(1727,'13353'), +(1728,'10787'), +(1729,'10557'), +(1730,'03253'), +(1731,'17349'), +(1732,'12101'), +(1733,'94568'), +(1734,'10437'), +(1735,'10405'), +(1736,'12305'), +(1737,'17099'), +(1738,'33129'), +(1739,'65830'), +(1740,'35580'), +(1741,'27499'), +(1742,'78073'), +(1743,'27568'), +(1744,'32609'), +(1745,'28755'), +(1746,'27211'), +(1747,'69254'), +(1748,'75365'), +(1749,'64380'), +(1750,'72108'), +(1751,'72367'), +(1752,'72358'), +(1753,'75397'), +(1754,'63110'), +(1755,'28211'), +(1756,'78267'), +(1757,'78253'), +(1758,'35305'), +(1759,'72415'), +(1760,'78580'), +(1761,'27442'), +(1762,'28832'), +(1763,'35260'), +(1764,'32839'), +(1765,'33039'), +(1766,'70499'), +(1767,'74354'), +(1768,'70435'), +(1769,'63924'), +(1770,'25791'), +(1771,'21709'), +(1772,'72511'), +(1773,'71672'), +(1774,'36318'), +(1775,'36358'), +(1776,'25725'), +(1777,'88515'), +(1778,'71720'), +(1779,'72813'), +(1780,'71563'), +(1781,'63871'), +(1782,'24941'), +(1783,'31789'), +(1784,'34130'), +(1785,'37194'), +(1786,'12351'), +(1787,'10247'), +(1788,'01774'), +(1789,'12527'), +(1790,'15732'), +(1791,'01738'), +(1792,'17398'), +(1793,'01219'), +(1794,'01277'), +(1795,'01968'), +(1796,'15517'), +(1797,'15374'), +(1798,'02977'), +(1799,'02733'), +(1800,'15230'), +(1801,'02956'), +(1802,'02797'), +(1803,'86874'), +(1804,'87637'), +(1805,'99735'), +(1806,'96126'), +(1807,'86842'), +(1808,'96185'), +(1809,'86514'), +(1810,'21368'), +(1811,'38557'), +(1812,'86830'), +(1813,'91805'), +(1814,'96476'), +(1815,'91469'), +(1816,'96169'), +(1817,'86356'), +(1818,'86707'), +(1819,'91801'), +(1820,'38465'), +(1821,'29490'), +(1822,'38376'), +(1823,'86444'), +(1824,'96175'), +(1825,'86161'), +(1826,'29481'), +(1827,'38459'), +(1828,'91186'), +(1829,'73663'), +(1830,'34593'), +(1831,'97816'), +(1832,'25371'), +(1833,'88284'), +(1834,'25368'), +(1835,'88212'), +(1836,'97785'), +(1837,'30952'), +(1838,'37235'), +(1839,'58513'), +(1840,'79426'), +(1841,'77977'), +(1842,'58708'), +(1843,'77966'), +(1844,'48351'), +(1845,'56379'), +(1846,'57462'), +(1847,'79669'), +(1848,'79348'), +(1849,'49594'), +(1850,'67725'), +(1851,'26160'), +(1852,'59510'), +(1853,'57290'), +(1854,'55288'), +(1855,'57250'), +(1856,'56477'), +(1857,'67273'), +(1858,'78120'), +(1859,'67251'), +(1860,'26133'), +(1861,'76467'), +(1862,'67136'), +(1863,'49152'), +(1864,'33397'), +(1865,'55278'), +(1866,'76149'), +(1867,'79879'), +(1868,'55469'), +(1869,'56579'), +(1870,'26629'), +(1871,'48163'), +(1872,'44309'), +(1873,'59387'), +(1874,'67753'), +(1875,'54673'), +(1876,'52222'), +(1877,'54669'), +(1878,'54450'), +(1879,'53909'), +(1880,'53945'), +(1881,'66701'), +(1882,'47229'), +(1883,'49847'), +(1884,'41469'), +(1885,'46537'), +(1886,'41540'), +(1887,'66806'), +(1888,'40880'), +(1889,'46149'), +(1890,'40789'), +(1891,'50937'), +(1892,'50997'), +(1893,'40724'), +(1894,'50668'), +(1895,'45141'), +(1896,'45327'), +(1897,'66649'), +(1898,'26871'), +(1899,'56567'), +(1900,'66497'), +(1901,'48341'), +(1902,'66501'), +(1903,'45277'), +(1904,'53127'), +(1905,'45770'), +(1906,'45888'), +(1907,'53757'), +(1908,'45659'), +(1909,'44795'), +(1910,'56867'), +(1911,'49406'), +(1912,'78664'), +(1913,'35216'), +(1914,'32257'), +(1915,'68239'), +(1916,'33689'), +(1917,'35633'), +(1918,'78652'), +(1919,'64625'), +(1920,'32120'), +(1921,'78647'), +(1922,'75053'), +(1923,'61169'), +(1924,'60323'), +(1925,'76684'), +(1926,'61231'), +(1927,'78559'), +(1928,'35463'), +(1929,'27726'), +(1930,'75447'), +(1931,'71116'), +(1932,'78269'), +(1933,'78603'), +(1934,'25852'), +(1935,'32805'), +(1936,'64753'), +(1937,'88637'), +(1938,'78333'), +(1939,'72070'), +(1940,'31621'), +(1941,'72072'), +(1942,'35329'), +(1943,'72393'), +(1944,'72074'), +(1945,'63594'), +(1946,'31711'), +(1947,'31608'), +(1948,'74855'), +(1949,'74838'), +(1950,'72141'), +(1951,'70199'), +(1952,'63820'), +(1953,'31632'), +(1954,'74223'), +(1955,'71726'), +(1956,'21729'), +(1957,'63916'), +(1958,'36355'), +(1959,'72516'), +(1960,'74219'), +(1961,'71336'), +(1962,'24869'), +(1963,'74248'), +(1964,'63831'), +(1965,'88636'), +(1966,'31785'), +(1967,'74239'), +(1968,'72534'), +(1969,'24799'), +(1970,'99996'), +(1971,'37441'), +(1972,'38527'), +(1973,'98554'), +(1974,'91623'), +(1975,'38329'), +(1976,'87665'), +(1977,'38877'), +(1978,'91639'), +(1979,'86862'), +(1980,'38325'), +(1981,'99330'), +(1982,'96178'), +(1983,'38467'), +(1984,'90614'), +(1985,'91183'), +(1986,'99310'), +(1987,'91126'), +(1988,'29468'), +(1989,'82491'), +(1990,'96215'), +(1991,'06537'), +(1992,'24943'), +(1993,'36119'), +(1994,'25361'), +(1995,'73061'), +(1996,'34123'), +(1997,'97773'), +(1998,'25587'), +(1999,'97851'), +(2000,'25566'), +(2001,'97775'), +(2002,'97849'), +(2003,'97794'), +(2004,'88427'), +(2005,'21614'), +(2006,'37170'), +(2007,'29640'), +(2008,'73347'), +(2009,'73553'), +(2010,'73108'), +(2011,'79739'), +(2012,'55546'), +(2013,'57647'), +(2014,'67098'), +(2015,'79256'), +(2016,'55437'), +(2017,'67487'), +(2018,'65597'), +(2019,'33775'), +(2020,'77794'), +(2021,'65201'), +(2022,'35767'), +(2023,'67271'), +(2024,'49439'), +(2025,'79865'), +(2026,'67167'), +(2027,'67150'), +(2028,'33790'), +(2029,'55276'), +(2030,'58507'), +(2031,'48147'), +(2032,'58730'), +(2033,'66957'), +(2034,'48291'), +(2035,'66999'), +(2036,'49525'), +(2037,'79283'), +(2038,'55585'), +(2039,'39397'), +(2040,'91180'), +(2041,'06485'), +(2042,'38829'), +(2043,'82445'), +(2044,'96187'), +(2045,'82291'), +(2046,'99448'), +(2047,'91362'), +(2048,'23968'), +(2049,'83676'), +(2050,'90518'), +(2051,'82335'), +(2052,'82194'), +(2053,'37139'), +(2054,'74427'), +(2055,'24401'), +(2056,'88239'), +(2057,'89605'), +(2058,'89604'), +(2059,'73072'), +(2060,'36219'), +(2061,'21147'), +(2062,'74595'), +(2063,'88175'), +(2064,'22547'), +(2065,'37081'), +(2066,'36269'), +(2067,'88483'), +(2068,'24369'), +(2069,'37083'), +(2070,'21218'), +(2071,'24537'), +(2072,'89075'), +(2073,'24640'), +(2074,'24536'), +(2075,'21073'), +(2076,'22453'), +(2077,'89231'), +(2078,'22085'), +(2079,'97273'), +(2080,'74599'), +(2081,'37136'), +(2082,'37308'), +(2083,'22399'), +(2084,'29227'), +(2085,'24119'), +(2086,'87763'), +(2087,'97505'), +(2088,'24619'), +(2089,'91541'), +(2090,'21033'), +(2091,'29348'), +(2092,'87748'), +(2093,'89299'), +(2094,'24149'), +(2095,'87448'), +(2096,'97520'), +(2097,'29331'), +(2098,'38279'), +(2099,'97359'), +(2100,'37327'), +(2101,'86488'), +(2102,'87493'), +(2103,'38159'), +(2104,'87746'), +(2105,'22969'), +(2106,'21447'), +(2107,'21502'), +(2108,'91589'), +(2109,'29593'), +(2110,'87497'), +(2111,'87754'), +(2112,'38530'), +(2113,'73469'), +(2114,'91731'), +(2115,'38312'), +(2116,'23898'), +(2117,'24329'), +(2118,'86483'), +(2119,'91413'), +(2120,'37444'), +(2121,'07937'), +(2122,'95028'), +(2123,'95194'), +(2124,'92665'), +(2125,'93142'), +(2126,'83135'), +(2127,'83562'), +(2128,'83071'), +(2129,'84181'), +(2130,'84437'), +(2131,'92555'), +(2132,'04205'), +(2133,'08468'), +(2134,'92545'), +(2135,'04603'), +(2136,'83125'), +(2137,'92709'), +(2138,'17168'), +(2139,'08107'), +(2140,'14772'), +(2141,'14641'), +(2142,'94405'), +(2143,'94428'), +(2144,'08297'), +(2145,'94553'), +(2146,'16818'), +(2147,'17255'), +(2148,'09648'), +(2149,'16835'), +(2150,'83483'), +(2151,'09131'), +(2152,'04874'), +(2153,'93470'), +(2154,'04741'), +(2155,'94259'), +(2156,'16515'), +(2157,'94167'), +(2158,'16547'), +(2159,'14057'), +(2160,'16548'), +(2161,'12169'), +(2162,'12159'), +(2163,'13347'), +(2164,'12277'), +(2165,'10115'), +(2166,'94566'), +(2167,'10963'), +(2168,'12349'), +(2169,'10997'), +(2170,'10409'), +(2171,'52066'), +(2172,'41849'), +(2173,'47546'), +(2174,'41063'), +(2175,'52388'), +(2176,'66679'), +(2177,'50169'), +(2178,'47055'), +(2179,'46147'), +(2180,'48703'), +(2181,'54552'), +(2182,'51107'), +(2183,'58091'), +(2184,'44145'), +(2185,'55471'), +(2186,'56566'), +(2187,'44269'), +(2188,'48496'), +(2189,'79418'), +(2190,'49733'), +(2191,'53426'), +(2192,'44869'), +(2193,'53424'), +(2194,'53179'), +(2195,'26906'), +(2196,'26844'), +(2197,'85084'), +(2198,'91284'), +(2199,'82031'), +(2200,'80339'), +(2201,'95499'), +(2202,'19357'), +(2203,'92262'), +(2204,'80331'), +(2205,'95352'), +(2206,'93339'), +(2207,'81679'), +(2208,'39104'), +(2209,'07646'), +(2210,'39126'), +(2211,'85662'), +(2212,'39249'), +(2213,'18209'), +(2214,'92266'), +(2215,'95682'), +(2216,'92287'), +(2217,'12353'), +(2218,'12435'), +(2219,'10319'), +(2220,'12683'), +(2221,'16230'), +(2222,'01768'), +(2223,'01728'), +(2224,'16278'), +(2225,'03103'), +(2226,'15324'), +(2227,'02627'), +(2228,'02763'), +(2229,'02828'), +(2230,'82057'), +(2231,'85095'), +(2232,'82064'), +(2233,'07368'), +(2234,'07745'), +(2235,'92275'), +(2236,'95447'), +(2237,'95463'), +(2238,'92363'), +(2239,'81667'), +(2240,'95138'), +(2241,'06429'), +(2242,'39218'), +(2243,'95482'), +(2244,'95197'), +(2245,'85399'), +(2246,'39240'), +(2247,'93354'), +(2248,'95030'), +(2249,'06126'), +(2250,'06578'), +(2251,'23769'), +(2252,'82436'), +(2253,'19209'), +(2254,'82438'), +(2255,'90602'), +(2256,'96142'), +(2257,'90607'), +(2258,'39619'), +(2259,'92353'), +(2260,'29475'), +(2261,'76889'), +(2262,'79686'), +(2263,'56457'), +(2264,'26345'), +(2265,'55576'), +(2266,'77781'), +(2267,'59494'), +(2268,'55286'), +(2269,'76547'), +(2270,'55262'), +(2271,'88339'), +(2272,'29614'), +(2273,'24794'), +(2274,'22559'), +(2275,'37181'), +(2276,'30161'), +(2277,'36167'), +(2278,'74532'), +(2279,'21274'), +(2280,'31199'), +(2281,'74586'), +(2282,'88430'), +(2283,'37085'), +(2284,'21227'), +(2285,'22767'), +(2286,'22041'), +(2287,'89287'), +(2288,'97340'), +(2289,'97320'), +(2290,'29339'), +(2291,'36433'), +(2292,'97332'), +(2293,'21394'), +(2294,'87727'), +(2295,'29355'), +(2296,'87770'), +(2297,'38229'), +(2298,'87490'), +(2299,'89331'), +(2300,'38542'), +(2301,'87778'), +(2302,'86513'), +(2303,'87772'), +(2304,'89353'), +(2305,'86753'), +(2306,'23701'), +(2307,'86850'), +(2308,'86872'), +(2309,'99994'), +(2310,'87679'), +(2311,'86975'), +(2312,'91802'), +(2313,'23570'), +(2314,'86447'), +(2315,'86508'), +(2316,'23774'), +(2317,'38820'), +(2318,'91054'), +(2319,'34134'), +(2320,'73266'), +(2321,'88046'), +(2322,'71577'), +(2323,'88074'), +(2324,'24884'), +(2325,'25370'), +(2326,'24966'), +(2327,'88149'), +(2328,'36166'), +(2329,'73104'), +(2330,'47624'), +(2331,'54649'), +(2332,'50189'), +(2333,'54309'), +(2334,'66740'), +(2335,'54518'), +(2336,'54317'), +(2337,'40474'), +(2338,'47058'), +(2339,'54528'), +(2340,'45478'), +(2341,'48683'), +(2342,'54498'), +(2343,'45468'), +(2344,'66571'), +(2345,'45896'), +(2346,'42719'), +(2347,'66132'), +(2348,'79400'), +(2349,'44289'), +(2350,'55497'), +(2351,'58509'), +(2352,'51580'), +(2353,'56329'), +(2354,'79189'), +(2355,'49549'), +(2356,'67731'), +(2357,'76891'), +(2358,'67657'), +(2359,'56427'), +(2360,'44229'), +(2361,'56332'), +(2362,'51570'), +(2363,'55621'), +(2364,'65510'), +(2365,'55126'), +(2366,'35753'), +(2367,'78132'), +(2368,'49377'), +(2369,'65187'), +(2370,'67591'), +(2371,'55118'), +(2372,'49457'), +(2373,'33332'), +(2374,'66871'), +(2375,'53547'), +(2376,'58285'), +(2377,'55481'), +(2378,'58453'), +(2379,'26579'), +(2380,'51399'), +(2381,'56862'), +(2382,'44879'), +(2383,'49716'), +(2384,'54483'), +(2385,'44867'), +(2386,'53721'), +(2387,'85447'), +(2388,'95185'), +(2389,'84107'), +(2390,'92681'), +(2391,'95680'), +(2392,'84435'), +(2393,'18106'), +(2394,'06231'), +(2395,'84405'), +(2396,'18057'), +(2397,'16845'), +(2398,'84066'), +(2399,'92442'), +(2400,'83556'), +(2401,'06779'), +(2402,'92439'), +(2403,'92685'), +(2404,'08261'), +(2405,'84189'), +(2406,'93192'), +(2407,'04317'), +(2408,'04318'), +(2409,'04316'), +(2410,'08289'), +(2411,'18314'), +(2412,'06905'), +(2413,'09337'), +(2414,'06888'), +(2415,'18465'), +(2416,'09247'), +(2417,'94574'), +(2418,'93471'), +(2419,'84371'), +(2420,'18445'), +(2421,'09669'), +(2422,'94209'), +(2423,'14558'), +(2424,'04916'), +(2425,'09434'), +(2426,'09509'), +(2427,'16556'), +(2428,'16559'), +(2429,'16562'), +(2430,'12203'), +(2431,'16567'), +(2432,'12167'), +(2433,'10715'), +(2434,'10827'), +(2435,'17489'), +(2436,'61462'), +(2437,'76139'), +(2438,'76646'), +(2439,'33605'), +(2440,'33609'), +(2441,'27478'), +(2442,'27753'), +(2443,'75236'), +(2444,'75387'), +(2445,'33813'), +(2446,'60487'), +(2447,'72224'), +(2448,'75378'), +(2449,'75239'), +(2450,'32049'), +(2451,'69488'), +(2452,'35037'), +(2453,'35039'), +(2454,'61194'), +(2455,'27252'), +(2456,'75059'), +(2457,'69257'), +(2458,'61203'), +(2459,'61137'), +(2460,'28213'), +(2461,'25832'), +(2462,'78598'), +(2463,'75428'), +(2464,'74343'), +(2465,'71665'), +(2466,'74193'), +(2467,'28879'), +(2468,'32694'), +(2469,'31737'), +(2470,'63654'), +(2471,'27404'), +(2472,'78479'), +(2473,'25884'), +(2474,'88634'), +(2475,'36326'), +(2476,'70192'), +(2477,'31717'), +(2478,'37696'), +(2479,'70174'), +(2480,'70599'), +(2481,'74842'), +(2482,'70376'), +(2483,'74385'), +(2484,'34560'), +(2485,'63877'), +(2486,'70734'), +(2487,'88512'), +(2488,'34590'), +(2489,'36341'), +(2490,'63874'), +(2491,'88709'), +(2492,'88090'), +(2493,'72532'), +(2494,'74182'), +(2495,'73776'), +(2496,'34132'), +(2497,'72525'), +(2498,'13059'), +(2499,'13057'), +(2500,'04928'), +(2501,'01097'), +(2502,'01326'), +(2503,'15344'), +(2504,'15913'), +(2505,'03099'), +(2506,'17375'), +(2507,'03055'), +(2508,'39435'), +(2509,'91217'), +(2510,'83670'), +(2511,'80689'), +(2512,'80687'), +(2513,'85411'), +(2514,'39418'), +(2515,'95494'), +(2516,'19417'), +(2517,'85290'), +(2518,'82024'), +(2519,'92280'), +(2520,'95236'), +(2521,'06406'), +(2522,'95213'), +(2523,'39579'), +(2524,'84104'), +(2525,'95152'), +(2526,'39217'), +(2527,'85464'), +(2528,'85591'), +(2529,'93358'), +(2530,'83620'), +(2531,'19376'), +(2532,'85614'), +(2533,'82398'), +(2534,'91332'), +(2535,'86577'), +(2536,'82499'), +(2537,'82239'), +(2538,'29485'), +(2539,'86567'), +(2540,'06467'), +(2541,'82444'), +(2542,'86579'), +(2543,'96352'), +(2544,'19061'), +(2545,'06682'), +(2546,'06118'), +(2547,'18258'), +(2548,'83543'), +(2549,'06847'), +(2550,'18182'), +(2551,'06729'), +(2552,'95643'), +(2553,'84428'), +(2554,'04610'), +(2555,'84092'), +(2556,'84539'), +(2557,'04416'), +(2558,'92542'), +(2559,'83250'), +(2560,'83352'), +(2561,'93426'), +(2562,'83324'), +(2563,'83377'), +(2564,'04821'), +(2565,'18356'), +(2566,'93499'), +(2567,'09385'), +(2568,'84567'), +(2569,'94234'), +(2570,'93480'), +(2571,'09465'), +(2572,'14947'), +(2573,'94253'), +(2574,'94140'), +(2575,'09437'), +(2576,'94544'), +(2577,'09569'), +(2578,'94269'), +(2579,'14163'), +(2580,'14169'), +(2581,'94113'), +(2582,'12105'), +(2583,'94161'), +(2584,'13359'), +(2585,'12099'), +(2586,'10439'), +(2587,'12049'), +(2588,'25581'), +(2589,'21259'), +(2590,'25563'), +(2591,'74547'), +(2592,'37186'), +(2593,'30459'), +(2594,'30165'), +(2595,'36179'), +(2596,'25579'), +(2597,'30163'), +(2598,'36145'), +(2599,'24814'), +(2600,'30938'), +(2601,'24409'), +(2602,'31180'), +(2603,'97779'), +(2604,'24241'), +(2605,'29633'), +(2606,'20459'), +(2607,'20148'), +(2608,'37293'), +(2609,'89177'), +(2610,'22309'), +(2611,'89257'), +(2612,'87452'), +(2613,'87789'), +(2614,'73488'), +(2615,'98617'), +(2616,'91637'), +(2617,'31224'), +(2618,'23845'), +(2619,'87736'), +(2620,'86519'), +(2621,'87437'), +(2622,'87477'), +(2623,'91614'), +(2624,'99842'), +(2625,'98631'), +(2626,'21493'), +(2627,'38690'), +(2628,'37445'), +(2629,'35641'), +(2630,'68804'), +(2631,'61440'), +(2632,'26954'), +(2633,'25859'), +(2634,'32312'), +(2635,'65936'), +(2636,'33729'), +(2637,'72227'), +(2638,'25849'), +(2639,'64285'), +(2640,'33818'), +(2641,'60435'), +(2642,'60318'), +(2643,'35119'), +(2644,'74939'), +(2645,'78576'), +(2646,'32457'), +(2647,'72469'), +(2648,'25709'), +(2649,'72477'), +(2650,'34537'), +(2651,'71282'), +(2652,'21781'), +(2653,'32699'), +(2654,'74369'), +(2655,'25779'), +(2656,'25862'), +(2657,'74211'), +(2658,'21756'), +(2659,'21727'), +(2660,'72818'), +(2661,'25879'), +(2662,'63829'), +(2663,'72513'), +(2664,'25788'), +(2665,'31627'), +(2666,'31622'), +(2667,'31699'), +(2668,'24852'), +(2669,'88697'), +(2670,'37647'), +(2671,'34587'), +(2672,'88271'), +(2673,'73207'), +(2674,'25376'), +(2675,'25588'), +(2676,'21516'), +(2677,'86479'), +(2678,'96154'), +(2679,'86738'), +(2680,'97522'), +(2681,'23919'), +(2682,'21401'), +(2683,'86655'), +(2684,'23566'), +(2685,'86980'), +(2686,'86517'), +(2687,'86977'), +(2688,'96161'), +(2689,'96484'), +(2690,'38375'), +(2691,'38387'), +(2692,'38470'), +(2693,'86343'), +(2694,'86169'), +(2695,'29496'), +(2696,'90768'), +(2697,'86504'), +(2698,'91056'), +(2699,'99094'), +(2700,'91353'), +(2701,'91798'), +(2702,'86574'), +(2703,'91052'), +(2704,'91083'), +(2705,'96271'), +(2706,'54617'), +(2707,'52223'), +(2708,'52249'), +(2709,'47608'), +(2710,'54687'), +(2711,'52156'), +(2712,'54457'), +(2713,'46395'), +(2714,'54329'), +(2715,'46483'), +(2716,'50127'), +(2717,'54292'), +(2718,'50129'), +(2719,'66802'), +(2720,'54579'), +(2721,'54344'), +(2722,'40221'), +(2723,'47269'), +(2724,'40213'), +(2725,'40227'), +(2726,'45476'), +(2727,'54347'), +(2728,'50823'), +(2729,'50672'), +(2730,'56766'), +(2731,'48734'), +(2732,'50999'), +(2733,'66557'), +(2734,'66646'), +(2735,'51065'), +(2736,'45894'), +(2737,'42551'), +(2738,'53123'), +(2739,'42655'), +(2740,'79235'), +(2741,'79361'), +(2742,'56068'), +(2743,'55432'), +(2744,'67714'), +(2745,'56203'), +(2746,'67688'), +(2747,'79365'), +(2748,'66994'), +(2749,'67823'), +(2750,'57581'), +(2751,'12045'), +(2752,'12057'), +(2753,'13125'), +(2754,'12557'), +(2755,'12623'), +(2756,'01139'), +(2757,'01920'), +(2758,'01900'), +(2759,'03046'), +(2760,'02999'), +(2761,'03053'), +(2762,'02779'), +(2763,'02894'), +(2764,'66484'), +(2765,'44139'), +(2766,'56218'), +(2767,'57641'), +(2768,'58093'), +(2769,'48268'), +(2770,'66955'), +(2771,'57413'), +(2772,'57586'), +(2773,'57223'), +(2774,'56470'), +(2775,'65388'), +(2776,'77855'), +(2777,'56370'), +(2778,'77833'), +(2779,'77736'), +(2780,'77815'), +(2781,'55234'), +(2782,'79774'), +(2783,'97852'), +(2784,'21680'), +(2785,'24797'), +(2786,'73278'), +(2787,'34212'), +(2788,'97778'), +(2789,'24837'), +(2790,'71540'), +(2791,'36251'), +(2792,'88213'), +(2793,'97753'), +(2794,'65199'), +(2795,'59329'), +(2796,'79809'), +(2797,'49393'), +(2798,'77880'), +(2799,'78147'), +(2800,'67158'), +(2801,'67551'), +(2802,'65468'), +(2803,'42659'), +(2804,'66131'), +(2805,'51519'), +(2806,'42105'), +(2807,'66459'), +(2808,'44801'), +(2809,'58455'), +(2810,'53819'), +(2811,'56288'), +(2812,'56637'), +(2813,'58339'), +(2814,'57548'), +(2815,'79100'), +(2816,'59757'), +(2817,'59320'), +(2818,'67819'), +(2819,'77960'), +(2820,'67475'), +(2821,'59759'), +(2822,'49434'), +(2823,'49074'), +(2824,'55270'), +(2825,'79274'), +(2826,'26203'), +(2827,'47533'), +(2828,'41844'), +(2829,'52441'), +(2830,'47906'), +(2831,'47918'), +(2832,'41236'), +(2833,'66693'), +(2834,'47803'), +(2835,'47799'), +(2836,'41464'), +(2837,'47178'), +(2838,'54340'), +(2839,'54523'), +(2840,'40219'), +(2841,'40215'), +(2842,'53879'), +(2843,'40229'), +(2844,'40882'), +(2845,'40625'), +(2846,'51063'), +(2847,'45138'), +(2848,'48455'), +(2849,'66299'), +(2850,'53177'), +(2851,'45889'), +(2852,'26506'), +(2853,'42349'), +(2854,'45699'), +(2855,'53840'), +(2856,'26529'), +(2857,'48727'), +(2858,'55491'), +(2859,'26826'), +(2860,'56645'), +(2861,'56626'), +(2862,'59399'), +(2863,'56589'), +(2864,'66907'), +(2865,'79367'), +(2866,'79594'), +(2867,'67701'), +(2868,'55595'), +(2869,'56249'), +(2870,'77963'), +(2871,'56422'), +(2872,'58840'), +(2873,'56594'), +(2874,'04910'), +(2875,'12679'), +(2876,'15738'), +(2877,'15746'), +(2878,'01169'), +(2879,'01159'), +(2880,'94089'), +(2881,'01731'), +(2882,'15370'), +(2883,'15562'), +(2884,'01259'), +(2885,'01324'), +(2886,'17424'), +(2887,'15236'), +(2888,'82547'), +(2889,'81249'), +(2890,'29478'), +(2891,'81245'), +(2892,'07768'), +(2893,'91230'), +(2894,'23974'), +(2895,'95361'), +(2896,'95445'), +(2897,'85778'), +(2898,'80337'), +(2899,'85283'), +(2900,'81543'), +(2901,'92355'), +(2902,'85748'), +(2903,'83679'), +(2904,'06425'), +(2905,'06246'), +(2906,'39175'), +(2907,'85405'), +(2908,'85467'), +(2909,'95237'), +(2910,'95694'), +(2911,'92269'), +(2912,'07554'), +(2913,'84434'), +(2914,'92449'), +(2915,'95676'), +(2916,'08543'), +(2917,'07987'), +(2918,'93095'), +(2919,'18181'), +(2920,'93092'), +(2921,'84149'), +(2922,'14828'), +(2923,'14793'), +(2924,'83253'), +(2925,'04179'), +(2926,'04565'), +(2927,'84164'), +(2928,'04289'), +(2929,'18334'), +(2930,'04329'), +(2931,'04683'), +(2932,'84513'), +(2933,'83349'), +(2934,'16837'), +(2935,'83373'), +(2936,'17252'), +(2937,'09243'), +(2938,'94371'), +(2939,'09399'), +(2940,'09217'), +(2941,'84489'), +(2942,'84337'), +(2943,'09228'), +(2944,'94526'), +(2945,'04774'), +(2946,'94577'), +(2947,'09405'), +(2948,'18435'), +(2949,'14480'), +(2950,'94086'), +(2951,'13585'), +(2952,'13599'), +(2953,'17279'), +(2954,'13469'), +(2955,'10707'), +(2956,'16552'), +(2957,'12307'), +(2958,'73116'), +(2959,'24358'), +(2960,'89616'), +(2961,'88456'), +(2962,'24972'), +(2963,'97950'), +(2964,'24340'), +(2965,'73557'), +(2966,'21129'), +(2967,'24402'), +(2968,'97762'), +(2969,'37079'), +(2970,'97249'), +(2971,'36163'), +(2972,'74575'), +(2973,'73574'), +(2974,'22607'), +(2975,'97209'), +(2976,'24631'), +(2977,'73566'), +(2978,'24251'), +(2979,'20144'), +(2980,'29229'), +(2981,'24161'), +(2982,'22391'), +(2983,'89291'), +(2984,'97724'), +(2985,'24147'), +(2986,'97424'), +(2987,'97334'), +(2988,'91607'), +(2989,'97517'), +(2990,'29359'), +(2991,'21039'), +(2992,'97421'), +(2993,'99988'), +(2994,'87760'), +(2995,'97526'), +(2996,'73495'), +(2997,'24306'), +(2998,'21339'), +(2999,'38543'), +(3000,'87671'), +(3001,'29367'), +(3002,'38239'), +(3003,'89426'), +(3004,'99846'), +(3005,'91611'), +(3006,'97437'), +(3007,'21403'), +(3008,'87459'), +(3009,'87657'), +(3010,'29549'), +(3011,'33333'), +(3012,'78655'), +(3013,'65812'), +(3014,'35586'), +(3015,'78176'), +(3016,'78658'), +(3017,'79807'), +(3018,'64665'), +(3019,'68542'), +(3020,'76709'), +(3021,'69514'), +(3022,'78661'), +(3023,'75331'), +(3024,'60431'), +(3025,'25881'), +(3026,'69121'), +(3027,'60320'), +(3028,'69181'), +(3029,'78594'), +(3030,'61184'), +(3031,'64397'), +(3032,'60386'), +(3033,'27729'), +(3034,'75038'), +(3035,'63065'), +(3036,'64405'), +(3037,'28201'), +(3038,'35110'), +(3039,'25718'), +(3040,'63456'), +(3041,'27305'), +(3042,'63486'), +(3043,'28307'), +(3044,'74934'), +(3045,'25719'), +(3046,'33014'), +(3047,'63683'), +(3048,'71065'), +(3049,'64750'), +(3050,'31715'), +(3051,'63937'), +(3052,'74366'), +(3053,'31688'), +(3054,'31840'), +(3055,'70794'), +(3056,'74177'), +(3057,'25767'), +(3058,'63840'), +(3059,'31626'), +(3060,'34396'), +(3061,'63633'), +(3062,'31860'), +(3063,'25596'), +(3064,'74255'), +(3065,'34633'), +(3066,'31542'), +(3067,'74740'), +(3068,'72584'), +(3069,'21683'), +(3070,'73249'), +(3071,'29693'), +(3072,'30890'), +(3073,'27419'), +(3074,'97836'), +(3075,'85132'), +(3076,'91795'), +(3077,'06567'), +(3078,'90443'), +(3079,'82299'), +(3080,'90455'), +(3081,'96257'), +(3082,'99625'), +(3083,'39164'), +(3084,'82205'), +(3085,'82402'), +(3086,'82347'), +(3087,'90610'), +(3088,'85110'), +(3089,'82275'), +(3090,'07330'), +(3091,'06469'), +(3092,'92334'), +(3093,'86736'), +(3094,'29575'), +(3095,'97483'), +(3096,'21354'), +(3097,'23558'), +(3098,'29584'), +(3099,'91590'), +(3100,'86486'), +(3101,'86869'), +(3102,'96184'), +(3103,'96194'), +(3104,'29413'), +(3105,'86859'), +(3106,'86987'), +(3107,'90556'), +(3108,'38474'), +(3109,'86511'), +(3110,'29410'), +(3111,'82442'), +(3112,'86643'), +(3113,'91807'), +(3114,'96123'), +(3115,'86554'), +(3116,'86666'), +(3117,'90431'), +(3118,'91330'), +(3119,'86551'), +(3120,'91094'), +(3121,'65594'), +(3122,'26382'), +(3123,'49176'), +(3124,'77756'), +(3125,'57392'), +(3126,'76879'), +(3127,'55239'), +(3128,'76877'), +(3129,'67590'), +(3130,'55120'), +(3131,'67229'), +(3132,'26135'), +(3133,'79848'), +(3134,'67363'), +(3135,'67126'), +(3136,'79843'), +(3137,'27798'), +(3138,'35690'), +(3139,'76777'), +(3140,'67227'), +(3141,'67374'), +(3142,'76344'), +(3143,'61479'), +(3144,'67354'), +(3145,'74749'), +(3146,'71573'), +(3147,'73269'), +(3148,'24890'), +(3149,'88379'), +(3150,'88525'), +(3151,'34320'), +(3152,'34355'), +(3153,'73349'), +(3154,'21643'), +(3155,'24809'), +(3156,'36211'), +(3157,'79379'), +(3158,'55568'), +(3159,'79423'), +(3160,'59439'), +(3161,'49479'), +(3162,'48317'), +(3163,'48145'), +(3164,'26446'), +(3165,'56357'), +(3166,'58675'), +(3167,'55583'), +(3168,'76549'), +(3169,'26384'), +(3170,'77883'), +(3171,'67278'), +(3172,'67281'), +(3173,'35781'), +(3174,'55127'), +(3175,'26121'), +(3176,'33378'), +(3177,'49326'), +(3178,'77776'), +(3179,'49429'), +(3180,'65189'), +(3181,'76756'), +(3182,'76593'), +(3183,'76316'), +(3184,'35789'), +(3185,'35689'), +(3186,'35756'), +(3187,'59909'), +(3188,'49459'), +(3189,'56761'), +(3190,'45701'), +(3191,'55758'), +(3192,'53229'), +(3193,'42857'), +(3194,'26759'), +(3195,'56818'), +(3196,'66538'), +(3197,'44797'), +(3198,'44623'), +(3199,'56754'), +(3200,'48612'), +(3201,'54689'), +(3202,'47929'), +(3203,'54595'), +(3204,'41189'), +(3205,'52355'), +(3206,'54441'), +(3207,'54666'), +(3208,'54586'), +(3209,'41564'), +(3210,'54657'), +(3211,'47137'), +(3212,'54550'), +(3213,'45479'), +(3214,'46145'), +(3215,'54492'), +(3216,'53347'), +(3217,'45721'), +(3218,'49751'), +(3219,'26603'), +(3220,'26427'), +(3221,'66954'), +(3222,'56075'), +(3223,'56073'), +(3224,'26897'), +(3225,'44287'), +(3226,'56305'), +(3227,'56307'), +(3228,'67817'), +(3229,'79254'), +(3230,'79183'), +(3231,'67307'), +(3232,'49597'), +(3233,'49186'), +(3234,'79733'), +(3235,'65326'), +(3236,'49088'), +(3237,'66424'), +(3238,'56642'), +(3239,'66482'), +(3240,'44388'), +(3241,'56630'), +(3242,'49740'), +(3243,'55490'), +(3244,'56220'), +(3245,'24989'), +(3246,'29683'), +(3247,'24361'), +(3248,'24996'), +(3249,'73529'), +(3250,'88285'), +(3251,'73084'), +(3252,'30559'), +(3253,'30521'), +(3254,'37133'), +(3255,'74582'), +(3256,'22605'), +(3257,'25486'), +(3258,'22523'), +(3259,'24214'), +(3260,'89547'), +(3261,'22846'), +(3262,'74564'), +(3263,'22844'), +(3264,'87534'), +(3265,'88316'), +(3266,'97717'), +(3267,'24404'), +(3268,'89129'), +(3269,'22337'), +(3270,'97337'), +(3271,'22359'), +(3272,'89290'), +(3273,'23816'), +(3274,'24235'), +(3275,'73499'), +(3276,'87781'), +(3277,'91478'), +(3278,'38536'), +(3279,'91601'), +(3280,'91484'), +(3281,'97357'), +(3282,'86476'), +(3283,'91438'), +(3284,'97516'), +(3285,'86505'), +(3286,'24257'), +(3287,'91632'), +(3288,'97478'), +(3289,'23714'), +(3290,'83673'), +(3291,'92318'), +(3292,'92364'), +(3293,'80636'), +(3294,'07381'), +(3295,'07356'), +(3296,'85375'), +(3297,'95466'), +(3298,'06408'), +(3299,'92256'), +(3300,'92260'), +(3301,'92245'), +(3302,'93180'), +(3303,'85457'), +(3304,'07919'), +(3305,'90419'), +(3306,'39649'), +(3307,'98744'), +(3308,'91361'), +(3309,'82287'), +(3310,'82493'), +(3311,'82237'), +(3312,'96317'), +(3313,'95515'), +(3314,'85080'), +(3315,'39444'), +(3316,'26935'), +(3317,'78048'), +(3318,'67141'), +(3319,'67059'), +(3320,'35647'), +(3321,'75323'), +(3322,'28777'), +(3323,'27809'), +(3324,'35102'), +(3325,'60488'), +(3326,'60438'), +(3327,'27749'), +(3328,'60433'), +(3329,'69115'), +(3330,'28237'), +(3331,'78247'), +(3332,'64678'), +(3333,'27257'), +(3334,'61197'), +(3335,'64832'), +(3336,'28309'), +(3337,'71272'), +(3338,'25704'), +(3339,'63801'), +(3340,'78476'), +(3341,'74862'), +(3342,'72475'), +(3343,'31710'), +(3344,'74864'), +(3345,'74831'), +(3346,'70193'), +(3347,'34479'), +(3348,'31718'), +(3349,'36329'), +(3350,'31556'), +(3351,'72768'), +(3352,'72519'), +(3353,'72505'), +(3354,'72517'), +(3355,'73765'), +(3356,'25794'), +(3357,'97896'), +(3358,'31559'), +(3359,'63930'), +(3360,'71364'), +(3361,'71522'), +(3362,'21684'), +(3363,'88377'), +(3364,'23860'), +(3365,'91481'), +(3366,'38871'), +(3367,'91468'), +(3368,'86866'), +(3369,'23628'), +(3370,'23881'), +(3371,'86647'), +(3372,'86399'), +(3373,'91728'), +(3374,'87662'), +(3375,'86687'), +(3376,'98716'), +(3377,'38384'), +(3378,'91738'), +(3379,'98694'), +(3380,'86932'), +(3381,'91781'), +(3382,'86923'), +(3383,'39365'), +(3384,'31863'), +(3385,'74670'), +(3386,'34121'), +(3387,'36137'), +(3388,'24860'), +(3389,'73235'), +(3390,'73272'), +(3391,'74523'), +(3392,'74635'), +(3393,'31089'), +(3394,'07952'), +(3395,'83043'), +(3396,'18069'), +(3397,'06116'), +(3398,'08527'), +(3399,'92521'), +(3400,'93055'), +(3401,'93105'), +(3402,'92715'), +(3403,'93098'), +(3404,'04539'), +(3405,'92543'), +(3406,'92696'), +(3407,'83132'), +(3408,'84555'), +(3409,'93167'), +(3410,'83358'), +(3411,'14806'), +(3412,'14770'), +(3413,'14550'), +(3414,'18469'), +(3415,'83364'), +(3416,'09241'), +(3417,'09387'), +(3418,'09117'), +(3419,'04703'), +(3420,'14552'), +(3421,'09577'), +(3422,'94550'), +(3423,'94094'), +(3424,'18573'), +(3425,'01587'), +(3426,'04924'), +(3427,'17126'), +(3428,'15838'), +(3429,'09619'), +(3430,'13156'), +(3431,'12355'), +(3432,'94136'), +(3433,'01705'), +(3434,'16247'), +(3435,'15910'), +(3436,'15907'), +(3437,'01465'), +(3438,'17440'), +(3439,'17429'), +(3440,'15848'), +(3441,'17419'), +(3442,'02997'), +(3443,'02708'), +(3444,'94116'), +(3445,'01640'), +(3446,'94151'), +(3447,'94107'), +(3448,'01734'), +(3449,'17335'), +(3450,'17309'), +(3451,'15345'), +(3452,'17459'), +(3453,'01477'), +(3454,'33428'), +(3455,'78148'), +(3456,'55257'), +(3457,'76530'), +(3458,'26125'), +(3459,'25946'), +(3460,'76187'), +(3461,'72275'), +(3462,'78126'), +(3463,'78089'), +(3464,'67346'), +(3465,'76661'), +(3466,'79677'), +(3467,'77731'), +(3468,'79211'), +(3469,'67691'), +(3470,'27498'), +(3471,'55218'), +(3472,'48361'), +(3473,'01917'), +(3474,'17329'), +(3475,'03048'), +(3476,'03052'), +(3477,'02829'), +(3478,'02826'), +(3479,'85305'), +(3480,'82166'), +(3481,'19063'), +(3482,'39171'), +(3483,'99518'), +(3484,'06317'), +(3485,'81539'), +(3486,'80939'), +(3487,'85354'), +(3488,'92265'), +(3489,'06618'), +(3490,'93309'), +(3491,'92277'), +(3492,'92366'), +(3493,'85586'), +(3494,'85560'), +(3495,'95163'), +(3496,'59348'), +(3497,'48366'), +(3498,'66901'), +(3499,'48485'), +(3500,'56299'), +(3501,'58454'), +(3502,'66903'), +(3503,'55606'), +(3504,'45279'), +(3505,'49835'), +(3506,'45886'), +(3507,'56856'), +(3508,'42853'), +(3509,'42283'), +(3510,'53604'), +(3511,'66885'), +(3512,'48308'), +(3513,'44135'), +(3514,'79588'), +(3515,'55569'), +(3516,'90562'), +(3517,'29462'), +(3518,'99098'), +(3519,'96167'), +(3520,'90475'), +(3521,'96224'), +(3522,'90592'), +(3523,'98743'), +(3524,'96355'), +(3525,'82439'), +(3526,'82131'), +(3527,'86564'), +(3528,'82541'), +(3529,'84101'), +(3530,'06217'), +(3531,'16949'), +(3532,'95632'), +(3533,'06108'), +(3534,'84095'), +(3535,'92708'), +(3536,'39539'), +(3537,'07973'), +(3538,'84432'), +(3539,'92536'), +(3540,'04420'), +(3541,'18292'), +(3542,'93087'), +(3543,'93101'), +(3544,'04109'), +(3545,'94348'), +(3546,'84163'), +(3547,'94344'), +(3548,'08371'), +(3549,'04567'), +(3550,'93464'), +(3551,'04651'), +(3552,'83313'), +(3553,'04828'), +(3554,'04687'), +(3555,'84333'), +(3556,'14669'), +(3557,'94267'), +(3558,'06925'), +(3559,'83410'), +(3560,'83471'), +(3561,'16775'), +(3562,'94557'), +(3563,'04758'), +(3564,'14467'), +(3565,'14055'), +(3566,'17034'), +(3567,'10777'), +(3568,'13407'), +(3569,'13159'), +(3570,'10435'), +(3571,'18551'), +(3572,'35614'), +(3573,'68307'), +(3574,'26919'), +(3575,'68169'), +(3576,'65835'), +(3577,'35510'), +(3578,'32339'), +(3579,'72172'), +(3580,'64673'), +(3581,'32278'), +(3582,'69221'), +(3583,'75180'), +(3584,'28197'), +(3585,'35390'), +(3586,'60322'), +(3587,'69242'), +(3588,'28259'), +(3589,'75248'), +(3590,'72355'), +(3591,'28857'), +(3592,'75382'), +(3593,'69245'), +(3594,'69259'), +(3595,'64407'), +(3596,'32425'), +(3597,'35288'), +(3598,'63667'), +(3599,'25856'), +(3600,'75050'), +(3601,'31592'), +(3602,'63543'), +(3603,'74912'), +(3604,'72076'), +(3605,'34471'), +(3606,'63853'), +(3607,'74078'), +(3608,'63785'), +(3609,'88639'), +(3610,'74206'), +(3611,'74348'), +(3612,'72827'), +(3613,'25712'), +(3614,'74172'), +(3615,'74074'), +(3616,'31553'), +(3617,'70372'), +(3618,'74743'), +(3619,'72663'), +(3620,'25584'), +(3621,'63936'), +(3622,'72660'), +(3623,'21522'), +(3624,'38100'), +(3625,'99894'), +(3626,'87660'), +(3627,'86877'), +(3628,'98646'), +(3629,'89434'), +(3630,'38875'), +(3631,'38442'), +(3632,'96176'), +(3633,'23758'), +(3634,'29571'), +(3635,'23923'), +(3636,'86984'), +(3637,'86663'), +(3638,'91350'), +(3639,'99189'), +(3640,'86940'), +(3641,'91341'), +(3642,'82389'), +(3643,'82401'), +(3644,'96146'), +(3645,'23779'), +(3646,'23936'), +(3647,'90427'), +(3648,'29487'), +(3649,'99084'), +(3650,'99086'), +(3651,'79576'), +(3652,'66969'), +(3653,'56112'), +(3654,'26849'), +(3655,'48165'), +(3656,'56077'), +(3657,'79595'), +(3658,'59427'), +(3659,'55590'), +(3660,'79410'), +(3661,'56204'), +(3662,'56242'), +(3663,'79692'), +(3664,'58802'), +(3665,'79279'), +(3666,'73114'), +(3667,'24616'), +(3668,'30880'), +(3669,'37284'), +(3670,'89134'), +(3671,'73340'), +(3672,'24351'), +(3673,'88480'), +(3674,'37176'), +(3675,'21075'), +(3676,'24558'), +(3677,'89174'), +(3678,'89171'), +(3679,'89551'), +(3680,'87547'), +(3681,'23826'), +(3682,'24118'), +(3683,'91616'), +(3684,'38685'), +(3685,'91593'), +(3686,'89441'), +(3687,'97511'), +(3688,'89355'), +(3689,'52068'), +(3690,'52080'), +(3691,'54611'), +(3692,'47807'), +(3693,'47798'), +(3694,'40667'), +(3695,'41460'), +(3696,'53902'), +(3697,'46354'), +(3698,'49849'), +(3699,'40217'), +(3700,'40212'), +(3701,'50935'), +(3702,'53359'), +(3703,'46240'), +(3704,'45964'), +(3705,'66111'), +(3706,'51381'), +(3707,'56841'), +(3708,'74214'), +(3709,'24873'), +(3710,'25578'), +(3711,'37640'), +(3712,'25335'), +(3713,'37620'), +(3714,'89611'), +(3715,'73110'), +(3716,'89150'), +(3717,'36088'), +(3718,'73098'), +(3719,'95145'), +(3720,'08538'), +(3721,'92700'), +(3722,'19386'), +(3723,'93352'), +(3724,'18109'), +(3725,'95199'), +(3726,'84061'), +(3727,'08529'), +(3728,'93096'), +(3729,'93093'), +(3730,'08645'), +(3731,'08428'), +(3732,'04617'), +(3733,'92648'), +(3734,'93104'), +(3735,'08496'), +(3736,'84152'), +(3737,'83224'), +(3738,'84562'), +(3739,'18375'), +(3740,'08134'), +(3741,'84577'), +(3742,'09356'), +(3743,'94372'), +(3744,'84552'), +(3745,'94366'), +(3746,'04889'), +(3747,'84378'), +(3748,'83416'), +(3749,'04746'), +(3750,'14621'), +(3751,'09488'), +(3752,'14471'), +(3753,'94255'), +(3754,'93462'), +(3755,'94166'), +(3756,'04749'), +(3757,'17089'), +(3758,'17033'), +(3759,'13597'), +(3760,'09600'), +(3761,'94072'), +(3762,'14165'), +(3763,'13507'), +(3764,'94036'), +(3765,'09634'), +(3766,'01665'), +(3767,'10961'), +(3768,'13187'), +(3769,'10249'), +(3770,'94160'), +(3771,'91238'), +(3772,'06647'), +(3773,'92339'), +(3774,'06528'), +(3775,'82061'), +(3776,'82049'), +(3777,'81379'), +(3778,'07366'), +(3779,'95356'), +(3780,'93349'), +(3781,'95502'), +(3782,'06636'), +(3783,'95509'), +(3784,'83666'), +(3785,'85649'), +(3786,'83627'), +(3787,'19348'), +(3788,'95519'), +(3789,'18236'), +(3790,'95485'), +(3791,'06193'), +(3792,'07927'), +(3793,'06255'), +(3794,'93326'), +(3795,'07639'), +(3796,'07586'), +(3797,'83052'), +(3798,'12459'), +(3799,'17291'), +(3800,'15711'), +(3801,'01217'), +(3802,'01458'), +(3803,'15864'), +(3804,'17326'), +(3805,'02943'), +(3806,'02742'), +(3807,'55494'), +(3808,'67748'), +(3809,'56338'), +(3810,'79346'), +(3811,'79112'), +(3812,'67699'), +(3813,'59067'), +(3814,'79244'), +(3815,'77955'), +(3816,'79276'), +(3817,'52159'), +(3818,'41179'), +(3819,'41069'), +(3820,'66706'), +(3821,'47661'), +(3822,'50181'), +(3823,'46487'), +(3824,'54456'), +(3825,'52391'), +(3826,'50170'), +(3827,'41569'), +(3828,'54290'), +(3829,'48691'), +(3830,'47053'), +(3831,'66809'), +(3832,'54534'), +(3833,'50859'), +(3834,'50858'), +(3835,'40595'), +(3836,'46284'), +(3837,'50969'), +(3838,'50674'), +(3839,'54422'), +(3840,'42699'), +(3841,'66121'), +(3842,'56746'), +(3843,'53343'), +(3844,'51688'), +(3845,'53809'), +(3846,'56588'), +(3847,'58089'), +(3848,'66892'), +(3849,'26607'), +(3850,'53842'), +(3851,'42117'), +(3852,'55768'), +(3853,'42369'), +(3854,'55767'), +(3855,'45657'), +(3856,'45739'), +(3857,'42289'), +(3858,'44787'), +(3859,'53619'), +(3860,'49770'), +(3861,'90439'), +(3862,'39359'), +(3863,'86919'), +(3864,'82449'), +(3865,'90403'), +(3866,'82407'), +(3867,'90482'), +(3868,'96515'), +(3869,'38828'), +(3870,'90473'), +(3871,'90411'), +(3872,'96524'), +(3873,'90542'), +(3874,'86571'), +(3875,'86561'), +(3876,'85117'), +(3877,'91286'), +(3878,'67067'), +(3879,'79802'), +(3880,'64579'), +(3881,'27572'), +(3882,'34508'), +(3883,'68526'), +(3884,'78609'), +(3885,'69502'), +(3886,'69190'), +(3887,'63329'), +(3888,'27751'), +(3889,'75228'), +(3890,'64287'), +(3891,'78549'), +(3892,'60306'), +(3893,'32105'), +(3894,'21765'), +(3895,'69518'), +(3896,'75057'), +(3897,'28209'), +(3898,'71134'), +(3899,'75395'), +(3900,'72149'), +(3901,'27432'), +(3902,'25813'), +(3903,'74363'), +(3904,'69429'), +(3905,'70839'), +(3906,'63814'), +(3907,'27446'), +(3908,'74226'), +(3909,'31707'), +(3910,'71144'), +(3911,'25876'), +(3912,'34311'), +(3913,'72667'), +(3914,'63933'), +(3915,'31702'), +(3916,'72800'), +(3917,'72585'), +(3918,'63872'), +(3919,'63846'), +(3920,'72661'), +(3921,'34281'), +(3922,'72581'), +(3923,'24863'), +(3924,'71570'), +(3925,'97834'), +(3926,'21647'), +(3927,'36282'), +(3928,'24613'), +(3929,'24790'), +(3930,'97769'), +(3931,'97780'), +(3932,'97776'), +(3933,'24796'), +(3934,'24632'), +(3935,'21256'), +(3936,'74572'), +(3937,'36169'), +(3938,'97450'), +(3939,'20257'), +(3940,'29352'), +(3941,'20539'), +(3942,'22303'), +(3943,'97659'), +(3944,'22889'), +(3945,'87561'), +(3946,'73463'), +(3947,'91608'), +(3948,'73441'), +(3949,'21358'), +(3950,'97348'), +(3951,'91596'), +(3952,'21481'), +(3953,'29525'), +(3954,'86473'), +(3955,'29399'), +(3956,'38835'), +(3957,'29591'), +(3958,'23611'), +(3959,'87672'), +(3960,'23564'), +(3961,'38154'), +(3962,'86199'), +(3963,'86836'), +(3964,'86944'), +(3965,'90513'), +(3966,'82488'), +(3967,'99091'), +(3968,'99631'), +(3969,'39356'), +(3970,'06493'), +(3971,'07426'), +(3972,'90429'), +(3973,'99096'), +(3974,'67280'), +(3975,'77886'), +(3976,'77728'), +(3977,'49214'), +(3978,'57339'), +(3979,'78098'), +(3980,'76767'), +(3981,'67361'), +(3982,'76461'), +(3983,'33449'), +(3984,'67125'), +(3985,'32351'), +(3986,'25996'), +(3987,'67376'), +(3988,'79780'), +(3989,'25999'), +(3990,'67547'), +(3991,'76185'), +(3992,'65439'), +(3993,'64560'), +(3994,'67063'), +(3995,'77948'), +(3996,'56414'), +(3997,'55597'), +(3998,'79252'), +(3999,'26452'), +(4000,'67489'), +(4001,'57076'), +(4002,'76829'), +(4003,'65399'), +(4004,'49086'), +(4005,'36381'), +(4006,'72587'), +(4007,'73614'), +(4008,'25358'), +(4009,'73275'), +(4010,'21640'), +(4011,'73660'), +(4012,'73655'), +(4013,'73099'), +(4014,'37633'), +(4015,'29699'), +(4016,'24891'), +(4017,'21255'), +(4018,'24808'), +(4019,'92263'), +(4020,'39261'), +(4021,'07549'), +(4022,'08525'), +(4023,'92706'), +(4024,'84186'), +(4025,'18146'), +(4026,'93149'), +(4027,'83122'), +(4028,'93073'), +(4029,'84144'), +(4030,'08499'), +(4031,'08223'), +(4032,'84100'), +(4033,'95671'), +(4034,'84183'), +(4035,'04600'), +(4036,'94369'), +(4037,'94339'), +(4038,'83342'), +(4039,'83339'), +(4040,'93489'), +(4041,'17139'), +(4042,'94360'), +(4043,'08280'), +(4044,'94569'), +(4045,'83451'), +(4046,'09119'), +(4047,'94554'), +(4048,'09477'), +(4049,'14943'), +(4050,'13591'), +(4051,'94252'), +(4052,'01683'), +(4053,'13629'), +(4054,'10709'), +(4055,'10629'), +(4056,'09629'), +(4057,'13435'), +(4058,'17493'), +(4059,'10999'), +(4060,'61250'), +(4061,'76228'), +(4062,'76229'), +(4063,'33613'), +(4064,'64653'), +(4065,'60549'), +(4066,'28816'), +(4067,'35112'), +(4068,'75399'), +(4069,'35066'), +(4070,'72184'), +(4071,'75249'), +(4072,'25882'), +(4073,'78259'), +(4074,'69483'), +(4075,'78585'), +(4076,'74933'), +(4077,'35325'), +(4078,'78343'), +(4079,'74389'), +(4080,'25693'), +(4081,'88605'), +(4082,'21730'), +(4083,'72147'), +(4084,'31619'), +(4085,'64754'), +(4086,'72127'), +(4087,'31708'), +(4088,'31693'), +(4089,'25878'), +(4090,'34599'), +(4091,'70619'), +(4092,'74360'), +(4093,'21712'), +(4094,'74861'), +(4095,'63599'), +(4096,'25594'), +(4097,'73732'), +(4098,'72669'), +(4099,'88677'), +(4100,'71384'), +(4101,'71404'), +(4102,'37697'), +(4103,'24848'), +(4104,'88289'), +(4105,'31073'), +(4106,'30451'), +(4107,'97237'), +(4108,'30177'), +(4109,'24360'), +(4110,'97261'), +(4111,'22525'), +(4112,'73486'), +(4113,'97222'), +(4114,'97285'), +(4115,'89185'), +(4116,'97078'), +(4117,'99837'), +(4118,'97076'), +(4119,'89183'), +(4120,'97230'), +(4121,'89269'), +(4122,'97729'), +(4123,'21388'), +(4124,'91587'), +(4125,'89284'), +(4126,'37339'), +(4127,'97346'), +(4128,'97640'), +(4129,'38678'), +(4130,'87755'), +(4131,'97447'), +(4132,'22965'), +(4133,'87776'), +(4134,'97488'), +(4135,'97503'), +(4136,'91598'), +(4137,'87769'), +(4138,'29393'), +(4139,'22946'), +(4140,'21483'), +(4141,'91572'), +(4142,'97528'), +(4143,'98553'), +(4144,'87656'), +(4145,'96193'), +(4146,'23562'), +(4147,'86709'), +(4148,'23683'), +(4149,'96120'), +(4150,'96135'), +(4151,'96103'), +(4152,'90587'), +(4153,'96274'), +(4154,'86978'), +(4155,'82467'), +(4156,'86153'), +(4157,'23942'), +(4158,'38379'), +(4159,'90547'), +(4160,'86438'), +(4161,'86935'), +(4162,'99195'), +(4163,'82297'), +(4164,'86922'), +(4165,'41749'), +(4166,'41065'), +(4167,'41363'), +(4168,'47802'), +(4169,'54585'), +(4170,'47809'), +(4171,'54343'), +(4172,'54341'), +(4173,'47057'), +(4174,'46049'), +(4175,'54524'), +(4176,'45473'), +(4177,'50735'), +(4178,'45355'), +(4179,'42697'), +(4180,'54472'), +(4181,'51061'), +(4182,'66125'), +(4183,'48527'), +(4184,'53508'), +(4185,'26736'), +(4186,'51109'), +(4187,'34246'), +(4188,'24944'), +(4189,'24975'), +(4190,'74535'), +(4191,'25593'), +(4192,'97737'), +(4193,'97944'), +(4194,'74420'), +(4195,'37216'), +(4196,'95488'), +(4197,'19300'), +(4198,'81241'), +(4199,'39326'), +(4200,'95131'), +(4201,'19089'), +(4202,'95444'), +(4203,'81547'), +(4204,'81549'), +(4205,'06628'), +(4206,'83607'), +(4207,'85774'), +(4208,'81739'), +(4209,'92655'), +(4210,'83707'), +(4211,'06249'), +(4212,'93176'), +(4213,'92284'), +(4214,'85604'), +(4215,'39596'), +(4216,'57635'), +(4217,'44263'), +(4218,'49774'), +(4219,'66919'), +(4220,'57258'), +(4221,'26486'), +(4222,'55411'), +(4223,'79350'), +(4224,'67814'), +(4225,'55459'), +(4226,'77836'), +(4227,'57299'), +(4228,'67297'), +(4229,'65623'), +(4230,'65345'), +(4231,'26386'), +(4232,'58540'), +(4233,'56348'), +(4234,'79295'), +(4235,'67718'), +(4236,'77975'), +(4237,'79232'), +(4238,'59065'), +(4239,'57482'), +(4240,'65552'), +(4241,'55291'), +(4242,'79871'), +(4243,'35686'), +(4244,'72270'), +(4245,'67574'), +(4246,'65529'), +(4247,'67240'), +(4248,'76351'), +(4249,'76133'), +(4250,'51469'), +(4251,'48465'), +(4252,'42111'), +(4253,'66540'), +(4254,'42119'), +(4255,'26907'), +(4256,'53639'), +(4257,'42287'), +(4258,'56821'), +(4259,'53579'), +(4260,'58256'), +(4261,'55756'), +(4262,'96465'), +(4263,'82266'), +(4264,'82281'), +(4265,'07427'), +(4266,'06463'), +(4267,'06449'), +(4268,'09544'), +(4269,'10245'), +(4270,'10318'), +(4271,'18586'), +(4272,'01471'), +(4273,'17379'), +(4274,'01109'), +(4275,'01239'), +(4276,'01309'), +(4277,'01257'), +(4278,'01993'), +(4279,'01816'), +(4280,'17373'), +(4281,'01824'), +(4282,'03096'), +(4283,'03119'), +(4284,'02699'), +(4285,'16307'), +(4286,'03050'), +(4287,'02747'), +(4288,'47551'), +(4289,'52477'), +(4290,'52152'), +(4291,'52382'), +(4292,'47506'), +(4293,'54647'), +(4294,'54316'), +(4295,'47139'), +(4296,'50259'), +(4297,'40468'), +(4298,'40470'), +(4299,'40599'), +(4300,'45475'), +(4301,'50739'), +(4302,'66636'), +(4303,'66117'), +(4304,'50968'), +(4305,'56825'), +(4306,'53125'), +(4307,'48720'), +(4308,'79822'), +(4309,'35759'), +(4310,'76437'), +(4311,'49143'), +(4312,'26122'), +(4313,'76532'), +(4314,'79790'), +(4315,'55252'), +(4316,'76764'), +(4317,'35684'), +(4318,'76189'), +(4319,'67577'), +(4320,'26936'), +(4321,'67365'), +(4322,'59557'), +(4323,'27801'), +(4324,'59602'), +(4325,'67117'), +(4326,'57614'), +(4327,'66862'), +(4328,'55596'), +(4329,'56337'), +(4330,'67732'), +(4331,'79429'), +(4332,'56349'), +(4333,'67697'), +(4334,'49497'), +(4335,'65391'), +(4336,'57627'), +(4337,'49536'), +(4338,'67693'), +(4339,'67728'), +(4340,'59469'), +(4341,'65582'), +(4342,'65626'), +(4343,'55578'), +(4344,'59519'), +(4345,'59823'), +(4346,'57234'), +(4347,'67308'), +(4348,'77787'), +(4349,'67157'), +(4350,'26903'), +(4351,'26465'), +(4352,'66504'), +(4353,'56323'), +(4354,'58515'), +(4355,'48159'), +(4356,'56743'), +(4357,'55776'), +(4358,'56751'), +(4359,'24783'), +(4360,'73054'), +(4361,'73113'), +(4362,'36277'), +(4363,'88471'), +(4364,'37120'), +(4365,'30629'), +(4366,'29649'), +(4367,'88260'), +(4368,'31137'), +(4369,'24399'), +(4370,'37075'), +(4371,'97657'), +(4372,'20359'), +(4373,'73434'), +(4374,'97647'), +(4375,'23812'), +(4376,'24113'), +(4377,'73433'), +(4378,'97534'), +(4379,'22159'), +(4380,'89520'), +(4381,'99819'), +(4382,'89168'), +(4383,'87779'), +(4384,'87752'), +(4385,'89567'), +(4386,'89428'), +(4387,'24638'), +(4388,'98639'), +(4389,'38644'), +(4390,'89358'), +(4391,'24238'), +(4392,'86735'), +(4393,'96160'), +(4394,'89365'), +(4395,'87742'), +(4396,'91463'), +(4397,'38114'), +(4398,'67061'), +(4399,'32361'), +(4400,'33154'), +(4401,'35585'), +(4402,'64683'), +(4403,'78662'), +(4404,'75196'), +(4405,'75045'), +(4406,'33161'), +(4407,'69469'), +(4408,'28719'), +(4409,'27616'), +(4410,'60594'), +(4411,'61118'), +(4412,'33175'), +(4413,'61206'), +(4414,'27245'), +(4415,'63150'), +(4416,'32429'), +(4417,'32547'), +(4418,'64395'), +(4419,'64853'), +(4420,'31595'), +(4421,'71069'), +(4422,'25774'), +(4423,'71106'), +(4424,'28325'), +(4425,'21785'), +(4426,'27412'), +(4427,'71739'), +(4428,'74252'), +(4429,'35279'), +(4430,'63679'), +(4431,'25866'), +(4432,'31719'), +(4433,'25785'), +(4434,'70806'), +(4435,'63768'), +(4436,'71640'), +(4437,'74731'), +(4438,'63857'), +(4439,'71332'), +(4440,'31867'), +(4441,'74736'), +(4442,'73230'), +(4443,'91459'), +(4444,'91622'), +(4445,'38162'), +(4446,'38319'), +(4447,'38165'), +(4448,'29389'), +(4449,'91737'), +(4450,'91586'), +(4451,'86685'), +(4452,'96188'), +(4453,'86485'), +(4454,'99100'), +(4455,'86925'), +(4456,'96190'), +(4457,'86507'), +(4458,'86179'), +(4459,'91336'), +(4460,'90441'), +(4461,'24867'), +(4462,'73262'), +(4463,'36364'), +(4464,'34327'), +(4465,'24819'), +(4466,'73101'), +(4467,'21646'), +(4468,'73087'), +(4469,'34286'), +(4470,'73344'), +(4471,'97854'), +(4472,'25336'), +(4473,'97959'), +(4474,'92348'), +(4475,'19053'), +(4476,'95496'), +(4477,'85077'), +(4478,'85764'), +(4479,'80634'), +(4480,'85391'), +(4481,'85386'), +(4482,'80538'), +(4483,'39112'), +(4484,'06638'), +(4485,'95233'), +(4486,'85579'), +(4487,'85414'), +(4488,'92237'), +(4489,'83703'), +(4490,'06198'), +(4491,'95686'), +(4492,'84091'), +(4493,'83737'), +(4494,'85368'), +(4495,'92286'), +(4496,'39590'), +(4497,'93161'), +(4498,'06258'), +(4499,'83075'), +(4500,'85659'), +(4501,'84098'), +(4502,'83558'), +(4503,'83527'), +(4504,'14715'), +(4505,'83131'), +(4506,'93197'), +(4507,'14728'), +(4508,'04639'), +(4509,'04275'), +(4510,'08115'), +(4511,'04347'), +(4512,'04299'), +(4513,'08147'), +(4514,'14797'), +(4515,'92557'), +(4516,'84550'), +(4517,'08315'), +(4518,'09224'), +(4519,'83413'), +(4520,'93476'), +(4521,'94447'), +(4522,'09484'), +(4523,'94486'), +(4524,'17109'), +(4525,'18516'), +(4526,'94501'), +(4527,'14482'), +(4528,'94551'), +(4529,'94137'), +(4530,'09514'), +(4531,'18574'), +(4532,'09618'), +(4533,'94169'), +(4534,'17036'), +(4535,'10713'), +(4536,'10625'), +(4537,'12247'), +(4538,'94481'), +(4539,'99099'), +(4540,'86495'), +(4541,'90461'), +(4542,'90489'), +(4543,'82418'), +(4544,'86701'), +(4545,'19075'), +(4546,'91355'), +(4547,'95359'), +(4548,'06571'), +(4549,'82110'), +(4550,'29491'), +(4551,'91242'), +(4552,'01833'), +(4553,'01906'), +(4554,'03149'), +(4555,'02727'), +(4556,'94121'), +(4557,'94545'), +(4558,'03238'), +(4559,'01468'), +(4560,'17389'), +(4561,'01945'), +(4562,'49844'), +(4563,'49832'), +(4564,'47509'), +(4565,'54589'), +(4566,'54655'), +(4567,'47447'), +(4568,'46117'), +(4569,'46119'), +(4570,'40699'), +(4571,'46282'), +(4572,'45359'), +(4573,'51371'), +(4574,'50931'), +(4575,'54497'), +(4576,'51103'), +(4577,'45136'), +(4578,'66129'), +(4579,'45309'), +(4580,'85131'), +(4581,'90571'), +(4582,'07422'), +(4583,'82327'), +(4584,'29494'), +(4585,'06343'), +(4586,'82140'), +(4587,'19069'), +(4588,'83661'), +(4589,'56581'), +(4590,'58097'), +(4591,'51588'), +(4592,'66507'), +(4593,'59394'), +(4594,'66989'), +(4595,'56333'), +(4596,'57612'), +(4597,'88263'), +(4598,'25585'), +(4599,'88361'), +(4600,'36275'), +(4601,'24878'), +(4602,'21644'), +(4603,'71566'), +(4604,'30989'), +(4605,'21641'), +(4606,'36148'), +(4607,'67435'), +(4608,'77889'), +(4609,'65195'), +(4610,'65618'), +(4611,'55116'), +(4612,'76287'), +(4613,'55283'), +(4614,'67105'), +(4615,'65719'), +(4616,'76199'), +(4617,'76137'), +(4618,'44319'), +(4619,'58642'), +(4620,'57610'), +(4621,'48157'), +(4622,'79369'), +(4623,'67700'), +(4624,'57577'), +(4625,'79227'), +(4626,'79585'), +(4627,'79359'), +(4628,'55487'), +(4629,'53557'), +(4630,'44359'), +(4631,'44357'), +(4632,'53489'), +(4633,'56820'), +(4634,'85459'), +(4635,'85669'), +(4636,'92690'), +(4637,'95195'), +(4638,'93345'), +(4639,'06110'), +(4640,'95704'), +(4641,'06385'), +(4642,'92253'), +(4643,'84085'), +(4644,'84424'), +(4645,'06679'), +(4646,'93049'), +(4647,'84097'), +(4648,'83561'), +(4649,'18273'), +(4650,'92660'), +(4651,'92699'), +(4652,'83549'), +(4653,'93089'), +(4654,'83229'), +(4655,'93090'), +(4656,'08258'), +(4657,'06785'), +(4658,'06869'), +(4659,'93179'), +(4660,'83119'), +(4661,'06773'), +(4662,'93194'), +(4663,'18337'), +(4664,'84574'), +(4665,'92554'), +(4666,'08304'), +(4667,'04425'), +(4668,'84570'), +(4669,'84518'), +(4670,'83368'), +(4671,'93455'), +(4672,'83374'), +(4673,'84556'), +(4674,'94436'), +(4675,'18461'), +(4676,'94563'), +(4677,'18442'), +(4678,'83435'), +(4679,'09114'), +(4680,'04736'), +(4681,'18507'), +(4682,'84385'), +(4683,'14959'), +(4684,'09579'), +(4685,'18565'), +(4686,'14052'), +(4687,'13405'), +(4688,'13403'), +(4689,'10719'), +(4690,'10555'), +(4691,'12249'), +(4692,'17391'), +(4693,'10829'), +(4694,'12309'), +(4695,'07349'), +(4696,'96367'), +(4697,'95355'), +(4698,'19079'), +(4699,'81475'), +(4700,'39629'), +(4701,'29493'), +(4702,'39517'), +(4703,'80993'), +(4704,'95473'), +(4705,'81545'), +(4706,'91275'), +(4707,'80933'), +(4708,'23992'), +(4709,'82054'), +(4710,'06632'), +(4711,'95517'), +(4712,'07924'), +(4713,'85652'), +(4714,'18246'), +(4715,'07607'), +(4716,'93152'), +(4717,'88099'), +(4718,'30851'), +(4719,'88447'), +(4720,'74673'), +(4721,'31061'), +(4722,'36157'), +(4723,'22869'), +(4724,'97244'), +(4725,'97299'), +(4726,'97282'), +(4727,'88416'), +(4728,'73453'), +(4729,'73540'), +(4730,'20457'), +(4731,'74585'), +(4732,'21107'), +(4733,'20251'), +(4734,'97199'), +(4735,'21272'), +(4736,'20537'), +(4737,'22393'), +(4738,'87740'), +(4739,'24105'), +(4740,'21444'), +(4741,'91635'), +(4742,'24253'), +(4743,'29353'), +(4744,'29578'), +(4745,'89367'), +(4746,'21386'), +(4747,'24256'), +(4748,'21357'), +(4749,'91634'), +(4750,'21526'), +(4751,'23858'), +(4752,'29365'), +(4753,'38640'), +(4754,'23715'), +(4755,'91604'), +(4756,'38118'), +(4757,'32139'), +(4758,'68775'), +(4759,'78727'), +(4760,'78736'), +(4761,'35117'), +(4762,'72189'), +(4763,'33106'), +(4764,'72218'), +(4765,'35392'), +(4766,'78669'), +(4767,'27251'), +(4768,'35415'), +(4769,'60599'), +(4770,'34497'), +(4771,'72359'), +(4772,'75443'), +(4773,'71083'), +(4774,'35274'), +(4775,'64823'), +(4776,'72406'), +(4777,'63452'), +(4778,'72379'), +(4779,'63691'), +(4780,'63546'), +(4781,'25724'), +(4782,'63526'), +(4783,'64850'), +(4784,'63517'), +(4785,'72144'), +(4786,'25541'), +(4787,'74936'), +(4788,'72135'), +(4789,'31712'), +(4790,'74865'), +(4791,'21734'), +(4792,'71636'), +(4793,'74388'), +(4794,'25572'), +(4795,'70327'), +(4796,'74199'), +(4797,'27386'), +(4798,'88367'), +(4799,'34131'), +(4800,'34292'), +(4801,'36323'), +(4802,'72644'), +(4803,'88529'), +(4804,'73257'), +(4805,'25348'), +(4806,'72582'), +(4807,'21682'), +(4808,'86756'), +(4809,'21400'), +(4810,'19258'), +(4811,'38547'), +(4812,'86465'), +(4813,'98529'), +(4814,'89443'), +(4815,'99958'), +(4816,'91489'), +(4817,'38477'), +(4818,'90574'), +(4819,'38489'), +(4820,'38373'), +(4821,'38378'), +(4822,'38458'), +(4823,'96163'), +(4824,'96114'), +(4825,'96199'), +(4826,'86928'), +(4827,'38838'), +(4828,'82405'), +(4829,'23775'), +(4830,'86676'), +(4831,'59063'), +(4832,'79249'), +(4833,'79098'), +(4834,'65385'), +(4835,'79108'), +(4836,'49219'), +(4837,'59846'), +(4838,'65375'), +(4839,'56462'), +(4840,'79261'), +(4841,'67472'), +(4842,'59821'), +(4843,'79872'), +(4844,'49451'), +(4845,'76779'), +(4846,'77796'), +(4847,'15926'), +(4848,'18609'), +(4849,'12526'), +(4850,'16359'), +(4851,'94158'), +(4852,'01936'), +(4853,'17358'), +(4854,'15890'), +(4855,'02788'), +(4856,'02929'), +(4857,'39279'), +(4858,'85465'), +(4859,'08539'), +(4860,'93133'), +(4861,'07950'), +(4862,'95111'), +(4863,'39307'), +(4864,'18107'), +(4865,'84172'), +(4866,'95707'), +(4867,'08626'), +(4868,'95689'), +(4869,'83101'), +(4870,'92712'), +(4871,'84028'), +(4872,'06796'), +(4873,'08239'), +(4874,'84103'), +(4875,'18347'), +(4876,'94333'), +(4877,'83259'), +(4878,'18195'), +(4879,'84175'), +(4880,'83257'), +(4881,'84180'), +(4882,'08144'), +(4883,'84546'), +(4884,'84140'), +(4885,'04618'), +(4886,'04643'), +(4887,'94327'), +(4888,'09212'), +(4889,'06895'), +(4890,'84561'), +(4891,'09221'), +(4892,'09326'), +(4893,'04779'), +(4894,'09423'), +(4895,'09126'), +(4896,'94256'), +(4897,'18437'), +(4898,'09496'), +(4899,'16767'), +(4900,'01616'), +(4901,'10711'), +(4902,'13409'), +(4903,'01561'), +(4904,'01662'), +(4905,'85258'), +(4906,'39628'), +(4907,'82515'), +(4908,'85241'), +(4909,'23970'), +(4910,'81375'), +(4911,'95369'), +(4912,'85296'), +(4913,'91249'), +(4914,'39439'), +(4915,'95362'), +(4916,'19412'), +(4917,'39128'), +(4918,'07747'), +(4919,'81673'), +(4920,'92331'), +(4921,'85630'), +(4922,'95189'), +(4923,'82276'), +(4924,'90480'), +(4925,'85135'), +(4926,'96264'), +(4927,'85137'), +(4928,'91171'), +(4929,'92342'), +(4930,'82223'), +(4931,'85247'), +(4932,'99441'), +(4933,'91480'), +(4934,'90619'), +(4935,'91486'), +(4936,'23730'), +(4937,'96173'), +(4938,'87642'), +(4939,'96148'), +(4940,'98673'), +(4941,'86695'), +(4942,'99718'), +(4943,'91325'), +(4944,'38368'), +(4945,'86492'), +(4946,'82383'), +(4947,'96472'), +(4948,'99089'), +(4949,'86573'), +(4950,'02994'), +(4951,'01848'), +(4952,'02979'), +(4953,'01904'), +(4954,'01855'), +(4955,'02681'), +(4956,'13086'), +(4957,'12359'), +(4958,'12687'), +(4959,'12685'), +(4960,'01744'), +(4961,'52074'), +(4962,'52511'), +(4963,'47647'), +(4964,'53937'), +(4965,'46499'), +(4966,'54584'), +(4967,'54459'), +(4968,'46562'), +(4969,'47443'), +(4970,'40239'), +(4971,'66687'), +(4972,'46244'), +(4973,'46047'), +(4974,'40721'), +(4975,'40764'), +(4976,'66115'), +(4977,'66119'), +(4978,'45329'), +(4979,'51067'), +(4980,'45883'), +(4981,'53507'), +(4982,'42113'), +(4983,'51515'), +(4984,'42275'), +(4985,'24405'), +(4986,'30457'), +(4987,'89143'), +(4988,'88138'), +(4989,'97947'), +(4990,'88267'), +(4991,'24589'), +(4992,'74549'), +(4993,'30627'), +(4994,'21224'), +(4995,'36289'), +(4996,'73575'), +(4997,'37269'), +(4998,'20253'), +(4999,'97993'), +(5000,'22850'), +(5001,'29225'), +(5002,'88319'), +(5003,'89186'), +(5004,'24620'), +(5005,'36452'), +(5006,'38723'), +(5007,'37299'), +(5008,'87700'), +(5009,'24114'), +(5010,'87737'), +(5011,'73466'), +(5012,'87787'), +(5013,'29362'), +(5014,'23827'), +(5015,'29574'), +(5016,'91471'), +(5017,'91483'), +(5018,'97539'), +(5019,'86739'), +(5020,'87782'), +(5021,'86748'), +(5022,'21380'), +(5023,'96181'), +(5024,'23719'), +(5025,'59590'), +(5026,'68794'), +(5027,'35578'), +(5028,'35116'), +(5029,'33659'), +(5030,'35583'), +(5031,'33602'), +(5032,'33604'), +(5033,'33607'), +(5034,'35398'), +(5035,'60486'), +(5036,'69124'), +(5037,'60326'), +(5038,'28757'), +(5039,'32107'), +(5040,'60598'), +(5041,'27232'), +(5042,'25927'), +(5043,'25836'), +(5044,'64372'), +(5045,'78595'), +(5046,'75433'), +(5047,'71263'), +(5048,'78239'), +(5049,'28203'), +(5050,'72364'), +(5051,'75446'), +(5052,'21775'), +(5053,'63454'), +(5054,'32689'), +(5055,'35285'), +(5056,'71277'), +(5057,'27330'), +(5058,'25889'), +(5059,'63695'), +(5060,'36320'), +(5061,'24969'), +(5062,'31633'), +(5063,'25729'), +(5064,'63773'), +(5065,'31582'), +(5066,'72793'), +(5067,'70191'), +(5068,'32676'), +(5069,'31714'), +(5070,'73760'), +(5071,'21706'), +(5072,'88633'), +(5073,'88718'), +(5074,'31634'), +(5075,'74246'), +(5076,'34369'), +(5077,'24955'), +(5078,'97909'), +(5079,'25573'), +(5080,'74259'), +(5081,'24806'), +(5082,'97859'), +(5083,'24817'), +(5084,'51674'), +(5085,'48477'), +(5086,'56587'), +(5087,'26817'), +(5088,'67754'), +(5089,'49757'), +(5090,'66987'), +(5091,'56179'), +(5092,'55592'), +(5093,'26639'), +(5094,'66981'), +(5095,'26676'), +(5096,'67716'), +(5097,'67705'), +(5098,'48346'), +(5099,'77743'), +(5100,'79331'), +(5101,'79689'), +(5102,'79285'), +(5103,'57580'), +(5104,'55232'), +(5105,'65232'), +(5106,'55263'), +(5107,'35708'), +(5108,'79862'), +(5109,'79804'), +(5110,'76479'), +(5111,'59581'), +(5112,'65520'), +(5113,'65205'), +(5114,'67366'), +(5115,'76773'), +(5116,'25524'), +(5117,'27389'), +(5118,'88370'), +(5119,'97845'), +(5120,'73271'), +(5121,'24881'), +(5122,'24866'), +(5123,'88250'), +(5124,'72535'), +(5125,'57642'), +(5126,'57648'), +(5127,'55559'), +(5128,'57555'), +(5129,'65556'), +(5130,'26388'), +(5131,'67434'), +(5132,'67310'), +(5133,'44581'), +(5134,'66914'), +(5135,'44577'), +(5136,'49838'), +(5137,'26909'), +(5138,'06667'), +(5139,'95100'), +(5140,'06686'), +(5141,'83109'), +(5142,'95186'), +(5143,'92703'), +(5144,'84030'), +(5145,'84088'), +(5146,'83115'), +(5147,'06766'), +(5148,'18184'), +(5149,'84419'), +(5150,'92436'), +(5151,'04442'), +(5152,'06774'), +(5153,'84109'), +(5154,'84573'), +(5155,'08066'), +(5156,'84177'), +(5157,'14823'), +(5158,'94363'), +(5159,'04680'), +(5160,'09353'), +(5161,'08359'), +(5162,'16816'), +(5163,'16831'), +(5164,'94374'), +(5165,'94505'), +(5166,'09235'), +(5167,'93458'), +(5168,'94533'), +(5169,'17217'), +(5170,'14612'), +(5171,'13593'), +(5172,'13589'), +(5173,'18556'), +(5174,'94258'), +(5175,'14050'), +(5176,'94081'), +(5177,'13509'), +(5178,'94513'), +(5179,'12207'), +(5180,'10823'), +(5181,'10178'), +(5182,'15938'), +(5183,'12529'), +(5184,'95326'), +(5185,'85221'), +(5186,'23966'), +(5187,'95512'), +(5188,'92367'), +(5189,'93336'), +(5190,'07743'), +(5191,'95448'), +(5192,'80469'), +(5193,'80807'), +(5194,'81669'), +(5195,'39221'), +(5196,'19374'), +(5197,'84048'), +(5198,'18225'), +(5199,'92249'), +(5200,'85665'), +(5201,'85419'), +(5202,'85435'), +(5203,'86570'), +(5204,'86529'), +(5205,'82481'), +(5206,'82343'), +(5207,'85051'), +(5208,'25938'), +(5209,'68642'), +(5210,'78086'), +(5211,'49453'), +(5212,'68161'), +(5213,'61273'), +(5214,'75389'), +(5215,'72160'), +(5216,'65934'), +(5217,'33719'), +(5218,'60489'), +(5219,'35094'), +(5220,'27619'), +(5221,'60437'), +(5222,'69198'), +(5223,'75173'), +(5224,'69168'), +(5225,'27721'), +(5226,'75056'), +(5227,'78592'), +(5228,'71120'), +(5229,'35114'), +(5230,'64760'), +(5231,'78256'), +(5232,'32423'), +(5233,'63450'), +(5234,'74921'), +(5235,'71034'), +(5236,'71093'), +(5237,'31691'), +(5238,'63699'), +(5239,'72124'), +(5240,'31749'), +(5241,'74321'), +(5242,'27324'), +(5243,'88630'), +(5244,'78465'), +(5245,'70190'), +(5246,'74722'), +(5247,'34289'), +(5248,'34379'), +(5249,'34388'), +(5250,'25786'), +(5251,'63637'), +(5252,'74746'), +(5253,'36093'), +(5254,'73079'), +(5255,'21629'), +(5256,'97267'), +(5257,'74429'), +(5258,'25499'), +(5259,'97204'), +(5260,'97262'), +(5261,'22081'), +(5262,'97502'), +(5263,'73432'), +(5264,'91625'), +(5265,'22147'), +(5266,'22885'), +(5267,'24148'), +(5268,'87730'), +(5269,'87463'), +(5270,'23867'), +(5271,'23795'), +(5272,'38176'), +(5273,'38539'), +(5274,'91613'), +(5275,'97499'), +(5276,'29369'), +(5277,'89435'), +(5278,'99759'), +(5279,'91725'), +(5280,'86871'), +(5281,'38550'), +(5282,'23556'), +(5283,'86733'), +(5284,'91462'), +(5285,'98528'), +(5286,'87645'), +(5287,'96191'), +(5288,'29597'), +(5289,'29499'), +(5290,'19260'), +(5291,'86943'), +(5292,'86316'), +(5293,'38486'), +(5294,'82435'), +(5295,'82272'), +(5296,'12059'), +(5297,'01689'), +(5298,'16356'), +(5299,'15745'), +(5300,'16225'), +(5301,'01187'), +(5302,'94145'), +(5303,'01189'), +(5304,'15528'), +(5305,'01825'), +(5306,'01819'), +(5307,'34277'), +(5308,'88527'), +(5309,'34399'), +(5310,'25489'), +(5311,'34346'), +(5312,'97941'), +(5313,'37635'), +(5314,'29643'), +(5315,'88287'), +(5316,'88131'), +(5317,'15306'), +(5318,'02625'), +(5319,'15295'), +(5320,'02791'), +(5321,'41169'), +(5322,'54439'), +(5323,'47877'), +(5324,'46399'), +(5325,'54308'), +(5326,'47805'), +(5327,'54570'), +(5328,'40545'), +(5329,'54427'), +(5330,'50769'), +(5331,'66839'), +(5332,'45481'), +(5333,'40627'), +(5334,'54349'), +(5335,'50825'), +(5336,'46286'), +(5337,'45966'), +(5338,'45149'), +(5339,'51377'), +(5340,'45899'), +(5341,'66280'), +(5342,'44225'), +(5343,'48161'), +(5344,'58579'), +(5345,'26434'), +(5346,'56412'), +(5347,'57583'), +(5348,'49610'), +(5349,'57078'), +(5350,'49078'), +(5351,'49596'), +(5352,'48336'), +(5353,'55435'), +(5354,'76831'), +(5355,'65347'), +(5356,'57271'), +(5357,'79725'), +(5358,'67473'), +(5359,'56269'), +(5360,'56182'), +(5361,'56322'), +(5362,'26670'), +(5363,'59077'), +(5364,'79238'), +(5365,'49586'), +(5366,'56377'), +(5367,'55624'), +(5368,'44894'), +(5369,'53804'), +(5370,'56295'), +(5371,'58313'), +(5372,'53577'), +(5373,'55619'), +(5374,'45276'), +(5375,'51145'), +(5376,'66606'), +(5377,'66564'), +(5378,'56812'), +(5379,'42279'), +(5380,'48488'), +(5381,'42897'), +(5382,'65614'), +(5383,'59505'), +(5384,'55122'), +(5385,'26939'), +(5386,'85139'), +(5387,'85238'), +(5388,'91287'), +(5389,'95346'), +(5390,'39615'), +(5391,'95364'), +(5392,'80796'), +(5393,'95460'), +(5394,'83714'), +(5395,'85646'), +(5396,'92271'), +(5397,'92272'), +(5398,'06259'), +(5399,'95697'), +(5400,'07557'), +(5401,'06237'), +(5402,'93051'), +(5403,'95688'), +(5404,'83544'), +(5405,'18196'), +(5406,'07580'), +(5407,'92548'), +(5408,'06844'), +(5409,'14712'), +(5410,'08648'), +(5411,'04159'), +(5412,'16909'), +(5413,'83530'), +(5414,'08209'), +(5415,'14774'), +(5416,'04349'), +(5417,'84549'), +(5418,'94431'), +(5419,'93482'), +(5420,'93449'), +(5421,'08301'), +(5422,'14929'), +(5423,'83417'), +(5424,'09232'), +(5425,'93444'), +(5426,'09439'), +(5427,'09557'), +(5428,'18519'), +(5429,'01591'), +(5430,'17039'), +(5431,'14199'), +(5432,'94538'), +(5433,'13437'), +(5434,'17506'), +(5435,'12109'), +(5436,'04932'), +(5437,'01723'), +(5438,'10407'), +(5439,'01737'), +(5440,'16321'), +(5441,'13055'), +(5442,'10315'), +(5443,'15755'), +(5444,'12629'), +(5445,'15741'), +(5446,'17367'), +(5447,'02633'), +(5448,'85235'), +(5449,'82396'), +(5450,'82290'), +(5451,'82229'), +(5452,'29497'), +(5453,'82494'), +(5454,'19288'), +(5455,'19309'), +(5456,'86706'), +(5457,'83671'), +(5458,'96358'), +(5459,'52072'), +(5460,'41751'), +(5461,'41061'), +(5462,'47475'), +(5463,'52351'), +(5464,'54664'), +(5465,'46535'), +(5466,'46514'), +(5467,'46325'), +(5468,'40223'), +(5469,'50765'), +(5470,'53913'), +(5471,'49846'), +(5472,'53506'), +(5473,'50670'), +(5474,'45143'), +(5475,'54539'), +(5476,'45968'), +(5477,'66589'), +(5478,'53121'), +(5479,'66887'), +(5480,'51647'), +(5481,'26847'), +(5482,'67686'), +(5483,'42499'), +(5484,'42477'), +(5485,'58452'), +(5486,'53567'), +(5487,'26789'), +(5488,'45884'), +(5489,'48624'), +(5490,'44649'), +(5491,'26548'), +(5492,'49779'), +(5493,'42281'), +(5494,'26831'), +(5495,'44629'), +(5496,'53498'), +(5497,'67165'), +(5498,'27777'), +(5499,'27239'), +(5500,'27243'), +(5501,'72285'), +(5502,'68309'), +(5503,'64331'), +(5504,'61348'), +(5505,'75203'), +(5506,'35083'), +(5507,'35435'), +(5508,'35096'), +(5509,'64367'), +(5510,'33178'), +(5511,'60311'), +(5512,'35394'), +(5513,'69509'), +(5514,'31603'), +(5515,'35099'), +(5516,'35043'), +(5517,'78244'), +(5518,'32602'), +(5519,'33165'), +(5520,'63075'), +(5521,'71149'), +(5522,'28277'), +(5523,'69239'), +(5524,'35282'), +(5525,'71296'), +(5526,'21763'), +(5527,'72459'), +(5528,'72411'), +(5529,'71254'), +(5530,'71229'), +(5531,'21769'), +(5532,'72131'), +(5533,'63697'), +(5534,'63868'), +(5535,'31655'), +(5536,'74394'), +(5537,'74257'), +(5538,'31812'), +(5539,'31623'), +(5540,'31638'), +(5541,'31515'), +(5542,'97903'), +(5543,'63628'), +(5544,'74245'), +(5545,'24976'), +(5546,'71579'), +(5547,'24939'), +(5548,'97782'), +(5549,'30167'), +(5550,'88279'), +(5551,'25497'), +(5552,'89155'), +(5553,'73577'), +(5554,'73550'), +(5555,'89610'), +(5556,'25462'), +(5557,'97289'), +(5558,'74541'), +(5559,'89079'), +(5560,'89558'), +(5561,'24376'), +(5562,'22763'), +(5563,'31303'), +(5564,'31134'), +(5565,'97236'), +(5566,'22335'), +(5567,'88489'), +(5568,'22297'), +(5569,'89182'), +(5570,'22299'), +(5571,'21385'), +(5572,'73479'), +(5573,'22047'), +(5574,'89278'), +(5575,'37520'), +(5576,'37115'), +(5577,'97247'), +(5578,'29361'), +(5579,'21509'), +(5580,'24222'), +(5581,'21449'), +(5582,'24326'), +(5583,'24217'), +(5584,'21529'), +(5585,'29582'), +(5586,'87733'), +(5587,'86757'), +(5588,'38122'), +(5589,'23623'), +(5590,'38533'), +(5591,'38531'), +(5592,'38108'), +(5593,'97514'), +(5594,'91629'), +(5595,'38324'), +(5596,'38553'), +(5597,'91487'), +(5598,'87640'), +(5599,'96138'), +(5600,'98544'), +(5601,'23689'), +(5602,'87669'), +(5603,'98527'), +(5604,'99768'), +(5605,'90613'), +(5606,'98711'), +(5607,'86462'), +(5608,'86698'), +(5609,'86692'), +(5610,'86934'), +(5611,'38364'), +(5612,'86684'), +(5613,'82497'), +(5614,'99326'), +(5615,'82487'), +(5616,'29451'), +(5617,'57518'), +(5618,'26188'), +(5619,'57562'), +(5620,'49681'), +(5621,'77767'), +(5622,'49661'), +(5623,'49196'), +(5624,'76744'), +(5625,'67152'), +(5626,'33442'), +(5627,'79777'), +(5628,'25997'), +(5629,'26937'), +(5630,'76726'), +(5631,'65428'), +(5632,'78733'), +(5633,'36110'), +(5634,'36272'), +(5635,'24791'), +(5636,'37586'), +(5637,'24857'), +(5638,'89601'), +(5639,'73033'), +(5640,'34329'), +(5641,'25548'), +(5642,'36039'), +(5643,'59174'), +(5644,'51597'), +(5645,'58638'), +(5646,'56130'), +(5647,'55413'), +(5648,'59199'), +(5649,'55425'), +(5650,'26655'), +(5651,'07570'), +(5652,'19399'), +(5653,'85456'), +(5654,'06184'), +(5655,'08541'), +(5656,'04249'), +(5657,'06800'), +(5658,'93189'), +(5659,'04129'), +(5660,'94368'), +(5661,'93185'), +(5662,'83355'), +(5663,'84543'), +(5664,'84558'), +(5665,'93495'), +(5666,'04880'), +(5667,'93437'), +(5668,'17153'), +(5669,'94562'), +(5670,'09116'), +(5671,'94469'), +(5672,'09120'), +(5673,'09487'), +(5674,'04769'), +(5675,'93453'), +(5676,'94239'), +(5677,'84359'), +(5678,'84364'), +(5679,'18439'), +(5680,'14089'), +(5681,'17129'), +(5682,'18528'), +(5683,'12165'), +(5684,'10789'), +(5685,'13349'), +(5686,'10825'), +(5687,'01609'), +(5688,'10781'), +(5689,'15831'), +(5690,'16348'), +(5691,'13127'), +(5692,'17495'), +(5693,'94142'), +(5694,'97280'), +(5695,'36037'), +(5696,'88368'), +(5697,'97259'), +(5698,'30159'), +(5699,'88436'), +(5700,'25495'), +(5701,'24622'), +(5702,'30655'), +(5703,'37247'), +(5704,'97291'), +(5705,'97723'), +(5706,'24646'), +(5707,'37214'), +(5708,'31275'), +(5709,'31177'), +(5710,'37581'), +(5711,'21228'), +(5712,'24107'), +(5713,'24534'), +(5714,'36404'), +(5715,'24247'), +(5716,'89073'), +(5717,'97228'), +(5718,'89189'), +(5719,'20097'), +(5720,'88481'), +(5721,'74589'), +(5722,'24641'), +(5723,'22113'), +(5724,'87480'), +(5725,'21035'), +(5726,'87758'), +(5727,'31234'), +(5728,'97342'), +(5729,'89340'), +(5730,'97493'), +(5731,'29358'), +(5732,'87487'), +(5733,'22949'), +(5734,'89192'), +(5735,'87767'), +(5736,'89537'), +(5737,'86498'), +(5738,'97525'), +(5739,'87549'), +(5740,'23824'), +(5741,'87541'), +(5742,'23823'), +(5743,'89415'), +(5744,'91617'), +(5745,'87499'), +(5746,'97491'), +(5747,'98630'), +(5748,'29386'), +(5749,'87654'), +(5750,'91460'), +(5751,'99991'), +(5752,'52525'), +(5753,'52076'), +(5754,'52064'), +(5755,'46459'), +(5756,'54636'), +(5757,'52372'), +(5758,'54331'), +(5759,'54455'), +(5760,'50126'), +(5761,'54576'), +(5762,'54338'), +(5763,'54429'), +(5764,'66352'), +(5765,'40591'), +(5766,'40629'), +(5767,'66620'), +(5768,'45219'), +(5769,'50737'), +(5770,'54484'), +(5771,'53340'), +(5772,'50996'), +(5773,'26723'), +(5774,'66130'), +(5775,'53225'), +(5776,'42555'), +(5777,'45527'), +(5778,'53572'), +(5779,'56859'), +(5780,'66877'), +(5781,'56070'), +(5782,'67685'), +(5783,'85276'), +(5784,'95365'), +(5785,'85293'), +(5786,'81377'), +(5787,'80335'), +(5788,'39443'), +(5789,'39576'), +(5790,'81541'), +(5791,'85609'), +(5792,'92289'), +(5793,'93343'), +(5794,'85598'), +(5795,'83734'), +(5796,'83727'), +(5797,'09623'), +(5798,'01776'), +(5799,'03246'), +(5800,'01307'), +(5801,'01987'), +(5802,'01328'), +(5803,'03229'), +(5804,'02991'), +(5805,'03116'), +(5806,'03051'), +(5807,'15898'), +(5808,'03159'), +(5809,'91154'), +(5810,'91790'), +(5811,'96196'), +(5812,'82346'), +(5813,'96260'), +(5814,'07429'), +(5815,'90537'), +(5816,'86673'), +(5817,'96328'), +(5818,'96342'), +(5819,'85302'), +(5820,'92361'), +(5821,'78087'), +(5822,'68159'), +(5823,'67122'), +(5824,'72293'), +(5825,'75334'), +(5826,'72294'), +(5827,'59969'), +(5828,'35584'), +(5829,'75210'), +(5830,'72299'), +(5831,'68789'), +(5832,'64390'), +(5833,'78607'), +(5834,'78554'), +(5835,'64283'), +(5836,'60596'), +(5837,'28717'), +(5838,'60313'), +(5839,'78588'), +(5840,'35418'), +(5841,'32108'), +(5842,'63067'), +(5843,'32758'), +(5844,'69256'), +(5845,'35469'), +(5846,'64354'), +(5847,'75449'), +(5848,'69436'), +(5849,'72119'), +(5850,'78579'), +(5851,'27246'), +(5852,'28329'), +(5853,'34630'), +(5854,'74847'), +(5855,'72479'), +(5856,'31618'), +(5857,'78355'), +(5858,'21745'), +(5859,'63579'), +(5860,'27337'), +(5861,'32816'), +(5862,'72419'), +(5863,'72138'), +(5864,'70439'), +(5865,'70178'), +(5866,'72657'), +(5867,'78464'), +(5868,'25782'), +(5869,'72760'), +(5870,'72764'), +(5871,'88682'), +(5872,'72666'), +(5873,'63636'), +(5874,'31700'), +(5875,'74196'), +(5876,'34295'), +(5877,'21717'), +(5878,'34393'), +(5879,'24855'), +(5880,'73779'), +(5881,'97843'), +(5882,'73268'), +(5883,'21397'), +(5884,'38106'), +(5885,'90616'), +(5886,'86660'), +(5887,'99897'), +(5888,'23629'), +(5889,'86860'), +(5890,'91710'), +(5891,'86500'), +(5892,'38327'), +(5893,'96151'), +(5894,'99734'), +(5895,'86807'), +(5896,'87677'), +(5897,'98559'), +(5898,'38479'), +(5899,'38448'), +(5900,'86920'), +(5901,'86456'), +(5902,'91564'), +(5903,'86391'), +(5904,'38836'), +(5905,'98667'), +(5906,'86956'), +(5907,'29456'), +(5908,'38462'), +(5909,'91093'), +(5910,'86674'), +(5911,'91804'), +(5912,'91166'), +(5913,'99095'), +(5914,'86949'), +(5915,'91080'), +(5916,'67737'), +(5917,'26683'), +(5918,'79362'), +(5919,'58849'), +(5920,'77933'), +(5921,'77694'), +(5922,'49492'), +(5923,'55545'), +(5924,'79688'), +(5925,'26340'), +(5926,'67729'), +(5927,'55457'), +(5928,'57399'), +(5929,'49134'), +(5930,'59269'), +(5931,'77839'), +(5932,'79271'), +(5933,'65549'), +(5934,'65343'), +(5935,'79875'), +(5936,'74747'), +(5937,'36286'), +(5938,'30926'), +(5939,'73095'), +(5940,'97791'), +(5941,'30900'), +(5942,'74653'), +(5943,'37127'), +(5944,'67598'), +(5945,'67159'), +(5946,'76776'), +(5947,'67599'), +(5948,'67595'), +(5949,'35687'), +(5950,'67585'), +(5951,'67245'), +(5952,'67133'), +(5953,'55246'), +(5954,'67578'), +(5955,'79805'), +(5956,'82433'), +(5957,'91356'), +(5958,'91359'), +(5959,'91177'), +(5960,'99438'), +(5961,'82441'), +(5962,'82216'), +(5963,'06543'), +(5964,'82234'), +(5965,'23996'), +(5966,'95349'), +(5967,'39340'), +(5968,'91239'), +(5969,'23972'), +(5970,'82538'), +(5971,'91235'), +(5972,'92283'), +(5973,'06648'), +(5974,'07343'), +(5975,'81479'), +(5976,'85119'), +(5977,'80797'), +(5978,'82008'), +(5979,'07774'), +(5980,'39124'), +(5981,'84072'), +(5982,'95188'), +(5983,'95478'), +(5984,'06122'), +(5985,'95168'), +(5986,'84079'), +(5987,'93186'), +(5988,'92702'), +(5989,'06688'), +(5990,'18059'), +(5991,'83064'), +(5992,'93047'), +(5993,'92551'), +(5994,'04435'), +(5995,'83547'), +(5996,'17209'), +(5997,'06749'), +(5998,'08485'), +(5999,'18190'), +(6000,'04519'), +(6001,'04177'), +(6002,'93199'), +(6003,'84559'), +(6004,'17194'), +(6005,'08248'), +(6006,'04288'), +(6007,'06886'), +(6008,'04654'), +(6009,'84529'), +(6010,'17237'), +(6011,'09122'), +(6012,'14624'), +(6013,'94491'), +(6014,'94547'), +(6015,'09603'), +(6016,'14513'), +(6017,'13465'), +(6018,'10717'), +(6019,'09638'), +(6020,'10779'), +(6021,'01612'), +(6022,'17491'), +(6023,'12051'), +(6024,'86825'), +(6025,'98663'), +(6026,'96106'), +(6027,'38173'), +(6028,'86744'), +(6029,'23883'), +(6030,'91719'), +(6031,'23626'), +(6032,'90579'), +(6033,'91757'), +(6034,'91097'), +(6035,'86700'), +(6036,'38889'), +(6037,'29465'), +(6038,'38471'), +(6039,'91091'), +(6040,'90522'), +(6041,'91187'), +(6042,'29479'), +(6043,'19249'), +(6044,'96155'), +(6045,'13088'), +(6046,'12489'), +(6047,'12627'), +(6048,'01454'), +(6049,'01796'), +(6050,'01829'), +(6051,'01996'), +(6052,'03044'), +(6053,'03197'), +(6054,'15232'), +(6055,'52070'), +(6056,'54619'), +(6057,'52224'), +(6058,'47589'), +(6059,'47627'), +(6060,'52428'), +(6061,'54668'), +(6062,'46419'), +(6063,'41238'), +(6064,'54634'), +(6065,'54294'), +(6066,'54296'), +(6067,'47228'), +(6068,'54320'), +(6069,'53919'), +(6070,'40210'), +(6071,'40211'), +(6072,'45472'), +(6073,'48712'), +(6074,'45131'), +(6075,'54486'), +(6076,'42329'), +(6077,'48739'), +(6078,'42651'), +(6079,'45661'), +(6080,'26725'), +(6081,'56829'), +(6082,'73037'), +(6083,'73102'), +(6084,'74417'), +(6085,'74542'), +(6086,'22589'), +(6087,'97265'), +(6088,'21149'), +(6089,'88444'), +(6090,'37215'), +(6091,'21266'), +(6092,'37154'), +(6093,'22527'), +(6094,'21077'), +(6095,'37077'), +(6096,'97255'), +(6097,'36414'), +(6098,'97253'), +(6099,'20249'), +(6100,'21438'), +(6101,'22177'), +(6102,'22111'), +(6103,'24145'), +(6104,'97720'), +(6105,'22045'), +(6106,'31226'), +(6107,'36469'), +(6108,'74579'), +(6109,'89294'), +(6110,'38271'), +(6111,'37359'), +(6112,'97711'), +(6113,'99976'), +(6114,'98597'), +(6115,'89335'), +(6116,'23869'), +(6117,'97469'), +(6118,'23843'), +(6119,'36456'), +(6120,'97353'), +(6121,'22927'), +(6122,'21391'), +(6123,'38275'), +(6124,'38707'), +(6125,'86742'), +(6126,'38179'), +(6127,'96157'), +(6128,'98593'), +(6129,'87745'), +(6130,'89438'), +(6131,'91717'), +(6132,'76131'), +(6133,'76359'), +(6134,'76297'), +(6135,'78078'), +(6136,'78667'), +(6137,'68229'), +(6138,'75328'), +(6139,'64297'), +(6140,'69226'), +(6141,'72202'), +(6142,'60389'), +(6143,'28239'), +(6144,'75438'), +(6145,'63071'), +(6146,'78583'), +(6147,'31606'), +(6148,'78601'), +(6149,'35447'), +(6150,'33184'), +(6151,'74924'), +(6152,'78357'), +(6153,'63791'), +(6154,'64747'), +(6155,'71063'), +(6156,'25715'), +(6157,'70563'), +(6158,'74080'), +(6159,'31855'), +(6160,'74254'), +(6161,'25872'), +(6162,'25887'), +(6163,'70188'), +(6164,'24992'), +(6165,'74229'), +(6166,'24997'), +(6167,'72622'), +(6168,'88719'), +(6169,'31848'), +(6170,'34225'), +(6171,'34576'), +(6172,'88693'), +(6173,'31868'), +(6174,'27383'), +(6175,'59069'), +(6176,'57572'), +(6177,'55543'), +(6178,'67677'), +(6179,'79102'), +(6180,'79199'), +(6181,'57567'), +(6182,'59755'), +(6183,'49692'), +(6184,'49082'), +(6185,'57074'), +(6186,'79856'), +(6187,'59889'), +(6188,'66879'), +(6189,'44532'), +(6190,'59192'), +(6191,'56341'), +(6192,'48151'), +(6193,'56276'), +(6194,'79597'), +(6195,'51702'), +(6196,'79639'), +(6197,'67706'), +(6198,'57636'), +(6199,'56133'), +(6200,'67707'), +(6201,'67661'), +(6202,'58791'), +(6203,'79650'), +(6204,'67821'), +(6205,'57439'), +(6206,'34119'), +(6207,'37627'), +(6208,'31020'), +(6209,'34260'), +(6210,'34359'), +(6211,'24882'), +(6212,'97842'), +(6213,'21635'), +(6214,'49191'), +(6215,'79853'), +(6216,'35794'), +(6217,'65606'), +(6218,'26127'), +(6219,'67592'), +(6220,'55128'), +(6221,'59597'), +(6222,'67550'), +(6223,'78144'), +(6224,'79787'), +(6225,'53560'), +(6226,'44892'), +(6227,'56294'), +(6228,'44379'), +(6229,'56330'), +(6230,'59379'), +(6231,'91796'), +(6232,'90408'), +(6233,'96242'), +(6234,'96279'), +(6235,'99428'), +(6236,'86668'), +(6237,'85122'), +(6238,'96361'), +(6239,'95490'), +(6240,'88448'), +(6241,'73342'), +(6242,'30982'), +(6243,'30179'), +(6244,'73527'), +(6245,'97772'), +(6246,'97274'), +(6247,'97990'), +(6248,'37297'), +(6249,'88178'), +(6250,'31079'), +(6251,'22459'), +(6252,'20355'), +(6253,'20146'), +(6254,'97294'), +(6255,'24254'), +(6256,'22083'), +(6257,'22415'), +(6258,'89275'), +(6259,'88457'), +(6260,'24111'), +(6261,'22049'), +(6262,'73460'), +(6263,'29328'), +(6264,'31188'), +(6265,'22395'), +(6266,'97523'), +(6267,'89522'), +(6268,'91628'), +(6269,'97537'), +(6270,'24223'), +(6271,'73450'), +(6272,'38274'), +(6273,'91592'), +(6274,'89362'), +(6275,'37431'), +(6276,'89350'), +(6277,'21524'), +(6278,'21337'), +(6279,'38116'), +(6280,'97486'), +(6281,'91522'), +(6282,'99998'), +(6283,'03058'), +(6284,'15328'), +(6285,'02748'), +(6286,'49201'), +(6287,'26349'), +(6288,'77709'), +(6289,'76477'), +(6290,'67593'), +(6291,'67454'), +(6292,'57319'), +(6293,'55129'), +(6294,'79877'), +(6295,'78112'), +(6296,'76771'), +(6297,'27793'), +(6298,'76135'), +(6299,'76706'), +(6300,'25591'), +(6301,'24879'), +(6302,'30826'), +(6303,'37643'), +(6304,'88524'), +(6305,'25590'), +(6306,'74545'), +(6307,'74638'), +(6308,'89597'), +(6309,'25492'), +(6310,'79695'), +(6311,'65366'), +(6312,'79736'), +(6313,'77770'), +(6314,'55599'), +(6315,'65329'), +(6316,'67317'), +(6317,'65555'), +(6318,'48149'), +(6319,'26901'), +(6320,'48153'), +(6321,'49509'), +(6322,'79599'), +(6323,'49477'), +(6324,'67735'), +(6325,'67659'), +(6326,'56235'), +(6327,'67663'), +(6328,'57489'), +(6329,'51643'), +(6330,'51545'), +(6331,'55627'), +(6332,'26835'), +(6333,'67756'), +(6334,'67745'), +(6335,'61389'), +(6336,'35649'), +(6337,'68199'), +(6338,'76337'), +(6339,'27639'), +(6340,'27628'), +(6341,'76689'), +(6342,'68809'), +(6343,'76707'), +(6344,'64319'), +(6345,'69123'), +(6346,'27574'), +(6347,'72348'), +(6348,'60329'), +(6349,'33104'), +(6350,'25867'), +(6351,'78234'), +(6352,'69517'), +(6353,'64807'), +(6354,'64401'), +(6355,'75392'), +(6356,'25923'), +(6357,'28279'), +(6358,'28359'), +(6359,'25764'), +(6360,'21762'), +(6361,'61209'), +(6362,'74930'), +(6363,'63457'), +(6364,'64720'), +(6365,'78597'), +(6366,'28870'), +(6367,'71088'), +(6368,'31613'), +(6369,'63811'), +(6370,'25770'), +(6371,'70771'), +(6372,'71732'), +(6373,'74821'), +(6374,'71111'), +(6375,'34466'), +(6376,'31609'), +(6377,'63776'), +(6378,'25727'), +(6379,'74382'), +(6380,'70184'), +(6381,'88690'), +(6382,'72654'), +(6383,'31698'), +(6384,'25554'), +(6385,'71729'), +(6386,'73770'), +(6387,'97904'), +(6388,'24850'), +(6389,'37619'), +(6390,'39317'), +(6391,'18198'), +(6392,'93059'), +(6393,'07957'), +(6394,'06711'), +(6395,'95666'), +(6396,'83567'), +(6397,'83123'), +(6398,'14789'), +(6399,'04107'), +(6400,'08236'), +(6401,'04571'), +(6402,'14798'), +(6403,'08058'), +(6404,'08393'), +(6405,'94356'), +(6406,'83376'), +(6407,'04849'), +(6408,'08373'), +(6409,'94377'), +(6410,'84576'), +(6411,'09350'), +(6412,'84508'), +(6413,'83317'), +(6414,'09249'), +(6415,'93485'), +(6416,'84389'), +(6417,'09468'), +(6418,'83457'), +(6419,'09392'), +(6420,'17235'), +(6421,'14473'), +(6422,'94264'), +(6423,'13581'), +(6424,'17087'), +(6425,'10585'), +(6426,'10783'), +(6427,'10969'), +(6428,'10119'), +(6429,'41379'), +(6430,'52062'), +(6431,'41334'), +(6432,'54616'), +(6433,'54675'), +(6434,'47665'), +(6435,'54332'), +(6436,'53894'), +(6437,'47441'), +(6438,'66798'), +(6439,'54293'), +(6440,'46485'), +(6441,'50374'), +(6442,'49824'), +(6443,'47169'), +(6444,'47051'), +(6445,'50827'), +(6446,'53505'), +(6447,'46359'), +(6448,'66113'), +(6449,'51105'), +(6450,'45134'), +(6451,'42327'), +(6452,'55777'), +(6453,'45731'), +(6454,'66386'), +(6455,'48249'), +(6456,'55765'), +(6457,'44653'), +(6458,'48629'), +(6459,'42285'), +(6460,'91740'), +(6461,'23617'), +(6462,'86863'), +(6463,'91448'), +(6464,'23554'), +(6465,'29378'), +(6466,'96172'), +(6467,'91560'), +(6468,'29594'), +(6469,'86368'), +(6470,'38446'), +(6471,'38464'), +(6472,'86672'), +(6473,'86165'), +(6474,'86163'), +(6475,'38372'), +(6476,'86510'), +(6477,'29416'), +(6478,'94556'), +(6479,'16341'), +(6480,'12619'), +(6481,'94164'), +(6482,'16259'), +(6483,'06642'), +(6484,'82544'), +(6485,'80997'), +(6486,'82065'), +(6487,'96365'), +(6488,'06311'), +(6489,'39606'), +(6490,'95511'), +(6491,'81476'), +(6492,'91289'), +(6493,'80798'), +(6494,'95493'), +(6495,'85625'), +(6496,'95183'), +(6497,'93164'), +(6498,'84076'), +(6499,'93195'), +(6500,'92711'), +(6501,'93138'), +(6502,'84427'), +(6503,'18147'), +(6504,'95685'), +(6505,'04626'), +(6506,'08412'), +(6507,'18311'), +(6508,'83233'), +(6509,'84187'), +(6510,'84155'), +(6511,'83370'), +(6512,'83236'), +(6513,'08237'), +(6514,'04319'), +(6515,'84565'), +(6516,'94315'), +(6517,'04451'), +(6518,'04824'), +(6519,'84503'), +(6520,'09376'), +(6521,'09306'), +(6522,'94527'), +(6523,'14656'), +(6524,'04886'), +(6525,'09127'), +(6526,'17091'), +(6527,'93474'), +(6528,'16727'), +(6529,'94571'), +(6530,'94249'), +(6531,'94541'), +(6532,'04931'), +(6533,'14193'), +(6534,'15806'), +(6535,'10623'), +(6536,'17268'), +(6537,'12157'), +(6538,'15827'), +(6539,'10117'), +(6540,'17392'), +(6541,'76307'), +(6542,'68782'), +(6543,'68167'), +(6544,'27612'), +(6545,'65843'), +(6546,'65760'), +(6547,'61381'), +(6548,'27259'), +(6549,'75179'), +(6550,'35457'), +(6551,'27624'), +(6552,'60316'), +(6553,'75242'), +(6554,'32549'), +(6555,'25842'), +(6556,'78564'), +(6557,'32545'), +(6558,'28357'), +(6559,'72365'), +(6560,'32657'), +(6561,'63165'), +(6562,'61130'), +(6563,'35315'), +(6564,'25797'), +(6565,'28876'), +(6566,'21789'), +(6567,'25795'), +(6568,'27318'), +(6569,'33034'), +(6570,'63931'), +(6571,'31629'), +(6572,'34613'), +(6573,'63571'), +(6574,'63925'), +(6575,'27283'), +(6576,'63808'), +(6577,'63607'), +(6578,'34582'), +(6579,'63934'), +(6580,'72555'), +(6581,'73728'), +(6582,'63619'), +(6583,'71737'), +(6584,'72636'), +(6585,'72539'), +(6586,'74626'), +(6587,'63639'), +(6588,'25560'), +(6589,'34639'), +(6590,'86926'), +(6591,'23747'), +(6592,'82386'), +(6593,'85111'), +(6594,'06556'), +(6595,'86565'), +(6596,'82319'), +(6597,'91233'), +(6598,'06313'), +(6599,'82067'), +(6600,'80638'), +(6601,'06347'), +(6602,'39116'), +(6603,'85402'), +(6604,'80799'), +(6605,'80801'), +(6606,'06420'), +(6607,'84089'), +(6608,'85551'), +(6609,'19370'), +(6610,'07819'), +(6611,'95176'), +(6612,'12437'), +(6613,'03249'), +(6614,'94051'), +(6615,'94146'), +(6616,'12587'), +(6617,'94118'), +(6618,'12589'), +(6619,'01990'), +(6620,'01067'), +(6621,'01129'), +(6622,'01108'), +(6623,'01847'), +(6624,'01877'), +(6625,'01844'), +(6626,'03042'), +(6627,'02794'), +(6628,'02785'), +(6629,'57632'), +(6630,'44265'), +(6631,'55629'), +(6632,'56584'), +(6633,'66849'), +(6634,'56317'), +(6635,'56170'), +(6636,'55496'), +(6637,'48653'), +(6638,'45772'), +(6639,'55779'), +(6640,'26524'), +(6641,'42389'), +(6642,'56253'), +(6643,'58456'), +(6644,'44575'), +(6645,'56869'), +(6646,'66869'), +(6647,'26556'), +(6648,'66882'), +(6649,'30669'), +(6650,'89191'), +(6651,'97783'), +(6652,'73565'), +(6653,'30173'), +(6654,'21261'), +(6655,'73568'), +(6656,'89608'), +(6657,'73329'), +(6658,'97957'), +(6659,'30539'), +(6660,'97234'), +(6661,'88161'), +(6662,'97727'), +(6663,'97074'), +(6664,'89194'), +(6665,'29320'), +(6666,'89250'), +(6667,'22339'), +(6668,'88486'), +(6669,'97318'), +(6670,'21423'), +(6671,'37199'), +(6672,'97616'), +(6673,'89346'), +(6674,'22941'), +(6675,'24226'), +(6676,'97422'), +(6677,'37351'), +(6678,'91605'), +(6679,'38268'), +(6680,'98574'), +(6681,'89352'), +(6682,'89429'), +(6683,'89431'), +(6684,'38226'), +(6685,'21436'), +(6686,'87488'), +(6687,'98596'), +(6688,'87634'), +(6689,'99820'), +(6690,'91599'), +(6691,'91744'), +(6692,'89344'), +(6693,'38304'), +(6694,'97494'), +(6695,'89361'), +(6696,'86868'), +(6697,'23684'), +(6698,'87668'), +(6699,'29590'), +(6700,'86494'), +(6701,'87675'), +(6702,'23627'), +(6703,'91475'), +(6704,'91729'), +(6705,'91723'), +(6706,'86875'), +(6707,'91085'), +(6708,'96164'), +(6709,'86679'), +(6710,'86152'), +(6711,'06502'), +(6712,'99634'), +(6713,'96117'), +(6714,'96528'), +(6715,'90766'), +(6716,'23777'), +(6717,'19243'), +(6718,'86453'), +(6719,'91301'), +(6720,'23948'), +(6721,'52078'), +(6722,'47638'), +(6723,'52393'), +(6724,'46509'), +(6725,'54612'), +(6726,'41066'), +(6727,'47839'), +(6728,'41352'), +(6729,'53947'), +(6730,'54574'), +(6731,'54529'), +(6732,'46569'), +(6733,'50354'), +(6734,'40885'), +(6735,'40231'), +(6736,'66822'), +(6737,'66346'), +(6738,'45470'), +(6739,'45357'), +(6740,'46236'), +(6741,'40723'), +(6742,'54487'), +(6743,'45239'), +(6744,'50679'), +(6745,'53859'), +(6746,'66123'), +(6747,'51149'), +(6748,'42657'), +(6749,'66271'), +(6750,'34314'), +(6751,'73650'), +(6752,'74639'), +(6753,'88373'), +(6754,'37639'), +(6755,'73635'), +(6756,'34125'), +(6757,'30823'), +(6758,'88422'), +(6759,'74632'), +(6760,'74676'), +(6761,'88142'), +(6762,'79206'), +(6763,'67734'), +(6764,'48155'), +(6765,'49624'), +(6766,'26409'), +(6767,'79291'), +(6768,'56206'), +(6769,'79282'), +(6770,'79219'), +(6771,'26689'), +(6772,'56335'), +(6773,'79618'), +(6774,'79111'), +(6775,'77972'), +(6776,'55593'), +(6777,'59227'), +(6778,'77876'), +(6779,'67146'), +(6780,'76870'), +(6781,'77830'), +(6782,'77793'), +(6783,'55268'), +(6784,'65527'), +(6785,'65207'), +(6786,'25980'), +(6787,'67582'), +(6788,'76774'), +(6789,'79801'), +(6790,'78713'), +(6791,'67471'), +(6792,'59457'), +(6793,'49593'), +(6794,'67319'), +(6795,'67304'), +(6796,'65604'), +(6797,'67466'), +(6798,'77716'), +(6799,'25488'), +(6800,'25337'), +(6801,'24354'), +(6802,'89188'), +(6803,'97797'), +(6804,'88433'), +(6805,'24367'), +(6806,'37124'), +(6807,'97297'), +(6808,'24395'), +(6809,'74423'), +(6810,'22549'), +(6811,'21079'), +(6812,'97072'), +(6813,'97725'), +(6814,'24539'), +(6815,'97218'), +(6816,'89233'), +(6817,'97440'), +(6818,'24626'), +(6819,'24229'), +(6820,'21445'), +(6821,'24159'), +(6822,'23863'), +(6823,'21441'), +(6824,'29342'), +(6825,'87751'), +(6826,'22926'), +(6827,'97506'), +(6828,'38272'), +(6829,'23829'), +(6830,'87439'), +(6831,'89447'), +(6832,'22961'), +(6833,'87739'), +(6834,'99974'), +(6835,'91567'), +(6836,'91443'), +(6837,'22959'), +(6838,'87653'), +(6839,'64584'), +(6840,'65795'), +(6841,'68165'), +(6842,'61350'), +(6843,'68259'), +(6844,'32369'), +(6845,'72213'), +(6846,'60529'), +(6847,'68535'), +(6848,'64342'), +(6849,'78266'), +(6850,'27711'), +(6851,'32791'), +(6852,'33098'), +(6853,'78262'), +(6854,'69250'), +(6855,'61138'), +(6856,'34516'), +(6857,'63179'), +(6858,'28205'), +(6859,'25821'), +(6860,'74374'), +(6861,'25870'), +(6862,'28355'), +(6863,'78567'), +(6864,'25917'), +(6865,'21772'), +(6866,'63796'), +(6867,'25858'), +(6868,'71701'), +(6869,'70197'), +(6870,'63843'), +(6871,'36325'), +(6872,'72820'), +(6873,'70469'), +(6874,'25855'), +(6875,'63839'), +(6876,'63920'), +(6877,'63856'), +(6878,'24983'), +(6879,'63927'), +(6880,'72649'), +(6881,'72531'), +(6882,'24988'), +(6883,'31555'), +(6884,'36280'), +(6885,'25569'), +(6886,'73277'), +(6887,'49638'), +(6888,'55450'), +(6889,'79194'), +(6890,'77749'), +(6891,'48231'), +(6892,'76857'), +(6893,'79286'), +(6894,'65624'), +(6895,'65589'), +(6896,'77704'), +(6897,'65629'), +(6898,'79837'), +(6899,'65554'), +(6900,'65550'), +(6901,'49179'), +(6902,'65396'), +(6903,'77740'), +(6904,'26123'), +(6905,'76456'), +(6906,'35685'), +(6907,'35683'), +(6908,'49324'), +(6909,'26931'), +(6910,'77773'), +(6911,'61276'), +(6912,'76597'), +(6913,'67065'), +(6914,'36154'), +(6915,'97906'), +(6916,'24991'), +(6917,'97846'), +(6918,'88085'), +(6919,'25551'), +(6920,'36391'), +(6921,'97837'), +(6922,'97799'), +(6923,'97264'), +(6924,'51709'), +(6925,'44141'), +(6926,'66509'), +(6927,'56291'), +(6928,'56076'), +(6929,'66953'), +(6930,'79589'), +(6931,'49699'), +(6932,'56753'), +(6933,'56598'), +(6934,'26605'), +(6935,'06484'), +(6936,'82284'), +(6937,'91364'), +(6938,'91322'), +(6939,'07407'), +(6940,'96268'), +(6941,'91349'), +(6942,'39624'), +(6943,'91327'), +(6944,'85049'), +(6945,'82340'), +(6946,'91245'), +(6947,'82152'), +(6948,'91282'), +(6949,'93348'), +(6950,'85617'), +(6951,'85469'), +(6952,'39319'), +(6953,'07545'), +(6954,'84069'), +(6955,'18055'), +(6956,'93173'), +(6957,'83134'), +(6958,'84169'), +(6959,'84171'), +(6960,'93170'), +(6961,'83564'), +(6962,'83536'), +(6963,'92431'), +(6964,'08451'), +(6965,'93086'), +(6966,'04157'), +(6967,'93191'), +(6968,'08056'), +(6969,'92693'), +(6970,'83308'), +(6971,'93488'), +(6972,'93413'), +(6973,'94365'), +(6974,'84323'), +(6975,'09322'), +(6976,'94354'), +(6977,'83362'), +(6978,'08340'), +(6979,'09419'), +(6980,'04861'), +(6981,'94542'), +(6982,'14974'), +(6983,'94496'), +(6984,'94535'), +(6985,'94148'), +(6986,'14195'), +(6987,'14167'), +(6988,'09599'), +(6989,'14059'), +(6990,'94518'), +(6991,'13467'), +(6992,'10553'), +(6993,'94152'), +(6994,'12053'), +(6995,'54536'), +(6996,'45892'), +(6997,'45879'), +(6998,'53175'), +(6999,'53113'), +(7000,'48607'), +(7001,'53173'), +(7002,'42107'), +(7003,'42855'), +(7004,'53797'), +(7005,'44628'), +(7006,'44803'), +(7007,'56659'), +(7008,'47652'), +(7009,'52457'), +(7010,'47495'), +(7011,'66780'), +(7012,'41472'), +(7013,'54314'), +(7014,'47167'), +(7015,'40233'), +(7016,'41539'), +(7017,'45145'), +(7018,'66133'), +(7019,'85057'), +(7020,'99510'), +(7021,'85304'), +(7022,'83646'), +(7023,'83623'), +(7024,'80992'), +(7025,'95339'), +(7026,'85126'), +(7027,'07806'), +(7028,'93333'), +(7029,'85406'), +(7030,'85445'), +(7031,'85417'), +(7032,'95191'), +(7033,'18239'), +(7034,'06388'), +(7035,'06369'), +(7036,'95508'), +(7037,'06120'), +(7038,'93342'), +(7039,'98587'), +(7040,'38102'), +(7041,'38524'), +(7042,'23560'), +(7043,'38700'), +(7044,'91743'), +(7045,'87659'), +(7046,'38170'), +(7047,'96170'), +(7048,'23744'), +(7049,'23569'), +(7050,'86983'), +(7051,'21371'), +(7052,'91086'), +(7053,'98693'), +(7054,'96049'), +(7055,'38382'), +(7056,'86694'), +(7057,'86931'), +(7058,'82409'), +(7059,'96231'), +(7060,'90765'), +(7061,'99638'), +(7062,'82380'), +(7063,'10369'), +(7064,'94078'), +(7065,'12555'), +(7066,'01156'), +(7067,'01445'), +(7068,'15748'), +(7069,'01809'), +(7070,'01237'), +(7071,'17321'), +(7072,'02959'), +(7073,'02923'), +(7074,'85664'), +(7075,'92720'), +(7076,'18276'), +(7077,'93080'), +(7078,'93128'), +(7079,'07552'), +(7080,'93158'), +(7081,'84416'), +(7082,'95173'), +(7083,'84439'), +(7084,'07546'), +(7085,'83022'), +(7086,'84051'), +(7087,'06849'), +(7088,'04178'), +(7089,'04613'), +(7090,'83555'), +(7091,'83129'), +(7092,'08427'), +(7093,'04229'), +(7094,'04155'), +(7095,'93099'), +(7096,'04103'), +(7097,'84494'), +(7098,'93492'), +(7099,'94359'), +(7100,'09355'), +(7101,'84307'), +(7102,'93468'), +(7103,'06917'), +(7104,'14547'), +(7105,'08352'), +(7106,'09380'), +(7107,'09390'), +(7108,'13595'), +(7109,'01594'), +(7110,'13505'), +(7111,'17498'), +(7112,'04938'), +(7113,'94163'), +(7114,'09548'), +(7115,'12047'), +(7116,'94032'), +(7117,'85309'), +(7118,'85101'), +(7119,'95367'), +(7120,'92345'), +(7121,'82041'), +(7122,'39130'), +(7123,'39120'), +(7124,'80539'), +(7125,'91281'), +(7126,'39106'), +(7127,'81827'), +(7128,'83626'), +(7129,'07619'), +(7130,'19406'), +(7131,'85416'), +(7132,'85410'), +(7133,'18211'), +(7134,'16928'), +(7135,'06721'), +(7136,'13129'), +(7137,'13053'), +(7138,'12681'), +(7139,'12621'), +(7140,'01896'), +(7141,'03226'), +(7142,'17328'), +(7143,'02694'), +(7144,'02953'), +(7145,'02906'), +(7146,'79685'), +(7147,'57080'), +(7148,'57368'), +(7149,'77790'), +(7150,'65553'), +(7151,'25364'), +(7152,'36043'), +(7153,'36199'), +(7154,'74405'), +(7155,'29323'), +(7156,'30519'), +(7157,'30657'), +(7158,'36129'), +(7159,'36205'), +(7160,'24259'), +(7161,'31319'), +(7162,'37318'), +(7163,'37130'), +(7164,'89077'), +(7165,'24239'), +(7166,'31135'), +(7167,'24598'), +(7168,'21217'), +(7169,'37589'), +(7170,'22417'), +(7171,'24244'), +(7172,'87538'), +(7173,'73430'), +(7174,'24106'), +(7175,'89264'), +(7176,'24103'), +(7177,'97464'), +(7178,'31185'), +(7179,'24211'), +(7180,'91465'), +(7181,'73485'), +(7182,'89561'), +(7183,'89437'), +(7184,'89364'), +(7185,'86381'), +(7186,'23818'), +(7187,'37355'), +(7188,'21395'), +(7189,'21382'), +(7190,'29587'), +(7191,'97631'), +(7192,'87484'), +(7193,'91474'), +(7194,'86657'), +(7195,'29439'), +(7196,'86938'), +(7197,'82496'), +(7198,'90596'), +(7199,'86669'), +(7200,'91358'), +(7201,'29488'), +(7202,'91207'), +(7203,'99439'), +(7204,'29484'), +(7205,'82404'), +(7206,'99423'), +(7207,'35239'), +(7208,'35579'), +(7209,'72280'), +(7210,'35576'), +(7211,'35232'), +(7212,'33617'), +(7213,'72178'), +(7214,'35581'), +(7215,'28779'), +(7216,'25826'), +(7217,'35108'), +(7218,'63263'), +(7219,'61352'), +(7220,'78194'), +(7221,'76703'), +(7222,'69120'), +(7223,'35516'), +(7224,'78665'), +(7225,'69234'), +(7226,'72356'), +(7227,'78604'), +(7228,'75223'), +(7229,'31600'), +(7230,'32427'), +(7231,'78570'), +(7232,'72145'), +(7233,'74867'), +(7234,'63505'), +(7235,'32683'), +(7236,'69427'), +(7237,'24980'), +(7238,'63867'), +(7239,'21787'), +(7240,'70195'), +(7241,'74399'), +(7242,'70567'), +(7243,'25885'), +(7244,'27367'), +(7245,'70180'), +(7246,'70182'), +(7247,'72501'), +(7248,'74395'), +(7249,'70329'), +(7250,'71723'), +(7251,'34270'), +(7252,'74189'), +(7253,'21710'), +(7254,'34305'), +(7255,'74251'), +(7256,'63928'), +(7257,'71543'), +(7258,'26802'), +(7259,'49809'), +(7260,'53578'), +(7261,'51766'), +(7262,'44369'), +(7263,'48431'), +(7264,'45891'), +(7265,'48531'), +(7266,'53844'), +(7267,'53111'), +(7268,'45549'), +(7269,'45665'), +(7270,'56736'), +(7271,'45711'), +(7272,'44147'), +(7273,'87650'), +(7274,'96132'), +(7275,'86450'), +(7276,'38126'), +(7277,'97475'), +(7278,'21514'), +(7279,'86637'), +(7280,'91595'), +(7281,'87666'), +(7282,'86759'), +(7283,'91746'), +(7284,'29588'), +(7285,'86650'), +(7286,'86856'), +(7287,'86482'), +(7288,'91575'), +(7289,'19217'), +(7290,'99765'), +(7291,'86989'), +(7292,'99334'), +(7293,'29459'), +(7294,'86947'), +(7295,'98701'), +(7296,'91334'), +(7297,'82269'), +(7298,'86911'), +(7299,'29482'), +(7300,'86941'), +(7301,'47559'), +(7302,'52146'), +(7303,'41836'), +(7304,'52459'), +(7305,'41239'), +(7306,'52399'), +(7307,'54306'), +(7308,'54313'), +(7309,'26757'), +(7310,'54318'), +(7311,'40549'), +(7312,'47249'), +(7313,'47138'), +(7314,'47279'), +(7315,'40589'), +(7316,'50829'), +(7317,'50321'), +(7318,'42579'), +(7319,'50389'), +(7320,'51143'), +(7321,'48619'), +(7322,'45139'), +(7323,'71554'), +(7324,'34117'), +(7325,'97828'), +(7326,'97922'), +(7327,'24768'), +(7328,'89607'), +(7329,'97292'), +(7330,'48143'), +(7331,'57639'), +(7332,'58636'), +(7333,'67311'), +(7334,'76473'), +(7335,'49401'), +(7336,'26129'), +(7337,'65203'), +(7338,'67161'), +(7339,'55296'), +(7340,'76571'), +(7341,'67071'), +(7342,'67112'), +(7343,'85661'), +(7344,'85461'), +(7345,'95700'), +(7346,'06132'), +(7347,'92729'), +(7348,'06130'), +(7349,'93077'), +(7350,'08606'), +(7351,'06188'), +(7352,'18119'), +(7353,'06780'), +(7354,'83550'), +(7355,'83026'), +(7356,'84184'), +(7357,'07985'), +(7358,'95703'), +(7359,'06809'), +(7360,'83128'), +(7361,'83112'), +(7362,'14827'), +(7363,'84137'), +(7364,'83209'), +(7365,'92697'), +(7366,'95695'), +(7367,'84453'), +(7368,'83346'), +(7369,'83371'), +(7370,'84339'), +(7371,'09328'), +(7372,'83458'), +(7373,'83334'), +(7374,'94362'), +(7375,'84547'), +(7376,'83454'), +(7377,'93473'), +(7378,'83367'), +(7379,'14913'), +(7380,'83486'), +(7381,'94250'), +(7382,'17219'), +(7383,'17111'), +(7384,'09244'), +(7385,'09113'), +(7386,'83395'), +(7387,'13583'), +(7388,'17094'), +(7389,'16792'), +(7390,'01619'), +(7391,'12161'), +(7392,'13355'), +(7393,'13089'), +(7394,'39167'), +(7395,'85716'), +(7396,'80809'), +(7397,'80336'), +(7398,'80333'), +(7399,'80937'), +(7400,'39118'), +(7401,'83708'), +(7402,'81737'), +(7403,'81735'), +(7404,'95192'), +(7405,'07616'), +(7406,'95469'), +(7407,'85356'), +(7408,'92676'), +(7409,'84094'), +(7410,'85667'), +(7411,'92242'), +(7412,'90425'), +(7413,'90459'), +(7414,'86559'), +(7415,'82256'), +(7416,'90552'), +(7417,'85229'), +(7418,'85123'), +(7419,'10317'), +(7420,'17390'), +(7421,'15566'), +(7422,'94110'), +(7423,'15859'), +(7424,'16248'), +(7425,'01994'), +(7426,'17454'), +(7427,'15234'), +(7428,'46446'), +(7429,'41366'), +(7430,'52396'), +(7431,'41199'), +(7432,'52349'), +(7433,'41517'), +(7434,'54311'), +(7435,'41515'), +(7436,'46414'), +(7437,'47226'), +(7438,'66709'), +(7439,'66265'), +(7440,'40883'), +(7441,'48599'), +(7442,'45326'), +(7443,'45257'), +(7444,'56575'), +(7445,'48429'), +(7446,'48282'), +(7447,'26904'), +(7448,'56154'), +(7449,'56072'), +(7450,'44329'), +(7451,'58566'), +(7452,'51467'), +(7453,'66399'), +(7454,'42103'), +(7455,'44651'), +(7456,'44793'), +(7457,'44809'), +(7458,'42277'), +(7459,'51789'), +(7460,'58332'), +(7461,'44149'), +(7462,'59939'), +(7463,'67166'), +(7464,'35080'), +(7465,'33415'), +(7466,'72226'), +(7467,'68163'), +(7468,'75335'), +(7469,'59929'), +(7470,'78054'), +(7471,'78056'), +(7472,'33611'), +(7473,'25863'), +(7474,'68723'), +(7475,'27570'), +(7476,'78187'), +(7477,'61191'), +(7478,'69231'), +(7479,'60308'), +(7480,'69126'), +(7481,'78606'), +(7482,'64658'), +(7483,'64846'), +(7484,'74889'), +(7485,'71299'), +(7486,'28865'), +(7487,'27249'), +(7488,'34477'), +(7489,'27339'), +(7490,'63512'), +(7491,'63500'), +(7492,'34454'), +(7493,'74397'), +(7494,'21770'), +(7495,'71032'), +(7496,'63755'), +(7497,'71101'), +(7498,'27333'), +(7499,'31683'), +(7500,'31547'), +(7501,'70597'), +(7502,'78462'), +(7503,'21732'), +(7504,'70736'), +(7505,'31552'), +(7506,'31636'), +(7507,'72574'), +(7508,'74243'), +(7509,'29664'), +(7510,'88048'), +(7511,'73666'), +(7512,'37603'), +(7513,'88400'), +(7514,'30449'), +(7515,'25421'), +(7516,'89614'), +(7517,'88410'), +(7518,'73569'), +(7519,'88437'), +(7520,'24647'), +(7521,'97996'), +(7522,'24644'), +(7523,'31139'), +(7524,'24649'), +(7525,'22761'), +(7526,'97283'), +(7527,'37287'), +(7528,'88484'), +(7529,'73572'), +(7530,'22455'), +(7531,'73563'), +(7532,'89179'), +(7533,'20259'), +(7534,'97286'), +(7535,'21439'), +(7536,'20099'), +(7537,'24628'), +(7538,'88459'), +(7539,'22149'), +(7540,'29565'), +(7541,'89176'), +(7542,'99817'), +(7543,'98590'), +(7544,'87766'), +(7545,'87545'), +(7546,'21521'), +(7547,'89423'), +(7548,'87435'), +(7549,'99986'), +(7550,'91578'), +(7551,'22964'), +(7552,'89356'), +(7553,'79591'), +(7554,'56340'), +(7555,'57589'), +(7556,'56191'), +(7557,'56237'), +(7558,'55430'), +(7559,'57537'), +(7560,'79341'), +(7561,'58809'), +(7562,'79224'), +(7563,'77974'), +(7564,'67826'), +(7565,'86741'), +(7566,'89420'), +(7567,'38302'), +(7568,'29579'), +(7569,'86865'), +(7570,'21398'), +(7571,'86497'), +(7572,'38556'), +(7573,'23909'), +(7574,'23568'), +(7575,'86681'), +(7576,'21369'), +(7577,'38473'), +(7578,'86986'), +(7579,'90617'), +(7580,'86156'), +(7581,'96052'), +(7582,'86916'), +(7583,'38461'), +(7584,'96450'), +(7585,'23743'), +(7586,'86703'), +(7587,'86415'), +(7588,'96489'), +(7589,'58710'), +(7590,'76846'), +(7591,'79299'), +(7592,'79289'), +(7593,'59229'), +(7594,'56459'), +(7595,'26219'), +(7596,'49170'), +(7597,'49205'), +(7598,'65346'), +(7599,'49084'), +(7600,'77784'), +(7601,'65344'), +(7602,'67147'), +(7603,'49163'), +(7604,'67149'), +(7605,'33829'), +(7606,'67134'), +(7607,'55131'), +(7608,'67259'), +(7609,'49356'), +(7610,'35619'), +(7611,'67583'), +(7612,'65474'), +(7613,'73274'), +(7614,'34376'), +(7615,'36103'), +(7616,'72537'), +(7617,'34326'), +(7618,'97855'), +(7619,'37632'), +(7620,'24816'), +(7621,'30827'), +(7622,'89613'), +(7623,'85567'), +(7624,'95615'), +(7625,'83539'), +(7626,'83533'), +(7627,'92717'), +(7628,'19395'), +(7629,'06861'), +(7630,'83512'), +(7631,'83137'), +(7632,'93177'), +(7633,'17213'), +(7634,'92526'), +(7635,'84478'), +(7636,'08060'), +(7637,'17166'), +(7638,'04328'), +(7639,'04552'), +(7640,'94351'), +(7641,'08132'), +(7642,'14662'), +(7643,'08141'), +(7644,'93483'), +(7645,'94419'), +(7646,'84579'), +(7647,'94375'), +(7648,'94336'), +(7649,'18513'), +(7650,'84332'), +(7651,'94262'), +(7652,'94560'), +(7653,'09123'), +(7654,'83404'), +(7655,'94539'), +(7656,'17121'), +(7657,'09471'), +(7658,'16798'), +(7659,'09432'), +(7660,'94530'), +(7661,'94508'), +(7662,'94575'), +(7663,'94060'), +(7664,'09526'), +(7665,'13627'), +(7666,'12205'), +(7667,'14197'), +(7668,'94154'), +(7669,'10785'), +(7670,'10967'), +(7671,'85055'), +(7672,'91247'), +(7673,'19067'), +(7674,'80686'), +(7675,'80637'), +(7676,'83674'), +(7677,'92259'), +(7678,'07929'), +(7679,'81677'), +(7680,'95119'), +(7681,'81929'), +(7682,'85521'), +(7683,'85737'), +(7684,'85640'), +(7685,'85653'), +(7686,'83700'), +(7687,'85658'), +(7688,'85462'), +(7689,'92274'), +(7690,'95032'), +(7691,'07955'), +(7692,'96237'), +(7693,'96247'), +(7694,'82285'), +(7695,'91369'), +(7696,'29472'), +(7697,'86556'), +(7698,'29476'), +(7699,'91346'), +(7700,'86562'), +(7701,'99427'), +(7702,'91227'), +(7703,'96337'), +(7704,'86558'), +(7705,'07333'), +(7706,'23896'), +(7707,'38104'), +(7708,'91722'), +(7709,'99706'), +(7710,'99867'), +(7711,'29379'), +(7712,'23879'), +(7713,'23717'), +(7714,'86502'), +(7715,'86405'), +(7716,'86678'), +(7717,'23738'), +(7718,'86972'), +(7719,'99090'), +(7720,'86688'), +(7721,'91792'), +(7722,'86159'), +(7723,'86167'), +(7724,'96253'), +(7725,'19205'), +(7726,'91096'), +(7727,'90763'), +(7728,'90449'), +(7729,'98724'), +(7730,'12055'), +(7731,'01558'), +(7732,'10365'), +(7733,'17509'), +(7734,'13051'), +(7735,'01762'), +(7736,'15754'), +(7737,'16227'), +(7738,'03185'), +(7739,'02692'), +(7740,'02782'), +(7741,'02739'), +(7742,'67580'), +(7743,'68305'), +(7744,'65451'), +(7745,'61267'), +(7746,'76356'), +(7747,'76327'), +(7748,'64546'), +(7749,'27607'), +(7750,'75305'), +(7751,'79798'), +(7752,'75339'), +(7753,'25924'), +(7754,'33699'), +(7755,'65933'), +(7756,'27578'), +(7757,'64293'), +(7758,'69207'), +(7759,'78250'), +(7760,'33181'), +(7761,'27474'), +(7762,'72186'), +(7763,'72351'), +(7764,'74918'), +(7765,'78573'), +(7766,'69253'), +(7767,'28219'), +(7768,'61200'), +(7769,'74909'), +(7770,'71126'), +(7771,'32760'), +(7772,'35410'), +(7773,'72361'), +(7774,'75031'), +(7775,'74937'), +(7776,'71287'), +(7777,'27254'), +(7778,'88631'), +(7779,'34513'), +(7780,'74869'), +(7781,'25746'), +(7782,'72116'), +(7783,'74928'), +(7784,'72474'), +(7785,'72514'), +(7786,'63743'), +(7787,'63911'), +(7788,'25864'), +(7789,'74834'), +(7790,'70173'), +(7791,'71711'), +(7792,'72805'), +(7793,'74850'), +(7794,'31535'), +(7795,'34621'), +(7796,'24899'), +(7797,'31787'), +(7798,'24963'), +(7799,'97833'), +(7800,'73240'), +(7801,'24870'), +(7802,'88521'), +(7803,'24885'), +(7804,'41068'), +(7805,'54610'), +(7806,'47239'), +(7807,'47259'), +(7808,'41466'), +(7809,'66793'), +(7810,'53534'), +(7811,'53539'), +(7812,'50933'), +(7813,'46242'), +(7814,'66126'), +(7815,'49828'), +(7816,'51373'), +(7817,'42553'), +(7818,'45881'), +(7819,'22880'), +(7820,'97857'), +(7821,'21279'), +(7822,'97225'), +(7823,'24793'), +(7824,'31028'), +(7825,'74544'), +(7826,'37213'), +(7827,'97268'), +(7828,'73571'), +(7829,'97082'), +(7830,'24623'), +(7831,'88299'), +(7832,'37073'), +(7833,'97535'), +(7834,'22301'), +(7835,'73491'), +(7836,'22307'), +(7837,'98634'), +(7838,'37434'), +(7839,'36466'), +(7840,'37281'), +(7841,'31241'), +(7842,'89359'), +(7843,'38709'), +(7844,'22967'), +(7845,'29556'), +(7846,'87719'), +(7847,'96152'), +(7848,'86747'), +(7849,'67722'), +(7850,'79280'), +(7851,'58739'), +(7852,'77746'), +(7853,'59071'), +(7854,'79104'), +(7855,'59514'), +(7856,'77799'), +(7857,'77723'), +(7858,'49080'), +(7859,'26316'), +(7860,'65627'), +(7861,'49685'), +(7862,'26131'), +(7863,'78141'), +(7864,'76474'), +(7865,'67378'), +(7866,'76476'), +(7867,'35638'), +(7868,'67459'), +(7869,'33334'), +(7870,'65817'), +(7871,'76599'), +(7872,'76275'), +(7873,'25992'), +(7874,'65779'), +(7875,'27804'), +(7876,'97907'), +(7877,'74744'), +(7878,'88069'), +(7879,'88079'), +(7880,'73642'), +(7881,'21649'), +(7882,'31008'), +(7883,'73345'), +(7884,'51427'), +(7885,'53129'), +(7886,'56727'), +(7887,'56651'), +(7888,'51503'), +(7889,'66453'), +(7890,'45525'), +(7891,'55743'), +(7892,'53773'), +(7893,'79592'), +(7894,'58644'), +(7895,'55571'), +(7896,'49637'), +(7897,'56428'), +(7898,'26632'), +(7899,'49811'), +(7900,'56254'), +(7901,'66904'), +(7902,'58135'), +(7903,'67746'), +(7904,'26487'), +(7905,'67749'), +(7906,'83730'), +(7907,'83553'), +(7908,'92546'), +(7909,'08547'), +(7910,'06846'), +(7911,'04509'), +(7912,'92447'), +(7913,'84431'), +(7914,'84544'), +(7915,'08267'), +(7916,'08064'), +(7917,'14776'), +(7918,'08112'), +(7919,'17179'), +(7920,'04668'), +(7921,'08118'), +(7922,'17159'), +(7923,'09481'), +(7924,'14548'), +(7925,'18510'), +(7926,'09112'), +(7927,'09111'), +(7928,'09128'), +(7929,'09661'), +(7930,'09429'), +(7931,'94474'), +(7932,'12279'), +(7933,'12103'), +(7934,'15834'), +(7935,'17348'), +(7936,'17098'), +(7937,'24392'), +(7938,'73337'), +(7939,'88364'), +(7940,'25373'), +(7941,'37574'), +(7942,'22587'), +(7943,'37218'), +(7944,'24634'), +(7945,'37242'), +(7946,'25479'), +(7947,'24398'), +(7948,'97084'), +(7949,'97653'), +(7950,'22529'), +(7951,'36142'), +(7952,'37296'), +(7953,'22419'), +(7954,'88453'), +(7955,'37276'), +(7956,'22087'), +(7957,'20535'), +(7958,'73447'), +(7959,'97645'), +(7960,'97279'), +(7961,'24250'), +(7962,'24143'), +(7963,'89296'), +(7964,'21031'), +(7965,'91583'), +(7966,'29345'), +(7967,'24248'), +(7968,'97350'), +(7969,'89297'), +(7970,'38228'), +(7971,'86480'), +(7972,'87471'), +(7973,'37345'), +(7974,'97519'), +(7975,'89343'), +(7976,'91749'), +(7977,'38528'), +(7978,'91472'), +(7979,'38315'), +(7980,'86745'), +(7981,'38667'), +(7982,'85134'), +(7983,'91257'), +(7984,'95500'), +(7985,'85777'), +(7986,'95179'), +(7987,'18233'), +(7988,'81675'), +(7989,'85104'), +(7990,'81825'), +(7991,'95239'), +(7992,'39245'), +(7993,'06386'), +(7994,'75337'), +(7995,'65479'), +(7996,'78183'), +(7997,'68766'), +(7998,'68519'), +(7999,'69493'), +(8000,'35041'), +(8001,'27248'), +(8002,'63303'), +(8003,'60310'), +(8004,'75181'), +(8005,'34431'), +(8006,'63069'), +(8007,'64409'), +(8008,'63128'), +(8009,'33100'), +(8010,'28195'), +(8011,'75391'), +(8012,'28215'), +(8013,'32756'), +(8014,'74925'), +(8015,'63674'), +(8016,'35321'), +(8017,'64732'), +(8018,'27321'), +(8019,'21782'), +(8020,'71067'), +(8021,'27327'), +(8022,'72417'), +(8023,'25840'), +(8024,'72810'), +(8025,'34596'), +(8026,'71696'), +(8027,'36304'), +(8028,'74235'), +(8029,'37688'), +(8030,'72829'), +(8031,'63828'), +(8032,'73733'), +(8033,'24861'), +(8034,'24876'), +(8035,'74706'), +(8036,'97901'), +(8037,'37699'), +(8038,'73630'), +(8039,'24937'), +(8040,'87494'), +(8041,'87674'), +(8042,'99887'), +(8043,'38321'), +(8044,'86754'), +(8045,'90599'), +(8046,'91580'), +(8047,'86609'), +(8048,'29562'), +(8049,'91452'), +(8050,'86477'), +(8051,'38468'), +(8052,'38476'), +(8053,'91741'), +(8054,'91720'), +(8055,'96479'), +(8056,'91799'), +(8057,'96482'), +(8058,'96149'), +(8059,'96269'), +(8060,'38822'), +(8061,'86974'), +(8062,'96129'), +(8063,'90453'), +(8064,'91088'), +(8065,'90402'), +(8066,'91161'), +(8067,'85072'), +(8068,'96272'), +(8069,'06577'), +(8070,'96277'), +(8071,'91367'), +(8072,'82392'), +(8073,'19057'), +(8074,'12357'), +(8075,'04934'), +(8076,'12689'), +(8077,'15366'), +(8078,'15713'), +(8079,'01099'), +(8080,'01279'), +(8081,'01998'), +(8082,'15868'), +(8083,'03130'), +(8084,'02730'), +(8085,'41812'), +(8086,'66663'), +(8087,'54568'), +(8088,'50171'), +(8089,'54662'), +(8090,'46397'), +(8091,'47199'), +(8092,'47198'), +(8093,'41542'), +(8094,'54531'), +(8095,'40476'), +(8096,'54346'), +(8097,'40878'), +(8098,'40822'), +(8099,'56769'), +(8100,'42781'), +(8101,'53117'), +(8102,'51465'), +(8103,'49744'), +(8104,'49762'), +(8105,'42859'), +(8106,'51491'), +(8107,'44627'), +(8108,'77887'), +(8109,'55271'), +(8110,'26197'), +(8111,'65611'), +(8112,'79761'), +(8113,'35799'), +(8114,'76470'), +(8115,'76751'), +(8116,'65191'), +(8117,'77761'), +(8118,'79793'), +(8119,'79771'), +(8120,'72290'), +(8121,'35768'), +(8122,'61279'), +(8123,'24800'), +(8124,'31832'), +(8125,'71549'), +(8126,'97892'), +(8127,'24811'), +(8128,'36041'), +(8129,'24977'), +(8130,'25436'), +(8131,'25597'), +(8132,'21258'), +(8133,'24813'), +(8134,'73667'), +(8135,'36151'), +(8136,'24784'), +(8137,'66976'), +(8138,'49626'), +(8139,'79539'), +(8140,'67829'), +(8141,'79268'), +(8142,'79288'), +(8143,'51598'), +(8144,'79294'), +(8145,'49696'), +(8146,'49688'), +(8147,'79312'), +(8148,'57645'), +(8149,'57584'), +(8150,'49565'), +(8151,'49635'), +(8152,'65321'), +(8153,'79694'), +(8154,'79682'), +(8155,'49090'), +(8156,'65599'), +(8157,'26389'), +(8158,'42399'), +(8159,'48301'), +(8160,'56656'), +(8161,'55774'), +(8162,'49777'), +(8163,'55626'), +(8164,'44143'), +(8165,'66917'), +(8166,'66506'), +(8167,'58239'), +(8168,'56321'), +(8169,'1099'); +/*!40000 ALTER TABLE `postcode` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `providerinfo` +-- + +DROP TABLE IF EXISTS `providerinfo`; +/*!50001 DROP VIEW IF EXISTS `providerinfo`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `providerinfo` AS SELECT + 1 AS `BusinessId`, + 1 AS `Kundenname`, + 1 AS `Anrede`, + 1 AS `Vorname`, + 1 AS `Nachname` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `roles` +-- + +DROP TABLE IF EXISTS `roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles` ( + `roleid` int(11) NOT NULL, + `permissionid` int(11) NOT NULL, + `entityid` int(11) NOT NULL, + KEY `roles_role_FK` (`roleid`), + KEY `roles_permissions_FK` (`permissionid`), + KEY `roles_entities_FK` (`entityid`), + CONSTRAINT `roles_entities_FK` FOREIGN KEY (`entityid`) REFERENCES `entities` (`entityid`), + CONSTRAINT `roles_permissions_FK` FOREIGN KEY (`permissionid`) REFERENCES `permissions` (`permissionid`), + CONSTRAINT `roles_role_FK` FOREIGN KEY (`roleid`) REFERENCES `userrole` (`roleid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles` +-- + +LOCK TABLES `roles` WRITE; +/*!40000 ALTER TABLE `roles` DISABLE KEYS */; +/*!40000 ALTER TABLE `roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `salestax` +-- + +DROP TABLE IF EXISTS `salestax`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `salestax` ( + `salestaxid` varchar(20) NOT NULL, + `businessid` int(11) NOT NULL, + PRIMARY KEY (`salestaxid`), + UNIQUE KEY `salestax_unique` (`businessid`), + CONSTRAINT `salestax_business_FK` FOREIGN KEY (`businessid`) REFERENCES `business` (`businessid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `salestax` +-- + +LOCK TABLES `salestax` WRITE; +/*!40000 ALTER TABLE `salestax` DISABLE KEYS */; +/*!40000 ALTER TABLE `salestax` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service` +-- + +DROP TABLE IF EXISTS `service`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `service` ( + `servicetypeid` int(11) NOT NULL, + `servicedescid` int(11) NOT NULL, + `objectid` int(11) NOT NULL, + KEY `service_servicedesc_FK` (`servicedescid`), + KEY `service_object_FK` (`objectid`), + KEY `service_servicetype_FK` (`servicetypeid`), + CONSTRAINT `service_object_FK` FOREIGN KEY (`objectid`) REFERENCES `objects` (`objectid`), + CONSTRAINT `service_servicedesc_FK` FOREIGN KEY (`servicedescid`) REFERENCES `servicedesc` (`servicedescid`), + CONSTRAINT `service_servicetype_FK` FOREIGN KEY (`servicetypeid`) REFERENCES `servicetype` (`servicetypeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service` +-- + +LOCK TABLES `service` WRITE; +/*!40000 ALTER TABLE `service` DISABLE KEYS */; +/*!40000 ALTER TABLE `service` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `servicedesc` +-- + +DROP TABLE IF EXISTS `servicedesc`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `servicedesc` ( + `servicedescid` int(11) NOT NULL AUTO_INCREMENT, + `description` varchar(1000) NOT NULL, + PRIMARY KEY (`servicedescid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `servicedesc` +-- + +LOCK TABLES `servicedesc` WRITE; +/*!40000 ALTER TABLE `servicedesc` DISABLE KEYS */; +/*!40000 ALTER TABLE `servicedesc` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `servicetype` +-- + +DROP TABLE IF EXISTS `servicetype`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `servicetype` ( + `servicetypeid` int(11) NOT NULL AUTO_INCREMENT, + `description` varchar(50) NOT NULL, + PRIMARY KEY (`servicetypeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `servicetype` +-- + +LOCK TABLES `servicetype` WRITE; +/*!40000 ALTER TABLE `servicetype` DISABLE KEYS */; +/*!40000 ALTER TABLE `servicetype` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `socialinformation` +-- + +DROP TABLE IF EXISTS `socialinformation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `socialinformation` ( + `employeeid` int(11) NOT NULL, + `socialsecurityno` varchar(75) NOT NULL, + `medicalcareid` int(11) NOT NULL, + `knappschaft` varchar(50) DEFAULT NULL, + UNIQUE KEY `socialsecurity_unique_1` (`socialsecurityno`), + UNIQUE KEY `socialsecurity_unique` (`employeeid`), + KEY `socialsecurity_medicalcare_FK` (`medicalcareid`), + CONSTRAINT `socialsecurity_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`), + CONSTRAINT `socialsecurity_medicalcare_FK` FOREIGN KEY (`medicalcareid`) REFERENCES `medicalcare` (`medicalcareid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `socialinformation` +-- + +LOCK TABLES `socialinformation` WRITE; +/*!40000 ALTER TABLE `socialinformation` DISABLE KEYS */; +/*!40000 ALTER TABLE `socialinformation` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER pyqcrm.socialinformation_logger_insert AFTER INSERT ON socialinformation +FOR EACH ROW + CALL logger (new.employeeid, 'INSERT', 'getSocialInformation() - add a socialsecuritynumber') */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Table structure for table `street` +-- + +DROP TABLE IF EXISTS `street`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `street` ( + `streetid` int(11) NOT NULL AUTO_INCREMENT, + `street` varchar(100) NOT NULL, + PRIMARY KEY (`streetid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `street` +-- + +LOCK TABLES `street` WRITE; +/*!40000 ALTER TABLE `street` DISABLE KEYS */; +/*!40000 ALTER TABLE `street` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tariff` +-- + +DROP TABLE IF EXISTS `tariff`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `tariff` ( + `tariffid` int(11) NOT NULL AUTO_INCREMENT, + `tariff` decimal(10,0) NOT NULL COMMENT 'Festgelegter Stundensatz', + `description` varchar(35) NOT NULL, + PRIMARY KEY (`tariffid`), + UNIQUE KEY `tariff_unique` (`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Stundensatz Tabelle'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tariff` +-- + +LOCK TABLES `tariff` WRITE; +/*!40000 ALTER TABLE `tariff` DISABLE KEYS */; +/*!40000 ALTER TABLE `tariff` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `timetrack` +-- + +DROP TABLE IF EXISTS `timetrack`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `timetrack` ( + `employeeid` int(11) NOT NULL, + `start` datetime NOT NULL, + `stop` datetime NOT NULL, + `vacation` tinyint(1) NOT NULL DEFAULT 0, + KEY `timetrack_employee_FK` (`employeeid`), + CONSTRAINT `timetrack_employee_FK` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`employeeid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `timetrack` +-- + +LOCK TABLES `timetrack` WRITE; +/*!40000 ALTER TABLE `timetrack` DISABLE KEYS */; +/*!40000 ALTER TABLE `timetrack` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `userrole` +-- + +DROP TABLE IF EXISTS `userrole`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `userrole` ( + `roleid` int(11) NOT NULL AUTO_INCREMENT, + `description` varchar(50) NOT NULL, + PRIMARY KEY (`roleid`), + UNIQUE KEY `role_unique` (`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `userrole` +-- + +LOCK TABLES `userrole` WRITE; +/*!40000 ALTER TABLE `userrole` DISABLE KEYS */; +/*!40000 ALTER TABLE `userrole` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `usersid` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(50) NOT NULL, + `password` varchar(161) NOT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 1, + `roleid` int(11) NOT NULL, + `gecos` varchar(75) DEFAULT NULL, + PRIMARY KEY (`usersid`), + UNIQUE KEY `users_unique` (`username`), + KEY `users_role_FK` (`roleid`), + CONSTRAINT `users_role_FK` FOREIGN KEY (`roleid`) REFERENCES `userrole` (`roleid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`pyqcrm`@`%`*/ /*!50003 TRIGGER newUserLog +AFTER INSERT +ON users FOR EACH ROW + CALL logger (new.usersid, "INSERT", "createUser: New user created") */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Dumping routines for database 'pyqcrm' +-- +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP FUNCTION IF EXISTS `getNewReference` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` FUNCTION `getNewReference`(IN ref_type CHAR(2), IN dec_key VARCHAR(45)) RETURNS varchar(15) CHARSET utf8mb4 COLLATE utf8mb4_general_ci + DETERMINISTIC +BEGIN + DECLARE next_ref VARCHAR(15); + DECLARE new_ref VARCHAR(15); + DECLARE ref_prefix VARCHAR(8); + DECLARE search_expr VARCHAR(9); + + SET ref_prefix = CONCAT('TP', DATE_FORMAT(CURRENT_DATE, '%y%U'), ref_type); + SET new_ref = CONCAT(ref_prefix, '000'); + SET search_expr = CONCAT(ref_prefix, '%'); + + IF ref_type = 'MB' THEN + + SELECT CONCAT(ref_prefix, LPAD(RIGHT(AES_DECRYPT(UNHEX(reference), dec_key), 3) + 1, 3, '0')) INTO next_ref + FROM `pyqcrm`.`employee` `em` + WHERE AES_DECRYPT(UNHEX(reference), dec_key) LIKE search_expr + ORDER BY AES_DECRYPT(UNHEX(reference), dec_key) DESC LIMIT 1; + ELSE + + SELECT objectno + 1 INTO next_ref + FROM `pyqcrm`.`objects` `ob` + WHERE objectno > 999 + ORDER BY objectno DESC LIMIT 1; + + END IF; + + SELECT IFNULL(next_ref, new_ref) INTO next_ref; + + RETURN next_ref; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addAddress`(IN in_countryid INT, IN in_cityid INT, + IN in_postcodeid INT, OUT aid INT) +BEGIN + INSERT INTO address (countryid, cityid, postcodeid) + VALUES (in_countryid, in_cityid, in_postcodeid); + SET aid = LAST_INSERT_ID(); + CALL logger(aid, "INSERT", "addAddress: new Address added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addApplicant` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addApplicant`(IN new_applicant JSON, IN is_applicant BOOL, + IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE add_app_query_open VARCHAR(4096); + DECLARE add_app_query_close VARCHAR(4096); + DECLARE a_zipcodeid INT(11); + DECLARE a_employeeid INT(11); + DECLARE app_contract_type_id INT(11); + DECLARE app_country_id INT(11); + DECLARE reference VARCHAR(75); + DECLARE a_jobdesc VARCHAR(30); + DECLARE a_taxno VARCHAR(75); + DECLARE fake_birthday VARCHAR(75); + DECLARE a_country VARCHAR(50); + DECLARE app_work_permit BOOL; + DECLARE a_residence BOOL; + + CALL addApplicantAddress (new_applicant, a_zipcodeid); + + IF a_zipcodeid IS NOT NULL THEN + CALL addApplicantPerso (new_applicant); + SET @app_fname = CASE WHEN @app_fname != "" THEN HEX(AES_ENCRYPT(@app_fname, encrypt_key)) END; + SET @app_lname = CASE WHEN @app_lname != "" THEN HEX(AES_ENCRYPT(@app_lname, encrypt_key)) END; + CALL addEmployeePerso (new_applicant); + SET @app_birthname = CASE WHEN @app_birthname != "" THEN HEX(AES_ENCRYPT(@app_birthname, encrypt_key)) END; + CASE @app_birthday WHEN "" THEN + SET @app_birthday = HEX(AES_ENCRYPT("0000-00-00", encrypt_key)); + ELSE + SET @app_birthday = HEX(AES_ENCRYPT(@app_birthday, encrypt_key)); + END CASE; + SET @app_pob = CASE WHEN @app_pob != "" THEN HEX(AES_ENCRYPT(@app_pob, encrypt_key)) END; + CALL addApplicantContactInfo (new_applicant); + SET @app_phone = CASE WHEN @app_phone != "" THEN HEX(AES_ENCRYPT(@app_phone, encrypt_key)) END; + SET @app_mobile = CASE WHEN @app_mobile != "" THEN HEX(AES_ENCRYPT(@app_mobile, encrypt_key)) END; + SET @app_email = CASE WHEN @app_email != "" THEN HEX(AES_ENCRYPT(@app_email, encrypt_key)) END; + SELECT pyqcrm.getNewReference('MB', encrypt_key) INTO reference; + SET reference = HEX(AES_ENCRYPT(reference, encrypt_key)); + IF is_applicant = 0 THEN + SET a_jobdesc = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.jobstatus')); + SET a_taxno = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.taxno')); + + CASE a_taxno + WHEN "" THEN + SELECT UNIX_TIMESTAMP() INTO a_taxno; + ELSE + BEGIN END; + END CASE; + SET a_taxno = HEX(AES_ENCRYPT(a_taxno, encrypt_key)); + SET a_country = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.country')); + SET app_work_permit = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.worklicense')); + SET a_residence = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residencetype')); + + CALL getEmployeeContractType (a_jobdesc, app_contract_type_id); + CALL getNationality(a_country, app_country_id); + CALL addEmployeeExtraInfo(new_applicant, encrypt_key); + + INSERT INTO employee (salutation, firstname, lastname, formofaddress, phone, mobilephone, email, + birthname, birthday, placeofbirth, taxno, reference, empreference, + disability, applicant, workpermit, countryid, userid, + officeid, maritalstatusid, employeecontracttypeid) + VALUES (@app_salute, @app_fname, @app_lname, @app_dear_sir, @app_phone, @app_mobile, @app_email, + @app_birthname, @app_birthday, @app_pob, a_taxno, reference, @app_ref_ext, + @app_disability, is_applicant, app_work_permit, app_country_id, @app_supervisor_id, + @app_office_id, @a_marital_id, app_contract_type_id); + + COMMIT; + + SET a_employeeid = LAST_INSERT_ID(); + + CALL addEmployeeBank(new_applicant, a_employeeid, encrypt_key); + CALL addEmployeeSocialSec(new_applicant, a_employeeid, encrypt_key); + CALL addEmployeeJob(new_applicant, a_employeeid); + CALL addEmployeeId(new_applicant, a_employeeid, encrypt_key); + IF a_residence = TRUE THEN + CALL addEmployeeExId(new_applicant, a_employeeid, encrypt_key); + END IF; + ELSE + SELECT UNIX_TIMESTAMP() INTO a_taxno; + SET a_taxno = HEX(AES_ENCRYPT(a_taxno, encrypt_key)); + + SET fake_birthday = HEX(AES_ENCRYPT("0000-00-00", encrypt_key)); + + INSERT INTO employee (salutation, firstname, lastname, formofaddress, phone, mobilephone, + email, taxno, reference, birthday) + VALUES (@app_salute, @app_fname, @app_lname, @app_dear_sir, @app_phone, @app_mobile, + @app_email, a_taxno, reference, fake_birthday); + COMMIT; + SET a_employeeid = LAST_INSERT_ID(); + END IF; + + INSERT INTO location_emp VALUES (a_employeeid, @addressid, @houseid); + COMMIT; + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addApplicantAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addApplicantAddress`(IN new_applicant JSON, OUT zipcode_id INT(11)) +BEGIN + DECLARE a_streetid INT(11); + DECLARE a_street VARCHAR(100); + DECLARE a_houseno VARCHAR(6); + DECLARE a_postcode INT(11); + DECLARE a_city VARCHAR(50); + + SET a_street = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.street')); + SET a_houseno = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.houseno')); + SET a_postcode = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.postcode')); + SET a_city = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.city')); + + CALL checkZipCode (a_postcode, a_city, zipcode_id); + IF a_street IS NOT NULL THEN + CALL checkStreet (zipcode_id, a_street, a_houseno, a_streetid); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addApplicantContactInfo` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addApplicantContactInfo`(IN new_applicant JSON) +BEGIN + DECLARE a_phone VARCHAR(50); + DECLARE a_mobilephone VARCHAR(50); + DECLARE a_email VARCHAR(255); + + SET @app_phone = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.phone')); + SET @app_mobile = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.mobile')); + SET @app_email = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.email')); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addApplicantPerso` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addApplicantPerso`(IN new_applicant JSON) +BEGIN + SET @app_salute = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.title')); + SET @app_fname = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.firstname')); + SET @app_lname = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.lastname')); + SET @app_dear_sir = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.formofaddress')); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addBankAccounts` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addBankAccounts`(IN gbankname VARCHAR(75), + IN giban VARCHAR(150), IN emp_id INT(11)) +BEGIN + DECLARE gbankid INT(11); + + IF (SELECT 1 FROM banking WHERE iban = giban) IS NULL THEN + SELECT bankid INTO gbankid FROM bank WHERE bankname = gbankname; + IF gbankid IS NULL THEN + INSERT INTO bank (bankname) VALUES (gbankname); + SET gbankid = LAST_INSERT_ID(); + END IF; + INSERT INTO banking (iban, bankid, employeeid) VALUES (giban, gbankid, emp_id); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addBusiness` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addBusiness`(IN new_business JSON, IN v_contactpersonid INT (11)) +BEGIN + DECLARE v_company VARCHAR(100); + DECLARE v_streetid INT(11); + DECLARE v_street VARCHAR(100); + DECLARE v_postcode INT(11); + DECLARE v_phone VARCHAR(50); + DECLARE v_cell VARCHAR(50); + DECLARE v_email VARCHAR(255); + DECLARE v_homepage VARCHAR(255); + DECLARE v_director VARCHAR(100); + DECLARE v_info VARCHAR(500); + DECLARE v_taxno VARCHAR(50); + DECLARE v_bt VARCHAR(50); + DECLARE v_zipcodeid INT(11); + DECLARE v_city VARCHAR (50); + DECLARE v_btid INT(11); + DECLARE bid INT(11); + DECLARE v_houseno VARCHAR(6); + DECLARE in_country VARCHAR(100); + DECLARE lid INT(11); + + + SET v_company = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.business')); + SET v_city = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.city')); + SET v_street = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.street')); + SET v_postcode = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.postcode')); + SET v_phone = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.telephone')); + SET v_cell = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.cellphone')); + SET v_email = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.email')); + SET v_homepage = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.homepage')); + SET v_director = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.ceo')); + SET v_info = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.customerinfo')); + SET v_taxno = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.taxno')); + SET v_bt = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.typeid')); + SET v_houseno = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.houseno')); + SET in_country = JSON_UNQUOTE(JSON_EXTRACT(new_business, '$.country')); + + + CALL getBtype (v_bt, v_btid); + CALL checkLocation(in_country, v_city, v_postcode, v_street, v_houseno, lid); + + + IF v_contactpersonid = 0 THEN + INSERT INTO business (company, phone, mobilephone, email, homepage, director, info, btid, taxno, locationid) + VALUES (v_company, v_phone, v_cell, v_email, v_homepage, v_director, v_info, v_btid, v_taxno, lid); + ELSE + INSERT INTO business (company, phone, mobilephone, email, homepage, director, contactpersonid, info, btid, taxno, locationid) + VALUES (v_company, v_phone, v_cell, v_email, v_homepage, v_director, v_contactpersonid, v_info, v_btid, v_taxno, lid); + END IF; + SET bid = LAST_INSERT_ID(); + CALL logger (bid, "INSERT", "addBusiness: New Customer added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addCity` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addCity`(IN new_city VARCHAR(50), OUT cid INT) +BEGIN + INSERT INTO city SET city = new_city; + SET cid = LAST_INSERT_ID(); + CALL logger(cid, "INSERT", "addCity: New city added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addContactPerson` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addContactPerson`(IN encrypt_key VARCHAR(45), + IN new_contactperson JSON) +BEGIN + DECLARE x_salutation VARCHAR(15); + DECLARE x_fname VARCHAR (75); + DECLARE x_lname VARCHAR (75); + DECLARE x_phone VARCHAR (75); + DECLARE x_cell VARCHAR (75); + DECLARE x_position VARCHAR (50); + DECLARE x_email VARCHAR (255); + DECLARE x_birthday VARCHAR (35); + DECLARE x_priority BOOL; + DECLARE x_invoice BOOL; + DECLARE x_reminder BOOL; + + SET x_salutation = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.title')); + SET x_fname = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.firstname')); + SET x_fname = CASE WHEN x_fname != "" THEN HEX(AES_ENCRYPT(x_fname, encrypt_key)) END; + SET x_lname = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.lastname')); + SET x_lname = CASE WHEN x_lname != "" THEN HEX(AES_ENCRYPT(x_lname, encrypt_key)) END; + SET x_phone = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.telephonecontact')); + SET x_phone = CASE WHEN x_phone != "" THEN HEX(AES_ENCRYPT(x_phone, encrypt_key)) END; + SET x_cell = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.cellphone')); + SET x_cell = CASE WHEN x_cell != "" THEN HEX(AES_ENCRYPT(x_cell, encrypt_key)) END; + SET x_position = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.jobdescription')); + SET x_email = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.email')); + SET x_email = CASE WHEN x_email != "" THEN HEX(AES_ENCRYPT(x_email, encrypt_key)) END; + SET x_birthday = JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.birthday')); + SET x_birthday = CASE WHEN x_birthday != "" THEN HEX(AES_ENCRYPT(x_birthday, encrypt_key)) END; + SET x_priority = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.rank')) = 'Ja', true, false); + SET x_invoice = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.invoice')) = 'Ja', true, false); + SET x_reminder = if(JSON_UNQUOTE(JSON_EXTRACT(new_contactperson, '$.due')) = 'Ja', true, false); + + INSERT INTO contactperson (lastname, firstname, phone, mobilephone, pos, salutation, email, birthday, priority, invoice, reminder) + VALUES (x_lname, x_fname, x_phone, x_cell, x_position, x_salutation, x_email, x_birthday, x_priority, x_invoice, x_reminder); + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addCountry` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addCountry`(IN new_country JSON, OUT cid INT) +BEGIN + DECLARE country_long VARCHAR(200) DEFAULT JSON_UNQUOTE(JSON_EXTRACT(new_country, '$.country_long')); + DECLARE country_short VARCHAR(100) DEFAULT JSON_UNQUOTE(JSON_EXTRACT(new_country, '$.country_short')); + DECLARE country_nationality VARCHAR(100) DEFAULT JSON_UNQUOTE(JSON_EXTRACT(new_country, '$.country_nationality')); + DECLARE country_iso2 VARCHAR(2) DEFAULT JSON_UNQUOTE(JSON_EXTRACT(new_country, '$.country_iso2')); + DECLARE country_iso3 VARCHAR(3) DEFAULT JSON_UNQUOTE(JSON_EXTRACT(new_country, '$.country_iso3')); + + INSERT INTO country (country, countryshort, nationality, iso2, iso3) + VALUES (country_long, country_short, country_nationality, country_iso2, country_iso3); + SET cid = LAST_INSERT_ID(); + CALL logger (cid, "INSERT", "addCountry: New country added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeBank` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeBank`(IN new_applicant JSON, + IN emp_id INT(11), IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE a_iban VARCHAR(150); + DECLARE a_bank VARCHAR(75); + + SET a_iban = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.iban')); + SET a_bank = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.bank')); + SET a_iban = CASE WHEN a_iban != "" THEN HEX(AES_ENCRYPT(a_iban, encrypt_key)) END; + + CALL addBankAccounts(a_bank, a_iban, emp_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeExId` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeExId`(IN new_applicant JSON, + IN employee_id INT(11), IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE a_residenceno VARCHAR(50); + DECLARE a_residenceauthority VARCHAR(50); DECLARE a_residenceissued DATE; + DECLARE a_residenceexpiry DATE; DECLARE a_residencetype BOOL; + + SET a_residenceno = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residenceno')); + SET a_residenceno = CASE WHEN a_residenceno != "" THEN HEX(AES_ENCRYPT(a_residenceno, encrypt_key)) END; + SET a_residenceissued = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residenceissued')), "%d.%m.%Y"); + SET a_residenceexpiry = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residenceexpiry')), "%d.%m.%Y"); + SET a_residenceauthority = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residenceauthority')); + SET a_residencetype = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.residencetype')); + + CALL getIdentification(a_residenceno, a_residenceissued, a_residenceexpiry, a_residenceauthority, + a_residencetype, employee_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeExtraInfo` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeExtraInfo`(IN new_applicant JSON, + IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE a_office VARCHAR(50); + DECLARE a_disponent VARCHAR(50); + + SET @app_disability = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.disability')); + SET @app_disability = CASE WHEN @app_disability != "" THEN HEX(AES_ENCRYPT(@app_disability, encrypt_key)) END; + SET @app_ref_ext = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.empreference')); + SET @app_ref_ext = CASE WHEN @app_ref_ext != "" THEN HEX(AES_ENCRYPT(@app_ref_ext, encrypt_key)) END; + SET a_office = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.office')); + SET a_disponent = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.disponent')); + + CALL getCostOffice(a_office, @app_office_id); + + CALL getSupervisor(a_disponent, @app_supervisor_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeId` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeId`(IN new_applicant JSON, + IN employee_id INT(11), IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE a_doc_id INT(11); + DECLARE a_idexpiry DATE; + DECLARE a_idissued DATE; + DECLARE a_idauthority VARCHAR(50); + DECLARE a_idtype VARCHAR(50); + DECLARE a_idnumber VARCHAR(50); + + SET a_idnumber = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.idnumber')); + SET a_idnumber = CASE WHEN a_idnumber != "" THEN HEX(AES_ENCRYPT(a_idnumber, encrypt_key)) END; + SET a_idexpiry = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.idexpiry')), "%d.%m.%Y"); + SET a_idissued = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.idissued')), "%d.%m.%Y"); + SET a_idauthority = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.idauthority')); + SET a_idtype = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.idtype')); + + CALL getIdentification(a_idnumber, a_idissued, a_idexpiry, a_idauthority, a_idtype, employee_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeJob` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeJob`(IN new_applicant JSON, IN employee_id INT(11)) +BEGIN + DECLARE a_salary DECIMAL(5,2) UNSIGNED; + DECLARE a_contractstart DATE; + DECLARE a_contractend DATE; + DECLARE a_workdays TINYINT(1) UNSIGNED; + DECLARE a_workhours TINYINT(1) UNSIGNED; + DECLARE a_jobdesc VARCHAR(100); + + SET a_contractstart = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.contractstart')), "%d.%m.%Y"); + SET a_contractend = STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.contractend')), "%d.%m.%Y"); + SET a_workhours = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.workhours')); + SET a_workdays = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.workdays')); + SET a_salary = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.salary')); + SET a_jobdesc = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.jobdesc')); + + CALL getEmployeeContract (a_contractstart, a_contractend, a_workhours, a_workdays, a_salary, employee_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeePerso` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeePerso`(IN new_applicant JSON) +BEGIN + DECLARE a_birthday DATE; + DECLARE a_placeofbirth VARCHAR(40); + DECLARE a_birthname VARCHAR(40); + DECLARE a_maritalstatus VARCHAR(15); + DECLARE a_marital_status_id INT(11); + + SET @app_birthname = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.birthname')); + SET @app_pob = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.placeofbirth')); + SET @app_birthday = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.birthday')); + SET a_maritalstatus = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.maritalstatus')); + + CALL getMaritalStatus (a_maritalstatus, @a_marital_id); + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addEmployeeSocialSec` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addEmployeeSocialSec`(IN new_applicant JSON, + IN employee_id INT(11), + IN encrypt_key VARCHAR(45)) +BEGIN + DECLARE a_statusid INT(11); + DECLARE a_socialno VARCHAR(75); + DECLARE a_medicalinsurance VARCHAR(50); + DECLARE a_knappschaft VARCHAR(50); + + SET a_socialno = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.socialno')); + SET a_socialno = CASE WHEN a_socialno != "" THEN HEX(AES_ENCRYPT(a_socialno, encrypt_key)) END; + SET a_medicalinsurance = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.medicalinsurance')); + SET a_knappschaft = JSON_UNQUOTE(JSON_EXTRACT(new_applicant, '$.knappschaft')); + + CALL getSocialInformation(a_socialno, a_knappschaft, a_medicalinsurance, employee_id); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addHousemap` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addHousemap`(IN in_sid INT, IN in_hid INT, OUT hmid INT) +BEGIN + INSERT INTO housemap (streetid, housenoid) + VALUES (in_sid, in_hid); + SET hmid = LAST_INSERT_ID(); + CALL logger(hmid, "INSERT", "addHousemap: New housemap added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addHouseno` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addHouseno`(IN in_houseno VARCHAR(6), OUT hid INT(11)) +BEGIN + INSERT INTO house SET houseno = in_houseno; + SET hid = LAST_INSERT_ID(); + CALL logger (hid, "INSERT", "addHouseno: New Housenumber added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addLocation` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addLocation`(IN aid INT, IN hmid INT, OUT lid INT) +BEGIN + INSERT INTO location (addressid, housemapid) VALUES (aid, hmid); + SET lid = LAST_INSERT_ID(); + CALL logger(lid, "INSERT", "addLocation: New Location added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addObject` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addObject`(IN new_object JSON) +BEGIN + + DECLARE g_city VARCHAR(50); + DECLARE g_postcode VARCHAR(15); + DECLARE g_houseno VARCHAR(6); + DECLARE g_street VARCHAR(100); + DECLARE g_units SMALLINT(6); + DECLARE g_floors SMALLINT(6); + DECLARE g_mezzanine TINYINT(1); + DECLARE g_elevator TINYINT(1); + DECLARE g_remarks VARCHAR(100); + DECLARE g_cleaningproducts VARCHAR(100); + DECLARE g_objectno VARCHAR(100); + DECLARE g_zipcodeid INT(11); + DECLARE g_objectid INT(11); + + + SET g_units = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.units')); + SET g_street = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.street')); + SET g_floors = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.floors')); + SET g_city = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.city')); + SET g_postcode = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.postcode')); + SET g_houseno = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.houseno')); + SET g_mezzanine = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.mezzanin')); + SET g_elevator = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.lift')); + SET g_remarks = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.remarks')); + SET g_cleaningproducts = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.cleaningproducts')); + SET g_objectno = JSON_UNQUOTE(JSON_EXTRACT(new_object, '$.objectno')); + + IF g_objectno = "" OR g_objectno = 0 THEN + SELECT getNewReference ('OB', NULL) INTO g_objectno; + END IF; + + CALL addAddress (new_object, g_zipcodeid); + + INSERT INTO objects (mezzanine, elevator, cleaningproducts, objectno, floors, units, remarks) + VALUES (g_mezzanine, g_elevator, g_cleaningproducts, g_objectno, g_floors, g_units, g_remarks); + + + SET @g_objectid = LAST_INSERT_ID(); + + INSERT INTO location_obj VALUES (@g_objectid, @addressid, @houseid); + + + SET @g_objectid = 0; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addObjectContact` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addObjectContact`(IN enc_key VARCHAR(45), IN new_objcontact JSON, IN obj_id INT(11)) +BEGIN + DECLARE counter INT(1) DEFAULT 0; + DECLARE contact_num INT(1) DEFAULT JSON_LENGTH(new_objcontact); + + DECLARE c_fname VARCHAR(75); + DECLARE c_lname VARCHAR(75); + DECLARE c_phone VARCHAR(75); + DECLARE c_mphone VARCHAR(75); + DECLARE c_pos VARCHAR(50); + DECLARE c_type VARCHAR(35); + DECLARE c_salute VARCHAR(15); + DECLARE j_path CHAR(20); + + + + SET @c_1id = 0; + SET @c_2id = 0; + SET @c_3id = 0; + + IF contact_num > 0 THEN + WHILE counter < contact_num DO + SET j_path = CONCAT('$.', counter, '.title'); + SET c_salute = JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)); + SET j_path = CONCAT('$.', counter, '.position'); + SET c_pos = JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)); + SET j_path = CONCAT('$.', counter, '.phone'); + SET c_phone = HEX(AES_ENCRYPT(JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)), enc_key)); + SET j_path = CONCAT('$.', counter, '.mobile'); + SET c_mphone = HEX(AES_ENCRYPT(JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)), enc_key)); + SET j_path = CONCAT('$.', counter, '.fname'); + SET c_fname = HEX(AES_ENCRYPT(JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)), enc_key)); + SET j_path = CONCAT('$.', counter, '.lname'); + SET c_lname = HEX(AES_ENCRYPT(JSON_UNQUOTE(JSON_EXTRACT(new_objcontact, j_path)), enc_key)); + + INSERT INTO contactperson(salutation, firstname, lastname, phone, mobilephone, pos) + VALUES(c_salute, c_fname, c_lname, c_phone, c_mphone, c_pos); + + CASE counter + WHEN 0 THEN SET @c_1id = LAST_INSERT_ID(); + WHEN 1 THEN SET @c_2id = LAST_INSERT_ID(); + ELSE SET @c_3id = LAST_INSERT_ID(); + END CASE; + SET counter = counter + 1; + END WHILE; + + INSERT INTO objectmanagement(objectid, contact1id, contact2id, contact3id) + VALUES (obj_id, @c_1id, @c_2id, @c_3id); + + + + + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addPermission` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addPermission`(IN newpermission VARCHAR(50)) +BEGIN + CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "addPermission: strid selected from oschkarischtverhaftetwegensexy"); + IF NOT EXISTS (SELECT 1 FROM permissions WHERE permission = newpermission) THEN + INSERT INTO permissions(permission) VALUES(newpermission); + CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addPermission: New Permission added from oschkarischtverhaftetwegensexy"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addPostcode` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addPostcode`(IN new_postcode VARCHAR(15), OUT pid INT) +BEGIN + INSERT INTO postcode SET postcode = new_postcode; + SET pid = LAST_INSERT_ID(); + CALL logger(pid, "INSERT", "addPostcode: New postcode added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addRole` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addRole`(IN newdescription VARCHAR(50)) +BEGIN + CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "addRole: strid selected from oschkarischtverhaftetwegensexy"); + IF NOT EXISTS (SELECT 1 FROM userrole WHERE description = newdescription) THEN + INSERT INTO userrole(description) VALUES(newdescription); + CALL logger ((SELECT LAST_INSERT_ID()), "INSERT", "addRole: New Role added from oschkarischtverhaftetwegensexy"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addStreet` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addStreet`(IN in_street VARCHAR(100), + OUT sid INT(11)) +BEGIN + INSERT INTO street SET street = in_street; + SET sid = LAST_INSERT_ID(); + CALL logger (sid, "INSERT", "addStreet: New Street added"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `addZipCodes` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addZipCodes`(IN zipcode VARCHAR(15), IN town VARCHAR(50), + OUT nzcid VARCHAR (15)) +BEGIN + DECLARE zip_town INT; + + IF NOT EXISTS (SELECT 1 FROM address WHERE city = town) THEN + INSERT INTO address(countryid, city) VALUES(37, town); + SET zip_town = LAST_INSERT_ID(); + + ELSE + SELECT addressid INTO zip_town FROM address WHERE city = town; + CALL logger (zip_town, "SELECT", "addZipCodes: Addressid selected from oschkarischtverhaftetwegensexy"); + END IF; + SET nzcid = (SELECT postcodeid FROM postcode WHERE postcode = zipcode); + CALL logger (zip_town, "SELECT", "addZipCodes: Postcodeid selected from oschkarischtverhaftetwegensexy"); + IF nzcid IS NULL THEN + INSERT INTO postcode(postcode, addressid) VALUES(zipcode, zip_town); + SET nzcid = LAST_INSERT_ID(); + + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkAddress`(IN in_country VARCHAR(100), IN in_city VARCHAR(50), + IN in_postcode VARCHAR(15), OUT aid INT) +BEGIN + DECLARE cid INT(11); + DECLARE tid INT(11); + DECLARE pid INT(11); + + CALL checkCountry(in_country, cid); + CALL checkCity(in_city, tid); + CALL checkPostcode(in_postcode, pid); + + IF tid IS NULL THEN + CALL addCity(in_city, tid); + END IF; + IF pid IS NULL THEN + CALL addPostcode(in_postcode, pid); + END IF; + SELECT addressid INTO aid FROM address + WHERE countryid = cid AND cityid = tid AND postcodeid = pid; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkAdmin` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkAdmin`() +BEGIN + SELECT 1 FROM users WHERE roleid = 1 AND enabled = TRUE LIMIT 1; + CALL logger (NULL, "SELECT", "checkAdmin: Check Admin User VALID written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkCity` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkCity`(IN town VARCHAR(50), OUT cid INT) +BEGIN + SELECT cityid INTO cid FROM city + WHERE town = city; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkCountry` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkCountry`(IN in_country VARCHAR(100), OUT cid INT) +BEGIN + SELECT countryid INTO cid FROM country + WHERE in_country = countryshort; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkHousemap` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkHousemap`(IN in_street VARCHAR(100), IN in_houseno VARCHAR(6), OUT hmid INT) +BEGIN + DECLARE sid INT(11); + DECLARE hid INT(11); + CALL checkStreet(in_street, sid); + IF sid IS NULL THEN + CALL addStreet(in_street, sid); + END IF; + CALL checkHouseno(in_houseno, hid); + IF hid IS NULL THEN + CALL addHouseno(in_houseno, hid); + END IF; + SELECT housemapid INTO hmid FROM housemap + WHERE streetid = sid AND housenoid = hid; + IF hmid IS NULL THEN + CALL addHousemap(sid, hid, hmid); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkHouseno` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkHouseno`(IN in_houseno VARCHAR(6), OUT hid INT(11)) +BEGIN + SELECT houseid INTO hid FROM house + WHERE houseno = in_houseno; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkLocation` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkLocation`(IN in_country VARCHAR(100), IN in_city VARCHAR(50), + IN in_postcode VARCHAR(15), IN in_street VARCHAR(100), + IN in_houseno VARCHAR(6), OUT lid INT) +BEGIN + DECLARE aid INT(11); + DECLARE hmid INT(11); + + CALL checkAddress(in_country, in_city, in_postcode, aid); + IF aid IS NULL THEN + CALL addAddress(in_country, in_city, in_postcode, aid); + END IF; + CALL checkHousemap(in_street, in_houseno, hmid); + IF hmid IS NULL THEN + CALL addHousemap(in_street, in_houseno, hmid); + END IF; + SELECT locationid INTO lid FROM location WHERE addressid = aid AND housemapid = hmid; + IF lid IS NULL THEN + CALL addLocation(aid, hmid, lid); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkPostcode` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkPostcode`(IN in_postcode VARCHAR(15), OUT pid INT) +BEGIN + SELECT postcodeid INTO pid FROM postcode + WHERE postcode = in_postcode; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkStreet` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkStreet`(IN in_street VARCHAR (100), OUT sid INT(11)) +BEGIN + SELECT streetid INTO sid FROM street + WHERE street = in_street; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `checkZipCode` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `checkZipCode`(IN zipcode VARCHAR(15), IN town VARCHAR(50), + OUT zcid INT) +BEGIN + SET zcid = ( SELECT pc.postcodeid FROM address AS ad + JOIN postcode AS pc ON ad.addressid = pc.addressid WHERE pc.postcode = zipcode); + CALL logger (zcid, "SELECT", "checkZipCode: Check if postcode exists written by OSCHKAR"); + IF zcid IS NULL THEN + CALL addZipCodes (zipcode, town, zcid); + END IF; + SELECT ad.addressid INTO @addressid FROM address AS ad + JOIN postcode AS pc ON ad.addressid = pc.addressid WHERE pc.postcode = zipcode; + CALL logger (@addressid, "SELECT", "checkZipCode: Check addressid written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `createUser` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `createUser`(IN uname VARCHAR(35), IN password VARCHAR(161), + IN gecos VARCHAR(75), IN admin BOOL) +BEGIN + DECLARE userole INT; + SET userole = 2; + IF admin = 1 THEN + SET userole = 1; + END IF; + CALL logger (NULL, "SELECT", "createUser: Check if user exists written by OSCHKAR"); + IF NOT EXISTS (SELECT 1 FROM users WHERE username = uname) THEN + INSERT INTO users(username, password, gecos, roleid) VALUES(uname, password, gecos, userole); + + ELSE + SIGNAL SQLSTATE '45000' SET + MESSAGE_TEXT = 'Username already in use'; + END IF; + END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getAddress`(IN all_address BOOL, IN zipcode VARCHAR(15)) +BEGIN + IF all_address = 1 THEN + SELECT * FROM addressesview; + CALL logger (NULL, "SELECT", "getAddress: All from addressview written by OSCHKAR"); + ELSE + SELECT pc.postcodeid, pc.addressid, pc.postcode, ad.city, ad.country FROM address AS ad + JOIN postcode AS pc ON ad.addressid = pc.addressid WHERE pc.postcode = zipcode ORDER BY pc.postcode ASC; + CALL logger (NULL, "SELECT", "getAddress: Select one adress written by OSCHKAR"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getApplicant` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getApplicant`(IN employee_id INT(11), IN encrypt_key VARCHAR(45)) +BEGIN + SELECT employee. employeeId AS employeeId, + employee.salutation AS salutation, + AES_DECRYPT(employee.lastname, encrypt_key) AS lastname, + AES_DECRYPT(employee.firstname, encrypt_key) AS firstname, + street.name AS street, + house.houseno AS houseno, + postcode.postcode AS postcode, + address.city AS city, + AES_DECRYPT(employee.phone, encrypt_key) AS phone, + AES_DECRYPT(employee.mobilephone, encrypt_key) AS mobile, + AES_DECRYPT(employee.email, encrypt_key) AS email, + employee.formofaddress AS formofaddress + FROM employee + LEFT JOIN location_emp ON employee.employeeid = location_emp.employeeid + LEFT JOIN house ON location_emp.houseid = house.houseid + LEFT JOIN street ON house.strid = street.strid + LEFT JOIN postcode ON street.postcodeid = postcode.postcodeid + LEFT JOIN address ON postcode.addressid = address.addressid + WHERE employee.employeeId = employee_id; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getBtype` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getBtype`(IN businessdesc VARCHAR (35), OUT typeid INT (11)) +BEGIN + IF businessdesc IS NULL THEN + SELECT * FROM businesstype ORDER BY btypeID; + CALL logger (NULL, "SELECT", "getBtype: All from businesstype written by OSCHKAR"); + ELSE + SET typeid = (SELECT btypeID FROM businesstype WHERE description = businessdesc); + CALL logger (typeid, "SELECT", "getBtype: Select one businesstype written by OSCHKAR"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getBusiness` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getBusiness`(IN businesstype VARCHAR(35)) +BEGIN + SELECT * FROM business; + CALL logger (NULL, "SELECT", "getBusiness: All from business written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getContactPersonView` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getContactPersonView`(IN decrypt_key VARCHAR(45)) +BEGIN + SELECT contactid, CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Kontakt, + CASE WHEN Telefon != "" THEN AES_DECRYPT(UNHEX(Telefon), decrypt_key) END AS Telefon, + CASE WHEN Mobil != "" THEN AES_DECRYPT(UNHEX(Mobil), decrypt_key) END AS Handy, + CASE WHEN `E-Mail` != "" THEN AES_DECRYPT(UNHEX(`E-Mail`), decrypt_key) END AS `E-Mail`, + `Position`, Entscheider AS Entscheider FROM contactpersonview; + CALL logger (NULL, "SELECT", "getContactPersonView: All from getContactPersonView written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getCostOffice` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getCostOffice`(IN costoffice VARCHAR(50), OUT costofficeid INT(11)) +BEGIN + SELECT officeid INTO costofficeid FROM office WHERE office = costoffice; + IF costofficeid IS NULL THEN + INSERT INTO office (office) VALUES (costoffice); + SET costofficeid = LAST_INSERT_ID(); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getCustomer` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getCustomer`(IN bus_id INT(11), IN decrypt_key VARCHAR(45)) +BEGIN + select + `bt`.`businessid` AS `BusinessId`, + `bt`.`contactpersonid` AS `KontaktId`, + coalesce(`bt`.`company`, '') AS `Kundenname`, + coalesce(`bt`.`phone`, '') AS `Telefon`, + coalesce(`bt`.`mobilephone`, '') AS `Handy`, + coalesce(`bt`.`email`, '') AS `E-Mail`, + coalesce(`bt`.`homepage`, '') AS `Webseite`, + coalesce(`bt`.`director`, '') AS `CEO`, + coalesce(`bt`.`info`, '') AS `Info`, + coalesce(`bt`.`taxno`, '') AS `Steuer-ID`, + coalesce(`st`.`name`, '') AS `Straße`, + coalesce(`hn`.`houseno`, '') AS `Hausnummer`, + coalesce(lpad(`pt`.`postcode`, 5, '0'), '') AS `PLZ`, + coalesce(`ad`.`city`, '') AS `Ort` +from (((((`pyqcrm`.`business` `bt` +join `pyqcrm`.`location_ct` `lc` on + (`bt`.`businessid` = `lc`.`businessid`)) +join `pyqcrm`.`address` `ad` on + (`lc`.`addressid` = `ad`.`addressid`)) +join `pyqcrm`.`house` `hn` on + (`lc`.`houseid` = `hn`.`houseid`)) +join `pyqcrm`.`street` `st` on + (`hn`.`strid` = `st`.`strid`)) +join `pyqcrm`.`postcode` `pt` on + (`st`.`postcodeid` = `pt`.`postcodeid`)) +where + `bt`.`businessid` = bus_id; + +CALL logger (bus_id, "SELECT", "getCustomer: Get a client"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getCustomerContact` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getCustomerContact`(IN cont_id INT(11), IN decrypt_key VARCHAR(45)) +BEGIN + select + `ct`.`contactpersonid` AS `KontaktId`, + coalesce(`ct`.`salutation`, '') AS `Anrede`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`firstname`), decrypt_key), '') AS `Vorname`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`lastname`), decrypt_key), '') AS `Nachname`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`phone`), decrypt_key), '') AS `K-Telefon`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`mobilephone`), decrypt_key), '') AS `K-Handy`, + coalesce(`ct`.`pos`, '') AS `Stelle`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`email`), decrypt_key), '') AS `K-Email`, + coalesce(AES_DECRYPT(UNHEX(`ct`.`birthday`), decrypt_key), '') AS `Geburtsdatum`, + `ct`.`priority` AS `Prio`, + `ct`.`invoice` AS `Abrechnung`, + `ct`.`reminder` AS `Mahnung` + from `pyqcrm`.`contactperson` `ct` + where `ct`.`contactpersonid` = cont_id; + + CALL logger (cont_id, "SELECT", "getCustomerContact: Get a client's contact person"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getCustomerView` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getCustomerView`(IN decrypt_key VARCHAR(45), IN criterion VARCHAR(35)) +BEGIN + IF criterion = "Interessent" THEN + SELECT BusinessId AS customer, `Kundenname`, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner + FROM interestedinfo ORDER BY Kundenname ASC; + CALL logger (NULL, "SELECT", "getCustomerView: Get all Interessent written by OSCHKAR"); + ELSEIF criterion = "Kunden" THEN + SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner + FROM clienteleinfo ORDER BY Kundenname ASC; + CALL logger (NULL, "SELECT", "getCustomerView: Get all Kunden written by OSCHKAR"); + ELSEIF criterion = "Lieferant" THEN + SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner + FROM providerinfo ORDER BY Kundenname ASC; + CALL logger (NULL, "SELECT", "getCustomerView: Get all Lieferant written by OSCHKAR"); + ELSEIF criterion = "Erledigt" THEN + SELECT BusinessId AS customer, Kundenname, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner + FROM finishedinfo ORDER BY Kundenname ASC; + CALL logger (NULL, "SELECT", "getCustomerView: Get all Erledigt written by OSCHKAR"); + ELSE + SELECT BusinessId AS customer, `Kundenname`, CONCAT(Straße, " ", Hausnummer) AS Straße, PLZ, Ort, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS Ansprechpartner + FROM customerinfo ORDER BY Kundenname ASC; + CALL logger (NULL, "SELECT", "getCustomerView: Get all Customer written by OSCHKAR"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getEmployeeContract` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getEmployeeContract`(IN g_contractstart DATE, IN g_contractend DATE, + IN g_workhours TINYINT(1)UNSIGNED, IN g_workdays TINYINT(1)UNSIGNED, + IN g_salary DECIMAL(5,2) UNSIGNED, IN g_employeeid INT(11), IN job_desc VARCHAR(100)) +BEGIN + DECLARE db_empcontractid INT (11); + + SELECT empcontractid INTO db_empcontractid FROM employeecontract WHERE employeeid = g_employeeid; + CALL logger (db_empcontractid, 'SELECT', 'getEmployeeContract() - empcontractid from employeecontract'); + IF db_empcontractid IS NULL THEN + INSERT INTO employeecontract (contractstart, contractend, salary, employeeid, jobdescription) + VALUES (g_contractstart, g_contractend, g_salary, g_employeeid, job_desc); + SET db_empcontractid = LAST_INSERT_ID(); + END IF; + INSERT INTO employeeweeklyhours (workhours, workdays, empcontractid) + VALUES (g_workhours, g_workdays, db_empcontractid); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getEmployeeContractType` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getEmployeeContractType`(IN descr VARCHAR(30), + OUT empcontractid INT (11)) +BEGIN + SELECT employeecontracttypeid INTO empcontractid FROM employeecontracttype WHERE description = descr; + CALL logger (empcontractid, 'SELECT', CONCAT('getEmployeeContractType() - ', descr)); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getEmployeeTable` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getEmployeeTable`(IN criterion VARCHAR(30), IN procesado BOOL, IN fired BOOL, + IN proc_and_nonproc BOOL, IN decrypt_key VARCHAR(45)) +BEGIN + DECLARE is_processed VARCHAR(13); + + SET is_processed = CASE WHEN procesado = TRUE THEN 'processed' ELSE 'non-processed' END; + + IF fired = TRUE THEN + CALL getFiredAppliEmpView(criterion, decrypt_key); + ELSEIF criterion = "Bewerber" THEN + CALL getOnlyApplicants(procesado, proc_and_nonproc, decrypt_key); + ELSEIF criterion = "Mitarbeiter" THEN + CALL getOnlyEmployees(procesado, proc_and_nonproc, decrypt_key); + ELSE + IF proc_and_nonproc = TRUE THEN + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + `Bewerber`, CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter/Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM employeeapplicantview ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getEmployeeTable: Get all employees and applicants"); + ELSE + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + `Bewerber`, CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter/Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM employeeapplicantview WHERE `Erledigt` = procesado ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", CONCAT("getEmployeeTable: Get ", is_processed, " employees and applicants")); + END IF; + END IF; + COMMIT; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getFiredAppliEmpView` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getFiredAppliEmpView`(IN criterion VARCHAR(30), IN decrypt_key VARCHAR(45)) +BEGIN + IF criterion = "Bewerber" THEN + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt` + FROM applicantview WHERE `Beschäftigungsverhältnis` = 'Ausgeschieden' ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getFiredAppliEmpView: Get fired applicants "); + ELSEIF criterion = "Mitarbeiter" THEN + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt` + FROM employeeview WHERE `Beschäftigungsverhältnis` = 'Ausgeschieden' ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getFiredAppliEmpView: Get fired employees"); + ELSE + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, `Bewerber`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter/Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt` + FROM employeeapplicantview WHERE `Beschäftigungsverhältnis` = 'Ausgeschieden' ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getFiredAppliEmpView: Get fired employees and applicants"); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getIdentification` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getIdentification`(IN g_idnumber INT(11), IN g_idissued DATE, + IN g_idexpiry DATE, IN g_idauthority VARCHAR(50), IN g_idtype VARCHAR(50), IN g_employeeid INT(11)) +BEGIN + DECLARE db_typeid INT(11); + + SELECT typeid INTO db_typeid FROM identificationtype WHERE idtype = g_idtype; + CALL logger (db_typeid, 'SELECT', 'getIdentification - get a typeid'); + IF db_typeid IS NULL THEN + INSERT INTO identificationtype (idtype) VALUES (g_idtype); + SET db_typeid = LAST_INSERT_ID(); + END IF; + INSERT INTO identification(idnumber, issued, expiry, authority, typeid, employeeid) + VALUES (g_idnumber, g_idissued, g_idexpiry, g_idauthority, db_typeid, g_employeeid); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getLastInsertId` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getLastInsertId`() +BEGIN + SELECT LAST_INSERT_ID(); + CALL logger ((SELECT LAST_INSERT_ID()), "SELECT", "getLastInsertId: Select LastInsertID written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getMaritalStatus` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getMaritalStatus`(IN mstatus VARCHAR(25), OUT statusid INT(11)) +BEGIN + SELECT maritalstatusid INTO statusid FROM maritalstatus WHERE status = mstatus; + CALL logger (statusid, 'SELECT', CONCAT('getMaritalstatus() - ', mstatus)); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getNationality` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getNationality`(IN ncountry VARCHAR(200), OUT ncountryid INT(11)) +BEGIN + SELECT countryid INTO ncountryid FROM country WHERE country LIKE CONCAT('%', ncountry, '%'); + CALL logger(ncountryid, 'SELECT', 'getNationality - get countryid'); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getObjects` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getObjects`(IN enabled CHAR(7), IN enc_key VARCHAR(45)) +BEGIN + CASE enabled + WHEN 'Aktiv' THEN + SELECT `ObjektId`, `Objekt-Nr.`, `Parteien`, `Besonderheiten`, `Kunde`, + CONCAT(Hi1, ' ', AES_DECRYPT(UNHEX(Fkon1), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon1), enc_key)) AS `Kontakt I`, + CONCAT(Hi2, ' ', AES_DECRYPT(UNHEX(Fkon2), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon2), enc_key)) AS `Kontakt II`, + CONCAT(Hi3, ' ', AES_DECRYPT(UNHEX(Fkon3), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon3), enc_key)) AS `Kontakt III` + FROM objectview WHERE Aktiv = TRUE; + WHEN 'Inaktiv' THEN + SELECT `ObjektId`, `Objekt-Nr.`, `Parteien`, `Besonderheiten`, `Kunde`, + CONCAT(Hi1, ' ', AES_DECRYPT(UNHEX(Fkon1), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon1), enc_key)) AS `Kontakt I`, + CONCAT(Hi2, ' ', AES_DECRYPT(UNHEX(Fkon2), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon2), enc_key)) AS `Kontakt II`, + CONCAT(Hi3, ' ', AES_DECRYPT(UNHEX(Fkon3), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon3), enc_key)) AS `Kontakt III` + FROM objectview WHERE Aktiv = FALSE; + ELSE + SELECT `ObjektId`, `Objekt-Nr.`, `Parteien`, `Besonderheiten`, `Kunde`, + CONCAT(Hi1, ' ', AES_DECRYPT(UNHEX(Fkon1), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon1), enc_key)) AS `Kontakt I`, + CONCAT(Hi2, ' ', AES_DECRYPT(UNHEX(Fkon2), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon2), enc_key)) AS `Kontakt II`, + CONCAT(Hi3, ' ', AES_DECRYPT(UNHEX(Fkon3), enc_key), ' ', AES_DECRYPT(UNHEX(Lkon3), enc_key)) AS `Kontakt III` + FROM objectview; + END CASE; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getOnlyApplicants` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getOnlyApplicants`(IN procesado BOOL, IN everyone BOOL, IN decrypt_key VARCHAR(45)) +BEGIN + DECLARE is_processed VARCHAR(13); + + SET is_processed = CASE WHEN procesado = TRUE THEN 'processed' ELSE 'non-processed' END; + + IF everyone = TRUE THEN + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM applicantview ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getOnlyApplicants: Get all applicants"); + ELSE + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Bewerber`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM applicantview WHERE Erledigt = procesado ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", CONCAT("getOnlyApplicants: Get all ", is_processed, " applicants")); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getOnlyEmployees` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getOnlyEmployees`(IN procesado BOOL, IN everyone BOOL, IN decrypt_key VARCHAR(45)) +BEGIN + DECLARE is_processed VARCHAR(13); + + SET is_processed = CASE WHEN procesado = TRUE THEN 'processed' ELSE 'non-processed' END; + + IF everyone = TRUE THEN + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM employeeview ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", "getOnlyEmployees: Get all employees"); + ELSE + SELECT `EmployeeId` AS employee, CONVERT(AES_DECRYPT(UNHEX(Aktenzeichen), decrypt_key), CHAR) AS `Aktenzeichen`, + CONCAT(Anrede, " ", AES_DECRYPT(UNHEX(Vorname), decrypt_key), " ", + AES_DECRYPT(UNHEX(Nachname), decrypt_key)) AS `Mitarbeiter`, + CONVERT(AES_DECRYPT(UNHEX(Mobil), decrypt_key), CHAR) AS `Handy`, + CONVERT(AES_DECRYPT(UNHEX(Telefon), decrypt_key), CHAR) AS `Telefon`, + CONVERT(AES_DECRYPT(UNHEX(Email), decrypt_key), CHAR) AS `E-Mail`, `Stadt`, `Beschäftigungsverhältnis` + FROM employeeview WHERE Erledigt = procesado ORDER BY Vorname ASC; + CALL logger (NULL, "SELECT", CONCAT("getOnlyEmployees: Get all ", is_processed, " employees")); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getSocialInformation` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getSocialInformation`(IN g_socialno VARCHAR(75), + IN g_knappschaft VARCHAR(50), + IN g_medicalinsurance VARCHAR(50), + IN g_employeeid INT(11)) +BEGIN + DECLARE db_medicalcareid INT(11); + + SELECT medicalcareid INTO db_medicalcareid FROM medicalcare WHERE g_medicalinsurance = company; + CALL logger(db_medicalcareid, 'SELECT', 'getSocialInformation - add a company'); + IF db_medicalcareid IS NULL THEN + INSERT INTO medicalcare (company) VALUES (g_medicalinsurance); + SET db_medicalcareid = LAST_INSERT_ID(); + END IF; + INSERT INTO socialinformation (socialsecurityno, employeeid, medicalcareid, knappschaft) + VALUES (g_socialno, g_employeeid, db_medicalcareid, g_knappschaft); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getSupervisor` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getSupervisor`(IN g_supervisor VARCHAR(50), OUT g_userid INT(11)) +BEGIN + DECLARE db_roleid INT(11); + + SELECT us.usersid, ro.roleid INTO g_userid, db_roleid + FROM users AS us, userrole AS ro + WHERE ro.description = 'Disponent' AND us.gecos = g_supervisor AND us.roleid = ro.roleid; + + IF g_userid IS NULL THEN + SELECT ro.roleid INTO db_roleid + FROM userrole AS ro + WHERE ro.description = 'Disponent'; + INSERT INTO users(username, password, enabled, roleid, gecos) + VALUES (g_supervisor, g_supervisor, 0, db_roleid, g_supervisor); + SET g_userid = LAST_INSERT_ID(); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `getUser` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getUser`( IN uname VARCHAR(50)) +BEGIN + SELECT * FROM users WHERE username = uname AND enabled = 1; + CALL logger (NULL, "SELECT", "getUser: Select User written by OSCHKAR"); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `importAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `importAddress`(IN in_country VARCHAR(100), IN in_city VARCHAR(50), + IN in_postcode VARCHAR(15)) +BEGIN + DECLARE aid INT(11); + DECLARE cid INT(11); + DECLARE tid INT(11); + DECLARE pid INT(11); + CALL checkAddress(in_country, in_city, in_postcode, aid); + CALL checkCountry(in_country, cid); + CALL checkCity(in_city, tid); + CALL checkPostcode(in_postcode, pid); + + IF aid IS NULL THEN + CALL addAddress(cid, tid, pid, aid); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `logger` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `logger`(recid INT(11), operation VARCHAR(100), msg VARCHAR(500)) +BEGIN + INSERT INTO logs (recordid, operationtype, message) VALUES (recid, operation, msg); + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `logObjectContact` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `logObjectContact`() +BEGIN + IF @c_1id != 0 THEN + CALL logger(@c_1id, "INSERT", "addObjectContact: Object contact 1 added"); + SET @c_1id = 0; + END IF; + + IF @c_2id != 0 THEN + CALL logger(@c_2id, "INSERT", "addObjectContact: Object contact 2 added"); + SET @c_2id = 0; + END IF; + + IF @c_3id != 0 THEN + CALL logger(@c_3id, "INSERT", "addObjectContact: Object contact 3 added"); + SET @c_3id = 0; + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `updateBusiness` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `updateBusiness`(IN p_businessid INT(11), IN update_business JSON) +BEGIN + + + + DECLARE v_company VARCHAR(100); + DECLARE v_phone VARCHAR(50); + DECLARE v_cell VARCHAR(50); + DECLARE v_email VARCHAR(255); + DECLARE v_homepage VARCHAR(255); + DECLARE v_director VARCHAR(100); + DECLARE v_info VARCHAR(500); + DECLARE v_taxno VARCHAR(50); + DECLARE v_city VARCHAR(50); + DECLARE v_houseno VARCHAR(6); + DECLARE v_postcode INT(11); + DECLARE v_street VARCHAR(100); + DECLARE v_houseid INT(11); + DECLARE v_addressid INT(11); + DECLARE v_postcodeid INT(11); + DECLARE v_streetid INT(11); + DECLARE x_postcodeid INT(11); + DECLARE x_addressid INT(11); + + + + + SET v_company = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.company')); + SET v_phone = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.phone')); + SET v_cell = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.cell')); + SET v_email = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.email')); + SET v_homepage = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.homepage')); + SET v_director = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.ceo')); + SET v_info = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.info')); + SET v_taxno = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.tax')); + SET v_city = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.city')); + SET v_houseno = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.house')); + SET v_postcode = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.zip')); + SET v_street = JSON_UNQUOTE(JSON_EXTRACT(update_business, '$.street')); + + SELECT lct.postcodeid, lct.houseid, lct.addressid INTO v_postcodeid, v_houseid, v_addressid FROM location_ct as lct WHERE lct.businessid = p_businessid; + SELECT h.strid INTO v_streetid FROM house as h WHERE h.houseid = v_houseid; + SELECT p.postcodeid, p.addressid INTO x_postcodeid, x_addressid FROM postcode as p WHERE p.postcode = v_postcode; + + + UPDATE business + + SET + company = COALESCE(v_company, company), + phone = COALESCE(v_phone, phone), + mobilephone = COALESCE(v_cell, mobilephone), + email = COALESCE(v_email, email), + homepage = COALESCE(v_homepage, homepage), + director = COALESCE(v_director, director), + info = COALESCE(v_info, info), + taxno = COALESCE(v_taxno, taxno) + + WHERE businessid = p_businessid; + + UPDATE address SET city = v_city WHERE addressid = v_addressid; + + UPDATE street SET name = v_street, postcodeid = x_postcodeid WHERE postcodeid = v_postcodeid AND strid = v_streetid; + UPDATE house SET houseno = v_houseno WHERE houseid = v_houseid AND strid = v_streetid; + UPDATE location_ct SET addressid = v_addressid, postcodeid = x_postcodeid WHERE businessid = p_businessid; + + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP PROCEDURE IF EXISTS `updateContactPerson` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +DELIMITER ;; +CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `updateContactPerson`(IN p_contactpersonid INT(11), IN update_contact JSON) +BEGIN + DECLARE x_salute VARCHAR(15); + DECLARE x_fname VARCHAR (75); + DECLARE x_lname VARCHAR (75); + DECLARE x_phone VARCHAR (75); + DECLARE x_cell VARCHAR (75); + DECLARE x_pos VARCHAR (50); + DECLARE x_email VARCHAR (255); + DECLARE x_birthday VARCHAR (35); + DECLARE x_priority BOOL; + DECLARE x_invoice BOOL; + DECLARE x_reminder BOOL; + + + SET x_salute = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.salute')); + SET x_fname = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.fname')); + SET x_lname = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.lname')); + SET x_phone = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.phone')); + SET x_cell = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.cell')); + SET x_email = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.email')); + SET x_birthday = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.birthday')); + SET x_pos = JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.position')); + SET x_priority = if(JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.priority')) = 'Ja', true, false); + SET x_invoice = if(JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.invoice')) = 'Ja', true, false); + SET x_reminder = if(JSON_UNQUOTE(JSON_EXTRACT(update_contact, '$.reminder')) = 'Ja', true, false); + + + + UPDATE contactperson + SET + salutation = COALESCE(x_salute, salutation), + firstname = COALESCE(x_fname, firstname), + lastname = COALESCE(x_lname, lastname), + phone = COALESCE(x_phone, phone), + mobilephone = COALESCE(x_cell, mobilephone), + email = COALESCE(x_email, email), + birthday = COALESCE(x_birthday, birthday), + pos = COALESCE(x_pos, pos), + priority = COALESCE(x_priority, priority), + invoice = COALESCE(x_invoice, invoice), + reminder = COALESCE(x_reminder, reminder) + + WHERE contactpersonid = p_contactpersonid; + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Final view structure for view `addressesview` +-- + +/*!50001 DROP VIEW IF EXISTS `addressesview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `addressesview` AS select `ad`.`countryid` AS `countryid`,`ad`.`cityid` AS `cityid`,`ad`.`postcodeid` AS `postcodeid`,`c`.`countryshort` AS `Land`,`t`.`city` AS `Stadt`,`p`.`postcode` AS `PLZ` from (((`address` `ad` left join `country` `c` on(`ad`.`countryid` = `c`.`countryid`)) left join `city` `t` on(`ad`.`cityid` = `t`.`cityid`)) left join `postcode` `p` on(`ad`.`postcodeid` = `p`.`postcodeid`)) order by `p`.`postcode` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `applicantview` +-- + +/*!50001 DROP VIEW IF EXISTS `applicantview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `applicantview` AS select `emp`.`employeeid` AS `EmployeeId`,`emp`.`reference` AS `Aktenzeichen`,coalesce(`emp`.`firstname`,'') AS `Vorname`,coalesce(`emp`.`lastname`,'') AS `Nachname`,coalesce(`emp`.`salutation`,'') AS `Anrede`,coalesce(`emp`.`mobilephone`,'') AS `Mobil`,coalesce(`emp`.`phone`,'') AS `Telefon`,coalesce(`emp`.`email`,'') AS `Email`,coalesce(`ect`.`description`,'') AS `Beschäftigungsverhältnis`,`emp`.`processed` AS `Erledigt` from (`employee` `emp` left join `employeecontracttype` `ect` on(`emp`.`employeecontracttypeid` = `ect`.`employeecontracttypeid`)) where `emp`.`applicant` = 1 */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `clienteleinfo` +-- + +/*!50001 DROP VIEW IF EXISTS `clienteleinfo`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `clienteleinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((`business` `bt` left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Kunde' */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `contactpersonview` +-- + +/*!50001 DROP VIEW IF EXISTS `contactpersonview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `contactpersonview` AS select `contactperson`.`contactpersonid` AS `contactid`,`contactperson`.`salutation` AS `Anrede`,`contactperson`.`firstname` AS `Vorname`,`contactperson`.`lastname` AS `Nachname`,coalesce(`contactperson`.`phone`,'') AS `Telefon`,coalesce(`contactperson`.`mobilephone`,'') AS `Mobil`,coalesce(`contactperson`.`email`,'') AS `E-Mail`,coalesce(`contactperson`.`pos`,'') AS `Position`,case when `contactperson`.`priority` = 1 then 'JA' else 'NEIN' end AS `Entscheider` from `contactperson` order by `contactperson`.`firstname` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `customerinfo` +-- + +/*!50001 DROP VIEW IF EXISTS `customerinfo`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `customerinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname`,`lv`.`PLZ` AS `PLZ`,`lv`.`Stadt` AS `Stadt`,`lv`.`Straße` AS `Straße`,`lv`.`Hausnummer` AS `Hausnummer` from ((`business` `bt` left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) left join `locationview` `lv` on(`bt`.`locationid` = `lv`.`locationid`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `employeeapplicantview` +-- + +/*!50001 DROP VIEW IF EXISTS `employeeapplicantview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `employeeapplicantview` AS select `emp`.`employeeid` AS `EmployeeId`,`emp`.`reference` AS `Aktenzeichen`,coalesce(`emp`.`firstname`,'') AS `Vorname`,coalesce(`emp`.`lastname`,'') AS `Nachname`,coalesce(`emp`.`salutation`,'') AS `Anrede`,coalesce(`emp`.`mobilephone`,'') AS `Mobil`,coalesce(`emp`.`phone`,'') AS `Telefon`,coalesce(`emp`.`email`,'') AS `Email`,coalesce(`ect`.`description`,'') AS `Beschäftigungsverhältnis`,`emp`.`processed` AS `Erledigt`,`emp`.`applicant` AS `Bewerber` from (`employee` `emp` left join `employeecontracttype` `ect` on(`emp`.`employeecontracttypeid` = `ect`.`employeecontracttypeid`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `employeeview` +-- + +/*!50001 DROP VIEW IF EXISTS `employeeview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `employeeview` AS select `emp`.`employeeid` AS `EmployeeId`,`emp`.`reference` AS `Aktenzeichen`,coalesce(`emp`.`firstname`,'') AS `Vorname`,coalesce(`emp`.`lastname`,'') AS `Nachname`,coalesce(`emp`.`salutation`,'') AS `Anrede`,coalesce(`emp`.`mobilephone`,'') AS `Mobil`,coalesce(`emp`.`phone`,'') AS `Telefon`,coalesce(`emp`.`email`,'') AS `Email`,coalesce(`ect`.`description`,'') AS `Beschäftigungsverhältnis`,`emp`.`processed` AS `Erledigt`,`emp`.`applicant` AS `Bewerber` from (`employee` `emp` left join `employeecontracttype` `ect` on(`emp`.`employeecontracttypeid` = `ect`.`employeecontracttypeid`)) where `emp`.`applicant` = 0 */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `empprocessedview` +-- + +/*!50001 DROP VIEW IF EXISTS `empprocessedview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `empprocessedview` AS select 1 AS `1` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `finishedinfo` +-- + +/*!50001 DROP VIEW IF EXISTS `finishedinfo`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `finishedinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((`business` `bt` left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Erledigt' */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `interestedinfo` +-- + +/*!50001 DROP VIEW IF EXISTS `interestedinfo`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `interestedinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((`business` `bt` left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) left join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Interessent' */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `locationview` +-- + +/*!50001 DROP VIEW IF EXISTS `locationview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `locationview` AS select `lc`.`locationid` AS `locationid`,`lc`.`addressid` AS `addressid`,`lc`.`housemapid` AS `housemapid`,`ad`.`countryid` AS `countryid`,`ad`.`cityid` AS `cityid`,`ad`.`postcodeid` AS `postcodeid`,`hm`.`streetid` AS `streetid`,`hm`.`housenoid` AS `housenoid`,`c`.`countryshort` AS `Land`,`t`.`city` AS `Stadt`,`p`.`postcode` AS `PLZ`,`s`.`street` AS `Straße`,`h`.`houseno` AS `Hausnummer` from (((((((`location` `lc` left join `address` `ad` on(`lc`.`addressid` = `ad`.`addressid`)) left join `housemap` `hm` on(`lc`.`housemapid` = `hm`.`housemapid`)) left join `country` `c` on(`ad`.`countryid` = `c`.`countryid`)) left join `city` `t` on(`ad`.`cityid` = `t`.`cityid`)) left join `postcode` `p` on(`ad`.`postcodeid` = `p`.`postcodeid`)) left join `street` `s` on(`hm`.`streetid` = `s`.`streetid`)) left join `house` `h` on(`hm`.`housenoid` = `h`.`houseid`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `objectview` +-- + +/*!50001 DROP VIEW IF EXISTS `objectview`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `objectview` AS select `ob`.`objectid` AS `ObjektId`,`ob`.`active` AS `Aktiv`,`ob`.`objectno` AS `Objekt-Nr.`,`ob`.`units` AS `Parteien`,`ob`.`remarks` AS `Besonderheiten`,`bsn`.`company` AS `Kunde`,`ct1`.`salutation` AS `Hi1`,`ct1`.`firstname` AS `Fkon1`,`ct1`.`lastname` AS `Lkon1`,`ct2`.`salutation` AS `Hi2`,`ct2`.`firstname` AS `Fkon2`,`ct2`.`lastname` AS `Lkon2`,`ct3`.`salutation` AS `Hi3`,`ct3`.`firstname` AS `Fkon3`,`ct3`.`lastname` AS `Lkon3` from (((((`objects` `ob` left join `objectmanagement` `omt` on(`ob`.`objectid` = `omt`.`objectid`)) left join `business` `bsn` on(`omt`.`businessid` = `bsn`.`businessid`)) left join `contactperson` `ct1` on(`omt`.`contact1id` = `ct1`.`contactpersonid`)) left join `contactperson` `ct2` on(`omt`.`contact2id` = `ct2`.`contactpersonid`)) left join `contactperson` `ct3` on(`omt`.`contact3id` = `ct3`.`contactpersonid`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `providerinfo` +-- + +/*!50001 DROP VIEW IF EXISTS `providerinfo`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`pyqcrm`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `providerinfo` AS select `bt`.`businessid` AS `BusinessId`,coalesce(`bt`.`company`,'') AS `Kundenname`,coalesce(`ct`.`salutation`,'') AS `Anrede`,coalesce(`ct`.`firstname`,'') AS `Vorname`,coalesce(`ct`.`lastname`,'') AS `Nachname` from ((`business` `bt` left join `contactperson` `ct` on(`bt`.`contactpersonid` = `ct`.`contactpersonid`)) join `businesstype` `btt` on(`bt`.`btid` = `btt`.`btypeID`)) where `btt`.`description` = 'Lieferant' */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-05-14 13:28:38 diff --git a/lib/ConfigLoader.py b/lib/ConfigLoader.py index 3413470..42c4f0c 100644 --- a/lib/ConfigLoader.py +++ b/lib/ConfigLoader.py @@ -165,7 +165,6 @@ class ConfigLoader(QObject): else: return None - def __invalidateEncryptionKey(self): # print(f"In {__file__} file, __invalidateEncryptionKey()") self.__config['pyqcrm']['ENCRYPTION_KEY_VALID'] = 'No' @@ -200,11 +199,6 @@ class ConfigLoader(QObject): except Exception as e: print(str(e)) - - - - - def __configLoad(self): # print(f"In {__file__} file, __configLoad()") try: diff --git a/lib/DB/BusinessModel.py b/lib/DB/BusinessModel.py index 4c5b223..1207417 100644 --- a/lib/DB/BusinessModel.py +++ b/lib/DB/BusinessModel.py @@ -75,7 +75,7 @@ class BusinessModel(QAbstractTableModel): self.__business_dao.newBusinessAdded.connect(self.__refreshView) self.__conf = ConfigLoader().getConfig() self.__key = self.__conf['pyqcrm']['ENCRYPTION_KEY'] - # self.__getData() + self.__getData() def __getData(self, criterion = "Alle"): self.beginResetModel() diff --git a/lib/DB/ContactDAO.py b/lib/DB/ContactDAO.py index adde68a..abc9e85 100644 --- a/lib/DB/ContactDAO.py +++ b/lib/DB/ContactDAO.py @@ -50,15 +50,15 @@ class ContactDAO(QObject): self.newObjectContactAdded.emit(False) def getContact(self, contact_id, enc_key = None): - # try: - # if self.__cur: - # self.__cur.callproc("getCustomerContact", (contact_id, enc_key,)) - # #self.__all_cols = [desc[0] for desc in self.__cur.description] - # return self.__cur.fetchall() #, self.__all_cols - # else: - # return None #, None - # except mariadb.Error as e: - # print(str(e)) - pass + try: + if self.__cur: + self.__cur.callproc("getCustomerContact", (contact_id, enc_key,)) + #self.__all_cols = [desc[0] for desc in self.__cur.description] + return self.__cur.fetchall() #, self.__all_cols + else: + return None #, None + except mariadb.Error as e: + print(str(e)) + diff --git a/lib/DB/EmployeeModel.py b/lib/DB/EmployeeModel.py index 0a38809..9d2f6f8 100644 --- a/lib/DB/EmployeeModel.py +++ b/lib/DB/EmployeeModel.py @@ -1,8 +1,6 @@ import json - from PySide6.QtCore import QAbstractTableModel, QModelIndex, Qt, Slot, Signal, QJsonDocument -from PySide6.QtQml import QJSValue - +from PySide6.QtQml import QJSValue, QJSValueIterator from .EmployeeDAO import EmployeeDAO # from ..PyqcrmFlags import PyqcrmFlags, PyqcrmAppliEmpyFlags from ..ConfigLoader import ConfigLoader @@ -35,20 +33,31 @@ class EmployeeModel(QAbstractTableModel): self.__employee_dao.addEmployee(new_employee, self.__key, False) @Slot(QJSValue) - def addApplicant(self, applicant: QJSValue): - self.__employee_dao.addEmployee({ - "city": applicant.property("city").toString(), - "email": applicant.property("email").toString(), - "firstname": applicant.property("firstname").toString(), - "formofaddress": applicant.property("formofaddress").toString(), - "houseno": applicant.property("houseno").toString(), - "lastname": applicant.property("lastname").toString(), - "mobile": applicant.property("mobile").toString(), - "phone": applicant.property("phone").toString(), - "postcode": applicant.property("postcode").toInt(), - "street": applicant.property("street").toString(), - "title": applicant.property("title").toString(), - }, self.__key, True) + def addApplicant(self, new_applicant): + data = {} + it = QJSValueIterator(new_applicant) + while it.hasNext(): + it.next() + if "function" in it.value().toString() or "objectName" == it.name(): + continue + data[it.name()] = it.value().toString() + self.__employee_dao.addEmployee(data, self.__key) + + # @Slot(QJSValue) + # def addApplicant(self, applicant: QJSValue): + # self.__employee_dao.addEmployee({ + # "city": applicant.property("city").toString(), + # "email": applicant.property("email").toString(), + # "firstname": applicant.property("firstname").toString(), + # "formofaddress": applicant.property("formofaddress").toString(), + # "houseno": applicant.property("houseno").toString(), + # "lastname": applicant.property("lastname").toString(), + # "mobile": applicant.property("mobile").toString(), + # "phone": applicant.property("phone").toString(), + # "postcode": applicant.property("postcode").toInt(), + # "street": applicant.property("street").toString(), + # "title": applicant.property("title").toString(), + # }, self.__key, True) @Slot(bool) def __refreshView(self, added): diff --git a/main.py b/main.py index cf10541..7fa4103 100644 --- a/main.py +++ b/main.py @@ -58,12 +58,12 @@ def initializeProgram(): if DbManager().getConnection(): db_con = True user = UserManager() - # business_model = BusinessModel() + business_model = BusinessModel() address_model = AddressModel() - # business_type = BTypeModel() - # contact_model = ContactModel() - # employee_model = EmployeeModel() - # object_model = ObjectModel() + business_type = BTypeModel() + contact_model = ContactModel() + employee_model = EmployeeModel() + object_model = ObjectModel() publishContext() diff --git a/qml.qrc b/qml.qrc index 6010001..a750208 100644 --- a/qml.qrc +++ b/qml.qrc @@ -6,10 +6,8 @@ Gui/DbConfiguration.qml Gui/LoginScreen.qml Gui/AddContact.qml - Gui/AddCustomer.qml Gui/Dashboard.qml Gui/main.qml - Gui/CustomerView.qml Gui/NoDbConnection.qml Gui/Notifications.qml Gui/AddObject.qml @@ -18,15 +16,10 @@ Gui/ObjectAddOnContactPerson.qml Gui/ObjectAddOnEmployee.qml Gui/AddObjectEmployee.qml - Gui/CustomersTable.qml - Gui/CustomerDetails.qml Gui/ObjectsTable.qml Gui/ObjectDetails.qml Gui/AddNewObject.qml Gui/PrinterDialog.qml - Gui/CustomerContactDetails.qml - Gui/NoCustomerContact.qml - Gui/CustomerDetailsView.qml Gui/ReadMe.qml Gui/UsersPage.qml Gui/PyqcrmConf.qml @@ -81,6 +74,17 @@ Gui/Customer/CustomersTable.qml Gui/Customer/CustomerView.qml Gui/Customer/qmldir + Gui/Customer/NoCustomerContact.qml + Gui/Objects/AddNewObject.qml + Gui/Objects/AddObject.qml + Gui/Objects/AddObjectEmployee.qml + Gui/Objects/ObjectAddOnContactPerson.qml + Gui/Objects/ObjectAddOnEmployee.qml + Gui/Objects/ObjectAddOns.qml + Gui/Objects/ObjectDetails.qml + Gui/Objects/ObjectsTable.qml + Gui/Objects/ObjectView.qml + Gui/Objects/qmldir