From 424c5883bc275f6f415ac332bd83ca50b6a4becf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 21 Mar 2019 19:36:16 +0100 Subject: [PATCH 01/44] Fixed Errorhandling on Datenverbund Client --- soap/datenverbund_client.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 898e0f734..a5f141cd1 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -251,7 +251,7 @@ if (isset($_REQUEST['submit'])) if ($reservierteNummern !== false) echo '
Reservierte Nummern:'.print_r($reservierteNummern, true); else - echo '
Fehlgeschlagen:'.$data->errormsg; + echo '
Fehlgeschlagen:'.$result->errormsg; } break; @@ -264,7 +264,7 @@ if (isset($_REQUEST['submit'])) if ($kontingent !== false) echo '
Kontingent:'.print_r($kontingent, true); else - echo '
Fehlgeschlagen:'.$data->errormsg; + echo '
Fehlgeschlagen:'.$result->errormsg; } break; @@ -285,7 +285,7 @@ if (isset($_REQUEST['submit'])) if (ErrorHandler::isSuccess($result)) echo '
Erfolgreich gemeldet'; else - echo '
Fehlgeschlagen:'.$data->errormsg; + echo '
Fehlgeschlagen:'.$result->errormsg; break; case 'assignMatrikelnummer': @@ -295,7 +295,7 @@ if (isset($_REQUEST['submit'])) echo '
OK'; } else - echo '
Fehlgeschlagen:'.$data->errormsg; + echo '
Fehlgeschlagen:'.$result->errormsg; break; case 'getBPK': From cf639cd345c98ea5aaa9d18d85023b7a3a9b6f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 22 Mar 2019 07:20:02 +0100 Subject: [PATCH 02/44] Marked Columns gesamtstunden, faktor and stundensatz in tbl_projektarbeit as DEPRECATED --- CHANGELOG.md | 3 ++- system/dbupdate_3.3.php | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e898deb..2d712a143 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,7 +48,8 @@ lehre.tbl_zeugnis, fue.tbl_scrumsprint, fue.tbl_scrumteam, wawi.tbl_aufteilung, wawi.tbl_aufteilung_default, testtool.tbl_kategorie, testtool.tbl_kriterien, public.tbl_prestudent.rt_punkte1, public.tbl_prestudent.rt_punkte2 public.tbl_prestudent.rt_punkte3, public.tbl_prestudent.anmeldungreihungstest, public.tbl_prestudent.reihungstest_id - public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id + public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id, lehre.tbl_projektarbeit.gesamtstunden, lehre.tbl_projektarbeit.faktor, + lehre.tbl_projektarbeit.stundensatz - **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon - **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon - **[CIS]** Benotungstool/Kreuzerltool wird mit der kommenden Version aus dem Core entfernt diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2fa4dc950..98b4d746a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2767,6 +2767,32 @@ if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1" echo '
Servicekategorie zu Services hinzugefügt'; } +$qry_column_desc = " + SELECT + pgd.description + FROM + pg_catalog.pg_statio_all_tables as st + JOIN pg_catalog.pg_description pgd ON (pgd.objoid=st.relid) + JOIN information_schema.columns c ON (pgd.objsubid=c.ordinal_position AND c.table_schema=st.schemaname AND c.table_name=st.relname) + WHERE + table_schema = 'lehre' AND table_name = 'tbl_projektarbeit' AND column_name='faktor'"; +if($result = $db->db_query($qry_column_desc)) +{ + if($db->db_num_rows($result)==0) + { + $qry = " + COMMENT ON COLUMN lehre.tbl_projektarbeit.faktor IS 'DEPRECATED'; + COMMENT ON COLUMN lehre.tbl_projektarbeit.stundensatz IS 'DEPRECATED'; + COMMENT ON COLUMN lehre.tbl_projektarbeit.gesamtstunden IS 'DEPRECATED'; + "; + + if(!$db->db_query($qry)) + echo 'tbl_projektarbeit Comment: '.$db->db_last_error().'
'; + else + echo '
tbl_projektarbeit: faktor, stundensatz und gesamtstunden als deprecated markiert'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From d2280b2ade04f748afe42bd5f8732ed223289a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 22 Mar 2019 07:26:55 +0100 Subject: [PATCH 03/44] Removed Link from FAS to old Bugtracker --- content/fas.xul.php | 7 ------- content/fasoverlay.js.php | 8 -------- locale/de-AT/fas.dtd | 6 +----- 3 files changed, 1 insertion(+), 20 deletions(-) diff --git a/content/fas.xul.php b/content/fas.xul.php index d61aba624..85deaa818 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -173,7 +173,6 @@ foreach($addon_obj->result as $addon) - @@ -899,12 +898,6 @@ foreach($addon_obj->result as $addon) label = "&menu-help-manual.label;" command = "menu-help-manual:command" accesskey = "&menu-help-manual.accesskey;"/> - - + - - - - From 26e88e43e02edb6a61f165cf6f6f43c5ddcc9854 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 25 Mar 2019 09:30:21 +0100 Subject: [PATCH 04/44] Check if FAS_REIHUNGSTEST_PUNKTE_BASISPUNKTE_ANZEIGEN is defined --- content/student/aufnahmetermine.js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php index d1ffda1e1..b0a9b5a6b 100644 --- a/content/student/aufnahmetermine.js.php +++ b/content/student/aufnahmetermine.js.php @@ -262,7 +262,7 @@ function AufnahmeTermineAuswahl() document.getElementById('aufnahmetermine-textbox-endpunkte-exkl-gebiete').value = endpunkte_exkl_gebiete; // Sichtbarkeit der RT-Vergleichsergebnispunkte (ohne Quereinsteiger) - var basisgebiet_punkte_anzeigen = ; + var basisgebiet_punkte_anzeigen = ; // * Generell Anzeige nur wenn über config-Datei gesetzt ist if (basisgebiet_punkte_anzeigen) From aa584619d628c4a6e2f5356959ade73105254c97 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 25 Mar 2019 09:30:21 +0100 Subject: [PATCH 05/44] Check if FAS_REIHUNGSTEST_PUNKTE_BASISPUNKTE_ANZEIGEN is defined --- content/student/aufnahmetermine.js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php index d1ffda1e1..e77980654 100644 --- a/content/student/aufnahmetermine.js.php +++ b/content/student/aufnahmetermine.js.php @@ -262,7 +262,7 @@ function AufnahmeTermineAuswahl() document.getElementById('aufnahmetermine-textbox-endpunkte-exkl-gebiete').value = endpunkte_exkl_gebiete; // Sichtbarkeit der RT-Vergleichsergebnispunkte (ohne Quereinsteiger) - var basisgebiet_punkte_anzeigen = ; + var basisgebiet_punkte_anzeigen = ; // * Generell Anzeige nur wenn über config-Datei gesetzt ist if (basisgebiet_punkte_anzeigen) From 8bc8679143bda13d71d7a8a0eb36f71aa58027b6 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Mar 2019 16:39:47 +0100 Subject: [PATCH 06/44] - added method getLvsWithIncomings to education/Lehrveranstaltung_model (from mobility online extension) --- .../education/Lehrveranstaltung_model.php | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 3c4bae1e3..c7455f62e 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -203,4 +203,56 @@ class Lehrveranstaltung_model extends DB_Model return $this->execQuery($qry, $params); } + + /** + * Gets valid Lehrveranstaltungen with incoming places for a Studiensemester. + * Only + * 1. Lvs with incoming places > 0 + * 2. Studienordnung valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit) + * @param $studiensemester_kurzbz + * @return object + */ + public function getLvsWithIncomings($studiensemester_kurzbz) + { + $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + + $studsemres = $this->StudiensemesterModel->load($studiensemester_kurzbz); + + if (!hasData($studsemres)) + return success(array()); + + $semstart = $studsemres->retval[0]->start; + $semende = $studsemres->retval[0]->ende; + + $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $semstart, $semende, $studiensemester_kurzbz); + + $query = " + SELECT lv.*, ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::varchar(1) || stg.kurzbz) AS studiengang_kuerzel, + stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, tbl_sprache.locale + FROM lehre.tbl_lehrveranstaltung lv + JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz + JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache + WHERE lv.lehrtyp_kurzbz != 'modul' + AND ( + EXISTS + ( + SELECT 1 FROM + lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan ON tbl_studienplan_lehrveranstaltung.studienplan_id = tbl_studienplan.studienplan_id + JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id + JOIN public.tbl_studiensemester semvon ON lehre.tbl_studienordnung.gueltigvon = semvon.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigvon IS NULL + JOIN public.tbl_studiensemester sembis ON lehre.tbl_studienordnung.gueltigbis = sembis.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigbis IS NULL + WHERE tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id + AND (?::date >= semvon.start OR semvon.start IS NULL) AND (?::date <= sembis.ende OR sembis.ende IS NULL) + ) + OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?) + ) + AND lv.incoming > 0 + AND lv.aktiv + AND stg.typ IN ('b', 'm') + ORDER BY studiengang_kuerzel, orgform_kurzbz, lv.bezeichnung, lv.lehrform_kurzbz, lv.lehrveranstaltung_id + "; + + return $this->execQuery($query, $parametersarray); + } } From 9ef8adae399f3058663e52184a3d631d7db54990 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 Mar 2019 11:49:29 +0100 Subject: [PATCH 07/44] Added return false to function akzeptiert in document.class Method is expected to return boolean true or false. False was missing. --- include/dokument.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dokument.class.php b/include/dokument.class.php index 633908749..05497f744 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -826,6 +826,7 @@ class dokument extends basis_db { return true; } + return false; } } From 7f4176ade32b15c77711d7489f2e4f3ebd924a8d Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 Mar 2019 11:56:58 +0100 Subject: [PATCH 08/44] Added UID + marks to anonymized Notenfreigabeliste Now the eMail with the anonymized Notefreigabelist displays students UID and marks. --- .../benotungstool/lvgesamtnoteverwalten.php | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index d3919d25e..f14cc0b72 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -805,10 +805,24 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $neuenoten = 0; $studlist = " - - - - "; + "; + + // entweder personenbezogene Daten einbinden + if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE) + { + $studlist .= " + + + + "; + } + // oder anonymisiert nur die UIDs einbinden + else + { + $studlist .= " + + "; + } if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) { @@ -842,9 +856,16 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $lvgesamtnote->freigabevon_uid = $user; $lvgesamtnote->save(); - $studlist .= ""; - $studlist .= ""; - $studlist .= ""; + if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE) + { + $studlist .= ""; + $studlist .= ""; + $studlist .= ""; + } + else + { + $studlist .= ""; + } if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) { @@ -896,8 +917,7 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
eingetragen.\n

Die Noten können jetzt ins Zeugnis übernommen werden.\n"; - if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE) - $htmlcontent.= $studlist; + $htmlcontent .= $studlist; $htmlcontent.= "
Anzahl der Noten:" . $neuenoten . " From fd1f87e80b166c0b159bae500d175bab5f477d27 Mon Sep 17 00:00:00 2001 From: raab Date: Wed, 27 Mar 2019 17:46:10 +0100 Subject: [PATCH 09/44] Umbenennung LehreIntern zu Lehre --- cis/private/tools/zeitaufzeichnung.php | 12 +++++++----- include/zeitaufzeichnung.class.php | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index d763c0f73..a644f9b77 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -91,12 +91,12 @@ $fieldheadings = array( if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) { $za_simple = 0; - $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); + $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); } else { $za_simple = 1; - $activities = array('Arbeit', 'Pause', 'LehreIntern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); + $activities = array('Arbeit', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); } $activities_str = "'".implode("','", $activities)."'"; @@ -534,6 +534,8 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')
'; else { + if ($data[1] == 'LehreIntern') + $data[1] = 'Lehre'; $zeit->new = true; $zeit->insertamum = date('Y-m-d H:i:s'); $zeit->updateamum = date('Y-m-d H:i:s'); @@ -1041,7 +1043,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $sem_akt = $stsem->getakt(); $lehre = new zeitaufzeichnung(); $l_arr = $lehre->getLehreForUser($user, $sem_akt); - if ($l_arr["LehreAuftraege"]>0 || $l_arr["LehreIntern"] > 0 || $l_arr["LehreExtern"] > 0) + if ($l_arr["LehreAuftraege"]>0 || $l_arr["Lehre"] > 0 || $l_arr["LehreExtern"] > 0) { if ($lehre_inkludiert == -1) { @@ -1056,8 +1058,8 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo '
'; echo ''; echo ''; - if ($lehre_inkludiert > 0 || $l_arr["LehreIntern"] > 0) - echo ''; + if ($lehre_inkludiert > 0 || $l_arr["Lehre"] > 0) + echo ''; if ($l_extern_soll > 0 || $l_arr["LehreExtern"] > 0) echo ''; diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 509444d39..3c99c59a4 100644 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -674,10 +674,10 @@ or not exists { $where = "uid=".$this->db_add_param($user); $where_sem = "studiensemester_kurzbz=".$this->db_add_param($sem); - $lehre_arr = array("LehreIntern"=>0, "LehreExtern"=>0, "LehreAuftraege"=>0); + $lehre_arr = array("Lehre"=>0, "LehreExtern"=>0, "LehreAuftraege"=>0); $qry = " - select sum(extract(epoch from ende-start))/3600 as lehre, aktivitaet_kurzbz from campus.tbl_zeitaufzeichnung where $where and aktivitaet_kurzbz in ('LehreIntern', 'LehreExtern') and start > (select start from public.tbl_studiensemester where $where_sem) group by aktivitaet_kurzbz + select sum(extract(epoch from ende-start))/3600 as lehre, aktivitaet_kurzbz from campus.tbl_zeitaufzeichnung where $where and aktivitaet_kurzbz in ('Lehre', 'LehreExtern') and start > (select start from public.tbl_studiensemester where $where_sem) group by aktivitaet_kurzbz "; if($result = $this->db_query($qry)) From dc8a76e674f96f0cf1cb3c5716a83487281a8a35 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 28 Mar 2019 13:09:03 +0100 Subject: [PATCH 10/44] Removed marks from anonymized Notenfreigabeliste --- .../benotungstool/lvgesamtnoteverwalten.php | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index f14cc0b72..cc551b600 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -815,23 +815,23 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) "; - } + + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $studlist .= "\n"; + } + $studlist .= "\n"; + + $studlist .= "\n"; + } // oder anonymisiert nur die UIDs einbinden else - { + { $studlist .= " - + \n "; } - if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) - { - $studlist .= "\n"; - } - $studlist .= "\n"; - - $studlist .= "\n"; - // studentenquery $qry_stud = "SELECT DISTINCT uid, vorname, nachname, matrikelnr @@ -861,25 +861,25 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $studlist .= ""; $studlist .= ""; $studlist .= ""; + + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $studlist .= "\n"; + } + $studlist .= ""; + + $studlist .= "\n"; } else - { - $studlist .= ""; - } - - if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) { - $studlist .= "\n"; + $studlist .= "\n"; } - $studlist .= ""; - - $studlist .= "\n"; $neuenoten ++; } From 85541e90dc7a68d2d907f0645c47da201d635e8e Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 28 Mar 2019 15:41:05 +0100 Subject: [PATCH 11/44] =?UTF-8?q?=C3=84nderungen=20in=20Auswertung=20FHTW?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Punkte ins FAS übertragen mit optionalen Gesamtpunkten und Bewerberstatus - Vergangenes und kommendes Studiensemester in SQL - Spalten für Mail, Qualikurs und Letzter Status - Mail-Senden-Funktion Div- GUI-Verbesserungen --- vilesci/stammdaten/auswertung_fhtw.php | 971 ++++++++++++++++++------- 1 file changed, 701 insertions(+), 270 deletions(-) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 4857bba4f..2a6140148 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -707,6 +707,181 @@ if (isset($_POST['method']) && $_POST['method'] == 'addPerson') } } +// Überträgt die Punkte ins FAS und setzt optional Reihungstest angetreten und Bewerberstatus +$punkteUebertragen = filter_input(INPUT_POST, 'punkteUebertragen', FILTER_VALIDATE_BOOLEAN); +if ($punkteUebertragen) +{ + if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) + { + $reihungstest = new reihungstest($_POST['reihungstest_id']); + $msg_warning = ''; + $msg_error = ''; + $count_success_punkte = 0; + $count_success_gesamtpunkte = 0; + $count_success_bewerber = 0; + + if (isset($_POST['prestudentPunkteArr'])) + { + foreach ($_POST['prestudentPunkteArr'] AS $key => $array) + { + $prestudentrolle = new prestudent($array['prestudent_id']); + $prestudentrolle->getLastStatus($array['prestudent_id'], null, 'Interessent'); + + if (!$rechte->isBerechtigt('lehre/reihungstest', $prestudentrolle->studiengang_kz, 'sui')) + { + $msg_error .= '
Sie haben keine Rechte, um für diesen Studiengang Ergebnisse ins FAS zu übertragen'; + continue; + } + // Checken, ob Person-Reihungstest-Studienplan zuteilung existiert + if ($reihungstest->checkPersonRtStudienplanExists($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id)) + { + $setRTPunkte = new reihungstest(); + $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id); + + // Check, ob Punkte schon befüllt sind + if ($setRTPunkte->punkte == '') + { + $setRTPunkte->new = false; + $setRTPunkte->punkte = number_format($array['ergebnis'], 4); + $setRTPunkte->updateamum = date('Y-m-d H:i:s'); + $setRTPunkte->updatevon = $user; + + if (!$setRTPunkte->savePersonReihungstest()) + { + $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent '.$array['prestudent_id'].': ' . $setRTPunkte->errormsg; + } + else + { + $count_success_punkte ++; + } + } + else + { + $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte eingetragen.'; + } + } + else + { + $setRTPunkte = new reihungstest(); + $setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id']); + + // Check, ob Punkte schon befüllt sind + if ($setRTPunkte->punkte == '') + { + $setRTPunkte->new = true; + $setRTPunkte->studienplan_id = $prestudentrolle->studienplan_id; + $setRTPunkte->punkte = number_format($array['ergebnis'], 4); + $setRTPunkte->insertamum = date('Y-m-d H:i:s'); + $setRTPunkte->insertvon = $user; + + if (!$setRTPunkte->savePersonReihungstest()) + { + $msg_error .= '
Fehler beim speichern der Reihungstestpunkte für Prestudent ' . $array['prestudent_id'] . ': ' . $setRTPunkte->errormsg; + } + else + { + $count_success_punkte ++; + } + } + else + { + $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Punkte eingetragen.'; + } + } + + $gesamtpunkteSetzen = filter_input(INPUT_POST, 'gesamtpunkteSetzen', FILTER_VALIDATE_BOOLEAN); + // Wenn gesamtpunkteSetzen true ist, auch die Gesamtpunkte für den Prestudenten setzen + if ($gesamtpunkteSetzen) + { + $prestudent = new prestudent($array['prestudent_id']); + + // Check, ob Punkte schon befüllt sind + if ($prestudent->punkte == '') + { + $prestudent->new = false; + $prestudent->punkte = number_format($array['ergebnis'], 4); + $prestudent->reihungstestangetreten = true; + $setRTPunkte->updateamum = date('Y-m-d H:i:s'); + $setRTPunkte->updatevon = $user; + + if (!$prestudent->save()) + { + $msg_error .= '
Fehler beim setzen der Gesamtpunkte für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg; + } + else + { + $count_success_gesamtpunkte++; + } + } + else + { + $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits Gesamtpunkte eingetragen.'; + } + } + + $zuBewerberMachen = filter_input(INPUT_POST, 'zuBewerberMachen', FILTER_VALIDATE_BOOLEAN); + // Wenn zuBewerberMachen true ist, wird der Prestudent auch zum Bewerber gemacht + if ($zuBewerberMachen) + { + $prestudent = new prestudent($array['prestudent_id']); + + // Checken, ob schon Bewerberstatus vorhanden ist + if (!$prestudent->load_rolle($array['prestudent_id'], 'Bewerber', $prestudentrolle->studiensemester_kurzbz, $prestudentrolle->ausbildungssemester)) + { + $prestudent->new = true; + $prestudent->prestudent_id = $array['prestudent_id']; + $prestudent->status_kurzbz = 'Bewerber'; + $prestudent->studiensemester_kurzbz = $prestudentrolle->studiensemester_kurzbz; + $prestudent->ausbildungssemester = $prestudentrolle->ausbildungssemester; + $prestudent->datum =date('Y-m-d'); + $prestudent->insertamum = date('Y-m-d H:i:s'); + $prestudent->insertvon = $user; + $prestudent->orgform_kurzbz = $prestudentrolle->orgform_kurzbz; + $prestudent->bestaetigtam = $prestudentrolle->bestaetigtam; + $prestudent->bestaetigtvon = $prestudentrolle->bestaetigtvon; + $prestudent->bewerbung_abgeschicktamum = $prestudentrolle->bewerbung_abgeschicktamum; + $prestudent->studienplan_id = $prestudentrolle->studienplan_id; + + if (!$prestudent->save_rolle()) + { + $msg_error .= '
Fehler beim speichern des Bewerberstatus für Prestudent '.$array['prestudent_id'].': ' . $prestudent->errormsg; + } + else + { + $count_success_bewerber++; + } + } + else + { + $msg_warning .= '
Der Prestudent '.$array['prestudent_id'].' hat bereits einen Bewerberstatus'; + } + } + } + } + + $msg_success = ''; + if ($count_success_punkte > 0) + { + $msg_success .= $count_success_punkte.' Punkte erfolgreich ins FAS übertragen'; + } + if ($count_success_gesamtpunkte > 0) + { + $msg_success .= '
'.$count_success_gesamtpunkte.' Gesamtpunkte erfolgreich gesetzt'; + } + if ($count_success_bewerber > 0) + { + $msg_success .= '
'.$count_success_bewerber.' Prestudenten zu Bewerber gemacht'; + } + + echo json_encode(array( + 'status' => 'ok', + 'msg_success' => $msg_success, + 'msg_warning' => $msg_warning, + 'msg_error' => $msg_error)); + exit(); + } +} + function sortByField($multArray, $sortField, $desc = true) { $tmpKey = ''; @@ -919,7 +1094,8 @@ if (isset($_REQUEST['reihungstest'])) tbl_gebiet.gebiet_id, tbl_gebiet.bezeichnung AS gebiet, tbl_ablauf.reihung, - tbl_ablauf.studiengang_kz + tbl_ablauf.studiengang_kz, + tbl_ablauf.semester FROM PUBLIC.tbl_rt_person JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) @@ -933,7 +1109,7 @@ if (isset($_REQUEST['reihungstest'])) LEFT JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE 1=1 --AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = 'Interessent' - AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz + --AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz --AND bewerbung_abgeschicktamum IS NOT NULL --AND bestaetigtam IS NOT NULL AND NOT (testtool.tbl_ablauf.gebiet_id IN ( SELECT testtool.tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie))"; @@ -960,14 +1136,14 @@ if (isset($_REQUEST['reihungstest'])) if ($semester != '') { $query .= " AND tbl_ablauf.semester=" . $db->db_add_param($semester, FHC_INTEGER); - $query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); + //$query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); } if ($prestudent_id != '') { $query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER); } //$query .= " AND nachname='Al-Mafrachi'"; - $query .= " ORDER BY tbl_ablauf.studiengang_kz, reihung"; + $query .= " ORDER BY tbl_ablauf.studiengang_kz, tbl_ablauf.semester, reihung"; if (!($result = $db->db_query($query))) { @@ -986,131 +1162,162 @@ if (isset($_REQUEST['reihungstest'])) // Alle Ergebnisse laden $query = " SELECT DISTINCT tbl_rt_person.person_id, - gebdatum, - tbl_person.geschlecht, - nachname, - vorname, - UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) AS stg_kurzbz, - tbl_studiengang.bezeichnung AS stg_bez, - tbl_studienplan.orgform_kurzbz, - tbl_gebiet.maxpunkte, - tbl_prestudentstatus.ausbildungssemester, - tbl_ablauf.gewicht, - tbl_ort.planbezeichnung AS raum, - ps.prestudent_id, - tbl_zgv.zgv_kurzbz, - ps.zgv_code, - ps.zgvmas_code, - ( - SELECT count(*) AS prio_relativ - FROM ( - SELECT *, - ( - SELECT status_kurzbz - FROM PUBLIC.tbl_prestudentstatus - WHERE prestudent_id = pst.prestudent_id - ORDER BY datum DESC, - tbl_prestudentstatus.insertamum DESC LIMIT 1 - ) AS laststatus - FROM PUBLIC.tbl_prestudent pst - JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) - WHERE person_id = ( - SELECT person_id - FROM PUBLIC.tbl_prestudent - WHERE prestudent_id = ps.prestudent_id - ) - AND studiensemester_kurzbz = ( - SELECT studiensemester_kurzbz - FROM PUBLIC.tbl_prestudentstatus - WHERE prestudent_id = ps.prestudent_id - AND status_kurzbz = 'Interessent' LIMIT 1 - ) - AND status_kurzbz = 'Interessent' - ) prest - WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent') - AND priorisierung <= ( - SELECT priorisierung - FROM PUBLIC.tbl_prestudent - WHERE prestudent_id = ps.prestudent_id - ) - ) AS prioritaet, - ( - SELECT kontakt - FROM PUBLIC.tbl_kontakt - WHERE kontakttyp = 'email' - AND zustellung = true - AND person_id = tbl_rt_person.person_id - ORDER BY insertamum DESC, - updateamum DESC LIMIT 1 - ) AS email, - CASE - WHEN tbl_studiengang.typ = 'b' - AND EXISTS( - SELECT 1 - FROM testtool.tbl_pruefling - WHERE prestudent_id = ps.prestudent_id - ) - THEN ( - SELECT sum(testtool.tbl_vorschlag.punkte) AS sum - FROM testtool.tbl_vorschlag - JOIN testtool.tbl_antwort USING (vorschlag_id) - JOIN testtool.tbl_frage USING (frage_id) - WHERE testtool.tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id - AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id - ) - ELSE ( - SELECT sum(testtool.tbl_vorschlag.punkte) AS sum - FROM testtool.tbl_vorschlag - JOIN testtool.tbl_antwort USING (vorschlag_id) - JOIN testtool.tbl_frage USING (frage_id) - WHERE testtool.tbl_antwort.pruefling_id = ( - SELECT pruefling_id - FROM testtool.tbl_pruefling - WHERE prestudent_id = ( - SELECT prestudent_id - FROM PUBLIC.tbl_prestudent - JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) - JOIN PUBLIC.tbl_studiengang USING (studiengang_kz) - JOIN testtool.tbl_pruefling USING (prestudent_id) - WHERE person_id = tbl_rt_person.person_id - AND tbl_studiengang.typ = 'b' - AND status_kurzbz = 'Interessent' - AND studiensemester_kurzbz = rt.studiensemester_kurzbz - ORDER BY registriert DESC LIMIT 1 - ) + gebdatum, + tbl_person.geschlecht, + nachname, + vorname, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_studienplan.orgform_kurzbz, + tbl_gebiet.maxpunkte, + tbl_prestudentstatus.ausbildungssemester, + tbl_ablauf.gewicht, + tbl_ort.planbezeichnung AS raum, + ps.prestudent_id, + tbl_zgv.zgv_kurzbz, + ps.zgv_code, + ps.zgvmas_code, + tbl_rt_person.teilgenommen, + CASE + WHEN tbl_prestudentstatus.statusgrund_id = 9 + AND tbl_prestudentstatus.status_kurzbz = 'Interessent' + THEN true + ELSE false + END AS qualifikationskurs, + ( + SELECT count(*) AS prio_relativ + FROM ( + SELECT *, + ( + SELECT status_kurzbz + FROM PUBLIC.tbl_prestudentstatus + WHERE prestudent_id = pst.prestudent_id + ORDER BY datum DESC, + tbl_prestudentstatus.insertamum DESC LIMIT 1 + ) AS laststatus + FROM PUBLIC.tbl_prestudent pst + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + WHERE person_id = ( + SELECT person_id + FROM PUBLIC.tbl_prestudent + WHERE prestudent_id = ps.prestudent_id + ) + AND studiensemester_kurzbz = ( + SELECT studiensemester_kurzbz + FROM PUBLIC.tbl_prestudentstatus + WHERE prestudent_id = ps.prestudent_id + AND status_kurzbz = 'Interessent' LIMIT 1 + ) + AND status_kurzbz = 'Interessent' + ) prest + WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent') + AND priorisierung <= ( + SELECT priorisierung + FROM PUBLIC.tbl_prestudent + WHERE prestudent_id = ps.prestudent_id ) - AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) AS prioritaet, + ( + SELECT kontakt + FROM PUBLIC.tbl_kontakt + WHERE kontakttyp = 'email' + AND zustellung = true + AND person_id = tbl_rt_person.person_id + ORDER BY insertamum DESC, + updateamum DESC LIMIT 1 + ) AS email, + CASE + WHEN /*tbl_studiengang.typ = 'b' + AND*/ EXISTS ( + SELECT 1 + FROM testtool.tbl_pruefling + WHERE prestudent_id = ps.prestudent_id + ) + THEN ( + SELECT sum(testtool.tbl_vorschlag.punkte) AS sum + FROM testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE testtool.tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) + ELSE ( + SELECT sum(testtool.tbl_vorschlag.punkte) AS sum + FROM testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE testtool.tbl_antwort.pruefling_id = ( + SELECT pruefling_id + FROM testtool.tbl_pruefling + WHERE prestudent_id = ( + SELECT prestudent_id + FROM PUBLIC.tbl_prestudent + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN PUBLIC.tbl_studiengang USING (studiengang_kz) + JOIN testtool.tbl_pruefling USING (prestudent_id) + WHERE person_id = tbl_rt_person.person_id + AND tbl_studiengang.typ = 'b' + --AND status_kurzbz = 'Interessent' + AND studiensemester_kurzbz = rt.studiensemester_kurzbz + ORDER BY registriert DESC LIMIT 1 + ) + ) + AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) + END AS punkte, + tbl_gebiet.gebiet_id, + tbl_gebiet.bezeichnung AS gebiet, + tbl_pruefling.idnachweis, + tbl_pruefling.registriert, + get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) AS letzter_status + FROM PUBLIC.tbl_rt_person + JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) + JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) + JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN PUBLIC.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) + LEFT JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id) + LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) + LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) + LEFT JOIN testtool.tbl_pruefling USING (prestudent_id) + LEFT JOIN testtool.tbl_ablauf ON (testtool.tbl_ablauf.studiengang_kz = ps.studiengang_kz) + LEFT JOIN testtool.tbl_gebiet USING (gebiet_id) + WHERE 1 = 1 + --AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) NOT IN ('Abgewiesener') /*Wenn einkommentiert, kommen zB bei alten Bewerbungen keine Ergebnisse*/ + AND tbl_prestudentstatus.studiensemester_kurzbz IN ( + SELECT studiensemester_kurzbz + FROM PUBLIC.tbl_studiensemester + WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz + + UNION + + ( + SELECT studiensemester_kurzbz + FROM PUBLIC.tbl_studiensemester + WHERE ende <= ( + SELECT start + FROM PUBLIC.tbl_studiensemester + WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz + ) + ORDER BY ende DESC LIMIT 1 + ) + + UNION + + ( + SELECT studiensemester_kurzbz + FROM PUBLIC.tbl_studiensemester + WHERE start >= ( + SELECT ende + FROM PUBLIC.tbl_studiensemester + WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz + ) + ORDER BY start ASC LIMIT 1 + ) ) - END AS punkte, - /*(SELECT sum(testtool.tbl_vorschlag.punkte) AS sum - FROM testtool.tbl_vorschlag - JOIN testtool.tbl_antwort USING (vorschlag_id) - JOIN testtool.tbl_frage USING (frage_id) - WHERE testtool.tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id - AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id - ) AS punkte,*/ - tbl_gebiet.gebiet_id, - tbl_gebiet.bezeichnung AS gebiet, - tbl_pruefling.idnachweis, - tbl_pruefling.registriert -FROM PUBLIC.tbl_rt_person -JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) -JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) -JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) -JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) -JOIN PUBLIC.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) -LEFT JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id) -LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) -LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) -LEFT JOIN testtool.tbl_pruefling USING (prestudent_id) -LEFT JOIN testtool.tbl_ablauf ON (testtool.tbl_ablauf.studiengang_kz = ps.studiengang_kz) -LEFT JOIN testtool.tbl_gebiet USING (gebiet_id) -WHERE 1 = 1 - AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = 'Interessent' - AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz - AND bewerbung_abgeschicktamum IS NOT NULL - AND bestaetigtam IS NOT NULL - AND tbl_gebiet.gebiet_id != 7 + AND bewerbung_abgeschicktamum IS NOT NULL + AND bestaetigtam IS NOT NULL + AND tbl_gebiet.gebiet_id != 7 "; if ($reihungstest != '') { @@ -1135,7 +1342,7 @@ WHERE 1 = 1 if ($semester != '') { $query .= " AND tbl_ablauf.semester=" . $db->db_add_param($semester, FHC_INTEGER); - $query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); + //$query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); } if ($prestudent_id != '') { @@ -1168,6 +1375,7 @@ WHERE 1 = 1 $ergebnis[$row->prestudent_id]->nachname = $row->nachname; $ergebnis[$row->prestudent_id]->vorname = $row->vorname; $ergebnis[$row->prestudent_id]->gebdatum = $row->gebdatum; + $ergebnis[$row->prestudent_id]->email = $row->email; $ergebnis[$row->prestudent_id]->geschlecht = $row->geschlecht; $ergebnis[$row->prestudent_id]->idnachweis = $row->idnachweis; $ergebnis[$row->prestudent_id]->registriert = $row->registriert; @@ -1179,6 +1387,9 @@ WHERE 1 = 1 $ergebnis[$row->prestudent_id]->raum = $row->raum; $ergebnis[$row->prestudent_id]->prioritaet = ($row->prioritaet != '' ? $row->prioritaet : ''); $ergebnis[$row->prestudent_id]->orgform = $row->orgform_kurzbz; + $ergebnis[$row->prestudent_id]->teilgenommen = $db->db_parse_bool($row->teilgenommen); + $ergebnis[$row->prestudent_id]->qualifikationskurs = $db->db_parse_bool($row->qualifikationskurs); + $ergebnis[$row->prestudent_id]->letzter_status = $row->letzter_status; if (!isset($ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id])) { @@ -1555,17 +1766,17 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls') $worksheetOhnePhsyik->write(0, ++$spalte, 'S', $format_bold); $worksheetOhnePhsyik->mergeCells(0, 8, 1, 8); $maxlength[8] = 2; - $worksheet->write(0, ++$spalte, 'OrgForm', $format_bold); - $worksheet->mergeCells(0, 9, 1, 9); + $worksheetOhnePhsyik->write(0, ++$spalte, 'OrgForm', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 9, 1, 9); $maxlength[9] = 8; - $worksheet->write(0, ++$spalte, 'Prio', $format_bold); - $worksheet->mergeCells(0, 10, 1, 10); + $worksheetOhnePhsyik->write(0, ++$spalte, 'Prio', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 10, 1, 10); $maxlength[10] = 5; - $worksheet->write(0, ++$spalte, 'ZGV', $format_bold); - $worksheet->mergeCells(0, 11, 1, 11); + $worksheetOhnePhsyik->write(0, ++$spalte, 'ZGV', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 11, 1, 11); $maxlength[11] = 20; - $worksheet->write(0, ++$spalte, 'ZGV MA', $format_bold); - $worksheet->mergeCells(0, 12, 1, 12); + $worksheetOhnePhsyik->write(0, ++$spalte, 'ZGV MA', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 12, 1, 12); $maxlength[12] = 20; $spalte = 11; @@ -1630,8 +1841,8 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls') $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->stg_kurzbz); $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->stg_bez); $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->ausbildungssemester); - $worksheet->write($zeile, ++$spalte, $erg->orgform); - $worksheet->write($zeile, ++$spalte, $erg->prioritaet); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->orgform); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->prioritaet); $worksheetOhnePhsyik->write($zeile, ++$spalte, $zgv_arr[$erg->zgv]); $worksheetOhnePhsyik->write($zeile, ++$spalte, $zgvma_arr[$erg->zgvma]); foreach ($gebiet AS $gbt) @@ -1867,8 +2078,8 @@ else $("#auswertung_table").tablesorter( { widgets: ["zebra", "filter", "columnSelector"], - sortList: [[12,1],[2,0],[3,0]], - headers: {0: { sorter: false, filter: false}, 4: { dateFormat: "ddmmyyyy" }} + sortList: [[16,1],[3,0],[4,0]], + headers: {0: { sorter: false, filter: false}, 2: { sorter: false, filter: false}, 4: { dateFormat: "ddmmyyyy" }} /*widgetOptions : { columnSelector_container : $("#columnSelector"), columnSelector_saveColumns: true} */ @@ -1886,12 +2097,28 @@ else { $("#auswertung_table").checkboxes("toggle"); e.preventDefault(); + if ($("input.prestudentCheckbox:checked").length > 0) + $("#mailSendButton").html("Mail an markierte senden"); + else + $("#mailSendButton").html("Mail an alle senden"); }); $("#uncheck_table").on("click", function(e) { $("#auswertung_table").checkboxes("uncheck"); e.preventDefault(); + if ($("input.prestudentCheckbox:checked").length > 0) + $("#mailSendButton").html("Mail an markierte senden"); + else + $("#mailSendButton").html("Mail an alle senden"); + }); + + $(".prestudentCheckbox").change(function() + { + if ($("input.prestudentCheckbox:checked").length > 0) + $("#mailSendButton").html("Mail an markierte senden"); + else + $("#mailSendButton").html("Mail an alle senden"); }); $("#auswertung_table").checkboxes("range", true); @@ -1915,6 +2142,11 @@ else { $(".loaderIcon").show(); }); + + $("#showUebertragenOptionsButton").on("click", function(e) + { + $("#uebertragenOptions").toggle(300); + }); }); function deleteResult(prestudent_id, gebiet_id, name, gebiet_bezeichnung) @@ -1934,7 +2166,7 @@ else dataType: "json", success: function(data) { - if(data.status!="ok") + if(data.status !== "ok") { $("#msgbox").attr("class","alert alert-danger"); $("#msgbox").show(); @@ -1973,7 +2205,7 @@ else dataType: "json", success: function(data) { - if(data.status!="ok") + if(data.status !== "ok") { $("#msgbox").attr("class","alert alert-danger"); $("#msgbox").show(); @@ -1981,7 +2213,7 @@ else } else { - $("#row_"+prestudent_id).find("td.punkte").each (function() + $("#row_"+prestudent_id).find("td.punkte, td.col_gesamtpunkte_ohne_physik").each (function() { $(this).html(""); }); @@ -2014,7 +2246,7 @@ else dataType: "json", success: function(data) { - if(data.status!="ok") + if(data.status !== "ok") { $("#msgbox").attr("class","alert alert-danger"); $("#msgbox").show(); @@ -2050,7 +2282,7 @@ else function testende(reihungstest) { var selected = []; - if ($("input.prestudentCheckbox:checked").length == 0) + if ($("input.prestudentCheckbox:checked").length === 0) { alert("Bitte wählen Sie mindestens einen Eintrag aus der Liste"); return false; @@ -2059,9 +2291,11 @@ else { if (confirm("Setzt bei allen markierten Personen \'Zum Reihungstest angetreten\' und informiert die entsprechende Studiengangsassistenz. Wollen Sie fortfahren?")) { - $("input.prestudentCheckbox:checked").each(function() { - selected.push($(this).attr("name")); - }); + $("input.prestudentCheckbox:checked").each(function() + { + selected.push($(this).attr("name")); + }); + $(".loaderIcon").show(); data = { @@ -2077,7 +2311,7 @@ else dataType: "json", success: function(data) { - if(data.status!="ok") + if(data.status !== "ok") { $("#msgbox").attr("class","alert alert-danger"); $("#msgbox").show(); @@ -2101,20 +2335,164 @@ else }); } } - - - - } + function sendMail() + { + // Wenn Checkboxen markiert sind, an diese senden, sonst an alle + if ($("input.prestudentCheckbox:checked").length > 0) + { + var elements = $("input.prestudentCheckbox:checked"); + } + else + { + var elements = $("input.prestudentCheckbox:visible"); + } + + var mailadressen = ""; + var adresse = ""; + var counter = 0; + var adresseArray = []; + + // Schleife ueber die einzelnen Elemente + // Aus Spamgründen dürfen je Nachricht maximal 100 Empfänger enthalten sein + // Deshalb wird nach 100 Einträgen ein neues window.location.href erzeugt + // Außerdem darf die URL nicht länger als 1988 Zeichen (2000 - 12 Zeichen URL-Prefix) sein. + $.each(elements, function(index, item) + { + adresse = $(this).closest("tr").find("td.clm_email a:first").attr("href"); + adresse = adresse.replace(/^mailto?:/, ""); + + if($.inArray(adresse, adresseArray) === -1) + { + if (counter > 0 && (counter % 100 === 0) || (adresseArray.join(";").length + adresse.length > 1988)) + { + window.location.href = "mailto:?bcc="+adresseArray.join(";"); + adresseArray = []; + adresseArray.push(adresse); + counter = 0; + } + else + { + adresseArray.push(adresse); + } + counter ++; + } + }); + window.location.href = "mailto:?bcc="+adresseArray.join(";"); + } + function checkAllWithResult() + { + // Schleife ueber die einzelnen Elemente + $(".col_gesamtpunkte_ohne_physik").each(function() + { + if ($(this).text().trim() !== "") + { + $(this).parents("tr").find("input[type=checkbox]").prop("checked", true); + } + else + { + $(this).parents("tr").find("input[type=checkbox]").prop("checked", false); + } + }); + if ($("input.prestudentCheckbox:checked").length > 0) + $("#mailSendButton").html("Mail an markierte senden"); + else + $("#mailSendButton").html("Mail an alle senden"); + } + function punkteUebertragen(reihungstest) + { + var prestudentPunkteArr = []; + var gesamtpunkteSetzen = false; + var zuBewerberMachen = false; + if ($("input.prestudentCheckbox:checked").length === 0) + { + alert("Bitte wählen Sie mindestens einen Eintrag aus der Liste"); + return false; + } + else + { + //if (confirm("Setzt bei allen markierten Personen \'Zum Reihungstest angetreten\' und informiert die entsprechende Studiengangsassistenz. Wollen Sie fortfahren?")) + { + $("input.prestudentCheckbox:checked").each(function() + { + if ($("#uebertragenOptionPhysik:checked").length === 1) + { + prestudentPunkteArr.push({ + prestudent_id: $(this).attr("name"), + ergebnis: $(this).parents("tr").find(".erg_gesamt_mit_physik").text() + }); + } + else + { + prestudentPunkteArr.push({ + prestudent_id: $(this).attr("name"), + ergebnis: $(this).parents("tr").find(".erg_gesamt_ohne_physik").text() + }); + } + }); + + $(".loaderIcon").show(); + if ($("#uebertragenOptionGesamtpunkte:checked").length === 1) + { + gesamtpunkteSetzen = true; + } + if ($("#uebertragenOptionBewerber:checked").length === 1) + { + zuBewerberMachen = true; + } + + data = { + reihungstest_id: reihungstest, + prestudentPunkteArr: prestudentPunkteArr, + gesamtpunkteSetzen: gesamtpunkteSetzen, + zuBewerberMachen: zuBewerberMachen, + punkteUebertragen: true + }; + + $.ajax({ + url: "auswertung_fhtw.php", + data: data, + type: "POST", + dataType: "json", + success: function(data) + { + $("#msgbox").html(""); + if(data["msg_success"] !== "") + { + $("#msgbox").attr("class","alert alert-success"); + $(".loaderIcon").hide(); + $("#msgbox").show(); + $("#msgbox").append(data["msg_success"]); + } + if(data["msg_warning"] !== "") + { + $("#msgbox").attr("class","alert alert-warning"); + $(".loaderIcon").hide(); + $("#msgbox").show(); + $("#msgbox").append(data["msg_warning"]); + //$("#msgbox").html(data["msg"]).delay(2000).fadeOut(); + } + if(data["msg_error"] !== "") + { + $("#msgbox").attr("class","alert alert-danger"); + $(".loaderIcon").hide(); + $("#msgbox").show(); + $("#msgbox").append(data["msg_error"]); + } + }, + error: function(data) + { + $("#msgbox").attr("class","alert alert-danger"); + $("#msgbox").show(); + $("#msgbox").html(data["msg"]); + } + }); + } + } + } + - - - -

Räume Übersicht

- - - - - + + + + + + + + +

Räume Übersicht

+ + + + + diff --git a/vilesci/stammdaten/studiengang_uebersicht.php b/vilesci/stammdaten/studiengang_uebersicht.php index 9a7475434..64b5721ff 100644 --- a/vilesci/stammdaten/studiengang_uebersicht.php +++ b/vilesci/stammdaten/studiengang_uebersicht.php @@ -57,7 +57,6 @@ require_once('../../include/benutzerberechtigung.class.php'); //$htmlstr = "
" . $p->t('global/personenkz') . "" . $p->t('global/nachname') . "" . $p->t('global/vorname') . "
" . $p->t('global/personenkz') . "" . $p->t('global/nachname') . "" . $p->t('global/vorname') . "" . $p->t('global/uid') . "
" . trim($row_stud->matrikelnr) . "" . trim($row_stud->nachname) . "" . trim($row_stud->vorname) . "
" . trim($row_stud->matrikelnr) . "" . trim($row_stud->nachname) . "" . trim($row_stud->vorname) . "
" . trim($row_stud->uid) . "

Übersicht Lehre '.$sem_akt.'

(in Stunden)
beauftragt (LE)gebucht
LehreIntern:'.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.')'.$l_arr["LehreIntern"].'
Lehre:'.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.')'.$l_arr["Lehre"].'
LehreExtern:'.$l_extern_soll_norm.' ('.$l_extern_soll.')'.$l_arr["LehreExtern"].'
" . $p->t('global/nachname') . " " . $p->t('global/vorname') . "" . $p->t('benotungstool/punkte') . "" . $p->t('benotungstool/note') . "" . $p->t('benotungstool/bearbeitetvon') . "
" . $p->t('global/uid') . "" . $p->t('global/uid') . "
" . $p->t('benotungstool/punkte') . "" . $p->t('benotungstool/note') . "" . $p->t('benotungstool/bearbeitetvon') . "
" . trim($row_stud->matrikelnr) . "" . trim($row_stud->nachname) . "" . trim($row_stud->vorname) . ""; + if ($lvgesamtnote->punkte != '') + $studlist .= trim(number_format($lvgesamtnote->punkte, 2)); + $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "" . $lvgesamtnote->mitarbeiter_uid; + if ($lvgesamtnote->updatevon != '') + $studlist .= " (" . $lvgesamtnote->updatevon . ")"; + $studlist .= "
" . trim($row_stud->uid) . ""; - if ($lvgesamtnote->punkte != '') - $studlist .= trim(number_format($lvgesamtnote->punkte, 2)); - $studlist .= "
" . trim($row_stud->uid) . "
" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "" . $lvgesamtnote->mitarbeiter_uid; - if ($lvgesamtnote->updatevon != '') - $studlist .= " (" . $lvgesamtnote->updatevon . ")"; - $studlist .= "
\n"; $htmlstr = ''; $htmlstr .= ' -

@@ -117,16 +116,8 @@ $(document).ready(function() $("#t1").tablesorter( { sortList: [[3,0],[1,0]], - widgets: ["saveSort", "zebra", "filter", "stickyHeaders"], - headers: {6:{sorter:false}}, - widgetOptions : {filter_saveFilters : true} - }); - - $('.resetsaved').click(function() - { - $("#t1").trigger("filterReset"); - location.reload(); - return false; + widgets: ["zebra", "filter", "stickyHeaders"], + headers: {6:{sorter:false}} }); } ); From 2f5d388bdb91b312ca0f76b321f22e515f37f715 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 1 Apr 2019 15:36:15 +0200 Subject: [PATCH 21/44] =?UTF-8?q?-=20changed=20xsl=20Vorlagen:=20only=20po?= =?UTF-8?q?sitive=20grades=20are=20displayed=20on=20Studienerfolgsbest?= =?UTF-8?q?=C3=A4tigung,=20Diplomasupplement=20and=20Zeugnis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/ZeugnisEng_0.xsl | 130 +++++++++++++++--------------- system/xsl/Zeugnis_0.xsl | 81 ++++++++++--------- system/xsl/diplomaSupp_0.xsl | 90 +++++++++++---------- system/xsl/studienerfolgEng_0.xsl | 68 ++++++++-------- system/xsl/studienerfolg_0.xsl | 50 ++++++------ 5 files changed, 216 insertions(+), 203 deletions(-) diff --git a/system/xsl/ZeugnisEng_0.xsl b/system/xsl/ZeugnisEng_0.xsl index b997a53e9..3f291824c 100644 --- a/system/xsl/ZeugnisEng_0.xsl +++ b/system/xsl/ZeugnisEng_0.xsl @@ -488,9 +488,9 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), insufficient (5), not graded (nb), Credit based on previous experience/work (ar), + ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), Participated with success (met), passed (b), - Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) + successfully completed (ea), participated (tg) @@ -530,68 +530,70 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - International Semester Abroad: -, at , - All credits earned during the International Semester Abroad (ISA) are fully credited for the - - - - st - - - nd - - - rd - - - th - - - semester at the UAS Technikum Wien. (see Transcript of Records) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + International Semester Abroad: -, at , + All credits earned during the International Semester Abroad (ISA) are fully credited for the + + + + st + + + nd + + + rd + + + th + + + semester at the UAS Technikum Wien. (see Transcript of Records) + + + + + + + + + [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] + + + + + + + + + + - + + + + + + + + - + + + + + + + + - + + + + + + diff --git a/system/xsl/Zeugnis_0.xsl b/system/xsl/Zeugnis_0.xsl index 5b224ad5e..8d1bbd275 100644 --- a/system/xsl/Zeugnis_0.xsl +++ b/system/xsl/Zeugnis_0.xsl @@ -459,9 +459,12 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), + Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), mit Erfolg teilgenommen (met), teilgenommen (tg), + angerechnet (ar), bestanden (b), + - angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) + erfolgreich absolviert (ea) + @@ -481,7 +484,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Masterprüfung vom - + @@ -502,43 +505,45 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - Auslandsaufenthalt: -, , - Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). - - - - - - - - - - - - - - - - - - + + + + + + Auslandsaufenthalt: -, , + Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + - + + + + + + + + - + + + + + + diff --git a/system/xsl/diplomaSupp_0.xsl b/system/xsl/diplomaSupp_0.xsl index 3048dc4d3..e1c63c37b 100644 --- a/system/xsl/diplomaSupp_0.xsl +++ b/system/xsl/diplomaSupp_0.xsl @@ -1104,7 +1104,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -1278,7 +1278,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - + @@ -2381,15 +2381,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Neben den ordentlichen Studien, die oben beschrieben wurden, gibt es auch außerordentliche Studien, die an Universitäten entweder ein Universitätslehrgang oder der Besuch einzelner Lehrveranstaltungen, im Fachhochschulbereich ein Lehrgang zur Weiterbildung oder der Besuch einzelner Lehrveranstaltungen und an Pädagogischen Hochschulen ein Hochschullehrgang sein können. Bachelorstudium - Die Zulassung zu einem Bachelorstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Bachelorstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Bachelorstudien an Universitäten, in den meisten Fachhochschul-Bachelorstudiengängen und in Bachelorstudien an Pädagogischen Hochschulen findet ein Auswahlverfahren statt. + Die Zulassung zu einem Bachelorstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Bachelorstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Bachelorstudien an Universitäten, in den meisten Fachhochschul-Bachelorstudiengängen und in Bachelorstudien an Pädagogischen Hochschulen findet ein Auswahlverfahren statt. Die Fächer/Module und ihre Inhalte sind im Curriculum festgelegt. In der Regel sind zwei Bachelorarbeiten im Rahmen von Lehrveranstaltungen abzufassen. Fachhochschul-Bachelorstudiengänge, Bachelorstudien an Pädagogischen Hochschulen und einige Bachelorstudien an Universitäten umfassen ein angeleitetes Praktikum. Das Studium kann mit einer Bachelorprüfung abgeschlossen werden. Masterstudium - Die Zulassung zu einem Masterstudium erfolgt auf der Grundlage eines abgeschlossenen facheinschlägigen Bachelorstudiums oder gleichwertigen postsekundären Abschlusses. In einigen Studien findet ein Auswahlverfahren statt + Die Zulassung zu einem Masterstudium erfolgt auf der Grundlage eines abgeschlossenen facheinschlägigen Bachelorstudiums oder gleichwertigen postsekundären Abschlusses. In einigen Studien findet ein Auswahlverfahren statt Die Fächer/Module und ihre Inhalte sind im Curriculum festgelegt. Ein Schwerpunkt des Studiums liegt auf der Erstellung der Masterarbeit. Das Studium wird mit einer Masterprüfung abgeschlossen. Die Zulassung zur Masterprüfung setzt die Approbation der Masterarbeit voraus. Diplomstudium - Die Zulassung zu einem Diplomstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Diplomstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Studien (z.B. Humanmedizin und Zahnmedizin sowie in Fachhochschul-Diplomstudiengängen) findet ein Auswahlverfahren statt. + Die Zulassung zu einem Diplomstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Diplomstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Studien (z.B. Humanmedizin und Zahnmedizin sowie in Fachhochschul-Diplomstudiengängen) findet ein Auswahlverfahren statt. Das Studium kann in Studienabschnitte unterteilt sein. Die Dauer jedes Studienabschnitts, die Fächer und ihre Inhalte sind im Curriculum festgelegt. Sie gliedern sich in Pflichtfächer und Wahlfächer. Jeder Studienabschnitt wird mit einer Diplomprüfung abgeschlossen. Fachhochschul-Diplomstudiengänge und einige Diplomstudien an Universitäten umfassen ein angeleitetes Praktikum. Die Zulassung zur letzten Diplomprüfung setzt die Approbation der Diplomarbeit voraus. @@ -2567,13 +2567,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn The new system is based on the distinction between undergraduate and graduate studies. Upon completion of an undergraduate programme (Bachelorstudium at universities and university colleges of education or, respectively, Fachhochschul-Bachelorstudiengang at universities of applied sciences, comprising 180 to 240 ECTS credits), a bachelor’s degree (designation: "Bachelor of/in ..." ) is awarded. Upon completion of a graduate program (Masterstudium at universities and university colleges of education or, respectively, Fachhochschul-Masterstudiengang at universities of applied sciences, comprising 60 to 120 ECTS credits), a master’s degree (designation: "Master of/in ..." ) is awarded. In the fields of engineering, the designation of the master’s degree can also be "Diplom-Ingenieur/in". - Under the auspices of the older system of diploma degree programmes (Diplomstudien), the first degree awarded is the diploma degree (Diplomgrad). An Austrian higher secondary school leaving certificate or its equivalent is the general qualification necessary for enrolling in a diploma degree programme; conclusion of a diploma degree programme entitles degree holders to enrol in doctoral programmes. A diploma degree (Diplomgrad) is awarded by Austrian universities after a course of study consisting of 240 to 360 ECTS credits. Full degree titles are gender specific designations: Magister for men; Magistra for women. Degree titles also include a general description of the field of study in which they were obtained, e.g. Magister philosophiae. In the fields of engineering, the degree titles are Diplom-Ingenieur/in. + Under the auspices of the older system of diploma degree programmes (Diplomstudien), the first degree awarded is the diploma degree (Diplomgrad). An Austrian higher secondary school leaving certificate or its equivalent is the general qualification necessary for enrolling in a diploma degree programme; conclusion of a diploma degree programme entitles degree holders to enrol in doctoral programmes. A diploma degree (Diplomgrad) is awarded by Austrian universities after a course of study consisting of 240 to 360 ECTS credits. Full degree titles are gender specific designations: Magister for men; Magistra for women. Degree titles also include a general description of the field of study in which they were obtained, e.g. Magister philosophiae. In the fields of engineering, the degree titles are Diplom-Ingenieur/in. Degrees awarded in medicine and dentistry are exceptions to the above. The first degrees awarded after the completion of these degree programmes consisting of 360 ECTS credits are Doctor medicinae universae and Doctor medicinae dentalis, respectively. Graduates of university of applied sciences programmes that consist of 240 to 300 ECTS credits are awarded, analogous to university studies, a university of applied science diploma degree (Fachhochschul-Diplomgrad) contingent upon discipline: either a Diplom-Ingenieur/in (FH) for fields of engineering or Magister/Magistra (FH) in other fields of study. - The study programmes for teachers’ qualifications are offered jointly between universities and university colleges of education. + The study programmes for teachers’ qualifications are offered jointly between universities and university colleges of education. Recipients of the diploma degrees from the old system or master’s degrees from the new system (including the ones awarded in both cases by the universities of applied sciences) are entitled to enrol in doctoral programmes (Doktoratsstudium) at universities. A doctoral degree with the designation either "Doktor/in" or "Doctor of Philosophy" (PhD) is awarded upon completion of a doctoral programme with a minimum duration of three years. @@ -2669,8 +2669,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - + + Grades for comprehensive examinations, i.e. examinations covering materials from various subjects: @@ -2699,13 +2699,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Federal Ministry of Science, Research and Economy Unit VI/7 - + - + TRANSCRIPT OF RECORDS @@ -2784,7 +2784,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn ¹ Type: Laboratory (LAB), Lecture (VO), Integrated Course (ILV), Seminar (SE), Tutorial (TUT), Project (PRJ), Exercise (UE), Distance Learning (FL), Other (SO) ² 1 Semester period per week = 45 minutes - ³ Grading Scheme: excellent (1), good (2), satisfactory (3), sufficient (4), insufficient (5), not graded (nb), Credit based on previous experience/work (ar), successfully completed (ea), not successfully completed (nea), Participated with success (met), participated (tg) + ³ Grading Scheme: excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), successfully completed (ea), Participated with success (met), participated (tg) @@ -2902,38 +2902,40 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/xsl/studienerfolgEng_0.xsl b/system/xsl/studienerfolgEng_0.xsl index 31064a71a..1dd7fd663 100644 --- a/system/xsl/studienerfolgEng_0.xsl +++ b/system/xsl/studienerfolgEng_0.xsl @@ -609,41 +609,43 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar),Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) + ² Grades:excellent (1), very good (2), good (3), satisfactory (4), Credit based on previous experience/work (ar),Participated with success (met), passed (b), successfully completed (ea), participated (tg) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/xsl/studienerfolg_0.xsl b/system/xsl/studienerfolg_0.xsl index 05a25344d..97d035116 100644 --- a/system/xsl/studienerfolg_0.xsl +++ b/system/xsl/studienerfolg_0.xsl @@ -607,33 +607,35 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Benotung: - Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) + Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), mit Erfolg teilgenommen (met), teilgenommen (tg), angerechnet (ar), bestanden (b), erfolgreich absolviert (ea) - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + From 85c9b86864de198c82fba03e1c263d8e872d23d6 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 1 Apr 2019 17:36:48 +0200 Subject: [PATCH 22/44] =?UTF-8?q?-=20changed=20xsl=20Vorlagen=20for=20Lehr?= =?UTF-8?q?g=C3=A4nge:=20only=20positive=20grades=20are=20displayed=20on?= =?UTF-8?q?=20Studienerfolgsbest=C3=A4tigung,=20Diplomasupplement=20and=20?= =?UTF-8?q?Zeugnis=20-=20deleted=20ZeugnisNeu=20Vorlagen=20which=20are=20n?= =?UTF-8?q?ot=20used=20anymore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/ZeugnisEngNeu_0.xsl | 669 --------------------- system/xsl/ZeugnisEngNeu_Lehrgaenge.xsl | 657 -------------------- system/xsl/ZeugnisEng_Lehrgaenge.xsl | 130 ++-- system/xsl/ZeugnisNeu_0.xsl | 562 ----------------- system/xsl/ZeugnisNeu_Lehrgaenge.xsl | 562 ----------------- system/xsl/Zeugnis_Lehrgaenge.xsl | 83 +-- system/xsl/diplomaSupp_Lehrgaenge.xsl | 68 ++- system/xsl/studienerfolgEng_Lehrgaenge.xsl | 69 ++- system/xsl/studienerfolg_Lehrgaenge.xsl | 50 +- 9 files changed, 207 insertions(+), 2643 deletions(-) delete mode 100644 system/xsl/ZeugnisEngNeu_0.xsl delete mode 100644 system/xsl/ZeugnisEngNeu_Lehrgaenge.xsl delete mode 100644 system/xsl/ZeugnisNeu_0.xsl delete mode 100644 system/xsl/ZeugnisNeu_Lehrgaenge.xsl diff --git a/system/xsl/ZeugnisEngNeu_0.xsl b/system/xsl/ZeugnisEngNeu_0.xsl deleted file mode 100644 index b0e620da3..000000000 --- a/system/xsl/ZeugnisEngNeu_0.xsl +++ /dev/null @@ -1,669 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vienna, - - - - - - - - - - - Place, Date - - - - - - - Program Director - - - - - - - - - - - Transcript of Records - - - - - - - - - - st - - - nd - - - rd - - - th - - - Semester ( - - ) - - - - - - - - Bachelor's - - - Master's - - - - - Degree Program - - - - - - Student ID: - Program Code: - - - - First Name/Last Name: - - - - Date of Birth: - - - - - - - Course - - - SP/W1 - - - ECTS - - - Grade2 - - - - - - Total - - - - - - - - - - - - - - - - - ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar), - - Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) - - - - - - - - Final Examination - - - - - - - Bachelor's Examination on - - - Master's Examination on - - - - - - - - - - Grades:Passed with distinction, Passed with merit, Passed - - - - - - - - - - International Semester Abroad: -, at , - All credits earned during the International Semester Abroad (ISA) are fully credited for the - - - - st - - - nd - - - rd - - - th - - - semester at the UAS Technikum Wien. (see Transcript of Records) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Subject Area: - - - - - - - - - - - - - - Bachelor's Thesis: - - - Master's Thesis: - - - - - - - - - - - - - - - - - - - - - - - - Bachelor's Thesis: - - - Master's Thesis: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/system/xsl/ZeugnisEngNeu_Lehrgaenge.xsl b/system/xsl/ZeugnisEngNeu_Lehrgaenge.xsl deleted file mode 100644 index cf53e3d79..000000000 --- a/system/xsl/ZeugnisEngNeu_Lehrgaenge.xsl +++ /dev/null @@ -1,657 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vienna, - - - - - - - - - - - Place, Date - - - - - - - Director of Certificate Program - - - - - - - - - - - Transcript of Records - - - - - - - - - - st - - - nd - - - rd - - - th - - - Semester ( - - ) - - - - - Certificate Program for Further Education subjected to § 9 FHStG - - - - - Student ID: - Program Code: - - - - First Name/Last Name: - - - - Date of Birth: - - - - - - - Course - - - SP/W1 - - - ECTS - - - Grade2 - - - - - - Total - - - - - - - - - - - - - - - - - ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar), - - Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) - - - - - - - - Final Examination - - - - - - - Bachelor's Examination on - - - Master's Examination on - - - - - - - - - - Grades:Passed with distinction, Passed with merit, Passed - - - - - - - - - - International Semester Abroad: -, at , - All credits earned during the International Semester Abroad (ISA) are fully credited for the - - - - st - - - nd - - - rd - - - th - - - semester at the UAS Technikum Wien. (see Transcript of Records) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Subject Area: - - - - - - - - - - - - - - Bachelor's Thesis: - - - Master's Thesis: - - - - - - - - - - - - - - - - - - - - - - - - Bachelor's Thesis: - - - Master's Thesis: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/system/xsl/ZeugnisEng_Lehrgaenge.xsl b/system/xsl/ZeugnisEng_Lehrgaenge.xsl index 9f93d78cb..99308abcd 100644 --- a/system/xsl/ZeugnisEng_Lehrgaenge.xsl +++ b/system/xsl/ZeugnisEng_Lehrgaenge.xsl @@ -476,9 +476,9 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), insufficient (5), not graded (nb), Credit based on previous experience/work (ar), + ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), Participated with success (met), passed (b), - Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) + successfully completed (ea), participated (tg) @@ -519,68 +519,70 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - International Semester Abroad: -, at , - All credits earned during the International Semester Abroad (ISA) are fully credited for the - - - - st - - - nd - - - rd - - - th - - - semester at the UAS Technikum Wien. (see Transcript of Records) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + International Semester Abroad: -, at , + All credits earned during the International Semester Abroad (ISA) are fully credited for the + + + + st + + + nd + + + rd + + + th + + + semester at the UAS Technikum Wien. (see Transcript of Records) + + + + + + + + + [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] + + + + + + + + + + - + + + + + + + + - + + + + + + + + - + + + + + + diff --git a/system/xsl/ZeugnisNeu_0.xsl b/system/xsl/ZeugnisNeu_0.xsl deleted file mode 100644 index 9d531ab1b..000000000 --- a/system/xsl/ZeugnisNeu_0.xsl +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wien, am - - - - - - - - - - - Ort, Datum - - - - - - - Studiengangsleitung - - - - - - - - - - - ZEUGNIS - - - - - - - - ( - - ) - - - - - -Studiengang - - - - - Personenkennzeichen: - Kennzahl des Studienganges: - - - - Vorname/Familienname: - - - - Geburtsdatum: - - - - - - - Lehrveranstaltung - - - SWS - - - ECTS - - - Note - - - - - - Gesamt - - - - - - - - - - - - - - - - - Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), - - angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) - - - - - - - - Kommissionelle Abschlussprüfung - - - - - - - Bachelorprüfung vom - - - Masterprüfung vom - - - - - - - - - - Notenstufen:mit ausgezeichnetem Erfolg bestanden, mit gutem Erfolg bestanden, bestanden - - - - - - - - - - Auslandsaufenthalt: -, , - Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Themenbereich: - - - - : - - - - - - : - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/system/xsl/ZeugnisNeu_Lehrgaenge.xsl b/system/xsl/ZeugnisNeu_Lehrgaenge.xsl deleted file mode 100644 index 1974c4671..000000000 --- a/system/xsl/ZeugnisNeu_Lehrgaenge.xsl +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wien, am - - - - - - - - - - - Ort, Datum - - - - - - - Lehrgangsleitung - - - - - - - - - - - ZEUGNIS - - - - - - - - ( - - ) - - - - - Lehrgang zur Weiterbildung nach §9 FHStG idgF - - - - - Personenkennzeichen: - Lehrgangsnummer: - - - - Vorname/Familienname: - - - - Geburtsdatum: - - - - - - - Lehrveranstaltung - - - SWS - - - ECTS - - - Note - - - - - - Gesamt - - - - - - - - - - - - - - - - - Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), - - angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) - - - - - - - - Kommissionelle Abschlussprüfung - - - - - - - Bachelorprüfung vom - - - Masterprüfung vom - - - - - - - - - - Notenstufen:mit ausgezeichnetem Erfolg bestanden, mit gutem Erfolg bestanden, bestanden - - - - - - - - - - Auslandsaufenthalt: -, , - Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Themenbereich: - - - - : - - - - - - : - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/system/xsl/Zeugnis_Lehrgaenge.xsl b/system/xsl/Zeugnis_Lehrgaenge.xsl index d2dfa6680..3e99d4729 100644 --- a/system/xsl/Zeugnis_Lehrgaenge.xsl +++ b/system/xsl/Zeugnis_Lehrgaenge.xsl @@ -458,9 +458,12 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), + Notenstufen:Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), mit Erfolg teilgenommen (met), teilgenommen (tg), + angerechnet (ar), bestanden (b), + - angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) + erfolgreich absolviert (ea) + @@ -501,43 +504,45 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - Auslandsaufenthalt: -, , - Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + Auslandsaufenthalt: -, , + Die im Ausland absolvierten Lehrveranstaltungen werden für das . Semester des Studiums an der Fachhochschule Technikum Wien angerechnet (Details siehe Transcript of Records der Gasthochschule). + + + + + + + + + + - + + + + + + + + - + + + + + + + + - + + + + + + diff --git a/system/xsl/diplomaSupp_Lehrgaenge.xsl b/system/xsl/diplomaSupp_Lehrgaenge.xsl index e229a72b2..3308edd5e 100644 --- a/system/xsl/diplomaSupp_Lehrgaenge.xsl +++ b/system/xsl/diplomaSupp_Lehrgaenge.xsl @@ -2788,7 +2788,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn ¹ Type: Laboratory (LAB), Lecture (VO), Integrated Course (ILV), Seminar (SE), Tutorial (TUT), Project (PRJ), Exercise (UE), Distance Learning (FL), Other (SO) ² 1 Semester period per week = 45 minutes - ³ Grading Scheme: excellent (1), good (2), satisfactory (3), sufficient (4), insufficient (5), not graded (nb), Credit based on previous experience/work (ar), successfully completed (ea), not successfully completed (nea), Participated with success (met), participated (tg) + ³ Grading Scheme: excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), successfully completed (ea), Participated with success (met), participated (tg) @@ -2908,38 +2908,40 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/xsl/studienerfolgEng_Lehrgaenge.xsl b/system/xsl/studienerfolgEng_Lehrgaenge.xsl index 24ce74e6c..7e3026816 100644 --- a/system/xsl/studienerfolgEng_Lehrgaenge.xsl +++ b/system/xsl/studienerfolgEng_Lehrgaenge.xsl @@ -600,41 +600,44 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" ¹ 1 Semester period per week = 45 minutes - ² Grades:excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar),Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg) + ² Grades:excellent (1), very good (2), good (3), satisfactory (4), Credit based on previous experience/work (ar), + Participated with success (met), passed (b), successfully completed (ea), participated (tg) - - - - - - - - - [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + [ACHTUNG: Keine englische Bezeichung für "" in der Datenbank!] + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/system/xsl/studienerfolg_Lehrgaenge.xsl b/system/xsl/studienerfolg_Lehrgaenge.xsl index 493fe0f70..6dbf47ec8 100644 --- a/system/xsl/studienerfolg_Lehrgaenge.xsl +++ b/system/xsl/studienerfolg_Lehrgaenge.xsl @@ -598,33 +598,35 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Benotung: - Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg), angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea) + Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), mit Erfolg teilgenommen (met), teilgenommen (tg), angerechnet (ar), bestanden (b), erfolgreich absolviert (ea) - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + From 74a23b9b75e6ec6411487f000207c08925167fa0 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Tue, 2 Apr 2019 15:12:49 +0200 Subject: [PATCH 23/44] =?UTF-8?q?=C3=96H=20Waehlerverzeichnis=20-=20Spalte?= =?UTF-8?q?nanzahl=20korrigiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/statistik/oehwaehlerverzeichnis.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vilesci/statistik/oehwaehlerverzeichnis.php b/vilesci/statistik/oehwaehlerverzeichnis.php index 144b630fc..f7ea9447e 100644 --- a/vilesci/statistik/oehwaehlerverzeichnis.php +++ b/vilesci/statistik/oehwaehlerverzeichnis.php @@ -110,7 +110,7 @@ if($result = $db->db_query($qry)) $data_row[2]=implode(';',$personenkennzeichen); $data_row[7]=implode(';',$studiengang_kz); - echo implode('|',$data_row)."|\r\n"; + echo implode('|',$data_row)."\r\n"; $data_row = array(); $personenkennzeichen = array(); $studiengang_kz = array(); @@ -166,5 +166,5 @@ if($result = $db->db_query($qry)) $data_row[2]=implode(';',$personenkennzeichen); $data_row[7]=implode(';',$studiengang_kz); - echo implode('|',$data_row)."|\r\n"; + echo implode('|',$data_row)."\r\n"; } From a2a876ff686b69b8d2fb5758467385cc9d1c8630 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 2 Apr 2019 16:48:12 +0200 Subject: [PATCH 24/44] - InfoCenter Controller: Studiengangbezeichnung is retrieved from Studienordnung instead of Studiengang Tabelle when sending infocenter mail to Assistenz --- application/controllers/system/infocenter/InfoCenter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 343d4ec11..05ac22ebd 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1463,7 +1463,7 @@ class InfoCenter extends Auth_Controller $data = array ( 'interessentbez' => $interessentbez, - 'studiengangbez' => $prestudent->studiengangbezeichnung, + 'studiengangbez' => $prestudentstatus->studiengangbezeichnung, 'studiengangtypbez' => $prestudent->studiengangtyp_bez, 'orgform' => $orgform, 'studiensemester' => $prestudentstatus->studiensemester_kurzbz, @@ -1487,7 +1487,7 @@ class InfoCenter extends Auth_Controller $this->load->library('LogLib'); $this->load->helper('hlp_sancho'); - $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudent->studiengangbezeichnung.$orgform.' freigegeben'; + $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudentstatus->studiengangbezeichnung.$orgform.' freigegeben'; $receiver = $prestudent->studiengangmail; From 445900249eb80004b1cb264915a6b3ca1c4dd4ed Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 3 Apr 2019 16:24:01 +0200 Subject: [PATCH 25/44] Fixed problem that causes projects not to be displayed in FAS when there are special characters in the title --- rdf/projektarbeit.rdf.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rdf/projektarbeit.rdf.php b/rdf/projektarbeit.rdf.php index 618f2816e..cd9f52fa9 100644 --- a/rdf/projektarbeit.rdf.php +++ b/rdf/projektarbeit.rdf.php @@ -33,6 +33,7 @@ require_once('../config/vilesci.config.inc.php'); require_once('../include/projektarbeit.class.php'); require_once('../include/datum.class.php'); require_once('../include/lehreinheit.class.php'); +require_once('../include/functions.inc.php'); $rdf_url='http://www.technikum-wien.at/projektarbeit'; @@ -76,8 +77,8 @@ function draw_content($row) projektarbeit_id.']]> projekttyp_kurzbz.']]> bezeichnung.']]> - titel.']]> - titel_english.']]> + titel).']]> + titel_english).']]> lehreinheit_id.']]> studiensemester_kurzbz.']]> lehrveranstaltung_id.']]> @@ -106,4 +107,4 @@ function draw_content($row) } ?> - \ No newline at end of file + From ada594d83a6198aebd1266007fffc378866a97ee Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 13:49:33 +0200 Subject: [PATCH 26/44] Removed "Die besten seit 1994" from Sancho-footers --- skin/images/sancho/sancho_footer.jpg | Bin 59347 -> 34071 bytes skin/images/sancho/sancho_footer_DEFAULT.jpg | Bin 37307 -> 38140 bytes .../sancho/sancho_footer_DEFAULT_bw.jpg | Bin 36270 -> 25787 bytes skin/images/sancho/sancho_footer_min_bw.jpg | Bin 21322 -> 14696 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/skin/images/sancho/sancho_footer.jpg b/skin/images/sancho/sancho_footer.jpg index ecf23402167373bc95e77eb87160377405d444c1..cfd1fec344d367dfb1dc5a6caad14fba3ced3634 100644 GIT binary patch literal 34071 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 literal 59347 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 G|Nj8hbuo_s literal 36270 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Ŕm$za>YmgxB$9{An2XW%?d4S+6=4 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

(c%K@hK?J-x+c!@X z*oK2%B?|QB5XEfQ3j0MH>Nd>=g<+=_zbVyfv!5A!o8s;L=bQa*$&mbzYr(0! zmf4(@g8mhTXUsy2HLToptTnIY{lcYLUwU(DR0_U<7{t72vzD60?1Z#nqt58XfqT7v?ctVydt5xZ4xNoJ^

(eNHP*uUDKG~RCbZQh(f7q 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 From e7930c9f806e133f12e0b94ef752abf1dc5e7f27 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 13:50:17 +0200 Subject: [PATCH 27/44] Fotoliste Querformat --- cis/private/lehre/fotoliste.pdf.php | 2 +- system/vorlage_zip/fotoliste.odt | Bin 65552 -> 59737 bytes system/xsl/fotoliste_0.xsl | 518 ++++++++++++---------------- 3 files changed, 217 insertions(+), 303 deletions(-) diff --git a/cis/private/lehre/fotoliste.pdf.php b/cis/private/lehre/fotoliste.pdf.php index 3f4a79d9b..8054955ca 100644 --- a/cis/private/lehre/fotoliste.pdf.php +++ b/cis/private/lehre/fotoliste.pdf.php @@ -109,7 +109,7 @@ if ($result = $db->db_query($qry)) { $stg_typ = $row->stg_typ; //collect all gruppenkürzel if ($row->gruppe_kurzbz == '') - $gruppen_string = trim($row->kuerzel . '-' . $row->semester); + $gruppen_string = trim($row->kuerzel . '-' . $row->semester . $row->verband . $row->gruppe); else $gruppen_string = $row->gruppe_kurzbz; diff --git a/system/vorlage_zip/fotoliste.odt b/system/vorlage_zip/fotoliste.odt index b8ce90639adec43de38acde2db7a8a4fbfb1a38c..4adf8a1a43991b09dbcdcf11ae5e6f4659d7531f 100644 GIT binary patch literal 59737 zcmb5UbCf90vM$)RZQHipyKURH&E2+b?6z&&wr%_E-<>&koq2QS&U&?0RpuY@RYXR9 zQ7a-U<)wf@Pyqh9yj22a|7-GpKM?+o!gjW%7G^Gv2F@0CwoXj+^8YQZApHN7#`zD@ z21Z6E)+T?!c8>o865~H0O|9(=oK5~6^}kz({vS{lHU?%UPXB`{{Qqx|kcG32f&Kpk z{!ez=nAo})8vMJR|GQtX{)0+;J9`)Vf1v+^ssG8J_KtRDjwVh{|K}Q=oDG~^{(o@) zX?@OicGmyr+WtY=8`zpy|M&VJ0Fbl-W!chcF2*1M0DL$B0HFW+#mLUq*~HeF&fUiP z3j6FPk>Ro78x{2c6B9dg#Tm;^W)Y+2lw2u4imGuH?S$p~rhDEHGttJ@3C{ulcBJDy zrW?3St;TPh`7s_sk~7miNOwm#Sd^#4n(I!Nr{_ZNzFLpl^C@w1SaFJ(NJ(gMj#%73 zdd#7pT=$PMBV6E`^>QYxm$r0J-_b;BklG9$m|NRu-Fa45%p+AlcNs@_6{J zq!2OF-LJl394V?1m=lp06_#UA1IF0#ECyCv#n?=wD9j5`j(xNqqTEGKSMiPgVLNs` z+^~&`5ulmn25!x;g93j!Op_b#LU{x13eg?PNJV2*9UM>+Voyv=7|)NXkvXhuEAd#oa;A{fKNP4y*h+YE zJb4eAoMIXbwG53z`Y}L8jzh@9Ey#v_Hm-HyAgblWaf6*{R8Y)vX$DaO@Y?!XG?+ z#xxJXVWzr*oGac!#4R1o3G1&_iE+$`2BKl7UzTYRakyQnJ){L!Kf--{Dd=CLW13QP zng&u4p>Y-@;~-8Km}0nZyB3n-f(Yy-#(Gk-D~WW7x!wi`2(q7LU$vDXd1k}3B(0LFFC8!d+db>gvyXACA-Oqp*9QhqB>-`V6eiJ1Wc>^ z5R*0>=ytGHZZoD{#aJXCG-;zMRDjeRVm<=PEa=Z|jIzQper+Ej=`t~dIhyMH;zJdY zkM7qPVsk}G*^nG=iL=Bu5*F$ZmQPr-Jh1-ACz<}zeovw#a%Z%)r+>nU_gj}PkR`?= zmo--l2`|F=gMXEHA_pA(;PSzWJ5;@rrXX~afz4_C7B7gLVqfwJB0d-^nItIySbdHN z7xLIuXSC1TZynJP@H-EAk%V*Vm~|L>dBR;H-$Eroc&3+f3_dt}5HwY7Js9j9(?ABy z?-vGwKr%AVh;=|g-V)9;BJ`h@S2Cz=fO%_4YVaFf-RZKV4!Ru{Z05Fg-k50szb;R* z*=%n8CLpJBiS7n479{O^k^GfczWi)B%Q?(lz(+5!2QyMF)d`~Kg1)6Z>JS~*14ThD z3aq!}#*oM57165PgBFsB(LCJ_)pcjEU6)DJQF;*iF!>~j3C6;@oZkM2u1Lf*eKN1C zIZEY1oJdNOdRM*KSwrR~Pj=t3H2k~DNewOj-x{h5{Z-9{y6zSjJ}<2V={*t*r+RP$ z4ILDGr?WV-k)GV{N*BSg&^VbboL{;>^{&-m-A6=Z{WB5;RD*9qgk#KDg$G~fD@91o z89YcVf-PNo*WZdgmpWV6do{{#@CJ*$!ogSY_XDw`aF?m%QXQ?m zKysjT^H_iY{YjMl-8P6&4H%KFM+_LpSk;zn0U=`~dtel2W(Cm7`Im}tmqwC|7eeP| zuTkDir?l2^KQNg+{0Pw@MT{aSImXlCsR?Aq9j4zzQvtkepB22J;A2CP;Loe4au2Kc z`>79p8G7Ab2Sk|K?XTdTm;H7xtL7>pcva0FjmcB!Ep=~gwySpi-A$5=kBj@D3$D<&E>hoX%faemQ%jh7wG0($&(7$ZCpLHjH%Qk`W+@T2ns@4jGeIRr z5X5uAGLLaK+H)Qdes$SrC3BjjiGu7q^!Gom64ffh#u3zY01rSKM1QnsNM@L4ov4qL z5;7k2mrnY^HY}|XS-`2jYQsxdc2Am`;aK1UG>5yp?}oX7ebAqDL$ zz$C>dLMpgy10S0Zk3oV*J*6~^6^xzu$r5DK*Z8Y2tMB7T@PGAV<*snan+6RkqhaQJ zbSiUQ<)!#8TCBdntQWlp(NGsN<=S@X(-T#YPx_1n^1qOrH-|sE#e!wib!i?s68TRR zHI+wKhhUYp&AcXUxG+R2O8BwTUmBeOZ5~?qNKfNw`OD(Lc@ev3u)VZrE&6rD2C|Yg z722;tivuuQdOuS}j*;8gUXiO6%ezq6XF(Mwj^@%`L`K`@wSa!rG7e|5_jsg-~1T@ZOs<f`-9!>l)CVCxS zPch0RMO~1aU# z)S)oJ(q_k5L@yy&JMT0Os>X6V`E=hWyc2lUgkM@`rmo~T(f8(cjDpn9C0FvMxLsy1^Iqg*DNgv2yXdDWX zi-~3gAQMOADZry+FX__2?E@w=3*Zodg>c$=3e@{y)?4XXBv|B-i`XiS5MV$}i?=uv z;Oe)L@hA9N>f-rUw5Clwuh71n_*$SLiNVUGAJvbUw4OkyY^?kcrJqI&wGjoAi%qap zR>R@qL#K82#&(|OTcKxQe&wVLT~lq9+plh`BX0v1d}3;XY-RlWshDl|B1UG6Y{v1X zu68{WyIt*Sf8rLMV?h=u6CU{5ZRL|0Ft_GY`2r_<@|eoD~Yi{reDy2LMVhwwYG z%FRyu`0dlpt5dO{{)jhU+Ac6vy9k4%Zh#vTpvtk{LaFPJcKQg^bV7NCu+DFD4l_nE z&%tLitaX_Y!27VEM6A?L8VD1!_}1(X%Tju>Wr&WY4;`s$?#8bs+(NtcV!snp#wTMJVYCucfGW7Da`DcN8K zl#rJP6d8>LAlqPohPcV~Q{+X(G%<6@8`02~7A1v5$*4Pe2an7|r*5Z&l#d0DIPxO_ zEv306(j*FEn+h4dIn0jNjOz=Xv-Rp$E4aZ5Sd{NSr-%+z9C|4sv}%*>Ii(&s4o4H*-4ORV69hNw5W0#!{Q-<8_ki|K~IA45%>Om^c;LfUZhNMDB^%E{d;Udes5HB zkE`O31q)tpc1XXh2DhCA`BrV_SdN-pa1}<|1S35-u;_US0(Yv4KN^ty7`J8 zqArEXQdnw2lBi>9E{{jkhe!G}UpiTQ^I8=75-2Z*S-%{;c-(-^pm|x<;|7=EqFu)G z*TU2~|1#34UAlLI~2h^LFA+Af=)8m;6&%uRN1+81)s>f>@L3q z`{AtgGJq-I=zM?}#!_ysmxFtAdzau!$JI0nIJ2iZ^Ut zjb0eX2TIR%ES|kc1K7oKV)AsHLCAsZmVk4mHg1hs*$w4^SN0)*-4ZhK9xeA;SaPwZ z#;r;pb8X!1t4|=J4=`d`*qTKp6;RCoRGSmiYx~u2iLfFGf}g+v|Jnzsy5!v3$gjS% zAu*aPp2N%)mb-!&hMBrZwzXMsjs?4=5#`IbC-PKa=!Oq6`OE|+H)zVbMk%B!Wtb1N z&k5_qqzX(V>Zj=+qZ{KS%u2vOjwme^fyXf+e(OrUM4FTwr;OA{sa^)vY8NWZnzvcZ zx@=T?vPre(oBNy~`_L^I8SPT~PR4~nrJV!zFwmOaof=lnRk7K-VBuLGoa{LqkSoS! zhMVcRf8;djgT3F>dcZCcHWpT|8(W~6&}go)&|ywNhJjhYfz}ApyNq0nb=$GK_Ujr9 zdLV|89n+uBF5?a>; z$p6m&x&Mm-7Jo_LVQ*q!Z*Og3^j~cfdRJRxIy(a=3nw}|dlOq@J0q9BwZ1c*vx&R& zzxV_IVEH$Y|9R=Zu7BcP-onV)up@p@vs-3NhlZm6aiIcsFqoXsOrM+3Pri(nT4ARbTEqmB&5H~k+bN}7z>uWr1 zWbMEXFMBtLYpl&J$Pu@f>_wHWFNYO7E35YvCf=?l<_FhzmpvC?fo}>rQaFDB0)hK0 z@Xl|rQ4yS|r|hWcFqqA7<0l(wob8PHV>U5Wk?LbvQxPP^dZ?NSe+Yng{xf*;yq{Fv z4nP!)I0Ab(I3d7Zd4XMuycJ!4002M&h}#yyuk3Aga}0HR2?~Z*c22NUxw)QEy;J}Y zdjx<`n3&IDST#w(!G0oi!NI^$0QG{`7U&`ffmg`*d>}g<05B<(53tX~h@V!S z>j8Vnj-mWd9DcyNhJXOpH0cZWb?5+im~``FGyd#uL&o|9zi=m_bM!Xse(g3IQD{Z=k3AWL8kD) zen{#*-60SWFYT6Os^#gOufF)m)ubdu1}GwVl!uf0$wefFT=%61ix>kk-F^V_OOVm+ zp!idtEBGsZD;Hw1Q<{H}oygiG^0CM4PjkvjtY(~pbIGY3$Y$pbWbhs4>CIc&3;Clh zgD7+n#n{GY?am#>4Fshq7}-G|)%Tg*E}nSj93bZEh&lk&a~Jl{j&&7u`xgKV5deyLLip>- zuJS^bdNm-#IS+#*fRf`oq2gne8ICk|SWHW&{0HKYWt?G@Jr&s)jCQ`*s|3=PLRoR1 z6;(>plb>uqSWrk(AcTltY3LR;L_iZ0Pgmf!#^43sHvMgi0od9+O09k^kM~2rb~gV5 zT<=jvq}&7~mD%bE1tFjxIrUibnAVZ9QS-H*z|FdYM_Ol&UA@2GtmI^phc8e)zOq{p zo?NfvvBwkk=&T6!Ys%fZo~9Q=ucDLj4%nQIA7ekmnhOG&jSRnP1iTO+uG*$7!hu6J z!7EMx%q<%Hth9L0JC?y8Cdbz;#_uNbH5^`D)M^&2CG@V zAmmrM$LIDrB4B-e{apYE92lf~I|?Wg6c82&7;S{mFhpQvR9M`|z_cJG!J8}EV88$X z1d=ocM+C;nAK%0T)U&ox^E`!%)D65fKC7asFj*&z^fNt4jpV+X6)ckCNjAhUwM;hIYK>byC)};1pngu)alM6DQNH} z)63r_eLYY^YS_5BE_zm|gsp4cKP#>cj<@T3 zQ#{5qboyr4bpuO~9)hNwh0v%%264hadp{v8cC=Cv530d;;tIxVG7j!{JjE@ZeK}@c z>d9if_@exrg1C1^&E^8Ay*pB^AIXj-BHGgS%;39Uc^-!AY7iYcAw^Ib_#RJ8d)6Fx zAD^LKjd}Qatq#YSeJ4H!^uAtx_oC5jh@Y1FSLN~ht77#ls`y6C&Z`N4yw!}39m{Ug z-|UkYGwHRmH06u24nIUvmGq2Rmibm>>=kQ?-VeXtT;gQmCTDnLj)Z>Gs$5zf(F1!; zB(q`Sey%lOuD$sAfvHvyF_zG%#1u`|0D$s#WktI`IhO$4>^#Kc#INesY5JVUbJF&> z#{Q-#bsB9pUCi-mt-XIF;=CldBVu%Az89i&64GDKG12MD&`U5M zo)!38nASnlmYF=(E~$?m%XtRLy%`cQAlqQxVaS{BLs+R)FF&%UKGNbXK{>a=d69Xg zUwdh=N|14}RDfN1pv;6#Fy@NirTCgHi!7XtSHPOPp`7%dqaD0rab#RvZt>qWdw6*$ zwJcU%T$(N>ZJvEHx*p&L!3tNDJ;9_L@pp!NadC!oQMpa+dpT}bJW?W=c2`y#I*w&w z*)V#)JMI*r)|KDzMcJXT>CCP(lDOD!TG&Alcaj$%3FKl5Ef#KHNC@WK<@U@MEdC&rek|hc!7q7oxfaf9Im=-U?0<=>e(J) zX;tzCW4C>Fc1_ZZ@Oq|ico_@{OX$`7s8_S;n$QA6bFa6Plv-D5>)l^}3qhSlTLbZbtbD(JPKyOZd`B@G4#pDW-nv98v#_IS%m5 z1S7tBmZD4hRXH*~B?En&BW$dw{CL_p0~Aww-<>5HLA^U-l`^m+}(d$u2jf( zeDDV%qonM+_u0V7OSl0Hn-t5^BKSs)N0CaJGAyneF#@<94E{v8jq zuHlNmlDeC=L^*ase=*;8DOJH2 zb14VQBB8yWp7HcF&#(4;Q@!dtfg& zr|Cb)cb7RJuJ7ZQgx-N19wy1s;f?jI$(72G$&I(d(1_$A(3HS^JLBjq?y5$Tic%np znwh(R^h(rVTckT6S*E3OpM_Xw-X5b%N86<&>i^rO-48v3Z-0mF1>7og|H0E_Cc1QQvem37AGv8r!js5wEa_bYs>Vmi3^Khd;4E}y9A$+s2q9|X{;APBKb`2NgZbI_=EmfYJ zrN2i9vzHN11waGC%JMemoQZk%6>ai}+I$U$$ni}t>`v&v3-kqGA}LbNqMT8sE~2*n z^dV$4VNCStUzxPl*);-KB_Qm7-y$($9-%ZHRub|sD3o2xHUEXRjF2f07h+*Xr#W)D zM&ms`&G`}ZSzQ$h1%DZ?cSGz&j)v`trXQkGiMxanc0LhBBo6(cPh=uy$KE5}W|77u zxhExZAyVD$VHwqe#5{@8iX{;Boh|KP2I883WlBA{M_;Em~_;DOJ`Z4FzaQTu`)HWi=9$2uV zdOxHqd4*hzbw`HZ4S}+R&w#$j=O>kuPTJT*AiDR&silr@@EhVsK`q7UdedH9_-ad$ z8Pzml&-5hhW~?V8Ots`%!ag%;MK6_I(>>nN|9;^X92p8qP>^^nE{mm1MD9ATGby49 zDy9RPB!Wl5sEqkwx670$ei4cf)O9rC=ux=|4Y(Z?{iNG3+%uK%=^n1|rX1@^zYQz7 zs-e);Hu~XO>kcP#z0aT^yGfw@jwXBelvU`qw247TEl|w3i1as4ZWm~JO?G~l@af9; zs`w$zNd8>Y=Ru^VNnxqoN1BjM(tWe3iLY`qpI1Qlc!FN4!Gl4+lye|({mU;Ah4uiV zYr~l&Z^-w!D+~J!rDtq3SE97%6A@(?WH0i#HRlDj6me8AS!X$oagJaukjoXOX#<7O zh7%@AD`Tp~Lm=q#=`A4s?uxJFBkl;q0!B(s$G;7jKT%jDZRQR*8({?=L38mJ{Tr~78bnKuBlCM6> zbF3uuS9b9IhhJ&Wn8_fnSRlESf$x(j=ICVx1~0(Hp6L5LMHDM5UXOi&Sjjh~yAw39bO`6O!$}0qw4=Ch zZyZ?1&^2K6PLI$Ao^AH|aZ(#bCU+5w$E&QQ^(nzRn;ou2fHE_UQuv7*nbrlyCSwVv zmYah*!bSr5dPB}oAE>p~yRv^=M)P-x!^@jpX$L+Oan9odH#n8VZL9Daz(9q>URW5a z?3T{4h^HEdHo4C6%_AVhmR#UvO7JG?2MJ~xSoxjnGrJyIj!U_L{QNY2_YGEiwKr$H zZNK^V5e!Z!k*cY3bmFxcyGHPPQ!UF~S;$dv<#Nl?$%SW$_MSfQ@Ce}(d9IQAlyb6=NCZgi{hDQeveeL3Nj2F~#}*$#cvaj^=}RO1oy5?h)P3SejJQm731h zo)$9Sr#vPnzMeb0y46u8LT>Ynn5?}8AW}@)X7372>`YRJ0g8Zu5|W>Z6Pbx4hmYXF zMpI>hQB`(S78|}tu%#q!sTc6*MJ8UK&T?YgGTWADmtL{v(QaGmbClIZHfZ{6HrzZ< z=Xy9Pgoc9lc9=(bSwoJniyiP+pO`s+DfDh$t26ms&EkH_dGqAOwYy3pVqM}%891Eh&n=%> zZf=0EM>o=&HWmCR_3^Dbd0$>vtV2qR`6N4LF%-EGq9^32twND)p~$MdFxiF9%>3n^ ze5eB4J)&mxL5viI^qpFaZ!vTnY;vddAVIIV-v=ZXk}KtwTTI4-X*kE1N!;YCnw`bo z6aV?FLP1IdiRTH~L2Ca3$rnJ=Rc__=a-#p3AC;2p# zxSbzDKlz@WxJKWKJb~BPk&dX=?m;I6lw?TnA#%<3e)K{9DyvkH8J#tgUv&?&Ew2-r z9EG^Br}9N(6J-RhMMuMn)s}u_&a)KPAs*Y^b>wMqllv;{+qOK#eRr>KlI3Ip@Cmb> z1cytXZC(rn84}ViVF6O2!#zpz%j5DX3A5P@i+WFozJ(EwsJyBsM;a*9_Nix7CdhyqI+f5Tg)&XHFFChFk<0+#4(1XhLk zj!?AwezbZ0&Ou~w}qXZ2Wp^)xv3(3@P7Sl~AC zV0JYpE4|Sr#rJ%~XFrk<63U?L=xvOcF7tLs5IfnlMy1F^u-j7;M)2cfe0=@D1T?Gb zQ5M=aGpicaVqjtEoz=!}+(I6rMPS;SwuDQ4hrBup9?awSSBFg;tjJV2a)K45r-7r5 z4o3yKNns)KxgB&1!1Tb2YHqIPrnr*+8+g3J^XkdyZ5_BJlFDfyMJf62SR^%Ff9Ii# zv!xGhtj`TX|B*KUM%F`+-h^fcZ?JoGH1)`1*bKWk4{RTAa|AkN=4^X6h1 zd2CJZon?NL;?+zL_X|xzcxmXuMiU-2S)*?b1*f~YDE&$9(bEE(ckEW=gUehi*+&E; zL24{_JYpsNN5roCo1|V=Kev(d5jsug1p|2#9%H4o>>7&3brEu)#s_SJK}DcrX+NH$ z>7M}_SA*@71hu}qeggSk@54wlL9L|sx}M-&)8PWCA{H_VJh!PjQQfC<`SI|T3Cta3 z*n^dDVdkwrJQ=^!{^TD@BP(Io#T)dX1pf{u8XwSzd@v|CoRT+LQn9aNG0bV5M>&hM z$a%P9{y|viuZyy|BU-9FCmsI=Nqf-D51l!)AcE^QM*4nbnZQnt-YzQAE;81TNlMzO zoV*PeL`?ukMS)G~(h~>@Bsm?1e?+p^zZgE)fGG~Fe&iFjvlE< zZlDON`$Mlr``nYJZfd{;4<4M@vdPoFCNotP%H|;Xt9HIAHkpD)>WRF%SE+9pw!eX`JtgR^?_=$^pzdbwYyaz@D0a4!36AsOe*(MMyP8}h)wo^{Pn`8I|<+;>_ zDs}rGWFzdj7@5V5o-IMHR!fSCY*zXvOWA(gh^0bZKoHUvJWc1F;Yebv*A81O0j;IUzYEN8y)*Ne0&J#r9aM>>Agrh1x_4ps8AdMguD}kH_(c zFbjBArkPk!&D!tKO|4>h-{kqw0nYTfKjs0G9=61atW2&}Yhnk^_Y`}Rs`y5SPEDA) z%Plv)GntL8+%zq%ylhsM`=+j!p-v>QDEsDH)7DDmjd~yR`H9>x{bb@l-T20$xm$+! z%5+Y1n!N@qJtB}ZDIG&N&1%UqHCwqg#tN4Mwx7zEL*EL-gd&ZKuSJAPvOZHo2tQ1- zMLQF-l@ZSRLBaHnr^tW88W%~1N0;j9QLl(&MbC=;C0oH&O{?VJ=6=%*M3y}DV|eFN zWSyF%aIvWcMsY9{sJR{wT$eh#+bDB~k6e%JsGzq&f%$7zD1vIJb=0uPtQXjT?=ohQl6b zWy0yuj~#tIWmiO+hgSTuMKVkMqxx}qr=6E9lq`zRk&0Xzsj_xnja`5}2^VHw7Hi8} zuC(WycJUf}Z^0WyCCsdYw2{t2ZB2` z5|Y2Z8K93T`W&He#t1vYz)L;ZqDv}C{*IFPS)k?EWVGuR!`%!B_P4HPGAt&tJB~sh*n{^HfpS`^^nQjhSjN^ zAvYUoXriTf%w=Y^0PU8MvV;){*&txmwB>@Cr#>R)N&b95+Q{hHpNq!uT6%09cNO1t zrDC67kxH`q5pREd zkJ{c=eNl2YzQ0V|_|Jh=;Tc?B}P(*GEu0FnX_N z=reJMFM>m49LX(-T4{oO2Bk6vqUZP&)qO(qYRsP#9l$@FsJH%_;EBh%mm+qB3(Me5 zGM^*(gB0ec%qT8O*D^ka{2RrKePLcom|!0&n^yT=xC_? zu&?}=>=J@H=ItdRTw*|hi%~bImmk(0@{17B}w!avo(T58&Wc#R8St+b6 zrP9JymoH}anF)@;WS8w_BaZ{vlw`$b4^3@`IsEZa{QSC% zD%ZN0KNE|Pc`kR(O~#S2BvDe=IK4(JfS+Xag$5%Q>HF!iwQW*ir3YNs+%EZ@#kX^X z6Is?Uz>q}tadRr09-4exGGLeYHB`Hlv9Lclo-l1vo0}ayki%RR5J$p@4!zEuXmt{tKi z#`VxY(Qwa%Q!jzYn)qzW+ARPJs~dbsFp=+{0euK($(|pcBge_{Gqv)ye-)2tU$ty& zh=*AoKN-X!pK!C_?6DsFY;sk^ksoW9+TK&m4yvWYp3VgSAShXU!ER-|Q$Lg$+$k>E zbtdqD^nrS5c4_NnbEbZOTMRfgndRovP(YsT;INxMXlBzgU$G$LS8APF;-2qaUnB!x zSq(5a9YN486jh|UkXF(qAd|RtaHJ+yAz@b4Zr4p5aMNB=DXQmT#?|3L2`{$DQm3;z ztFQC#1;ZB}5fPefFnQxbxo%qL8aj>-7{N{_^agvJcO0;cv+n6fU}bC9%i@ZDpfNvN z*@^{gK{6}VwEtKSH2(s4vF^`H1*En(P?Cqm(W_-f6Sw%~eE+CU;zfM~joEo&gWZF{J2boor zgJO-(SHc7w!4YMn6;Lf)Bbt>|$wjZP9bWA+miKJep95xTQ3D>}vMuDtWJ%>QF7QmK zeV`d49%Rf&D-TatQhyC5BhrBFY`O~^@P2a!jmMkx5~Qi-^;{&5hnxOJBvzLywsv|?qwbE{5WF6v2! zpmU2hm4X)8fm!=zx`81CU!j>-@1vJDp?QmBWz*K* zyE6GOtt1t3)N~VX9)dTSwhf(%4(nUf27n8J_`OU;3up9>d8I^6# z>eov6@NnxYry6q2Wep>10-eGrjkMY7WWHPTJ#O?)&f1w3wOggrQ>+=d>0+B&52o(a zndZ=Y2qu;ixu1YoagCUukzoGBcg987MNH;(zUN@Jf?IxIS>)PrY5F2{^qUi|smvBX z*9o#;cSv-{U;^DykZ?AHO>TdjYBRNODhSH_sZF_Q@U9&;&LFEts~n5ja}HPw&M+!B z%{VFd^0Iu2X_LQ)&wFco8I$T;2TH6(cHn;P`GxnUKu)>o2&im@j<9k&4D9q=6lra~ zg@y}E6;bt>kX&}ua&#%Tw;p^E%!SZ#lNq~^snUBBhR+7^r|J6OSQpl^xZRMJj$x+Q zN&)(<5!uzy!@`9YI&K+I`C6#mXT(+R=-PWr<9Jjh*nBhG%qdLM?x}8^e&stAcRRaI zu6a!>5%gk-0{^TjRE;iGRH^HYtQAt>kwzf;XB>k)VNv9b&3d4EjCDhp0LfJ-XC?aA zqc2a438%?wSYO#?Ufh`3o3g+*Y6JMjKxARaSIhp?X-k*V$HG%a;oy=jt0TS4q?;cN z2UdWt*R&@9yL63IxBZTSwCy6@&7Z}r<$1Mg-}w89nL=*s>yUy=U;y_+{k*XdcdcnU z*gEnU*d&JRJ;{$2`9%x%uQf*M9~i}^Cd$&&x|kZ9n8Rzivz+J=epjq3Bm)=544T?7JqiP@d$UWG6~GD0FTFXKMB_iu-_6DUue zO!Or`{%|ycZFGV8D+`a$=!Ula{#d`J!^lQ>G!VtZC!F9ejtHFOx=yZ3S}dY?2g(RN zwgnr#;EhiC12h4q9&2I`MDw5QxStQy)(cWkJ16g&RBcp&g^t#MVTJ_KL(%TJp17qA zld7mgYL{oxxkn#13jP$fWoBxHTHcU?#fMB6AfJX<#nRTVQSCuHw?&@VTzTLdf+W^T zJ`kn^nCCnUgdw9pK3XGs>orjd*Y+v{L+9<|boASRLE8>Sj_2Rs=9q^lsX31}?ie~v zcb^G^nLL*%TkZ&iM&szLaaR|k4vQ~~?#I=es%476J2O;4mfklXaXmowcL>6dTc|Jn z6D~f%l={6dT`&ox&={d~k-=mi`nW@KTHm=BwfLUC-t)_eI_xM}`PxvL8phG3YDCP? z!1`4%35e)^sxHXo-ngX$P;=r;UD)OzX5oRjZ1Z$ZJN@vi(5M}qKlrF_+#A16^bA@`BdbfJw)q_K=6RL$NIMkN5eB2o!pA~Z+@ro$j(jC(B3bZHx}CqfX* z5iRD0L}}_KMe@*lw0@^{*gFx5REAcV5$_Fa6s~=$15O>6V~Q~hZju<&(u9cm4{A<6 zwkgjTkH%)6e52l$C|8gdw)zDtA~6N0IKV?x*M#zbIrZ<9^iO% z6x6qUA#w)Ipv=^x<8Uv-B`92{V^N$9(tJ%92buRo4_O}0b9N1f?jDk2(iX0EC?Kz} zm;EFN-D+5B9#TGf06{MI0D>{Gu)rP{giAI2fxY(rd0=EzHiK_)EDW9e6*Do;Zl0~7 zIS`toh2SYl0&i#vAwf2eK8-`T?ZUVuXO|TPrW6&~Cmf7K7A2g&)v=FG@vQAa=7mkE zvzktqMZtmT)?$?+Z3D;3u*qvFiw}?At-?5y4oW76>aJ|R9gKrx9| z@XqD6%EmEm{2Sk>@Q#QXuGsnPp6Kkzvov8;g#eE?9xscH40;W8co>vec>&Pd*jc_2 zVT1UKj7PgP4v`#1yP89XyzX{GGWa~a$=2sfmrd0koKur%NpK~t-wdEziw^Yh$_ze` z!k%z@WJ1TlWh?Rz7@aD}agXplDM8YD8k+`w^aLhRW`?Y&$<{vEnHb|b=&?Qn6u0NE zTsT}L9PEtK77bZE4FJhQ)*%*T!)Ss4rnH{-tadJrj!QzT4_B%Z@`4)T>24V5R)bhQ z9#jQ(=7R$=@?SmCYijnAGN0U{R;%*%gQN|Oxks4y9^n1b{W6!-BsBt#X1XB}LXswt z&AQ0rWa)^oE-h2H<%cE3t67-C9XN4^P*y6J4>LiFQAH@kQgc!*H@}M_WT6=1kU?DQ z9-%V(`dGl+869>mOy0~;7WWr0kuSQ{5}nQ$(n*`WG00Lp*)O6W5c9jsO}lw+P;2+P z=rY1V?*etTD<>@p(mXgaTl5HEOJI+eL0>|w*lso3gIM*t}NOis3uJ5(h|xTg%~ep5%^T~%6xtD zNYmsv`k~m7oM6&`+xzU>J8|#rq1nKS*3}BLL^I>Xeakm-MMnMGa7hV=4{>Ob;b zUcy(s=UL71o|YDJJP~|+0sUa{jlD{xYm6IMPC|YOgg*;lh2L&yEICC=&k>UTfI~?l z#_=F6KM~cJAE`>f0-?$$5VmMR5-m6l6kjg?%;oZ7dc!S98M%{$>eq@KJ3iumNQ{OY zgRv*7S!Y4IJO(|ZQpNX~b|XDN2Alxg^-`r1nHjI?>~pM;r63zWrk7A0#)(LRb{IcH z-uN~NETg)fsAIEC2z83g?Pllqe+aZ{CBA28ph1JkH!9S|Iw=xtqx}jwAqYV|p0E%N z=lxx_x8h-5KtI1z!VUXucgxX=3K2FVry{`b@opKakr7-o23?t6u`d#$DKX%N9Kg3N z{VPbHdKFBUFJ!Gz-{B=3u|Tgjn*-dc>*kI89t=sra$J4w1OoCvIUf<)qPt-%01~o3 zL)XTlT7%2b}uovG30!b1=;5POd-%Y)q z|AH`t;IqiTN1+o1adig;0D>PQj34#8mh`;=ln5H(lN;h;`Dq6>z)$gW2NeJT^qhZP zQKYOlH)m)6t;4L|eRc(J&iwEA%Ncq3^)wn?{USRg3*M^(OTm&zlH>$ zxE*gG1ixKBl1La-GyoCkg6}zR>@)t+8#{x6Z%ows!wrV;?>};(R3ab} zfPcFIB6hsrXX0Tn()Tmw2cTmByFDtTNM8zwz;GY*1Q4Xv(CO+s(=+_d@1OWj%%j8% z*sP=(F2m!QcC3a@oVa$)hZJ@t^76YsmR53;MYm)0nF{hXp7)#6Kl}JctfSe+y5Zz_ z$ORcymu+1VZ_$MG%LlfAxlt9Jg+_ba@QK?v^8~C~zmdAx4-@I+w2&%xbPcYVNuSZYlkw{@OEkI2LE*}^30aG$J&`aUg zk-BNN$9-zrIm-z`uF{JXZMKTJuN;`Rw1rg*I~pIuOd#osSjQ{5%;rMZwzETfJwQ@r zPY1B%a;QllZWd(_U(PXlGBN2+oO&?B^)IB;wnzMmc9pJ853F{g)+KR}jYUDLB`?a* zsnGjubha* z92V)G)twWr(*{!?$f8yF^scOEuh$`_@&RO|)|pvy-W)YHR!~_R+C~;7=tuJVw!8{d z;%ViWx%FVltQl@2VS^UEV10;ade>CM(oIX}g4QWf3pLr$v~y@$GoNSE>YvjimW=hRubFH<-ch@cS!%_$q+7e-%DQ~Xwhd?%tIn4D_H2_;+D9FkM_B&i9OYwfK z?LSRMEqcY!^6=^d(Pv=6jblUvEp|OXf(aZ-oSjw+aUg<0lwuB=*UE=i*JBa!;{z9l zK^yQ1fY^q{8w9pCJ-mb_{sxKPDeyidui~I|tW7a$2#wSe_&=@n-M(i1~cGa-*ksjk>;$rTa)r zF0=Ut$wuYny~(y?X)}JgOQjbh8dYEr;*_qx*cEmghPqdm+$sr{xbMKEVO1V+hOq2) z1{FsoOdFs`6Gdthd(1L!I8n7yWXw;4)X@QDncXT(jsGc@DIr4Nl0uD2P*un#mu_~} z%Rri!;y%iFH|m z&?7beidR*gE<&e=6Kj;!{Ju4rtbV_Hb5s|_K!UQn?WIyvuuVu>qpvP*fwGnKoC&{u znT~TZNub^6D9T+_ENhPmP8VYwe?Yu{*Jp4n`gBt&t&~4A2HjyQJxhms)g^M5YdB|~ zk6mwFKf0QxSZWDK;L-{7oDg|VY!DB=&jk+zg4IWcPzVql(Gw`~ZyT}_YP3ha^5sig zOF!cCnbaWR%g7)Y!zG z>RAXV-Xky`g7Nfcj0?k-eMzNPs$O2DLP5Ey7Vp!OS0ga{Y6Y&Guf9L`{kj>E9S-k1 z+uS>oYnI`plDbpEoP~@0rdyyJavxWlvf`YlY0syHVmp9h*If5Kl2Bn1X$IW!5ftf9 zu;DbuN@0F>r%-}KhOb@#qc`$@dh)>#`g@0#p(C>~`*V8rYs0hX&fOEcS1h=+&aHp> zNqp6jB)B>?nza2?dZ|LrPcUXsDLx1b>NbGMKLk5w{~F zXu_Oe34Z?rW+w(n9&KVcdJoxdM35rMBy2pW(nM9CECdLIIeq#a7(M@khby{^M6_!& zCY&1V@2=GV{P*;Yu_{q;f$99AMCD|dxjzhlX5cH6;$XdMUrY2M3Pw~iJi%_~1UYs+ z6d7Ebt@X-CASFMykw0e5l(`tke7TffYeb&f5xKG9#!TwgCDqj|L>IH1c$J%!t{eLj zMwP0ucT0W!k?^t)rcI2!YeR;&xjbw1BUX4;QVhV+ z{{?tJhrc**M+kE&YG$Ycwo<}7MaE`iNvEXm+*Bp8g0MRXV-fQm(K{*%do%?8Mkx*WY4_-wS$D1;D_-= zuv}=J>aaQND9-x^JGzSYFI5*3CJmJ9-A58;^EZS$(pWy8i{cbefhH#z*6(?OHs+mLsG=U~A~k(4}B<=1h6;jJHs1-CYf_=<3A=X3ey4_WEmE)LSM)2&UHHk#*$PQPWKVLzRh_BRcO#{CKZjlW(=*S?v%ICOwn}45*$LTvjlq=`e&LvnMY`O)`d@1R? z13r2P4#wN`zD+;aQV%77q^qLay2;cK{g#AC!y5OnwjNJ`i7|IrunYf0UJuzGd#5tP zypG$B$A})WSOr-z30E9)q}5tHG##u-JXa7ay}ko`(<*3H91IEq87yd!VxF+Vx}-U+ z9E%PtB(F;gevR5ZKyBAkc+L4^(}T^UcLTm%v~$AkT>_jMsq5Y3e#uk~@GOIYcasxFBJ_kDnk6 z6vT&jyn^}ku(fB&3C;%)GwG-&L`nGcVxf{U5_m1|%J>)2#6+kOlK?n=TKHC<%P8$c{1v>4~+nQ!^|ZT({V{Y#6EWpEp7 zU<3P+b;#{5jFzDbMaWNYN6SR(X;v3#Mgkt^dNA^MB1R#A88i{js-vFr5G%12j~XWU z6(YV9mTUn;*7+Tc*&!}jWlNHb)bF%9%DI=WPfilNve&y_A6Lhf@zc#x{02q|x9)1h zB@S=zE;B(22d~kTBp6+#vrD|=MvK{@Y=s|DQ|m(ijQI`~n+|~R)4v)d5c+I)4(M&J z44NzcawLyhjJKy$DnG=gv4@wj8Nmr-JKGa+aVJZtz!wa?;ABs*#0ak$DQdVqvYJVf zz?nJ4-1m2ctYgBp2>I!lcT}O`Z)xrQtLCB{$A=_HG2+6j2!>q-1Ztp?0&};z=owz; z@fR^a6ui&T@LuwfM<1WxdVGnFQ|RP4mwMrY$d=lr=X-oavyg2`zJV$LE>D)*5^ZET zck)aq(W6k_r+v)C6NG*R&IfZKv;Dd_MM?53Nff4Z$?HFu&6*!<@ML-O^%;XV-|hXV zh;j6G-Zl`fAaP~7vkhW-bk}Pl!56K#N0ZV3LE}gYCrz~gUm2zaCz-2}2V{U`p%{`rY zWpHA0i*%7=;4^3U7hC>(WP^aLTi~yMkU(U}04xarkt&oQYu>n+ki}cH-7PU8ydOkFeCI#!!dk<1i;{ ztKiUw4@KL<2prZH$b6yho->jC`N(3+D zo^ABr$8r37LhF^EOFWOc^c7WEIJjTxXjQ(lTJ2NbR;+6I!PPC7{Q8oQ(b*88i#1yp zl*%DErSl|iog{s#XO-(>()NhsSk`C=U9W4U$!iYwe!qkIxfq-xH zi5Ugjb3uJ~kCQeRqkmBq9&D8UN4Cm>U}s%goc$tesU2M6aCZYCx<7U~{Jh3jTravjg5j!dZ?5hWXDH)N|EX%kRS;)6bh9=bC?p zhY;9W=iZIsw+TJgRqa!8cd09M$r5-6P~wVn>?~E|7-2gOk;h*U5tGHsUju^VoiMxs zU4`#T?0^KYE}=Y{R0%h6F;wu_nW@ou-b~26ZUseuO2Hvw9MO0@54p?En!nDYAqY)XF?4-&hC} zQr5H@Yeka{mkf>wU_~7Ng1m}hwXeBpmSfEBSbW+ueyDe;>4ER}_-s#Z+U+U@Fhugmbe!ky-NTmr~Y!);hpL~8I*-YFJ5DdeT zk_lNks=Z%KE_B_n*7-#o3ZtWv4+J73x0ZhdK?!d7rG^5X@~8krq|k>iO0}Q|M%@{I zs}Nza4}n~wAXhYjj7ERzVgY9LW>gy=^jm&vCb;RUaNTDxBF`-aphJU=Ajk-AL}u4R zjRX!wm~p;lHzm24(+n;m8g*Ipb0};Tmu5gDK`zK_+vEd8o$xDwiX8weS!WW0zL`pm zN+3+0KOuiU9Vay6h4Bovrly6)_Jt|$vzKZJc>ZjR$nI90qWcCZTyX0U#TKQ;HXK;I z;bSMV{UDrd@}3yfM;Tuwihv~42rAHw(4z)Rua?DTk-#BTx9#Pz7e5N)N-E-1kC&KS zj}eBgB_gSxRA>Q00T>M6SEe}pIctDHPMjdV)BeT!d1$Yty@9Y_z60~pR#PO32Nu42 z?c}T4eDnA&aPUp)tGg_xb&xgDY&`C-%%f*tl55VcxKBe7lQId6QuXJI-R|J9q^|(C z3o2G{+cMSXPaHX~K<*dK4VmVk^mtwCB7BoM!OJf3)cDTOmQW)`Y+V7a0~M9 z_TO>;j%_p0Pb-2yrnyIu*jnFg3v^(C#Z&Zn1z1Mqc?6w*SW%HAAT!~=0uQc?f%Qg$ zoZ=zBiQ3>!MbiPJ0S|hQqO*=3X+=Tgs1q>I3Wdc*hi$L2IDKrhYTJT2t1rJ5k1*Rk zIv{MyIxen?mp~hvDoG9M@-xCi=_I;##{sFvRRxi1ci$%kwB137YUjFeID_^;dOh0& zkbw{~0YYD2fiNN%@mqi3g{+I1ds#FWDJfZv&uBoL<`oEz2ZC(Pkda;&{{m1;0|XQR z000O835PpNgE|J$4Ltw=)IR_KC;$KeP-$ayb#i5MFJyIXZFy#IbZ=j4Wod3gX>4Rx zZ*pj1Ze(R{E^2URrCN1RUCkB05BK02+ylYgA-EGXxVyW%2Pe3@yCz6*cXxLu1h>-m z``S+b=ycli?(FRTj_f&a@9v(NdtMh_HvnWwQ3+811Ofr#Z$IGm1t9xmZ=~mFWJsj% zMkJ$WZEXM6l`^w7v?Ovdb2KFqlaP^rT?Re@p#PKpY6SHE(rXuh0s|5NF2F%302m4g z90l~+0}ucp00jA0KJX`jAfTXOU?IW4;okTd|KR+S|GESqfP(-qWN_rS(NeVpL<}r) zF+>cA41gtydwW2i0SI3~GF0Gg1c1R3#k>Lkq>{fj4bsT^xidsR5QO?r@=Znl`^1QATyy}WJW!29fiCcO=y_}!M>qy91~l3& z>ic&HY7d_Wz#t-|gc)Y|!(&Zoceoh1IB`b7?v6hoXmjZuL2_}ZlJt;2<8pFb(UtfN zDiEXoQwX1%eE=*UTzX8>_YZ_C-9`XKSsu}nqwr6)ldy&k3^M{360XY(cAy-o5z=mb~#L_>YD8CU*eyTL4mm3{1wILsa3< z5O>nJB!IYl0F*06@b2&0$7U1R0Hinom@f7Q4E+_s*w;dQ20(BnKpX&t%JE`>LIeO% zy%~PY2LJ$<4MT<s-5A?o3r?Z zoX#enBbvS@PhDmAx>b?CxSI^-zgd{vPT$`G0PrHpa1(H?2wOw}E(CW`3VO8pkMUx@ z0NBY#2H;WKzngCQBX<6UoLb%A{yDsG<;(@T?QtH1bt?Gu78z}J z`Nk1zS5e=;ap^vBqwCfKOo!%)dgm!>wea7%eS3iaf}r2F+DBvn3=9nXZU2FRz@YyI zqd-DIK!d=*1z<3V7*H|LkFri4Ct>r7fc8_kQnBFZzNK9rP&Y9^sS_KW@x=;!=ljx3*Hi=k50@=;s$ zta!!HJjD*R87=t_CT|;0%~MqpzlBmrNB;6Jb9=S#*!Rr?e`AWSHaR@CW9BzGM8^GX zwy!+v3D)l@Dc6}vH{BlGT^|(7@hxY6|CJRv%RAoa(=*N7x+(M5iKA4tX+O6WQSy;V zN0$p{MOP(?g}>RvNuT%WyNp8R;_&Y2R?YxdRLKRZ$lDm=CDxjXYTvky9V)0JsR=9+OrV6 zf_A=3-FtTiAO5!xF3NqZH1ASLs$LNO7L!<0NTOKeP0^`r&C>@f1BzAM?(V*hp1;RC zkaw?@ZEsi0@QV*RDXHjZWkt?)q0k>Ivh3b;#?QCv;duIZjZ}X6uIrB#AT>UE@4=Z7 zkb;x+$Y^KpV9y$r{>yLoA8V=EaP52=?J#qb>cd}}QFh8sXQsZ^B7XTNpTz!Fq4J9S z`khMO{`!%qVjTYwpG~FCHJ6F$74PpytEkhDN_B$XjLK=~=L}q6+mz!NZJgz>gvE#a zSBx+D4w^bM7~IUsQby*ze|HJRX?Zr>&vZG7oBi#L;CVszV7k;k#<(VC-*8@WuhiX} z|9$<<&iui>kL&bV23hi1eE1P9P4bq%e{=Wvc>7R!HSyt=*7CK4!hkBhQn?zVBTalvLq*Oy?82ZR9} z)4MorD0S$ojXqN$3fy}IW_)IRrf5Xj+pTNjip^8|RDO3JpN? z1G`Oah<*W&i9d!HYcx+8 zmWg)X-rAD#wqR+vD9R^F*(4cMH%~J^Jl{RtX5G6_*tnr@fd@}fW7OT%9~nE+7hAbN!sFvybUtM> zmN(tTuXB?US76Rp$E2zyR%?BuMy2NA_!~1WIxD&Hh)Po;S+f1;s%toKbs26Qr-qr7 z;Uk_$ha(ikESt?x)0dnjOSS=@)pyhh&@?s9^cv%=R(|{M5X}|{ z92n+~bymezeSRUZRy~Ag(hUa;1-G8a-ny2ZR-Jno&OWjUi7lJYKkg1&!AfUD9#$7; z4dKo|i^%3#JgU9|xo^iQI?BH%F4=!OHNin3eh?<%e~RH)dhVyRtt-1C0s4`xjk}7{e z2ono|Bnh&(G>ZRXc8NiFbjp(nSDIHDZ@pdqQW7g!YIcdu`Ql^4R!OWgT4n6Bq{+AD zWci6dL%qkRt`R>ky;ITUXF}t{&qm_mmRBHAs%l@%6wh?PV93)b93J*LL~}6JV9V`8~XYB2XJQ9Y` z35zfg^UYQKn^Rb{VZU|;kzPYdtveM zD+}&lD*U3Pb_Guna^jBxRvPxlDgqJ>qf`JW+H&L-C?(<9qV~g%OO6`Jsf!y@`r)_3 z6|~Hc?qN=OC3Q-EY(q11O3utA!X(1XHHbb|$ILuuY*IdQopQ{tR?4|$ErveJN?Yc4fNq;b@$LULAI;qSOy;f=!{w}9tD>=c!Z5YCD1}cBBFx1fGhy5Lxvk@%x< zE*u5vQM=^!V!r6M10v34%EY7)%Z-@W;_Z=d*ug^9ch98u@jUf7W9kt8n1*Af!n!An zy!H2FGbq#-}h^eHyH&UV`}!d6&y2G zP%~3MJMfZlA-LtCprG8cey5PMS3^_;bCI$7B3R+8Fb4xi6zmm`dy^M`<(5LAeeq5l zzIZ}w`l8#N2YLY!`*{1Bh0Tfbz_gNnH8e|mH8i#o@|mFVvcI)Lwx+aS?#GwT`j^Ng zr3P^32__6NcQUUP_Z0ztv!U4gECnV-Fj6!!#VH7b@^9m{BwQnp+(!0w%q`BxOBtS` zjW@gUcjEIHJuitro%(mts!)UK)%~K96*fbF-mQ&^VUkMoFkJCBR_25;jIVt@o(wb2C*X}cV~A`_Dr27ovg^v7c^6vh?nC2o$*H@ zzVmwc8zhzQ{l`X(s4oTY#!KD3#n|Ov0hMcul2>4N`s}{Q>|S&K-E|k^@8L&no%yRP zT+uoev*qWo<_w?WBAt-cqgn%r7We0>#opa6A5#)OZ&h@4G1u+WY1AyhU_!UhC(Y9D zPOfZ|H_{RZiZ;v=?Ao`>P?~a!91ZOBeH%T~B}AS+lw!-u0xRJ?4WsPusivfuw^5-}lB>ej(CD0f{wIcxd#Fyr1ISyR@cjwe$#WRv^Di z4)ZTxys7!DE_##YkQZFl3U794qlP`7kX;g1`wBSUoLo#-NqC?$Z!b0AnxiWh2dPxX zUaNcy1nXbtLU5v<33nn%p-y?ot!!2^rm~~mq9sf_G$#Ejzj&wMC?IfsC6XOHmj2O$ zub{rREp?Pd?USfrxcQLqoB4!WbH&OZ(?({pT{mnS$Auwc+&2aea+XTDTltE$SCN zFRVXx&j&8jUY}T^BgZyslIU`t)eS>w?v4$0H=yTjh)qSA{rjJhFYR z7D^7YxhBp;Ek9newrSKzMBB$d*|jWL{2;*p+IGRI4)D=?QQH4}=s+vuubG~%3K@;s z@7!e~QOsv+pvqwdIeb&K`UDs!NMAwv- zuj9tC`}VgSZZz@>$NBm+V$`ZtJ6pePgr%kH>jO>{f)+>2F9WiR?L*9(qM!>e?N!R= zs!+LvRZ;4?r%w^0L3=kUDWWy)%J%e{ho`I1msRc`_I;iXA zhC-y5h~D@=-RhL+3DTy5T15x?ewZt#G+!QXmOec4RWyJyu96YOT8gV(P#2!qt=xvI z@*g%B`o(^!-{=n$sg+VP7tktYsIAOrH}+sLEgs@c)1pw%kDz3%Esc!4UEP^=%$HfI z@cpNd-IZ-bAGDJP=24q#);FpDz z$=fhy$#^;J;WgH^aXzkH*J7&4c1@3yiR^THcQd=p4V&fSpriAcR)1RR?2gZOwm(q! zeA?31RK1KKd>PGH(y4nS7xe?9@rPCaPc;p$o7is4RXBwWxs#gIVyc;+sdT;f!{e4rH#3e(_kcdO|w!zN?|8f>iU&3X#ja0zFoS3 zd5ffsyx-C)BeVO116Y4S^2|V(5d=R8H^Q+T(uG7v<&__UwR%;mlDCv>*@%~(nBgWt zvFFo9xDFCUiysN`^WIvwDVwW&VZ9-+ZJ^eh2_145_ObjO)s_{qNWqOC7J1E0j$8U7 z#QSAKwq@p6ZgX|2o3sRVd*qb)jkrd}zoca0q}+@=&)QV(OihvyJdK} zPyR%%7kM;Yl^Lm=Z!6|e7gfj3bno@#O)sZqMEpC=;A~e(J3yLK#Rx!Ts=kx9<2TK|)%LO@|2nO`Vm(MHd zLv9iF>*h&3N3XzeCJSw%Xl>ELu<~beUJ_$>?>)I6rB_;`AuXAM?(PG-H5_MzoEC?4 za(DrKI@w~F!|ZLSauUyx=TX4Uv`EhXlfge47j#b_S;*YUf@?T&rC zzSCXox>>Vx-tbHH@7~*N+^y&^H)3&GSHWY|^KP%)G+#%jou!c~5+A5+S4TkxU_4Vx zY#p~|5}E6Kk2qIvt@7MFG^uINth-N_6$=|&dSK4z+_wF4K-g8=wk{bn$9g|&&!Xvc z_SyYp-c~lSu{b-}n{ir*5DX_aGkzIAL-wFycvD;22js;CS>VI&Gp^GVY*1xUs>ptz z+t8yFn#CkT&a-W>-c$DzZ`BDIpHi-5Df+|xkX=1p+JZYCbD$cU-8GY0hXE!he!gkn z5u}WCZ2@yK#Zhq7Wt-R+kp9T}*eT@fJSLaR=j1Fyn4VsDmRJZ+R;X~HVMmx&Z@Gn~ z)k5qj?*TKE5ECOaZ8g=vk3~EqTXMV! z<$Rq#F0v>EZewWoTG?>g9_sHqvjyLD?%w3Jv*}=u%$|5ptMrBc!v4|2=-i9e_wp$T zHQ0KA4M*C)iPT%YeYE#vj=!~vbSRC!;r;9fj|Pld<>NHhq?1|cgJW^TPQzN4+iWu7 z9p`AoM%~_pCE79goiiry=jYH*U-r4jTbg~=qqkbm@lLb@Lhf4J-W4g^FSD&TU6&Pm8Mi$u$VjR^$pn%T z;++1nF>}r{*Qy^}QThA=PZ;eywndlR$<&f$Af2#KLJqc7{8{A3r*5gHskVT=paiY= zKJkc2x$HDALJKoBNy1-be>_lj-IX2l>50u~E_xt55ZEc|XOH{;Qij%He~>XHrfaWN zMZq06FdMt99t_q=H~uWb-)L-d2{Grz zX!DEjk!cio)K+ltx=F&tu@dA}+e*;on;NZl7%ajY+1Q<-)W0Sjcw@_whJ8AXm#4qS z7ht&26hyvPVU;UkiB+$oLH$7EyGv|)ZQYzJJ!CS>|G@PMtR%L$$-M$U5F1{BV;{Tb zw$%RHgdI0Uqno_c0y*d0M#(k@8`S62k_>z^P%~|!?8|S6(DbM^sP%=CsG_vR{%wY3 z1~>ID@T$&!QBsWGS*8p0rvh4J42_=;7%(MdV{mU?0jXEug}LdLcTbu;FKomrQ91$F zyfdef4;Uw$tQx{R~OPotBcjvVij^~|+0yX);A0kxr&=^*%9_C41 zWF%21Ns-!kNp1tG_I)P$6L7KMvCF_^Qcz0ovs(<`3zoVNaoSc(B{K>#;Slc&9M0D( z^~ryaYa;3sQOD4+@2U7iF&#J$#U!YQYWZ;$&=)TxZK4V9*B)G2joYocCUknN+0w)v zHefeUn{#nIUQQU=J~#Mi-D$rF7hU+gctM94RFPJff5`pA@l?CbD|3vmcSvGzM#zqR z;aF{%d!=3IhaakSfr0HE+dM?@S>onc{6cNUxXrGsn>=p<h-RYM4g`Jl02QM84;f_kPrtf1aOE5`LsomHw-5sYRMG6(i8yA(F= zFYrFTv*0C_a`A9P0Z~GkNGC}l@^>qh)gDvrx(-&h9W2J~Is;L`I*+Dr zzDv@Pt;=lYFMT@1lH=hMyyW3d04Iw@zXlDW^Pw1 z&?b&=TsqZZoyjttwqORImM*BwP-!hAdc?CKja^{wU0e*p{j#a28tt2295Sf;O?yha zl@VlZq$YK(tX$Q<@O$IvY56E#gGt3zvqui`Yv{1v#r^P|IY)DE3=R5K-YDM~DWP4W zO@bTPk8x>?KH6aw*5d+w6lC>#^15Up9B#$xW%l~-H3`0jFY=5j7TPIx$WUzW@D!lF z<4IfRAMQz)H4tFL1}Y{1kk5`fSuAaMxmjn=ZuUql`(hw_;!uf_DI+sep!<4<#C!2 z>9zSfseII+ku1%~hMCI{43*JZq5B2csZ z7*341p?P-1czw6hOS0PZwMG5f?Z(c6MV&<5)$i<#!4rlo*j>(2pISGmF1gi$sd4*# z+REKe>eN=3TK3V_3_{M46xjK(81hS_laz!qnv&66tq6Qx!CqW7odd!1h{hb!~&Esp_YD>>LyA+?1R0Rmdz5*E@UJ8qz*S@{rT= z4HK|wU3Xj-f2(R;5Q{1LEH!7ZLR#C3MZ<>A?H%Q*S_o;nAqI(6Fuv+Gyh+lhv56Gauek}lp z06~C(|NYxF3NgSaNW@@=ETEtl>zC7cA-}0xbNT1TTYlmL{&zavEe|g^n=8(I_*Y9l zVs{`RpoD;T2jcF!&zOSs{#swjFqVQ_Ny4h0e%&(2_O2YCFr@xoJJvgE-3P7Uglvndgmi?9`e})HwRP@LmT6fl_=1jLQ&?C zU=>gI-CMCk)NXk0>x&y|zWW4JKO%&Zx+Qf01Ia))iat>srdq-}{?b8Jw9-!(H9V}& ztDK6GT`=ffS4PLK><5cL$Jq3wgrOmH)uxMIBwplUH*7`&2pLm8r~$0shEF21Q{$LA z^IDJ00&KJeG3Bq>h=em#SW4Kc zZO<{@-(1^XDCsc9!g2c~pwlygUG^rmTrLh|r@j0SX5Mlr+H%%kKTy=GYSPu<FjXo+u9fY`6#RZ97sXNVu2#s4u#zLo`ZURV z8+!i8VM?3eTdpW_Sh7A1@fWxb*-HVX3;oS^=JOBhhnW%tz7td;f?#f-p*@u@o@C>4GetUIE^(V}S>8kp7Uh9j0x0yy7*IF{>B#=U5?n7stqDil0ey zGPc^$OE(-;8=7NJ;%NdgXUJmhHm)S&G1MEOER(_WepcO1Ieq;sWD}ij#DdA-*q= zexeE~NV^N!5`mdq$|-+zh|+3M-s$vnAGamHE{fzqclF_cF8V{LFh2JX*6(3++_Hecto_FbMSfzK2lnhB1Bz}YpN(F)6jcv12m6lL;y7m^pXd; z&Af-HhYBM~5hk9UV;)z!RNe-|66eVwK_j?4JhN#ej$Q(@IWV}EpYUr*yldw~hT2|P zSFWh~6=;%0#C0%uUfF?ZaO(g~f&{R4&~$RokgLlfFhBX~ma^!tfT5E!Kb1aLl-)G8 z{wBF-+R3%=#pmEGh06xHN=y?m{lL}>^(CNMC<;*?%}n-}0!$kKd7gav3k68&f_MZH z6T0kgTL2$9=L#GB?exGcmTmO(%|_;A=*iyt#Q@F zy-l5!t0KqzO$B?2T(~?M$gwVvcCr#yAV3`ZsNITzlO$xhk2E(BNcSRy9B@Gd1Y*u!%6vaCsdvaU%_dAP+_b`uqZst_j5D>Q== zkd9^vUuBUL*dzWa&Fasaz8)L`Qn2+8)1($*$%3NuP72~DvHqUtlL0k z3$nLw9C7L^P!115q9FN^DREQ9%UFUL66hM<`eZ5uXjCYN6li!d;1$uWdVZ_eQ<1M* zRgOzy`0OUY;fSI4n-5OgvCX^MkGL0>_u=}09VVrgn>&K8VL3g$oMo;hRy|$3zIwdV z+M}xsVYgm14ZR-*u_R6bz4id&^FjLW7H#PIgWRx_$+gz@Ek12Y{q*9GhcF#-zAT)d z+{C+GRELItR*NAcjdi5bhoz$*sP%X@l#%*U@{Ayf7|xCPJ1qf=l4}J33qs zKfCt=Tx_5yLmAyo<)>kIm9K6haOReF1WR%-VCjZQ(s-nR^%Mihx+T-<^J)B93km%7 z#z&43Bocb7dlV<~hb4;xhex-=#L(V%wOP75aw;_ zKNW$0Qrthw>nKqF(U%}X1^%%7=Fgv&$>KnN3cR^0{-A zelax{|0p6s9){VdE!C(uQraB79-hnn`KC*b@}>#}1^%zPcEpVG3cfiE0=hMm7q)(v z|EMuR?jZ9_Jar!z)@WtR>v>nu6#Q&8=IXCtRP7ZN1K)9!^k$F-8F))6!NDQG-lhco zGpSV2v-6A1sp*`&5ZFX!xFq^#NgzKmWxh=QIF~-VTP2^iZD?QP;Cx8B=>72&4OJ`F zZ{Dh_8=r<_nV#q+*I!7Dh$xjl&Kqslc&pP{ZLHzVf_1Gbqm*i9BLsfkd7KcI{SOWFtU34<4VQ~zNX<9=b;9)r z>rw&Vn{kW25ZM$zGhWYwuQ)%hB?a#qt5I@Zr#|v>(BD`@S*0Ud`NYr%not@PG+fYY zK<;gPjKzP;s8Jin8c!c9DG6@VP!ak*I(#!eVanrp)*sC|5Iet-ll-u;+S$(gee3IH z3K@S(I*4_8U$tn`U06>h?bl0bLt&Qft#z~iM~rhWK zbWJWjb#xEPi6|vW%OB<{I&J3c*Sr)c>U?>yYp}rgE;RxRH7H@*WWD3Ud2Cu!;9TdL z$}&AE2NU-ih*H_ZOiX!|)Tyk{ynYUgo%wGN9Aok3tunyWSgsz%WJx=2?_O#Ox7c_T zOn1cKcRW0PqC4(KF>QY`VQm(U4O<%Py7Bn11d+!14vEL2z!r*}zfIO-M&|n~@Nol* z5h_urcOBF6*f0Ex-*1O5-zsOI0kDD_)$tE*lR-dk-+2WB#c`%`dDf;O2?7UF3}ZFj zsL0#hl0Qc%4Xuj|?A(j{Z-|iXfVi|M)6HS2!nZ`BzcCunWJ^qW8lpO(B|%BoYJm(3 zIy%;+WttStF{Qur^yYqw#b*rM8`1@%t0K=RX7v;ONC+FByLMf#c2QN+-2vWf*z0Gz zdug$cY>S_q*~^$@W$ioQ$N&nQ@Az1YC!!Z;A-yzgWEm}p<5-9L7WEYq#8VB0uL?2+ z?svdMe=XlJxETi#mNHT*mq8$jEMkr1UfXovvGB5ZN-Gn@vIuaT!$*EsQY~vX`E=Q} zRLLN28QF2lX!9|oIX<2AX9_h`dU%g?d|gY__pg~;zmVvCXcH+_@X@9=zG7NMQXt{9 zLHFY(l{L${7^$a_AZFxvjTTi1V>fJ$1aJ-*KWwFaT5(%$Vk`b?KqbQpL0#odJAP$r47Xu4b>?|*A2qP8d)aim1dBhA}C?GrwiD?3{D6kw* zP!`r_bsb>cRoRq<6F|t?KjOZ7M1a9Xg%xe3KfYwf(oPTk6-F@%JBsIg9(Bww@i@w| zpR2#`N+aN?DsX+V5{;n9L$==?qJnXsp+06Sjx>e065Jy-3iSB>h8O(;e^ejNB~sg? zFGy8R$Wvo+FIF!B*XerBMpGn7{AwP`38mp7>o&-4+IRP6I?`U-q+1U)>J~6`)0TT7 zDI_9cg6()$Ov$8YKx8hHLi`F;(`WmKz;(0%Fi@cjLt%pN0wKlKb4YG$0&fE0Qgd!C ztN3Cg=`~$Wbv0!@N42boM<1>)S$})e-_8g1Z199~M7Amyl3UGl;Hb6NVJ4J!k55#_ zRD!u3b}xTY>pvbj&S0P_>B|{+mevp0JPP49I(2YS2}Wf*HmUlFl)+;wuc8)}YE2pm z>KI_hu3iiZ*NjGKG9G6PkfepIM}s8)TF01D9I(DUfSoU!v)fX(AgYZ<1qK7j>=A-jx@v=0LWNy2M9B&4@^*ntYw62`Fi$5F^BX5jta^|zGy=@X;_u3zxlOq_@%?W znEU3*nN;h^7NEF2tafQ_+1|ybjK?n8F&I=4M~<8sH>Z0otFmEQH>YgE-^}-BU(WN_ z^1FnGM677*NK4s?I^(V(4IivkMmo?f<88A;Ob(V(26q9VT{I{~?h|zYKIFn%X(uY& zS23d&QWUAp0Ii%6*Y47CLqp5!o!(Z|sHNP`pt-2Ysw4iPM7pQj+6ZYxsL^GvB^Ea! z`pOB`>RBr$%zdnqjs)F`qa?5)NVKV8Sj76z`Nl)4fLQUtHoFH`ATn#C@Vb7djA<%{ zqg5b8zSyUWN6{^Oe_=J>Owfswv@aJuPW3O&aJHoh9f>2*FM294!sQIvZ9CHl)1X*wVpKO}r#9TlpLHq7rYK7ffmz94N1-r%L&**(Uh0lIzp^CXG_t|?smhX& zsF`*^=El&t@2~+lI^7?m-gTe~4#1y7Z$QEoVavJ{XdIG4W4I=K^Xu)F_mF4SMQAC) z;h@UH#7_P21!|c!-L;o{eEA`$P;(xcv0c=$`Le*aH|3nO>kNISW^cjs_9so~xrGiL zxoC>9D+!f+EJOzevp0>@d)#W~gAnuYAccP1UqLqqM+*emA!D)CXSD{tuRtf3%ds_q zr{k%c6M{NVed}N=HeKv?6GsidotXRz1NdAohVJvC!+_U>yz`*|ASjxC?`iL60XNJOrIG0|nt`%j(_@H`hT5Arhb!xNJMtM|~nJP`|`JYhuokt*nSBsvX=jHu40t{jn zI>5eQgYjeIhUCYEi;JmzFWCsAKU)U7Wvu{*KzP3(AZ&OUm4dIbFm1Bdvc{raZ4_YE==>Qv1iAzjPIh8m2Ys?x;;NZyRT0&c>lchT3p zc_kY2u)|2!VHu0dB%v!|GZ8@?b&;c&nn)F#3pWP|YNT-y5l7pUip-)3+EB4WAV3n9 z2sy%+KjIniMMi-6jO*$rsflK?&PZ`Q1zW;Fz9dM;rTG;(COL}Jd1~LgaU`5etnEUl zxG_f+a)ys%nk)4Il~eVI>1dJR7jHX*c*-E46ZNYwkjBVg+^7RY1cwxE*S+=%Xl$NZ z)OlS#I=9ZlyPH8t~P7-*f)NAoVW)-&C_ z;|B5$8YRb{Em%8DZeb&ayiC@vgZVKK8rnyvWc!`YlQU^rfS{dQO=R)(ki2;-fRh8R z59Wh%x48jyc7KnVD(Ksj!mA_Ok}cAhVNlt^OkPc7MzvTU3qJWJL8-~*hq7gBMKMQ% zVU(m`bvn0LLKnqcvhr~fY!BX4pKTT~dtYK+vjS{x>9OBvTb=1i1f~FM>s}t&G8qiq zQa%pi*Wz|aLc0rC@brw|rEvXY{Zl4&Mpf_iBR)xvugymMgFCEH{D`K<^>2!qG#ADr zL}}3Oa+3$`N~+zk_=qeuE(t4J0uP7pyH{W{Rv7*h$lo?pM0`#-C%;|F{PSe#^mK;{ z--Ac^5VXVjxRVya-ox=gPmreYnZemQhMV6Z#YW4o6v-r^LFke+W;QKx3K2*(Q{h;b zSmt3~3$TD6QW*x0V&=)v`STPnesespD-v z!ln~2pYx{<1F69#lXFGOV?1;d-~S@n4FylK?+O$2ytl9+5&^}RjRXlHE2m#cI>RUBh8H{YEX zDwZrb_KtRswN(~F2}#a!ge(B1c0ovMUXnz;ko?U60FVIyM2rAH77C!6K_vS_uoqh)DN>@I3BpC3zv%RdB>ymUhw4lERK^?;N8FqZ;pO_PM(P%e}nVU4xn7Ps`{Rn zsuHqZ{jR+tpKS66RNUNt-?*BdqMRq~~TkJ2ssTQkyTD(OjLZ%_*yjy zVdwoZCg*6FbN?4r+_5O)sQyIk`uK&_!LYdB7GQ+LNC?D-r%6SOop>8ORsFJ0Zh3stC{$ z+=)X4%eQ(jLx>ZhCP*v=n*lmEST_z602Am}5GM;P-jT3G4T>Vj@qhtF5io-y}6vu3jf+LnF`nk0q~s$q<3TX3x-cnL($%C3IKK=G<6 z&MFy)&#JJ#c@tk<{n0y?W4HGyRBcMI8002wM487dBm z1Xq3c7eN2smJBLoQI3OY>6-PlS;42BH-$v^hNQC z)|1fF`QU_Xs6e~|0`22#O|O9Ce2*>4x1AfeEdTeK95~=CU{rFJp%9h94994;O0WjV zlktlWbLYcIbng-TQvC<_V8f?{=RXxpSwiF06^zEVCS$GWr~7OW9ps7 ze7-m!UK;(VKajTbW58c{X^Z72(c>)cr(fP@!{nuwlCpbWUV(PlSAeeMLkLl-;xY+{ zTxxCm`76fHVE?SeW`+YU_v<5sfF(4)c9fiEJS4&c!8LUI6q%&w)KH*94i$ii5Tp)K ztOMOM=u8RAcXSmGyxo79l_)sUO@TByisr%8Pd*X)(zhR%$>s@4eb#3v`=5mEVGDR` ziI7`!h%5NcnO>m9M3RX$(x5)0LBMJLyd&`Ozm}&_zl6m>29FpIGkJjF*ny-NamWoI zr{KSoGN{B0)ePT+&S3KYDUINUj?Z&i1tG3Ssr!l=6l63OwJRfue+ zM5XN{ys;e1b&}#Hy+iN|r$~y$=O&HQrV^ZQh5hE+zD7?&fV*ThGNC3r zXNwbSpo~Df%CHH#jIl||a<4rGj8-&i2RLn19fhd^|1-gxK1S^vlFsYmUjR@`0|XQR z000O8QA2`G(J+ecSt|ela4P@+761SMP-$ayb#i5MFKlmTZ(n9;bayUrZf7-G1yCHp z5?$OaxH}{S0t6542f^Llg1a1cxH|+0mIM;q-95Ow9YKP-JOBQ#`g66rbu%@)Q`6nA zU%%Zb6(w0LbTV`R0I=jhQfjd4GwcXPMTVW@#K-qw7i6=~vQoh7e}CWG3sYb{XwD#A zHvqs{`0oKX&t)VE>qK#vQ#@>E2=J^zw?zu9%;166XHY(MnEDwXiAu6dD$G&%ngA zQ`cWB*^`cguzer9NPx@8$o!|^%xDTUU3up@Nuz3l!?Pesfygt<(#W)Cm-t@g3u`^d z%ViHcX-=2wQ!xR!_@}C6s{r_YKsq@(O;U9~xgkE02YliJ6Z4;rLWKlxqS*GY*|=P@ z&>F2uBR16dX=$-%CxE>{ni(A{js)~`>wdB-vZ$bMQ3ueWXt0m&3LUd0jEjwno2y@~ zl@!h>dZFwSL9xL=+@L7*zz4B^B*KQkmL&5y)~(*VZadxHX%P^7{H0Pa;OLzCd!xR} z@oDA6D~70{T+M4g5_22xGlb4z%}IIFcIy1AlSg;}Vw3)FEA4DmQ-1Seb-yVjw9g>YyT7HG@^T8P?BV zrDCl{oy%pAaImmEf`)x4Qnr(yo(>Du)YJ;}+-Uv!Y2IM|%i7$m`L97%GOBJcHQD!c zs?EaOGL^nbnfw|$x5I%Gb9JrZlp?=Y{DqHRnn#EU_Y8-uddw@2-(g_vUF%ztu5Ie1 z%UhC?yg8l$vL#k)#w>PM%~^lAS+Sg7rV$caRW>Wxut==6J&B8qbS_ElGlkzU1+;5i z(PhKJKa_H_W%YhywfD4ccZ36QpxnoZ4AiBGq0Ev!bRS91DBZq~CZ0tGzSHC~WsV|1 z14g^7k{PlmSq(oGeAW4!&om4#_yI#nvSc)JP*zUEnE9tiP1lY4>C&N?jg8GQA2De8 zEm;^Sj`zY#=AxLa$FAomZ@QLzrj&P9Qd>LID+YVpU&Q1D0gd5XI0!515a5djApQ|S z7!nkIy6}rt04GarY{%f?)q4^~9Z1vML)=`d!vMV|=O23cajP~ob3Af?3K`J9(3&QR zN=ZpI9lGx!BzwJCL_kCg+0J2zK5y&g7N6z{w`6-(Y1asPCZ%3X<7?mZPJac(?y=K6 z4XsaH=9iHpO~sxKL`Ftxmn{t|RIDof{FIw?hY49I{euN2>bftutACV`G(JGX(?|36 zk(5w)3Ql`(IA{4#Ti^;N=pw?$-~RFk7suREE$t7U04XN>paMl3XTVt4!$DSd)s2#( z&i0JSqE*pbsurKionhOk=b#{sKyA{c8DO)dR#dX9GbJTCdUV9a-6b$HQkXWyefRhE zAvWvuhphJy|KD8bflBgvt>|J9CLvql$lzprGb`s$d_h;G9n>F@#Z+SSA!?)@BCoto z{*V4ZA#7L#28O(wvXFKyD*|{Rn`h!%YN|%Xl+173san9uxE)-N-ZcY2kpNw8p+SHc z`2rm)2E0THaBhDzOLzyuxpIB;j)_-94h0BiNMs$v9lUdwlImMgbQ$j-7%*P2$$yc> z!~pu(rYlehg5(mH?6lG-Owh#E?G<8IIypJ9fsR=ldK}z6BcRlKzy|v|cgnv_PEXpJ zIS6eOy*UTap`Y<$lA45r$S2!>8nj5}L$IHOh0_XG<-c`|F7-G6Zc9b@vEWs@N$_bB z$>57gdzH+NKG&KlWxVlye(=KiSk(x36G$lYm5_|++I7Z=GK+L7baK*CoUWjdtP3l4RZXg z8w7rKj+;~(6A_Y*H3H&vETB&Z8_*^RD=4_jSg?CZ-db?vc+WH^5d+d`l}8Hc1a7D} zA09WWEY-w+bK(lq;;-0_9lk()Us;h<#6$6{5VoWMVsBzw zE*o0gFtT~p&kH;5&Zy6f!7SE{LBYtwo_AWgb_rnzTEkLIH>(q~igOFtHVHc3b2usGPJHfn7wN1{Z=)I2w#qd788j+C-b7z8hJD)$FE-wc4Rri;Lj&_~lPAmd=N#R|i896rEOZ z$+P4>QW22&GB7ggIf2;(IGGF*|E-|jF~b?-@3}DT&(F%~-eZZIL|JWae5Ai&Bv~0@ z`1aon*1Dr6CI+Djy;rcRFU@J_c=pU>7>4Uxv_pKreOq}wetUiS3GI7!P{ZuHl1qeU z0S+=f7V5i?L+UB`X1N@Oj;x?*8M=EcXz3A3DcaBKi^pzlxGTG;2!*}p3^Qq?C=p_( zqmHew!v-SzpZlZR@+$4Sf<_aLh(m+vwG>~JlI9BteS{)q@>PX%8h=mExm1-S2~e<= zK|Aa0oH^`hd-OxH%$3{xC+?9i+izyPHArHPS=?mAP^}O{&)Apa@u;YvV_iB<9OsH= zN194^ybQuA-I~7fMEyNs7<1U;C;c?3Tr~abg#%Vl76%X*cMa!{x1Dnx2|PUf)lzeF zzGjV|fQU#(Y9oj|IX9>}eet`X{^bvFF??&KqdiBScthaS!mr?UGRp)Eg|4fY7#|!P zMvaO7ylu8AY!G#`9RvsPuoKZ>PTOdWsUFkY$y^nVgX*mif-0wEIwWJUogx#~kbzR| zN-aZHHjfrUUp;&(JlU=jtn=zTJ}-YsNlD@4va;S?8<}ZAGU>q0bC+dA+GP+HLS5`s zNx|LXsoo|jrZ>Pq0@x!!%E<5Yip2BbFdbcg^uf%10q8J3!w{u9xXZ{=3LkYe4YiP$ z;g5ooGY4ACHw@M1yvehoFLLL0x93#TYP`bc?QolHQ^>dwOGHe%%&;yCfB%@^MIy7k zHMM^B|Dqh}3YOVpWe(dWx%@_S-kCC z{yTUOmB=aqMugPnoA?E+wRre6T#RM$DPNu4P)pRX%BS@c^EyEd_J?(HgF-EgMc3cV zwBh05Dg8r6Oo?`!J)$iV*IB#(tgSuG$G-6p!Z-`!VRpa$jAz-LH;FmfSdExklq2?} zF^30JctnKPOp0w0jevoo{DXD{VM?#`n`{}eR403b#uHm+T;7k&{^Vj7J@7#1aBv$H zB*gsJRqDQnNAZjJoBbvx)(amL>svc`^GE5z;WEb0^rsa=`OI_1jNLB&k-RM8&Z!?b zCSBgl723|1=!fKL1o9*v;Ll)}Psuo{lj;%;UF;rw^mhb#&%*!0q9)Dspzlm%Fr|h# z!L57?9^DfH(&9C0?Z5GCs49D$F1=4r@>4M3Kl*+HLWH2x|B+Yd@OuWE=6%9{d(bRT zKSE6MsE`_3O6Jf|3RCR5k~7F!|lN&?C&6dV+Mw=dUqV{ zWb{fV#zOxf24h7eHTFxu%;A46$@Mb<&QA<^etmtRHY?x8Z>WTqpu-Fo!GWo2ayv9b zT;?}A;^I*mxewPU1+i0bb>p+YurJ4CtCS9>6Vz4~Kt+qXuvEAU4!V)UjktRRw~%XQ zX!DS;=81 z8(f4NynNr|#`AL_nnE(rb)*b=b10mW$zH9^P|ZrohZ$-(3OS|N`|nKfO8y`@xujVZ zG8CF`5ZMfdf-iM=m2+R<6%f9wmH$j5=Phf;qoj1GvqX-p;iiTd(JU$E#~J*j+d=?p z(0a_Rh9ASW@9N2a=I6(0{3Ca9JJjU>07Tgb1c)Q@PL->A&$rK0Q&Shd)zy4(5VVU+ zpeE8L^uNoAlmXt-;w5OsG0w)p32Q1*sS9SZN2PSstFq1A3Vu!|p`tormgEP%Crg?$4`WLA%0a*yVMIsTBqxcwh7RCwA*3-1uz-V7DVGZTov z9h2^1&So5}LSkg@dooO9c???Qg|r*d3wOVbL`6A{ZtLX$#7HwZLW8i%Umhg@O3e-w zfBgliVH$dd85)3iJtmO3cNoG4i2agVk|bSZQqd%FKw)w)>*7=RekxI)#LQ!=>LwUQ zpODhwfk#Gm0H^wl3)BZ`ER^IJ&-rKPn#Z;)G0CE7YY}Z{Cc2XaVLtl_Pb)@`YU4s| z$byy#ErKIK`EkPt`7uLioT|JvX&ha}^CCtK_5gkNLN2f`CnxvM)YLRE`R^TynY$?D z5^z_jVjty$Ljqa^inr4b$r(^BE)%idgrduA3pzoCrnonqG<|E~ArH)qWrmK&P+P2R z+Og?hk{}|p?kb1w;j{os{|N~2oxIS@4tzGN3{Qh%@N;gaWh(baj`vt(NC|i4#KJ0J+(59Rpn+U3CnlE1x>R=A_R};P!gE!h_BnUCoY8O0Wx! z%|m-@8PGaydgyOM{z`Va0PGp*^``zug)zN!FI|xi3pVr#xXxdL9GRJ(EG3_o%RS|I z%=@+8%>6K_lgy7>#Nn`pq`@_jyGpa-&s~DP;@H(C`HD3Sktj0!z26R9T>ExbgbT3> zq6yhB0$k3|&ld!R_R%y(yYy18v}58;W%UfZ)Y~HM|7;O>0XZ8+#=M)`y&7ilH+g7}qrxX$VMVR7BAf|-GV zpbS=wd&~WLY61?}xLOL5`+GHWrkv%>;!VNr=08wezq9RRKO@sZgytMZ6rX1YL=N;kk7L-a4=WuG|{1Y_Lc;T_Kzz= zCe+iVXj&dIDkm9fDZR_}I}EVQ%((6NrVNnzbln?4xL7Go=i?1+J9C`t z0}RZ43Y*lyy#ZOds+>;9*zpxoV0dO>m_$S;jKJ*g8(N?p*w5gz_?1oHURiS=j}2p5 zy{(>~?8^*}0Zx?)l;C*e_wHXC@vPj>VAy2DwBfx(6AjYN9mOdPx%DRcLVo^bgLXdM z^P%qUDaKh}Y;0^LFgA9)lKl(z#Ak5TGzEdxVSc-`INdkc*?t7~f;^X23$EG*7kd^pX` z&4V4Dl>4L&A*D^t&8EZKQPFjI0m}$EMowOo4>#unXB!^fjwA9TRbH>+S@(s?t@z{P z!+-132-EI-5}sxIk+3L(A&`LjPOgt1T|QmMjy+{H4AXc{rRdGx>^rZn`m9pA6q7R(ON*txaoU2t&GA1l@ei_@=e*L?Zf zgxKfG-f%lpy6AW~nfIeR*2kcxGli;clpLq@t8_$1!Ksm|6^15yD zPU)9syiU&L4DZKyg=}<-M_;jbJn4yh180|){cX%tJa(7H2ZcCe?bN-&;VjdxmluvvS3B=7Je~gygchs`<5Cd?zc$(; z$s|xr(QLqd5A5vFX>*4A`8BNm(98EAYJgz6o_^y;^Q}Ja%iz@3-9eVqifrfkSrv^C z5KGC09&GYTr_<=T#^E0MZ==U3H`nu8+E=bKN4*_A1Q~gAg1xeDFNvPa-w7u9iP&sM zLWvNTLvU6XHabRN{T#a@|KLRSNi!GQuJb+BWsQxU$eE(v2Zv)>yRpHqf}qyV!`ZsH&1zlCV@tX@Z~3E3uA>U)(QuYW`?( zg0?k4$8#KO_)mdEv>`XBA4PX*!7=A*ZV~zK^^Pq-*K>WyXK%#*UY&~Q=gj`$n9~4$ zQhNIOcB}9Gy+rLE5=IX(0g>6|BlX7Uk{i)&fwjdZY@-+N^C~B2MoPt*HGG3;P`!8d zna?Y|wwC=3DJd!Oh+0s`$H$}LL^$t-w|9x_N?RTtmYJRxr|8c&2J-aod`CAalp4;Bk%nW^2_cvl>MD5#dADtg6Z@z z{_=C9?%C?h*=e~D?ccHhVf0TeP>DN5<`xxjkiJm)UY7W$V4XP#WQ#O5-R#5Qz4ue0>X6w(?K%0~2 z=(^}=bo=MC6s7B2*?6kPNf{V8omVZjW@Xtpgoz^{oNsRpH|1N8=SmLWxw1Ipv{XL-1(4uDiM$T_HKE#uUV5k=I47 zpbPtg-=V^u7F);7xNm4^cyPU$KwhYEJTsmxU6Ea2>bR`2&ZhC`GJNgw#d=&fu|s~DZ!A-L9rINS2t=9u5x-*@yU~EwpiK3F zoxQQ;8|(K#(f-q`*fOo+(<5E4A8LiQf`MYM9gPZ1-)+-YKaZrptH8pffDCyl)R7!5 zOH7O2-_fHJrbkw}Ts}6yOL{2Bfd_Y;J>~r8#QiSu-9a`8{O}$*;N~jCb`xDQX-S^r2J}qmv zqHZYqrmAx-$+LA_8Jx%C%kIR)#F!Xl(dvb1T36m&b1!{EGxfg}0>p!Qj3+g$jU?^h zTVo|BdPj37Mn_LlPv1p*KSaytpiVOs8U2e)sDkLzSLzy?10ry}DYq zaAu=!=%772i%);`cV%}cpm6#&XW1t8?9V#1#%IlhLr0OFl|>D=-DzEVH~+Y^r4Yau1c{KNt{}3%FBBV#dRbv%w_eIujf0vyS<%WmCNhTdQn#bd~T`+ z_OC9%{r!w%zo845$txmjj@9p-C%eRA$pk2vm2w^NWuew9US=kLfqt(H!CjGpLTf!6 z_&6kdGOyJTlfv+gt*!D&nds^Ic>hPH1K>VxYymo4` z5iX*)uP@(n^U~iHX68OzNTXmYIB?ni!`#FI%Gzi!jXUpk2Qti#1P$g`R6aHzNX#81 z!1+^=+i_W{y2a`?G%-XX#;4&#cK>t|XIicE4>ldXuFo6!x%rClu}_SK&TbWCZdF)S zw&@)goGp`MB4=}Op*UtJKJv^}Gcz9 ztELp>;OIKpMZvBbwR_L-tr?$vVc2mZg;`nO`#dB#oQ5AHVD56&^lOK4q^6%P=WFT} zkcj!chztL<_Sje_wqRmBaN4%1cs%md>)B!hXMg`+*gG!;`x&r*a?P4qXV)TUzVqvm z?@`OEtxWjlEi5zW9xc{dqGv|%agks)S@l|5R6uuk^^=VX7q({ixiJVu`I|n3hB3(T zN;a}`eNkmo_`OnuUW`$ht>X{UnnrHvH8Z*~| z%|hL-$Ap9C%N7yF<<{7jCqEM-D$>7!r z_Wb3@L+86a&VK+exL^}nyF0$JI`_qKp|P$2rR3+o13|ZeSHA&bB7NF9TOK2wGt9cr zMES<+B3e17Fpl2jHcaWgSsfwR=U2m4kRuS&D;r#Ue6PA_0e{8o3_ zsYWjs&~!+G!lKd9F;4&8deI&jX7mMaSn&$iHfbbS4r2z6FKx(|hRxp`JwzK=M?lL> zNO&7Rh;CM4;KFG&3nIZpwy?0+kOzO#U?KEt^ZjYu+2LFaP5JQoqo?1wB?_;br`dMo zUr%EG%fFQoxZLijCmHU(hJ{|9GCF%^Pg{9*_A-P_bZxI2yi%PP%>4ZPZxzzh-qWe5 z=tP$8lNOcD{($Yq+2wULS=LGIv7ke^9aln(tkhsF-ju9%yUKvxo+n*T^}6!1eFz0P zmER=|`IyXuZJFI^K_2hNl>mPLKtKQQw*VgUA@|va2KLCNZ`s)gI-zm>T*?!@|8<(Q zgPbm)=tUfj_*~tug?$qLN9xg#}$s$ffuCk@DKUvQOn2ct;8@x zu_p66R;078h&)qFjOSVZD8Al$1gbqcMa0jN*Yz6Iv%h;+-HeL~#8U`crCkw! zFe*v!+Trz&GjysL;w}Uyz;ru$AmH%mrhMwH>0!hQZhE4|DIC$fih)6}V+Eye{A&bt zV8ecu?dQEKFoV;oy?D|2)}Ox}zSeWTryU5Lf1RA#Lq-)It@B2PhpSyKwd_~h>Y;u+ z1rv5Oj_YV#gq@xoMY8oMkltI^(dJXCRnC3S{t6!T)URJ@d5$sF8cyr%`U{%Dc`IVhT87sWlr!&4 z>3Yt$u2XU&6WzG9tHE{EZr5e+ek5`)gLohcfYI2G_^cBB8dg4APE_+Uxu93_M~azU zAMd8#wJ|J5$2AorqaauoJ4Qb;DX+LLhTPNM=PW*2 zSZ~r5AbOS@lHV)t5p#Q5taaY*t?ugVj#D?QCrbCM-_lN@4ea$i`ULoUi`iw&GCtR6QuKJ1aRP zFWM;L5jh$6-iNcK>EZLF5HD6DZMGUR>_)vR$B4LAx8?1)7hbc?#7FivhZY3IIhGlZ zuXn}wrn603V;;r{m_O(i1Xi6=C|PZhlC!81?WUrSGmu152 zn*HHnowJXbtT>HweNypu#;Ax=sq8{lP}>!pk4(q(wBmh?(2&`y6y?eArLxDID1M$t53H=Je#6R#3o_ z$0jS3-`^mPqLv6+))g7}_)Q%p`5*X0b0kyMUY_FUEQnLRni8&8Q)x4}2h(r$;;}(s zu6Kt8Z#b)S$Ne6~oSFm{`uSh){vt8%%g#A1WM$z{_UCpcmkL26IZck;QfSd*Zw=yk znf>#XK0RHVVY6Hf|9zS{tUesmd}OnNKA5~xot>KcrmSmVFdGe2?TSACqx-O~@g~s1 zSedo?eFkiDJmdbg3@Hk`L1W%k?_svLKtCaWT4qA*lbUp{uS3yYdrPZH;!v9)Ue%+* zK;o5DC|@VPZPLpD{np0rhS@V!W`yXLO+*0-ByUXP=p3PKNiH9BUDG7EX zToEU59xxG&@$*7@l;jZDJ=#k%0J@S!hTU4Mv1>&ey5&;47BY$kU z_N^Tb#{B|17&U!ytYx2E#%;0|xGvZz1>#(tsP0xRd)??c6n>4Wde2j8)Cx7I7X|;4 zZ`}hO_+!NzbbR5og9F$_`HB364y``KuKwP&fmM$-!-_lOLaHViW@Zan%5%q`ax_m* zH~dr8y}p+C59opIPVyt6E+qHAK1qKoO+kOn7LEE0j-OXQH6(U$MZ%p-^;Ne1N8ebW zR{h%#tit|uDiyBj3pJ?8T6qPWCk938-%RHg$u}w(o1p7D%7+pD%PgSR@9we5eQkob({QP?I(>NhHSq`J(h)2~M-s*yp86OLj z4y=h&w-h{o(4E%zxE5FuW)$CPE(cXca3ND#DjMpzKTEz`Dwvz~ zF+=c@f4LECEDicaKsB?Dfv*4x{78?(7xTUhs{bXiYTf?inU`xieLt4pz90K!@a@}~ zjr!vV)@frOZ;Cr6p?D(t_QRiw!oXGgoP37w+$s8v?030I4E+-SaziK2=js*Y?-8Xb z66AZaHXLdLHeE15?U7KEuwtLp1|;#_{K zIp_TsOISOP>rt2tC-M$ot>^i#i4<`*+cWbmQNyFielEJj2kyAZ z_Z^M`9)H03cEn%J<18)t-hd0W12Kl(z2~CU6GHNv=N?hM)zY<27)Yu%L(T5@DrRnS zGOo>SdC^Bah}>2hkP-CX&XB4Y{NUqckLA5Qh^wKiY=66;%dT$C!7}{5a(8LRJMdI@ zw9_0{=K6ZO{ad~fhwV=Scf-1UmHN8fz3dEFMw?=8BW(g3OL`jvTRxXA&hC_1F9F;x zDOe~dvI7jy6j1m7Y4jB_yv4xkNLD;dr3XC-!g-(l-uk=usbIGR_Qn9^&nwCV93k=g zmZ}*5YjV;`QWX*=!T$kJO9KQH0000808vANPRbTrX+8!308%Od01N;C0CQz@bZKs9 zb1ryoY_(cna}qHSfA>>#c(1fo+rns_gNmY57@&6aEnF6e&1G+rJt*JaBnP#&pcUAc zc8<^9Erw>TcF6zUSw zA_GH*4v73C?!dopT)n*gu2NW2N8yyK88*}S^3MIR_69yWlEIS ztJV2@{&N26CE7{#xK^uG3XwIj?UhkZ6|#& z#d#m3RtB0=VJ6@nX&51D5T!*HciImW;x4pKd@ohH%4Jm25Jf8TiuYl$;BkBYpBStg9!y22B!CdRvDK$!Q?sQ|J2 zH+l(`1EAtD=L(BBecez-*u`@UZo4mFP2!X=y~3na#IC@QE+LX4C9vMbxdj*I(7m&y zB+vEY+JO!6+`r!kVg?^Ij)cBk4(0*TIf`pg*igrjaokvu4>F-Ohn^s}DRS2Xn}Q)R zfzwk4J?qPCP5hM!(ceBi-^v}1u4!s?99*yjqL#&M2wARKKq=Puz(bCP&p6`9uO))C zjf5QhA44Vm-!LLi{SbC&!J#e!JZz^klC#0W`5P@XEDi7yzasf`rouvKecjPd*EKyc zVaWssfeM55S|Ftr+z| z(Je?T109%w{vNoaovHDd-y2`Yck`yl$3^B6fCTPvD3wyt$6-mf>*0kJBUQYiC%@&qLSU{f(M{2wXv3EC$rdPrgLN~&E$)GYeI<6KMGpdjCF911@ zc-IFlNX=k~vHTf!5K5E@x)LKBT6hxO!dRM3q0>Th4IzD}WFL{%kLWV<$ZJ}xQz0E@nLhpx?oF=g9cveGLc zt5S~j_>4;^oPU&w?bjC2dSXRBb#2p8j-#c9q+6G8r?sQA<1Nn^uG|e;8Aj=$6-xV{ z_$uNVMXv-+8^S^80dadH#g9U(CWDN=$f zl>6N+04k!rnW5?_XmQP8d{3aT*$T1@Y@zM0( zM6RY~Pw!zOq*gW{M&qn60hqA&LJorMGPH=cayS zs#;Kk%CiJhtS6I6dL~UAw!{jJ`xmfHmsnjcv6xH^Qm7YI`F1s~@1XwZi&=-ASRcR2OuA(WcCaXjzdi<8)&9SJ}Ilmo%%RT_14UMW8P_s{cQz4xv z8sqRfB)+Kv!ngf`*9;axINK74-&I%;Eke|&9Rv%VR!jN*Cf#1qu+VCt1XEX`en~sc za2}U3CQM<$tAmDit6NBUR_zMkvnPp`#d`OE{qn2cJ+k0T#RbZ6oa2m2 zkQ}*c+FOv!^l$6wwdet2D@4<127SyyNVY1drpP%;o0SeNI5$DbaoJvBjk9T z9sK3q*&q)@e~g_&sc`wD4vP2OJC}#Pn)c_r{>4>JVjtx=k*dG21 zM5PI3;JZQs8P1!GTang@QLVV12QrN0m|G~K)f%};j4Mll5ge|if_ze~L?SH56^6f9 zn+fL)I1{{4XbG9ZE4lSC8FtbFf~S4|Yl&g;Ovh4t;!;G38n-+g+8YXP<&wMydAg{S z8Kcl|YP5o(9GiiR*GviBrk{CEuu@pWZ?Isn)PXr;Bne`j0`*gRaXLS9zH*$p*}e4r zdMj~mIKi!ly$Q|fpW>~ZbyOVL7VaA-5Zr=8aCc82cyI_#aA_ns4FqW10t5}g0|a*` zI0OmqZowhAdyv;mE;C_f?tOo}S1i``C`bQ5$6hWoM~sdZ z6aQ)ArdlpL)}Crk`vQItMwo;lFk;qDK0}1Db?qfc5alF~^btrn_E|?l01o!n?Xz3u zqxyKg$;xu;;YZp}Tb3+C!D}ZR<$0^MC>IA$*%i18q1h?=j!W^lWSCPKW&4{^p}Rzt zsK^t9y8Jcv<$6$rrgN8ho~V~DF%*nn%8SJ=apGN#E;2&aFpBI<|J=URDjn&k`+19A zy3zcQS%NQu-2wytszI-QhA?2h5^6wyVa)KxqU)%YI9YDfhYEAh->XSF1-hT9myYZ` zOU3nSQPq936FaHGuWYk3DPv&nT$B4$pq{i^1Rp-UQA@n5j*NJ4 ztAp?)smHKH;pA(w4{U-Db_T)ARcHL~HmwUQXqJzeHN^)@BUeB?a=cG$7m6Bg# zk?q>>h3$MQD#JERvTQ{uujiWKgx}!yYvkmEh1qqTIS;#9qvCfa6=#n2sf4ALed3l4 zXUtPGN6u@qrnhLo9|onTEi^)~LRSGlo@Sfi^c&g8p6;nWDsRxhO@ z7M#FBj}T9-7X=k&Ap_N?l}YnZL{W=BO4SOUgcpb@&%!BR;f@prW5hwdtbtc3^`Ht* zt)I~>P)JZ~BFxU}G|_)t2@I2Y>!u(vgsD8!Ag$5xrD5hRf|+TFFI;xC4H>vc)a}rJ z1?A$|c2>_0IsGY_#X(Arx!9*`g;CD5{%aZw0;M0fSX`kw$hScW5~JU4#pEb9hdtA> zFdQ$0l(5i}jy#id!zvu=O|=bjNkx&$@~ZZ<>&fN>>u{48uHEor&5aLEk7BCcjeqR| z3#?;jW)C!WS#M05QeWr2o^hDxmFP;AH;h5Mcdd~G(sdHT{?2!)+xnpv;E zTR6-o@+;go|LJbT9@uf@K&+QPVHk{xFLXY75F$BA;kpg&!yNi{Y&2FqS-dgY`}wqW z|J-qC<#q3PcEnBVd;o(;6j61`fRdJWJ?}{jO+@+mXNKf!^&vMjzT(m7k0^Q_zTVA= z_6&0=AIm*uy1|K-3J2mzy0zyW{)?K$_9tacA3@3!ZWmyu-1CMvnpb(1>yy_l)$2R- zS?duKc@1fKvY|iS^-Xcq%E)W9TEF$1xEWXkwz|#1ft7_65Wb-4fqcF~>LcRlAgc?b z_m~9G6FJU5%c`5_&$3QLdK!$pBkZPVc};Lh78^_$S!E^f~v24n7D$UHi*G= zq>NpNLxIIVewN4X022lQzL<>;eY7K0#Gn)lvtMA)gqNxYD^>dpziw*tTb-SEZurQ> zvh}FD+%q0eZBpq*oD-mK0b6%ziHDbUA}Wp7L2|%H=XoY9TtqbajL)< z+8SxwebW00tBZ-kZ5ca9$so6x@9x6Hf(_#nvya`voR~l~&TI7?p!!ENDVS0=bVP1f zyibTOPxDC&z1hF?x4iRg&jGHHQaEXahrap>Ah$%=#{ViGlMU1p1SdQ{zlvm&E<4#i z-d<@BYxruM8(2g=*G*ZD%;ENxu0pm*=$qK$6k0+V_LT1?ZWvvE^cwEICX=5_r<6f5 z>a1K<6HJ$a-87hagBV#<)PrxqtN;&P%n-&Y+@#*GHxS)k0NO@ajYxv}wE&@<&XN@6 zHqpDnlCM(<23+;Q9^a<4wp8C0S9(BdjnA;xDE0olm;nHQRej_kpDX{|kRh*B%p9!@ ztqsgA9e(>XdiMx&ph@nF3v5VbHx2;s=|8Rh8&R*f)Wn@hM@=DYav@ zS~8Vt>nO1!!ZKAN!afU7W*Py!@$J`%3}c?u3QO|`puz!r`IJSe z)OD$}>9FxB5r7Z{rv7)nCRxsH0h~0FRmNGZWym3i4)jPP7$pV6!$}EO(Y0yYYiUVq zheS^b5Y<$4wc%L;abh5gU|wuuCszx74(;oKl!47Qc_+h>L2YdUkpY`pl-| ztFwM1ENe6H!sd1m;A(7~f$)4TBz~Jfr|oe#+IuiQG2sSbqPPMhO1K=V9J8$9WqUw} zX-6P64Gm4!kL>qePOsRj|qK<@wgt&7ME-Mo%>oqbn7WVC?tAz!`s>cR4kqi_S zu@n}u6z#C=CKt(}6tnad6&6^5b=r#h^e39OKNTnKF^Y|&;O~s-QGohdcJ>t2)f9xAD}p!-`TV7#zYi%Su4bOj864p4K> zILJIPPLU+}4z4OGF>B5b>}W}=eGf5L{X0&`Eb|iL(?5uyVT%pit8AT?GkonNvj^u(`re!dm%z@aC$>`PDc@#v zkX3%cvm}f0EKP7)yphlE7kYuj>P@;>sGA5qA@O2EV>7dDQ?s|Px(zi*Ydf4o^s}gC z&$ZcH{@Qm#f=E0(<>Ub8V;d?ZgZjl9hojWx^sf{@4^5s|N3@om^6*{x5}613HX1JR zd(tJDOX}?&GJiz-HsP8tv;2_+RgVFi-Q`7o`D_5xna$ieSk!qgf(<6#U#!c(Uqicw zjdIsQVDvO}EXcmRW6Lq5db)uyv-c9F*gf`B$1K~>8eecm)HBqlCogb3YL4~2&p#DN zejj>ddsI1jbTj!8hjmj{gC|&TfSE!XHudqwi)eErG`E*SopoF57?}(s*qCS^4(#ab zKl*Huy%jrR9)vU89}GrRNs=s@_cwNdA`Z=#;e2WUqVN*Hy(P}mobuG(QcT9^OJPwXn|+tr%zm2d zL;VU5O{pL}?V)X1oCcE(Dig^|v(p!6vtDmF3@anw$0CJOi8kms)JVIg$6#QkYSCqj z#xX)wu??#PxuSnjIFa?*Dij$j_F;PcA#XpXN<}IbOTyR%# zaC+^u4@L8jNYXeok8Hkx=(6!^vj)_CM&grck$^=&mqEqw@Cv-+=6rCm)pop;2HT2k z_+tK?+|V;3PBQ>bSUF?EavPi2`MHJ+29@S2fo!`w47(9VCU;1=vN8!l311}!g_=Bv ztn3ZW2kl5LHp|{nP14N9QdaH|9v3k<==U?lB&Y;TenTGy{JCVy9oGHW{2`;UT4%?j zp?rD547?fYo5lBP#W^|Wi~^UM*UBmSZF=VAG5#I8CMe2#u77wz;?^DgH$~{#Oia8%Qsa=V+y9RjpE|0F%1n>qLbN0%t&&&p0$&_ zlGwYCEWmSS6@xH^_%>YB5>lLJY%209#qcOVhiSLG92oR#Te0Dk8ZU|4t@AZ>GtyKc(`nsTFu*DB1x>u%>)kjDX! zI5V}LW<6g)^vGeONNbAT+PaFK?p)!)m)Kz_+y$o4t|8*sT4hB=@;ar%7o#5XGSFtWJJc0U`Xbj^XNCUZC6{%e3R;DG zEqmsI1bef1V}fK`aaHRR+Kk+OjOnvNNsDL;rdM-JuA0#(2)6vIRdeD$&jV`cV>%hM z`yF-(jbkv2L<>P=eC%R|(ivD-8%Gxc z^q|GZ(#iSmIuiA)En)y(thUGP%lvn9)f~!pB!G7nxr^te&r|YxKc@VV3ynkR;nMr3JVb5voQcjeDaH-&EBxeNPrOLhklI=%CxL5X%7wxg8_}SK zT2WK1pxW{S?1x-ZaKG9g!A;Io{2YjGGR-0G9C(9gy(l(=gBIE?Qq!6Hn!S>bH!nrP ze@R5mIj7$~x7kW*DH?fjkhHq&Tp@}!S(wYW;LP5Rydvc!0E|LbVWG^gd>*oCmg=Q~ zub?IL3Jxt#lQ_IWG@ch~gBQj+)M*bc#5_+1Q#Jft{eaZ)19!@JdZNY#kn@qB*=REDQKbQ z!+zd3eAIXf7EeD~85I8@OO8R_Rro{NnRdQ%XdAncW0rR}v*cD?{iQ+a?ZP7|A{O$a zpO1Fuz7VZ9ClT_&Vb$BdHhlIOyWJN4LRMn&Y(Y5MKUgT#WTAyQz~@C$@yP+mKmL*m z`Td3W)1uBed#{p}pKfxUUX7tG=TRx2l)$(w%Et031Lp5QGP@`=P&n}XLriG|<)3XC z9TY%Z4f7--a_M$A%*$eH z1t^r`b;|?HtM=A|dA|-)VB&S`kh&$&ylK6fgI3t;gugh(ugoP#jdLvudeq6h7$FSM z^z*NS5_`?fL-@<wL_4WR1+M7Gg0KOmSm<>iT?iFChBF~LZ9t)JWL4HTu+QK19X@s zh|cch@}ggU#7nKGcp!e{yY(ciA?l-YiaEqjH0?7)aeU%fFr$Yt;gOQ8kNNA_H{}*e zN+e_53rP`suXEQ8XMt3ckX528OPyG{jlLXA_@a*w_bOf0n9S^WE?S9E4|}p;HVBqs zOJe_!(Z^1;FtPYnJr6e1&Ai~&{h^+_gDd<# zadoG)GIzU1K3~$4DBJf08Thu*1EY1Dp2ZhO*rz(b6v2pL$7$R&S`|R#>ri${v{NOweyuCt>a4P%;*>n0GtBCVxZqEaMC)l|}`m66`8-cCt@ zC4R*@I9!~S;^5ndf{y~I%k#1>hT5KwXvQ*q?vO%BxIB|R zaCmC$Y&s7uGZy6;UJ5H;N+~Xa-`3z(?V_H*qjl;Bvf()u$d?K!P^3&h&gAlm7_KX- zUm1|4jw*1MsSet&CKA3)6eQw^2zH5m-FQ8Nj04YPf9 z_|YRLSn?DneT0R#jvhH$ePH{LEN-OE%Z$$)TYCiJ**}Q5h~Qm2HKUe{%#2ajg38*L z7D6^j&^s6v+xN@sd)Qb$%Uo%S2s;?TDQY*9G4L~(Gru@{cm6tqk3I#4H1!GCkh!5< z4VM9sDQ0gP!WQwtm)rM3Q_zpjhVQei*@frklD`h(6nY~UB2o9ZdAi5$tKYsVw8l;{ zB2n!@OW1&Y5R<-oycAeStl{X+kaMlr!ROpU(MxM$?U9=2?;=T7mc?FYOoVkNgcCRY zpg|Ksu$ov{pdtZ%8AldsxwtgSWh=Yo>4OEwy_?y zG_H(gztp0y$miyJ_N3d=N23awU93uFytVt}1k;`N!zX0>YYZe)zbt=GmT*Kd1ZR9G%rO*HLs@F*-r`^ykdAmG^08UJcq78^}3h|is&w4%@=xnYi2*Q z-P!$OERSW*a-Q5$NMBmLUZQ=iqLRpQG6rhk4l?uhYtW~2bQFH$cIEJV1h$ZUV*~C- z37cZr)8uM6$I)$g20@=9(eEC`wFNRCFCDGL_%6oW75n#{w6{Erd_^^DnhkSXf_$}h zga;1A(RAN9w#2^!HB=eEj3@a=G_ugI6YLY$9A@dzl~4)`Q8a@iR|;Tw|H2=rs;ejV1$9crI4&5{aD-xaO_Y-mD;L zonEWd^KA8rg;AJst=aGW2 zZpVK8a)D$GucfM}$ zI1_*N=nU#TEe0so7FIG*oUxIy)xL=KprZ5 zVjqQ;emf^~r7tz9Cf>c-n#FQI*e$a$sZpphSYyt|KPFsJZUOq4Yr^tB9VV_FgPA?# zz9F8N!+&`hJ548u)%Ysv7$G?LgA#tUrGI?TC>eGp1=arTt5Ea=1%P|LA~%CC%~_A2 z-(tV$$5m}wlWma>)8JmJq6?SN=LjIl1L1ea@{i}72z{O->jy2nUVM*qRND{9#~N6n zFwIpDJt12->)s`?*jDQjS({6V9wA)~cD5$Z*j6M34&E|{#+eFyDRL>4Q6G|B zQSdMY!^3Wv421urs+9rTHx}c;VKC*3{)@qUVW=Cx}BG z8_R#wo|W(IT>#WNO+V*Q-HEj>)<kzbRT~w z{oOgd2c+bGA(>kln3^~|Na;R>`xut?e>afy0chmEgG9_hRtB~Yf&cFwqC@@jj9Hmj zI~p4NyN5bVzf!u7zkB%iwn6Y9HHm*A+1l7T+TP(F*m$4SefztQ|BLmo9eVs5%ihM+ z-o(M-|9@uH|3Y&B8Gs!BE6Ymdmy7rDe`WTt&F}vU3uI$s`QNhgaQj8NkN=DG@O)82 z|FdP>k!%gDO)UTQeBF;5_wg?lA^`KXk34rg<5t%r0KlCO06_k;ZID5lye@=gWMd67 zu?F2$v;ICPkv+p+=7J0pXgI$j*37R#>UZ(GhF5WBHVg|f#~0?VI`)3p^MZ&gLW*Ur z46Mz8CJrEGdt>15>i11;(d3uvef&%PpM&b7Kh^IBRSy&ZKu%mmm`O@r;(;sTiq?OO zp7)WH?$`cb(ujach%1hwh%$G5gAxt^!1+^}3?iNRyY!zK{LLSuXz6%vh(Gt3`}jNN z&Y#N(&!X=T%qhel#6K}!5DW<##2*uo!QY+#-`?C+h5-O~%DV0Bk7*#U@4g=@lVd=X z%^}(@wkH4P`m^~re^_)M|2k#>zye~;9pQd^=(;sTS<&1GA8T>%+Hce*#)f)Lk*0RZ|x?I45DKK?Fk>}X}>0<;0y=oy+@8mrk@t2&t2OPV;? zn%LWem@RBgAEXu2j^M;I0@XlJPjYt*_wlc^5CM+@1!R2r;fGM30|28!008X+HlN~e zY5m21V`6SC@(17E46Mxh3o&Oe)#@ZXS|QUtN*h=@m~Ed3-6}i%N2ju zcEvT$@7)}Q8WQ}aeINhQ{%1%3YmB<<=xbdM?o$6Q4qfp}^zZR6al}7*%ENov_Xq9; k5l8EOApYRa_V1+oKKV})9OTIWh`o?6I7rtNoWI-qKhSudJpcdz literal 65552 zcmb5T1FUe(vMsu7+xnKiW!tuG+qP}nwr$(CZ5#LB=f1qNbF<%hxt&b(%owTauGy7> zoFp&^3IG5A1b~DNr(`x1ed7ou06-uc007iKUmcy?t&AOM+^nsxHMbo%+Yo(kb@TV9 zpJ5BgH%&F0y%)tjyEDaWvPZnn7GZ?~kg($R0P=VqR$cFf{ZanTyCm#LIm5R@bVh1_ zy#PZaxWCz}){Tcih`YaIkSwY*5gJc0YSiEr`f~pU-4x*G{@nFFW|bJl-#5{SmB%T0 ziX4FiNw(Jwjh3Mu2N;SU7Yu>MLnqU?2}{s6LA0ZbB;(R2Mx(M$`Q*lx|l3MXzLQ z@9m9+ZKh|leyh-+8%!>y*B7Epv}ceunAJoG9^EK)7fhV!P(z}}!m7H9S3Ndi<{)CJ z1TzB|azOV5D0n{{{1l`LGpM4O-VC5XZNlo7n#7%O zoWWLX_LG(~yzye`jJdw`^Yl#crYs{O(vy{KC`~JdJ?J_EhJ8!GU_)3xqkG;eP#`nu z2?s52lZz&Ne**$No63CBs0@HDO)c?QNgiWhsq?FJL%rk^#g=HJ!3!oyE@t{if7LuSRF|^FUUP5prN}|=-&MO6=k9d(DngQCG%D4 zNmR@Jy_BX9H=5L?fe)Zs3=$@;AppJ2%3evSSZ;|$O%7SxH0qPFt{yM)>#feBy;z|~ z*ttzhYeK#bAQ$(mqlA4F&f}}-p(ln~Gd$}XN5+{3^l@l?hy!QutfJU%7Htb1>OnF?aq*GZuM3ewG-HpjUNte)HD2NR z69u(L_$Qn^zinV1DzTUfTd)X9b$ecJJ56kcvyW?ndm(xu#2VC94uT>xkv8MuDh9M8cM=z6*esvtgms^0%+16Ag5}*7Nu7G~ z1*Fu4Auj=0njJ;C{y9^W#v>Rg8CbP?tGDCP?=X|(d|DA!6b$h+67uY^#Y`COO5iuT&oAOj*Sz^AXuomn6 z!ou}hp#U_z5I8(KGim}l)8gYxd7#hOtSa3*Ia&44trj=W3dfjXunVSNLIDwht|&+q z_EJtQuec8C$O8ZYfNFd3l6aF7!3-XdD;Z+qVinhTB9jhQF^|F~@`pMHcgW3iJO-=`(Ud;M-*}lF9e<)dlLOZpSJHwytz>ar?F`Vv$nC{JsSNuAM*=6!hCIPdk7$bJ6LN_A{V#q*>C0hH1 z%L3j^d*-QD(MRjpQ=4b|x5i^jdowdI+DcK%?oIQ1-L4`VLS-PfO66Bf_R(rLBqYgrKSj@vUDjt-MsWmmu-xD4W=^9gx)+6)KzKr z+8Bs{x|}_ZEq~2%7aWkKm^Z`)Ff<*?!(YR`Uz@-3q4Dvs`Z3!GQvgTSesBx65OhIe zhp5|jobxq?0tuBs5Kx)tgyFpuqmlzwdzZE~-it13TU#b{r&0IRZWisW)x1h^05Lk7 zejH6#@qSaZeocVw9RLepM;}09*m0TA1lD{$ZU36Lz>a~&b^dF9L+j^+)wuqPNMx-5 zp$Iu@RjzrTRb%n`Tueyd3N^V;SL6Fin9_Eb;N9EMUq$-SW(3}yCxrL+wVWfV{uJz+ zT66X^mt5ptl8V@v#fadVbxyVxkzH-B)Z{M6O!qqt-um^`+#U*-bsP{>#NpViNh;VK zs>bzWuRkgM`c6i|_bZ5fALbNNCHsA`vgLOAC%)^1>ZYbEWTt((ay>W>MP|NHJz;yw zwzkmEfi2I~O(fTpmkWQrW&ob?Vrx|7b*|o<%%{{=CKjDevt;#+1FOTXyK*V~^P)4= zYvJRL>sMp)V`1d-E9jsp)M8#oK$%z`Uh$M>NUnuxk@o&{9EFI_G=%I;R{Qbu{912> z4K*$fs=r;km(-;=5SoNeS^m{>sxLKdrf#OakbfUWB2s>K-iligbcfk;{*_1;9v4jf z3pZ!bfF+y66`bTp8(srRt$lx$Yn@+t1D2hc@l5J5{x259D`O}_X z?Jzs@_Pfj%k)81uG=Bcpw0EPq97Dy|l#2DWbsOHS$tvIFC{w-G7L2!PqrtPTWfsqL zjJ0K6=(yhB+AxNm2j%zB;uZolWf~>=&sJW}xO>wt4VROttcs@A)`;5r_TMeSr;!EW z&gjRws?IrAn7O$(Sd5L5hcxY5U|D=fWupfKRyixM%U^?mb zFT$G!-sn}9*qj4&d+?U@S5510mon!3LYINkcTBf$1h(wAyTNQ(EiNPSU$Fn3a;S%KN}{hTq2>Sr0O)`L0HFRm%v#^Z z+{D0jALv!c9hCLMy$ZEcuaHr>b^DL>(I-o88hwhkG3%uu$s$Xd-rFa8`!(*_ZV zVtXoQ?(FXC_IX#kud>5EP&Fc!A}#TfCO}FDQk!h|ZESGw!%ZtI_OSeto|OX(+BYXt zso_OC8uD~B9i#&&X}xg)cArG54B*C*p*I6Vw#+REovml%nRP)`Fi3BxS?4+bbH z4SYFz)?oSq6h*)HCUcxemw6F+`}Jf1devB2dRM9hRhI^Bn}SG9J(}lg%vcC0`T}-n z5k9PaKoWAmNacIG8(zTvk4AwH>s4I_)C-p*Hq@qGqO zjP^ZO(FhD;7EDZ$MW^e+hlt0|lxk|sPegIe;9$*?G zC5%rL-~eL4APfui40DUWrpT~yXhLKXvwh`7mM2f-T`p2mBtW6Fzau1ooxwH8p}jiq zGh@|NsR4kw*{8+%@4ofFS`cwB@YH9#5ZAx{Oaysnxp_j3+{G~qwzr{YQbMj|8%}vI!ZHEX-tqNFV%WRsDj>u!xIJuZ+*QPpbO}!*6VE3k{ z=IdI-BbUjyUDXuf1Lg>`#J4)<=cCE)sku>&1{ce_Mwa{CWIiBh-l*nqKX2r7cPH&q zEU&}eLR8t)bp`EISZ#O140C+xZ)Fe+s_dIe%*~>wGE2rBQ1#iO8Fn`ZpKZ|`im)&$ zyH3;i!!^`l_PHD;o*PUKwbQ8R8DjR&-dKTH$~jj(b|#lD@F~t#d*=!1h09X#k)5|< z^&*{vPhui#$YQF`2j9fXRcGFXD{0RUWuomVChk_+PxoA)VujR>C0t!TN`?+wDXSN_ z#e;V%6)q6FJC*##7K`dXWM*ervf8tBcbQJW7sS3NmcSdAZPz6!PwgmAP%9k=bg*FI z_iYy!Ate9uy63EcN|t(a&sZpCY+R=EH;$VsLmVnFS8l9hxUo;bvWR&0IGvMXgWX4R z)GtG->nv7#OD+`v5mk{6U?0HyD-gQ>4h=vQRfjBI1oKC>!9@aR&Yk0;ClIZQpmc$@ zBTUXd3|q>AJZ{(SN>T~hOflVdK+cPdzo?9yS<)VhuERHjU(*V`LlKDba;tR!%X=)a zlCRrck?8b)vo9wnWD|%zG~Bs3dHwnfkAf@u*G{{z^n5s7HK-MPh;kITUiv+l>$yAh zXwSr)=S@|(F1jntL^DCbnjA>hIX^$P6KVAybslUUs3OXl&yuV|B|hn8bF6g|sgP75 zrd-BlE?#s;W)GG0|zj?XVe40)K^YzsC>&qUZZ35kgR`Y;*!KrZw!i z>Epeq-6CZL#f7Bch=M(;&%N7RY?O%%Md`2zM-l9e9u`m*p8g_sb_BXDv|QKSp!cjS z#IQ+DrKQ!bY5LCY{Kos%7mC4UdHc)7#t#? zK-eU?_8>pWiHL+GY*pqvxF*M4jnhZq#2#z_E&-*fkLM+008Bk|zNE-yvub^LB29Ny z`}*q!9K7lRBwh?n{!Hra|I*Xotd2{oPQ`XLj3(b;x_cDRE+NckkOaIR(FWK7Sj~lo ze;RM!4TVjqntGPbXsW;|7tSc2(I*@!{HT&+Hf0?pR_uol0zYI;8x^&&dCbxu5+#=d z5p4YZ63px>gzO{UIx4WsKUtAm(NFQCOqF)Bmt_NJjd+efw^IZidA;fPP=IiZ%0 z6=u_hfNTVo+V);A5A5zWzaEefsdFe{Qqq~(@Ktc3usmI0AfG;%hj)VE@HD@BAgRsh zicNCvjN88>8#ZiN2e>qpLpScTvk;`0j8n3wdL;HtE9$?k(>@D=gk45A)?) z#`SuW$Wv~gZJTX|%p+yTDQrG(a zLcV3~ENgK(#$_!vu5!LeeP+;b*n25(=->c+1S#b)FRX}_9bV$Wfi>CH`l!}@&Bf&- zZqoBR!XV4fP$}Aqa-vN!aHh`}^oN49z~7YTLd?2D6y$SNn~)LL9R|r)Iz=7g+{NKP zQkSd3i>1^{ksSlm;0tRC@FQ9;H&o!HDgyPM|J6RKg96;Y$!?dwe@Vcr+k z2HECaNm4MVSQZ^(x3Q{?L}MYld8k^%LnggseiiZ}s_G0{lp`iL^q>VkMNOcV7oOM> zreQ~v(mqrv>nq$SA}He?Q3U8+wL^i9%D@qp({V%Pv!%8VSP~J6Hg07upU7R&J{kmA zp|5_aRk`AaW8*bdtC8qoxMXjrcNnn%WcJ38-4_Wx=o;MZwvEGAn*@kAgtEZmRN9jW z>-=UqRytuQNW<_ok?9w4gH#eJs^GSTttH}TgEgZOhZKTaFZGTbS@>w>04q&gWLVXs zRxlKwRauXq!TiI?k+l`0AT?5PN3NVD*;Kl3D81>Bo-dS|%*uH+lam)A>7@r&{l@3Y zx(Q$0zdnRXm21X%qCmbikIS6)%B%57TS*gsO~5(sHqtx_jVSG~=0uvuBgc&cWh{t$ zw|q(SotN&d>ADak$s|Pf!ajLm)K(=LgSB?dSQEhL<5;_#61%av+}7L z5!)lg9hA=2r9Y1{4Y)bwW{!Jk0-#MLqXEp=KDNK*`5aMV4~5tl;ZKU_zQ#C|n(Oy4 z(tFoAM$bADu&VO6b`Qx+&K*-CFvqyo7=g&40){#WTb!$Za@sqev@6oUGZ>eX`BOty zQRK{T`WHB*U2V66nODH|SC{3k4*_`$GOK99hD*%H7Xb%bJ#%t>wPLyuz}RyysD3YegzU`G5)BqEI)H` zfNNuL{&Dnf31ExyJ8*h&JE5w7pMu8PP6$C|;Rts(pdj@4p=f^}qjuuZiI>DzUS2L) zUCzV+u!jDjnt;DW2-t(KqOo{Hi;PQG_wxz5bt&g?AE5WlO z=M`B*6bOSq0;~oypE+Pqp(&|@{2?E-bG8z$l#&Q6_3Dik+lCKJ7Bn3|;JM3cnoxEC zkwLpabXpk6-xEBYr5?spm;+^HU`ohBly&Zh*Pd-^b$yD2i&Qleq}d4mZYK7yzZ$nd zz+gf<=n9k9Zjf;y^Ssf`;)3Bn3e44K^r1?p*{yee0pf#ZXi7|V$3XQXbr;#ub`s|E9Vzifh8u9cN8R zC2^Cw!)iaKT`gq%@SNQ_q$VB@z!~Vd<3y-KcN$J38 zIh2~+NL3j?0)oWentR%9vx=%`s)WCg4-fk_)#6|(#KzMT>A z=CfAR`q&zsA<(d49o`{&k~n=s_*LeNG@5?<%zg$i$1_P$58 z9#unC$J6uDK@s<&RJ_lTdj_29i&>E$r1dk*iriz5u|QkrtDe!qsz~9N%;N~Jkqkr$z#{CnZ+0UKr};L?G2Y-L65k`qw#0X^L8TQp<2FycgV#%yNE1Z zM^93&7HSjd;}V*9mKHLouG6F1o>OmbWM^?O!F*S8YRcgqt7 z8oZ{p9y5r`WmR&hy(5};J4DX4h5@Ar6O9rv939PO&P2s)y`WCjqxbC+^uh%cw zD}85W0>JNjuJdv0kjK_vO4K{0G^o8N&);}Bu-85MsS}5q`ec5++~14z^XT~Mdh>Fd zP?R%E(WB8eG*(r(T}XP!qx?)O3OktTyIEBZui^8KF{&zHVoRrBk-ZfV= zC2Pi**$g(^K`Crr1i??wgC~dD#Q;f|z?CCB$ly(D(dRNtR5SY;B8gqLNXZsc5aXFB zDgqNO5@R@b8dV*J#9pS*AnI?qy&N^Y`qS(WyyvOa;J(lk3bh}Vwl0f^XwKtepte9C z!Z@0*pT{Rz?4pm^Zx9+#;b}l`{sQPO1*hRA#Me&Iclk zSEvD6CddUBc4}%hOWg)?VCK8!`bOw93pww6vpR^-+dQimn!@t~{Fvp>B1_gf_LPz1 zU+sPbDZip=5g$=0=Qk>~f5jjT8?-nT(+nT^Eb3X5Hlgr+ok<+e(?qPSBc}l+vE`5e=SXU004;j|Hs;e$p0>6&@<5qh%kr< zurms?u?x^M2r)AKt9DV`;Vg%%xyZ_a-MV)J*T20DiAB)X+1Uxc3X-~agSUkn&es|(BZjUb*{Z=8)=&f@IVG>4haAP1gLP!yLS!GM{{9j zuxDi;Wp&0+WvXX+@y3%>U&q`+>e6V(LY9)0qUfawC0c|1C)XVTPe*Cq_=!=E?(h=G*vl(n}2tu}1&^gNgI* z&7wdJiwGX61%n7q1g;m3yh9s@1h7vl6$8~Z3qYrK(B``5TXs~tsmzb@eX5P&qmTZ^ zI2-8-Km!NRH=@`UmGS|w7kQ2qtkEUHLVnO=qCgr zJL|J_tp5R!^797&SFAWh1}IKpZm_)y_}49p*yyzogq#pQYxwxn7NzAK*Px8zC!~D% z<(EJXx&atrH@se%it#72yn}#MgAkbsu$lP@lUFScQTS72|YWam~Lcsyfq`P=Y(>R?-ds2cic&+>&@8YoAzsrjA%}EoR;622K zf&Bs!f*|?6a-%oM0eu>{>FUC_6eo{i7zkdobcI^#6lxG^JpRJ+IXArS;Cl~L#3o0< zN({IT$?<-_3C&9vOW6_`ke;)>bD?ltIwrTNn^(SwdrU4H1q6ue_!VRlxvX|1mjx%a z-!>)49c_8{hU!)k3H7)>@%jo%WIh;PMY3D^c5MDWQXm1Ef z4*SC$i(t!GmbNe&0QfLhgMXJCEDl4j=aJ5Vf8c?Qy$2B;aQ7xrcrdONZlfuVF7O=2j(~n_pMKir z34!(W^!5NCaA1%gY*9dwpn$MIz-T}Or-J;$BSK3SkMxkz zes5XL+2?mAr$jWK0pGLdvmZ%2rqY~7=hyw0mzdQ9z^(}yDsU9*f2$P>C9RCRSaldL zn&!{Re!<$#Yreanbq?fW>m_*l1`B>vkwgP6<-c#5_B>CBcb|*&q;$9~ZyNo}^PBW% zcu&S2(_7LhmaB4|mtP`Oqp1~fUZ`w#AU03=Z5azJxa^d2?q+-G@XbOMl1kjIV1UY&45%Hqn1P zawQj3^nI4H#ivAyld{N^F|;s9E`4C|||%Beb>DMg64%J6pF}sFqEFaLchp#6Xz>7U$(gkrpFGv zZBEboq|POglNKkv?#)ZSOH=oZRfTT`z%H)vv$2y?-c$zzKQgGJ9>bS=KN88-CZ&8c zS|&4tzOQ{A(o8E+%^TrS$FO-udU37EW$EJzN1wJo@qZFIC{`_IxEf7RUTBlCy`Wr2 z&70AvAbz)n+_(R{I3LDj6%H?-s+J>)j;oH}Z_cYytSbsM##m)$GzTmYJC2BCa12gy zn-N+cj$W4#y#O?50#&Fg_OD}9j+OQiDUzvOLOq}KN;5QhtdK7pvfpIhn7Ut?t`enR zEYx7S94Yn?)C~Dx4(k3SDq{=Qmge!4EvhF#SE>danw}ZucmCc@t==473odGO=69y5 zYkJgvs$P+HhGdGY%wwllQTnPw|9X31d28*bO#far=pJiQ4LB$(PG4m(bFWx@AW^Rk z$$o8AEm94rvpY%Tx+~ApH_dWJoqB#v$u%q(b*|(?9ak7w1hOMvD*3b&^yM?R87W)z zBO~2^y{qwDlhzGg5i6+BrV(ix-URed*LKF70D3n)E@7WDxm=F7@6(iQEM7mo-OY@w zyu;3gTc31b#@aq&x1bG$s>i?8PjT>msQrM!AhTZaHcdL7IWx`Z{_WlwXKmK-jiPh; zc6Lox_ILf_=>44tiH)nDzbhB;F4z!3LvyLJR@WI8DIYJ;KBU^j%CErl)*mkUiDTt> z+UV&#DKQC5I=C5WuI(&UfA?bFuk^D(j6@v`HHxKpmZW6O0G+)L(ykVac9ACS$X?~5 zTV|VG-rQ7~@*XWaI!mj^+!e;5?Mxq=`ASRMeU5Y2W4gEXL-Q)0cT6=AyeeguXQHML z?9VPti5WqYcA;QeYH*N+#bTQFzJsJA-kvs%PYz6d$Fkh&QyDHwYe(7EY_n(F4m~VJ zu1ON@B>0@TXU=e+UUuQ8&lYIBtQ4SF#mJ_Ddkcwv=BPgMc!a>0oxIh(NlYMnkZH?p z*_zf1!2C+N@DC(zH&+a>Ai<41@im%A-xgyfrmiS8#N{#pk} zOpD4AA0qS%NR}R#Q<7SrXQ$&S1ykQ8FRRJXmLF!`*SzHoWlJJh!`|Cx=u)i6!m`#g z^u_G&#jLxbUn?E)a+i1!1}4;cpd>aATP_wa2pJ{;n_p=F#~(o#$DL^Ak4BfU&qyfX z`Tj0lT>%4c<3-h}vh`b7*>1PMzg*O6KccMdXL!W`D_t#2(Ox&iZ_V5tted>-|Jw!& z7Z56-6kX@9_XQMbzVhc?wX<9)qez_H^GWuUmJKeyIsa^nlTzS#UYz#MnVwr@3^ zxzM^1PhdK-;q;rX8rlaq(flEYfq__AwhigYvTKI_REw*^@xkZSb1x>roGZdJJMgcs z)sUt|m0ZQ#X@;^Kz=#r+5-;15+66NHJ6TRozeXX2x7qV0*fS=o;ltU=j7@1LfCxC6 zbwA5kHHl-HeUM)!E?Bu;7H_FZPjMi+cZ*dv`+jH;uZohY@62%i2Aek!Kq0D1KQ&6g zbu8c-x6uiJLZUQPG^W9YCH^w(eHW@wmZKOpd2|d3I(SN3x6cl6C)la3l zM{OD}d-rr55{7a7G(EQQ#lZ@FJFTVMckpCx9OuO*2og0-mc%QG){a$d3JJ8j;6>Z? z3*bPYMPVh~SvK|g2fCXh+DBG4iNVO;tU+jD5OfOg3#cL~QiI3qQo}CB+rHJTEV3m6 z@RJf*bnWiAijb{fl-}`tG{8=3r#qHLBj zI#W-Cuptkv@-qpC-eybnzV=C}9DPMy8Yo)vJREEn5DOh5iL4sp_Ngd4~qdhP<>1O+%i6%MSdr*-&>s83_Wp2`_ z7NzLE-<0dx_T!4{ZjL=Cu5jW9Nid;uZ{H6_$ian%WI){91e0_{c+=(OAfPkHLXVC4ia#DgQH__bmhHH<3Fwc; zHU4a?i{?5jjvukynb-Ycp*lUicvhRkZ3CGdw0sJcI$wpy_?~4p3#DW(yVA~fe!SFr z-IY99UxtrOxUvSBlsY*J9aBuBBKsRSao{)r3nSt;SG8%!G%Nwo+KJHbtkEP4qV?h)22cTa}J z=TbCiF3oABu@Py&p@pExD07o5a56WmrHQMG#j(h1TDgZ{jqI>B))6F%J*_=fQj=J@ zAO}HH(*6YT^OgT28vDyeYN$gTH%dviPyfZABEetHQmJUHB{__qFX5v=_~h~Aq5s>O zzt?Kqwj0ndqH5yn08x3de~X~33DznK^Y_P#XhNmkJ-K!IJ&;vZ{RxbUye#^WV(QlM zT{s?b+-2ta=N{Q;rqzIT`U>YnsM14-x2NryN;bVk`?jfLqh|w2iV*cqS#ULJ%C3zQ zM)l5=M^6E5%NoTaKciy|%S;Gj0L2o-9SXBfu0XpWB$O8>Hol4~I1o?|*4|K}(Yl(~eCZ#-8SO@Vx?Jn*l$fodA-$E7*d7Q7Cw z&dVF?z?8(i0b*;+>BRzb`gORbg%a-H&>-1uvp*R<>aBpJvGDIk=NApA*H1y^p(Q7I z2YwanOfT4a%VUXJr)iSovRImihbl3@&BRlTsI`_YIRhepTyUX+qHc`MR_02!xn)v} zL)*Q%=+A=O4}$oK_HTh?4`<&3(JcT!2t@xff5$k3RTz+Wx@-`14C1y!BLVj zlTunbgS2L)t16cr*RI;jbv>)X-eB}<%V@pFV^jMKTeAxZW3FZ|eJcJ9z@lc#+eI~zaIUCI z647HvheEFfmR(nvAqVq|7k!g%ER{*jV0QaWhvcG%Ma`{Nk11lNI)Yr#r_sR?Xq#nb z(q|?4+_101?Q}3PFxC|om1)%UP59vGmLr*_^J+k2lL z+D}6%RN8ZXH}wbym3JR_0a~bR5(>++pHFS*Mn4y)9bs#tMH92uT`EDFy4jZZK$<~9 zUlBh6=H5`K!~usvFI17@RPb>Ni8I`m%az2XQ@gfD%MPh;q8e=DoicY9;+QI%{XL2x zx)ZN6t+A+x-5-*`O5siAE0r>{xV<&4pB`E1nN(mb$Lvmx?4o>?6jSkhHn6ighHrh} zv--ilS*k$4_HkK?_VLdQLnt271dK1u)<53I?3tYUaAACvRLcY^gjZ^nM^!wM5_$%( zEm<(V3+#GYH|PqBET<;Yy{`AqXNkLs252dwHxeADdr>I(LZTHf5{>5~2D z=QBUrd-EwOo>zK-vc1?vfDY+slTlQ}edjLcS~s$CTniS(1BBKZ|K;2qR zTpz~9nSLW&*oY#lPR|#+G<7w2+x_?y1LLzSaz&41Oevkf(ix@fsiRkIrema2tcz0x z1%>ibqh&g1suC@u-DOPetX_j*4bLfD$QmW(kMx{bfvRn~f)o-4|W-qEGHoh%;40l_;N3P8lB}nrM@+hc7JX8Eod>9!?Jkjao z4l7&TWd$fvmt!EAH&mBfbCyud6%7>1CtP#3XNr)M8{(fw^mJ>OHYbzsk6~$|Jeh~H zXEW!8UqAkaTlJGY-v&alE5U?2OS1J%w951rYLMTG$eJ-y z)C(Kloc*587v<%e&2Tr|D8Uzc2D>7n;1dSPppNS1?E&yk=QAanWdF1-RA^tsGW*N@ zM@fH^kufukZtie$VU8)b6&S^(zvry&?rHQnoz9Qs-9N+z=AkS=5HqOs} z85-_nKZyQPU>3%2RbenU5u|v%%Aaefe?H?JLVAEEL7-jA)#MJ zYHa6fG&S8daJ&++C4xuVHQk!HmML@Ee4Wkz#R=6@H2C3ysn4IaX7nsi>a?Ieu*1;G z7djf-)sJB-8#i9UrBbS=cs6A9rnx_PD@wqvo_L^W@!_j zz-Ru#R8|u4fHHjY7>>=j314lvl9*!}K&GseX*+l`Y?(KH6p^R$w_}o-g0k%9(DDwQ zFfSzMwKPfe`uu4TWX!2EGq9X|i~KKdkdsEKLRRfoykj+fdAc;t-< z*VKfm;PY2$EH8_NZ)b8NvOXt{%OO-4+d6sjzObqaCKP;KwUJ>E?C7n z?QS)k`Zx@@>LTg~RU&PuiC#3$a}w&vM~JEmI={paKl`GD3PiIuaI)E9Q80;X5EHE^ z`5o1zG75xx%*eid$6&{_!zwSyGQZeq?afHvbLX{54$775ph!v56x~Nmc~)!{o6w0U zmi=MzJ}Lc?2TNQi+20a#sNJFAMjG7|YeV|>W<$&CiXod4PxzYO*B87$d>VhKoEt09 zaYoL%E5t8VKwdut{(b|=x~f#5CSTSx3gZxu8Xw#jeep|e+xsbWT)sk9{HIJ3O%lJ= zS@s6)ve{G(JQ3?-)20XXwzSwlfvsh7U;2o{!1U9ZI!DW3xu$IsRTt5Q^D$xVNs)A# z3XM|knnW1FimTDR8YUHF zM9sQVk8cc0Wb7ca7Dk0H9^KNzTWLVPpNrB}y&XNlkYD}ihR{B;lmQn@$eCz-)*|Js zESbd}G+_=Y7mWi9GpuybJ`h&1Wn?dIT;Z8PahG^M9Y0z@-_46nxr=T2FQ$3`K2@#- zGed%w&FaF)5~ZE8kYMAf*(rq^8=azWabS3#aXmFn4rHaimOG}MTY8qZrZ_vDji(a^ zQ=21#^8}BTGj==U+~DVrSHp%ou+*dkt8*$!&nJf($uN2@^cCp`T0Az!P?~pMbS);z zYkI5SZp^c%bhy{e%F*w2`7{p$x-05{HbQNWES+ZH# z{qyKE4eZTaDuUs{?|X=Lsl+aoH>#IVw>9smfQVcp5%Th-t=&1?tJIFjJ&d`|aZcA9W#%PF#}(r{!UyZQ*hHvBFoIs;Xt!LEH^Pt@dc@L&4EN zc#aC~Kdkqts zX`F7xRHWjuov^IRX0Vslo!KJG)tLmP3wOKN*AT6`0#>(iu)TL z()&R7*IqwLfFjkvW|-UxPy;Qu_xV%3#nvmc?9N-8_0&gUCR3^Y_R~&_B4{|}EzUkJ zX1n5Iq|tZC`QCpIM z%PxE{kjPuqW?GUAbA*p$T>^&!`9B`yAQh8j5VCK^LkJ0OMm4w_mL?A}$_znh;2|l* z;2yT_Ba~Lhn46q>d9}n@iA$xO{&>?s(fS#CCly3}mNO*5;FFesy}f3j%{OPXg?L?y@zTklm)8xEAKN+^yoJl>kHgRhTK-+hK6@!# z7OW9+ABtgZc#g0~8l~lVKE*HG=HOK9FNEKT9E|d?%ifd_ma*icU&5j; zuZv4i9%01%bu$B?);kP4{s`WPg-Dt^r9I|89%Oo+ zm8ZK3CjH*3LDIh`1`CnVNddq4vOXo7vC?)c8{2?oz2u3p+D0sFPV+F!zDZW6U1Wo<}(_pvPprXbnpFC1PsmfpaIYP7`2S3yIIP0q=}LE{cSBinHnA) zvS6%gtg<_>EcyU1znD*CIWHYJAxL)EpfXyavT129?)%WyTnbbreD7w_tf5Kx;ac8W z$9APui!>5|%8alS3dK1R-Ek^GDc#Zr8pTf zu$ahL1{7+j_zK*nPSBDAmNrm#0dA$5S!nH5uTgU6jLhvL45|GgrbkS4O_A-U5nWD< zn=HAvkY8N!4Av29E4o|ZYEu|1hOk#LkQ!$RB`=oiIbKOOPhwV?TM@ebvT4pKG&43g zTF&`U#iv-k(B#fuC3^U4D>SSvcv8DO9Hp!aA%(ue0rfYv7gy^Jo+X_pF%(L<{NG}! zBn>XbZ1F3NtcAh>DYl?GZ;A_Z$zeSCweHvkBo*5XNbyzRCuRIsj5k7Dml79Y^o92C z`iPCU6X|&Y*e0|srL3luqxi*}^|zmd>obqm5rf$sHUt87f;%x>ED&L{?Q%=EI~`T;x2b0Q3Bdfs z-8(C#ylk44H9#P%lRjeLdi?|>Jhg;tlZR#W>Xny;JqP*<>Z=DqsE*w+ByH7_&UpO9 zk(DkBs{Jv%;h?@dexE!BTAPXB-$@sI8$HF+Oe6DF`nD0%{=-*2HrS}dyyuU#5+-fz zc>!!4Y_(U!`7ufp47Il`;V{%a6WT~{g^%&RTyl@xzWlI0esc3oKNv$o97~Y~Vp)FW zKi+|Q?|Bp|#f#Fo@Rgq&r3FUlFdnPf>+PqbiOO}3ULp^#@rX{%C6Sa0_z`!UaEXLL zQ|7!&1TVIQWb?cWNNOFA8+j8j-#uk;<&TFie|&+DkO)FBJt**nR4zWl75e?~KhujQ zQ|O|$Q^Kd=2sZK7(@JM|U*O>P#xF8Ko`1nKG6MF?S5CqD=W5?J;nkEO6p%l`$q*SZM*7XV~Ho4;lTh7(WTGUV^&^|eLrbe=jU27U!^eNdAw@ieb6&D)Kd6&|=UTiy%4<}Y9)}n)o zTxOk(L@)WU0WW{)?n;DM1J}S#%7e2`yY;COn%zq)oN$<>S=dHI8jBE#t%UhYnZD_; zKM(K28{k8w-atUq5g5`?19<}GOt3?Zmx~)jGS)Sb7~hV#>ntp)y0!BO zIg{TE->MHBJI)@GN&bZfDDA>5`@yY?=&*yuX6)KEv(Ap->@5`|tJJqy8{a=<@R~~a zMS4c`IqYQ;2{xb+1~M!x9p*{xC-8nj=#@;&+ zdSw(ZVpb?fHp&mq0wKX|Da~Jhf}9ppoSV^8lnN%CQ?bLR@;4~%LTxr@2Ps3ug+78f zBn5A;dyZUv9yKV!BYNHdp8&p1Dc`XlLtxf{1zw+qskSHVkO<+a*anIHD+$o84xMb; zFSm?25gGQGY3~9OgDDOkO=Mg7tj)++(YhYlJ+6Y8iN&GBzXg_QN^EgtY+@rbXY<7`5Oo~U5tA;ffPpCraj>EJw+J}Q5}JzA(O*H*RK39o^#pD0 z@|Y?CpWeA96T=of zT$ivh7ZhBc1br8Yh_c|W+Nq6RL&JU!R!AoWS`zhP_qgI00KP{)74-dAFM=3wDbdfz zQ)zwEhpG-PUJMqnOZqi1jK+j6#Q=@l1tN!rUR8C&@;3QaDaIA%a3~r(X4-%r9TFTH zn)r`-Za#S+Y19qn3^QV_5TOcKfX2Lr1~`Y@5nIPj8m1SbpA*i3EKGz^uYUqHaSsdA z(-s%XfUWsAa49WnKuTABrK)0SRjZDEGs+gZ zF)dAx?Z}zbmX-LtImU-vkkl$$b==FZ!?eugRAVc#EB7BqWJ=D8Fp!gk_Hhh~TOlE| zhWN4ZKN{o&W);;FGMJL;f7DQL8PJ<2wSF8Sk^V5}gYyZYp}BUUBL5Ar<+~}KjRWz4 zUR|xtYav*8xmtE!Aq{5?=Qo57L~1wjTYEwdf>V$oqxNl+JBy`ZLb`;77Qn<&`nN8T zQwZ%7rBUiADY1H3J^~!3awO^q2ss_;dI+j3=B}7hsIkJa8_*EG)?cZAf21Q^NIb@h zFcxC8RBl8!JDe!s<5>@_(wh_D#omFvd6F z0_W$w*fj6KCG=V}6)D}RO5#pH_?PpH_TTPM0Q|jTK#mh877->#l_Cy=B~Ji|{Xr1G zUl)K3yh{M6FaVeod4e=~g7AOt@7Fv2E-6e5Cj3{$0R{^}Dg^-u{WbpU4om(|Kcp~( zzw|%d841$FV1Ek$5dJU_{|Nl0`%ix!03r_*`Y#Cc*V6we{!fPoknmpt07QxU?^v1` z^`8;MyFdT6OrG#>gUGw9QvbCqO&kaFk1#6mkI!HLF(5_$cmFA}6dN)uIqKh9((i6S zfB_JH;eREI92FJ-q+o#m@fqTO+=GGmcL?^cZvf!`x7)CP&&ZLb-oyNlIt)3gFfkwv z{GTL5{P&7~*%2lO`^R&L1R-+Z|4#3fAn{)vG2pQO3k0FWcO#P+*!u^>)m;4BKZ869 zvsqiJRd1rQHGVrfpWFGaOM&vP3IzrJzjYl*m=!DRL~UqYBS*;_}Qe|CngTQ>nQo%AT2Tg1_B2MhX4crr#JcUvh=fo!+S|u z(>-+|w1rH3$@D)Rl7h%o`EvP_JcgVel>)l4&60Xr{ca%d*Vx89M3tBJik-;M69D~;sGj2Pzz)XOYGlUrXM!_$`} zl#=8Xn)!-uyLrcTpU;$a{(RUqSm1k?TET@{RIu&xz6lY0c5SI}?(9B`NqY^% zX`JC^=KLy})HY~7ouiUxft!TKSp0cwOfWUpYlm^!vd+JEFSW&5?Ys(Ry5b1Bo}NV+ zjt5c9J6_D#o5kY8mnVAeyl9po(z%fk`K$`;p(q5~<-KO*THXNqO(wLPdQIy_R8qEtpU z#D{hsr2;p_$#+0JI#d~!u+$OT642k6jc9*JPkS4qx}YUP$=2$Cj0?KDHe}_Rlr1r3 zTlo5OMdJyWgZD=C!5FG2GK<**B(wu+YI?iC`;Gep>~}A%_L1!gQnLD) zlWlDMhn$%}!3$mVwRqwN30AVpqbAm|!Z^-#xbIP4vp~GmQ2MJPQ{uJ&W`^te&Y{gX zA7H7XWpbH>lF6giNgs91_niwbi>Gz6Kx|6@*ExK2i;7xVvzh2+&vGS`ly!91DYG5@ z*XG0wvd+|xP#F<@vWa!AF)fiC5JV);oKeU7EuZO~Pu^{86`hy(5*ePm*~$hebXxUR!M;pT6t#3i3|w4;i1@h?>?sTeyXe`Ht`8ZmZu9waS98W= z+RtUt^xNZYtAiK4^D6l8E)Qe}Johr$Pb-!7EHyr+^t2jZvvYJvv>~o%zBY!|#4e;R z@aTV5juy>2N$H2~okMgTUEVvZKp?l7pVadu;BnvlQC>s9wknAW9uQ~CY)}V}-a<%b zJDz0(^-Ue#oDxn3%hZVVGj!)*9J5rW=%|}obyORrA_Ov=@xvuMRlox}ir^JQ;QK2N zT?zu?{hb{Mf{Y-y79|ohm!UvnV?jg%WChq2C039kSF{ViZ>FTeV61)w0T-3B7ngng>NAd}jEz3$~y>x4z>pL;oJe^~auzpcS& zvnJ=ilas3$w&~AocY?DovNGn|UPhN$axUch=?Fof#m_NZl-`F1Ww)fDb)+T91VF}v zJ3&}b)387lvX>FvD>1boOF1Y1;Gr&!6N24E7>``AeIlyzA}SOYNd0YzoWi^iH?Zf%sx2>YT9yvasV#dE@@%#J%l$ZeiKw+-bikI8v5=xU zkN1New8@Q~nnX*oP4s1Yp!v=mTCV{BT!jaH%)FxqAbTGKX&fcRg+5L!f#pH#)`ZVv zM{_+i+S6Bde67BeG;O5X=sA`&U$`aOmBI4$T9TlI3Nk&-w87=e!CElKU9@aWg?Eaa z-TYLodMguP0v3K~5*)hxQHj-r)}L(F*&)3>Qv?Qgh19M_zp!2o?k7hNm=amegHN6V zVmB$BkOFYWQz%4$6}9Mr-;ZZw&X|7-JYszVA)QVXIW*Txu*t07@t8J%qM1#lXJPqD zf38QHZ!C?4vB8}Bh$xJS?*+jNiJ>~9`Dxth_ovBvY2iT#l@+0&(6Q-*O-W(2JK_Nd zRa;4e(3`NtJCOH57hoaEQB=Is6*uug5pADFgtoVe`HOL?p>$@VGSELqBFJIT1=*xc z@EKwh2jq$F=QeC_SO3uJJko zmel1+hI)2$Ua>7U=-4o#+V`YoN8o^(*ZBuPoG0(y!7bDfVzv#=awX-m3qE!P4#wAv z+innIrH>Lw+FjXW(`;shen(2IX@hrE*MP6c%#=4G)J<@zppWc;y<3%OQO{$~Ys`RH zqKd4Pj3)s(+GZmWmI2l*ktc+e(a?##WgWaG0R{zu3>G{@xjI_km(5%9DQjxB;y8HsE2r4R$!WZpt=N%- zNQTD1-a{p{YQ~9|^QUr@VF?Krhs2W9yiZl&QoDdZ1wkyufGrs6vW35d_n~b zuyyAti7tl_vl*zT#K{B<;$c#=%fEq6J4I-fnmV6OJ z-t_~G#W6lbbz6#@%>S$=+NF=aUtS8ls?Vpv08iJA>GSP!!X`#3kKS736%JqD9t&YA zC!g`O6c~M#i)(_@W~=#;T%|v8bKBy;ti>)hyDot6E1(7>81`a+0qAe74p}JucA|)0 zN^qc3t~kP`b%2+(9mNS}Ki?O1^&n5IBoGR_>b(Q4G^_B5_-th z^jY>*K%ZFHetM0GSM1`vkbdQd$dTS-;D35Tvy^L1xrHhOu1;6llWgU9se6b&EE=PV94d9!`^`%S=G?)QII#ya`9>==qv zlDaY9+eNf>-6Y!UJjxcx6;O9djS)p}B(O+jNbC!5A3tuk-kHm04)IaR!np@Mz zE7-{mPAz5!+5CjQzvc+45&dkCd7A^`{8(F|MRY>e3S;26mRrr`UU~I7)%44aKh5X| z#)8-{*G|$XYv(yUu>8f#p%-7tVr4Cqy720ruho_(Mp+xuVrfDPa9C1wRB;$0hGQIH z1dr+pWxvw&%$v&ndSbN@Z~*I?8%J_KX8i2b*}B&R|4^?(*pzf;Q=R%--!5kV(*(f- zk&yF#{}4%(hcg1q$7ITltdyp&hm z^7pShEQR<8%O^S~3;_m1910UBTmwz~1`I6Z$Eyc^f(3+V7$fgP=Yq7nNVFoOyfXC- z<$Ltg!pLJV!Z8t-V@So6#Os@EH7BlJkA6W#*?950cfdr(f@i8~A`lpVW0p`rQ3+sP@;#rh{wd1BE-eUHL)QW7*y$X_UM`70|AGD7+Z>f&(7 z(%0lQBbc>P(ZH^79F%3etYRq(-!Mua(j`Y=7HN?cf{5>OoV}`tE}{@JNtrW14O)yA zBIp(z!X#4yt;SLJymV}010bVKO<<%Gf|#L4ShsYMeU?y~gqTKRs&DEtr9T)Iy*l+5 z;T`{-`8R+Z!38}~>QjtZQa82wK<H}(?ZVkn5IYOU6Dm)3!-Q^k_V{E5kiiAsI67mFv8$gJn3x+SSyXZryJ&*|2 zEu2rACh0CAjtU+(J3W@bmj#*Mqo@=>B{WQeBbI>gi9gLOCcG5eAg?G^^=jH&YQIS4CsI-G$zEr~IG>u5ITRj$OD@R_TOn537?cQ< z5BhXpuOtOVi=5UPz~p9h4%z#6M|HoVgKGt(447znEp2?lgpl5oX^1rul~T=v-uNbu z|G>X_Vaqe6!xtnW^w|>5#65vya%hG#F$gNT&mk}Na|KM~X!d}?14e-0H%oY`6iQk- zG#$ib>1ur2iDV9mD}6nO2!}Vo-|xpy>2%@Ct-_X*(=X4YTS=ROLg84_vZ1TTbq`A^ zMQ)omy1z-nV02XrfFNY#wu(<6D4|XNv@oDc0TqCV68`vAxeoNmq&FL29V#OJF^F3X z)bH>PQIO+%dS^%j@!HO8>BLL~E- z4l6_`1cL$m%aumHWDhdROAsb>IlS7u4DYvgG!hLcbYfoFX^BSj!ov5gpMFzcXqngp z4!=u(^N{1R3AQ1gOThb`b^PK-dc)Nn|9LoaN;Z*6y5WMU#{(Re>?Ma2qfU!nf; znKSnd$os0bDccg9k)UT&Okg@Mbk!}9me3W}8iwTbFfe$uP%gT z${89obW*%C;8a@xb{MzI|5@Z>#NYGz7f-4WCq(Pf>^LWOQS+*{#++nd2R!<0VWcKk z(NBaCTv=0c9+Z$W$L5{4j_)4B{0PC0nuaL`6YiiO&WM+al;L(jKsKHo>OCt0SaXZ|Z zSO#D`=*i$&eBRkBqa=hJeF_FzrL?^4wChumV2Eo`YhScr^AoV<6=8os2Sm)+CM4AG z6Y1j8q-a3h{>JzyUBovYI3Tt7>R>XRo`>YX_In61ojg}g7tlUPzjucaG6+I8Q25&$ z5KasuaTfr*l6RBvtcc|yC8wzK8xKm*z5yW#K(L)TGSb`9{{v7<0|XQR000O8N?tol z(J+ecT`K?pa4P@+H2?qrP-$ayb#i5MFEKDMFfcMOF)%PNFfcGiL@+QgFfcGUGD0*t zFgHdtH8D3sMME?}LoRS`XEj;{P#jIuUfeCXJ0t`G1P{UOj^OTY!CekJ+#Lc0O9Bb* z?j8v4&JiTIyYt`sRsFLyGqpW6Qq%oB-MzI@DoS!Vm=u@*0N{W@(rWPj30{NIQQ>Wz z#MmypLpA#(Ck?#(_k3$FOo2-pM`f;m;^Aubo3~a7~jJtVuI-uRf($KMu!p83v8h#cVQl! z9N6}G#2iF3(PLoHMWV#@Y_#m_sqC?7%1d&776+X)W?$SrC3%i>{80prw~eRl{K?_5 z9?KTG7%LnZu_hz3d z-*#eA0CcGWglKZwNtX%`Bq)*-3vT>7@q1!1Y$}YuZ#^gI zR88>s=B22R`DWM}Syt^5->Q6OuLpU#?BXWP>e75DCV~|IP_=9og1ik#r^KX7s_v&W zBqZ@bOq^$7{oPThkl;-c+x{gRpJxVEqg83dfgV34BmU$Ba5l)WV&cS+fqrb>O;kk| z74$9W06J6+_R(FTqqf9xv2k&;^((bfA{j-`)P168Hdx5(RD~XdAkOzBxKQ|!WFJPm z)qB@$r`kI$0)me|SLy{Ep3#15)K@t=sT_a75;FwXy!4~6w(&nf85~xfls9ZA&%QW$ zga;ru>Hp#p0G=q-HQe3ns3=Iz-b=50FMBW=e)tw31HH}r(5kwNW#SA5W7z#+9cC*O zidES^ncr;Q-L=V7Z^0il9c3)u?&zcsai93vAb%{+Wqyi<=hh8$B!$@ zW+m$uiM6)JagmYEC8>R;i0h_+c8x2hTv+(KQeKX%-Vf~dp4RP-2ml_8_XwGZwlp!6 zRjP;KJ=rO>+qaR#)5yR#nmnegQA8NPNS9SIQ}zVA;fI1RI-l}ch7g6{VJS(Kj6@E~ zfi;X-e|Xe%UAvzw9*Eo6*c=Ivf|g!Wgn{Dt&%I>Niz#~SdVcVyYsqIyduJuJwX?in zakl+MPEHWg7`j1#vZMb2d@%sz-=au=ghd|D{bCg$$ zL+49><3LEd?h0<}A0(xW_b~|cF}!`GBo!Wm)7~1+THen+s(7Y}BjlDu9krZ|-4qpe6}a5ABp zmGcLIpv%$@+V`m9Dlz&{HS!M87k(%I2Y;XtJ}e3+L;ejpXuFmb5h9SyH~uv>Rik23 z_80zSEnsBa4yniNng(DffG+RHL4XwX91|x7vPceaZ@o85cmu+_bba-Pgt|v6#G9$?Wh`t(j8BE8nMkFTD3vjR@C)#Ij$A zDM+qdr;Vty$R|T5CM+cw3JS?y=POszw2str=v}f3;QMti7}Y-DA?yx6sPH7^qTgJw zd?qFul+Ndv_2$Qs*3z&Za!^>OB;34466EB%PNg#uCF@uvB2C8u`gCvsZL+X}g4>LF zyXWN1c}K3dEVGg^Ae~lul#ou~nuh!SVWY}YoucGZ0*we!h`Om!0w=~`ip&`|z6d?x zvhC=>GtBpe9YsYVl)wsUQyL)kCbdPKlJnzPpzgAOF_qKp1cd-r5#b#(wR4Lk6x@m8 zH&Bchhg|C_4uFQ)~ypNn6Msm;ldlmYP+3u%?~6~QDLKoTJn4{(KvFMD&^qGrLs zGG0gu{aFS7=!d)wNw|`vdxaFew@e2|@E9n;p@xoQJz`&XhKKY`EduGkecSytAGkkr z+0^^BY7iN*90MaJ5_4AeS*goAQYi|6)oB_;@|&?CJ@7#NA~R6`K3pA`c`gna@9n#* z82%FAN)DW`$sgm25=l?JJg#TE2;s+yqu;V37!&Tg zuNuJ&x5sYtBH$4X+rN5tm;d18akdlGns}E`WEbv z@9|$(UX9&cU3|d!mL1eEv!>({p;>^3%7}yh=KUY_6hgCHE<;Cl(3C909S*GY5UmvB zNA>wbw>HA1T~vg^?o)=Dj8T**sncP{=9eJ@(Y;Uo(QSE^_FX|E35TSi!Himp&q_&i z1;jodBW3edMRFQ{P0hMgm7@qzag@P2>+GDl?C5*+L$b`3+x*AxP%qlAr@b}EVvg9{ zWW~{~kV8*7m*NR%XkepVI!;_?ie`tJO1Jz>A}QUPzVRgeJz-e0xMRotbg4Xa{cD8- zRxmaP5Cne}@3*&|a~&BXBI4y@b926Cjh~RHXh&)zh%z}hs5*V&o3Q@HcStc}Yo((- zSDr*e;N<+z;57=%1T2NF%jXy$JR4?>@&3Fmj!9e)ZL=K|5Ad)P)nH9qZ;h!Q)!WWo z5s8E8Efa$(CuKXNVsV`!6IM}yQte7DLv{|27GhsLLK*_Ou4A0D>O282e<>*`k>s+n z-W?m+DPankz>PDPC1m;~5DrpZ>|{y7?ZS!P206Ajz(fYvBSFh3@A8Ty@)58dUBCCi z)qM`=Fh9W=r8>CF$WodReIyONke}(df|D~BM$A_%)u+6P)1uGdGrOBJnkhAY5%YG0 z4US1ve5fTdHbZ7umxaH7Oz;AU+3u=ZKj(ieN4|_>_7J(?Dp4RAH8_y#%bez}ks2Bp zSs*s*D~FYwOZMo)Qzr_CSS&Far37}MX;(?uaJtvp<8f;k-#lrV!QQ@s{i(dXURHgRR-RhKyV6ROfJ!;Fa`SCIf}}|Z;*Db? zPdyX+JBY_hYUeawW=pk8Yuwx-{v`h$+>c6RmxLfgYx7O~0#;i*d>YP2vjmhcPp@eu zYuM$}`bqhnU9U$iiCUTofs)UKmrVmrq}c^c0P}8z+T_2ot>7?d zQlb74_ZTjHr5RMsq3}w;0~05OY_q`0vdpMmPbPL7>DETwz<{63lfWFS%))~qs7Hef zIhqLgDG~#@w^ZR*=bZg- zj9FO`j2;U79&F|{=!6FI4q;|;TfSKbqcO-eDW9Z<(g=f*5P)7 z*~$Uv7*Xez3b(;Q*I@jJ+XqMsrDldU9~pa|L}(+KIS-ua!r%Y?#jUcC%$yX0(AC|) zDFc|p59SXa2^L`bJ+e-C`waM>{&Qs@ z1%nh6I+QN#T56Zvc*4q53 zSuS}uO^ZMUR*Jp*#)7Ei4+4XeX4oju=)OYbGMEZJ*AZ0CenwP4`leR?BaM>3tet?G z+M&)8HL`}67HUMdsF)vT@PlC!38=y7F}E6e2-~`?r~HwhAE)t;(#7pSmkR)p8Mxbn7tAHluSlLbId9w2z*PHHVyj8#`0_;IWY{hkjrRK)4keJJTl0v9>(S!$%SzJ zCPR2a_$`i(NFQn89fIGRp(1r^0`<3J(LKo7h=XTH%&dKnhKXzsK@0rQb|XfS?$?p% zXh+d)y{G76-E~0flcTlJ!Zfe5R^y!eNXFDIFdJ6cqais!#YpeUQd{NsjTXe|D~UY`YSR z9EP?Q$yR2fJ4F!olb^_xV)TeMKGcRHXpz_=I1-c}H-wZQ^9O@lmA@v9tE+fU)TqH8 zVC6T_?l(DfH5qHG%EuE_P9{dZo7q2DGfhh@Ls3L;b5iz0V5OZFf& zPHeCO?gz)S4*@Yd1h@qFWG(J@P4}1}qsC(@&;roaUEa1*p6?|=41ERUX2+EmEFoca zo&M~5xeA`r5zWgDi-22JUg1{28s_Ci|`4tI}s z>bsvMKmjPpRm12JcHftZD$#4+1}W}t9_*3A?HIY5h-(Q$)t^P0(kDKM0BUSsel!s( zBZ?U=2vtJZ?d=K=I(2k4J3KDIEi^U{?X6|P=(Oo!yb1X$)#UuC`_)GCNBWZejGIXgR>7yh`1p)t~>mwKrk6K^V~XV|6Q zuHiFmdE7#UryW7VGH$aX>YW)I{Q*JTNJch>|GLfRLOLP0UDQHh#Yu*kpB*E?Pswc8 zlpl0xj@=h2%075?5Bo?bn+8!HAjcqPQgL_ni``hD$*i^sT9?m}=M3zln-OJv^X_gT73J!W`{`y7iwilS?Dc7IU$A9O)V1`lh@pS~zEs5Zrje;#A-*Zz#Z{a&|Wznc~9 z12Q<$O8Oc33+qsw)6@OJnq37e6BAJxJQ?=}|9or$_BnW33X=PKHFGAN!DjKMkalyU zxVvt$tb7c8el(_7CRyfKjHtACxC06_FYmQjHW9}wJUS8GgEFN0TOhx z%*29xzU_hi*;1$R4%O4wWH|J{U70dro-RdG^2kv+$ta8IU9R8Ygk@&VBOLPAl+#~e zR}eaBfGVKt-U!0SNohJ8YiQe^NFaZ&@k*2GvSD7a+ME}(n%r@MQSdBztP7gq^_iyNBm}hiq`+Tsz<7YK&wm3PQzzS_ z@I~*wzrTCw1kAqrYY-r>_>LQnYQc_09#rAwVR>MHa`QL8DC%In-Tc`@lzLptz@JHi z?rw?Q`9{2z)z$U6a!NKfHfJ6IyyoWS!46OAJ@ST-(x&ES)1j@X=(@asC8Qi9Cok&z z>$8E=b&qbxVfo=IuNR4|yF%qw!m+WTzx8RvX}3NJPjdYzIMl&VXh3}@&-?c-AFg6Y zA5&Oh;m4~Ywt;!VUI^*$jH@#Pw_}T)T}$HHqf%JalhSewopKBe4Y@pqEHY4cnKDl= za{VXv_W4;LJ`l6R4Ap4gKv*rFZ2si&O{c@7j<@$ryD~(UWh|#s?0R?RjaOHFRw=_# zUzGY_$6S+*J`xg|$*GB@#pUB8;-ly8V0ntD5dC(tETs=sSH?C|`|D`$!*#T*@;0f6 z1UArGYr1jDkeK^c#%cjA{sgVtaVKeS1d7B@wb`s2TL@~$+7%%#tq`j27vlLA-zNQ; ztFG=f3Yq&Z1cd1K6>EdV>6bUFz5;C@Ir6`!rGD8MRDF<)jicd1^cpV{4s;!dJzXUS zY+n|W;j56IdJd2p&waW_JI=!Kx@qxF>6c-?O3vjD@5g$9u6IjBUvhRl>PdJ5rxzFf zZLBnWb{EE!GWWV(;~H(_6?vWlpnD%>QB+nrIhn7@ldN(3g?OXww7tRMY*Vfm z=Z;aA+i%Z3o&ODl7OaZk(~tzeG}@xbCQwb%ts{I3?Cj8Kb4K{_C9M9y%XdF&fM}|o zas7MqjXwVK;N<4*ewNd+T<6(o72QW5mYN4M*yM#lr_phh%RTbndXG_VuIH7EFSs*D zy&W?I6?J2rv$AhDiIKwJ2@J*%wb_b#`t`c%~ zoKlq}ES6H65GM0WuAvha_k&N&A1sbBHU}8^j$#e}DUgXZLDc}F}rx6T_0I=Be^NC zw%CAQ^uk?U<;3)GsRXNrZx9{2_x2v^S*6$JlD{D}H8lZA3;NjDSTuqt_npYr4ryI! z%l-Wl%hSRn=|V z1=echz5hXf+TDb5zEP!miib}yojM|1dTP`?U70>TDgQ|Su&J!(yuR_%Q(Idd?8Hl< zs-;z-au$KYSGJKrEBsqBUo{z4cn8YM#!ta9vDRjK%1L4U?!_r4v$QwEYwvyHpPHWT z747x7y-dqKmFsRlaLk*2k4W6k4a*?4PKVBIxJUqC@bsiozeh!la zkaljf_`6Duj00+|ulCUJFhg5gTNyYkAC!oQNIXk!ED(FgI6G=UdEEYN_t(_{&}t^I zgPJxTo)0FyiOR00j(l;qHfQ{nz*xj2!`W57AlJHr+;`tP|u_h1?8QpWZb zmMd(-HWhAsZLR$($0yXVxRu-^AK*1Ro1{^IsH>~vlExZ`#)HeymCI-AG2O%t`6YqT zOzk!77cC$VZQ^_Uwq@*k14e@~%{xxc#+I+_-vY(@PcCE2w2Ds-b-li;71jy|iobL; zDzJRBO~KkPO6=~I5tBGQvdZP+p=oZckaTosJSMt?VWcou z2#YqwPSeP5@`r=3`$>FI5E9YTl`UkpyQGHwZ5@r6aUQBRDu47PJWOS#aM+3fdOp0` zlTno(j0vpr5#iw(X4_Mok46%gwK||ufsB`BmM@D+67P-YbVAJsly%BJ1wJN4I3M0( zgl*Q;g9DdCT}a*@dp_^H%@*`&S-lZ+L(?}^ooz{;spHAuJ{ntcCnY7t#-fN;FHFvezj+q1I-^jCgWc6R~_C$DpsY*J5uufb}3 zR!z8c6gk=1)bQJ#)#sReygFlhT?_2 zq@MESYQYF+P1V5u#U;4EpLz5bY#uv#S#;I0`mOUsmv}6N5EZLZ zt|Orw%zD|&%;Yc7@0B6EBU(^st!IN6heAlO1E3nkO_;;C=wGSWKDBKDOT(W;RJ3f!L zIucCh&VSW`3fCi1gE0;L} zb?5+dp7_`27qzXp$H$J&E~@ulH4cZ4JhZW84#@BE3^sNSLTFZ7&36;KqxYI->S{?4 zBwXDt*h!fA`YRe^{zDc7uoLFlbGtZaZ}LU=N4~mfZ9e)zr+YsfD??x{i0yaH~e_-ZFh{CghwSavV=#Ro3@D z3keRV69fsFyIeN?+-4rG>1W9Kl6nawVt*^*A$+MlGS-PL7#|CqvTZ6Ji#+jqvRKF4 z+xr*x#!JC|8seW^vuf7awZNV4{Br1f*z#g48@_P^_YAs+3$>P*nGpg!WY|qsz19{L zu$>+KWTV3Q&6z!3EMhUirgx!XOkjSg=GDPJ#a`b&YfZtGN`$1dmMQG7<;frLsOxha zk(EXHZ6A(yv$I>jiN$^KI{cCH17g}Pmj2^ZbxO%kk&&2_XLlfKjNr(xDnk}LFJ z=uVzbi3FkParWZrg?h<&p;FrS7s_jae?F>5v42qtVeZPXEnX(Jln8^m$%*@`}(l zVI*7*j|?22+fXkIo4-1Gh&8YegO-|52-d%oT(7{%h1+TdM23xOVPUZ@5BZ?MM(o$- z`@^`i!?_ri^6t}nProxuG=4Wvv#rR#o}_{oe=8&KdEL>EGu(X*3%xvLb#~1jH}mZ5 zWrqpitmE1vVTW)#o`e`V z>A_lpNjdFyl>xn7PllfAHRUDy5GqOIXMS9VR8LD%HzHN8BN-LP!Iw?wdBocZrIAB-{E3wr&Mysw<`RXr+fX6 z&%07b6^^ul=j4cp_xb5jOGj(1q;N&CC-Xa2q_Z!JK2eR2eeac{Xy>hImw;RU!=+nU zB({^6$M8@`xUyQq=ACt(R)N_4sR2BgoTGH$XXL>O^go~;X+EJ@;okG?ui#Tp{qlvL z?+9D1;iS&4zn~eCw=C|gWq2h?J^jX%q33M#DkV2E(TzvD8d6v7c2)M~dm`@=h!3g& z7>$09&nnTcVHdFFMmH}52fa`}P)+ancsKQ~j^a2vuBsRr1;M@85$2&udBs&R^tz5T z$>0RYS1Trpm&u=8C_2^NzM02Hzmlm?EtckD;brJNC&&3Gz*p;d)!HH`obO~DczHC9 zrew=%VP!!t!dN>=kOB|hZxIfC(1xABo;hviunwH7AS-%*zOywHd=y;VcwCfqlH;dX z0a`Sh#@_QvbVs1`~wa(hT)m@$4v8x(B zwugp<h? z*CT^(WmdedsX@1w)FE8&#L17nN9S3c+l$tV_(YG#y!Q|+>3Re_sU(V($eXSH7mNgq1 zTY0p;w(pcUbe`spO&%7EBhVq>Qw}YRms0jv<5WHweos%lG-tc~9p20Mv?gWFJt0S) z_l~0!$hygPIE7_)w-b+#4szDZhs&{Gcg=kFu+G`TPF9>kyE?9TJ#AD(EnQkbE7rAa z>yv_dZ}Qu?Gt_=SG>WD|iNw-*%8j=bV%+eVU{QZ=+&VSlMMyZhNu+AsCKo|ul^q=q zxQRcs)21%OIr@3qE_|dHaR=H&^EO|v``*^*T1Pw8`fh0pU7wZl>-yij11^w!u_#B8 zcF4^r#kv#UQ^jAHGd^WNT(Q;otx&l+%9GD#6vpn}uWgYp`Kv`Yo;SbW=MY4^TkYHG z?qDf6iR*mY(LpLWG3RT~T0%%cy)!$}T~2QG!Xp5WKybgs;xN6*+-CKM7`+KEzps-K z)$k%^ZM*Ap(5dm^JgKL0;M}8>x@Vi!12-+BL8OjMmZ`tJLLNac5w@%=GVt-6JWTT6 z_lM<3rK&wY#xYosrg}9cT&<+iXYdZD-{{5Tf*?F^4hmjzSLcrTJ%~Fs3C;HlzTEyr zVcwIQb(+u0!lUlb?MyEH2#e%4IdV&($Bex(i05bZ&sX~Jcx8smb~*I-ar&V8U{v#g z!wPn9@7 z#5Qdr3ecc=qZ)^2NNwx;7JJ&4hufjmELg4q%Hv1?Rco@f?0ttP_)b0ZZt!jSAwKPZ z1X1GouuS%t22J?x_93)W%<}2A#6>0nZoH=y#Ep1ag2;KmL@dV73*|wIOK9hCH_ZU( zN*W$=Yq7?y74@)gnfPT}wI`_Vf%^l#HqR!xMB_o9UOix7>kcvYZ)Pc|Y2 zX!1-h?qRj_lrj+YQOjA@&W#;y8Vwr}DPNC)8ech+Q2|!LJs~~Ac3N0!)`;d~^^-3f zQ(#pf-sQ3CPSujvwVp%am#C_@e5FRMFoSwA$WQs!UC_QiPP{?KXKp(LfKyD6#Q)=g z)w|f0UpqGN?9paOaeM5es!4{K*?gAr?9qoD&6AUL|5SCaFD3p1dJwzg{79G!+1<|% zGG9wmFkiC8qCP?5=hROONgZ5K@F!Azm976VHWsK=|MG*Va6X<$him%63~I8LUjXOv zLDBkGlYS|RpM=lepMT=sei3c-F?8JeEXh_YBM4tp`b03c2}PY~4=(|$D@W?F>SV=( z%#vJM6U#?XP)~jeFC-_+VMGG?uzKBFT{tr1eSy-xHEHUmg6DUJllmUl0xRN-;#yIMXr;L5Pscu<5#*;9%AN)`h z0WRBT!x>tS0xix{jQ9gq0( z%f*22bw^b(+*$*mjagH<%H?^NYgs}U_YlugFO@xZI>ayfF8eOdGZFeZg@NCM*pf1h z!()W{wUCUpcA2R@8oy{PXC6vg5T`D#sITcs@c6Cdob{hC;%q;xMPV}?%R79ro)f$x zQN-J5&&;<3pS0KzA~^@TXCEx zApmMdi-;!ospy6fxaFnXb2tom_>SP)5q~*{x47tg4Jp(P z#2Rwg#rPvoqixZIZQ(ya{3~VQyq)ZZ2wYXQg^|P##Oy=RCLv*Wexq?he77puyeU-90$L-Q6`oR}<4g$cC!I9tYma8Qo zVqlSrA!0ye04!15+XeazK==xhp#pDr02nM$%p2psRPtBTAdRe_J4@7pP;6p<{x6qd zDKEG^D+T~RoanzuX#)T<|NIyjh)lPM0J-RxHwDBxE)w_r7)eZ!5&&F`D`E@(9Z=GE zRT32dmJh%g#O*`;6J)Av3&tj(6bA$4n~MC;z=-QybO5A0P>n=^F7OZQd3**(I0h~T zG}a^P`wt6hAD;)nAR?rM8DaPnu_m-TTnt>CIHO=s=N}fdx%93exj0lwddRhTk7&tJ_^;VXSVJcUng0TRCh6557P60^ zr~na$0ChXeX1cL?)a08)YsOvar< zRN)`)^Z0HWmjn=(4}fyT2;Ti;eQY+F4M4uV#imOG0mFZBFb=d3p8*hD2@nTBp>n)f zpb)*yMPG&=^C1AhWy6qRht4@5p%*H$KF#J4#=+3XTgrqpmZ%u-n2$z)ApG|3z-g`CbNpCg*SCQn~w_qkP(zqp$WC!aOKQJx}6CggAFS9 z^i~;dcKOCpYgbX=%9=EOgXSP9Wsb4%|Fo&mCbBTxAFCO0*!bZi`wAp! zueIC+F0rXaStK3eVNv}@6Xy%ZqT0=AK|;m^&(#EfWnMjV?xUWuzJz|xA9rN=4BHHq zs+N!1s%OQkhUO`DsLg1}e}ug4JT*^MN&FT{A)Wavzs&8`zGL4v5B@C_U2Af9>cGrz za)^xkd$g}S8wu9$C@D9XNw?e{++80O%keGee*Yzkoa3En^y!^pZrhUiYv3qVZQ9T6 zMU;GG($VF@S++95|3lzKua@|9G_}dAIzD^!X_6O^mnD#B2To zPw3_#+3?LPds6gOv8NUMc3JV8vQ-~_cQnX?OlU-rXG#> zU;Zovub`dpQup7T!H55y!bQ1{mF8V4N!1I&-#Ljjg(Qka-V~k6);xW%GN4$~?dj?7 z?ENR-!MuB|YTye%1P{R z6)LaDuivTkA8Z_nD#r02@!3@BTyvS2Uh)2Zw2C_Ys8lED&8VD)e$K!JwnI6A(au>8 zOIZAq|BCS?-$7Gn7K58PS<1+~@1KxRoL1(-{Y+PqxY^&{2%Z;Y52j1)V~lHJ_D$zi z_e$OUh2PiT?93nB`?*e^WsoJG#YY~|(j;&B2e$T(k9U45uO&X*vYaNUw*3ApJ$f1} za6Cinr=OXtZ{D8d2yHBFv@F{0&sVB=J+6gNk`f~QzSiF)8m+MJnmvF234Pjq+Ktlg zEM{hTo{-Zh#yk|jHiuDVA8*H+** zaB7%I89w59G_Ec3B}RlEu1*xYdN@Ks%(2-FH+{)jwqzUhS$jvF08LZlOs_G)YUOwE z4$*9pz=2`@SZ7Ua&F2>aYt=(|Cf!KDaB$m+?5%6rY1O%h;oKvekl2d(!sFhE6|8hd z90UQ00)>i(P7Gi$LX(g(2`cDe5|J^m2naEM*0=LRCjTU?Xz!R)1H-Co z;2#hYTUU?8#x5$aWaJVU_pPy~um8{94aE=k3cxxI?UpL0MCw`DUWW5-`mMVS^r|vm zo{}nmK?oBIfg}mCxHO9YVs?o^cy!8>30Im|8E?H){!$VvS!#BP&H3VE!&XVGGgf8n zv#iOt?qvCiKSRCOr>+q{FTG3A$R4IYe_P z)nhjf|Az;Y^2f~73&9#p65cx2Xr~9U`eu(Gge|G%{HYy`&*w!g1HBW0JPli_w-d-s zo9^8s`4T}Yq6Fo?F+Nl8v-`;Y6lRlKmk7T+1D#0grC~d?S?Wooe7lQHk&cyq+&A|2 zL>>)8=z>KUjQQp&{>>>Y+HgR-6RBo>&Ok;XCXVgwC1|1^)*~!#>uHl7X+(g{)bL#q zvAwYP#FYj2FBN`KQoDku2s!b`04ojqV-*33hA}Dt6m2>B3Y3!YY*YJT$0bLN=G4Uv zE4BFTas{pMqkEWBUP+yjAKTE(o{}>&i7<&Ua}A-7*D*8C8=I7mUZ))MtCezYTZ`dO zLe1Xa9*G5_f4go>e$pRG>UH{(m`*CQOs|z%g}=wC*hWsUcpHZBn}Nz7EDSX?`Qc!f z=^gI1Mbs6x&Ji*wnq#qhQUH3KB!h%o+}z0y*0_Pn;@J8(9_Fn(QiD-6htjd+QK^^HxM5FsqOXE?*fk9h2_jgNbl=bg4-y+xQ? zktwVe&X64_R<&|LgR@Z`Hi7EmcOu^g)MjKE#2|`fmLN1sC%r5_U=fdG2!7?5HRi9? zcO?EOoC`-mdekAgvy?Bos8+N#u_1!b6Vb@$#Z#EozpQXU02u6xVrZ^2@Q2uSAmV|5ck=w|=j=9zO zcsavUwDD$7{!V-WqxU88htt3wS`}(gy}Dmi+C`xt?hnOJZXyqqyzzRF9cgeH({`KY zwx2NVE{Le;SFUdSCli0(S{zsEJAQo362>8%CSdz5?GzSiaCS!_eU3_lftqzF!?i`Y zTa3wHchGJ(lR79bCg;ec!^jUC`196-`uMl>T!Yw=k-M|ICwrz&lTKD-=nI-DO~gy_ z!0yDO5Z`${{0)-I_km+0M%0&rcN3-V-eTs@%PB1 zw$8%U6|QKVirLC@SaXI?agk2Q+EJ~6M63IA)l%PHw~r|apSLQyx|r+E=?rQXU@)m$ z=#ysYcPCf2#T#jf14SEV33lzQ?rp*`kF4?VnJ?Oj4$Q;T^IXA9b-cvU zzgrDTJlH>w7|c^WBrdpj4Z0_Xl*G0nN(rgVCBG2qqJYF2DLgd#M&D0!?q6EdwOM+E zHYxs=YJ)esv{A!eNXRY;t9=EWZ%!^|sw6znnRk{OaLv(` zi-S}uW3N@d1%eH1a3MHR&xSjZq)?|k1D!+86;3yz)eI=3| zJf8m1gRh{zwmo%>MeUQQV7U3P@Vo&ZDmku4dri61WB7DJTKYcNw*rJT+q+1`lOwpS_~9wVsNf<^^I7K zNkcjgx1$%%j4W)cXvse8m7Y~TyI%UnC&yNYel$s{foh(;^JHS88?P2Wx8%B}8s3=~ zrcv_dZg67%Jk3u{-d9O@9Ty4bT_Rhi+ImUJ=d43SQ94Z+T3VG?IkA618brPyzi@zj zEXcDiz3|O;cUU&%lb%q<%GV*CoNo# z?pF1S-WOJ;wGpRrv4KEy9kiaPDvib$zU~X06<$}W1buq6kqyCWwc}Be>+N#Jh^s=J zb{^S&R|_SFxm*)xqSls|tQ{IP648!{Pj;=#7A*w$U)wJ@)d4EBKnQ?;l%#Y#%Apz0W#q*>ioS zM|4eT{W@VBdtiUd;YK6Bc$}|KBSx)SwY&Y>Mp#<9zCPeYA!upT{4yZB*gnLpDGIvq z(q5%(z6zB~SQVwNXXX?k8nl0-k|J8up=?jD`SWxQntaV`iZ*&-8R}WOlB`hJCADB# zRR?vW+)#-0644v~hg+QzJwe)ZP@Cvre~Y1$FU> z-O6pGD*s`VVL6ba5asn1U*{vPRh;b^PElPe$EjUD<>^Et0=GT zd}lHP)y>;dH`KkEt0@sLE%bK8KAu#K51l66vh|rjN^Po6MoxY&2>VxsckPcFsT*ui zF723={Me+~GWVf)L+^|VvP3FUda$UQgnwZR--CdkpkH~Zv|g?LndQ(H9!V)yy0$ZQJfHcZ!;`?iR}%5&1bgA6v;%G zghjYwQDkdH{;eJ#zN+!;X-iQ{`Hd;>%-8koTTm=}v5N71KVNW9Ib7CgT`9=vLNK5= zzI*U1*c9AR%qm6Mpc)%dnlPU)r~(l2lEID#hUyd1CHRTkp?tSTE;AFzQj zeBk4ZBrXd{S)a_!F{j3dYbi0`B)^iM1fQ1s$eJ_FAOc6x10x&`B`j&MCr0x)uz}w* zVR!7~^_}iw&&`^h^M+q)VDH{$^KMm#xe<%gx(Xhvo_A;UrujNL?JSK{k@!$$r#cEU z0OOfjV*9u)lgM1>d&IeVTb1Y5Pm`LC%)0w@S+TI8mZLx158Kt#r7gPSF$b!l*bXNiUIWQ7VB8gYba z^Ojp&UaK@#!5<=+QtjU{Fj}zj2$bH7D57%gTjR)H>xS8ecXfbX84jK>WJ-~CYEN4H zSkhq<*vgWW2p14-{y}F>nnsN$!voH%l)Q%`8VaUc$iu49gg2!w05LH#(^gXr{8+>@ zvNgw>P|nx+;}VNf;0}g%pOp=#?N9v!XSU#*uDzSQ4mKU^(YX`v8I}II%&n@GLYJI4A>=K0&INQcwt8{W@-@MyrORX$F0O*)yAK0Fpj>@uu% zxy>dM-gS;fY}D;rT&5j|-#uf(U#ID3Ce*hwti&iSFd+PFt%_3l0iH+Y?6_xI(%?ty z1mi0}^*puOc76{1^yPqiqP5v)BYL~-9PdOsAmpyq?Ol#@PyIM2GR+OCFEe+#h*o5KJ`d7O}7X1 z2PJ5|_lZYL%4Mf{5n7zBNfQ1d+wwr!eOGqOrzbY6x#WTHKwzh+pFQFKOBq^+{Xxc* zn69H%6$N*~z-;`odMH>Y-T1Qzf1|OOE zy7;w7Xrxmp_$;qh!mq5ln=eVfZ1f+MRy^`oT3Ot16B#G+QpC?$kfOOe3V)Ivs#T5K zWuNl(Lz`cGk4&S$qqc&B*G&>Gj+G#<+EIco-_mHa!(b8K%*O5trT#VLz#ChZG~&}` zyfX7Wz5v6GrXcdY3aeZRORRbw4eAFP-#ud6YwPA*>0y%*{s*pCU^TJTP3{$FL2P&h zj(zN!+fxT_6L#Gcjc)Q%3*?-08ztKvY*3$5OEU1yK+Uv?vM;|OLerzxp*9vvqKeX% z26h-$7~Isqz^gj@MM*J!XPGI`pAKl1F*JTYWWbb=jlsQn1*Beq7v`p0-hFBEys%NL zMCk-v^RApmj>pd^RWh;|tqVokOIqbi7R{Q4!&XQ_{iY7(qmv~%*qjszt<=LGMv|<* zPg|%#HRPON1lss=dl6SBn6BXcE^}jC3csd@E^#ik+*{CIJYH}f4%Flae~3`gLt|LA zdRQQJk7B1LNFCAkf#I`EksNWjH{$1VexNkJ*S&u%q*FIehA#A#bCmCPu}ghPBF z@N=PFsbBtkToX~hh&qOjeQ(7likZL#C?-KYRLhTRfWCMkX%kKOfcDVxTHIdEHKEgE z&9)})hylBS+PsV7@k+w*&bh%y>n{5xxah*?r3*U5po+A*{GZ${j;Gq~UYX;3eZvw% zvqE<4i^pm!+^ZczEqOp(P7?VL_hM3|M(eWd*63)n z6aMq)7!CvCORQP-ZGpWA$v2^=5ELhii@fDo%z43l_ttGVV2B zg1^CwcuL7Jp{7Kx7U~dsbtMnqE7g6ucg7+lfpjsZS@~|Ives*=UDwIVwu{BsQ)eJ5 zSm)97&39QkvTcRU{H1@F;iguWJLy9!O`VSZZY zw#=PM1=_@k%}b{`tTS1r(^kyj)6zwiSt_j+M2~njr11;P{fmnsxL-E)RAc=!OTz|r zziCftw=;sQjnt&Bm6fXo7JqLZJ*^zYYcQ#}YWB(@ehnSbySN{@Gv{dTi=jck${XVw zCndB?v`KISYnhP7=%*b~VLdL;M?qG1F1}WN?HQ4KhWoie?rq@$RjgtIJ+i7srI1~~5lC|ZipC{dDpD~#X zsQm{m`DO^{NhOveOFi>&AC$I+NdSH72iR#nV-y;Cdd|o=QyFu&k8j6lZLfsw&o9f; zeLPN+B7HVrr<9KxG?Jwm*)Ve%f}t|niga(%=zX{acrp%dg5ZajjJ7M{d+^z2oD8a^ zSp;fU9>a+dH#N_W7_aYE`$*QBzP74gyWQAXu&9%$yZW7-F?hm|1-r{x>Qn0`)g`xC zFg5PHPg}kFL7m#>Qp-NpmO;oln!KtC)6AD-yNS~Sk4In6%`Ilps5k%ErM8l2DPJe_ za)5ARQ0t_-p%~r~i2}PY9z%Yq(_dAG$6r_PEM|;i(}ojKWZd`2etu@#-7iIH4!XIM zx>BM*DN3V|-csE>8JOgJ7w#dW#&o}b(P9w|I_*O3FDdg$= zUUl7b;W={ceF*u;E3nO3Y4fB?|3qn3zvTTX`CjLj%g@yX_}0e&vel5K@6HaM8)!i{ z;j4%onQ2;sJqBz&x^^q7HYUYYSfRt?2E@VcmxBulC3cR9c5cc|`6^@C7>tWIfc;Y${}dm>EC3CmHRTDd1;AKtN! zU%1g)@%Svexu?rgQujS_-EyS!bGvvp(tM1pRP%VmsN?3ZyVhjW-(Wa_Rbw0!A2Wmt zo*?{`tDs9nq1z^*4Qi@!~^E(k>`CB%yiF%O^zKAean}dHvCky? zzO>qUv1)eAjK|+n8k6Dk^{Xxk&zj?DV;cRS10l_e>@#=jmWz+AVOq>1JKeZV+O}=S zl!jjs+Kk0_Jh|UUK6?~{#*K=nnpKn=@0(^`CJd7I?tN+>kmz24WvtePC*s#$-~%$~ zudfB*5FiLJ@V`GNfKZ45MnNJ5J7fU`y;#4Tt_%4s-I~jPKi={aAM(G`>1lm~Spyt@#0*Zsy6toPUYN`|o%+)5Hw_4FH-LAH10_=F+#_u8@ESsOlR z1uw6_Z7&h7^~s%XaD zxTxV_bzS9DlB?*v2+UG02d*x$#L+2|nT7$dmioy^OOw^zL@M9LKVk*zy)(HT zXaZ-BgdH~2DtFt)4>b)H`5oWc?`${$Vx&VshPjcwc{d|~mxf%22O~`dLwT7C1Gxyb z-3u0UGl*GUa;o_&84Na`aV(MKI_sM{8FFdPHzLT4?Qemy-~xwF{s^$q7Q~dl<{}c# zP+=)yt9Crcd4F^5c%h`j7z@W8kbq9l2=>^U)N;8vke&APKbU#Tp=irlfBisFuc}E` zgOgJQZTaYS*Ohd&ec|p?`m^=h#=tOP^ds`Y%Al!I339D$XQtryBe^J!f_Jq-UWAn# zS=OgX-aF6>M-J241mAK+k;9VpX^6kTb;@1}C|&4py)$2U*!Y<#LEt+{B_b&FNh?5I z;a-f*gZK#crYH!bR2oYG1Dr0%;^`IO{W>0a7zgPOS=(vap2sU*BN?-HQGbpVqIYqO zT&DP$G$&)b1HE+9LA9Yd_9UJr5ObC+)^77kG9E*{5y~q34l#KlbSM-hH<;!U2Z3Zt`H6A0(P&dl5Ow+S$YK?8~q=iS+G zyqF8~#jnE>|FcM>9u-GX@|rP9 z*JNwo2QgX&#ZxgfqDHVhcv`Bc*o%qM;K?gBdt?L*UpHqrVloZA=Qcp|h(-iZ z!$2>2kUPx#n0lx%q7-4`**WHMrOV~*Ff4JN91=8wD-h=4mc_ew zPh_a=m38Hcs$YR7Swvh1gXh&BRN`#yXQ&QiE+kgLQD5mO7cUZ^ht)nZYI@>piFzZ78F0Lb&?%U>u! zN*BZ~G6R>5iRZ<^ zhkfN~xJGD*jECAqlUCz}CiEuG40vJvP^4XLQAHrIMMViUDZx0##!!9D;0-#CWO5h* zy%iZWcZ|A{-x*Y*RH{%bfjU>%=x@6RhVsd_E6U0K(_}7v5LsR4dbDh#r*AegCqr-k zR^aRm_r;XR1A_JWU?em$;e9~oSSHTa;zSHO7&KkACd@?~6Gnm_yO9f-ZA0!c3taFN zkZ+BvChl$OtXvg2?r$pCN94lg(Lj#nnVQE=LE*v4pC9yVC~4v#N>GHLEh_VFyPR1C zY|;)gzGF`i=Ghc^FZ*rODRBXa;wJU6`01Ac`5n#;wZWi4Az10)t_=L1S_gp|@uvQ^ zwmfnvi;iBQIK0varf)bFc1Bei5-+Q6C!PLcFolzulWZ{8WVv|uSaKiZM=WiQXh*w*hgB1mf}1n>Ew$K?rem;(qy}+6278HsHrGI zw{vcTm95C$zH!88Tuwqv_@wI6XGEbqhhAv;V;EjM=rUBgOxdO6E{Ypi;@ zczyLmm$gTC8Nyz@Xd3ze3}Q)~0($Ks#OK5G->urv^@q7(CsXTf9ou}`lKSbzAAiDh z%K5TzesUA%>Qn5hM~4BtsP^@`ojh1BiS<5Wrs-fDF880H`nkm^fLS1X-Nm-|gG=#(&ck zBmxust6l(ug&+}!0RF+gy|u7pf3SXn5WW(BAPR93L|}iwaS*;R5dQ)T|AJZm>4C`n z|3%M%!2rnrD#ZO4<^aU~7hXq!`k%f85$c~F#9KW7dM1ne4@%-KRPld3OAy7t{82^) z{=^Ih5CP(3V1ILw#aWPH$x#2Xl6VUP0u1;In)z3e1dyS^0)RLS@ZXpr{u>?)#DBVf zWeNg(VaeXI@con8A1Sf`;QPPBH~vb&|6g;|w^@}S`X`H+H@*ZB@P9#XbsW)Oun=(A z|G@;I#C9PQ>)HDH#nfE<2SkEA0<&3Ls!?yGv^91;GN1e7&6XVH%@hg>{D0co5i`mw z_~tMO=+;bK*!o@m2V;WVN#>b&>OLW?(Z-h7`>voV_}OaQ)nCD=+AAsszVj&Q%^?jk z@K#cSgTIxOe~`HU6qO2kc7CxrHCKA@o6}g>5X1?{e{$sh*Ig}yxD$@w>Fd2&Klk$xj|Q1Ti@a2<*6+?MyX~tO5oR%#|dFM@X$cdnuA}_ zaJeLg)O^EVCtQEHArLV`){f$MGRXU=T zPYiva38g_n!v(ztk{jr=wvGW@_ z$q$=rT^+pNx4&+skny*sgIH${REwtEh4p08e!Y}76lU4pS~vTD&UL=2EYp*6C~?1mD3v|T#FSS_oyrQ$>&J-Lng1riF&1y$8Usv?<=W4f zENRD`y-Q8uRvV9kna&ve&WFcObjJfIrX5cvtj)r)Vawy)Hy$6BA<{VCA@Nug*g}!> zx669W%6xwXK5jxWLM00IZD3j+`-Ok;`|Z%}TjdNi09J5gI{v}!G6={WyRSf?IL>q~ z&-x4`LEvDDVXUSb6?unS^5+Pp;SG_&-FtEWO%bwP5SJEZx;ZRW__iqYH%0@RY>8=4 zLsTcUBq-@xEs$YBXXl2rOp~HHru287zT8i-_>6)3!@6K}Rpc4PtbU>&31Q=N*RSi< zE~;vJI>Gx4`}}P8E-em_ZSj*c`xuj~tbGR^89;#xogZuQMD*e;q?bpGETaW+9P4o3 zvc6)1c&efBRY9h}{SKJuuje}kH{&3}QbtPUG6*D*MXZzDYnvW87G4%lYh{91mH>`( z_{i@{s%6b4pDw$XD;dNsBRfwSZ9axH$ETD2NTG&G5AT(ZuWOC^{xy^97ZSY>Z6c)# zKHBu=S4^u&3M8C%=mFfMvSwKqBlQ###EcxTv7!oL?1rt;0M0?VI-SBWVr*%xy=1-6Bq7ed!N#D^KD>-_02 z*!(Sp2n8HO=mAX4R-CiQBkwR<9s0Vo!W8=+io+!P#lS)pJIf0j!bpWVb-7?g9x;O# z3JA|ZVwylK39JMZl!f(MT?bfqS2ktg1Q4JdUy);2P+^(g--J3fx$#L?bBjkR5P`s9-!`sE^r>BTeD01oudd0zH1e z;YGi|AJd0(iPZM!4^ovA^3+(`kJU@Sb-JFn(G*D%zgmEDLTPx&x(%|M@!h+biL}=? z>Cr=tx&;i~wB=q%3W-RVU_0LxQ!?op5Sh!Q5WfP|^x6I)aGmV{3{>diaG2n`KuB@* z9Fp6bz?(q0)SO$(D!$lAdQF#8T}@ffF)b_Nv4`tR*5BUrw+lhNn>?W$k!{L_tD zIBFermfwI+=Obq=y)S1$#HYeu6q8BZ_?Ng#UUWx4sCxBWH_1SCqiLUDe`wLOh{;eG#{(H z=*qjVE1HD~o5?9K7^~DE;G)Yr2eKL_7P)?G-`kwAASYvh>3zH5tWbnwm!42HL9far zWMcc|^L|dXR_IsVa}Nhi#AVOh>l%zUOETUY8JUV9tG8szMef%%ujj&M+IdfU$kMI zG_14`GOse%{i%{GiR(rIzZ0}-ICSsTD7!0b2BS+7So725kRM{}C zn^U&nZx;HpFBkZ0`CY<8B389^q^0acopINZMh@32BOT~g@OIcCriMx>gS!FH9vYM) z_lY_HA9CTXv>O%ftC&#>DT>r?fL6|kYjHk@7d;gi z;Yx<=j-6?QX;S-%)J!`eb7N@Sci8|Oot}?T?>bQh2jS15HzDDQuw`8eG=7poW4I=K z^Xu!8_mF4SMQAO;;h@UH#7_P21!{#g-L;Q9D+!f+EJP;;vp0>@d)#W~!w~cDAcX*;t zXSD{tuRs@;%ds_qr{k%c6M{NVecMnQHeKva6GsidotXS81NeL&hVJu{!=Trsyz@^1 zKu|RO-qYUC0&b!g%4j#{co;fm77D`6mesunZoZQgLL@*daK(1KpZY{tpnjQs&cvJ} zTVGG?o1Z`Ta%LydHsgp6*Nmy-rt_dC{^xR{0y?$`_$1fmNE8l8+elGgdQJ;(#_lE9 zmIw$07$Qj67@10b%@t(_c6B;+NJI($W~?@)8Hk$Eo1nI%1iN2rzaK5Rw%#98o}N>n zSBsvX=jF8=0R}OPonT+E!T7OpL-OOo#l=*E;3?Z^m8$ zH(}Ge=xg4*5{(7e5hUxdjHMNl(ABWnh#-!-$gxXJqzcZ(o5KV((zu9-qa8{`X3+#~ zsMui;APGx^9O26!@eKGPBfxydb@h|fL^Ii7q&S|2E#V+v7Nq0S{E8ft9L4E8ec;_V z8qOuwexXy`n4=0g%f~UpmHL3nsd~h8w8Zd>w}U}EWeCuT`c)W6W8^Px)CnSjLkhR+ zS$_pIwoWbTye=P|+ZN#6&7du<=2s9;N0FQRPh=3YANCh$R|-u}kaT&RkIf;Z$OLr# z0YmUCbknvv<}0G;J~DDtKPp&qUsQ=|FbO{a3d228hKk-8aWT-E0q$|AMtFJ*v`*-w zc{f|znQq>319>NnlH-q7tX(Fzuu(%^CTrKB{1^xg?W0q&gD&T(*)%Oc(9W$UvUp}# z-n7HP~fsBB{Z>oonI=Ui()QW{Wt}-4{xf^HiwvfAhDoX0XDzXE3g$S4F3t_ZyPEiJ};b;-yvoG zd8%|~rqhM*!6SSa+Tnb{NsD0r;drn&NK^RC;A{iK&F?40X6vsM$t0m6=#n&MHZ5@q z5lA&t;aHbg<`G^Cuz(h+3<{8j%qan~pGq z&8&^s!agd8#Ntada~wsc!|oH0$=CSV76QNH%D#}B2=Lk@G1;o>dwZzS&f1EvROx)G zIL2mfzB?~eELn8y8|xWwuPlZVlAPlRSp-V$f{@m|B#HVU`J4ax$M*K0EJgqz3k6Wk zpb`ZOH;lC*p*VQ#*l~}_uZYk6N{<=gN!zVa##X7dxnl(Ls+%weig6beTi*|aE~5RY zu;bf%$H`c(iWh0MJ}{74+tZdMbu|r?(Xwp7_zw$M;;_7c6!WiT0Xs$kYJS%*xeNnC|uLRFf24196_ zn(@5B+N{%;dwAW}8x-{5?- z3n&+^slMl>s)Vdpzw4;TC!1=4io0EAwrtUH05`&`V?Cc7$uMfg<}H2HU)m8zUJy|T zB!wmL(_SL@z4#6@y_){(^0_)(5PP_N2m%CTmW({HxWqO=DGU*^AOwT3KVm2+^n;bV z1V$)Xb_@hq?%fYpD>c@pT8!rAf$#HBWG57`#s1=3YO%Vf#oJ^eWExV=d*$cs))jzh z|3clu*Uix83(h&C?5=qcG-70z_Ml8_2mfJ4O{)akYTEAOQVgp=1bB(>m;`lSJAx_c zwu#NcG9X45ci$gla*l;L4}4L@9giZ88c4*hk6&CH3XA()9ua93t@(`R^;IsHY#V}; z4La4VmIQ^_Rttn&D%1WWupSDQJWxIdB8y4teU1fL=p>R74q#k@-UpXQIvV?4;1xhK zrQZJFT-{4~S^^DelCZf80>f<*0Q1EUodvC;J^AUg65$VlMbM9&fqVf>KFDl@vI`-w z6EcjWiU2La-8fXRe5>~|gg6mug2Ym=8K8564dXBYFo6LDak9YTT?tFnpa^r?-7NPo z5JdcBv=&RG$ElPqCi3Kl+WLC^O;S_k+I4a^H1eGPc=GC(3=tS?_6$vzS#;`KE@Lj8 z{@e-+6t9}%tda@%tO|<^m}0&Cn`M5_sg+s6GAShgfO3ok1oWwcMH0Ju18=P|ltjT0 zp13dcs9>lPWUoLc7>EuK+{HxXuu}AeNXCRiB-Whf?q;Hjc^_PuXc)VD@sR@6{~Ih9 zlmyH$Sw@1y~*1vNejkJHaiuyW7Iu-QC>@?(Pr> z?(Xgc2<{RbLU4Bo_LIGD&Q10^_rCX^?=@d{tzN(wv#M)W&#vy-6}XOztAgCd*YBCM zT*f2hM>ruMu;DOTo_ivy&a9J*Zx;8Xs9Rj(9!j}GME?#CtMWTiA&TiuB^j>gt9UBo z77y$w-F8B^U-I?zb0<$8YZ9<*z%G>oyvYDg;Siv}$u+Xx>aj*`Xqserm!g#@h937!JDYsmx2XG;Qf~tpi>^+u zy0sS5LYYt73Zao?C>P1mq9v8KpSSNv#pJdbFg1R#Swvd)+3kL1^D6NLR!|++f3l$XZRM zjjf<8uf*$U>uv6|-~Q=I#jB+;0Zt&tuii-;hi&OJc3$qJMGYfNz^UN$P zObd(5j0{Zdo@Ta&mKFvkCbtuVV`IZJV-tNN6CE>)@DbCo8M23&tM?h z-QC+ioL`(@`kw7y<6H0T9DY07I^2F)-`MV)^jh>ow9S3N=gZ0>@CNY)6$b6(3H(e}OJ2xru^1J1uxWzr~sWSzheGN8TO>X?tGi2mVRBT)<9E^9U z5aHqH(a?wy(dUtYU}8kZ31X~?Vhyu{*Y$%k_2gqYi3`E?n=`Ff%B|Lf(p&j>~&VY5Q|6``1A&$KP942$^?KS$HARQdNX zPIfjvw{x=H%pZ=*IUg8pDSCpGj9mmrTA-)`0r9= z5f_@9o9|p}LqkK`TlC1u`F)NJeNGKz<>V$OU$yo0Hu9c#cOlMSwSIh}L<7pPlvhcb zz0(`mA@|~~3yr~2gi(Y7wmFMRuABX!Y=$X8tAdV3{qD1Js*MI#VDvL5hI7`Z7J`6> zSgqOu;;v1hS*A~aQq3WU;j!##n1~Y$Pu3U{S zO)MQNX421M0Ya8YvNlj#zqH}wDcmqx#KxG%qYgVGZo;K)nm%Y-^{+K%Va`~xv!Qw} zAGa7hj4DfzeBo>tnE7(b{-8|7`+=u|r_en~tGk@lPF2no>q#AxGcS8sLxz8o^K>7& ziWf<#(^JLqgR|oK9mVA!L~9j3)whT6Pa!EjDH^T`5?yiv9FqE-uW6qo9637n3!Je* z^m{l~*E~MCBM&#NT}f^!Nru;%T9)Y!P^3QbX{ia$SdA9p0je+PqsU(MW{W8nGQZ}1 zPB3UI???O!IGP`W?ar7QkjLDvNIu)%RfnWKR|DS2XrCzZ{qY@df;RYk{$ZD;QrU_t z)Xc1KCbh=LOOqQL_j2V*a zP*&*%NpbnFgB08suvN@1fm?)ok`#cqs&@T9`X$<+d4f7yhO!TAE;G}ZhZ-C1&&_TL zIv}(_syVhcF~M=H>Zz8^VjPj*UcB-4I8olNg{1UWmsOlabuKFMtD(fuZlz0D<7-#{st$cc1|91Yj!_Ii|&ttCxI;pkwLz-Qh98VQcv@hx6>tNU@u+! zorfrkMzFKXnTf9R!9EC2Yn@)4aag-EF;WiKg=Z0cL#WsM_)^l5<)UzcXfi#H7C@n? zDl!qNCRoaj(VL+qXyDJh?{s|-8+Qdyuk6-m`r^DEWf&5D_KAI=@K)Y2{7S~A4Lvz3 z)0$`hdIra5A){u=i7CgMJ7+Y3o&I8EPp^=rr#HtP2Wn3^qa0E!njPLZ!ZUDkdhd%r zxs!pf94A{9%F{@4VvBS1vLaDHz@V|nc7FZFka87UQ2EV^wJU$Rn+(5fAX{mM&~nRLMk3D+7}(=D*BgUf9W%@#nSW1Pq`$qJD8g z&Zs*nu>uO@U@B>~YLPj)jUnFDg2%B&t#Y*eq>XY12cZT1BMqAABXAY*K$nY>#kJ^% zTBD|tX5!eUs3>PBAiNPkWOx0^M$!~mcq33BgZO?6xZiSkS7Bm_x;%i}RAsz1AlnnE%o(UK2vbvtSQV6oBV&@ZuW1et~lQ*?Ee+t^HA`-?xE+l^= zzgi}&JC~ox1ZQKI{2=sIqFAHq%<@F~5!GbVP#8~?T5Tj@s3$n~kg5D(T>)R8MczY_ zbpGj5(q(5^cK^-Lca0Bx0e1_jJjzk~`;HAJxfRcqOhqLsvE>PdTeO3I6GL6%jiHtB z)RyHnkl=j1Ekp79*@>DFp%1oAy8I&EoLsgimBm)mY~5TXUo&5b=QmB0yD{gKrx#q- zgQ_%{bV-a*&#OhxEfH_UQD>glE<9ULw45LVv!ZHX8AKp^0?znaM$88E;j=dX$R$JlBse!dIEqSA$kZG!SuF;ZTSR>j!>$NBn&G32g3h zYkOA$gGSz8vlq|gI>g5iXjZRO zOoco)&lQ0L9lt*gud+e+*iGAwK`nD|@pJwj2sPrn=s_*#a9?yrI;-Y6RRw_=8OmLX zq`ZpDwNoSu8s-t~Nq{(?17vlF+gb-*n`XQI^UE_hO>vi0iCOrf=v^M1>tR`CkEPe^ z;6X6#*Ct;_Tjj45MTcZq-h>_x95_4FyBpUbv4$@mu=uyuAN+kSB2q(}cfTI840Kxc z7xN0`FDQ?pr$z}Ksq0_#QMC;SO{79N!oVb#z3}a_PZ_=Td3468SBg@y(~6=91wTYI zy6rWl;70mi_M#};RDUSyvQ#_WIFG-lLiWUhl&;zDj}^ZluigdMWUx45F>DU$aLkQi z?oOXvIadD`rS{LvAmmlGv zXVnXO+arAjvp2}=IJnRWI8-q2hEv)B4t{J>~ z?PKw19=v4thlz9dG`suWLD{vz$NZc9U8&moMJuij>!@HA$vdQ!u#xYlVk)65dRrJy z0tIhV1!4`BzLeGEedg^)D2nrcSncWO3wnFI`_2a`;(D*!TD==!@;-Pb>PDK|?LGB7 zP3f`S*ioc1X=xJ=GECN9;S}kmlEHvbV&Qd}BvOa@q>s`;w?W7|rk=PtiVLKWv@GPv zZTQXK?p_cf0{Jrl8rLuDxlP(NOmkTD*iE^u`Om{kpPt%z!nR8UAp34Y#EaF*9X z1Q52{QCRsrbus`K<4h6VRyko6G`7Yu{3AkwS9hbRMP2)S(I=gWlHTRQ#YcZ4W1$y} z8z&AREiVOh9ylE(lA9toK(zvyt|Y$rJCf{kXk{gaee)v{Fak!((Wg3Bd9 zSR12+)1S*Wmt~gy(8@PV7i~<@{`y7%ToU4LJO26v+@Byhra|B)-kX|8oQDaNnV;=wUMRRj zlrI&cs!vIg&#zoVb*|6e(?SFZQAmrsvj1fgBI_1tv5mEesd&-%XN*;o(Z7sI%!(8)FvJ#$%r z(yrgs%nUM}CxS1ThN-S~I|DqL&Fv5*bw{GW@$tcsRhF#0RJ0tvuS9!Eid#mIYtNRN zv(8XXbN}b6l&H9xeS9Nw$jW&`921kBI@vgT#D+Hm-V`Rj$%C+$1uHyn~zB4V}X zY|5~J>6j*^2q7Gsi>A0mCO z!8j9FP{NQajhrJxeK+c-@%oHSlKUm|iSoU+V&(%t?}}li<&WD{x-Tn?fgKxG8ypF5 zBxl0-jjdfZm2~6S+$wd1n4TWK73=gFCtVXUHNyzUG};m~M{-~6GO-wsP8 z8qF4D1Z>|o0 zyEsfg%Y^it@rMG1J2=pIUb6&$b$MK2V@hyALH&|}OmT*!I!7VxXq0ae22O^Ae1}Pa z@e!}2)Yp+8nW>wXKhy3*eKOzpc7>QuKXgB0_}4c86zZiUqv8f-QhExS$Hcja?U*@py8x@_p2atq%;yX5N!PRy_(blks=DMHz zaavfjH862-P@gznsM{Om7Du;wlh)cb%ic)9?>g>>Q;v&iVT94F=if@^I$oZ;KMR>h zP$fNgo-mLQkv!n96ulxC;vMQxQmVvLS8cyxlJz-<(0IDbO9G%Zz;O+mpaIrPw^ z#@W+`HvnW!#+17|)1)wX{mTWf^7NYG&L+Uze2$UEV>4>$+2pv?MU(?Mhby=oDYejP zUTqkkD-n$^PCTe$1pHQxa1lm_Ra7Pi;IxDi=4&tVA&`Hilcq=RYM%3h{6)A4QxJtW zgMViCq#ElOTL_{8G-Cdu*J13@>q-SHis59to^-y3M1;8fIsMvhP9DQk$m1P{ z?P!WJ4hj;I)uBSO*v`c0L*G^YumUd;)kQ5^e9JD@nz+2N~t^v&<2?w5DrRTS^){Xe4UQQeS_-9W~N#-ORtncyhc3jtx}~q z?jCEXQBScU#Xm%qkl)*ZKM?$x6gR`qo#lT^rZ=ep0sYLL8`;@9o7g(jx!YKuXdgMQ zuwlG(%k>(Vxut(Bbf0%Iav}X<%Oug3x$JdNjQ|Khd55A8JXH5=m2FC3oox&pP*8#+ zB9TJ;Mb@<7T-y(E57!$=gu%|YC6?p_K`{iXYw9GV&>` zi0IOQp74bwBn^kJSKHgF52rqBMt5H+!V8R{-xI4p?xtmf1iHUft=f7`>QND8kRWgQ zwA5iK_WLE84vf~qUt$f&rmk}uGk=FkHlg3eQ6 zKlFLbFpn=;FQm1?3wOX)&jbPZ8w(8pQAdL!4h1;W0B@)EF0VN*<`lu6LeJXDwYj98$!Gk)C*HV&aIfQN=x33BdR?&r>Dhd`f zw2YInQeBxA2HJd_dEcB$#zgMHMYoU}CtZsLM$7?A*da$Kq6nThSJ^xz)Otu#CziOh ztYT^4KZP9SI7kuF(1a}%l@<ZfEuxFq$tzJyMV%y?#(ns3_2L*v$qN9esa#Tguxl;YpxaLF1!z z!jn}}(P`nT>2b?fIdK{q3(p1|WIuZuVP9Zq179sRWknsO=w#d|#{NEmI5aZG9#{s8r+;_amT;wkBCe=eaErj9{4W9k6E)G zfE-0^j>&5(k6ydybC4Vl1rv}&GQ_lv4fEY~$d;XEyVY5+Q4Mey z{hX9|fjRm}W(Num9ZAM8BTBn`+Qb7G*kLMoxq-_HHgXgcJmGkFjsYub6(dTnz++YN z3#FCDQB@7nGhL)X1qh3z^Ua$h^@y2$+k7{P~0)u8;n-zDf` zjU4fUf%NeZpJ$~SDLnNoaB)gxZxAlL($*C2N!6x}7j z^1BBCps_vCgjOV5x=eFaix1p1=RwD9BzcEL;d_vf$|Z`YZQpyV(E2{dZhlyBduC{z zWR|brDdq|!8ZIS zaj<8FIDRZ>OLic9{RhCnI~R{h4rqK~2Aj3}`tO_0F+HJ(Q}}u~U?K$<2^yQ{bWEMf zSUBhz;Jd&#n^=t5iX{WRFu*oRz3DP~pC(cV3Ar$0xugt~J9iH|&c+?qH}$ZLX^-Pz z&Tz7jzlhs6v3l`A+wzUJy52v}St!;jQE65?oj|ignx$>tTA*~e7v*ocv`2>WUP5ww zWErRE1MY8?XQh`b#DbMnf%&M3&w%b?*iY)`NV;9!F2Z>sdx2}`j<;eF-Be>}>y*y1 zR<*h~giOHkBs(9iL3TeO`!&9lWCL_vLUiYprOYLf5r}X#SJoT3`iqJSa?@PSErU>-;>bb2kk5ektAfTDHn&r$yM8v(dtv~}2Ms|3QU*{6k|0=w z805kr-7$jB2V_Y)XP6H!o%)yEmaqhN&N5khry{dh1|G(`V3(60rMn~nz}sZV!GZ^t z(nS4*M+z*okFkQdpc06M7$iaiGYX&dCRAgU!wqY7u}FdWz9Cwz&gJzvcC8Z0OdQOh zDWc%uI3-tweKZxK@FY#6cOSX&i0+NJij=8qy>PcK!iwL_ZHbf4E3`|I!Dji6Z73`{ zjimt9H6$TYd>LeI*}F-g6t=f#uNGWZ2vkc7f(Y@^k@EyFa%${Kqf@H#;2lO>Yp439 z)#a*ZaAs|Nt5Q6Iw;|r`P^XoJ-YP$(h^e4Y-K3GHcqTkea{dNM#6OdjzD#khy_X=t zd%J~Du0Ex^J*6{0?j>S%|Eo_$6~UaxtgTOG=HvA{S-Rm^eJ*&htT+{Q{MpJ1^NP~D zjR`AdDZR-f849?8b%Y0RNg`&E&WPuPWFL)%8}6GmhY;OGOFb`{_75H|2k>+_;ZTYT zLGMt79ixX$tcmsJ0}Oct=|J*edxFV&v!Ub*`D0B}ngJq(xbxZVp0DZlC`5y~?>BS; z9Syyw`MiIar4$tOwHIcfFE^Rv+$Ta`kdI|clMEIE2e`wXw-kTi_s)k$4mTjgmTm9* zCJG`%b(k;O9kbr85Y31s44iq};JX$!)nvu-hAqY=gYtDYs;!ynN6;sz_whw- z=urevcc$=a?Mm1r#UX6G{MkOHW(TRUr_>fp^;5JhW}%tX$2g#CtMeu;?V~%VbZ4$^ zt(va6#;PXWD6~XXQOUf%#V`P+G-Rahx`>;ybo=>=jMUiH)w9w#sP!L|MmJ!aDzLSk zXOX@gtgsm`*g3Z0lyKn1fT`?r=AP|?=UAj|v9KrTemRK!LnMKSZK~QdsYD}_reiFA zH@%jWE}M&HH4I<3wQq=NL>qUy>Yp=3>pMHb+TkY~)zloyPpNdDTAgR;R~%Q?c9XZ& zX`6R+5!T9&2G53b%kM9#UX)!}oo{87wa(P)f=k+azl`=)n{-XB2i_xp0(S2`yTI;2 z%D`;5(TbVH@ait!jtD%5JGM)u=paD~ewIWFMIDeMfQ037_-p`mj_t=UoM+x8ooAkz zK=BDLtWS#!rn!9tbz*|Yp|Z<*@|`aC;^!)_`2z%-z09Ld~x2%-WkusA1o zd}Bs#`a1g)CnDIr6|%@(WLNalqpEK=x7$I03q?DASxL0YH`Y5zv}%BZHP!~0LK2x5 zf5?TSwiKfOxMHcDv+d#Y*)-0H@9RVLE$}00)m@O3C-TnC9VJ2H4_!YhcE2xiLcRe+ z)jJklmf5ly*(`B~56N7*aeB0`)$Px}zXM-Vms^T^K#qp$ZG1`lw!*!w)&?GSF3z+@ z21e#4M#lQa6jR3f`u2$sC{b_~0+&%Bpu(s)pn>${pr6?>AVPo$#}g2efPnrSyEfdJ z&wv910R@8ojcH?GYhh~Q-*| zG96{TD<)A@p`h$Adv3c*w0+gVcPO&1q*s~6h>~nX+`RFCnya0zwQz-N`D+t3 zK|0=rWnf`8RhyeF6{lWGFfBWr^<;e>g?suHk6Z_F?>vWtINV@E3=}kew2;NkcNQ$i zPXnl9ReAdhf<#xRf}R-dE{cLC=zZ3Op8U%J00V2kJR^58jFzGtl0FoCUk=y?fd%2h2JV%$7@IZgq=M^m3T2X3x2~UA{~{ z>kPhPf2(eA1y~DAQKCA zynva-D-rmhYtQ^q+EU7R?>A!30#|*@)|1*S3V>9t96J5#dckS#KB>T4Q{p|9D@b1n zB1m7r!i~WcdC6x4ugzE^XeKSnmSsb}TH8z_z5Bw5n=hY%5uZmfrM)(#d93Zrx+XpU zHvL+u&re)@YETyM#ZC!zbSOKeVZm!Eh+byW0c{(Lb^~WEz3mjAwx<@^5zlcn5EFV^ zYeOs5m)ZVMZN<5mt<2F@6l-$<*`HZhgmD-|8;pfBAt^pBo~GX+YOff8h-*UowUd=Q zA&e|7o+m2Ny59C{0!(9r?RMY~%Uxd;y_o4x(q}XiJ*n%o7WN3eyujYzl>PXw9$E@} zTbr`jOXJO}4)>%Wg|v|GYiF+0VhHJcF5sE9q zuSjF-lK=|1?Pn;@=uJU)qHWt={OQ-?43QN1Ed9`}8HYjD_un?`di2+TAgF`ck5aO^ zpn|%nj$G&U03KT>bVcPQa0Nu&R} zTRNFIJ6qVAIsNpt@po2Aha8WOkJPwbr|trXkind7i7Am3%|gBNoO(hylBp~Q?@Q5r zpZP2Vd0`GgK6*U*PqBHNE*9{=dPnU~gCaA1KhCqitW@S89^3XA3W)6cYJ;DR`O@*U zA;*^yj9>b&Dn;BkS4%3{i{=3~`mtiCnjR)xpEbsW!U|3du#lv-&1i6B(zsY}gLI4(0q za>vj|k3$prL6W67c(f6B;aKlQn`kI>TRvWVbeE!gQoNl4Xk=Mfe8#L4ovrfm!#LP3 ziD1p>cHfU^&B5~!M+`JNDgMYaL2o?k(6J=wmgd~*T^wLFD*lP`N8oN^1BMN0*N5XT z2M@MWVoq5I;fQRa$DF3X@pcT-oW)@EeT68{OYmYD8Ue)#&aHAyf^R9QZnzhYz6*yT z?@RHgyS{|rN~<2${!1%jyGJ|mxAKabUzbzl+|+hdSGZ}jRl3g*+%n3QN7`|+;EI!Q z*EN`GR`%Br5ADli%@KK4V4DV#zfG$`Rvbe-WnB${%iC4jOaw1e6S|xykdN%Lgr}{- zJsa!oW9&r+dfa%mveXv0e3gETy^QGJ66CHwjV z{fM);8{+f2!Dyy}wNY@fdcp}-WHx9$Dv^MbmAWVH1;D*s_*lS!Bj!T| zo5|wyD(=Gz5bUvG*oS;9F9BpllHg!2@9?PtTT`aS*L_sLg-!#4OLX%F099C-#k0;D7Z+rX*0F`q-pJ<;XF0AzMYOyht;>tMJ@ zlP$*sxEG2n9?$i87ao&|%jzOl$IpqXchJdGuUo8iYcL!B-Hc5dF`HLsu zXGQD8a{|dZon3Z>ECdJBq1mUyHT)81Q+h*}Q|Lmv`U52@qUW~Z>6GtCtb*Q|%sEtG zl({KjK9hR@RZ%16_Ef383aBm%G#ME^4qI%H7z48rR@od_Ff82cbC`Z#TYecC@nLRd zy?mX3Ok7DhN($k{S<}{#;;q$PnB-2M=L@|_;r6LZUoyVOgH$D0B4dG@LIpwaGJlmK z;ha|H8qo0LY0=4{h$Cy?*)LWr!T!pixs=xT)f^Y>tbG(_YJob@z|=|grTgMXWziQL z&cg01PJI=Gp>>O#p@7FDrVtZYu%}h9eF9@AtS$WKq71IXqRx7d2OG{_9 zz2jTfx>&m_Av=J9RCo*m`bs%~ALhWTKq>PeCy*FKQJyAjPRj$*j#UA7c1Im0_iAnH zY6glw4r512`l!59M&}}(f=@Jj=n!|UX$=N9mRPzJn&(|rv=Jwv{5^9psA4HrPkk%g zQqF7KN!5qSEQv0ORWr7o8Gvvmrlm|TNh*MGO}hav?*&^>LUfolJH4h_C3rq$Li=pa zN^0U(zNw-5iXn|4aMm$>|GY-*ic3?{efs;Dc%b|qZ&lAH72+^k_#d;~CfV@z`u!-R z(~r;qAdGLNE}RwMuI|P*OT9{$xNc+D+#xIM07^N?uZ!fG&AI7jUaozRv8pFyne;MR{gpb^e=~|ECj2Y@HQl$*%lnb#6hnD4<6y9!I8d;jA zXZY>zIlJe1yLc zn~D@W4d0Aw;~!prBpjK!Edx76DRJn`yng_LSI1TS(Zj`Vy(uGh1VlWg-K0UDG!i#$ z!_+c6tN74Sx4q?sS>6h+peD9!4f$4Dt>oB0Ohv++&T9FSqPe>SNyNOOnN(%+XJ*i4 zz3gUu{Cja)%6MK~a^_F+CKNFJ{RBZ-r-g8>p&0V)-1^MG1SqFv;S=55Lre?_Z8$8+ zQT5NoX7rE?7;WZ#BRlV{G$~TPsU`24(_L51IceDRJSCLQECJW~YwtlOtzmB=fM6L$ zmD4EL@oUhX0CyMO+z7t=>O>D&hG1tGWvX=Uf?i|PnB$LQl9M>mZ`mLV%jJLG~<^zQq3w;sRP#cWW_i8+YeOKvee$pRG#@}!P ztGjVn4ylc2L+kE=J};b&N1XBD)7w5)yj<$ZO96ur z0HOUgNcnk5kqN_CKM4Ic{O14yf&n6Z`~K%b_}3N)$jRBm+T^b>2h4wc2mJG?@03AE zSN2(83$1mys^8?_*l&68x8ZK={~N+TZTRwU2yIMkT?`HWy$!W{{`QGq@_$q9-5;v4yxpVu zr*GKX*}K^Pr2E5+zqI%wadP^fG_&6OTeDyCe`EVov!Z{) z=HzVP?D9Wy{pZJP{oimo+u2$F|F0F=Tdw1u$LlAPy@9QX^}jt{zk2X5`MU-G*}tIw z@D1rVE*TMJL0Sn}(LbQagmC`~LBC`N&foigL;oF6HNv>1Fqf3kv)&Q}x)4A>=>LKy zd<#-ezeE2k&GL3V_j}~yA@Z%seT#gQ_}hQQ)?e~>4Fun4evf>AY5+iZOYvA3IlH{M z*dH43B!wmZg#IOQli&RoRR8;wKyJAwWAPTHBi~lme`({_0b|H2WogH{{RI1oeT^%8U=_?cs@kHiMkt zHx2)6hUnidVq{?u5@iw<;$#-#;1ptH0x+}ur_GpVh1cRM(kgjhHk*hN`b8QFzJgjocIf6k5izqQ8yv;5`n=jr(H-%1_}Sne6UBZ9KPLFwxBe;rd655{PWDT!pT36m - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fotoliste - - Studiengang: - - Studiensemester: - Gruppe: - Anzahl Studierende: - - - - - - - - - - - - Foto - - - Name - - - Geschlecht - - - Kennzeichen - - - Gruppe - - - - - - - - - - (i) … Incoming - (o) … Outgoing - (ar) … angerechnet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fotoliste + + Studiengang: - + Studiensemester: + Gruppe: + Anzahl Studierende: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + () + + + + \ No newline at end of file From 42a3b6bc3623caff7ef3143e5a4398f954200592 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 13:50:34 +0200 Subject: [PATCH 28/44] =?UTF-8?q?=C3=9Cbernahmebest=C3=A4tigung=20ohne=20G?= =?UTF-8?q?eburtsdatum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/uebernahmebestaetigung_0.xsl | 1 - 1 file changed, 1 deletion(-) diff --git a/system/xsl/uebernahmebestaetigung_0.xsl b/system/xsl/uebernahmebestaetigung_0.xsl index 97fc6c87d..26ea463f3 100644 --- a/system/xsl/uebernahmebestaetigung_0.xsl +++ b/system/xsl/uebernahmebestaetigung_0.xsl @@ -194,7 +194,6 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" Name: - Geburtsdatum: From eb63ce4ac57890f62b8c9a078729ef6479a57108 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 13:51:13 +0200 Subject: [PATCH 29/44] Minor Codestyle-Fixes --- cms/dms.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cms/dms.php b/cms/dms.php index bc9c13035..3b56a3a23 100644 --- a/cms/dms.php +++ b/cms/dms.php @@ -64,7 +64,7 @@ if($doc->isLocked($id)) //und person_id Besitzer des Dokuments ist (person_id aus tbl_akte) //und das Dokument in der Onlinebewerbung hochgeladen werden kann //darf das Dokument heruntergeladen werden - if($person_id!='' && $akte_id!='') + if($person_id != '' && $akte_id != '') { $akte = new akte(); $akte->load($akte_id); @@ -102,15 +102,15 @@ if($doc->isLocked($id)) // dann darf nur mit diesem Recht darauf zugegriffen werden $kategorie = new dms(); $kategorie->loadKategorie($doc->kategorie_kurzbz); - if($kategorie->berechtigung_kurzbz!='') + if($kategorie->berechtigung_kurzbz != '') { if(!$rechte->isBerechtigt($kategorie->berechtigung_kurzbz)) - die('Sie haben keinen Zugriff auf dieses Dokument'); + die($rechte->errormsg); } //Globales DMS recht pruefen if(!$rechte->isBerechtigt('basis/dms')) - die('Sie haben keinen Zugriff auf dieses Dokument'); + die($rechte->errormsg); } } } From 44d6bb9c5fc3b8a2d773f1d7f7dff67d8dbb5146 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 14:23:47 +0200 Subject: [PATCH 30/44] Spalte "Department" in lehrauftragsliste_mail --- .../statistik/lehrauftragsliste_mail.xls.php | 172 +++++++++++++++--- 1 file changed, 142 insertions(+), 30 deletions(-) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 7f5e5fb52..e2a7000cf 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -175,6 +175,8 @@ if($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row,$i,"Fixangestellt", $format_bold); $worksheet->write(2,++$i,"Disz. Zuordnung", $format_bold); $gesamt->write($gesamtsheet_row,$i,"Disz. Zuordnung", $format_bold); + $worksheet->write(2,++$i,"Department", $format_bold); + $gesamt->write($gesamtsheet_row,$i,"Department", $format_bold); $worksheet->write(2,++$i,"LV-Stunden", $format_bold); $gesamt->write($gesamtsheet_row,$i,"LV-Stunden", $format_bold); $worksheet->write(2,++$i,"LV-Kosten", $format_bold); @@ -189,35 +191,103 @@ if($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row,$i,"Gesamtkosten", $format_bold); //Daten holen - $qry = "SELECT - tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, - tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, - tbl_lehreinheitmitarbeiter.faktor as faktor, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, - tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden, - CASE WHEN tbl_mitarbeiter.fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt, - (SELECT tbl_organisationseinheit.organisationseinheittyp_kurzbz||' '||tbl_organisationseinheit.bezeichnung - FROM public.tbl_benutzerfunktion - JOIN public.tbl_organisationseinheit USING (oe_kurzbz) - WHERE funktion_kurzbz='oezuordnung' - AND (datum_von IS NULL OR datum_von <= now()) - AND (datum_bis IS NULL OR datum_bis >= now()) - AND tbl_benutzerfunktion.uid = tbl_benutzer.uid - LIMIT 1) AS oezuordnung, - CASE WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter, - public.tbl_benutzer, public.tbl_person, lehre.tbl_lehrveranstaltung - WHERE - tbl_person.person_id = tbl_benutzer.person_id AND - tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid AND - tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - studiengang_kz=".$db->db_add_param($studiengang_kz)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null - AND tbl_lehreinheitmitarbeiter.stundensatz<>0 AND tbl_lehreinheitmitarbeiter.faktor<>0 - AND EXISTS (SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id) - ORDER BY nachname, vorname, tbl_mitarbeiter.mitarbeiter_uid"; + $qry = "SELECT tbl_lehreinheit.*, + tbl_person.vorname, + tbl_person.nachname, + tbl_person.titelpre, + tbl_mitarbeiter.personalnummer, + tbl_person.person_id, + tbl_mitarbeiter.mitarbeiter_uid, + tbl_lehreinheitmitarbeiter.faktor AS faktor, + tbl_lehreinheitmitarbeiter.stundensatz AS stundensatz, + tbl_lehreinheitmitarbeiter.semesterstunden AS semesterstunden, + CASE + WHEN tbl_mitarbeiter.fixangestellt = true + THEN 'Ja' + ELSE 'Nein' + END AS fixangestellt, + ( + SELECT tbl_organisationseinheit.organisationseinheittyp_kurzbz || ' ' || tbl_organisationseinheit.bezeichnung + FROM PUBLIC.tbl_benutzerfunktion + JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) + WHERE funktion_kurzbz = 'oezuordnung' + AND ( + datum_von IS NULL + OR datum_von <= now() + ) + AND ( + datum_bis IS NULL + OR datum_bis >= now() + ) + AND tbl_benutzerfunktion.uid = tbl_benutzer.uid LIMIT 1 + ) AS oezuordnung, + ( + WITH RECURSIVE meine_oes(oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz) AS ( + SELECT oe_kurzbz, + oe_parent_kurzbz, + organisationseinheittyp_kurzbz + FROM PUBLIC.tbl_organisationseinheit + WHERE oe_kurzbz IN ( + SELECT oe_kurzbz + FROM PUBLIC.tbl_benutzerfunktion + WHERE funktion_kurzbz = 'oezuordnung' + AND ( + datum_von IS NULL + OR datum_von <= now() + ) + AND ( + datum_bis IS NULL + OR datum_bis >= now() + ) + AND tbl_benutzerfunktion.uid = tbl_benutzer.uid LIMIT 1 + ) + AND aktiv = true + + UNION ALL + + SELECT o.oe_kurzbz, + o.oe_parent_kurzbz, + o.organisationseinheittyp_kurzbz + FROM PUBLIC.tbl_organisationseinheit o, + meine_oes + WHERE o.oe_kurzbz = meine_oes.oe_parent_kurzbz + AND aktiv = true + ) + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT tbl_organisationseinheit.bezeichnung), ', ') + FROM meine_oes + JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) + WHERE meine_oes.organisationseinheittyp_kurzbz = 'Department' + ) AS department, + CASE + WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum) > now() - interval '31 days' + THEN 't' + ELSE 'f' + END AS geaendert + FROM lehre.tbl_lehreinheit, + lehre.tbl_lehreinheitmitarbeiter, + PUBLIC.tbl_mitarbeiter, + PUBLIC.tbl_benutzer, + PUBLIC.tbl_person, + lehre.tbl_lehrveranstaltung + WHERE tbl_person.person_id = tbl_benutzer.person_id + AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid + AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid + AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id + AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id + AND studiengang_kz = ".$db->db_add_param($studiengang_kz)." + AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." + AND tbl_lehreinheitmitarbeiter.semesterstunden <> 0 + AND tbl_lehreinheitmitarbeiter.semesterstunden IS NOT NULL + AND tbl_lehreinheitmitarbeiter.stundensatz <> 0 + AND tbl_lehreinheitmitarbeiter.faktor <> 0 + AND EXISTS ( + SELECT lehreinheit_id + FROM lehre.tbl_lehreinheitgruppe + WHERE lehreinheit_id = tbl_lehreinheit.lehreinheit_id + ) + ORDER BY nachname, + vorname, + tbl_mitarbeiter.mitarbeiter_uid"; if($result = $db->db_query($qry)) { @@ -248,6 +318,7 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname; $liste[$row->mitarbeiter_uid]['fixangestellt'] = $row->fixangestellt; $liste[$row->mitarbeiter_uid]['oezuordnung'] = $row->oezuordnung; + $liste[$row->mitarbeiter_uid]['department'] = $row->department; $liste[$row->mitarbeiter_uid]['betreuergesamtstunden'] = 0; $liste[$row->mitarbeiter_uid]['betreuergesamtkosten'] = 0; if($row->geaendert=='t') @@ -264,7 +335,44 @@ if($result_stg = $db->db_query($qry_stg)) AND (datum_von IS NULL OR datum_von <= now()) AND (datum_bis IS NULL OR datum_bis >= now()) AND tbl_benutzerfunktion.uid = tbl_benutzer.uid - LIMIT 1) AS oezuordnung + LIMIT 1) AS oezuordnung, + ( + WITH RECURSIVE meine_oes(oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz) AS ( + SELECT oe_kurzbz, + oe_parent_kurzbz, + organisationseinheittyp_kurzbz + FROM PUBLIC.tbl_organisationseinheit + WHERE oe_kurzbz IN ( + SELECT oe_kurzbz + FROM PUBLIC.tbl_benutzerfunktion + WHERE funktion_kurzbz = 'oezuordnung' + AND ( + datum_von IS NULL + OR datum_von <= now() + ) + AND ( + datum_bis IS NULL + OR datum_bis >= now() + ) + AND tbl_benutzerfunktion.uid = tbl_benutzer.uid LIMIT 1 + ) + AND aktiv = true + + UNION ALL + + SELECT o.oe_kurzbz, + o.oe_parent_kurzbz, + o.organisationseinheittyp_kurzbz + FROM PUBLIC.tbl_organisationseinheit o, + meine_oes + WHERE o.oe_kurzbz = meine_oes.oe_parent_kurzbz + AND aktiv = true + ) + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT tbl_organisationseinheit.bezeichnung), ', ') + FROM meine_oes + JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) + WHERE meine_oes.organisationseinheittyp_kurzbz = 'Department' + ) AS department FROM lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer, public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, @@ -306,6 +414,7 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->uid]['nachname'] = $row->nachname; $liste[$row->uid]['fixangestellt'] = $row->fixangestellt; $liste[$row->uid]['oezuordnung'] = $row->oezuordnung; + $liste[$row->uid]['department'] = $row->department; $liste[$row->uid]['geaendert']=false; $liste[$row->uid]['gesamtstunden'] = 0; $liste[$row->uid]['gesamtkosten'] = 0; @@ -393,6 +502,9 @@ if($result_stg = $db->db_query($qry_stg)) //OE-Zuordnung $worksheet->write($zeile,++$i,$row['oezuordnung'], $format); $gesamt->write($gesamtsheet_row,$i,$row['oezuordnung'], $format); + //Department der OE-Zuordnung + $worksheet->write($zeile,++$i,$row['department'], $format); + $gesamt->write($gesamtsheet_row,$i,$row['department'], $format); //LVStunden $lvstunden = str_replace(',', '.', $row['lvstunden']); $worksheet->write($zeile,++$i,$lvstunden, $format); From c704a2669030094304d44acb90fdd952fa37b346 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 14:59:52 +0200 Subject: [PATCH 31/44] =?UTF-8?q?Update=20Auswertung=20Lehrauftr=C3=A4ge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Spalte Stundensatz dazu - Lehrfach entfernt - Anpassungen Spaltenbreite --- content/statistik/lvplanung.xls.php | 199 +++++++++++++++++----------- 1 file changed, 124 insertions(+), 75 deletions(-) diff --git a/content/statistik/lvplanung.xls.php b/content/statistik/lvplanung.xls.php index 05b1260d8..5e23fae10 100644 --- a/content/statistik/lvplanung.xls.php +++ b/content/statistik/lvplanung.xls.php @@ -102,41 +102,66 @@ $stg_obj = new studiengang(); $stg_obj->getAll('typ, kurzbz', false); $qry = " -SELECT - lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz, +SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung, + tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.oe_kurzbz AS lv_oe_kurzbz, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, - tbl_lehrveranstaltung.semester as lv_semester, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheitmitarbeiter.faktor, + tbl_lehrveranstaltung.semester AS lv_semester, + tbl_lehreinheit.lehreinheit_id, + tbl_lehreinheitmitarbeiter.faktor, tbl_lehreinheitmitarbeiter.stundensatz, - tbl_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden, - tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, - tbl_lehreinheitmitarbeiter.anmerkung - ,tbl_lehreinheit.studiensemester_kurzbz - ,tbl_lehrveranstaltung.ects - ,tbl_lehrveranstaltung.semesterstunden - ,tbl_lehrveranstaltung.semesterstunden as sws - ,tbl_lehrveranstaltung.lehrform_kurzbz - ,tbl_lehrveranstaltung.lehrveranstaltung_id - ,(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) - )as lv_leitung - ,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) - )as lv_leitung_vorname - ,(SELECT bezeichnung FROM lehre.tbl_lehrform WHERE lehre.tbl_lehrform.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1) as lv_type - ,tbl_lehrveranstaltung.lehrform_kurzbz -FROM - lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) -WHERE - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); + tbl_lehreinheitmitarbeiter.semesterstunden lemss, + tbl_lehreinheitmitarbeiter.planstunden, + tbl_lehreinheit.stundenblockung, + tbl_lehreinheit.wochenrythmus, + tbl_lehreinheit.raumtyp, + tbl_lehreinheit.raumtypalternativ, + tbl_lehreinheit.anmerkung, + tbl_lehreinheit.studiensemester_kurzbz, + tbl_lehrveranstaltung.ects, + tbl_lehrveranstaltung.semesterstunden, + tbl_lehrveranstaltung.semesterstunden AS sws, + tbl_lehrveranstaltung.lehrform_kurzbz, + tbl_lehrveranstaltung.lehrveranstaltung_id, + ( + SELECT nachname + FROM PUBLIC.tbl_person + JOIN PUBLIC.tbl_benutzer USING (person_id) + WHERE uid = ( + SELECT mitarbeiter_uid + FROM lehre.tbl_lehreinheitmitarbeiter + WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id = lehre.tbl_lehreinheit.lehreinheit_id + AND lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz = 'LV-Leitung' LIMIT 1 + ) + ) AS lv_leitung, + ( + SELECT vorname + FROM PUBLIC.tbl_person + JOIN PUBLIC.tbl_benutzer USING (person_id) + WHERE uid = ( + SELECT mitarbeiter_uid + FROM lehre.tbl_lehreinheitmitarbeiter + WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id = lehre.tbl_lehreinheit.lehreinheit_id + AND lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz = 'LV-Leitung' LIMIT 1 + ) + ) AS lv_leitung_vorname, + ( + SELECT bezeichnung + FROM lehre.tbl_lehrform + WHERE lehre.tbl_lehrform.lehrform_kurzbz = tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1 + ) AS lv_type, + tbl_lehrveranstaltung.lehrform_kurzbz +FROM lehre.tbl_lehrveranstaltung +JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) +JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id) +--JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) +WHERE tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($studiengang_kz!='') $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); if($oe_kurzbz!='') - $qry.=" AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz); + $qry.=" AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz); if($semester!='') $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); @@ -172,21 +197,23 @@ $spalte=0; $worksheet->write($zeile,$spalte,"Studiengang", $format_bold); $maxlength[$spalte]=11; $worksheet->write($zeile,++$spalte,"Organisationseinheit", $format_bold); -$maxlength[$spalte]=8; +$maxlength[$spalte]=25; $worksheet->write($zeile,++$spalte,"Lektor", $format_bold); $maxlength[$spalte]=6; -$worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold); -$maxlength[$spalte]=8; +$worksheet->write($zeile,++$spalte,"Bezeichnung", $format_bold); +$maxlength[$spalte]=25; $worksheet->write($zeile,++$spalte,"Semester", $format_bold); $maxlength[$spalte]=8; $worksheet->write($zeile,++$spalte,"Gruppen", $format_bold); -$maxlength[$spalte]=7; -$worksheet->write($zeile,++$spalte,"Stunden", $format_bold); -$maxlength[$spalte]=7; +$maxlength[$spalte]=20; +$worksheet->write($zeile,++$spalte,"Semesterstunden", $format_bold); +$maxlength[$spalte]=12; +$worksheet->write($zeile,++$spalte,"Stundensatz", $format_bold); +$maxlength[$spalte]=12; $worksheet->write($zeile,++$spalte,"Kosten", $format_bold); -$maxlength[$spalte]=6; +$maxlength[$spalte]=7; $worksheet->write($zeile,++$spalte,"Planstunden", $format_bold); -$maxlength[$spalte]=11; +$maxlength[$spalte]=10; $worksheet->write($zeile,++$spalte,"Stundenblockung", $format_bold); $maxlength[$spalte]=15; $worksheet->write($zeile,++$spalte,"Wochenrhythmus", $format_bold); @@ -232,18 +259,20 @@ if($result = $db->db_query($qry)) $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); //Organisationseinheit - $worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]); - if($maxlength[$spalte]lehrfach_oe_kurzbz])) - $maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]); + $worksheet->write($zeile,++$spalte,$oe_arr[$row->lv_oe_kurzbz]); + //if($maxlength[$spalte]lv_oe_kurzbz])) + //$maxlength[$spalte]=mb_strlen($oe_arr[$row->lv_oe_kurzbz]); //Lektor $worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname); if($maxlength[$spalte]nachname.' '.$mitarbeiter->vorname)) $maxlength[$spalte]=mb_strlen($mitarbeiter->nachname.' '.$mitarbeiter->vorname); + //Lehrfach $worksheet->write($zeile,++$spalte,$row->lf_bezeichnung); - if($maxlength[$spalte]lf_bezeichnung)) - $maxlength[$spalte]=mb_strlen($row->lf_bezeichnung); + //if($maxlength[$spalte]lf_bezeichnung)) + //$maxlength[$spalte]=mb_strlen($row->lf_bezeichnung); + //Semester $worksheet->write($zeile,++$spalte,$row->lv_semester); if($maxlength[$spalte]lv_semester)) @@ -264,16 +293,21 @@ if($result = $db->db_query($qry)) //Gruppen $worksheet->write($zeile,++$spalte,$gruppe); - if($maxlength[$spalte]write($zeile,++$spalte,$row->lemss); if($maxlength[$spalte]lemss)) $maxlength[$spalte]=mb_strlen($row->lemss); - $kosten = ($row->stundensatz*$row->lemss*$row->faktor); + //Stundensatz + $worksheet->write($zeile,++$spalte,$row->stundensatz); + if($maxlength[$spalte]stundensatz)) + $maxlength[$spalte]=mb_strlen($row->stundensatz); //Kosten + $kosten = ($row->stundensatz*$row->lemss); $worksheet->write($zeile,++$spalte,$kosten); if($maxlength[$spalte]db_query($qry)) $worksheet->write($zeile,++$spalte,$row->planstunden); if($maxlength[$spalte]planstunden)) $maxlength[$spalte]=mb_strlen($row->planstunden); + //Stundenblockung $worksheet->write($zeile,++$spalte,$row->stundenblockung); if($maxlength[$spalte]stundenblockung)) @@ -299,8 +334,8 @@ if($result = $db->db_query($qry)) $maxlength[$spalte]=mb_strlen($row->raumtypalternativ); //Anmerkung $worksheet->write($zeile,++$spalte,$row->anmerkung); - if($maxlength[$spalte]anmerkung)) - $maxlength[$spalte]=mb_strlen($row->anmerkung); + //if($maxlength[$spalte]anmerkung)) + //$maxlength[$spalte]=mb_strlen($row->anmerkung); //LV-Leitung $worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname); @@ -314,7 +349,7 @@ if($result = $db->db_query($qry)) //Semesterstunden $semesterstunden = $row->semesterstunden; - if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0) + if ($row->stundensatz==0 || $row->lemss==0) $semesterstunden = 0; $worksheet->write($zeile,++$spalte,$semesterstunden); @@ -336,22 +371,28 @@ if($result = $db->db_query($qry)) } //Betreuungen - $qry = "SELECT - tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz, - nachname, vorname, lehrfach.bezeichnung, - tbl_lehrveranstaltung.semester, student_uid, stunden, tbl_projektbetreuer.stundensatz, + $qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.oe_kurzbz AS lv_oe_kurzbz, + nachname, + vorname, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.semester, + student_uid, + stunden, + tbl_projektbetreuer.stundensatz, tbl_projektbetreuer.faktor - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - tbl_person.person_id=tbl_projektbetreuer.person_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + FROM lehre.tbl_projektarbeit, + lehre.tbl_lehreinheit, + lehre.tbl_lehrveranstaltung, + lehre.tbl_projektbetreuer, + PUBLIC.tbl_person + WHERE tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id + AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id + --AND tbl_lehreinheit.lehrfach_id = tbl_lehrveranstaltung.lehrveranstaltung_id + AND tbl_person.person_id = tbl_projektbetreuer.person_id + AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)." + AND (tbl_projektbetreuer.stundensatz * tbl_projektbetreuer.stunden) > 0 "; if($uid!=='') @@ -361,7 +402,7 @@ if($result = $db->db_query($qry)) } if($oe_kurzbz!='') - $qry.=" AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz); + $qry.=" AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz); if($studiengang_kz!='') $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); @@ -384,18 +425,20 @@ if($result = $db->db_query($qry)) $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); //Organisationseinheit - $worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]); - if($maxlength[$spalte]lehrfach_oe_kurzbz])) - $maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]); + $worksheet->write($zeile,++$spalte,$oe_arr[$row->lv_oe_kurzbz]); + //if($maxlength[$spalte]lv_oe_kurzbz])) + //$maxlength[$spalte]=mb_strlen($oe_arr[$row->lv_oe_kurzbz]); //Lektor $worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname); - if($maxlength[$spalte]nachname.' '.$row->vorname)) - $maxlength[$spalte]=mb_strlen($row->nachname.' '.$row->vorname); + //if($maxlength[$spalte]nachname.' '.$row->vorname)) + //$maxlength[$spalte]=mb_strlen($row->nachname.' '.$row->vorname); + //Lehrfach $worksheet->write($zeile,++$spalte,$row->bezeichnung); - if($maxlength[$spalte]bezeichnung)) - $maxlength[$spalte]=mb_strlen($row->bezeichnung); + //if($maxlength[$spalte]bezeichnung)) + //$maxlength[$spalte]=mb_strlen($row->bezeichnung); + //Semester $worksheet->write($zeile,++$spalte,$row->semester); if($maxlength[$spalte]semester)) @@ -403,18 +446,24 @@ if($result = $db->db_query($qry)) $benutzer = new benutzer(); $benutzer->load($row->student_uid); + //Student $worksheet->write($zeile,++$spalte,$benutzer->nachname.' '.$benutzer->vorname); - if($maxlength[$spalte]nachname.' '.$benutzer->vorname)) - $maxlength[$spalte]=mb_strlen($benutzer->nachname.' '.$benutzer->vorname); + //if($maxlength[$spalte]nachname.' '.$benutzer->vorname)) + //$maxlength[$spalte]=mb_strlen($benutzer->nachname.' '.$benutzer->vorname); + //Stunden $worksheet->write($zeile,++$spalte,$row->stunden); if($maxlength[$spalte]stunden)) $maxlength[$spalte]=mb_strlen($row->stunden); + //Stundensatz + $worksheet->write($zeile,++$spalte,$row->stundensatz); + if($maxlength[$spalte]stundensatz)) + $maxlength[$spalte]=mb_strlen($row->stundensatz); //Kosten - $worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor); - if($maxlength[$spalte]stunden*$row->stundensatz*$row->faktor)) - $maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz*$row->faktor); + $worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz); + if($maxlength[$spalte]stunden*$row->stundensatz)) + $maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz); } } From 1d9c2e90c6fa4355789bbd76e4c1a59ff584875d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 4 Apr 2019 16:36:29 +0200 Subject: [PATCH 32/44] =?UTF-8?q?Plausibilit=C3=A4tspr=C3=BCfung=20zeigt?= =?UTF-8?q?=20nun=20Personen=20an=20die=20keinen=20Endstatus=20haben=20(Ab?= =?UTF-8?q?solvent,=20Abgewiesener,=20Abbrecher)=20und=20deren=20letzter?= =?UTF-8?q?=20Status=20in=20der=20Vergangenheit=20liegt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/checkStudenten.php | 52 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/system/checkStudenten.php b/system/checkStudenten.php index 1a660d45f..8af76dd12 100644 --- a/system/checkStudenten.php +++ b/system/checkStudenten.php @@ -662,7 +662,7 @@ if ($result = $db->db_query($qry)) } /* - * Nation der Adresse ist ungleich Österreicher, die Gemeinde ist aber in der Gemeinde Tabelle enthalten + * Nation der Adresse ist ungleich Österreich, die Gemeinde ist aber in der Gemeinde Tabelle enthalten */ $text .= "

Adressnation ausserhalb Österreich mit Gemeinde in Gemeindetabelle

"; $lastSem = $studiensemester->getPreviousFrom($aktSem); @@ -692,6 +692,47 @@ if ($result = $db->db_query($qry)) } } +/* + * Personen ohne Abschlussstatus + */ +$text .= "

Suche Personen ohne Abschlussstatus.

"; + +$qry = " +SELECT + distinct tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang +FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) +WHERE + NOT EXISTS( + SELECT + 1 + FROM + public.tbl_prestudentstatus ps + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE + prestudent_id=tbl_prestudent.prestudent_id + AND tbl_studiensemester.ende>now() + ) + AND '2018-01-01'<(SELECT max(datum) FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) + AND NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus ps + WHERE + prestudent_id=tbl_prestudent.prestudent_id + AND status_kurzbz IN('Abbrecher','Abgewiesener','Absolvent','Incoming') + )"; + +if ($studiengang_kz != '') + $qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) +{ + while ($row = $db->db_fetch_object($result)) + { + $ausgabe[$row->studiengang][17][] = $row->vorname.' '.$row->nachname.' (PreStudent '.$row->prestudent_id.')'; + $text .= $row->vorname.' '.$row->nachname.' (PreStudent '.$row->prestudent_id.")
"; + } +} + // Ausgabe der Studenten foreach ($ausgabe as $stg_kz => $value) @@ -869,6 +910,15 @@ foreach ($ausgabe as $stg_kz => $value)

"; break; + case 17: + echo " + + + + + + "; + break; default: echo ""; break; From ee2661a26e268f3b8ae78f9cd769dd83930b9394 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 17:29:09 +0200 Subject: [PATCH 33/44] Neue Inputs im Personen-Anlegen Formular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Staatsbürgerschaft - Geburtsnation - OrgForm --- .../personen/import/interessentenimport.php | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/vilesci/personen/import/interessentenimport.php b/vilesci/personen/import/interessentenimport.php index b94b8f44f..d0f6be270 100644 --- a/vilesci/personen/import/interessentenimport.php +++ b/vilesci/personen/import/interessentenimport.php @@ -178,11 +178,11 @@ if (isset($_GET['type']) && $_GET['type'] == 'getstudienplancontent' && isset($_ - - - - - + + + + + @@ -416,6 +423,8 @@ if ($gemeinde == '' && $ort != '') $ort = ''; } $email = (isset($_REQUEST['email'])?$_REQUEST['email']:''); +$geburtsnation = (isset($_REQUEST['geburtsnation'])?$_REQUEST['geburtsnation']:'A'); +$staatsbuergerschaft = (isset($_REQUEST['staatsbuergerschaft'])?$_REQUEST['staatsbuergerschaft']:'A'); $telefon = (isset($_REQUEST['telefon'])?$_REQUEST['telefon']:''); $mobil = (isset($_REQUEST['mobil'])?$_REQUEST['mobil']:''); $letzteausbildung = (isset($_REQUEST['letzteausbildung'])?$_REQUEST['letzteausbildung']:''); @@ -551,8 +560,8 @@ if (isset($_POST['save'])) $person->vornamen = $vornamen; $person->geschlecht = $geschlecht; $person->gebdatum = $datum_obj->formatDatum($geburtsdatum,'Y-m-d'); - $person->geburtsnation = 'A'; - $person->staatsbuergerschaft = 'A'; + $person->geburtsnation = $geburtsnation; + $person->staatsbuergerschaft = $staatsbuergerschaft; $person->aktiv = true; $person->insertamum = date('Y-m-d H:i:s'); $person->insertvon = $user; @@ -928,7 +937,7 @@ echo ''; echo ''; echo ''; -echo ''; +echo ''; echo ''; echo ''; +echo ''; +echo ''; echo ''; echo ''; echo ''; From 4815c9e73a371b9173ad39f0af13d84dc053a406 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Thu, 4 Apr 2019 18:34:00 +0200 Subject: [PATCH 34/44] Fotoliste korrektur Bilder verkleinert, damit mehr Platz auf Seite --- system/vorlage_zip/fotoliste.odt | Bin 59737 -> 59733 bytes system/xsl/fotoliste_0.xsl | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/vorlage_zip/fotoliste.odt b/system/vorlage_zip/fotoliste.odt index 4adf8a1a43991b09dbcdcf11ae5e6f4659d7531f..866e4e1ea413ac0dbad16f2c0c616983762738a1 100644 GIT binary patch delta 2724 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 delta 2715 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 V0p^pV=v)C0lIc$dKHmTU0090wSY7}C diff --git a/system/xsl/fotoliste_0.xsl b/system/xsl/fotoliste_0.xsl index 98a47eaef..0e612f257 100644 --- a/system/xsl/fotoliste_0.xsl +++ b/system/xsl/fotoliste_0.xsl @@ -192,17 +192,17 @@ - + - + - + From c649bf3fbe24a04180ff1a3207de60934bd4a06d Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 8 Apr 2019 13:26:33 +0200 Subject: [PATCH 35/44] Fixed double basic gebiet-entries in Reihungstest This issue popped up when basic gebiete of many Bachelor studies could not be merged (with unique gebiete) due to different reihung. This is fixed now. --- cis/testtool/menu.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php index ed63324a3..cb1feb67e 100644 --- a/cis/testtool/menu.php +++ b/cis/testtool/menu.php @@ -193,7 +193,8 @@ if (isset($_SESSION['pruefling_id'])) ) - SELECT DISTINCT + SELECT DISTINCT ON + (gebiet_id, semester) semester, gebiet_id, bezeichnung, @@ -252,6 +253,7 @@ if (isset($_SESSION['pruefling_id'])) ORDER BY semester, + gebiet_id, reihung "; From ecadec9280adc9d8e671a6e55febc7ad84eaefef Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 8 Apr 2019 17:21:38 +0200 Subject: [PATCH 36/44] =?UTF-8?q?Changes=20in=20Models:=20-=20education/Le?= =?UTF-8?q?hreinheit=5Fmodel=20getLesForLv:=20studiengang=5Fkz=20and=20stu?= =?UTF-8?q?diengang=5Fkuerzel=20of=20lehreinheitgruppen=20is=20also=20retr?= =?UTF-8?q?ieved=20-=20education/Lehrveranstaltung=5Fmodel=20getLvsWithInc?= =?UTF-8?q?omingPlaces:=20=20=20=20--=20Retrieving=20not=20by=20Studienord?= =?UTF-8?q?nung=20G=C3=BCltigkeit,=20but=20by=20tbl=5Fstudienplan=5Fsemest?= =?UTF-8?q?er=20=20=20=20--=20retrieving=20lvs=20of=20studiengang=20ECI=20?= =?UTF-8?q?Campus=20International?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/education/Lehreinheit_model.php | 24 +++++-- .../education/Lehrveranstaltung_model.php | 68 +++++++++++-------- 2 files changed, 55 insertions(+), 37 deletions(-) diff --git a/application/models/education/Lehreinheit_model.php b/application/models/education/Lehreinheit_model.php index 737d482f8..7dba40153 100644 --- a/application/models/education/Lehreinheit_model.php +++ b/application/models/education/Lehreinheit_model.php @@ -14,6 +14,7 @@ class Lehreinheit_model extends DB_Model $this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel'); $this->load->model('education/lehreinheitgruppe_model', 'LehreinheitgruppeModel'); $this->load->model('education/lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel'); + $this->load->model('organisation/studiengang_model', 'StudiengangModel'); } /** @@ -57,13 +58,22 @@ class Lehreinheit_model extends DB_Model { foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe) { - $letoadd->lehreinheitgruppen[] = array( - 'semester' => $lehreinheitgruppe->semester, - 'verband' => $lehreinheitgruppe->verband, - 'gruppe' => $lehreinheitgruppe->gruppe, - 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz, - 'direktinskription' => $lehreinheitgruppe->direktinskription - ); + $studiengangresponse = $this->StudiengangModel->load($lehreinheitgruppe->studiengang_kz); + if (hasData($studiengangresponse)) + { + $studiengang = $studiengangresponse->retval[0]; + $stgkuerzel = mb_strtoupper($studiengang->typ . $studiengang->kurzbz); + + $letoadd->lehreinheitgruppen[] = array( + 'semester' => $lehreinheitgruppe->semester, + 'verband' => $lehreinheitgruppe->verband, + 'gruppe' => $lehreinheitgruppe->gruppe, + 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz, + 'direktinskription' => $lehreinheitgruppe->direktinskription, + 'studiengang_kz' => $lehreinheitgruppe->studiengang_kz, + 'studiengang_kuerzel' => $stgkuerzel + ); + } } } diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index c7455f62e..6813773f3 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -208,11 +208,11 @@ class Lehrveranstaltung_model extends DB_Model * Gets valid Lehrveranstaltungen with incoming places for a Studiensemester. * Only * 1. Lvs with incoming places > 0 - * 2. Studienordnung valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit) + * 2. Studienplan valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit) * @param $studiensemester_kurzbz * @return object */ - public function getLvsWithIncomings($studiensemester_kurzbz) + public function getLvsWithIncomingPlaces($studiensemester_kurzbz) { $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); @@ -221,36 +221,44 @@ class Lehrveranstaltung_model extends DB_Model if (!hasData($studsemres)) return success(array()); - $semstart = $studsemres->retval[0]->start; - $semende = $studsemres->retval[0]->ende; - - $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $semstart, $semende, $studiensemester_kurzbz); + $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $studiensemester_kurzbz, $studiensemester_kurzbz); $query = " - SELECT lv.*, ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::varchar(1) || stg.kurzbz) AS studiengang_kuerzel, - stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, tbl_sprache.locale - FROM lehre.tbl_lehrveranstaltung lv - JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz - JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache - WHERE lv.lehrtyp_kurzbz != 'modul' - AND ( - EXISTS - ( - SELECT 1 FROM - lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan ON tbl_studienplan_lehrveranstaltung.studienplan_id = tbl_studienplan.studienplan_id - JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id - JOIN public.tbl_studiensemester semvon ON lehre.tbl_studienordnung.gueltigvon = semvon.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigvon IS NULL - JOIN public.tbl_studiensemester sembis ON lehre.tbl_studienordnung.gueltigbis = sembis.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigbis IS NULL - WHERE tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id - AND (?::date >= semvon.start OR semvon.start IS NULL) AND (?::date <= sembis.ende OR sembis.ende IS NULL) - ) - OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?) - ) - AND lv.incoming > 0 - AND lv.aktiv - AND stg.typ IN ('b', 'm') - ORDER BY studiengang_kuerzel, orgform_kurzbz, lv.bezeichnung, lv.lehrform_kurzbz, lv.lehrveranstaltung_id + SELECT * FROM ( + SELECT DISTINCT ON (lv.lehrveranstaltung_id) lv.lehrveranstaltung_id, lv.bezeichnung AS lv_bezeichnung, lv.kurzbz AS lv_kurzbz, lv.sprache, lv.ects, lv.lehre, + lv.lehreverzeichnis, lv.sws, lv.lvs, lv.alvs, lv.lvps, lv.las, lv.incoming, lv.lehrform_kurzbz, lv.orgform_kurzbz AS lv_orgform, lv.semester, + ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::VARCHAR(1) || stg.kurzbz) AS studiengang_kuerzel, + stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, stg.orgform_kurzbz AS studiengang_orgform, + tbl_sprache.locale, CASE WHEN lv.orgform_kurzbz NOTNULL THEN lv.orgform_kurzbz ELSE stg.orgform_kurzbz END AS orgform_kurzbz + FROM lehre.tbl_lehrveranstaltung lv + JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz + JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache + WHERE lv.lehrtyp_kurzbz != 'modul' + AND ( + EXISTS + ( + WITH gueltige_studienplaene AS ( + SELECT studienplan_id, semester + FROM lehre.tbl_studienplan + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE tbl_studienplan.aktiv + AND lehre.tbl_studienplan_semester.studiensemester_kurzbz = ? + ) + SELECT 1 + FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE tbl_studienplan_lehrveranstaltung.studienplan_id IN (SELECT studienplan_id FROM gueltige_studienplaene) + AND tbl_studienplan_lehrveranstaltung.semester IN + (SELECT semester FROM gueltige_studienplaene + WHERE gueltige_studienplaene.studienplan_id = tbl_studienplan_lehrveranstaltung.studienplan_id) + AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id + ) + OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?) + ) + AND lv.incoming > 0 + AND lv.aktiv + AND (stg.typ IN ('b', 'm') OR stg.studiengang_kz = 10006)-- ECI Studiengang Campus International + ) lvs + ORDER BY studiengang_kuerzel, orgform_kurzbz, lv_bezeichnung, lehrform_kurzbz, lehrveranstaltung_id; "; return $this->execQuery($query, $parametersarray); From d5dfcae134be7bf088e45d8177e184e6479fc8d0 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 9 Apr 2019 14:27:28 +0200 Subject: [PATCH 37/44] Added function getAllProjects to projectbetreuer class This function retrieves all projektarbeiten by person. (Only with stundensatz > 0) --- include/projektbetreuer.class.php | 732 ++++++++++++++++-------------- 1 file changed, 395 insertions(+), 337 deletions(-) diff --git a/include/projektbetreuer.class.php b/include/projektbetreuer.class.php index 72dcffe8f..e962b2d0a 100644 --- a/include/projektbetreuer.class.php +++ b/include/projektbetreuer.class.php @@ -1,337 +1,395 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/** - * Klasse projektbetreuer - * @create 08-02-2007 - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class projektbetreuer extends basis_db -{ - public $new; // boolean - public $result = array(); // adresse Objekt - - //Tabellenspalten - public $person_id; // integer - public $projektarbeit_id; // integer - public $note; // integer - public $betreuerart_kurzbz;// varchar - public $faktor; // numeric(3,2) - public $name; // string - public $punkte; // numeric(6,2) - public $stunden; // numeric(8,4) - public $stundensatz; // numeric(6,2) - public $ext_id; // integer - public $insertamum; // timestamp - public $insertvon; // bigint - public $updateamum; // timestamp - public $updatevon; // bigint - public $vertrag_id; // bigint - - public $person_id_old; - - /** - * Konstruktor - * @param $person_id, $projektarbeit ID des Projektbetreuers, der geladen werden soll (Default=null) - */ - public function __construct($person_id=null, $projektarbeit_id=null) - { - parent::__construct(); - - if($projektarbeit_id != null && $person_id!=null) - $this->load($person_id, $projektarbeit_id); - } - - /** - * Laedt die Funktion mit der ID $person_id, $projektarbeit_id - * @param $person_id ID der zu ladenden Funktion - * @param $projektarbeit_id ID der zu ladenden Funktion - * @return true wenn ok, false im Fehlerfall - */ - public function load($person_id, $projektarbeit_id, $betreuerart_kurzbz) - { - if(!is_numeric($person_id)) - { - $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; - return false; - } - - if(!is_numeric($projektarbeit_id)) - { - $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT - * - FROM - lehre.tbl_projektbetreuer - WHERE - person_id=".$this->db_add_param($person_id, FHC_INTEGER)." - AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." - AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->person_id = $row->person_id; - $this->projektarbeit_id = $row->projektarbeit_id; - $this->note = $row->note; - $this->betreuerart_kurzbz = $row->betreuerart_kurzbz; - $this->faktor = $row->faktor; - $this->name = $row->name; - $this->punkte = $row->punkte; - $this->stunden = $row->stunden; - $this->stundensatz = $row->stundensatz; - $this->updateamum = $row->updateamum; - $this->updatevon = $row->updatevon; - $this->insertamum = $row->insertamum; - $this->insertvon = $row->insertvon; - $this->ext_id = $row->ext_id; - $this->vertrag_id = $row->vertrag_id; - $this->new=false; - return true; - } - else - { - $this->errormsg = 'Datensatz wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Prueft die Variablen auf Gueltigkeit - * @return true wenn ok, false im Fehlerfall - */ - protected function validate() - { - if($this->betreuerart_kurzbz=='') - { - $this->errormsg = 'Betreuerart muss eingegeben werden'; - return false; - } - if(mb_strlen($this->betreuerart_kurzbz)>16) - { - $this->errormsg = 'betreuerart darf nicht länger als 16 Zeichen sein'; - return false; - } - if(mb_strlen($this->name)>32) - { - $this->errormsg = 'Name darf nicht länger als 32 Zeichen sein'; - return false; - } - - if($this->note!='' && !is_numeric($this->note)) - { - $this->errormsg = 'Note muss ein numerischer Wert sein'; - return false; - } - if($this->punkte!='' && !is_numeric($this->punkte)) - { - $this->errormsg = 'Punkte muss ein numerischer Wert sein'; - } - if($this->faktor!='' && !is_numeric($this->faktor)) - { - $this->errormsg = 'Faktor muss ein numerischer Wert sein'; - return false; - } - if($this->stundensatz!='' && !is_numeric($this->stundensatz)) - { - $this->errormsg = 'Stundensatz muss ein numerischer Wert sein'; - return false; - } - - //Pruefen ob projektarbeit_id eine gueltige Zahl ist - if(!is_numeric($this->projektarbeit_id)) - { - $this->errormsg = 'projektarbeit_id muss eine gueltige Zahl sein'; - return false; - } - - //Pruefen ob person_id eine gueltige Zahl ist - if(!is_numeric($this->person_id)) - { - $this->errormsg = 'person_id muss eine gueltige Zahl sein'; - return false; - } - $this->errormsg = ''; - return true; - } - - /** - * Speichert den aktuellen Datensatz in die Datenbank - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function save($new=null) - { - if($new==null) - $new = $this->new; - - //Variablen pruefen - if(!$this->validate()) - return false; - - if($new) - { - //Neuen Datensatz einfuegen - $qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart_kurzbz, faktor, name, - punkte, stunden, stundensatz, insertamum, insertvon, updateamum, updatevon, vertrag_id) VALUES('. - $this->db_add_param($this->person_id).', '. - $this->db_add_param($this->projektarbeit_id).', '. - $this->db_add_param($this->note).', '. - $this->db_add_param($this->betreuerart_kurzbz).', '. - $this->db_add_param($this->faktor).', '. - $this->db_add_param($this->name).', '. - $this->db_add_param($this->punkte).', '. - $this->db_add_param($this->stunden).', '. - $this->db_add_param($this->stundensatz).', now(), '. - $this->db_add_param($this->insertvon).', now(), '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->vertrag_id).');'; - } - else - { - //Updaten des bestehenden Datensatzes - if($this->person_id_old=='') - $this->person_id_old = $this->person_id; - - if(!isset($this->betreuerart_kurzbz_old) || $this->betreuerart_kurzbz_old=='') - $this->betreuerart_kurzbz_old = $this->betreuerart_kurzbz; - - $qry='UPDATE lehre.tbl_projektbetreuer SET '. - 'person_id='.$this->db_add_param($this->person_id).', '. - 'note='.$this->db_add_param($this->note).', '. - 'betreuerart_kurzbz='.$this->db_add_param($this->betreuerart_kurzbz).', '. - 'faktor='.$this->db_add_param($this->faktor).', '. - 'name='.$this->db_add_param($this->name).', '. - 'punkte='.$this->db_add_param($this->punkte).', '. - 'stunden='.$this->db_add_param($this->stunden).', '. - 'stundensatz='.$this->db_add_param($this->stundensatz).', '. - 'updateamum='.$this->db_add_param($this->updateamum).', '. - 'updatevon='.$this->db_add_param($this->updatevon).', '. - 'vertrag_id='.$this->db_add_param($this->vertrag_id).' '. - "WHERE projektarbeit_id=".$this->db_add_param($this->projektarbeit_id, FHC_INTEGER,false). - " AND person_id=".$this->db_add_param($this->person_id_old, FHC_INTEGER,false). - " AND betreuerart_kurzbz=".$this->db_add_param($this->betreuerart_kurzbz_old).";"; - } - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Daten'; - return false; - } - } - - /** - * Loescht den Datenensatz mit der ID die uebergeben wird - * @param $person_id ID die geloescht werden soll - * @param $projektarbeit_id ID die geloescht werden soll - * @return true wenn ok, false im Fehlerfall - */ - public function delete($person_id, $projektarbeit_id, $betreuerart_kurzbz) - { - if(!is_numeric($person_id)) - { - $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; - return false; - } - - if(!is_numeric($projektarbeit_id)) - { - $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM lehre.tbl_projektbetreuer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz).";"; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Loeschen des Datensatzes'; - return false; - } - } - - /** - * Liefert alle Betreuer zu einer Projektarbeit - * @param projektarbeit_id - */ - public function getProjektbetreuer($projektarbeit_id) - { - if(!is_numeric($projektarbeit_id)) - { - $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." ORDER BY name"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projektbetreuer(); - - $obj->person_id = $row->person_id; - $obj->projektarbeit_id = $row->projektarbeit_id; - $obj->note = $row->note; - $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; - $obj->faktor = $row->faktor; - $obj->name = $row->name; - $obj->punkte = $row->punkte; - $obj->stunden = $row->stunden; - $obj->stundensatz = $row->stundensatz; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->ext_id = $row->ext_id; - $obj->vertrag_id = $row->vertrag_id; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler bei einer Abfrage'; - return false; - } - } -} -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse projektbetreuer + * @create 08-02-2007 + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class projektbetreuer extends basis_db +{ + public $new; // boolean + public $result = array(); // adresse Objekt + + //Tabellenspalten + public $person_id; // integer + public $projektarbeit_id; // integer + public $note; // integer + public $betreuerart_kurzbz;// varchar + public $faktor; // numeric(3,2) + public $name; // string + public $punkte; // numeric(6,2) + public $stunden; // numeric(8,4) + public $stundensatz; // numeric(6,2) + public $ext_id; // integer + public $insertamum; // timestamp + public $insertvon; // bigint + public $updateamum; // timestamp + public $updatevon; // bigint + public $vertrag_id; // bigint + + public $person_id_old; + + /** + * Konstruktor + * @param $person_id, $projektarbeit ID des Projektbetreuers, der geladen werden soll (Default=null) + */ + public function __construct($person_id=null, $projektarbeit_id=null) + { + parent::__construct(); + + if($projektarbeit_id != null && $person_id!=null) + $this->load($person_id, $projektarbeit_id); + } + + /** + * Laedt die Funktion mit der ID $person_id, $projektarbeit_id + * @param $person_id ID der zu ladenden Funktion + * @param $projektarbeit_id ID der zu ladenden Funktion + * @return true wenn ok, false im Fehlerfall + */ + public function load($person_id, $projektarbeit_id, $betreuerart_kurzbz) + { + if(!is_numeric($person_id)) + { + $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; + return false; + } + + if(!is_numeric($projektarbeit_id)) + { + $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT + * + FROM + lehre.tbl_projektbetreuer + WHERE + person_id=".$this->db_add_param($person_id, FHC_INTEGER)." + AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->person_id = $row->person_id; + $this->projektarbeit_id = $row->projektarbeit_id; + $this->note = $row->note; + $this->betreuerart_kurzbz = $row->betreuerart_kurzbz; + $this->faktor = $row->faktor; + $this->name = $row->name; + $this->punkte = $row->punkte; + $this->stunden = $row->stunden; + $this->stundensatz = $row->stundensatz; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->ext_id = $row->ext_id; + $this->vertrag_id = $row->vertrag_id; + $this->new=false; + return true; + } + else + { + $this->errormsg = 'Datensatz wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + protected function validate() + { + if($this->betreuerart_kurzbz=='') + { + $this->errormsg = 'Betreuerart muss eingegeben werden'; + return false; + } + if(mb_strlen($this->betreuerart_kurzbz)>16) + { + $this->errormsg = 'betreuerart darf nicht länger als 16 Zeichen sein'; + return false; + } + if(mb_strlen($this->name)>32) + { + $this->errormsg = 'Name darf nicht länger als 32 Zeichen sein'; + return false; + } + + if($this->note!='' && !is_numeric($this->note)) + { + $this->errormsg = 'Note muss ein numerischer Wert sein'; + return false; + } + if($this->punkte!='' && !is_numeric($this->punkte)) + { + $this->errormsg = 'Punkte muss ein numerischer Wert sein'; + } + if($this->faktor!='' && !is_numeric($this->faktor)) + { + $this->errormsg = 'Faktor muss ein numerischer Wert sein'; + return false; + } + if($this->stundensatz!='' && !is_numeric($this->stundensatz)) + { + $this->errormsg = 'Stundensatz muss ein numerischer Wert sein'; + return false; + } + + //Pruefen ob projektarbeit_id eine gueltige Zahl ist + if(!is_numeric($this->projektarbeit_id)) + { + $this->errormsg = 'projektarbeit_id muss eine gueltige Zahl sein'; + return false; + } + + //Pruefen ob person_id eine gueltige Zahl ist + if(!is_numeric($this->person_id)) + { + $this->errormsg = 'person_id muss eine gueltige Zahl sein'; + return false; + } + $this->errormsg = ''; + return true; + } + + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save($new=null) + { + if($new==null) + $new = $this->new; + + //Variablen pruefen + if(!$this->validate()) + return false; + + if($new) + { + //Neuen Datensatz einfuegen + $qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart_kurzbz, faktor, name, + punkte, stunden, stundensatz, insertamum, insertvon, updateamum, updatevon, vertrag_id) VALUES('. + $this->db_add_param($this->person_id).', '. + $this->db_add_param($this->projektarbeit_id).', '. + $this->db_add_param($this->note).', '. + $this->db_add_param($this->betreuerart_kurzbz).', '. + $this->db_add_param($this->faktor).', '. + $this->db_add_param($this->name).', '. + $this->db_add_param($this->punkte).', '. + $this->db_add_param($this->stunden).', '. + $this->db_add_param($this->stundensatz).', now(), '. + $this->db_add_param($this->insertvon).', now(), '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->vertrag_id).');'; + } + else + { + //Updaten des bestehenden Datensatzes + if($this->person_id_old=='') + $this->person_id_old = $this->person_id; + + if(!isset($this->betreuerart_kurzbz_old) || $this->betreuerart_kurzbz_old=='') + $this->betreuerart_kurzbz_old = $this->betreuerart_kurzbz; + + $qry='UPDATE lehre.tbl_projektbetreuer SET '. + 'person_id='.$this->db_add_param($this->person_id).', '. + 'note='.$this->db_add_param($this->note).', '. + 'betreuerart_kurzbz='.$this->db_add_param($this->betreuerart_kurzbz).', '. + 'faktor='.$this->db_add_param($this->faktor).', '. + 'name='.$this->db_add_param($this->name).', '. + 'punkte='.$this->db_add_param($this->punkte).', '. + 'stunden='.$this->db_add_param($this->stunden).', '. + 'stundensatz='.$this->db_add_param($this->stundensatz).', '. + 'updateamum='.$this->db_add_param($this->updateamum).', '. + 'updatevon='.$this->db_add_param($this->updatevon).', '. + 'vertrag_id='.$this->db_add_param($this->vertrag_id).' '. + "WHERE projektarbeit_id=".$this->db_add_param($this->projektarbeit_id, FHC_INTEGER,false). + " AND person_id=".$this->db_add_param($this->person_id_old, FHC_INTEGER,false). + " AND betreuerart_kurzbz=".$this->db_add_param($this->betreuerart_kurzbz_old).";"; + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $person_id ID die geloescht werden soll + * @param $projektarbeit_id ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + public function delete($person_id, $projektarbeit_id, $betreuerart_kurzbz) + { + if(!is_numeric($person_id)) + { + $this->errormsg = 'Person_id muss eine gueltige Zahl sein'; + return false; + } + + if(!is_numeric($projektarbeit_id)) + { + $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM lehre.tbl_projektbetreuer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Loeschen des Datensatzes'; + return false; + } + } + + /** + * Liefert alle Betreuer zu einer Projektarbeit + * @param projektarbeit_id + */ + public function getProjektbetreuer($projektarbeit_id) + { + if(!is_numeric($projektarbeit_id)) + { + $this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." ORDER BY name"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new projektbetreuer(); + + $obj->person_id = $row->person_id; + $obj->projektarbeit_id = $row->projektarbeit_id; + $obj->note = $row->note; + $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; + $obj->faktor = $row->faktor; + $obj->name = $row->name; + $obj->punkte = $row->punkte; + $obj->stunden = $row->stunden; + $obj->stundensatz = $row->stundensatz; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->ext_id = $row->ext_id; + $obj->vertrag_id = $row->vertrag_id; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler bei einer Abfrage'; + return false; + } + } + + /** + * Retrieves all projektarbeiten by person (only with stundensatz > 0) + * @param $person_id + * @return boolean If succeeded true and result-array with objects of each projektarbeit of the person. + */ + public function getAllProjects($person_id) + { + if (isset($person_id) && is_numeric($person_id)) + { + $qry = ' + SELECT + * + FROM + lehre.tbl_projektbetreuer + WHERE + (stundensatz IS NOT NULL) AND (stundensatz > 0) + AND + person_id =' . $this->db_add_param($person_id, FHC_INTEGER); + + if ($this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + $obj = new projektbetreuer(); + + $obj->person_id = $row->person_id; + $obj->projektarbeit_id = $row->projektarbeit_id; + $obj->note = $row->note; + $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; + $obj->faktor = $row->faktor; + $obj->name = $row->name; + $obj->punkte = $row->punkte; + $obj->stunden = $row->stunden; + $obj->stundensatz = $row->stundensatz; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->ext_id = $row->ext_id; + $obj->vertrag_id = $row->vertrag_id; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler bei einer Abfrage'; + return false; + } + } + else + { + $this->errormsg = 'Person_id fehlt oder nicht numerisch.'; + return false; + } + } +} +?> From 5fc356cd4f67592f1c374da3c67e11fff2ecc6d3 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 9 Apr 2019 14:39:07 +0200 Subject: [PATCH 38/44] =?UTF-8?q?Added=20document=20Lehrt=C3=A4tigkeit=20B?= =?UTF-8?q?est=C3=A4tigung=20in=20FAS=20(only=20FHTW)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now a new document exists to confirm the lecture activities which include all the . lehreinheiten of the mitarbeiter AND . projektarbeiten of the mitarbeiter (betreuer,...) clustered by studiensemester. --- cis/private/lehre/lehrtaetigkeit.pdf.php | 281 +++++++++++++++++++++++ include/lehreinheitmitarbeiter.class.php | 2 +- 2 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 cis/private/lehre/lehrtaetigkeit.pdf.php diff --git a/cis/private/lehre/lehrtaetigkeit.pdf.php b/cis/private/lehre/lehrtaetigkeit.pdf.php new file mode 100644 index 000000000..badce253c --- /dev/null +++ b/cis/private/lehre/lehrtaetigkeit.pdf.php @@ -0,0 +1,281 @@ +. + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/dokument_export.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/person.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/projektbetreuer.class.php'); +require_once('../../../include/projektarbeit.class.php'); +require_once('../../../include/bisverwendung.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); + +$user = get_uid(); +$sprache = getSprache(); +$p = new phrasen($sprache); + +$doc = new dokument_export('Lehrtaetigkeit'); + + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +// Check permission +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); +if (!$berechtigung->isBerechtigt('admin') && + !$berechtigung->isBerechtigt('mitarbeiter')) + die('Sie muessen das Recht "ADMIN" oder "MITARBEITER" haben, um diese Seite aufrufen zu koennen'); + +// Get GET params +$uid = (isset($_GET['uid']) && is_string($_GET['uid'])) ? $_GET['uid'] : die($p->t('global/fehlerBeimErmittelnDerUID')); +$output = (isset($_GET['output']) && ($_GET['output'] == 'odt' || $_GET['output'] == 'doc')) ? $_GET['output'] : 'pdf'; + +// Personal data of lector +$person = new Person(); +$person->getPersonFromBenutzer($uid); +$person_id = $person->person_id; +$anrede = $person->anrede; +$fullname = $person->getFullName(); +$birthday_date = new DateTime($person->gebdatum); + +// Get the lectors lehreinheiten-semesterstunden per semester +$semesterstunden_per_semester = array(); +$le_ma = new Lehreinheitmitarbeiter(); + +// * get all semester of the lector where he was teaching actively +$active_semester_arr = $le_ma->getSemesterZuLektor($uid); +$active_semester_arr = array_keys($active_semester_arr); + +// * for each semester: +foreach($active_semester_arr as $active_semester) +{ + // * get all the lectors lehreinheiten + $le_id_arr = array(); + $le_array = $le_ma->getLehreinheiten($uid, $active_semester); + foreach($le_array as $le) + { + $le_id_arr[]= $le->lehreinheit_id; + } + + // * get total amount of semesterstunden of the lehreinheiten, where stundensatz > 0 + $total_semesterstunden = 0; + foreach ($le_id_arr as $le_id) + { + $le_ma = new Lehreinheitmitarbeiter($le_id, $uid); + if ($le_ma && (!is_null ($le_ma->stundensatz) && $le_ma->stundensatz > 0)) + { + $total_semesterstunden = $total_semesterstunden + $le_ma->semesterstunden; + } + } + + // * store term and total amount of semesterstunden + $semesterstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $active_semester, + 'total_semesterstunden' => $total_semesterstunden + ) + ); +} + +// Get the lectors projektarbeitstunden per semester +$projektstunden_per_semester = array(); +$pb = new Projektbetreuer(); +$pb->getAllProjects($person_id); +$project_arr = $pb->result; + +foreach ($project_arr as $project) +{ + $pa_id = $project->projektarbeit_id; + $projektstunden = $project->stunden; + + // * get studiensemester + $pa = new Projektarbeit($pa_id); + $le = new Lehreinheit($pa->lehreinheit_id); + $studiensemester_kurzbz = $le->studiensemester_kurzbz; + $ss = new Studiensemester($studiensemester_kurzbz); + $studiensemester_start_date = $ss->start; + + // Sum up semesterstunden by studiensemester + // * check if studiensemester already exists. If so, get array index. + $studiensemester_index = array_search($studiensemester_kurzbz, array_map(function($val) { + return $val['studiensemester_kurzbz']; + }, $projektstunden_per_semester + )); + + // * if studiensemester exists, sum up hours of projektarbeit, where stundensatz > 0 + if ($studiensemester_index !== false) + { + $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $projektstunden; + } + // * if not, create new index + else + { + $projektstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $studiensemester_kurzbz, + 'total_semesterstunden' => $projektstunden, + 'studiensemester_start_date' => $studiensemester_start_date // store start date to sort array by date afterwards + ) + ); + } +} + +// Sort projektstunden per semester by date +usort($projektstunden_per_semester, function($a, $b) +{ + return strtotime($a['studiensemester_start_date']) - strtotime($b['studiensemester_start_date']); +}); + +// Merge lehreinheit- and projektarbeitstunden arrays +foreach ($projektstunden_per_semester as $item) +{ + // check if studiensemester already exists in projektstunden-per-term-array. If so, get array index. + $studiensemester_index = array_search($item['studiensemester_kurzbz'], array_map(function($val) { + return $val['studiensemester_kurzbz']; + }, $semesterstunden_per_semester + )); + + // * if studiensemester exists, merge lehreinheit- and projektarbeit hours + if ($studiensemester_index !== false) + { + $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $item['total_semesterstunden']; + } + // * if not, create new index + else + { + $semesterstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], + 'total_semesterstunden' => $item['total_semesterstunden'] + ) + ); + } +} + +// Split studiensemester array into actual studiensemester array and former studiensemester array +// * get actual studiensemester +$ss = new Studiensemester(); +$actual_studiensemester = $ss->getakt(); +$actual_studiensemester_index = array_search($actual_studiensemester, array_map(function($val) { + return $val['studiensemester_kurzbz']; +}, $semesterstunden_per_semester +)); +// * split former from actual studiensemester +$semesterstunden_of_actual_semester = array(); +if ($actual_studiensemester_index !== false) +{ + $semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); // array with actual + future semester + $semesterstunden_of_actual_semester = array_pop($semesterstunden_of_actual_semester); // array with actual semester only + $semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); // array with all former semester +} + +// Begin and ending date over all existing contracts +$verwendung = new Bisverwendung(); +$verwendung->getVerwendung($uid); +$verwendung_arr = $verwendung->result; + +// * begin date of first contract +$earliest_verwendung = current($verwendung_arr); +$begin_date = !is_null($earliest_verwendung->beginn) ? new DateTime($earliest_verwendung->beginn) : null; + +// * end date of last contract +$latest_verwendung = end($verwendung_arr); +$end_date = !is_null($latest_verwendung->ende) ? new DateTime($latest_verwendung->ende) : null; + +// Semester begin and ending date of lehreinheit- and projektarbeit studiensemester +// * begin date of first lehreinheit- and projektarbeit studiensemester +$earliest_ss = current($semesterstunden_per_semester)['studiensemester_kurzbz']; +$ss = new Studiensemester($earliest_ss); +$begin_date_ss = !is_null($ss->start) ? new DateTime($ss->start) : null; + +// * end date of last lehreinheit- and projektarbeit studiensemester +$latest_ss = !empty($semesterstunden_of_actual_semester) + ? end($semesterstunden_of_actual_semester)['studiensemester_kurzbz'] + : end($semesterstunden_per_semester)['studiensemester_kurzbz']; +$ss = new Studiensemester($latest_ss); +$end_date_ss = !is_null($ss->ende) ? new DateTime($ss->ende) : null; + +/** + * Reset begin and ending date if necessary + * Basically use contracts begin and ending date, but reset if lehrtaetigkeit is shorter. + * */ +// * if semester begin > begin date +If (!is_null($begin_date_ss) && ($begin_date_ss > $begin_date)) +{ + // * begin date = semester begin + $begin_date = clone $begin_date_ss; +} +// * if semester end < end date +If (!is_null($end_date_ss) && !is_null($end_date) && ($end_date_ss < $end_date)) +{ + // * end date = semester end + $end_date = clone $end_date_ss; +} + +$actual_date = new DateTime(); + +$data = array ( + 'anrede' => $anrede, + 'full_name' => $fullname, + 'birthday' => $birthday_date->format('d.m.Y'), + 'begin_date' => !is_null($begin_date) ? $begin_date->format('d.m.Y') : '', + 'end_date' => !is_null($end_date) ? $end_date->format('d.m.Y') : '', // empty, if lector is still employed + 'total_ss_actual_semester' => $semesterstunden_of_actual_semester, // empty, if lehrauftraege in the past only, + 'actual_date' => $actual_date->format('d.m.Y') +); + +if (!empty($semesterstunden_per_semester)) +{ + foreach ($semesterstunden_per_semester as $item) + { + $data[]= array('total_ss_per_semester'=> + array( + 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], + 'total_semesterstunden' => $item['total_semesterstunden'] + ) + ); + } +} +else +{ + $data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden +} + + +//add data to lehrtaetigkeit.xsl +$doc->addDataArray($data, 'lehrtaetigkeit'); + +//set doc name +$doc->setFilename('Lehrtaetigkeit_'. rtrim($fullname, '.')); + +//create doc in format required +if (!$doc->create($output)) + die($doc->errormsg); + +//download doc +$doc->output(); + +//unlink doc from tmp-folder +$doc->close(); \ No newline at end of file diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php index 85493cd9e..e1933cfa7 100644 --- a/include/lehreinheitmitarbeiter.class.php +++ b/include/lehreinheitmitarbeiter.class.php @@ -474,7 +474,7 @@ class lehreinheitmitarbeiter extends basis_db public function getLehreinheiten($mitarbeiter_uid, $studiensemester_kurzbz) { $qry = 'SELECT - DISTINCT lehreinheit_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang, + DISTINCT lehreinheit_id, lehrveranstaltung_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang, lv_semester, lehrform_kurzbz FROM campus.vw_lehreinheit From c7e757c76fe7f9b966ced4cb431a6cbc70979855 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 9 Apr 2019 14:39:07 +0200 Subject: [PATCH 39/44] =?UTF-8?q?Added=20document=20Lehrt=C3=A4tigkeit=20B?= =?UTF-8?q?est=C3=A4tigung=20in=20FAS=20(only=20FHTW)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now a new document exists to confirm the lecture activities which include all the . lehreinheiten of the mitarbeiter AND . projektarbeiten of the mitarbeiter (betreuer,...) clustered by studiensemester. --- cis/private/lehre/lehrtaetigkeit.pdf.php | 281 +++++++++++++++++++++++ include/lehreinheitmitarbeiter.class.php | 2 +- 2 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 cis/private/lehre/lehrtaetigkeit.pdf.php diff --git a/cis/private/lehre/lehrtaetigkeit.pdf.php b/cis/private/lehre/lehrtaetigkeit.pdf.php new file mode 100644 index 000000000..3d2f4950a --- /dev/null +++ b/cis/private/lehre/lehrtaetigkeit.pdf.php @@ -0,0 +1,281 @@ +. + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/dokument_export.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/person.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/projektbetreuer.class.php'); +require_once('../../../include/projektarbeit.class.php'); +require_once('../../../include/bisverwendung.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); + +$user = get_uid(); +$sprache = getSprache(); +$p = new phrasen($sprache); + +$doc = new dokument_export('Lehrtaetigkeit'); + + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +// Check permission +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); +if (!$berechtigung->isBerechtigt('admin') && + !$berechtigung->isBerechtigt('mitarbeiter')) + die('Sie muessen das Recht "ADMIN" oder "MITARBEITER" haben, um diese Seite aufrufen zu koennen'); + +// Get GET params +$uid = (isset($_GET['uid']) && is_string($_GET['uid'])) ? $_GET['uid'] : die($p->t('global/fehlerBeimErmittelnDerUID')); +$output = (isset($_GET['output']) && ($_GET['output'] == 'odt' || $_GET['output'] == 'doc')) ? $_GET['output'] : 'pdf'; + +// Personal data of lector +$person = new Person(); +$person->getPersonFromBenutzer($uid); +$person_id = $person->person_id; +$anrede = $person->anrede; +$fullname = $person->getFullName(); +$birthday_date = new DateTime($person->gebdatum); + +// Get the lectors lehreinheiten-semesterstunden per semester +$semesterstunden_per_semester = array(); +$le_ma = new Lehreinheitmitarbeiter(); + +// * get all semester of the lector where he was teaching actively +$active_semester_arr = $le_ma->getSemesterZuLektor($uid); +$active_semester_arr = array_keys($active_semester_arr); + +// * for each semester: +foreach($active_semester_arr as $active_semester) +{ + // * get all the lectors lehreinheiten + $le_id_arr = array(); + $le_array = $le_ma->getLehreinheiten($uid, $active_semester); + foreach($le_array as $le) + { + $le_id_arr[]= $le->lehreinheit_id; + } + + // * get total amount of semesterstunden of the lehreinheiten, where stundensatz > 0 + $total_semesterstunden = 0; + foreach ($le_id_arr as $le_id) + { + $le_ma = new Lehreinheitmitarbeiter($le_id, $uid); + if ($le_ma && (!is_null ($le_ma->stundensatz) && $le_ma->stundensatz > 0)) + { + $total_semesterstunden = $total_semesterstunden + $le_ma->semesterstunden; + } + } + + // * store term and total amount of semesterstunden + $semesterstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $active_semester, + 'total_semesterstunden' => $total_semesterstunden + ) + ); +} + +// Get the lectors projektarbeitstunden per semester +$projektstunden_per_semester = array(); +$pb = new Projektbetreuer(); +$pb->getAllProjects($person_id); +$project_arr = $pb->result; + +foreach ($project_arr as $project) +{ + $pa_id = $project->projektarbeit_id; + $projektstunden = $project->stunden; + + // * get studiensemester + $pa = new Projektarbeit($pa_id); + $le = new Lehreinheit($pa->lehreinheit_id); + $studiensemester_kurzbz = $le->studiensemester_kurzbz; + $ss = new Studiensemester($studiensemester_kurzbz); + $studiensemester_start_date = $ss->start; + + // Sum up semesterstunden by studiensemester + // * check if studiensemester already exists. If so, get array index. + $studiensemester_index = array_search($studiensemester_kurzbz, array_map(function($val) { + return $val['studiensemester_kurzbz']; + }, $projektstunden_per_semester + )); + + // * if studiensemester exists, sum up hours of projektarbeit, where stundensatz > 0 + if ($studiensemester_index !== false) + { + $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $projektstunden; + } + // * if not, create new index + else + { + $projektstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $studiensemester_kurzbz, + 'total_semesterstunden' => $projektstunden, + 'studiensemester_start_date' => $studiensemester_start_date // store start date to sort array by date afterwards + ) + ); + } +} + +// Sort projektstunden per semester by date +usort($projektstunden_per_semester, function($a, $b) +{ + return strtotime($a['studiensemester_start_date']) - strtotime($b['studiensemester_start_date']); +}); + +// Merge lehreinheit- and projektarbeitstunden arrays +foreach ($projektstunden_per_semester as $item) +{ + // check if studiensemester already exists in projektstunden-per-term-array. If so, get array index. + $studiensemester_index = array_search($item['studiensemester_kurzbz'], array_map(function($val) { + return $val['studiensemester_kurzbz']; + }, $semesterstunden_per_semester + )); + + // * if studiensemester exists, merge lehreinheit- and projektarbeit hours + if ($studiensemester_index !== false) + { + $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $item['total_semesterstunden']; + } + // * if not, create new index + else + { + $semesterstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], + 'total_semesterstunden' => intval($item['total_semesterstunden']) + ) + ); + } +} + +// Split studiensemester array into actual studiensemester array and former studiensemester array +// * get actual studiensemester +$ss = new Studiensemester(); +$actual_studiensemester = $ss->getakt(); +$actual_studiensemester_index = array_search($actual_studiensemester, array_map(function($val) { + return $val['studiensemester_kurzbz']; +}, $semesterstunden_per_semester +)); +// * split former from actual studiensemester +$semesterstunden_of_actual_semester = array(); +if ($actual_studiensemester_index !== false) +{ + $semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); // array with actual + future semester + $semesterstunden_of_actual_semester = array_pop($semesterstunden_of_actual_semester); // array with actual semester only + $semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); // array with all former semester +} + +// Begin and ending date over all existing contracts +$verwendung = new Bisverwendung(); +$verwendung->getVerwendung($uid); +$verwendung_arr = $verwendung->result; + +// * begin date of first contract +$earliest_verwendung = current($verwendung_arr); +$begin_date = !is_null($earliest_verwendung->beginn) ? new DateTime($earliest_verwendung->beginn) : null; + +// * end date of last contract +$latest_verwendung = end($verwendung_arr); +$end_date = !is_null($latest_verwendung->ende) ? new DateTime($latest_verwendung->ende) : null; + +// Semester begin and ending date of lehreinheit- and projektarbeit studiensemester +// * begin date of first lehreinheit- and projektarbeit studiensemester +$earliest_ss = current($semesterstunden_per_semester)['studiensemester_kurzbz']; +$ss = new Studiensemester($earliest_ss); +$begin_date_ss = !is_null($ss->start) ? new DateTime($ss->start) : null; + +// * end date of last lehreinheit- and projektarbeit studiensemester +$latest_ss = !empty($semesterstunden_of_actual_semester) + ? end($semesterstunden_of_actual_semester)['studiensemester_kurzbz'] + : end($semesterstunden_per_semester)['studiensemester_kurzbz']; +$ss = new Studiensemester($latest_ss); +$end_date_ss = !is_null($ss->ende) ? new DateTime($ss->ende) : null; + +/** + * Reset begin and ending date if necessary + * Basically use contracts begin and ending date, but reset if lehrtaetigkeit is shorter. + * */ +// * if semester begin > begin date +If (!is_null($begin_date_ss) && ($begin_date_ss > $begin_date)) +{ + // * begin date = semester begin + $begin_date = clone $begin_date_ss; +} +// * if semester end < end date +If (!is_null($end_date_ss) && !is_null($end_date) && ($end_date_ss < $end_date)) +{ + // * end date = semester end + $end_date = clone $end_date_ss; +} + +$actual_date = new DateTime(); + +$data = array ( + 'anrede' => $anrede, + 'full_name' => $fullname, + 'birthday' => $birthday_date->format('d.m.Y'), + 'begin_date' => !is_null($begin_date) ? $begin_date->format('d.m.Y') : '', + 'end_date' => !is_null($end_date) ? $end_date->format('d.m.Y') : '', // empty, if lector is still employed + 'total_ss_actual_semester' => $semesterstunden_of_actual_semester, // empty, if lehrauftraege in the past only, + 'actual_date' => $actual_date->format('d.m.Y') +); + +if (!empty($semesterstunden_per_semester)) +{ + foreach ($semesterstunden_per_semester as $item) + { + $data[]= array('total_ss_per_semester'=> + array( + 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], + 'total_semesterstunden' => $item['total_semesterstunden'] + ) + ); + } +} +else +{ + $data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden +} + +// Add data to lehrtaetigkeit.xsl +$doc->addDataArray($data, 'lehrtaetigkeit'); + +// Set doc name +$doc->setFilename('Lehrtaetigkeit_'. rtrim($fullname, '.')); + +// Create doc in format required +if (!$doc->create($output)) + die($doc->errormsg); + +// Download doc +$doc->output(); + +// unlink doc from tmp-folder +$doc->close(); + diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php index 85493cd9e..e1933cfa7 100644 --- a/include/lehreinheitmitarbeiter.class.php +++ b/include/lehreinheitmitarbeiter.class.php @@ -474,7 +474,7 @@ class lehreinheitmitarbeiter extends basis_db public function getLehreinheiten($mitarbeiter_uid, $studiensemester_kurzbz) { $qry = 'SELECT - DISTINCT lehreinheit_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang, + DISTINCT lehreinheit_id, lehrveranstaltung_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang, lv_semester, lehrform_kurzbz FROM campus.vw_lehreinheit From 39177fb97f326bafb0cb66b609599de30becfa96 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Wed, 10 Apr 2019 10:53:43 +0200 Subject: [PATCH 40/44] Removed check for Reihungsteststufe 1/NULL in getReihungstestErgebnisPerson Removed check for Reihungsteststufe 1 in function getReihungstestErgebnisPerson. --- include/pruefling.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/pruefling.class.php b/include/pruefling.class.php index d0c5daf8d..999efc7f2 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -400,8 +400,6 @@ class pruefling extends basis_db tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)." AND tbl_prestudentstatus.status_kurzbz='Interessent' - AND - (tbl_reihungstest.stufe = 1 OR tbl_reihungstest.stufe IS NULL) ORDER BY tbl_reihungstest.datum desc LIMIT 1 ) From 86444d89cc0fd9085d80bc906a1c2c5ad5607cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 10 Apr 2019 11:01:52 +0200 Subject: [PATCH 41/44] =?UTF-8?q?Bewerberstatistik=20-=20Legende=20hinzuge?= =?UTF-8?q?f=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/statistik/bewerberstatistik.php | 47 +++++++++++++------------ 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/content/statistik/bewerberstatistik.php b/content/statistik/bewerberstatistik.php index 252a565e5..ff61e92f4 100644 --- a/content/statistik/bewerberstatistik.php +++ b/content/statistik/bewerberstatistik.php @@ -1085,15 +1085,15 @@ if (isset($_GET['excel'])) $worksheet2->write($zeile, ++$i, $row->interessenten_w, $$format); if (strlen($row->interessenten_w) > $maxlength[$i]) $maxlength[$i] = mb_strlen($row->interessenten_w); - $worksheet2->write($zeile, ++$i, "k.A.", $$format); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); - $worksheet2->write($zeile, ++$i, "k.A.", $$format); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); - $worksheet2->write($zeile, ++$i, "k.A.", $$format); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); + $worksheet2->write($zeile, ++$i, "k.A.*", $$format); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); + $worksheet2->write($zeile, ++$i, "k.A.*", $$format); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); + $worksheet2->write($zeile, ++$i, "k.A.*", $$format); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); $worksheet2->write($zeile, ++$i, $row->interessentenrtanmeldung, $$format); if (strlen($row->interessentenrtanmeldung) > $maxlength[$i]) $maxlength[$i] = mb_strlen($row->interessentenrtanmeldung); @@ -1188,15 +1188,15 @@ if (isset($_GET['excel'])) $worksheet2->write($zeile, ++$i, $interessenten_w_sum, $format_bold); if (strlen($interessenten_w_sum) > $maxlength[$i]) $maxlength[$i] = mb_strlen($interessenten_w_sum); - $worksheet2->write($zeile, ++$i, "k.A.", $format_bold); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); - $worksheet2->write($zeile, ++$i, "k.A.", $format_bold); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); - $worksheet2->write($zeile, ++$i, "k.A.", $format_bold); - if (strlen("k.A.") > $maxlength[$i]) - $maxlength[$i] = mb_strlen("k.A."); + $worksheet2->write($zeile, ++$i, "k.A.*", $format_bold); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); + $worksheet2->write($zeile, ++$i, "k.A.*", $format_bold); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); + $worksheet2->write($zeile, ++$i, "k.A.*", $format_bold); + if (strlen("k.A.*") > $maxlength[$i]) + $maxlength[$i] = mb_strlen("k.A.*"); $worksheet2->write($zeile, ++$i, $interessentenrtanmeldung_sum, $format_bold); if (strlen($interessentenrtanmeldung_sum) > $maxlength[$i]) $maxlength[$i] = mb_strlen($interessentenrtanmeldung_sum); @@ -1253,7 +1253,9 @@ if (isset($_GET['excel'])) $maxlength[$i] = mb_strlen($student3sem_w_sum); } //Verteilung - $zeile = $zeile + 3; + $zeile = $zeile + 2; + $worksheet2->write($zeile, 0, '* für ZGV liegen zum Stichtag keine historischen Daten vor'); + $zeile = $zeile + 2; $i = 0; $worksheet2->write($zeile, 0, 'Verteilung'.$stsem, $format_bold); $worksheet2->mergeCells($zeile, $i, $zeile, $i + 1); @@ -2060,7 +2062,7 @@ else - + @@ -2099,7 +2101,7 @@ else $content .= ''; $content .= ""; $content .= ""; - $content .= ""; + $content .= ""; $content .= ""; $content .= ""; $content .= ""; @@ -2136,7 +2138,7 @@ else $content .= ''; $content .= ""; $content .= ""; - $content .= ""; + $content .= ""; $content .= ""; $content .= ""; $content .= ""; @@ -2146,6 +2148,7 @@ else $content .= ""; $content .= '
KzFolgende Personen haben eine Adresse mit Nation Österreichs, die Gemeinde liegt aber in Österreich
 
Folgende Personen haben keinen Endstatus (Absolvent, Abbrecher oder Abgewiesener) (nicht BIS relevant)
 
Ungültiger Code
AnredeTitel(Pre)
Vorname
Weitere Vornamen
Nachname *
Nachname *
Titel(Post)
Geschlecht *
Nation
LandAdresse hinzufügen'; echo ''; echo '
Geburtsnation
Staatsbürgerschaft
EMail
Telefon
Mobil
Studiengang InteressentInnen (m/w)InteressentInnen mit ZGV (m/w)InteressentInnen mit ZGV (m/w) * InteressentInnen mit RT Anmeldung (m/w) BewerberIn (m/w) Aufgenommene (m/w)
".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)$row->interessenten ($row->interessenten_m / $row->interessenten_w)k.A.k.A.*$row->interessentenrtanmeldung ($row->interessentenrtanmeldung_m / $row->interessentenrtanmeldung_w)$row->bewerber ($row->bewerber_m / $row->bewerber_w)$row->aufgenommener ($row->aufgenommener_m / $row->aufgenommener_w)
Summe$interessenten_sum ($interessenten_m_sum / $interessenten_w_sum)k.A.k.A.*$interessentenrt_sum ($interessentenrt_m_sum / $interessentenrt_w_sum)$bewerber_sum ($bewerber_m_sum / $bewerber_w_sum)$aufgenommener_sum ($aufgenommener_m_sum / $aufgenommener_w_sum)
'; + $content .= "
* für ZGV liegen zum Stichtag keine historischen Daten vor"; //Verteilung $content .= '

Verteilung '.$stsem.'


'; $qry = "SELECT From a5bd9502d8b584259317c25f15b9da183236959f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 10 Apr 2019 13:42:42 +0200 Subject: [PATCH 42/44] =?UTF-8?q?Tempus=20zeigt=20das=20Datum=20der=20letz?= =?UTF-8?q?ten=20=C3=84nderung=20von=20Zeitsperren=20im=20Tooltip=20an?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/wochenplan.class.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index bbc418c1b..8d9ee0e9c 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -1231,11 +1231,18 @@ class wochenplan extends basis_db //Wenn eine Zeitsperre eingetragen ist, dann diese im Tooltiptext anzeigen $zeitsperre = new zeitsperre(); $zeitsperre->getSperreByDate($this->pers_uid, date('Y-m-d',$datum), $j); + $datum_obj = new datum(); foreach($zeitsperre->result as $sperren) { if ($tooltip!='') $tooltip.=', '; - $tooltip.=$sperren->zeitsperretyp_kurzbz.' - '.$sperren->bezeichnung; + $aenderungsdatum = $sperren->insertamum; + if($sperren->updateamum>$sperren->insertamum) + $aenderungsdatum = $sperren->updateamum; + $updateinfo = ''; + if ($aenderungsdatum != '') + $updateinfo = ' (letzte Änderung: '.$datum_obj->formatDatum($aenderungsdatum,'d.m.Y H:i').')'; + $tooltip.=$sperren->zeitsperretyp_kurzbz.' - '.$sperren->bezeichnung.$updateinfo; } } } From 6b43e97361e7eda568e6c865e0a53dd3b8c13acf Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Wed, 10 Apr 2019 18:47:10 +0200 Subject: [PATCH 43/44] Removed check against bisverwendung in FAS document lehrtaetigkeit The check against bisverwendungen caused wrong date definitions, when a lector is teaching without a contract. Now the start end end time refer only the teaching activities. PLUS some code refactoring for easier maintainance --- cis/private/lehre/lehrtaetigkeit.pdf.php | 118 +++++++++++------------ 1 file changed, 56 insertions(+), 62 deletions(-) diff --git a/cis/private/lehre/lehrtaetigkeit.pdf.php b/cis/private/lehre/lehrtaetigkeit.pdf.php index 78380a815..d99f2bf6b 100644 --- a/cis/private/lehre/lehrtaetigkeit.pdf.php +++ b/cis/private/lehre/lehrtaetigkeit.pdf.php @@ -79,6 +79,11 @@ foreach($active_semester_arr as $active_semester) $le_id_arr[]= $le->lehreinheit_id; } + // * get begin- and end date of studiensemester + $ss = new Studiensemester($active_semester); + $studiensemester_start_date = $ss->start; + $studiensemester_end_date = $ss->ende; + // * get total amount of semesterstunden of the lehreinheiten, where stundensatz > 0 $total_semesterstunden = 0; foreach ($le_id_arr as $le_id) @@ -90,13 +95,18 @@ foreach($active_semester_arr as $active_semester) } } - // * store term and total amount of semesterstunden - $semesterstunden_per_semester []= ( - array( - 'studiensemester_kurzbz'=> $active_semester, - 'total_semesterstunden' => $total_semesterstunden - ) - ); + // * store data only if semesterstunden > 0 + if ($total_semesterstunden > 0) + { + $semesterstunden_per_semester []= ( + array( + 'studiensemester_kurzbz'=> $active_semester, + 'total_semesterstunden' => $total_semesterstunden, + 'studiensemester_start_date' => $studiensemester_start_date, + 'studiensemester_end_date' => $studiensemester_end_date + ) + ); + } } // Get the lectors projektarbeitstunden per semester @@ -105,6 +115,7 @@ $pb = new Projektbetreuer(); $pb->getAllProjects($person_id); $project_arr = $pb->result; +// * for each project foreach ($project_arr as $project) { $pa_id = $project->projektarbeit_id; @@ -114,10 +125,13 @@ foreach ($project_arr as $project) $pa = new Projektarbeit($pa_id); $le = new Lehreinheit($pa->lehreinheit_id); $studiensemester_kurzbz = $le->studiensemester_kurzbz; + + // * get begin- and end date of studiensemester $ss = new Studiensemester($studiensemester_kurzbz); $studiensemester_start_date = $ss->start; + $studiensemester_end_date = $ss->ende; - // Sum up semesterstunden by studiensemester + // Get total amount of semesterstunden by studiensemester // * check if studiensemester already exists. If so, get array index. $studiensemester_index = array_search($studiensemester_kurzbz, array_map(function($val) { return $val['studiensemester_kurzbz']; @@ -136,18 +150,13 @@ foreach ($project_arr as $project) array( 'studiensemester_kurzbz'=> $studiensemester_kurzbz, 'total_semesterstunden' => $projektstunden, - 'studiensemester_start_date' => $studiensemester_start_date // store start date to sort array by date afterwards + 'studiensemester_start_date' => $studiensemester_start_date, + 'studiensemester_end_date' => $studiensemester_end_date ) ); } } -// Sort projektstunden per semester by date -usort($projektstunden_per_semester, function($a, $b) -{ - return strtotime($a['studiensemester_start_date']) - strtotime($b['studiensemester_start_date']); -}); - // Merge lehreinheit- and projektarbeitstunden arrays foreach ($projektstunden_per_semester as $item) { @@ -168,12 +177,20 @@ foreach ($projektstunden_per_semester as $item) $semesterstunden_per_semester []= ( array( 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], - 'total_semesterstunden' => intval($item['total_semesterstunden']) + 'total_semesterstunden' => intval($item['total_semesterstunden']), + 'studiensemester_start_date' => $item['studiensemester_start_date'], + 'studiensemester_end_date' => $item['studiensemester_end_date'] ) ); } } +// Sort lehreinheit- and projektarbeitstunden array by date +usort($semesterstunden_per_semester, function($a, $b) +{ + return strtotime($a['studiensemester_start_date']) - strtotime($b['studiensemester_start_date']); +}); + // Split studiensemester array into actual studiensemester array and former studiensemester array // * get actual studiensemester $ss = new Studiensemester(); @@ -182,85 +199,62 @@ $actual_studiensemester_index = array_search($actual_studiensemester, array_map( return $val['studiensemester_kurzbz']; }, $semesterstunden_per_semester )); -// * split former from actual studiensemester + +// * if lector is teaching actually, split former teaching activities from actual teaching activities of actual studiensemester $semesterstunden_of_actual_semester = array(); if ($actual_studiensemester_index !== false) { $semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); // array with actual + future semester - $semesterstunden_of_actual_semester = array_pop($semesterstunden_of_actual_semester); // array with actual semester only $semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); // array with all former semester } -// Begin and ending date over all existing contracts -$verwendung = new Bisverwendung(); -$verwendung->getVerwendung($uid); -$verwendung_arr = $verwendung->result; - -// * begin date of first contract -$earliest_verwendung = current($verwendung_arr); -$begin_date = !is_null($earliest_verwendung->beginn) ? new DateTime($earliest_verwendung->beginn) : null; - -// * end date of last contract -$latest_verwendung = end($verwendung_arr); -$end_date = !is_null($latest_verwendung->ende) ? new DateTime($latest_verwendung->ende) : null; - // Semester begin and ending date of lehreinheit- and projektarbeit studiensemester // * begin date of first lehreinheit- and projektarbeit studiensemester -$earliest_ss = current($semesterstunden_per_semester)['studiensemester_kurzbz']; -$ss = new Studiensemester($earliest_ss); -$begin_date_ss = !is_null($ss->start) ? new DateTime($ss->start) : null; +$earliest_ss = current($semesterstunden_per_semester)['studiensemester_start_date']; +$begin_date = !is_null($earliest_ss) ? new DateTime($earliest_ss) : null; // * end date of last lehreinheit- and projektarbeit studiensemester +// * if lector is teaching on actual studiensemester, get end date of actual studiensemester $latest_ss = !empty($semesterstunden_of_actual_semester) - ? end($semesterstunden_of_actual_semester)['studiensemester_kurzbz'] - : end($semesterstunden_per_semester)['studiensemester_kurzbz']; -$ss = new Studiensemester($latest_ss); -$end_date_ss = !is_null($ss->ende) ? new DateTime($ss->ende) : null; - -/** - * Reset begin and ending date if necessary - * Basically use contracts begin and ending date, but reset if lehrtaetigkeit is shorter. - * */ -// * if semester begin > begin date -If (!is_null($begin_date_ss) && ($begin_date_ss > $begin_date)) -{ - // * begin date = semester begin - $begin_date = clone $begin_date_ss; -} -// * if semester end < end date -If (!is_null($end_date_ss) && !is_null($end_date) && ($end_date_ss < $end_date)) -{ - // * end date = semester end - $end_date = clone $end_date_ss; -} + ? current($semesterstunden_of_actual_semester)['studiensemester_end_date'] +// * else get end date of the last of his teaching studiensemester + : end($semesterstunden_per_semester)['studiensemester_end_date']; +$end_date = !is_null($latest_ss) ? new DateTime($latest_ss) : null; $actual_date = new DateTime(); +// if the lector is still employed, reset the end date to null +if ($end_date > $actual_date) +{ + $end_date = null; +} + $data = array ( 'anrede' => $anrede, 'full_name' => $fullname, 'birthday' => $birthday_date->format('d.m.Y'), 'begin_date' => !is_null($begin_date) ? $begin_date->format('d.m.Y') : '', 'end_date' => !is_null($end_date) ? $end_date->format('d.m.Y') : '', // empty, if lector is still employed - 'total_ss_actual_semester' => $semesterstunden_of_actual_semester, // empty, if lehrauftraege in the past only, + 'total_ss_actual_semester' => current($semesterstunden_of_actual_semester), // empty, if lector has no lehreinheit- or projektarbeitsstunden at the actual studiensemester 'actual_date' => $actual_date->format('d.m.Y') ); +// Put semesterstunden per semester array in correct format for xsl template if (!empty($semesterstunden_per_semester)) { - foreach ($semesterstunden_per_semester as $item) + foreach ($semesterstunden_per_semester as &$item) { $data[]= array('total_ss_per_semester'=> - array( - 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], - 'total_semesterstunden' => $item['total_semesterstunden'] - ) + array( + 'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'], + 'total_semesterstunden' => $item['total_semesterstunden'] + ) ); } } else { - $data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden + $data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden in the past (before the actual studiensemester) } // Add data to lehrtaetigkeit.xsl From d32c7649559f8673d1ecbbc5fa3d36d9c02a0cb3 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 11 Apr 2019 10:11:08 +0200 Subject: [PATCH 44/44] - Lehrveranstaltung_model: getLvsWithIncomings method takes studienplan_lehrveranstaltung export field (= studienplanrelevant) into account --- application/models/education/Lehrveranstaltung_model.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 6813773f3..1685ddf81 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -240,9 +240,9 @@ class Lehrveranstaltung_model extends DB_Model WITH gueltige_studienplaene AS ( SELECT studienplan_id, semester FROM lehre.tbl_studienplan - JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) WHERE tbl_studienplan.aktiv - AND lehre.tbl_studienplan_semester.studiensemester_kurzbz = ? + AND lehre.tbl_studienplan_semester.studiensemester_kurzbz = ? ) SELECT 1 FROM lehre.tbl_studienplan_lehrveranstaltung @@ -251,6 +251,7 @@ class Lehrveranstaltung_model extends DB_Model (SELECT semester FROM gueltige_studienplaene WHERE gueltige_studienplaene.studienplan_id = tbl_studienplan_lehrveranstaltung.studienplan_id) AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id + AND tbl_studienplan_lehrveranstaltung.export ) OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?) )