From 82453a5dff1377c513a60d7348915344d6d65fd8 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Tue, 2 Jul 2024 14:23:40 +0200 Subject: [PATCH] =?UTF-8?q?model=20update=20-=20l=C3=B6schen=20von=20cdtr.?= =?UTF-8?q?number=20in=20sachrechnung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/sepa/result_sepa01.xml | 12 +- reports/sepa/result_sepa02.xml | 2 +- ...chnungseingang-sachrechnung-de-1.0.22.bpmn | 5439 +++++++++++++++++ 3 files changed, 5446 insertions(+), 7 deletions(-) create mode 100644 workflow/rechnungseingang-sachrechnung-de-1.0.22.bpmn diff --git a/reports/sepa/result_sepa01.xml b/reports/sepa/result_sepa01.xml index 77383c0..2941c42 100644 --- a/reports/sepa/result_sepa01.xml +++ b/reports/sepa/result_sepa01.xml @@ -6,7 +6,7 @@ bf073e72asdf512c4d60af7740872036 - 2024-06-18T16:38:12 + 2024-06-27T15:35:03 3 655.90 @@ -23,7 +23,7 @@ SEPA - 2024-06-18 + 2024-06-27 Targo Bank @@ -51,8 +51,8 @@ - Supplier 1 - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + Supplier 1 młody trans + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx @@ -76,8 +76,8 @@ - Supplier 1 - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + Supplier 1 MIK-TRANS" JAN SLABY + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx diff --git a/reports/sepa/result_sepa02.xml b/reports/sepa/result_sepa02.xml index 888dd92..affc81d 100644 --- a/reports/sepa/result_sepa02.xml +++ b/reports/sepa/result_sepa02.xml @@ -6,7 +6,7 @@ bf073e72asdf512c4d60af7740872036 - 2024-06-27T14:48:35 + 2024-06-27T15:35:03 3 655.90 diff --git a/workflow/rechnungseingang-sachrechnung-de-1.0.22.bpmn b/workflow/rechnungseingang-sachrechnung-de-1.0.22.bpmn new file mode 100644 index 0000000..bef3ca1 --- /dev/null +++ b/workflow/rechnungseingang-sachrechnung-de-1.0.22.bpmn @@ -0,0 +1,5439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Task_2 + ExclusiveGateway_1 + StartEvent_1 + IntermediateCatchEvent_3 + IntermediateCatchEvent_13 + IntermediateCatchEvent_6 + IntermediateCatchEvent_24 + IntermediateCatchEvent_7 + EndEvent_3 + Task_8 + IntermediateCatchEvent_19 + IntermediateThrowEvent_3 + IntermediateCatchEvent_5000-20 + EventBasedGateway_1 + IntermediateCatchEvent_36 + IntermediateThrowEvent_6 + IntermediateCatchEvent_40 + IntermediateThrowEvent_7 + + + + Task_6 + IntermediateCatchEvent_15 + Task_15 + IntermediateThrowEvent_1 + IntermediateCatchEvent_9 + IntermediateCatchEvent_11 + Task_7 + EventBasedGateway_4 + IntermediateCatchEvent_31 + IntermediateCatchEvent_5 + Task_9 + IntermediateCatchEvent_10 + IntermediateThrowEvent_5 + IntermediateCatchEvent_16 + Task_5 + IntermediateCatchEvent_1 + IntermediateCatchEvent_20 + IntermediateCatchEvent_22 + ExclusiveGateway_2 + IntermediateCatchEvent_29 + EndEvent_4 + IntermediateCatchEvent_12 + IntermediateCatchEvent_23 + IntermediateCatchEvent_28 + IntermediateCatchEvent_18 + IntermediateCatchEvent_14 + Task_1 + IntermediateCatchEvent_26 + Task_14 + Task_10 + Task_11 + ExclusiveGateway_4 + IntermediateCatchEvent_34 + IntermediateCatchEvent_35 + IntermediateCatchEvent_17 + EndEvent_2 + IntermediateCatchEvent_37 + IntermediateCatchEvent_38 + IntermediateCatchEvent_39 + Task_12 + IntermediateCatchEvent_41 + IntermediateCatchEvent_42 + + event_lsWYIA + + + IntermediateCatchEvent_21 + Task_3 + IntermediateCatchEvent_25 + EventBasedGateway_2 + IntermediateCatchEvent_5005-20 + Task_4 + Task_5005 + EndEvent_1 + IntermediateCatchEvent_4 + ExclusiveGateway_3 + IntermediateCatchEvent_8 + IntermediateCatchEvent_27 + IntermediateCatchEvent_5005-10 + IntermediateThrowEvent_4 + IntermediateThrowEvent_2 + IntermediateCatchEvent_2 + IntermediateCatchEvent_32 + EventBasedGateway_3 + IntermediateCatchEvent_33 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + stop + false + +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_46 + SequenceFlow_1 + + + SequenceFlow_0 + SequenceFlow_15 + SequenceFlow_21 + SequenceFlow_33 + + + + + + + SequenceFlow_0 + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_38 + SequenceFlow_42 + SequenceFlow_63 + SequenceFlow_71 + SequenceFlow_37 + SequenceFlow_66 + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_8 + SequenceFlow_55 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_38 + + + + + + SequenceFlow_37 + SequenceFlow_8 + SequenceFlow_54 + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgcdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_33 + SequenceFlow_20 + SequenceFlow_22 + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + false + + + + + SequenceFlow_20 + + + + + + SequenceFlow_15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +false + + start + false +]]> + + + + + + + + + + + + false + + + + SequenceFlow_21 + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_59 + SequenceFlow_7 + SequenceFlow_40 + + + SequenceFlow_40 + + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + + + + SequenceFlow_54 + SequenceFlow_6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_17 + SequenceFlow_60 + SequenceFlow_9 + + + SequenceFlow_9 + + + + + + + SequenceFlow_17 + + + + + + + + SequenceFlow_22 + SequenceFlow_46 + SequenceFlow_49 + SequenceFlow_78 + SequenceFlow_83 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_49 + SequenceFlow_48 + + + SequenceFlow_48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_59 + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren?]]> + + + + + + + + + + + + false + + + + + + + + SequenceFlow_68 + SequenceFlow_7 + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_3 + SequenceFlow_6 + SequenceFlow_2 + SequenceFlow_39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_4 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_4 + SequenceFlow_75 + SequenceFlow_23 + SequenceFlow_47 + + + + + + SequenceFlow_23 + SequenceFlow_18 + SequenceFlow_19 + SequenceFlow_64 + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_19 + SequenceFlow_12 + SequenceFlow_27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_18 + SequenceFlow_28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_24 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_24 + SequenceFlow_27 + SequenceFlow_31 + SequenceFlow_56 + SequenceFlow_26 + SequenceFlow_61 + sequenceFlow_TpnS2A + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_28 + SequenceFlow_43 + SequenceFlow_62 + SequenceFlow_12 + SequenceFlow_57 + + + + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_31 + SequenceFlow_29 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + + + + + + + + + SequenceFlow_56 + SequenceFlow_30 + + + + + SequenceFlow_29 + SequenceFlow_30 + SequenceFlow_35 + SequenceFlow_5 + SequenceFlow_10 + + + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_34 + SequenceFlow_35 + SequenceFlow_16 + SequenceFlow_74 + SequenceFlow_79 + SequenceFlow_32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_34 + + + SequenceFlow_32 + + + + + + + + + + + workitem['payment.type'][0]=="direct_debit" + + + + + + + + + + + + sepa-export-manual-3.0 +1000 +payment.type +70 +20]]> + + + SequenceFlow_5 + SequenceFlow_50 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_50 + SequenceFlow_81 + SequenceFlow_51 + sequenceFlow_0Js6mQ + sequenceFlow_veHi1A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + SequenceFlow_51 + SequenceFlow_13 + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_53 + SequenceFlow_13 + SequenceFlow_36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_53 + + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_10 + SequenceFlow_80 + SequenceFlow_11 + + + + + + + workitem['payment.type'][0]=="no_sepa" + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + SequenceFlow_11 + SequenceFlow_36 + SequenceFlow_16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_39 + SequenceFlow_41 + + + + + + SequenceFlow_1 + SequenceFlow_41 + SequenceFlow_42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_43 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen?]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_26 + SequenceFlow_25 + + + SequenceFlow_25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_44 + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_44 + SequenceFlow_58 + SequenceFlow_45 + + + SequenceFlow_45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_57 + SequenceFlow_58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_61 + SequenceFlow_62 + sequenceFlow_0Js6mQ + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_47 + SequenceFlow_63 + + + + + + + + + SequenceFlow_70 + + + + + SequenceFlow_67 + + + + + SequenceFlow_65 + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_64 + SequenceFlow_65 + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + start + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_66 + SequenceFlow_67 + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_69 + SequenceFlow_70 + + + SequenceFlow_2 + SequenceFlow_68 + SequenceFlow_69 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_71 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_72 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_72 + SequenceFlow_85 + SequenceFlow_73 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + SequenceFlow_73 + SequenceFlow_74 + + + + + + + + + + + + + SequenceFlow_55 + SequenceFlow_75 + SequenceFlow_76 + + + + + + + + workitem['payment.type'][0]=="credit" + + + + SequenceFlow_77 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_78 + SequenceFlow_77 + + + + + + + + + SequenceFlow_79 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_80 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_81 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + stop + false + + + rechnungseingang-de-1.2 + 5000 + 990 + ]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_83 + SequenceFlow_82 + + + SequenceFlow_82 + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_76 + SequenceFlow_86 + SequenceFlow_84 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_84 + SequenceFlow_85 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_86 + + + + + + + + + + + + + + + + + + + + + + + + + + payment.type ]]> + + + + + + sequenceFlow_veHi1A + sequenceFlow_TpnS2A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +