From e81864e6835d41c7392acf3812ae13ac2fd16d80 Mon Sep 17 00:00:00 2001 From: salam Date: Tue, 6 Oct 2026 19:40:28 +0200 Subject: [PATCH] first commit --- composer.json | 63 + composer.lock | 8218 ++++++++ config/sites/app/config.yaml | 26 + config/sites/zuladungsliste/config.yaml | 26 + packages/zuladungsliste/.gitignore | 5 + packages/zuladungsliste/.vscode/settings.json | 22 + .../Classes/Backend/FixUser.php | 45 + .../zuladungsliste/Classes/Backend/Labels.php | 251 + .../Classes/Backend/Selecting.php | 68 + .../Classes/Berechnung/Architekten.php | 72 + .../Berechnung/AufloesungPunkteVerteilung.php | 164 + .../Classes/Berechnung/Erfolgspunkte.php | 214 + .../Classes/Berechnung/Frauen.php | 78 + .../Classes/Berechnung/Neueinsteiger.php | 75 + .../Classes/Berechnung/PunkteKriterien.php | 62 + .../Classes/Berechnung/PunkteVerschiebung.php | 168 + .../Classes/Berechnung/Sektionstage.php | 105 + .../Berechnung/Solidaritaetserklaerung.php | 43 + .../Classes/Berechnung/Sondersperrungen.php | 98 + .../Berechnung/WettbewerbeArchitekten.php | 63 + .../Classes/Berechnung/_Berechnung.php | 287 + .../Classes/Bootstrap/KammerById.php | 41 + .../Classes/Bootstrap/UserSettings.php | 71 + .../Bootstrap/_BootstrapController.php | 42 + .../Controller/AdministrationController.php | 35 + .../Controller/ArchitektenController.php | 150 + .../Classes/Controller/EditController.php | 20 + .../Controller/ExtrasperrungController.php | 136 + .../Controller/KriterienController.php | 142 + .../Classes/Controller/NewController.php | 20 + .../Controller/WettbewerbeController.php | 225 + .../Classes/Domain/Model/Architekten.php | 193 + .../Classes/Domain/Model/Extrasperrung.php | 120 + .../Classes/Domain/Model/Kammern.php | 63 + .../Classes/Domain/Model/Kriterien.php | 119 + .../Classes/Domain/Model/Preisart.php | 63 + .../Classes/Domain/Model/Punkte.php | 63 + .../Classes/Domain/Model/Sektionstage.php | 371 + .../Classes/Domain/Model/User.php | 90 + .../Classes/Domain/Model/Wettbewerbe.php | 355 + .../Repository/ArchitektenRepository.php | 36 + .../Domain/Repository/KriterienRepository.php | 36 + .../Repository/WettbewerbeRepository.php | 36 + .../Classes/Download/PdfEinreichung.php | 38 + .../Classes/Download/PdfListe.php | 105 + .../Classes/Download/_DownloadController.php | 39 + .../zuladungsliste/Classes/Download/print.css | 98 + .../zuladungsliste/Classes/Download/style.css | 121 + .../Classes/Einreichen/EinreichungDelete.php | 47 + .../Classes/Einreichen/EinreichungenUser.php | 57 + .../Einreichen/_EinreichenController.php | 36 + .../zuladungsliste/Classes/Liste/Archive.php | 41 + .../Classes/Liste/ArchiveMenu.php | 55 + .../Classes/Liste/EinreichungenAdmin.php | 149 + .../Classes/Liste/Freischaltungen.php | 175 + .../Classes/Liste/ListeAdmin.php | 45 + .../Classes/Liste/ListeTree.php | 214 + .../Classes/Liste/Recalculate.php | 101 + .../Classes/Liste/_ListeController.php | 61 + .../Classes/Middleware/Ajax.php | 74 + .../Classes/PunkteZuweisung/Preise.php | 118 + .../PunkteZuweisung/PunkteZuweisen.php | 170 + .../PunkteZuweisung/PunkteZuweisungen.php | 94 + .../_PunkteZuweisungController.php | 41 + .../Classes/Scheduler/CronTask.php | 17 + .../zuladungsliste/Classes/Upload/Upload.php | 118 + .../Classes/Upload/_UploadController.php | 41 + .../zuladungsliste/Classes/User/UserKonto.php | 199 + .../Classes/User/_UserController.php | 40 + .../Classes/Utilities/FileUtility.php | 40 + .../Classes/Utilities/Message.php | 36 + .../Classes/Utilities/Resources.php | 72 + .../Zuladungsliste/PositionArchitekt.php | 44 + .../Zuladungsliste/Punktezuweisung.php | 78 + .../Zuladungsliste/TreemenuPosition.php | 97 + .../_ZuladungslisteController.php | 40 + .../Classes/Zuteilungen/Zuteilung.php | 140 + .../Classes/Zuteilungen/ZuteilungNeu.php | 122 + .../Zuteilungen/ZuteilungWettbewerbe.php | 78 + .../Classes/Zuteilungen/Zuteilungen.php | 86 + .../Zuteilungen/ZuteilungenErteilt.php | 53 + .../Zuteilungen/_ZuteilungenController.php | 50 + .../Extbase/Persistence/Classes.php | 21 + .../FlexForms/flexform_zuladungsliste.xml | 37 + .../Configuration/RequestMiddlewares.php | 12 + .../Configuration/TCA/Overrides/fe_users.php | 206 + .../TCA/Overrides/sys_template.php | 5 + .../TCA/Overrides/tt_content.php | 41 + ...adungsliste_domain_model_extrasperrung.php | 10 + ...tx_zuladungsliste_domain_model_kammern.php | 9 + ..._zuladungsliste_domain_model_kriterien.php | 11 + ...x_zuladungsliste_domain_model_preisart.php | 9 + .../tx_zuladungsliste_domain_model_punkte.php | 9 + ...ladungsliste_domain_model_sektionstage.php | 11 + ...uladungsliste_domain_model_wettbewerbe.php | 9 + .../tx_zuladungsliste_konto_aufloesung_mm.php | 11 + .../tx_zuladungsliste_punkte_kriterien_mm.php | 12 + ..._zuladungsliste_punkte_verschiebung_mm.php | 13 + ...adungsliste_wettbewerbe_architekten_mm.php | 15 + ...adungsliste_domain_model_extrasperrung.php | 174 + ...tx_zuladungsliste_domain_model_kammern.php | 101 + ..._zuladungsliste_domain_model_kriterien.php | 187 + ...x_zuladungsliste_domain_model_preisart.php | 84 + .../tx_zuladungsliste_domain_model_punkte.php | 98 + ...ladungsliste_domain_model_sektionstage.php | 263 + ...uladungsliste_domain_model_wettbewerbe.php | 263 + ...x_zuladungsliste_extrasperrung_user_mm.php | 48 + .../tx_zuladungsliste_konto_aufloesung_mm.php | 62 + .../tx_zuladungsliste_punkte_kriterien_mm.php | 59 + ..._zuladungsliste_punkte_verschiebung_mm.php | 109 + ...adungsliste_wettbewerbe_architekten_mm.php | 128 + .../TypoScript/constants.typoscript | 30 + .../Configuration/TypoScript/setup.typoscript | 101 + packages/zuladungsliste/Readme.md | 29 + .../Resources/Private/.htaccess | 11 + .../Private/Backend/Layouts/Default.html | 36 + .../Private/Backend/Partials/FormErrors.html | 13 + .../Partials/Kriterien/FormFields.html | 5 + .../Partials/Kriterien/Properties.html | 11 + .../Partials/Wettbewerbe/FormFields.html | 41 + .../Partials/Wettbewerbe/Properties.html | 83 + .../Backend/Templates/Architekten/List.html | 43 + .../Backend/Templates/Kriterien/Edit.html | 26 + .../Backend/Templates/Kriterien/List.html | 37 + .../Backend/Templates/Kriterien/New.html | 26 + .../Backend/Templates/Kriterien/Show.html | 22 + .../Backend/Templates/Wettbewerbe/Edit.html | 26 + .../Backend/Templates/Wettbewerbe/Front.html | 5 + .../Backend/Templates/Wettbewerbe/List.html | 55 + .../Backend/Templates/Wettbewerbe/New.html | 26 + .../Backend/Templates/Wettbewerbe/Show.html | 22 + .../Resources/Private/Language/locallang.xlf | 140 + .../Language/locallang_bezuladungsliste.xlf | 14 + .../Language/locallang_bmzuladungsliste.xlf | 18 + .../Language/locallang_csh_fe_users.xlf | 20 + ...adungsliste_domain_model_extrasperrung.xlf | 17 + ...tx_zuladungsliste_domain_model_kammern.xlf | 11 + ..._zuladungsliste_domain_model_kriterien.xlf | 17 + ...x_zuladungsliste_domain_model_preisart.xlf | 11 + ..._tx_zuladungsliste_domain_model_punkte.xlf | 11 + ...ladungsliste_domain_model_sektionstage.xlf | 44 + ...uladungsliste_domain_model_wettbewerbe.xlf | 41 + .../Private/Language/locallang_db.xlf | 143 + .../Resources/Private/Layouts/Default.html | 4 + .../Private/Layouts/EmptyPageRenderer.html | 27 + .../Private/Partials/Fields/Address.html | 15 + .../Private/Partials/Fields/Captcha.html | 33 + .../Private/Partials/Fields/CaptchaField.html | 21 + .../Private/Partials/Fields/City.html | 15 + .../Private/Partials/Fields/Company.html | 15 + .../Private/Partials/Fields/Country.html | 62 + .../Private/Partials/Fields/DateOfBirth.html | 18 + .../Private/Partials/Fields/Email.html | 16 + .../Private/Partials/Fields/Fax.html | 16 + .../Private/Partials/Fields/FirstName.html | 15 + .../Partials/Fields/Frauenfoerderpunkt.html | 17 + .../Private/Partials/Fields/Image.html | 29 + .../Fields/Kammermitgliedsnummer.html | 14 + .../Private/Partials/Fields/LastName.html | 15 + .../Private/Partials/Fields/MiddleName.html | 16 + .../Private/Partials/Fields/Name.html | 16 + .../Private/Partials/Fields/Password.html | 36 + .../Private/Partials/Fields/State.html | 19 + .../Private/Partials/Fields/SubmitCreate.html | 8 + .../Private/Partials/Fields/SubmitUpdate.html | 8 + .../Private/Partials/Fields/Telephone.html | 15 + .../Private/Partials/Fields/Terms.html | 24 + .../Private/Partials/Fields/Title.html | 19 + .../Private/Partials/Fields/Usergroup.html | 61 + .../Private/Partials/Fields/Username.html | 18 + .../Private/Partials/Fields/Vereidigung.html | 13 + .../Private/Partials/Fields/Www.html | 16 + .../Private/Partials/Fields/Zip.html | 15 + .../Private/Partials/FormErrors.html | 13 + .../Partials/Kriterien/FormFields.html | 5 + .../Partials/Kriterien/Properties.html | 11 + .../Partials/Wettbewerbe/FormFields.html | 41 + .../Partials/Wettbewerbe/Properties.html | 83 + .../Private/Templates/Architekten/List.html | 43 + .../Templates/Felogin/Login/Login.html | 150 + .../Templates/Felogin/Login/Logout.html | 46 + .../Private/Templates/Kriterien/Edit.html | 26 + .../Private/Templates/Kriterien/List.html | 37 + .../Private/Templates/Kriterien/New.html | 26 + .../Private/Templates/Kriterien/Show.html | 22 + .../Private/Templates/Wettbewerbe/Edit.html | 26 + .../Private/Templates/Wettbewerbe/List.html | 55 + .../Private/Templates/Wettbewerbe/New.html | 26 + .../Private/Templates/Wettbewerbe/Show.html | 22 + .../Resources/Public/Css/Backend/backend.css | 59 + .../Resources/Public/Css/img/filter.png | Bin 0 -> 459 bytes .../Resources/Public/Css/img/lupe.png | Bin 0 -> 525 bytes .../Resources/Public/Css/visual/backend.css | 54 + .../Resources/Public/Css/zuladungsliste.css | 1401 ++ .../Raleway/raleway-v28-latin-regular.eot | Bin 0 -> 24624 bytes .../Raleway/raleway-v28-latin-regular.svg | 326 + .../Raleway/raleway-v28-latin-regular.ttf | Bin 0 -> 46760 bytes .../Raleway/raleway-v28-latin-regular.woff | Bin 0 -> 25916 bytes .../Raleway/raleway-v28-latin-regular.woff2 | Bin 0 -> 21280 bytes .../Resources/Public/Icons/Extension.png | Bin 0 -> 2977 bytes .../Resources/Public/Icons/ExtensionAdler.png | Bin 0 -> 57099 bytes .../Public/Icons/ExtensionBgWhite.png | Bin 0 -> 53397 bytes .../Resources/Public/Icons/ext_icon.gif | Bin 0 -> 1579 bytes .../Resources/Public/Icons/lupe.png | Bin 0 -> 310 bytes .../Resources/Public/Icons/relation.gif | Bin 0 -> 233 bytes .../Public/Icons/svg/competition.svg | 59 + .../Resources/Public/Icons/svg/kammer.svg | 5 + .../Resources/Public/Icons/svg/list.svg | 2 + .../Resources/Public/Icons/svg/preis.svg | 3 + .../Resources/Public/Icons/svg/transfer.svg | 3 + .../Resources/Public/Icons/svg/waage.svg | 2 + .../Resources/Public/Icons/svg/wettbewerb.svg | 3 + ...adungsliste_domain_model_extrasperrung.gif | Bin 0 -> 1189 bytes ...adungsliste_domain_model_extrasperrung.svg | 8 + ...tx_zuladungsliste_domain_model_kammern.gif | Bin 0 -> 1221 bytes ...tx_zuladungsliste_domain_model_kammern.svg | 10 + ..._zuladungsliste_domain_model_kriterien.gif | Bin 0 -> 1284 bytes ..._zuladungsliste_domain_model_kriterien.svg | 8 + ...x_zuladungsliste_domain_model_preisart.gif | Bin 0 -> 1184 bytes ...x_zuladungsliste_domain_model_preisart.svg | 8 + .../tx_zuladungsliste_domain_model_punkte.gif | Bin 0 -> 1231 bytes .../tx_zuladungsliste_domain_model_punkte.svg | 8 + ...ladungsliste_domain_model_sektionstage.gif | Bin 0 -> 1184 bytes ...ladungsliste_domain_model_sektionstage.svg | 8 + ...uladungsliste_domain_model_wettbewerbe.gif | Bin 0 -> 1218 bytes ...uladungsliste_domain_model_wettbewerbe.svg | 8 + .../Resources/Public/Icons/zuladungacht.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungalle.png | Bin 0 -> 1152 bytes .../Resources/Public/Icons/zuladungdrei.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungfree.png | Bin 0 -> 1130 bytes .../Resources/Public/Icons/zuladungfuenf.png | Bin 0 -> 1283 bytes .../Public/Icons/zuladunggesperrt.png | Bin 0 -> 1134 bytes .../Resources/Public/Icons/zuladungneun.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungpdf.png | Bin 0 -> 1450 bytes .../Resources/Public/Icons/zuladungsechs.png | Bin 0 -> 1285 bytes .../Resources/Public/Icons/zuladungsieben.png | Bin 0 -> 1284 bytes .../Resources/Public/Icons/zuladungsliste.png | Bin 0 -> 57099 bytes .../Resources/Public/Icons/zuladungvier.png | Bin 0 -> 1281 bytes .../Resources/Public/Icons/zuladungzwei.png | Bin 0 -> 1156 bytes .../Images/Historic_City_Center_of_Graz.jpg | Bin 0 -> 945427 bytes .../Resources/Public/Images/arching.png | Bin 0 -> 111851 bytes .../Resources/Public/Images/bgpattern.png | Bin 0 -> 962 bytes .../Resources/Public/Images/ext_icon.png | Bin 0 -> 57099 bytes .../Resources/Public/Images/logo-neu.png | Bin 0 -> 444485 bytes .../Resources/Public/Images/logo.png | Bin 0 -> 62553 bytes .../Resources/Public/Images/panther.png | Bin 0 -> 52921 bytes .../Public/Images/zt-kammer-logo-504x100.png | Bin 0 -> 25369 bytes .../Resources/Public/Images/zt-logo-tr.png | Bin 0 -> 83724 bytes .../Resources/Public/Images/zt-logo.JPG | Bin 0 -> 68937 bytes .../Resources/Public/Images/zt-logo.png | Bin 0 -> 83724 bytes .../Public/Images/ztkammer-adler.png | Bin 0 -> 7411 bytes .../Public/Images/ztkammer-logo-adler.png | Bin 0 -> 19351 bytes .../Resources/Public/Images/ztkammer-logo.png | Bin 0 -> 10288 bytes .../administrator/auswertung_alle.js | 231 + .../administrator/einreichungen.js | 314 + .../administrator/punkte_freischalten.js | 280 + .../administrator/zuteilungen.js | 462 + .../Zuladungsliste/architekt/einreichung.js | 371 + .../Zuladungsliste/architekt/konto.js | 166 + .../Zuladungsliste/architekt/position.js | 270 + .../Zuladungsliste/architekt/zuweisung.js | 301 + .../columns/columns_auswertungen.js | 73 + .../columns/columns_eigereichte_architekt.js | 101 + .../columns_einreichungen_administrator.js | 105 + .../columns_freischaltungen_administrator.js | 87 + .../columns/columns_konto_architekt.js | 42 + .../columns_zuteilungen_administrator.js | 114 + .../columns/columns_zuweisung_architekt.js | 75 + .../menus/menuitems_einreichungen.js | 120 + .../menus/menuitems_freischalten.js | 128 + .../menus/menuitems_zuladungsliste_admin.js | 331 + .../menus/menuitems_zuteilung.js | 147 + .../menus/menuitems_zuweisung.js | 124 + .../zuladungsliste_functions.js | 698 + .../zuladungsliste_modul_loader.js | 39 + .../Zuladungsliste/zuladungsliste_pi1.js | 92 + .../Zuladungsliste/zuladungsliste_pi2.js | 89 + .../Zuladungsliste/zuladungsliste_topmenu.js | 92 + .../Zuladungsliste/zuladungsliste_xhr.js | 126 + .../Resources/Public/JavaScript/package.json | 8 + packages/zuladungsliste/composer.json | 38 + packages/zuladungsliste/ext_emconf.php | 34 + packages/zuladungsliste/ext_localconf.php | 94 + packages/zuladungsliste/ext_tables.php | 60 + packages/zuladungsliste/ext_tables.sql | 333 + .../zuladungsliste/fix-table-datetime.sql | 35 + public/.htaccess | 395 + public/favicon.ico | Bin 0 -> 1150 bytes public/typo3conf/.LocalConfiguration.php.swp | Bin 0 -> 16384 bytes public/typo3conf/PackageStates.php | 109 + .../autoload/autoload_classaliasmap.php | 9 + .../typo3conf/autoload/autoload_classmap.php | 167 + public/typo3conf/autoload/autoload_psr4.php | 13 + .../bootstrap_package/.php-cs-fixer.dist.php | 74 + .../ext/bootstrap_package/.phplint.yml | 7 + .../ext/bootstrap_package/CHANGELOG.md | 2477 +++ .../ToolbarItem/VersionToolbarItem.php | 67 + .../DataProcessing/ConstantsProcessor.php | 90 + .../ContainerContextProcessor.php | 79 + .../DataProcessing/CsvFileProcessor.php | 74 + .../DataProcessing/FileFilterProcessor.php | 102 + .../DataProcessing/FlexFormProcessor.php | 84 + .../DataProcessing/IconsDataProcessor.php | 91 + .../DataProcessing/StaticFilesProcessor.php | 81 + .../ExpressionLanguage/ConditionProvider.php | 27 + .../ExpressionLanguage/ExtensionWrapper.php | 28 + .../Classes/Form/FieldWizard/IconWizard.php | 106 + .../Hooks/PageRenderer/GoogleFontHook.php | 110 + .../Hooks/PageRenderer/PreProcessHook.php | 67 + .../Classes/Icons/AbstractIcon.php | 140 + .../Classes/Icons/FileIcon.php | 84 + .../Classes/Icons/GlyphiconsProvider.php | 74 + .../Classes/Icons/IconInterface.php | 76 + .../Classes/Icons/IconList.php | 61 + .../Classes/Icons/IconProviderInterface.php | 37 + .../Classes/Icons/IoniconsProvider.php | 74 + .../Classes/Icons/SvgIcon.php | 54 + .../Classes/Parser/AbstractParser.php | 133 + .../Classes/Parser/ParserInterface.php | 29 + .../Classes/Parser/ScssParser.php | 171 + .../Classes/Service/BrandingService.php | 60 + .../Classes/Service/CompileService.php | 142 + .../Classes/Service/GoogleFontService.php | 157 + .../Classes/Service/IconService.php | 88 + .../Classes/Updates/AbstractUpdate.php | 173 + .../Updates/AccordionContentElementUpdate.php | 60 + .../Updates/AccordionMediaOrientUpdate.php | 78 + .../Classes/Updates/BackendLayoutUpdate.php | 89 + .../Updates/BulletContentElementUpdate.php | 75 + .../Updates/CarouselContentElementUpdate.php | 78 + .../Updates/CarouselItemLayoutUpdate.php | 55 + .../Updates/CarouselItemTypeUpdate.php | 67 + .../Updates/Criteria/AbstractCriteria.php | 37 + .../Updates/Criteria/CreaterThanCriteria.php | 38 + .../Updates/Criteria/CriteriaInterface.php | 16 + .../Updates/Criteria/EqualStringCriteria.php | 43 + .../Classes/Updates/Criteria/InCriteria.php | 43 + .../Classes/Updates/Criteria/LikeCriteria.php | 38 + .../ExternalMediaContentElementUpdate.php | 60 + .../Updates/FrameClassToBackgroundUpdate.php | 81 + .../Classes/Updates/FrameClassUpdate.php | 81 + .../Updates/ListGroupContentElementUpdate.php | 60 + .../Updates/PanelContentElementUpdate.php | 74 + .../Updates/TabContentElementUpdate.php | 60 + .../Classes/Updates/TabMediaOrientUpdate.php | 78 + .../Updates/TableContentElementUpdate.php | 77 + .../Updates/TexticonContentElementUpdate.php | 60 + .../Classes/Updates/TexticonIconUpdate.php | 65 + .../Classes/Updates/TexticonSizeUpdate.php | 80 + .../Classes/Updates/TexticonTypeUpdate.php | 79 + .../Classes/Userfuncs/Tca.php | 21 + .../Classes/Utility/ExternalMediaUtility.php | 142 + .../Classes/Utility/ImageVariantsUtility.php | 246 + .../Classes/Utility/SvgUtility.php | 128 + .../ViewHelpers/Data/ImageInfoViewHelper.php | 82 + .../Data/ImageVariantsViewHelper.php | 53 + .../ViewHelpers/Data/PaginateViewHelper.php | 123 + .../Classes/ViewHelpers/ExplodeViewHelper.php | 64 + .../ViewHelpers/ExternalMediaViewHelper.php | 66 + .../Classes/ViewHelpers/FalViewHelper.php | 87 + .../ViewHelpers/File/IsAudioViewHelper.php | 50 + .../ViewHelpers/File/IsImageViewHelper.php | 50 + .../ViewHelpers/File/IsMediaViewHelper.php | 50 + .../Format/LowercaseDashedViewHelper.php | 43 + .../ViewHelpers/Format/TrimViewHelper.php | 34 + .../Format/UpperCamelCaseViewHelper.php | 34 + .../Classes/ViewHelpers/IconViewHelper.php | 65 + .../ViewHelpers/InlineSvgViewHelper.php | 65 + .../ViewHelpers/Link/LightboxViewHelper.php | 106 + .../ViewHelpers/Link/PaginateViewHelper.php | 71 + .../TypoScript/ConstantViewHelper.php | 64 + .../bootstrap_package/Configuration/.htaccess | 2 + .../Configuration/ExpressionLanguage.php | 14 + .../Configuration/FlexForms/Accordion.xml | 36 + .../FlexForms/BackgroundImage.xml | 74 + .../Configuration/FlexForms/CardGroup.xml | 70 + .../Configuration/FlexForms/Carousel.xml | 79 + .../Configuration/FlexForms/IconGroup.xml | 110 + .../Configuration/FlexForms/MenuCard.xml | 70 + .../Configuration/FlexForms/MenuThumbnail.xml | 70 + .../Configuration/FlexForms/Tab.xml | 36 + .../Configuration/FlexForms/Timeline.xml | 38 + .../Configuration/Form/Setup.yaml | 25 + .../Configuration/RTE/Default.yaml | 151 + .../Configuration/Services.yaml | 11 + .../Configuration/TCA/Overrides/100_pages.php | 186 + .../TCA/Overrides/101_sys_template.php | 50 + .../TCA/Overrides/102_tt_content.php | 19 + .../200_content_element_accordion.php | 100 + .../Overrides/201_content_element_audio.php | 90 + .../Overrides/202_content_element_bullets.php | 17 + .../203_content_element_card_group.php | 102 + .../204_content_element_carousel.php | 74 + .../205_content_element_carousel_small.php | 74 + ...06_content_element_carousel_fullscreen.php | 74 + .../TCA/Overrides/207_content_element_csv.php | 93 + .../208_content_element_externalmedia.php | 100 + .../Overrides/209_content_element_header.php | 17 + .../210_content_element_icon_group.php | 102 + .../Overrides/211_content_element_image.php | 25 + .../212_content_element_listgroup.php | 73 + .../Overrides/213_content_element_media.php | 95 + .../214_content_element_menu_card_list.php | 77 + .../215_content_element_menu_card_dir.php | 77 + ...16_content_element_menu_thumbnail_list.php | 76 + ...217_content_element_menu_thumbnail_dir.php | 76 + .../Overrides/218_content_element_panel.php | 103 + .../Overrides/219_content_element_quote.php | 101 + .../220_content_element_social_links.php | 72 + .../TCA/Overrides/221_content_element_tab.php | 102 + .../Overrides/222_content_element_table.php | 17 + .../Overrides/223_content_element_text.php | 17 + .../224_content_element_textcolumn.php | 73 + .../225_content_element_texticon.php | 222 + .../226_content_element_textmedia.php | 17 + .../Overrides/227_content_element_textpic.php | 25 + .../228_content_element_textteaser.php | 74 + .../229_content_element_timeline.php | 102 + .../Overrides/230_content_element_uploads.php | 17 + .../Overrides/231_content_element_gallery.php | 79 + .../Overrides/300_content_general_columns.php | 221 + .../301_content_general_palettes.php | 19 + .../400_bootstrappackage_carousel_item.php | 23 + .../TCA/Overrides/500_cropping.php | 148 + .../TCA/Overrides/600_ext_container.php | 152 + .../tx_bootstrappackage_accordion_item.php | 341 + .../tx_bootstrappackage_card_group_item.php | 420 + .../TCA/tx_bootstrappackage_carousel_item.php | 728 + .../tx_bootstrappackage_icon_group_item.php | 315 + .../TCA/tx_bootstrappackage_tab_item.php | 341 + .../TCA/tx_bootstrappackage_timeline_item.php | 351 + .../TsConfig/Page/ContentElement/All.tsconfig | 5 + .../Page/ContentElement/Categories.tsconfig | 10 + .../ContentElement/Element/Accordion.tsconfig | 16 + .../ContentElement/Element/Audio.tsconfig | 16 + .../ContentElement/Element/Bullets.tsconfig | 16 + .../ContentElement/Element/CardGroup.tsconfig | 29 + .../ContentElement/Element/Carousel.tsconfig | 16 + .../Element/CarouselFullscreen.tsconfig | 16 + .../Element/CarouselSmall.tsconfig | 16 + .../Page/ContentElement/Element/Csv.tsconfig | 25 + .../Element/ExternalMedia.tsconfig | 25 + .../ContentElement/Element/Gallery.tsconfig | 16 + .../ContentElement/Element/Header.tsconfig | 16 + .../ContentElement/Element/IconGroup.tsconfig | 16 + .../ContentElement/Element/Image.tsconfig | 16 + .../ContentElement/Element/ListGroup.tsconfig | 25 + .../ContentElement/Element/Media.tsconfig | 16 + .../Element/MenuCardDir.tsconfig | 16 + .../Element/MenuCardList.tsconfig | 16 + .../Element/MenuThumbnailDir.tsconfig | 16 + .../Element/MenuThumbnailList.tsconfig | 16 + .../ContentElement/Element/Panel.tsconfig | 16 + .../ContentElement/Element/Quote.tsconfig | 25 + .../Element/SocialLinks.tsconfig | 16 + .../Page/ContentElement/Element/Tab.tsconfig | 16 + .../ContentElement/Element/Table.tsconfig | 29 + .../Page/ContentElement/Element/Text.tsconfig | 16 + .../Element/Textcolumn.tsconfig | 16 + .../ContentElement/Element/Texticon.tsconfig | 16 + .../ContentElement/Element/Textmedia.tsconfig | 29 + .../ContentElement/Element/Textpic.tsconfig | 29 + .../Element/Textteaser.tsconfig | 16 + .../ContentElement/Element/Timeline.tsconfig | 16 + .../ContentElement/Element/Uploads.tsconfig | 16 + .../Mod/WebLayout/BackendLayouts.tsconfig | 4 + .../BackendLayouts/2_columns.tsconfig | 81 + .../BackendLayouts/2_columns_25_75.tsconfig | 81 + .../BackendLayouts/2_columns_50_50.tsconfig | 81 + .../2_columns_offset_right.tsconfig | 81 + .../BackendLayouts/3_columns.tsconfig | 86 + .../WebLayout/BackendLayouts/default.tsconfig | 76 + .../WebLayout/BackendLayouts/simple.tsconfig | 57 + .../BackendLayouts/special_feature.tsconfig | 141 + .../BackendLayouts/special_start.tsconfig | 95 + .../subnavigation_left.tsconfig | 80 + .../subnavigation_left_2_columns.tsconfig | 85 + .../subnavigation_right.tsconfig | 80 + .../subnavigation_right_2_columns.tsconfig | 85 + .../Configuration/TsConfig/Page/RTE.tsconfig | 8 + .../TsConfig/Page/TCADefaults.tsconfig | 8 + .../TsConfig/Page/TCEFORM.tsconfig | 72 + .../TsConfig/Page/TCEMAIN.tsconfig | 11 + .../Bootstrap4/constants.typoscript | 105 + .../TypoScript/Bootstrap4/setup.typoscript | 15 + .../Bootstrap5/constants.typoscript | 107 + .../TypoScript/Bootstrap5/setup.typoscript | 15 + .../Element/Accordion.typoscript | 111 + .../ContentElement/Element/Audio.typoscript | 24 + .../ContentElement/Element/Bullets.typoscript | 40 + .../Element/CardGroup.typoscript | 135 + .../Element/Carousel.typoscript | 73 + .../Element/CarouselFullscreen.typoscript | 73 + .../Element/CarouselSmall.typoscript | 73 + .../ContentElement/Element/Csv.typoscript | 33 + .../ContentElement/Element/Div.typoscript | 14 + .../Element/ExternalMedia.typoscript | 14 + .../ContentElement/Element/Gallery.typoscript | 29 + .../ContentElement/Element/Header.typoscript | 14 + .../ContentElement/Element/Html.typoscript | 14 + .../Element/IconGroup.typoscript | 41 + .../ContentElement/Element/Image.typoscript | 30 + .../ContentElement/Element/List.typoscript | 13 + .../Element/ListGroup.typoscript | 26 + .../ContentElement/Element/Media.typoscript | 30 + .../Element/MenuAbstract.typoscript | 45 + .../Element/MenuCardDir.typoscript | 148 + .../Element/MenuCardList.typoscript | 149 + .../Element/MenuCategorizedContent.typoscript | 54 + .../Element/MenuCategorizedPages.typoscript | 50 + .../Element/MenuPages.typoscript | 46 + .../Element/MenuRecentlyUpdated.typoscript | 49 + .../Element/MenuRelatedPages.typoscript | 48 + .../Element/MenuSection.typoscript | 70 + .../Element/MenuSectionPages.typoscript | 59 + .../Element/MenuSitemap.typoscript | 46 + .../Element/MenuSitemapPages.typoscript | 46 + .../Element/MenuSubpages.typoscript | 45 + .../Element/MenuThumbnailDir.typoscript | 103 + .../Element/MenuThumbnailList.typoscript | 104 + .../ContentElement/Element/Panel.typoscript | 14 + .../ContentElement/Element/Quote.typoscript | 14 + .../Element/Shortcut.typoscript | 25 + .../Element/SocialLinks.typoscript | 25 + .../ContentElement/Element/Tab.typoscript | 75 + .../ContentElement/Element/Table.typoscript | 33 + .../ContentElement/Element/Text.typoscript | 14 + .../Element/Textcolumn.typoscript | 14 + .../Element/Texticon.typoscript | 27 + .../Element/Textmedia.typoscript | 105 + .../ContentElement/Element/Textpic.typoscript | 111 + .../Element/Textteaser.typoscript | 14 + .../Element/Timeline.typoscript | 76 + .../ContentElement/Element/Uploads.typoscript | 27 + .../Helper/ContentElement.typoscript | 687 + .../Helper/DynamicContent.typoscript | 118 + .../Helper/ParseFunc.typoscript | 141 + .../ContentElement/constants.typoscript | 175 + .../ContentElement/setup.typoscript | 59 + .../CookieConsent/constants.typoscript | 42 + .../TypoScript/CookieConsent/setup.typoscript | 11 + .../Extension/Container/setup.typoscript | 229 + .../Extension/Felogin/constants.typoscript | 6 + .../Extension/Felogin/setup.typoscript | 19 + .../Extension/Form/constants.typoscript | 3 + .../Extension/Form/setup.typoscript | 5 + .../IndexedSearch/constants.typoscript | 5 + .../Extension/IndexedSearch/setup.typoscript | 22 + .../Extension/Seo/constants.typoscript | 5 + .../TypoScript/Extension/Seo/setup.typoscript | 22 + .../TypoScript/Helper/Block.typoscript | 54 + .../TypoScript/Helper/PageClass.typoscript | 42 + .../TypoScript/constants.typoscript | 316 + .../Configuration/TypoScript/setup.typoscript | 478 + .../ext/bootstrap_package/Contrib/.htaccess | 6 + .../Contrib/scssphp/LICENSE.md | 20 + .../Contrib/scssphp/README.md | 71 + .../Contrib/scssphp/bin/pscss | 244 + .../Contrib/scssphp/composer.json | 108 + .../Contrib/scssphp/phpcs.xml.dist | 12 + .../Contrib/scssphp/scss.inc.php | 21 + .../Contrib/scssphp/src/Base/Range.php | 57 + .../Contrib/scssphp/src/Block.php | 73 + .../Contrib/scssphp/src/Cache.php | 272 + .../Contrib/scssphp/src/Colors.php | 247 + .../Contrib/scssphp/src/CompilationResult.php | 69 + .../Contrib/scssphp/src/Compiler.php | 10087 +++++++++ .../scssphp/src/Compiler/CachedResult.php | 77 + .../scssphp/src/Compiler/Environment.php | 48 + .../src/Exception/CompilerException.php | 24 + .../scssphp/src/Exception/ParserException.php | 50 + .../scssphp/src/Exception/RangeException.php | 24 + .../scssphp/src/Exception/SassException.php | 7 + .../src/Exception/SassScriptException.php | 32 + .../scssphp/src/Exception/ServerException.php | 26 + .../Contrib/scssphp/src/Formatter.php | 364 + .../Contrib/scssphp/src/Formatter/Compact.php | 52 + .../scssphp/src/Formatter/Compressed.php | 85 + .../scssphp/src/Formatter/Crunched.php | 87 + .../Contrib/scssphp/src/Formatter/Debug.php | 127 + .../scssphp/src/Formatter/Expanded.php | 70 + .../Contrib/scssphp/src/Formatter/Nested.php | 236 + .../scssphp/src/Formatter/OutputBlock.php | 68 + .../scssphp/src/Logger/LoggerInterface.php | 48 + .../scssphp/src/Logger/QuietLogger.php | 27 + .../scssphp/src/Logger/StreamLogger.php | 60 + .../Contrib/scssphp/src/Node.php | 43 + .../Contrib/scssphp/src/Node/Number.php | 804 + .../Contrib/scssphp/src/OutputStyle.php | 9 + .../Contrib/scssphp/src/Parser.php | 4128 ++++ .../Contrib/scssphp/src/SourceMap/Base64.php | 187 + .../scssphp/src/SourceMap/Base64VLQ.php | 151 + .../src/SourceMap/SourceMapGenerator.php | 381 + .../Contrib/scssphp/src/Type.php | 76 + .../Contrib/scssphp/src/Util.php | 184 + .../Contrib/scssphp/src/Util/Path.php | 77 + .../Contrib/scssphp/src/ValueConverter.php | 95 + .../Contrib/scssphp/src/Version.php | 23 + .../Contrib/scssphp/src/Warn.php | 84 + .../AdministratorManual/Index.rst | 26 + .../AdministratorManual/Migration/6-2-11.rst | 330 + .../AdministratorManual/Migration/6-2-14.rst | 94 + .../Configuration/Extension/Index.rst | 20 + .../Configuration/ImageRendering/Index.rst | 291 + .../Documentation/Configuration/Index.rst | 20 + .../Configuration/TypoScript/Index.rst | 240 + .../Documentation/Images/Screens/Desktop.jpg | Bin 0 -> 133579 bytes .../Documentation/Images/Screens/Mobile.jpg | Bin 0 -> 57284 bytes .../Documentation/Images/Screens/Tablet.jpg | Bin 0 -> 92166 bytes .../Images/Screens/typo3-frontend.png | Bin 0 -> 98027 bytes .../Documentation/Includes.txt | 21 + .../bootstrap_package/Documentation/Index.rst | 61 + .../Documentation/Introduction/Index.rst | 58 + .../Documentation/Settings.cfg | 18 + .../typo3conf/ext/bootstrap_package/LICENSE | 21 + .../ext/bootstrap_package/README.rst | 157 + .../Resources/Private/.htaccess | 2 + .../Resources/Private/Forms/Contact.form.yaml | 111 + .../Resources/Private/Language/Backend.xlf | 1048 + .../Private/Language/ExtConfTemplate.xlf | 35 + .../Resources/Private/Language/locallang.xlf | 157 + .../Layouts/ContentElements/Default.html | 91 + .../Private/Layouts/Page/Default.html | 32 + .../Carousel/Control/Control.html | 12 + .../Carousel/Control/Indicator.html | 16 + .../Carousel/General/BackgroundImage.html | 41 + .../Carousel/Item/BackgroundImage.html | 3 + .../Carousel/Item/CallToAction.html | 28 + .../ContentElements/Carousel/Item/Header.html | 12 + .../ContentElements/Carousel/Item/Html.html | 3 + .../ContentElements/Carousel/Item/Image.html | 11 + .../ContentElements/Carousel/Item/Text.html | 16 + .../Carousel/Item/TextAndImage.html | 21 + .../Rendering/Container1Columns.html | 7 + .../Rendering/Container2Columns.html | 11 + .../Rendering/Container2ColumnsLeft.html | 11 + .../Rendering/Container2ColumnsRight.html | 11 + .../Rendering/Container3Columns.html | 16 + .../Rendering/Container4Columns.html | 21 + .../ContentElements/DropIn/After/All.html | 3 + .../ContentElements/DropIn/Before/All.html | 3 + .../Partials/ContentElements/Footer/All.html | 7 + .../Frame/General/BackgroundImage.html | 39 + .../Partials/ContentElements/Header/All.html | 25 + .../Partials/ContentElements/Header/Date.html | 7 + .../ContentElements/Header/Header.html | 49 + .../ContentElements/Header/SubHeader.html | 40 + .../ContentElements/Media/Gallery.html | 17 + .../Media/Rendering/Audio.html | 3 + .../Media/Rendering/Image.html | 55 + .../Media/Rendering/Video.html | 3 + .../Partials/ContentElements/Media/Type.html | 19 + .../ContentElements/Media/Type/Audio.html | 10 + .../ContentElements/Media/Type/Image.html | 34 + .../ContentElements/Media/Type/Video.html | 10 + .../ContentElements/Menu/SkipNavigation.html | 14 + .../ContentElements/Table/Columns.html | 98 + .../Private/Partials/IndexedSearch/Form.html | 146 + .../Private/Partials/IndexedSearch/Rules.html | 11 + .../Partials/IndexedSearch/Searchresult.html | 25 + .../Page/DropIn/Navigation/MainAfter.html | 3 + .../Page/DropIn/Navigation/MainBefore.html | 3 + .../Partials/Page/DropIn/Page/PageAfter.html | 3 + .../Partials/Page/DropIn/Page/PageBefore.html | 3 + .../Page/DropIn/Structure/FooterAfter.html | 3 + .../Page/DropIn/Structure/FooterBefore.html | 3 + .../Partials/Page/Navigation/Breadcrumb.html | 46 + .../Partials/Page/Navigation/Language.html | 20 + .../Partials/Page/Navigation/Main.html | 83 + .../Partials/Page/Navigation/Meta.html | 13 + .../Page/Navigation/Subnavigation.html | 41 + .../Page/Structure/CookieConsent.html | 22 + .../Partials/Page/Structure/Copyright.html | 3 + .../Page/Structure/FooterContent.html | 17 + .../Partials/Page/Structure/FooterMeta.html | 36 + .../Partials/Page/Structure/ScrollTop.html | 5 + .../Partials/Page/Structure/SocialLinks.html | 18 + .../Private/Source/Ai/BootstrapPackage.ai | 1153 ++ .../Private/Source/Psd/icon-shapes.psd | Bin 0 -> 567856 bytes .../Private/Templates/Blocks/Default.html | 3 + .../Blocks/GoogleAnalyticsStatus.html | 7 + .../Templates/ContentElements/Accordion.html | 47 + .../Templates/ContentElements/Audio.html | 29 + .../Templates/ContentElements/Bullets.html | 47 + .../Templates/ContentElements/CardGroup.html | 72 + .../Templates/ContentElements/Carousel.html | 33 + .../ContentElements/CarouselFullscreen.html | 33 + .../ContentElements/CarouselSmall.html | 33 + .../Templates/ContentElements/Container.html | 11 + .../Templates/ContentElements/Csv.html | 62 + .../Templates/ContentElements/Div.html | 9 + .../ContentElements/ExternalMedia.html | 21 + .../Templates/ContentElements/Gallery.html | 14 + .../Templates/ContentElements/Generic.html | 12 + .../Templates/ContentElements/Header.html | 3 + .../Templates/ContentElements/Html.html | 9 + .../Templates/ContentElements/IconGroup.html | 47 + .../Templates/ContentElements/Image.html | 8 + .../Templates/ContentElements/List.html | 8 + .../Templates/ContentElements/ListGroup.html | 14 + .../Templates/ContentElements/Mailform.html | 9 + .../Templates/ContentElements/Media.html | 8 + .../ContentElements/MenuAbstract.html | 20 + .../ContentElements/MenuCardDir.html | 63 + .../ContentElements/MenuCardList.html | 63 + .../MenuCategorizedContent.html | 17 + .../ContentElements/MenuCategorizedPages.html | 17 + .../Templates/ContentElements/MenuPages.html | 17 + .../ContentElements/MenuRecentlyUpdated.html | 17 + .../ContentElements/MenuRelatedPages.html | 17 + .../ContentElements/MenuSection.html | 42 + .../ContentElements/MenuSectionPages.html | 33 + .../ContentElements/MenuSitemap.html | 25 + .../ContentElements/MenuSitemapPages.html | 25 + .../ContentElements/MenuSubpages.html | 17 + .../ContentElements/MenuThumbnailDir.html | 35 + .../ContentElements/MenuThumbnailList.html | 35 + .../Templates/ContentElements/Panel.html | 24 + .../Templates/ContentElements/Quote.html | 14 + .../Templates/ContentElements/Shortcut.html | 9 + .../ContentElements/SocialLinks.html | 21 + .../Templates/ContentElements/Tab.html | 54 + .../Templates/ContentElements/Table.html | 63 + .../Templates/ContentElements/Text.html | 8 + .../Templates/ContentElements/Textcolumn.html | 10 + .../Templates/ContentElements/Texticon.html | 31 + .../ContentElements/TextmediaAbove.html | 17 + .../ContentElements/TextmediaBelow.html | 17 + .../TextmediaCenteredLeft.html | 19 + .../TextmediaCenteredRight.html | 19 + .../ContentElements/TextmediaLeft.html | 19 + .../ContentElements/TextmediaRight.html | 19 + .../ContentElements/TextpicAbove.html | 17 + .../ContentElements/TextpicBelow.html | 17 + .../ContentElements/TextpicCenteredLeft.html | 19 + .../ContentElements/TextpicCenteredRight.html | 19 + .../ContentElements/TextpicLeft.html | 19 + .../ContentElements/TextpicRight.html | 19 + .../Templates/ContentElements/Textteaser.html | 17 + .../Templates/ContentElements/Timeline.html | 45 + .../Templates/ContentElements/Uploads.html | 64 + .../Templates/Felogin/FrontendLogin.html | 159 + .../Private/Templates/Form/Form.html | 23 + .../Templates/IndexedSearch/Search/Form.html | 3 + .../IndexedSearch/Search/Search.html | 75 + .../Private/Templates/Page/2Columns.html | 33 + .../Private/Templates/Page/2Columns2575.html | 33 + .../Private/Templates/Page/2Columns5050.html | 33 + .../Templates/Page/2ColumnsOffsetRight.html | 33 + .../Private/Templates/Page/3Columns.html | 36 + .../Private/Templates/Page/Default.html | 24 + .../Private/Templates/Page/None.html | 8 + .../Private/Templates/Page/Simple.html | 19 + .../Templates/Page/SpecialFeature.html | 78 + .../Private/Templates/Page/SpecialStart.html | 39 + .../Templates/Page/SubnavigationLeft.html | 33 + .../Page/SubnavigationLeft2Columns.html | 36 + .../Templates/Page/SubnavigationRight.html | 33 + .../Page/SubnavigationRight2Columns.html | 36 + .../Private/Templates/Preview/Csv.html | 15 + .../Templates/Preview/ExternalMedia.html | 19 + .../Private/Templates/Preview/ListGroup.html | 12 + .../Private/Templates/Preview/Quote.html | 11 + .../Templates/ViewHelpers/Paginate/Index.html | 46 + .../Plugins/Address/icons/address.png | Bin 0 -> 504 bytes .../Plugins/Address/icons/hidpi/address.png | Bin 0 -> 1012 bytes .../CKEditor/Plugins/Address/lang/de.js | 7 + .../CKEditor/Plugins/Address/lang/en.js | 7 + .../Public/CKEditor/Plugins/Address/plugin.js | 58 + .../CKEditor/Plugins/Address/plugin.min.js | 1 + .../Public/CKEditor/Plugins/Box/icons/box.png | Bin 0 -> 168 bytes .../CKEditor/Plugins/Box/icons/hidpi/box.png | Bin 0 -> 277 bytes .../Public/CKEditor/Plugins/Box/lang/de.js | 7 + .../Public/CKEditor/Plugins/Box/lang/en.js | 7 + .../Public/CKEditor/Plugins/Box/plugin.js | 280 + .../Public/CKEditor/Plugins/Box/plugin.min.js | 1 + .../Plugins/Columns/icons/columns.png | Bin 0 -> 112 bytes .../Plugins/Columns/icons/hidpi/columns.png | Bin 0 -> 147 bytes .../CKEditor/Plugins/Columns/lang/de.js | 7 + .../CKEditor/Plugins/Columns/lang/en.js | 7 + .../Public/CKEditor/Plugins/Columns/plugin.js | 280 + .../CKEditor/Plugins/Columns/plugin.min.js | 1 + .../Indent/icons/bootstrappackage_indent.png | Bin 0 -> 184 bytes .../icons/hidpi/bootstrappackage_indent.png | Bin 0 -> 278 bytes .../Public/CKEditor/Plugins/Indent/lang/de.js | 7 + .../Public/CKEditor/Plugins/Indent/lang/en.js | 7 + .../Public/CKEditor/Plugins/Indent/plugin.js | 280 + .../CKEditor/Plugins/Indent/plugin.min.js | 1 + .../Public/CKEditor/Plugins/Table/plugin.js | 47 + .../CKEditor/Plugins/Table/plugin.min.js | 1 + .../Contrib/bootstrap4/js/bootstrap.min.js | 6 + .../Contrib/bootstrap4/scss/_alert.scss | 52 + .../Contrib/bootstrap4/scss/_badge.scss | 54 + .../Contrib/bootstrap4/scss/_breadcrumb.scss | 42 + .../bootstrap4/scss/_button-group.scss | 163 + .../Contrib/bootstrap4/scss/_buttons.scss | 142 + .../Public/Contrib/bootstrap4/scss/_card.scss | 286 + .../Contrib/bootstrap4/scss/_carousel.scss | 200 + .../Contrib/bootstrap4/scss/_close.scss | 40 + .../Public/Contrib/bootstrap4/scss/_code.scss | 48 + .../bootstrap4/scss/_custom-forms.scss | 526 + .../Contrib/bootstrap4/scss/_dropdown.scss | 192 + .../Contrib/bootstrap4/scss/_forms.scss | 347 + .../Contrib/bootstrap4/scss/_functions.scss | 190 + .../Public/Contrib/bootstrap4/scss/_grid.scss | 73 + .../Contrib/bootstrap4/scss/_images.scss | 42 + .../Contrib/bootstrap4/scss/_input-group.scss | 211 + .../Contrib/bootstrap4/scss/_jumbotron.scss | 17 + .../Contrib/bootstrap4/scss/_list-group.scss | 154 + .../Contrib/bootstrap4/scss/_media.scss | 8 + .../Contrib/bootstrap4/scss/_mixins.scss | 47 + .../Contrib/bootstrap4/scss/_modal.scss | 240 + .../Public/Contrib/bootstrap4/scss/_nav.scss | 120 + .../Contrib/bootstrap4/scss/_navbar.scss | 332 + .../Contrib/bootstrap4/scss/_pagination.scss | 74 + .../Contrib/bootstrap4/scss/_popover.scss | 170 + .../Contrib/bootstrap4/scss/_print.scss | 132 + .../Contrib/bootstrap4/scss/_progress.scss | 47 + .../Contrib/bootstrap4/scss/_reboot.scss | 484 + .../Public/Contrib/bootstrap4/scss/_root.scss | 19 + .../Contrib/bootstrap4/scss/_spinners.scss | 65 + .../Contrib/bootstrap4/scss/_tables.scss | 185 + .../Contrib/bootstrap4/scss/_toasts.scss | 46 + .../Contrib/bootstrap4/scss/_tooltip.scss | 115 + .../Contrib/bootstrap4/scss/_transitions.scss | 20 + .../Public/Contrib/bootstrap4/scss/_type.scss | 125 + .../Contrib/bootstrap4/scss/_utilities.scss | 18 + .../Contrib/bootstrap4/scss/_variables.scss | 1148 ++ .../bootstrap4/scss/bootstrap-grid.scss | 30 + .../bootstrap4/scss/bootstrap-reboot.scss | 12 + .../Contrib/bootstrap4/scss/bootstrap.scss | 44 + .../bootstrap4/scss/mixins/_alert.scss | 13 + .../scss/mixins/_background-variant.scss | 23 + .../bootstrap4/scss/mixins/_badge.scss | 17 + .../scss/mixins/_border-radius.scss | 76 + .../bootstrap4/scss/mixins/_box-shadow.scss | 20 + .../bootstrap4/scss/mixins/_breakpoints.scss | 123 + .../bootstrap4/scss/mixins/_buttons.scss | 110 + .../bootstrap4/scss/mixins/_caret.scss | 62 + .../bootstrap4/scss/mixins/_clearfix.scss | 7 + .../bootstrap4/scss/mixins/_deprecate.scss | 10 + .../bootstrap4/scss/mixins/_float.scss | 14 + .../bootstrap4/scss/mixins/_forms.scss | 195 + .../bootstrap4/scss/mixins/_gradients.scss | 45 + .../scss/mixins/_grid-framework.scss | 80 + .../Contrib/bootstrap4/scss/mixins/_grid.scss | 69 + .../bootstrap4/scss/mixins/_hover.scss | 37 + .../bootstrap4/scss/mixins/_image.scss | 36 + .../bootstrap4/scss/mixins/_list-group.scss | 21 + .../bootstrap4/scss/mixins/_lists.scss | 7 + .../bootstrap4/scss/mixins/_nav-divider.scss | 11 + .../bootstrap4/scss/mixins/_pagination.scss | 22 + .../bootstrap4/scss/mixins/_reset-text.scss | 17 + .../bootstrap4/scss/mixins/_resize.scss | 6 + .../scss/mixins/_screen-reader.scss | 34 + .../Contrib/bootstrap4/scss/mixins/_size.scss | 7 + .../bootstrap4/scss/mixins/_table-row.scss | 39 + .../scss/mixins/_text-emphasis.scss | 17 + .../bootstrap4/scss/mixins/_text-hide.scss | 11 + .../scss/mixins/_text-truncate.scss | 8 + .../bootstrap4/scss/mixins/_transition.scss | 26 + .../bootstrap4/scss/mixins/_visibility.scss | 8 + .../bootstrap4/scss/utilities/_align.scss | 8 + .../scss/utilities/_background.scss | 19 + .../bootstrap4/scss/utilities/_borders.scss | 75 + .../bootstrap4/scss/utilities/_clearfix.scss | 3 + .../bootstrap4/scss/utilities/_display.scss | 26 + .../bootstrap4/scss/utilities/_embed.scss | 39 + .../bootstrap4/scss/utilities/_flex.scss | 51 + .../bootstrap4/scss/utilities/_float.scss | 11 + .../scss/utilities/_interactions.scss | 5 + .../bootstrap4/scss/utilities/_overflow.scss | 5 + .../bootstrap4/scss/utilities/_position.scss | 32 + .../scss/utilities/_screenreaders.scss | 11 + .../bootstrap4/scss/utilities/_shadows.scss | 6 + .../bootstrap4/scss/utilities/_sizing.scss | 20 + .../bootstrap4/scss/utilities/_spacing.scss | 73 + .../scss/utilities/_stretched-link.scss | 19 + .../bootstrap4/scss/utilities/_text.scss | 72 + .../scss/utilities/_visibility.scss | 13 + .../Contrib/bootstrap4/scss/vendor/_rfs.scss | 228 + .../Contrib/bootstrap5/js/bootstrap.min.js | 6 + .../Contrib/bootstrap5/scss/_accordion.scss | 118 + .../Contrib/bootstrap5/scss/_alert.scss | 57 + .../Contrib/bootstrap5/scss/_badge.scss | 29 + .../Contrib/bootstrap5/scss/_breadcrumb.scss | 28 + .../bootstrap5/scss/_button-group.scss | 139 + .../Contrib/bootstrap5/scss/_buttons.scss | 111 + .../Public/Contrib/bootstrap5/scss/_card.scss | 216 + .../Contrib/bootstrap5/scss/_carousel.scss | 229 + .../Contrib/bootstrap5/scss/_close.scss | 40 + .../Contrib/bootstrap5/scss/_containers.scss | 41 + .../Contrib/bootstrap5/scss/_dropdown.scss | 240 + .../Contrib/bootstrap5/scss/_forms.scss | 9 + .../Contrib/bootstrap5/scss/_functions.scss | 302 + .../Public/Contrib/bootstrap5/scss/_grid.scss | 33 + .../Contrib/bootstrap5/scss/_helpers.scss | 9 + .../Contrib/bootstrap5/scss/_images.scss | 42 + .../Contrib/bootstrap5/scss/_list-group.scss | 174 + .../Contrib/bootstrap5/scss/_mixins.scss | 43 + .../Contrib/bootstrap5/scss/_modal.scss | 209 + .../Public/Contrib/bootstrap5/scss/_nav.scss | 139 + .../Contrib/bootstrap5/scss/_navbar.scss | 335 + .../Contrib/bootstrap5/scss/_offcanvas.scss | 83 + .../Contrib/bootstrap5/scss/_pagination.scss | 64 + .../bootstrap5/scss/_placeholders.scss | 51 + .../Contrib/bootstrap5/scss/_popover.scss | 158 + .../Contrib/bootstrap5/scss/_progress.scss | 48 + .../Contrib/bootstrap5/scss/_reboot.scss | 625 + .../Public/Contrib/bootstrap5/scss/_root.scss | 54 + .../Contrib/bootstrap5/scss/_spinners.scss | 69 + .../Contrib/bootstrap5/scss/_tables.scss | 155 + .../Contrib/bootstrap5/scss/_toasts.scss | 51 + .../Contrib/bootstrap5/scss/_tooltip.scss | 115 + .../Contrib/bootstrap5/scss/_transitions.scss | 27 + .../Public/Contrib/bootstrap5/scss/_type.scss | 104 + .../Contrib/bootstrap5/scss/_utilities.scss | 630 + .../Contrib/bootstrap5/scss/_variables.scss | 1641 ++ .../bootstrap5/scss/bootstrap-grid.scss | 67 + .../bootstrap5/scss/bootstrap-reboot.scss | 13 + .../bootstrap5/scss/bootstrap-utilities.scss | 18 + .../Contrib/bootstrap5/scss/bootstrap.scss | 53 + .../scss/forms/_floating-labels.scss | 63 + .../bootstrap5/scss/forms/_form-check.scss | 152 + .../bootstrap5/scss/forms/_form-control.scss | 219 + .../bootstrap5/scss/forms/_form-range.scss | 91 + .../bootstrap5/scss/forms/_form-select.scss | 72 + .../bootstrap5/scss/forms/_form-text.scss | 11 + .../bootstrap5/scss/forms/_input-group.scss | 121 + .../bootstrap5/scss/forms/_labels.scss | 36 + .../bootstrap5/scss/forms/_validation.scss | 12 + .../bootstrap5/scss/helpers/_clearfix.scss | 3 + .../scss/helpers/_colored-links.scss | 12 + .../bootstrap5/scss/helpers/_position.scss | 30 + .../bootstrap5/scss/helpers/_ratio.scss | 26 + .../bootstrap5/scss/helpers/_stacks.scss | 15 + .../scss/helpers/_stretched-link.scss | 15 + .../scss/helpers/_text-truncation.scss | 7 + .../scss/helpers/_visually-hidden.scss | 8 + .../Contrib/bootstrap5/scss/helpers/_vr.scss | 8 + .../bootstrap5/scss/mixins/_alert.scss | 11 + .../bootstrap5/scss/mixins/_backdrop.scss | 14 + .../scss/mixins/_border-radius.scss | 78 + .../bootstrap5/scss/mixins/_box-shadow.scss | 18 + .../bootstrap5/scss/mixins/_breakpoints.scss | 127 + .../bootstrap5/scss/mixins/_buttons.scss | 133 + .../bootstrap5/scss/mixins/_caret.scss | 64 + .../bootstrap5/scss/mixins/_clearfix.scss | 9 + .../bootstrap5/scss/mixins/_color-scheme.scss | 7 + .../bootstrap5/scss/mixins/_container.scss | 9 + .../bootstrap5/scss/mixins/_deprecate.scss | 10 + .../bootstrap5/scss/mixins/_forms.scss | 144 + .../bootstrap5/scss/mixins/_gradients.scss | 47 + .../Contrib/bootstrap5/scss/mixins/_grid.scss | 151 + .../bootstrap5/scss/mixins/_image.scss | 16 + .../bootstrap5/scss/mixins/_list-group.scss | 24 + .../bootstrap5/scss/mixins/_lists.scss | 7 + .../bootstrap5/scss/mixins/_pagination.scss | 31 + .../bootstrap5/scss/mixins/_reset-text.scss | 17 + .../bootstrap5/scss/mixins/_resize.scss | 6 + .../scss/mixins/_table-variants.scss | 21 + .../scss/mixins/_text-truncate.scss | 8 + .../bootstrap5/scss/mixins/_transition.scss | 26 + .../bootstrap5/scss/mixins/_utilities.scss | 89 + .../scss/mixins/_visually-hidden.scss | 29 + .../bootstrap5/scss/utilities/_api.scss | 47 + .../Contrib/bootstrap5/scss/vendor/_rfs.scss | 354 + .../cookieconsent/cookieconsent.min.css | 6 + .../cookieconsent/cookieconsent.min.js | 1 + .../Public/Contrib/jquery/jquery.min.js | 2 + .../Public/Contrib/modernizr/modernizr.min.js | 1 + .../photoswipe/photoswipe-ui-default.min.js | 4 + .../Contrib/photoswipe/photoswipe.min.js | 4 + .../Public/Contrib/popper-core/popper.min.js | 6 + .../Public/Contrib/popper/popper.min.js | 5 + .../Resources/Public/Css/bootstrap4-rte.css | 15743 ++++++++++++++ .../Public/Css/bootstrap4-rte.min.css | 6 + .../Resources/Public/Css/bootstrap4-theme.css | 15721 ++++++++++++++ .../Public/Css/bootstrap4-theme.min.css | 6 + .../Resources/Public/Css/bootstrap5-rte.css | 17111 ++++++++++++++++ .../Public/Css/bootstrap5-rte.min.css | 6 + .../Resources/Public/Css/bootstrap5-theme.css | 17089 +++++++++++++++ .../Public/Css/bootstrap5-theme.min.css | 6 + .../Public/Fonts/bootstrappackageicon.css | 36 + .../Public/Fonts/bootstrappackageicon.eot | Bin 0 -> 4372 bytes .../Public/Fonts/bootstrappackageicon.min.css | 1 + .../Public/Fonts/bootstrappackageicon.ttf | Bin 0 -> 4156 bytes .../Public/Fonts/bootstrappackageicon.woff | Bin 0 -> 2508 bytes .../Public/Fonts/bootstrappackageicon.woff2 | Bin 0 -> 2084 bytes .../Public/Icons/BackendLayouts/2_columns.svg | 1 + .../Icons/BackendLayouts/2_columns_25_75.svg | 1 + .../Icons/BackendLayouts/2_columns_50_50.svg | 1 + .../BackendLayouts/2_columns_offset_right.svg | 1 + .../Public/Icons/BackendLayouts/3_columns.svg | 1 + .../Public/Icons/BackendLayouts/default.svg | 1 + .../Public/Icons/BackendLayouts/simple.svg | 1 + .../Icons/BackendLayouts/special_feature.svg | 1 + .../Icons/BackendLayouts/special_start.svg | 1 + .../BackendLayouts/subnavigation_left.svg | 1 + .../subnavigation_left_2_columns.svg | 1 + .../BackendLayouts/subnavigation_right.svg | 1 + .../subnavigation_right_2_columns.svg | 1 + .../Icons/BootstrapPackageIcon/facebook.svg | 1 + .../Icons/BootstrapPackageIcon/file-audio.svg | 1 + .../Icons/BootstrapPackageIcon/file-image.svg | 1 + .../Icons/BootstrapPackageIcon/file-video.svg | 1 + .../Icons/BootstrapPackageIcon/file.svg | 1 + .../Icons/BootstrapPackageIcon/github.svg | 1 + .../Icons/BootstrapPackageIcon/googleplus.svg | 1 + .../Icons/BootstrapPackageIcon/instagram.svg | 1 + .../Icons/BootstrapPackageIcon/linkedin.svg | 1 + .../Public/Icons/BootstrapPackageIcon/rss.svg | 1 + .../Icons/BootstrapPackageIcon/twitter.svg | 1 + .../Icons/BootstrapPackageIcon/vimeo.svg | 1 + .../Public/Icons/BootstrapPackageIcon/vk.svg | 1 + .../Icons/BootstrapPackageIcon/xing.svg | 1 + .../Icons/BootstrapPackageIcon/youtube.svg | 1 + .../Icons/ContentElements/accordion-item.svg | 1 + .../Icons/ContentElements/accordion.svg | 1 + .../beside-text-img-centered-left.svg | 1 + .../beside-text-img-centered-right.svg | 1 + .../Icons/ContentElements/card-group-item.svg | 1 + .../Icons/ContentElements/card-group.svg | 1 + .../carousel-item-backgroundimage.svg | 1 + .../carousel-item-calltoaction.svg | 1 + .../ContentElements/carousel-item-header.svg | 1 + .../ContentElements/carousel-item-html.svg | 1 + .../ContentElements/carousel-item-image.svg | 1 + .../ContentElements/carousel-item-text.svg | 1 + .../carousel-item-textandimage.svg | 1 + .../Icons/ContentElements/carousel-item.svg | 1 + .../Public/Icons/ContentElements/carousel.svg | 1 + .../ContentElements/container-columns-1.svg | 1 + .../container-columns-2-left.svg | 1 + .../container-columns-2-right.svg | 1 + .../ContentElements/container-columns-2.svg | 1 + .../ContentElements/container-columns-3.svg | 1 + .../ContentElements/container-columns-4.svg | 1 + .../Public/Icons/ContentElements/csv.svg | 1 + .../Icons/ContentElements/externalmedia.svg | 1 + .../Public/Icons/ContentElements/gallery.svg | 1 + .../Icons/ContentElements/icon-group-item.svg | 1 + .../Icons/ContentElements/icon-group.svg | 1 + .../Icons/ContentElements/listgroup.svg | 1 + .../Icons/ContentElements/menu-card.svg | 1 + .../Icons/ContentElements/social-links.svg | 1 + .../Public/Icons/ContentElements/tab-item.svg | 1 + .../Public/Icons/ContentElements/tab.svg | 1 + .../Public/Icons/ContentElements/texticon.svg | 1 + .../Icons/ContentElements/timeline-item.svg | 1 + .../Public/Icons/ContentElements/timeline.svg | 1 + .../Resources/Public/Icons/Extension.png | Bin 0 -> 120 bytes .../SystemInformation/bootstrappackage.svg | 1 + .../Resources/Public/Icons/favicon.ico | Bin 0 -> 1150 bytes .../Public/Images/Backend/backend-logo.svg | 1 + .../Images/Backend/login-background-image.jpg | Bin 0 -> 74074 bytes .../Public/Images/Backend/login-logo.svg | 1 + .../Public/Images/BootstrapPackage.svg | 1 + .../Images/BootstrapPackageInverted.svg | 1 + .../Public/Images/Icons/Glyphicons/adjust.svg | 1 + .../Images/Icons/Glyphicons/align-center.svg | 1 + .../Images/Icons/Glyphicons/align-justify.svg | 1 + .../Images/Icons/Glyphicons/align-left.svg | 1 + .../Images/Icons/Glyphicons/align-right.svg | 1 + .../Images/Icons/Glyphicons/arrow-down.svg | 1 + .../Images/Icons/Glyphicons/arrow-left.svg | 1 + .../Images/Icons/Glyphicons/arrow-right.svg | 1 + .../Images/Icons/Glyphicons/arrow-up.svg | 1 + .../Images/Icons/Glyphicons/asterisk.svg | 1 + .../Images/Icons/Glyphicons/backward.svg | 1 + .../Images/Icons/Glyphicons/ban-circle.svg | 1 + .../Images/Icons/Glyphicons/barcode.svg | 1 + .../Public/Images/Icons/Glyphicons/bell.svg | 1 + .../Public/Images/Icons/Glyphicons/bold.svg | 1 + .../Public/Images/Icons/Glyphicons/book.svg | 1 + .../Images/Icons/Glyphicons/bookmark.svg | 1 + .../Images/Icons/Glyphicons/briefcase.svg | 1 + .../Images/Icons/Glyphicons/bullhorn.svg | 1 + .../Images/Icons/Glyphicons/calendar.svg | 1 + .../Public/Images/Icons/Glyphicons/camera.svg | 1 + .../Images/Icons/Glyphicons/certificate.svg | 1 + .../Public/Images/Icons/Glyphicons/check.svg | 1 + .../Images/Icons/Glyphicons/chevron-down.svg | 1 + .../Images/Icons/Glyphicons/chevron-left.svg | 1 + .../Images/Icons/Glyphicons/chevron-right.svg | 1 + .../Images/Icons/Glyphicons/chevron-up.svg | 1 + .../Icons/Glyphicons/circle-arrow-down.svg | 1 + .../Icons/Glyphicons/circle-arrow-left.svg | 1 + .../Icons/Glyphicons/circle-arrow-right.svg | 1 + .../Icons/Glyphicons/circle-arrow-up.svg | 1 + .../Icons/Glyphicons/cloud-download.svg | 1 + .../Images/Icons/Glyphicons/cloud-upload.svg | 1 + .../Public/Images/Icons/Glyphicons/cloud.svg | 1 + .../Public/Images/Icons/Glyphicons/cog.svg | 1 + .../Images/Icons/Glyphicons/collapse-down.svg | 1 + .../Images/Icons/Glyphicons/collapse-up.svg | 1 + .../Images/Icons/Glyphicons/comment.svg | 1 + .../Images/Icons/Glyphicons/compressed.svg | 1 + .../Icons/Glyphicons/copyright-mark.svg | 1 + .../Images/Icons/Glyphicons/credit-card.svg | 1 + .../Images/Icons/Glyphicons/cutlery.svg | 1 + .../Images/Icons/Glyphicons/dashboard.svg | 1 + .../Images/Icons/Glyphicons/download-alt.svg | 1 + .../Images/Icons/Glyphicons/download.svg | 1 + .../Images/Icons/Glyphicons/earphone.svg | 1 + .../Public/Images/Icons/Glyphicons/edit.svg | 1 + .../Public/Images/Icons/Glyphicons/eject.svg | 1 + .../Images/Icons/Glyphicons/envelope.svg | 1 + .../Public/Images/Icons/Glyphicons/euro.svg | 1 + .../Icons/Glyphicons/exclamation-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/expand.svg | 1 + .../Public/Images/Icons/Glyphicons/export.svg | 1 + .../Images/Icons/Glyphicons/eye-close.svg | 1 + .../Images/Icons/Glyphicons/eye-open.svg | 1 + .../Icons/Glyphicons/facetime-video.svg | 1 + .../Images/Icons/Glyphicons/fast-backward.svg | 1 + .../Images/Icons/Glyphicons/fast-forward.svg | 1 + .../Public/Images/Icons/Glyphicons/file.svg | 1 + .../Public/Images/Icons/Glyphicons/film.svg | 1 + .../Public/Images/Icons/Glyphicons/filter.svg | 1 + .../Public/Images/Icons/Glyphicons/fire.svg | 1 + .../Public/Images/Icons/Glyphicons/flag.svg | 1 + .../Public/Images/Icons/Glyphicons/flash.svg | 1 + .../Images/Icons/Glyphicons/floppy-disk.svg | 1 + .../Images/Icons/Glyphicons/floppy-open.svg | 1 + .../Images/Icons/Glyphicons/floppy-remove.svg | 1 + .../Images/Icons/Glyphicons/floppy-save.svg | 1 + .../Images/Icons/Glyphicons/floppy-saved.svg | 1 + .../Images/Icons/Glyphicons/folder-close.svg | 1 + .../Images/Icons/Glyphicons/folder-open.svg | 1 + .../Public/Images/Icons/Glyphicons/font.svg | 1 + .../Images/Icons/Glyphicons/forward.svg | 1 + .../Images/Icons/Glyphicons/fullscreen.svg | 1 + .../Public/Images/Icons/Glyphicons/gbp.svg | 1 + .../Public/Images/Icons/Glyphicons/gift.svg | 1 + .../Public/Images/Icons/Glyphicons/glass.svg | 1 + .../Public/Images/Icons/Glyphicons/globe.svg | 1 + .../Images/Icons/Glyphicons/hand-down.svg | 1 + .../Images/Icons/Glyphicons/hand-left.svg | 1 + .../Images/Icons/Glyphicons/hand-right.svg | 1 + .../Images/Icons/Glyphicons/hand-up.svg | 1 + .../Images/Icons/Glyphicons/hd-video.svg | 1 + .../Public/Images/Icons/Glyphicons/hdd.svg | 1 + .../Public/Images/Icons/Glyphicons/header.svg | 1 + .../Images/Icons/Glyphicons/headphones.svg | 1 + .../Images/Icons/Glyphicons/heart-empty.svg | 1 + .../Public/Images/Icons/Glyphicons/heart.svg | 1 + .../Public/Images/Icons/Glyphicons/home.svg | 1 + .../Public/Images/Icons/Glyphicons/import.svg | 1 + .../Public/Images/Icons/Glyphicons/inbox.svg | 1 + .../Images/Icons/Glyphicons/indent-left.svg | 1 + .../Images/Icons/Glyphicons/indent-right.svg | 1 + .../Images/Icons/Glyphicons/info-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/italic.svg | 1 + .../Public/Images/Icons/Glyphicons/leaf.svg | 1 + .../Public/Images/Icons/Glyphicons/link.svg | 1 + .../Images/Icons/Glyphicons/list-alt.svg | 1 + .../Public/Images/Icons/Glyphicons/list.svg | 1 + .../Public/Images/Icons/Glyphicons/lock.svg | 1 + .../Public/Images/Icons/Glyphicons/log-in.svg | 1 + .../Images/Icons/Glyphicons/log-out.svg | 1 + .../Public/Images/Icons/Glyphicons/magnet.svg | 1 + .../Images/Icons/Glyphicons/map-marker.svg | 1 + .../Images/Icons/Glyphicons/minus-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/minus.svg | 1 + .../Public/Images/Icons/Glyphicons/move.svg | 1 + .../Public/Images/Icons/Glyphicons/music.svg | 1 + .../Images/Icons/Glyphicons/new-window.svg | 1 + .../Public/Images/Icons/Glyphicons/off.svg | 1 + .../Images/Icons/Glyphicons/ok-circle.svg | 1 + .../Images/Icons/Glyphicons/ok-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/ok.svg | 1 + .../Public/Images/Icons/Glyphicons/open.svg | 1 + .../Images/Icons/Glyphicons/paperclip.svg | 1 + .../Public/Images/Icons/Glyphicons/pause.svg | 1 + .../Public/Images/Icons/Glyphicons/pencil.svg | 1 + .../Images/Icons/Glyphicons/phone-alt.svg | 1 + .../Public/Images/Icons/Glyphicons/phone.svg | 1 + .../Images/Icons/Glyphicons/picture.svg | 1 + .../Public/Images/Icons/Glyphicons/plane.svg | 1 + .../Images/Icons/Glyphicons/play-circle.svg | 1 + .../Public/Images/Icons/Glyphicons/play.svg | 1 + .../Images/Icons/Glyphicons/plus-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/plus.svg | 1 + .../Public/Images/Icons/Glyphicons/print.svg | 1 + .../Images/Icons/Glyphicons/pushpin.svg | 1 + .../Public/Images/Icons/Glyphicons/qrcode.svg | 1 + .../Images/Icons/Glyphicons/question-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/random.svg | 1 + .../Public/Images/Icons/Glyphicons/record.svg | 1 + .../Images/Icons/Glyphicons/refresh.svg | 1 + .../Icons/Glyphicons/registration-mark.svg | 1 + .../Images/Icons/Glyphicons/remove-circle.svg | 1 + .../Images/Icons/Glyphicons/remove-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/remove.svg | 1 + .../Public/Images/Icons/Glyphicons/repeat.svg | 1 + .../Images/Icons/Glyphicons/resize-full.svg | 1 + .../Icons/Glyphicons/resize-horizontal.svg | 1 + .../Images/Icons/Glyphicons/resize-small.svg | 1 + .../Icons/Glyphicons/resize-vertical.svg | 1 + .../Images/Icons/Glyphicons/retweet.svg | 1 + .../Public/Images/Icons/Glyphicons/road.svg | 1 + .../Public/Images/Icons/Glyphicons/save.svg | 1 + .../Public/Images/Icons/Glyphicons/saved.svg | 1 + .../Images/Icons/Glyphicons/screenshot.svg | 1 + .../Images/Icons/Glyphicons/sd-video.svg | 1 + .../Public/Images/Icons/Glyphicons/search.svg | 1 + .../Public/Images/Icons/Glyphicons/send.svg | 1 + .../Images/Icons/Glyphicons/share-alt.svg | 1 + .../Public/Images/Icons/Glyphicons/share.svg | 1 + .../Images/Icons/Glyphicons/shopping-cart.svg | 1 + .../Public/Images/Icons/Glyphicons/signal.svg | 1 + .../Icons/Glyphicons/sort-by-alphabet-alt.svg | 1 + .../Icons/Glyphicons/sort-by-alphabet.svg | 1 + .../Glyphicons/sort-by-attributes-alt.svg | 1 + .../Icons/Glyphicons/sort-by-attributes.svg | 1 + .../Icons/Glyphicons/sort-by-order-alt.svg | 1 + .../Images/Icons/Glyphicons/sort-by-order.svg | 1 + .../Public/Images/Icons/Glyphicons/sort.svg | 1 + .../Images/Icons/Glyphicons/sound-5-1.svg | 1 + .../Images/Icons/Glyphicons/sound-6-1.svg | 1 + .../Images/Icons/Glyphicons/sound-7-1.svg | 1 + .../Images/Icons/Glyphicons/sound-dolby.svg | 1 + .../Images/Icons/Glyphicons/sound-stereo.svg | 1 + .../Images/Icons/Glyphicons/star-empty.svg | 1 + .../Public/Images/Icons/Glyphicons/star.svg | 1 + .../Public/Images/Icons/Glyphicons/stats.svg | 1 + .../Images/Icons/Glyphicons/step-backward.svg | 1 + .../Images/Icons/Glyphicons/step-forward.svg | 1 + .../Public/Images/Icons/Glyphicons/stop.svg | 1 + .../Images/Icons/Glyphicons/subtitles.svg | 1 + .../Public/Images/Icons/Glyphicons/tag.svg | 1 + .../Public/Images/Icons/Glyphicons/tags.svg | 1 + .../Public/Images/Icons/Glyphicons/tasks.svg | 1 + .../Images/Icons/Glyphicons/text-height.svg | 1 + .../Images/Icons/Glyphicons/text-width.svg | 1 + .../Images/Icons/Glyphicons/th-large.svg | 1 + .../Images/Icons/Glyphicons/th-list.svg | 1 + .../Public/Images/Icons/Glyphicons/th.svg | 1 + .../Images/Icons/Glyphicons/thumbs-down.svg | 1 + .../Images/Icons/Glyphicons/thumbs-up.svg | 1 + .../Public/Images/Icons/Glyphicons/time.svg | 1 + .../Public/Images/Icons/Glyphicons/tint.svg | 1 + .../Public/Images/Icons/Glyphicons/tower.svg | 1 + .../Images/Icons/Glyphicons/transfer.svg | 1 + .../Public/Images/Icons/Glyphicons/trash.svg | 1 + .../Images/Icons/Glyphicons/tree-conifer.svg | 1 + .../Icons/Glyphicons/tree-deciduous.svg | 1 + .../Images/Icons/Glyphicons/unchecked.svg | 1 + .../Public/Images/Icons/Glyphicons/upload.svg | 1 + .../Public/Images/Icons/Glyphicons/usd.svg | 1 + .../Public/Images/Icons/Glyphicons/user.svg | 1 + .../Images/Icons/Glyphicons/volume-down.svg | 1 + .../Images/Icons/Glyphicons/volume-off.svg | 1 + .../Images/Icons/Glyphicons/volume-up.svg | 1 + .../Images/Icons/Glyphicons/warning-sign.svg | 1 + .../Public/Images/Icons/Glyphicons/wrench.svg | 1 + .../Images/Icons/Glyphicons/zoom-in.svg | 1 + .../Images/Icons/Glyphicons/zoom-out.svg | 1 + .../Images/Icons/Ionicons/alert-circled.svg | 1 + .../Public/Images/Icons/Ionicons/alert.svg | 1 + .../Icons/Ionicons/android-add-contact.svg | 1 + .../Images/Icons/Ionicons/android-add.svg | 1 + .../Images/Icons/Ionicons/android-alarm.svg | 1 + .../Images/Icons/Ionicons/android-archive.svg | 1 + .../Icons/Ionicons/android-arrow-back.svg | 1 + .../Ionicons/android-arrow-down-left.svg | 1 + .../Ionicons/android-arrow-down-right.svg | 1 + .../Icons/Ionicons/android-arrow-forward.svg | 1 + .../Icons/Ionicons/android-arrow-up-left.svg | 1 + .../Icons/Ionicons/android-arrow-up-right.svg | 1 + .../Images/Icons/Ionicons/android-battery.svg | 1 + .../Images/Icons/Ionicons/android-book.svg | 1 + .../Icons/Ionicons/android-calendar.svg | 1 + .../Images/Icons/Ionicons/android-call.svg | 1 + .../Images/Icons/Ionicons/android-camera.svg | 1 + .../Images/Icons/Ionicons/android-chat.svg | 1 + .../Icons/Ionicons/android-checkmark.svg | 1 + .../Images/Icons/Ionicons/android-clock.svg | 1 + .../Images/Icons/Ionicons/android-close.svg | 1 + .../Images/Icons/Ionicons/android-contact.svg | 1 + .../Icons/Ionicons/android-contacts.svg | 1 + .../Images/Icons/Ionicons/android-data.svg | 1 + .../Icons/Ionicons/android-developer.svg | 1 + .../Images/Icons/Ionicons/android-display.svg | 1 + .../Icons/Ionicons/android-download.svg | 1 + .../Images/Icons/Ionicons/android-drawer.svg | 1 + .../Icons/Ionicons/android-dropdown.svg | 1 + .../Images/Icons/Ionicons/android-earth.svg | 1 + .../Images/Icons/Ionicons/android-folder.svg | 1 + .../Images/Icons/Ionicons/android-forums.svg | 1 + .../Images/Icons/Ionicons/android-friends.svg | 1 + .../Images/Icons/Ionicons/android-hand.svg | 1 + .../Images/Icons/Ionicons/android-image.svg | 1 + .../Images/Icons/Ionicons/android-inbox.svg | 1 + .../Icons/Ionicons/android-information.svg | 1 + .../Images/Icons/Ionicons/android-keypad.svg | 1 + .../Icons/Ionicons/android-lightbulb.svg | 1 + .../Images/Icons/Ionicons/android-locate.svg | 1 + .../Icons/Ionicons/android-location.svg | 1 + .../Images/Icons/Ionicons/android-mail.svg | 1 + .../Icons/Ionicons/android-microphone.svg | 1 + .../Images/Icons/Ionicons/android-mixer.svg | 1 + .../Images/Icons/Ionicons/android-more.svg | 1 + .../Images/Icons/Ionicons/android-note.svg | 1 + .../Icons/Ionicons/android-playstore.svg | 1 + .../Images/Icons/Ionicons/android-printer.svg | 1 + .../Icons/Ionicons/android-promotion.svg | 1 + .../Icons/Ionicons/android-reminder.svg | 1 + .../Images/Icons/Ionicons/android-remove.svg | 1 + .../Images/Icons/Ionicons/android-search.svg | 1 + .../Images/Icons/Ionicons/android-send.svg | 1 + .../Icons/Ionicons/android-settings.svg | 1 + .../Images/Icons/Ionicons/android-share.svg | 1 + .../Icons/Ionicons/android-social-user.svg | 1 + .../Images/Icons/Ionicons/android-social.svg | 1 + .../Images/Icons/Ionicons/android-sort.svg | 1 + .../Icons/Ionicons/android-stair-drawer.svg | 1 + .../Images/Icons/Ionicons/android-star.svg | 1 + .../Icons/Ionicons/android-stopwatch.svg | 1 + .../Images/Icons/Ionicons/android-storage.svg | 1 + .../Icons/Ionicons/android-system-back.svg | 1 + .../Icons/Ionicons/android-system-home.svg | 1 + .../Icons/Ionicons/android-system-windows.svg | 1 + .../Images/Icons/Ionicons/android-timer.svg | 1 + .../Images/Icons/Ionicons/android-trash.svg | 1 + .../Icons/Ionicons/android-user-menu.svg | 1 + .../Images/Icons/Ionicons/android-volume.svg | 1 + .../Images/Icons/Ionicons/android-wifi.svg | 1 + .../Public/Images/Icons/Ionicons/aperture.svg | 1 + .../Public/Images/Icons/Ionicons/archive.svg | 1 + .../Images/Icons/Ionicons/arrow-down-a.svg | 1 + .../Images/Icons/Ionicons/arrow-down-b.svg | 1 + .../Images/Icons/Ionicons/arrow-down-c.svg | 1 + .../Images/Icons/Ionicons/arrow-expand.svg | 1 + .../Icons/Ionicons/arrow-graph-down-left.svg | 1 + .../Icons/Ionicons/arrow-graph-down-right.svg | 1 + .../Icons/Ionicons/arrow-graph-up-left.svg | 1 + .../Icons/Ionicons/arrow-graph-up-right.svg | 1 + .../Images/Icons/Ionicons/arrow-left-a.svg | 1 + .../Images/Icons/Ionicons/arrow-left-b.svg | 1 + .../Images/Icons/Ionicons/arrow-left-c.svg | 1 + .../Images/Icons/Ionicons/arrow-move.svg | 1 + .../Images/Icons/Ionicons/arrow-resize.svg | 1 + .../Icons/Ionicons/arrow-return-left.svg | 1 + .../Icons/Ionicons/arrow-return-right.svg | 1 + .../Images/Icons/Ionicons/arrow-right-a.svg | 1 + .../Images/Icons/Ionicons/arrow-right-b.svg | 1 + .../Images/Icons/Ionicons/arrow-right-c.svg | 1 + .../Images/Icons/Ionicons/arrow-shrink.svg | 1 + .../Images/Icons/Ionicons/arrow-swap.svg | 1 + .../Images/Icons/Ionicons/arrow-up-a.svg | 1 + .../Images/Icons/Ionicons/arrow-up-b.svg | 1 + .../Images/Icons/Ionicons/arrow-up-c.svg | 1 + .../Public/Images/Icons/Ionicons/asterisk.svg | 1 + .../Public/Images/Icons/Ionicons/at.svg | 1 + .../Public/Images/Icons/Ionicons/bag.svg | 1 + .../Icons/Ionicons/battery-charging.svg | 1 + .../Images/Icons/Ionicons/battery-empty.svg | 1 + .../Images/Icons/Ionicons/battery-full.svg | 1 + .../Images/Icons/Ionicons/battery-half.svg | 1 + .../Images/Icons/Ionicons/battery-low.svg | 1 + .../Public/Images/Icons/Ionicons/beaker.svg | 1 + .../Public/Images/Icons/Ionicons/beer.svg | 1 + .../Images/Icons/Ionicons/bluetooth.svg | 1 + .../Public/Images/Icons/Ionicons/bonfire.svg | 1 + .../Public/Images/Icons/Ionicons/bookmark.svg | 1 + .../Images/Icons/Ionicons/briefcase.svg | 1 + .../Public/Images/Icons/Ionicons/bug.svg | 1 + .../Images/Icons/Ionicons/calculator.svg | 1 + .../Public/Images/Icons/Ionicons/calendar.svg | 1 + .../Public/Images/Icons/Ionicons/camera.svg | 1 + .../Public/Images/Icons/Ionicons/card.svg | 1 + .../Public/Images/Icons/Ionicons/cash.svg | 1 + .../Images/Icons/Ionicons/chatbox-working.svg | 1 + .../Public/Images/Icons/Ionicons/chatbox.svg | 1 + .../Images/Icons/Ionicons/chatboxes.svg | 1 + .../Icons/Ionicons/chatbubble-working.svg | 1 + .../Images/Icons/Ionicons/chatbubble.svg | 1 + .../Images/Icons/Ionicons/chatbubbles.svg | 1 + .../Icons/Ionicons/checkmark-circled.svg | 1 + .../Images/Icons/Ionicons/checkmark-round.svg | 1 + .../Images/Icons/Ionicons/checkmark.svg | 1 + .../Images/Icons/Ionicons/chevron-down.svg | 1 + .../Images/Icons/Ionicons/chevron-left.svg | 1 + .../Images/Icons/Ionicons/chevron-right.svg | 1 + .../Images/Icons/Ionicons/chevron-up.svg | 1 + .../Images/Icons/Ionicons/clipboard.svg | 1 + .../Public/Images/Icons/Ionicons/clock.svg | 1 + .../Images/Icons/Ionicons/close-circled.svg | 1 + .../Images/Icons/Ionicons/close-round.svg | 1 + .../Public/Images/Icons/Ionicons/close.svg | 1 + .../Icons/Ionicons/closed-captioning.svg | 1 + .../Public/Images/Icons/Ionicons/cloud.svg | 1 + .../Images/Icons/Ionicons/code-download.svg | 1 + .../Images/Icons/Ionicons/code-working.svg | 1 + .../Public/Images/Icons/Ionicons/code.svg | 1 + .../Public/Images/Icons/Ionicons/coffee.svg | 1 + .../Public/Images/Icons/Ionicons/compass.svg | 1 + .../Public/Images/Icons/Ionicons/compose.svg | 1 + .../Images/Icons/Ionicons/connection-bars.svg | 1 + .../Public/Images/Icons/Ionicons/contrast.svg | 1 + .../Public/Images/Icons/Ionicons/cube.svg | 1 + .../Public/Images/Icons/Ionicons/disc.svg | 1 + .../Images/Icons/Ionicons/document-text.svg | 1 + .../Public/Images/Icons/Ionicons/document.svg | 1 + .../Public/Images/Icons/Ionicons/drag.svg | 1 + .../Public/Images/Icons/Ionicons/earth.svg | 1 + .../Public/Images/Icons/Ionicons/edit.svg | 1 + .../Public/Images/Icons/Ionicons/egg.svg | 1 + .../Public/Images/Icons/Ionicons/eject.svg | 1 + .../Public/Images/Icons/Ionicons/email.svg | 1 + .../Images/Icons/Ionicons/eye-disabled.svg | 1 + .../Public/Images/Icons/Ionicons/eye.svg | 1 + .../Public/Images/Icons/Ionicons/female.svg | 1 + .../Public/Images/Icons/Ionicons/filing.svg | 1 + .../Images/Icons/Ionicons/film-marker.svg | 1 + .../Public/Images/Icons/Ionicons/fireball.svg | 1 + .../Public/Images/Icons/Ionicons/flag.svg | 1 + .../Public/Images/Icons/Ionicons/flame.svg | 1 + .../Images/Icons/Ionicons/flash-off.svg | 1 + .../Public/Images/Icons/Ionicons/flash.svg | 1 + .../Public/Images/Icons/Ionicons/flask.svg | 1 + .../Public/Images/Icons/Ionicons/folder.svg | 1 + .../Images/Icons/Ionicons/fork-repo.svg | 1 + .../Public/Images/Icons/Ionicons/fork.svg | 1 + .../Public/Images/Icons/Ionicons/forward.svg | 1 + .../Public/Images/Icons/Ionicons/funnel.svg | 1 + .../Icons/Ionicons/game-controller-a.svg | 1 + .../Icons/Ionicons/game-controller-b.svg | 1 + .../Public/Images/Icons/Ionicons/gear-a.svg | 1 + .../Public/Images/Icons/Ionicons/gear-b.svg | 1 + .../Public/Images/Icons/Ionicons/grid.svg | 1 + .../Public/Images/Icons/Ionicons/hammer.svg | 1 + .../Public/Images/Icons/Ionicons/happy.svg | 1 + .../Images/Icons/Ionicons/headphone.svg | 1 + .../Images/Icons/Ionicons/heart-broken.svg | 1 + .../Public/Images/Icons/Ionicons/heart.svg | 1 + .../Images/Icons/Ionicons/help-buoy.svg | 1 + .../Images/Icons/Ionicons/help-circled.svg | 1 + .../Public/Images/Icons/Ionicons/help.svg | 1 + .../Public/Images/Icons/Ionicons/home.svg | 1 + .../Public/Images/Icons/Ionicons/icecream.svg | 1 + .../icon-social-google-plus-outline.svg | 1 + .../Ionicons/icon-social-google-plus.svg | 1 + .../Public/Images/Icons/Ionicons/image.svg | 1 + .../Public/Images/Icons/Ionicons/images.svg | 1 + .../Icons/Ionicons/information-circled.svg | 1 + .../Images/Icons/Ionicons/information.svg | 1 + .../Public/Images/Icons/Ionicons/ionic.svg | 1 + .../Icons/Ionicons/ios-alarm-outline.svg | 1 + .../Images/Icons/Ionicons/ios-alarm.svg | 1 + .../Icons/Ionicons/ios-albums-outline.svg | 1 + .../Images/Icons/Ionicons/ios-albums.svg | 1 + .../Ionicons/ios-americanfootball-outline.svg | 1 + .../Icons/Ionicons/ios-americanfootball.svg | 1 + .../Icons/Ionicons/ios-analytics-outline.svg | 1 + .../Images/Icons/Ionicons/ios-analytics.svg | 1 + .../Images/Icons/Ionicons/ios-arrow-back.svg | 1 + .../Images/Icons/Ionicons/ios-arrow-down.svg | 1 + .../Icons/Ionicons/ios-arrow-forward.svg | 1 + .../Images/Icons/Ionicons/ios-arrow-left.svg | 1 + .../Images/Icons/Ionicons/ios-arrow-right.svg | 1 + .../Icons/Ionicons/ios-arrow-thin-down.svg | 1 + .../Icons/Ionicons/ios-arrow-thin-left.svg | 1 + .../Icons/Ionicons/ios-arrow-thin-right.svg | 1 + .../Icons/Ionicons/ios-arrow-thin-up.svg | 1 + .../Images/Icons/Ionicons/ios-arrow-up.svg | 1 + .../Images/Icons/Ionicons/ios-at-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-at.svg | 1 + .../Icons/Ionicons/ios-barcode-outline.svg | 1 + .../Images/Icons/Ionicons/ios-barcode.svg | 1 + .../Icons/Ionicons/ios-baseball-outline.svg | 1 + .../Images/Icons/Ionicons/ios-baseball.svg | 1 + .../Icons/Ionicons/ios-basketball-outline.svg | 1 + .../Images/Icons/Ionicons/ios-basketball.svg | 1 + .../Icons/Ionicons/ios-bell-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-bell.svg | 1 + .../Icons/Ionicons/ios-bolt-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-bolt.svg | 1 + .../Icons/Ionicons/ios-bookmarks-outline.svg | 1 + .../Images/Icons/Ionicons/ios-bookmarks.svg | 1 + .../Images/Icons/Ionicons/ios-box-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-box.svg | 1 + .../Icons/Ionicons/ios-briefcase-outline.svg | 1 + .../Images/Icons/Ionicons/ios-briefcase.svg | 1 + .../Icons/Ionicons/ios-browsers-outline.svg | 1 + .../Images/Icons/Ionicons/ios-browsers.svg | 1 + .../Icons/Ionicons/ios-calculator-outline.svg | 1 + .../Images/Icons/Ionicons/ios-calculator.svg | 1 + .../Icons/Ionicons/ios-calendar-outline.svg | 1 + .../Images/Icons/Ionicons/ios-calendar.svg | 1 + .../Icons/Ionicons/ios-camera-outline.svg | 1 + .../Images/Icons/Ionicons/ios-camera.svg | 1 + .../Icons/Ionicons/ios-cart-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-cart.svg | 1 + .../Icons/Ionicons/ios-chatboxes-outline.svg | 1 + .../Images/Icons/Ionicons/ios-chatboxes.svg | 1 + .../Icons/Ionicons/ios-chatbubble-outline.svg | 1 + .../Images/Icons/Ionicons/ios-chatbubble.svg | 1 + .../Icons/Ionicons/ios-checkmark-empty.svg | 1 + .../Icons/Ionicons/ios-checkmark-outline.svg | 1 + .../Images/Icons/Ionicons/ios-checkmark.svg | 1 + .../Icons/Ionicons/ios-circle-filled.svg | 1 + .../Icons/Ionicons/ios-circle-outline.svg | 1 + .../Icons/Ionicons/ios-clock-outline.svg | 1 + .../Images/Icons/Ionicons/ios-clock.svg | 1 + .../Images/Icons/Ionicons/ios-close-empty.svg | 1 + .../Icons/Ionicons/ios-close-outline.svg | 1 + .../Images/Icons/Ionicons/ios-close.svg | 1 + .../Ionicons/ios-cloud-download-outline.svg | 1 + .../Icons/Ionicons/ios-cloud-download.svg | 1 + .../Icons/Ionicons/ios-cloud-outline.svg | 1 + .../Ionicons/ios-cloud-upload-outline.svg | 1 + .../Icons/Ionicons/ios-cloud-upload.svg | 1 + .../Images/Icons/Ionicons/ios-cloud.svg | 1 + .../Ionicons/ios-cloudy-night-outline.svg | 1 + .../Icons/Ionicons/ios-cloudy-night.svg | 1 + .../Icons/Ionicons/ios-cloudy-outline.svg | 1 + .../Images/Icons/Ionicons/ios-cloudy.svg | 1 + .../Images/Icons/Ionicons/ios-cog-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-cog.svg | 1 + .../Icons/Ionicons/ios-compose-outline.svg | 1 + .../Images/Icons/Ionicons/ios-compose.svg | 1 + .../Icons/Ionicons/ios-contact-outline.svg | 1 + .../Images/Icons/Ionicons/ios-contact.svg | 1 + .../Icons/Ionicons/ios-copy-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-copy.svg | 1 + .../Icons/Ionicons/ios-download-outline.svg | 1 + .../Images/Icons/Ionicons/ios-download.svg | 1 + .../Public/Images/Icons/Ionicons/ios-drag.svg | 1 + .../Icons/Ionicons/ios-email-outline.svg | 1 + .../Images/Icons/Ionicons/ios-email.svg | 1 + .../Images/Icons/Ionicons/ios-expand.svg | 1 + .../Images/Icons/Ionicons/ios-eye-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-eye.svg | 1 + .../Ionicons/ios-fastforward-outline.svg | 1 + .../Images/Icons/Ionicons/ios-fastforward.svg | 1 + .../Icons/Ionicons/ios-filing-outline.svg | 1 + .../Images/Icons/Ionicons/ios-filing.svg | 1 + .../Icons/Ionicons/ios-film-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-film.svg | 1 + .../Icons/Ionicons/ios-flag-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-flag.svg | 1 + .../Icons/Ionicons/ios-folder-outline.svg | 1 + .../Images/Icons/Ionicons/ios-folder.svg | 1 + .../Icons/Ionicons/ios-football-outline.svg | 1 + .../Images/Icons/Ionicons/ios-football.svg | 1 + .../Icons/Ionicons/ios-gear-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-gear.svg | 1 + .../Icons/Ionicons/ios-glasses-outline.svg | 1 + .../Images/Icons/Ionicons/ios-glasses.svg | 1 + .../Icons/Ionicons/ios-heart-outline.svg | 1 + .../Images/Icons/Ionicons/ios-heart.svg | 1 + .../Images/Icons/Ionicons/ios-help-empty.svg | 1 + .../Icons/Ionicons/ios-help-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-help.svg | 1 + .../Icons/Ionicons/ios-home-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-home.svg | 1 + .../Icons/Ionicons/ios-infinite-outline.svg | 1 + .../Images/Icons/Ionicons/ios-infinite.svg | 1 + .../Icons/Ionicons/ios-information-empty.svg | 1 + .../Ionicons/ios-information-outline.svg | 1 + .../Images/Icons/Ionicons/ios-information.svg | 1 + .../Icons/Ionicons/ios-ionic-outline.svg | 1 + .../Icons/Ionicons/ios-keypad-outline.svg | 1 + .../Images/Icons/Ionicons/ios-keypad.svg | 1 + .../Icons/Ionicons/ios-lightbulb-outline.svg | 1 + .../Images/Icons/Ionicons/ios-lightbulb.svg | 1 + .../Icons/Ionicons/ios-location-outline.svg | 1 + .../Images/Icons/Ionicons/ios-location.svg | 1 + .../Icons/Ionicons/ios-locked-outline.svg | 1 + .../Images/Icons/Ionicons/ios-locked.svg | 1 + .../Images/Icons/Ionicons/ios-loop-strong.svg | 1 + .../Public/Images/Icons/Ionicons/ios-loop.svg | 1 + .../Icons/Ionicons/ios-medkit-outline.svg | 1 + .../Images/Icons/Ionicons/ios-medkit.svg | 1 + .../Images/Icons/Ionicons/ios-mic-off.svg | 1 + .../Images/Icons/Ionicons/ios-mic-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-mic.svg | 1 + .../Images/Icons/Ionicons/ios-minus-empty.svg | 1 + .../Icons/Ionicons/ios-minus-outline.svg | 1 + .../Images/Icons/Ionicons/ios-minus.svg | 1 + .../Icons/Ionicons/ios-monitor-outline.svg | 1 + .../Images/Icons/Ionicons/ios-monitor.svg | 1 + .../Icons/Ionicons/ios-moon-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-moon.svg | 1 + .../Icons/Ionicons/ios-more-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-more.svg | 1 + .../Icons/Ionicons/ios-musical-note.svg | 1 + .../Icons/Ionicons/ios-musical-notes.svg | 1 + .../Icons/Ionicons/ios-navigate-outline.svg | 1 + .../Images/Icons/Ionicons/ios-navigate.svg | 1 + .../Icons/Ionicons/ios-paper-outline.svg | 1 + .../Images/Icons/Ionicons/ios-paper.svg | 1 + .../Icons/Ionicons/ios-paperplane-outline.svg | 1 + .../Images/Icons/Ionicons/ios-paperplane.svg | 1 + .../Ionicons/ios-partlysunny-outline.svg | 1 + .../Images/Icons/Ionicons/ios-partlysunny.svg | 1 + .../Icons/Ionicons/ios-pause-outline.svg | 1 + .../Images/Icons/Ionicons/ios-pause.svg | 1 + .../Images/Icons/Ionicons/ios-paw-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-paw.svg | 1 + .../Icons/Ionicons/ios-people-outline.svg | 1 + .../Images/Icons/Ionicons/ios-people.svg | 1 + .../Icons/Ionicons/ios-person-outline.svg | 1 + .../Images/Icons/Ionicons/ios-person.svg | 1 + .../Icons/Ionicons/ios-personadd-outline.svg | 1 + .../Images/Icons/Ionicons/ios-personadd.svg | 1 + .../Icons/Ionicons/ios-photos-outline.svg | 1 + .../Images/Icons/Ionicons/ios-photos.svg | 1 + .../Images/Icons/Ionicons/ios-pie-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-pie.svg | 1 + .../Icons/Ionicons/ios-play-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-play.svg | 1 + .../Images/Icons/Ionicons/ios-plus-empty.svg | 1 + .../Icons/Ionicons/ios-plus-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-plus.svg | 1 + .../Icons/Ionicons/ios-pricetag-outline.svg | 1 + .../Images/Icons/Ionicons/ios-pricetag.svg | 1 + .../Icons/Ionicons/ios-pricetags-outline.svg | 1 + .../Images/Icons/Ionicons/ios-pricetags.svg | 1 + .../Icons/Ionicons/ios-printer-outline.svg | 1 + .../Images/Icons/Ionicons/ios-printer.svg | 1 + .../Icons/Ionicons/ios-pulse-strong.svg | 1 + .../Images/Icons/Ionicons/ios-pulse.svg | 1 + .../Icons/Ionicons/ios-rainy-outline.svg | 1 + .../Images/Icons/Ionicons/ios-rainy.svg | 1 + .../Icons/Ionicons/ios-recording-outline.svg | 1 + .../Images/Icons/Ionicons/ios-recording.svg | 1 + .../Icons/Ionicons/ios-redo-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-redo.svg | 1 + .../Icons/Ionicons/ios-refresh-empty.svg | 1 + .../Icons/Ionicons/ios-refresh-outline.svg | 1 + .../Images/Icons/Ionicons/ios-refresh.svg | 1 + .../Images/Icons/Ionicons/ios-reload.svg | 1 + .../Ionicons/ios-reverse-camera-outline.svg | 1 + .../Icons/Ionicons/ios-reverse-camera.svg | 1 + .../Icons/Ionicons/ios-rewind-outline.svg | 1 + .../Images/Icons/Ionicons/ios-rewind.svg | 1 + .../Icons/Ionicons/ios-search-strong.svg | 1 + .../Images/Icons/Ionicons/ios-search.svg | 1 + .../Icons/Ionicons/ios-settings-strong.svg | 1 + .../Images/Icons/Ionicons/ios-settings.svg | 1 + .../Images/Icons/Ionicons/ios-shrink.svg | 1 + .../Ionicons/ios-skipbackward-outline.svg | 1 + .../Icons/Ionicons/ios-skipbackward.svg | 1 + .../Ionicons/ios-skipforward-outline.svg | 1 + .../Images/Icons/Ionicons/ios-skipforward.svg | 1 + .../Images/Icons/Ionicons/ios-snowy.svg | 1 + .../Ionicons/ios-speedometer-outline.svg | 1 + .../Images/Icons/Ionicons/ios-speedometer.svg | 1 + .../Images/Icons/Ionicons/ios-star-half.svg | 1 + .../Icons/Ionicons/ios-star-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-star.svg | 1 + .../Icons/Ionicons/ios-stopwatch-outline.svg | 1 + .../Images/Icons/Ionicons/ios-stopwatch.svg | 1 + .../Icons/Ionicons/ios-sunny-outline.svg | 1 + .../Images/Icons/Ionicons/ios-sunny.svg | 1 + .../Icons/Ionicons/ios-telephone-outline.svg | 1 + .../Images/Icons/Ionicons/ios-telephone.svg | 1 + .../Icons/Ionicons/ios-tennisball-outline.svg | 1 + .../Images/Icons/Ionicons/ios-tennisball.svg | 1 + .../Ionicons/ios-thunderstorm-outline.svg | 1 + .../Icons/Ionicons/ios-thunderstorm.svg | 1 + .../Icons/Ionicons/ios-time-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-time.svg | 1 + .../Icons/Ionicons/ios-timer-outline.svg | 1 + .../Images/Icons/Ionicons/ios-timer.svg | 1 + .../Icons/Ionicons/ios-toggle-outline.svg | 1 + .../Images/Icons/Ionicons/ios-toggle.svg | 1 + .../Icons/Ionicons/ios-trash-outline.svg | 1 + .../Images/Icons/Ionicons/ios-trash.svg | 1 + .../Icons/Ionicons/ios-undo-outline.svg | 1 + .../Public/Images/Icons/Ionicons/ios-undo.svg | 1 + .../Icons/Ionicons/ios-unlocked-outline.svg | 1 + .../Images/Icons/Ionicons/ios-unlocked.svg | 1 + .../Icons/Ionicons/ios-upload-outline.svg | 1 + .../Images/Icons/Ionicons/ios-upload.svg | 1 + .../Icons/Ionicons/ios-videocam-outline.svg | 1 + .../Images/Icons/Ionicons/ios-videocam.svg | 1 + .../Images/Icons/Ionicons/ios-volume-high.svg | 1 + .../Images/Icons/Ionicons/ios-volume-low.svg | 1 + .../Icons/Ionicons/ios-wineglass-outline.svg | 1 + .../Images/Icons/Ionicons/ios-wineglass.svg | 1 + .../Icons/Ionicons/ios-world-outline.svg | 1 + .../Images/Icons/Ionicons/ios-world.svg | 1 + .../Public/Images/Icons/Ionicons/ipad.svg | 1 + .../Public/Images/Icons/Ionicons/iphone.svg | 1 + .../Public/Images/Icons/Ionicons/ipod.svg | 1 + .../Public/Images/Icons/Ionicons/jet.svg | 1 + .../Public/Images/Icons/Ionicons/key.svg | 1 + .../Public/Images/Icons/Ionicons/knife.svg | 1 + .../Public/Images/Icons/Ionicons/laptop.svg | 1 + .../Public/Images/Icons/Ionicons/leaf.svg | 1 + .../Public/Images/Icons/Ionicons/levels.svg | 1 + .../Images/Icons/Ionicons/lightbulb.svg | 1 + .../Public/Images/Icons/Ionicons/link.svg | 1 + .../Public/Images/Icons/Ionicons/load-a.svg | 1 + .../Public/Images/Icons/Ionicons/load-b.svg | 1 + .../Public/Images/Icons/Ionicons/load-c.svg | 1 + .../Public/Images/Icons/Ionicons/load-d.svg | 1 + .../Public/Images/Icons/Ionicons/location.svg | 1 + .../Public/Images/Icons/Ionicons/locked.svg | 1 + .../Public/Images/Icons/Ionicons/log-in.svg | 1 + .../Public/Images/Icons/Ionicons/log-out.svg | 1 + .../Public/Images/Icons/Ionicons/loop.svg | 1 + .../Public/Images/Icons/Ionicons/magnet.svg | 1 + .../Public/Images/Icons/Ionicons/male.svg | 1 + .../Public/Images/Icons/Ionicons/man.svg | 1 + .../Public/Images/Icons/Ionicons/map.svg | 1 + .../Public/Images/Icons/Ionicons/medkit.svg | 1 + .../Public/Images/Icons/Ionicons/merge.svg | 1 + .../Public/Images/Icons/Ionicons/mic-a.svg | 1 + .../Public/Images/Icons/Ionicons/mic-b.svg | 1 + .../Public/Images/Icons/Ionicons/mic-c.svg | 1 + .../Images/Icons/Ionicons/minus-circled.svg | 1 + .../Images/Icons/Ionicons/minus-round.svg | 1 + .../Public/Images/Icons/Ionicons/minus.svg | 1 + .../Public/Images/Icons/Ionicons/model-s.svg | 1 + .../Public/Images/Icons/Ionicons/monitor.svg | 1 + .../Public/Images/Icons/Ionicons/more.svg | 1 + .../Public/Images/Icons/Ionicons/mouse.svg | 1 + .../Images/Icons/Ionicons/music-note.svg | 1 + .../Images/Icons/Ionicons/navicon-round.svg | 1 + .../Public/Images/Icons/Ionicons/navicon.svg | 1 + .../Public/Images/Icons/Ionicons/navigate.svg | 1 + .../Public/Images/Icons/Ionicons/network.svg | 1 + .../Images/Icons/Ionicons/no-smoking.svg | 1 + .../Public/Images/Icons/Ionicons/nuclear.svg | 1 + .../Public/Images/Icons/Ionicons/outlet.svg | 1 + .../Images/Icons/Ionicons/paper-airplane.svg | 1 + .../Images/Icons/Ionicons/paperclip.svg | 1 + .../Public/Images/Icons/Ionicons/pause.svg | 1 + .../Images/Icons/Ionicons/person-add.svg | 1 + .../Images/Icons/Ionicons/person-stalker.svg | 1 + .../Public/Images/Icons/Ionicons/person.svg | 1 + .../Images/Icons/Ionicons/pie-graph.svg | 1 + .../Public/Images/Icons/Ionicons/pin.svg | 1 + .../Public/Images/Icons/Ionicons/pinpoint.svg | 1 + .../Public/Images/Icons/Ionicons/pizza.svg | 1 + .../Public/Images/Icons/Ionicons/plane.svg | 1 + .../Public/Images/Icons/Ionicons/planet.svg | 1 + .../Public/Images/Icons/Ionicons/play.svg | 1 + .../Images/Icons/Ionicons/playstation.svg | 1 + .../Images/Icons/Ionicons/plus-circled.svg | 1 + .../Images/Icons/Ionicons/plus-round.svg | 1 + .../Public/Images/Icons/Ionicons/plus.svg | 1 + .../Public/Images/Icons/Ionicons/podium.svg | 1 + .../Public/Images/Icons/Ionicons/pound.svg | 1 + .../Public/Images/Icons/Ionicons/power.svg | 1 + .../Public/Images/Icons/Ionicons/pricetag.svg | 1 + .../Images/Icons/Ionicons/pricetags.svg | 1 + .../Public/Images/Icons/Ionicons/printer.svg | 1 + .../Images/Icons/Ionicons/pull-request.svg | 1 + .../Images/Icons/Ionicons/qr-scanner.svg | 1 + .../Public/Images/Icons/Ionicons/quote.svg | 1 + .../Images/Icons/Ionicons/radio-waves.svg | 1 + .../Public/Images/Icons/Ionicons/record.svg | 1 + .../Public/Images/Icons/Ionicons/refresh.svg | 1 + .../Images/Icons/Ionicons/reply-all.svg | 1 + .../Public/Images/Icons/Ionicons/reply.svg | 1 + .../Public/Images/Icons/Ionicons/ribbon-a.svg | 1 + .../Public/Images/Icons/Ionicons/ribbon-b.svg | 1 + .../Public/Images/Icons/Ionicons/sad.svg | 1 + .../Public/Images/Icons/Ionicons/scissors.svg | 1 + .../Public/Images/Icons/Ionicons/search.svg | 1 + .../Public/Images/Icons/Ionicons/settings.svg | 1 + .../Public/Images/Icons/Ionicons/share.svg | 1 + .../Public/Images/Icons/Ionicons/shuffle.svg | 1 + .../Images/Icons/Ionicons/skip-backward.svg | 1 + .../Images/Icons/Ionicons/skip-forward.svg | 1 + .../Icons/Ionicons/social-android-outline.svg | 1 + .../Images/Icons/Ionicons/social-android.svg | 1 + .../Icons/Ionicons/social-apple-outline.svg | 1 + .../Images/Icons/Ionicons/social-apple.svg | 1 + .../Icons/Ionicons/social-bitcoin-outline.svg | 1 + .../Images/Icons/Ionicons/social-bitcoin.svg | 1 + .../Icons/Ionicons/social-buffer-outline.svg | 1 + .../Images/Icons/Ionicons/social-buffer.svg | 1 + .../Ionicons/social-designernews-outline.svg | 1 + .../Icons/Ionicons/social-designernews.svg | 1 + .../Ionicons/social-dribbble-outline.svg | 1 + .../Images/Icons/Ionicons/social-dribbble.svg | 1 + .../Icons/Ionicons/social-dropbox-outline.svg | 1 + .../Images/Icons/Ionicons/social-dropbox.svg | 1 + .../Ionicons/social-facebook-outline.svg | 1 + .../Images/Icons/Ionicons/social-facebook.svg | 1 + .../Ionicons/social-foursquare-outline.svg | 1 + .../Icons/Ionicons/social-foursquare.svg | 1 + .../Icons/Ionicons/social-freebsd-devil.svg | 1 + .../Icons/Ionicons/social-github-outline.svg | 1 + .../Images/Icons/Ionicons/social-github.svg | 1 + .../Icons/Ionicons/social-google-outline.svg | 1 + .../Images/Icons/Ionicons/social-google.svg | 1 + .../Ionicons/social-googleplus-outline.svg | 1 + .../Icons/Ionicons/social-googleplus.svg | 1 + .../Ionicons/social-hackernews-outline.svg | 1 + .../Icons/Ionicons/social-hackernews.svg | 1 + .../Ionicons/social-instagram-outline.svg | 1 + .../Icons/Ionicons/social-instagram.svg | 1 + .../Ionicons/social-linkedin-outline.svg | 1 + .../Images/Icons/Ionicons/social-linkedin.svg | 1 + .../Ionicons/social-pinterest-outline.svg | 1 + .../Icons/Ionicons/social-pinterest.svg | 1 + .../Icons/Ionicons/social-reddit-outline.svg | 1 + .../Images/Icons/Ionicons/social-reddit.svg | 1 + .../Icons/Ionicons/social-rss-outline.svg | 1 + .../Images/Icons/Ionicons/social-rss.svg | 1 + .../Icons/Ionicons/social-skype-outline.svg | 1 + .../Images/Icons/Ionicons/social-skype.svg | 1 + .../Icons/Ionicons/social-tumblr-outline.svg | 1 + .../Images/Icons/Ionicons/social-tumblr.svg | 1 + .../Images/Icons/Ionicons/social-tux.svg | 1 + .../Icons/Ionicons/social-twitter-outline.svg | 1 + .../Images/Icons/Ionicons/social-twitter.svg | 1 + .../Icons/Ionicons/social-usd-outline.svg | 1 + .../Images/Icons/Ionicons/social-usd.svg | 1 + .../Icons/Ionicons/social-vimeo-outline.svg | 1 + .../Images/Icons/Ionicons/social-vimeo.svg | 1 + .../Icons/Ionicons/social-windows-outline.svg | 1 + .../Images/Icons/Ionicons/social-windows.svg | 1 + .../Ionicons/social-wordpress-outline.svg | 1 + .../Icons/Ionicons/social-wordpress.svg | 1 + .../Icons/Ionicons/social-yahoo-outline.svg | 1 + .../Images/Icons/Ionicons/social-yahoo.svg | 1 + .../Icons/Ionicons/social-youtube-outline.svg | 1 + .../Images/Icons/Ionicons/social-youtube.svg | 1 + .../Images/Icons/Ionicons/speakerphone.svg | 1 + .../Images/Icons/Ionicons/speedometer.svg | 1 + .../Public/Images/Icons/Ionicons/spoon.svg | 1 + .../Public/Images/Icons/Ionicons/star.svg | 1 + .../Images/Icons/Ionicons/stats-bars.svg | 1 + .../Public/Images/Icons/Ionicons/steam.svg | 1 + .../Public/Images/Icons/Ionicons/stop.svg | 1 + .../Images/Icons/Ionicons/thermometer.svg | 1 + .../Images/Icons/Ionicons/thumbsdown.svg | 1 + .../Public/Images/Icons/Ionicons/thumbsup.svg | 1 + .../Images/Icons/Ionicons/toggle-filled.svg | 1 + .../Public/Images/Icons/Ionicons/toggle.svg | 1 + .../Public/Images/Icons/Ionicons/trash-a.svg | 1 + .../Public/Images/Icons/Ionicons/trash-b.svg | 1 + .../Public/Images/Icons/Ionicons/trophy.svg | 1 + .../Public/Images/Icons/Ionicons/umbrella.svg | 1 + .../Images/Icons/Ionicons/university.svg | 1 + .../Public/Images/Icons/Ionicons/unlocked.svg | 1 + .../Public/Images/Icons/Ionicons/upload.svg | 1 + .../Public/Images/Icons/Ionicons/usb.svg | 1 + .../Images/Icons/Ionicons/videocamera.svg | 1 + .../Images/Icons/Ionicons/volume-high.svg | 1 + .../Images/Icons/Ionicons/volume-low.svg | 1 + .../Images/Icons/Ionicons/volume-medium.svg | 1 + .../Images/Icons/Ionicons/volume-mute.svg | 1 + .../Public/Images/Icons/Ionicons/wand.svg | 1 + .../Images/Icons/Ionicons/waterdrop.svg | 1 + .../Public/Images/Icons/Ionicons/wifi.svg | 1 + .../Images/Icons/Ionicons/wineglass.svg | 1 + .../Public/Images/Icons/Ionicons/woman.svg | 1 + .../Public/Images/Icons/Ionicons/wrench.svg | 1 + .../Public/Images/Icons/Ionicons/xbox.svg | 1 + .../Resources/Public/Images/Icons/none.svg | 1 + .../Public/Images/PhotoSwipe/default-skin.png | Bin 0 -> 547 bytes .../Public/Images/PhotoSwipe/default-skin.svg | 1 + .../Public/Images/PhotoSwipe/preloader.gif | Bin 0 -> 866 bytes .../Resources/Public/Images/blank.gif | Bin 0 -> 43 bytes .../Dist/bootstrap.accordion.min.js | 1 + .../Dist/bootstrap.cookieconsent.min.js | 1 + .../JavaScript/Dist/bootstrap.lightbox.min.js | 1 + .../JavaScript/Dist/bootstrap.navbar.min.js | 1 + .../JavaScript/Dist/bootstrap.popover.min.js | 1 + .../Dist/bootstrap.smoothscroll.min.js | 1 + .../Dist/bootstrap.stickyheader.min.js | 1 + .../JavaScript/Src/bootstrap.accordion.js | 16 + .../JavaScript/Src/bootstrap.cookieconsent.js | 155 + .../JavaScript/Src/bootstrap.lightbox.js | 170 + .../Public/JavaScript/Src/bootstrap.navbar.js | 96 + .../JavaScript/Src/bootstrap.popover.js | 8 + .../JavaScript/Src/bootstrap.smoothscroll.js | 39 + .../JavaScript/Src/bootstrap.stickyheader.js | 9 + .../Public/Scss/bootstrap4/_variables.scss | 125 + .../Scss/bootstrap4/compat/_accordion.scss | 134 + .../Scss/bootstrap4/compat/_carousel.scss | 9 + .../Public/Scss/bootstrap4/compat/_form.scss | 122 + .../Scss/bootstrap4/compat/_mixins.scss | 6 + .../Public/Scss/bootstrap4/compat/_text.scss | 23 + .../Scss/bootstrap4/compat/_visually.scss | 10 + .../Resources/Public/Scss/bootstrap4/rte.scss | 30 + .../Public/Scss/bootstrap4/theme.scss | 63 + .../Public/Scss/bootstrap5/_variables.scss | 133 + .../Public/Scss/bootstrap5/compat/_embed.scss | 50 + .../Public/Scss/bootstrap5/compat/_form.scss | 98 + .../Public/Scss/bootstrap5/compat/_text.scss | 37 + .../Resources/Public/Scss/bootstrap5/rte.scss | 30 + .../Public/Scss/bootstrap5/theme.scss | 60 + .../Public/Scss/components/_accordion.scss | 49 + .../Public/Scss/components/_address.scss | 13 + .../Public/Scss/components/_audio.scss | 18 + .../Scss/components/_backendlayout.scss | 151 + .../Public/Scss/components/_blockquote.scss | 21 + .../Public/Scss/components/_breadcrumb.scss | 27 + .../Public/Scss/components/_button.scss | 18 + .../Public/Scss/components/_card.scss | 62 + .../Public/Scss/components/_carousel.scss | 443 + .../Scss/components/_contentcontainer.scss | 74 + .../Public/Scss/components/_figure.scss | 20 + .../Public/Scss/components/_filelink.scss | 31 + .../Public/Scss/components/_footer.scss | 145 + .../Public/Scss/components/_frame.scss | 431 + .../Public/Scss/components/_gallery.scss | 73 + .../Public/Scss/components/_icongroup.scss | 151 + .../Public/Scss/components/_link.scss | 62 + .../Public/Scss/components/_list.scss | 62 + .../Public/Scss/components/_misc.scss | 6 + .../Public/Scss/components/_navbar.scss | 452 + .../Public/Scss/components/_pagination.scss | 6 + .../Public/Scss/components/_scrolltop.scss | 53 + .../Public/Scss/components/_section.scss | 27 + .../Public/Scss/components/_sociallink.scss | 37 + .../Public/Scss/components/_subnav.scss | 85 + .../Public/Scss/components/_tab.scss | 56 + .../Public/Scss/components/_table.scss | 6 + .../Public/Scss/components/_text.scss | 70 + .../Public/Scss/components/_texticon.scss | 88 + .../Public/Scss/components/_textpic.scss | 57 + .../Public/Scss/components/_textteaser.scss | 26 + .../Scss/components/_thumbnail-menu.scss | 142 + .../Public/Scss/components/_timeline.scss | 202 + .../Public/Scss/components/_well.scss | 14 + .../Scss/components/card/_cardgroup.scss | 61 + .../Scss/components/card/_cardmenu.scss | 61 + .../Scss/components/card/_cardpanel.scss | 115 + .../Public/Scss/plugins/_cookieconsent.scss | 324 + .../Public/Scss/plugins/_photoswipe.scss | 591 + .../Functional/Parser/ScssParserTest.php | 127 + .../AccordionContentElementUpdateTest.php | 51 + .../AccordionMediaOrientUpdateTest.php | 51 + .../Updates/BackendLayoutUpdateTest.php | 51 + .../BulletContentElementUpdateTest.php | 51 + .../CarouselContentElementUpdateTest.php | 51 + .../Updates/CarouselItemLayoutUpdateTest.php | 51 + .../Updates/CarouselItemTypeUpdateTest.php | 51 + .../ExternalMediaContentElementUpdateTest.php | 51 + .../AccordionContentElementUpdate/Input.csv | 3 + .../AccordionContentElementUpdate/Result.csv | 3 + .../AccordionMediaOrientUpdate/Input.csv | 4 + .../AccordionMediaOrientUpdate/Result.csv | 4 + .../Fixtures/BackendLayoutUpdate/Input.csv | 35 + .../Fixtures/BackendLayoutUpdate/Result.csv | 35 + .../BulletContentElementUpdate/Input.csv | 6 + .../BulletContentElementUpdate/Result.csv | 6 + .../CarouselContentElementUpdate/Input.csv | 6 + .../CarouselContentElementUpdate/Result.csv | 6 + .../CarouselItemLayoutUpdate/Input.csv | 3 + .../CarouselItemLayoutUpdate/Result.csv | 3 + .../Fixtures/CarouselItemTypeUpdate/Input.csv | 4 + .../CarouselItemTypeUpdate/Result.csv | 4 + .../Input.csv | 3 + .../Result.csv | 3 + .../FrameClassToBackgroundUpdate/Input.csv | 4 + .../FrameClassToBackgroundUpdate/Result.csv | 4 + .../Fixtures/FrameClassUpdate/Input.csv | 12 + .../Fixtures/FrameClassUpdate/Result.csv | 12 + .../ListGroupContentElementUpdate/Input.csv | 3 + .../ListGroupContentElementUpdate/Result.csv | 3 + .../PanelContentElementUpdate/Input.csv | 8 + .../PanelContentElementUpdate/Result.csv | 8 + .../TabContentElementUpdate/Input.csv | 3 + .../TabContentElementUpdate/Result.csv | 3 + .../Fixtures/TabMediaOrientUpdate/Input.csv | 4 + .../Fixtures/TabMediaOrientUpdate/Result.csv | 4 + .../TableContentElementUpdate/Input.csv | 8 + .../TableContentElementUpdate/Result.csv | 8 + .../TexticonContentElementUpdate/Input.csv | 3 + .../TexticonContentElementUpdate/Result.csv | 3 + .../Fixtures/TexticonIconUpdate/Input.csv | 4 + .../Fixtures/TexticonIconUpdate/Result.csv | 4 + .../Fixtures/TexticonSizeUpdate/Input.csv | 6 + .../Fixtures/TexticonSizeUpdate/Result.csv | 6 + .../Fixtures/TexticonTypeUpdate/Input.csv | 5 + .../Fixtures/TexticonTypeUpdate/Result.csv | 5 + .../FrameClassToBackgroundUpdateTest.php | 51 + .../Updates/FrameClassUpdateTest.php | 56 + .../ListGroupContentElementUpdateTest.php | 51 + .../Updates/PanelContentElementUpdateTest.php | 51 + .../Updates/TabContentElementUpdateTest.php | 51 + .../Updates/TabMediaOrientUpdateTest.php | 51 + .../Updates/TableContentElementUpdateTest.php | 51 + .../TexticonContentElementUpdateTest.php | 51 + .../Updates/TexticonIconUpdateTest.php | 51 + .../Updates/TexticonSizeUpdateTest.php | 51 + .../Updates/TexticonTypeUpdateTest.php | 51 + .../TCA/Overrides/sys_template.php | 19 + .../TypoScript/constants.typoscript | 1 + .../Configuration/TypoScript/setup.typoscript | 1 + .../Private/Scss/CoreSyntax/theme.scss | 1 + .../Resources/Private/Scss/Legacy/theme.scss | 1 + .../Private/Scss/Relative/theme.scss | 1 + .../Public/Images/PhotoSwipe/default-skin.png | Bin 0 -> 547 bytes .../Public/Images/PhotoSwipe/default-skin.svg | 1 + .../Public/Images/PhotoSwipe/preloader.gif | Bin 0 -> 866 bytes .../Tests/Packages/demo_package/composer.json | 21 + .../Packages/demo_package/ext_emconf.php | 32 + .../Packages/demo_package/ext_localconf.php | 10 + .../Packages/demo_package/ext_tables.php | 10 + .../Compiler/Fixtures/Calculation/Input.scss | 20 + .../Compiler/Fixtures/Calculation/Output.css | 13 + .../Tests/Unit/Compiler/ScssCompilerTest.php | 46 + .../Unit/Utility/ExternalMediaUtilityTest.php | 51 + .../Unit/Utility/ImageVariantsUtilityTest.php | 1061 + .../ext/bootstrap_package/composer.json | 146 + .../bootstrap_package/ext_conf_template.txt | 32 + .../ext/bootstrap_package/ext_emconf.php | 41 + .../ext/bootstrap_package/ext_localconf.php | 195 + .../ext/bootstrap_package/ext_tables.php | 18 + .../ext/bootstrap_package/ext_tables.sql | 349 + public/typo3conf/ext/femanager/.crowdin.yml | 3 + .../femanager/.ddev/commands/host/initialize | 17 + .../ext/femanager/.ddev/commands/web/typo3 | 10 + .../ext/femanager/.ddev/commands/web/typo3cms | 10 + .../typo3conf/ext/femanager/.ddev/config.yaml | 299 + .../.ddev/docker-compose.browser.yaml | 13 + .../.ddev/typo3/AdditionalConfiguration.php | 61 + .../ext/femanager/.ddev/typo3/config.yaml | 20 + .../.github/workflows/terupload.yaml | 17 + .../.github/workflows/test-documentation.yml | 17 + .../femanager/.github/workflows/testing.yaml | 119 + .../Classes/Controller/AbstractController.php | 546 + .../Controller/AbstractFrontendController.php | 18 + .../Classes/Controller/DataController.php | 30 + .../Classes/Controller/EditController.php | 255 + .../Controller/InvitationController.php | 306 + .../Classes/Controller/NewController.php | 562 + .../Controller/UserBackendController.php | 276 + .../Classes/Controller/UserController.php | 157 + .../DataProcessor/AbstractDataProcessor.php | 72 + .../Classes/DataProcessor/CleanUserGroup.php | 22 + .../DataProcessor/DataProcessorInterface.php | 18 + .../DataProcessor/DataProcessorRunner.php | 125 + .../Classes/DataProcessor/DateConverter.php | 35 + .../DataProcessor/ImageManipulation.php | 168 + .../DataProvider/CountryDataProvider.php | 25 + .../DataProvider/CountryZonesDataProvider.php | 61 + .../FallbackCountryDataProvider.php | 268 + .../CompilerPass/ChangeClassDatamapPass.php | 22 + .../femanager/Classes/Domain/Model/Log.php | 111 + .../femanager/Classes/Domain/Model/User.php | 434 + .../Classes/Domain/Model/UserGroup.php | 13 + .../Domain/Repository/LogRepository.php | 13 + .../Domain/Repository/PluginRepository.php | 132 + .../Domain/Repository/UserGroupRepository.php | 30 + .../Domain/Repository/UserRepository.php | 323 + .../AbstractConfirmation.php | 91 + .../ConfirmationInterface.php | 15 + .../EmailDomainConfirmation.php | 56 + .../Service/AutoAdminConfirmationService.php | 101 + .../Classes/Domain/Service/FileService.php | 123 + .../Domain/Service/FinisherService.php | 258 + .../Domain/Service/RatelimiterService.php | 127 + .../Domain/Service/SendMailService.php | 294 + .../Domain/Service/SendParametersService.php | 135 + .../Domain/Service/StoreInDatabaseService.php | 109 + .../Service/ValidationSettingsService.php | 134 + .../Domain/Validator/AbstractValidator.php | 490 + .../Domain/Validator/CaptchaValidator.php | 63 + .../Domain/Validator/ClientsideValidator.php | 482 + .../Domain/Validator/PasswordValidator.php | 145 + .../Domain/Validator/ServersideValidator.php | 403 + .../ShouldValidateStateCondition.php | 37 + .../ValidationConditionInterface.php | 12 + .../Event/AdminConfirmationUserEvent.php | 9 + .../Classes/Event/AfterMailSendEvent.php | 55 + .../Classes/Event/AfterUserUpdateEvent.php | 42 + .../Event/BeforeMailBodyRenderEvent.php | 63 + .../Classes/Event/BeforeMailSendEvent.php | 63 + .../Classes/Event/BeforeUpdateUserEvent.php | 9 + .../Classes/Event/BeforeUserConfirmEvent.php | 57 + .../Classes/Event/BeforeUserCreateEvent.php | 9 + .../Event/CreateConfirmationRequestEvent.php | 33 + .../Classes/Event/DeleteUserEvent.php | 9 + .../Classes/Event/FinalCreateEvent.php | 27 + .../Classes/Event/FinalUpdateEvent.php | 9 + .../Classes/Event/ImpersonateEvent.php | 9 + .../Event/InviteUserConfirmedEvent.php | 9 + .../Classes/Event/InviteUserCreateEvent.php | 9 + .../Classes/Event/InviteUserEditEvent.php | 30 + .../Classes/Event/InviteUserUpdateEvent.php | 9 + .../Classes/Event/RefuseUserEvent.php | 9 + .../Classes/Event/UniqueUserEvent.php | 64 + .../ext/femanager/Classes/Event/UserEvent.php | 22 + .../femanager/Classes/Event/UserLogEvent.php | 37 + .../Exception/FileNotFoundException.php | 12 + .../Exception/NotPaginatableException.php | 12 + .../Classes/Finisher/AbstractFinisher.php | 138 + .../Classes/Finisher/FinisherInterface.php | 48 + .../Classes/Finisher/FinisherRunner.php | 90 + .../Finisher/SaveToAnyTableFinisher.php | 192 + .../Finisher/SendParametersFinisher.php | 124 + .../Persistence/Generic/Mapper/DataMap.php | 27 + .../Classes/UserFunc/StaticInfoTables.php | 77 + .../Classes/UserFunc/UserFieldsOptions.php | 113 + .../Classes/UserFunc/UserOptions.php | 84 + .../Classes/Utility/AbstractUtility.php | 129 + .../Classes/Utility/BackendUserUtility.php | 36 + .../Classes/Utility/BackendUtility.php | 125 + .../Classes/Utility/ConfigurationUtility.php | 212 + .../femanager/Classes/Utility/FileUtility.php | 41 + .../Classes/Utility/FrontendUtility.php | 148 + .../femanager/Classes/Utility/HashUtility.php | 47 + .../Classes/Utility/LocalizationUtility.php | 37 + .../femanager/Classes/Utility/LogUtility.php | 51 + .../Classes/Utility/ObjectUtility.php | 99 + .../Classes/Utility/StringUtility.php | 157 + .../Classes/Utility/TemplateUtility.php | 129 + .../femanager/Classes/Utility/UserUtility.php | 362 + .../Be/GetClassNameOnActionViewHelper.php | 62 + ...sConfirmationModuleActivatedViewHelper.php | 21 + ...ConfirmationRequestActivatedViewHelper.php | 21 + ...dAdministratorAuthenticationViewHelper.php | 23 + ...ountriesFromStaticInfoTablesViewHelper.php | 84 + .../Form/GetCountriesViewHelper.php | 279 + .../ViewHelpers/Form/SelectViewHelper.php | 98 + .../ViewHelpers/Form/TextfieldViewHelper.php | 61 + .../Misc/BackendEditLinkViewHelper.php | 43 + .../Misc/BackendNewLinkViewHelper.php | 42 + .../Misc/CaptchaEnabledViewHelper.php | 40 + .../ViewHelpers/Misc/ExplodeViewHelper.php | 35 + .../ViewHelpers/Misc/GetFirstViewHelper.php | 52 + .../ViewHelpers/Misc/JsonEncodeViewHelper.php | 37 + .../ViewHelpers/Misc/RequestViewHelper.php | 95 + .../ViewHelpers/Misc/UpperViewHelper.php | 23 + .../Pagination/PaginateViewHelper.php | 142 + .../ViewHelpers/Pagination/UriViewHelper.php | 61 + .../Repository/GetFirstViewHelper.php | 38 + .../AbstractValidationViewHelper.php | 56 + .../FormValidationDataViewHelper.php | 64 + .../Validation/IsRequiredFieldViewHelper.php | 59 + .../Extbase/Persistence/Classes.php | 23 + .../Configuration/FlexForms/FlexFormPi1.xml | 665 + .../ext/femanager/Configuration/Services.php | 11 + .../ext/femanager/Configuration/Services.yaml | 32 + .../Configuration/TCA/Overrides/fe_users.php | 205 + .../TCA/Overrides/sys_template.php | 19 + .../TCA/Overrides/tt_content.php | 26 + .../TCA/tx_femanager_domain_model_log.php | 268 + .../TypoScript/Layout/setup.typoscript | 5 + .../TypoScript/Main/constants.typoscript | 48 + .../TypoScript/Main/setup.typoscript | 1798 ++ .../UserTsConfig/BackendModule.typoscript | 8 + .../Documentation/Changelog/Index.rst | 373 + .../ext/femanager/Documentation/FAQ/Index.rst | 357 + .../Features/AutoConfirmation/Index.rst | 133 + .../Features/Countryselect/Index.rst | 105 + .../Features/FillEmailAsUsername/Index.rst | 51 + .../Features/Finishers/Index.rst | 173 + .../Documentation/Features/Index.rst | 110 + .../Features/NewFields/Index.rst | 465 + .../Features/NewValidators/Index.rst | 129 + .../Features/RateLimiter/Index.rst | 31 + .../ResendUserConfirmationRequest/Index.rst | 54 + .../Features/ShowListUsers/Index.rst | 65 + .../Documentation/Features/Signals/Index.rst | 306 + .../Features/Templates/Index.rst | 68 + .../feature-showlistusers-loggedin-user.png | Bin 0 -> 117161 bytes .../feature-showlistusers-loggedin-user1.png | Bin 0 -> 176611 bytes .../feature-showlistusers-loggedin-user2.png | Bin 0 -> 123580 bytes .../Images/femanager_backend1.png | Bin 0 -> 27468 bytes .../Images/femanager_backend2.png | Bin 0 -> 20337 bytes .../Images/femanager_backend3.png | Bin 0 -> 24713 bytes .../Images/femanager_backend4.png | Bin 0 -> 101971 bytes .../Images/femanager_backendmodule.png | Bin 0 -> 32040 bytes .../Images/femanager_backendmodule2.png | Bin 0 -> 18801 bytes .../Images/femanager_constants.png | Bin 0 -> 39694 bytes .../Images/femanager_create1.png | Bin 0 -> 21760 bytes .../Images/femanager_create2.png | Bin 0 -> 72362 bytes .../Images/femanager_create3.png | Bin 0 -> 13104 bytes .../Documentation/Images/femanager_edit1.png | Bin 0 -> 30467 bytes .../Documentation/Images/femanager_edit2.png | Bin 0 -> 25092 bytes .../Images/femanager_extensionmanager.png | Bin 0 -> 12143 bytes ...manager_extensionmanager_configuration.png | Bin 0 -> 30133 bytes .../Images/femanager_feusers_record.png | Bin 0 -> 28381 bytes .../Images/femanager_flexform_newfields.png | Bin 0 -> 16289 bytes .../Images/femanager_newfield1.png | Bin 0 -> 13104 bytes .../Images/femanager_newfield2.png | Bin 0 -> 11050 bytes .../Documentation/Images/femanager_plugin.png | Bin 0 -> 12715 bytes .../Images/femanager_plugin2.png | Bin 0 -> 12331 bytes .../Images/femanager_plugin3.png | Bin 0 -> 45297 bytes .../femanager/Documentation/Includes.rst.txt | 1 + .../ext/femanager/Documentation/Index.rst | 67 + .../Documentation/Installation/Index.rst | 2222 ++ .../Documentation/Introduction/Images.txt | 47 + .../Documentation/Introduction/Index.rst | 44 + .../ext/femanager/Documentation/Sitemap.rst | 9 + .../femanager/Documentation/Upgrade/Index.rst | 150 + .../ext/femanager/Documentation/guides.xml | 30 + .../ext/femanager/Resources/Private/.htaccess | 11 + .../Resources/Private/Language/locallang.xlf | 695 + .../Language/locallang_csh_fe_users.xlf | 12 + .../Private/Language/locallang_db.xlf | 352 + .../Private/Language/locallang_mod.xlf | 17 + .../Resources/Private/Layouts/Backend.html | 53 + .../Resources/Private/Layouts/Clean.html | 1 + .../Resources/Private/Layouts/Default.html | 5 + .../Resources/Private/Layouts/Email.html | 1 + .../Private/Partials/Backend/Searchform.html | 18 + .../Private/Partials/Fields/Address.html | 16 + .../Private/Partials/Fields/Captcha.html | 33 + .../Private/Partials/Fields/CaptchaField.html | 18 + .../Private/Partials/Fields/City.html | 16 + .../Private/Partials/Fields/Company.html | 16 + .../Private/Partials/Fields/Country.html | 67 + .../Private/Partials/Fields/DateOfBirth.html | 19 + .../Private/Partials/Fields/Email.html | 17 + .../Private/Partials/Fields/Fax.html | 17 + .../Private/Partials/Fields/FirstName.html | 16 + .../Private/Partials/Fields/Gender.html | 44 + .../Private/Partials/Fields/Image.html | 29 + .../Private/Partials/Fields/LastName.html | 16 + .../Private/Partials/Fields/MiddleName.html | 16 + .../Private/Partials/Fields/Name.html | 16 + .../Private/Partials/Fields/Password.html | 36 + .../Private/Partials/Fields/State.html | 19 + .../Private/Partials/Fields/SubmitCreate.html | 8 + .../Private/Partials/Fields/SubmitUpdate.html | 8 + .../Private/Partials/Fields/Telephone.html | 17 + .../Private/Partials/Fields/Terms.html | 24 + .../Private/Partials/Fields/Title.html | 16 + .../Private/Partials/Fields/Usergroup.html | 61 + .../Private/Partials/Fields/Username.html | 16 + .../Private/Partials/Fields/Www.html | 17 + .../Private/Partials/Fields/Zip.html | 16 + .../Private/Partials/Mail/UserProperties.html | 165 + .../Partials/Misc/AdditionalFields.html | 27 + .../Private/Partials/Misc/DeleteLink.html | 14 + .../Private/Partials/Misc/FlashMessages.html | 11 + .../Private/Partials/Misc/FormErrors.html | 44 + .../Private/Partials/Misc/Pagination.html | 40 + .../Partials/Misc/ResendConfirmation.html | 14 + .../Partials/Misc/ValidationMessages.html | 9 + .../Private/Partials/User/Searchform.html | 25 + .../Templates/Edit/ConfirmUpdateRequest.html | 12 + .../Private/Templates/Edit/Edit.html | 90 + .../Email/CreateAdminConfirmation.html | 43 + .../Private/Templates/Email/CreateNotify.html | 39 + .../Email/CreateUserConfirmation.html | 32 + .../Templates/Email/CreateUserNotify.html | 17 + .../Email/CreateUserNotifyRefused.html | 17 + .../Private/Templates/Email/Invitation.html | 34 + .../Templates/Email/InvitationNotify.html | 23 + .../Email/InvitationNotifyStep1.html | 23 + .../Templates/Email/InvitationRefused.html | 23 + .../Private/Templates/Email/UpdateNotify.html | 93 + .../Templates/Email/UpdateRequest.html | 113 + .../Templates/Email/UpdateRequestRefused.html | 24 + .../Private/Templates/Invitation/Edit.html | 36 + .../Private/Templates/Invitation/New.html | 75 + .../Private/Templates/Invitation/Status.html | 9 + .../Templates/New/ConfirmCreateRequest.html | 137 + .../Private/Templates/New/CreateStatus.html | 8 + .../Resources/Private/Templates/New/New.html | 73 + .../New/ResendConfirmationDialogue.html | 36 + .../Private/Templates/User/FileDelete.html | 7 + .../Private/Templates/User/FileUpload.html | 5 + .../Private/Templates/User/List.html | 122 + .../Private/Templates/User/Show.html | 97 + .../Private/Templates/User/Validate.html | 23 + .../Templates/UserBackend/Confirmation.html | 119 + .../Private/Templates/UserBackend/List.html | 235 + .../ListOpenUserConfirmations.html | 117 + .../Resources/Public/Css/Additional.min.css | 1 + .../Resources/Public/Css/Backend.min.css | 1 + .../Resources/Public/Css/Main.min.css | 1 + .../Resources/Public/Icons/Extension.svg | 7 + .../femanager/Resources/Public/Icons/Log.png | Bin 0 -> 360 bytes .../Resources/Public/Icons/relation.gif | Bin 0 -> 233 bytes .../Public/JavaScript/Backend.min.js | 1 + .../Resources/Public/JavaScript/Data.min.js | 1 + .../Public/JavaScript/Femanager.min.js | 1 + .../Public/JavaScript/Validation.min.js | 1 + .../JavaScript/Vendor/bootstrap.min.css | 6 + .../Public/JavaScript/Vendor/bootstrap.min.js | 7 + public/typo3conf/ext/femanager/composer.json | 146 + .../ext/femanager/ext_conf_template.txt | 11 + public/typo3conf/ext/femanager/ext_emconf.php | 33 + .../typo3conf/ext/femanager/ext_localconf.php | 33 + public/typo3conf/ext/femanager/ext_tables.php | 34 + public/typo3conf/ext/femanager/ext_tables.sql | 55 + .../femanager/ext_typoscript_setup.typoscript | 36 + public/typo3conf/ext/femanager/readme.md | 92 + public/typo3conf/ext/femanager/rector.php | 97 + .../typo3conf/ext/femanager/shell-commands.sh | 218 + public/typo3conf/ext/off/.gitignore | 5 + .../ext/off/Classes/Backend/FixUser.php | 45 + .../ext/off/Classes/Backend/Labels.php | 218 + .../ext/off/Classes/Backend/Selecting.php | 66 + .../off/Classes/Berechnung/Architekten.php | 67 + .../Berechnung/AufloesungPunkteVerteilung.php | 106 + .../off/Classes/Berechnung/Erfolgspunkte.php | 194 + .../ext/off/Classes/Berechnung/Frauen.php | 78 + .../off/Classes/Berechnung/Neueinsteiger.php | 75 + .../Classes/Berechnung/PunkteKriterien.php | 65 + .../off/Classes/Berechnung/Sektionstage.php | 74 + .../Berechnung/Solidaritaetserklaerung.php | 43 + .../Classes/Berechnung/Sondersperrungen.php | 95 + .../Berechnung/WettbewerbeArchitekten.php | 61 + .../off/Classes/Berechnung/_Berechnung.php | 277 + .../ext/off/Classes/Bootstrap/KammerById.php | 41 + .../off/Classes/Bootstrap/UserSettings.php | 73 + .../Bootstrap/_BootstrapController.php | 42 + .../Controller/AdministrationController.php | 35 + .../Controller/ArchitektenController.php | 150 + .../off/Classes/Controller/EditController.php | 20 + .../Controller/ExtrasperrungController.php | 136 + .../Controller/KriterienController.php | 142 + .../off/Classes/Controller/NewController.php | 20 + .../Controller/WettbewerbeController.php | 225 + .../off/Classes/Domain/Model/Architekten.php | 193 + .../Classes/Domain/Model/Extrasperrung.php | 120 + .../ext/off/Classes/Domain/Model/Kammern.php | 63 + .../off/Classes/Domain/Model/Kriterien.php | 119 + .../ext/off/Classes/Domain/Model/Preisart.php | 63 + .../ext/off/Classes/Domain/Model/Punkte.php | 63 + .../off/Classes/Domain/Model/Sektionstage.php | 371 + .../ext/off/Classes/Domain/Model/User.php | 62 + .../off/Classes/Domain/Model/Wettbewerbe.php | 355 + .../Repository/ArchitektenRepository.php | 36 + .../Domain/Repository/KriterienRepository.php | 36 + .../Repository/WettbewerbeRepository.php | 36 + .../off/Classes/Download/PdfEinreichung.php | 38 + .../ext/off/Classes/Download/PdfListe.php | 105 + .../Classes/Download/_DownloadController.php | 39 + .../ext/off/Classes/Download/print.css | 98 + .../ext/off/Classes/Download/style.css | 121 + .../Classes/Einreichen/EinreichungDelete.php | 47 + .../Classes/Einreichen/EinreichungenUser.php | 57 + .../Einreichen/_EinreichenController.php | 36 + .../ext/off/Classes/Liste/Archive.php | 41 + .../ext/off/Classes/Liste/ArchiveMenu.php | 55 + .../off/Classes/Liste/EinreichungenAdmin.php | 148 + .../ext/off/Classes/Liste/Freischaltungen.php | 174 + .../ext/off/Classes/Liste/ListeAdmin.php | 42 + .../ext/off/Classes/Liste/ListeTree.php | 175 + .../ext/off/Classes/Liste/Recalculate.php | 95 + .../off/Classes/Liste/_ListeController.php | 61 + .../ext/off/Classes/Middleware/Ajax.php | 74 + .../off/Classes/PunkteZuweisung/Preise.php | 118 + .../PunkteZuweisung/PunkteZuweisen.php | 170 + .../PunkteZuweisung/PunkteZuweisungen.php | 94 + .../_PunkteZuweisungController.php | 41 + .../ext/off/Classes/Scheduler/CronTask.php | 17 + .../ext/off/Classes/Upload/Upload.php | 118 + .../off/Classes/Upload/_UploadController.php | 41 + .../ext/off/Classes/User/UserKonto.php | 199 + .../ext/off/Classes/User/_UserController.php | 40 + .../ext/off/Classes/Utilities/FileUtility.php | 40 + .../ext/off/Classes/Utilities/Message.php | 36 + .../ext/off/Classes/Utilities/Resources.php | 72 + .../Zuladungsliste/PositionArchitekt.php | 44 + .../Zuladungsliste/Punktezuweisung.php | 78 + .../Zuladungsliste/TreemenuPosition.php | 90 + .../_ZuladungslisteController.php | 43 + .../ext/off/Classes/Zuteilungen/Zuteilung.php | 140 + .../off/Classes/Zuteilungen/ZuteilungNeu.php | 122 + .../Zuteilungen/ZuteilungWettbewerbe.php | 78 + .../off/Classes/Zuteilungen/Zuteilungen.php | 86 + .../Zuteilungen/ZuteilungenErteilt.php | 53 + .../Zuteilungen/_ZuteilungenController.php | 50 + .../Extbase/Persistence/Classes.php | 21 + .../FlexForms/flexform_zuladungsliste.xml | 37 + .../off/Configuration/RequestMiddlewares.php | 12 + .../Configuration/TCA/Overrides/fe_users.php | 186 + .../TCA/Overrides/sys_template.php | 5 + .../TCA/Overrides/tt_content.php | 41 + ...adungsliste_domain_model_extrasperrung.php | 10 + ...tx_zuladungsliste_domain_model_kammern.php | 9 + ..._zuladungsliste_domain_model_kriterien.php | 11 + ...x_zuladungsliste_domain_model_preisart.php | 9 + .../tx_zuladungsliste_domain_model_punkte.php | 9 + ...ladungsliste_domain_model_sektionstage.php | 11 + ...uladungsliste_domain_model_wettbewerbe.php | 9 + .../tx_zuladungsliste_konto_aufloesung_mm.php | 11 + .../tx_zuladungsliste_punkte_kriterien_mm.php | 12 + ...adungsliste_wettbewerbe_architekten_mm.php | 15 + ...adungsliste_domain_model_extrasperrung.php | 175 + ...tx_zuladungsliste_domain_model_kammern.php | 101 + ..._zuladungsliste_domain_model_kriterien.php | 188 + ...x_zuladungsliste_domain_model_preisart.php | 84 + .../tx_zuladungsliste_domain_model_punkte.php | 99 + ...ladungsliste_domain_model_sektionstage.php | 255 + ...uladungsliste_domain_model_wettbewerbe.php | 273 + ...x_zuladungsliste_extrasperrung_user_mm.php | 48 + .../tx_zuladungsliste_konto_aufloesung_mm.php | 62 + .../tx_zuladungsliste_punkte_kriterien_mm.php | 59 + ...adungsliste_wettbewerbe_architekten_mm.php | 106 + .../TypoScript/constants.typoscript | 30 + .../Configuration/TypoScript/setup.typoscript | 101 + public/typo3conf/ext/off/Readme.md | 29 + .../ext/off/Resources/Private/.htaccess | 11 + .../Private/Backend/Layouts/Default.html | 36 + .../Private/Backend/Partials/FormErrors.html | 13 + .../Partials/Kriterien/FormFields.html | 5 + .../Partials/Kriterien/Properties.html | 11 + .../Partials/Wettbewerbe/FormFields.html | 41 + .../Partials/Wettbewerbe/Properties.html | 83 + .../Backend/Templates/Architekten/List.html | 43 + .../Backend/Templates/Kriterien/Edit.html | 26 + .../Backend/Templates/Kriterien/List.html | 37 + .../Backend/Templates/Kriterien/New.html | 26 + .../Backend/Templates/Kriterien/Show.html | 22 + .../Backend/Templates/Wettbewerbe/Edit.html | 26 + .../Backend/Templates/Wettbewerbe/Front.html | 5 + .../Backend/Templates/Wettbewerbe/List.html | 55 + .../Backend/Templates/Wettbewerbe/New.html | 26 + .../Backend/Templates/Wettbewerbe/Show.html | 22 + .../Resources/Private/Language/locallang.xlf | 140 + .../Language/locallang_bezuladungsliste.xlf | 14 + .../Language/locallang_bmzuladungsliste.xlf | 18 + .../Language/locallang_csh_fe_users.xlf | 20 + ...adungsliste_domain_model_extrasperrung.xlf | 17 + ...tx_zuladungsliste_domain_model_kammern.xlf | 11 + ..._zuladungsliste_domain_model_kriterien.xlf | 17 + ...x_zuladungsliste_domain_model_preisart.xlf | 11 + ..._tx_zuladungsliste_domain_model_punkte.xlf | 11 + ...ladungsliste_domain_model_sektionstage.xlf | 44 + ...uladungsliste_domain_model_wettbewerbe.xlf | 41 + .../Private/Language/locallang_db.xlf | 143 + .../Resources/Private/Layouts/Default.html | 4 + .../Private/Layouts/EmptyPageRenderer.html | 27 + .../Private/Partials/Fields/Address.html | 15 + .../Private/Partials/Fields/Captcha.html | 33 + .../Private/Partials/Fields/CaptchaField.html | 21 + .../Private/Partials/Fields/City.html | 15 + .../Private/Partials/Fields/Company.html | 15 + .../Private/Partials/Fields/Country.html | 62 + .../Private/Partials/Fields/DateOfBirth.html | 18 + .../Private/Partials/Fields/Email.html | 16 + .../Private/Partials/Fields/Fax.html | 16 + .../Private/Partials/Fields/FirstName.html | 15 + .../Partials/Fields/Frauenfoerderpunkt.html | 17 + .../Private/Partials/Fields/Gender.html | 34 + .../Private/Partials/Fields/Image.html | 29 + .../Fields/Kammermitgliedsnummer.html | 14 + .../Private/Partials/Fields/LastName.html | 15 + .../Private/Partials/Fields/MiddleName.html | 16 + .../Private/Partials/Fields/Name.html | 16 + .../Private/Partials/Fields/Password.html | 36 + .../Private/Partials/Fields/State.html | 19 + .../Private/Partials/Fields/SubmitCreate.html | 8 + .../Private/Partials/Fields/SubmitUpdate.html | 8 + .../Private/Partials/Fields/Telephone.html | 15 + .../Private/Partials/Fields/Terms.html | 24 + .../Private/Partials/Fields/Title.html | 19 + .../Private/Partials/Fields/Usergroup.html | 61 + .../Private/Partials/Fields/Username.html | 18 + .../Private/Partials/Fields/Vereidigung.html | 13 + .../Private/Partials/Fields/Www.html | 16 + .../Private/Partials/Fields/Zip.html | 15 + .../Private/Partials/FormErrors.html | 13 + .../Partials/Kriterien/FormFields.html | 5 + .../Partials/Kriterien/Properties.html | 11 + .../Partials/Wettbewerbe/FormFields.html | 41 + .../Partials/Wettbewerbe/Properties.html | 83 + .../Private/Templates/Architekten/List.html | 43 + .../Templates/Felogin/Login/Login.html | 150 + .../Templates/Felogin/Login/Logout.html | 46 + .../Private/Templates/Kriterien/Edit.html | 26 + .../Private/Templates/Kriterien/List.html | 37 + .../Private/Templates/Kriterien/New.html | 26 + .../Private/Templates/Kriterien/Show.html | 22 + .../Private/Templates/Wettbewerbe/Edit.html | 26 + .../Private/Templates/Wettbewerbe/List.html | 55 + .../Private/Templates/Wettbewerbe/New.html | 26 + .../Private/Templates/Wettbewerbe/Show.html | 22 + .../Resources/Public/Css/Backend/backend.css | 54 + .../off/Resources/Public/Css/img/filter.png | Bin 0 -> 459 bytes .../ext/off/Resources/Public/Css/img/lupe.png | Bin 0 -> 525 bytes .../Resources/Public/Css/visual/backend.css | 54 + .../Resources/Public/Css/zuladungsliste.css | 1344 ++ .../Raleway/raleway-v28-latin-regular.eot | Bin 0 -> 24624 bytes .../Raleway/raleway-v28-latin-regular.svg | 326 + .../Raleway/raleway-v28-latin-regular.ttf | Bin 0 -> 46760 bytes .../Raleway/raleway-v28-latin-regular.woff | Bin 0 -> 25916 bytes .../Raleway/raleway-v28-latin-regular.woff2 | Bin 0 -> 21280 bytes .../off/Resources/Public/Icons/Extension.png | Bin 0 -> 2977 bytes .../Resources/Public/Icons/ExtensionAdler.png | Bin 0 -> 57099 bytes .../Public/Icons/ExtensionBgWhite.png | Bin 0 -> 53397 bytes .../off/Resources/Public/Icons/ext_icon.gif | Bin 0 -> 1579 bytes .../ext/off/Resources/Public/Icons/lupe.png | Bin 0 -> 310 bytes .../off/Resources/Public/Icons/relation.gif | Bin 0 -> 233 bytes .../Public/Icons/svg/competition.svg | 59 + .../off/Resources/Public/Icons/svg/kammer.svg | 5 + .../off/Resources/Public/Icons/svg/list.svg | 2 + .../off/Resources/Public/Icons/svg/preis.svg | 3 + .../off/Resources/Public/Icons/svg/waage.svg | 2 + .../Resources/Public/Icons/svg/wettbewerb.svg | 3 + ...adungsliste_domain_model_extrasperrung.gif | Bin 0 -> 1189 bytes ...adungsliste_domain_model_extrasperrung.svg | 8 + ...tx_zuladungsliste_domain_model_kammern.gif | Bin 0 -> 1221 bytes ...tx_zuladungsliste_domain_model_kammern.svg | 10 + ..._zuladungsliste_domain_model_kriterien.gif | Bin 0 -> 1284 bytes ..._zuladungsliste_domain_model_kriterien.svg | 8 + ...x_zuladungsliste_domain_model_preisart.gif | Bin 0 -> 1184 bytes ...x_zuladungsliste_domain_model_preisart.svg | 8 + .../tx_zuladungsliste_domain_model_punkte.gif | Bin 0 -> 1231 bytes .../tx_zuladungsliste_domain_model_punkte.svg | 8 + ...ladungsliste_domain_model_sektionstage.gif | Bin 0 -> 1184 bytes ...ladungsliste_domain_model_sektionstage.svg | 8 + ...uladungsliste_domain_model_wettbewerbe.gif | Bin 0 -> 1218 bytes ...uladungsliste_domain_model_wettbewerbe.svg | 8 + .../Resources/Public/Icons/zuladungacht.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungalle.png | Bin 0 -> 1152 bytes .../Resources/Public/Icons/zuladungdrei.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungfree.png | Bin 0 -> 1130 bytes .../Resources/Public/Icons/zuladungfuenf.png | Bin 0 -> 1283 bytes .../Public/Icons/zuladunggesperrt.png | Bin 0 -> 1134 bytes .../Resources/Public/Icons/zuladungneun.png | Bin 0 -> 1282 bytes .../Resources/Public/Icons/zuladungpdf.png | Bin 0 -> 1450 bytes .../Resources/Public/Icons/zuladungsechs.png | Bin 0 -> 1285 bytes .../Resources/Public/Icons/zuladungsieben.png | Bin 0 -> 1284 bytes .../Resources/Public/Icons/zuladungsliste.png | Bin 0 -> 57099 bytes .../Resources/Public/Icons/zuladungvier.png | Bin 0 -> 1281 bytes .../Resources/Public/Icons/zuladungzwei.png | Bin 0 -> 1156 bytes .../Images/Historic_City_Center_of_Graz.jpg | Bin 0 -> 945427 bytes .../off/Resources/Public/Images/arching.png | Bin 0 -> 111851 bytes .../off/Resources/Public/Images/bgpattern.png | Bin 0 -> 962 bytes .../off/Resources/Public/Images/ext_icon.png | Bin 0 -> 57099 bytes .../off/Resources/Public/Images/logo-neu.png | Bin 0 -> 444485 bytes .../ext/off/Resources/Public/Images/logo.png | Bin 0 -> 62553 bytes .../off/Resources/Public/Images/panther.png | Bin 0 -> 52921 bytes .../Public/Images/zt-kammer-logo-504x100.png | Bin 0 -> 25369 bytes .../Resources/Public/Images/zt-logo-tr.png | Bin 0 -> 83724 bytes .../off/Resources/Public/Images/zt-logo.JPG | Bin 0 -> 68937 bytes .../off/Resources/Public/Images/zt-logo.png | Bin 0 -> 83724 bytes .../Public/Images/ztkammer-adler.png | Bin 0 -> 7411 bytes .../Public/Images/ztkammer-logo-adler.png | Bin 0 -> 19351 bytes .../Resources/Public/Images/ztkammer-logo.png | Bin 0 -> 10288 bytes .../administrator/auswertung_alle.js | 270 + .../administrator/einreichungen.js | 392 + .../administrator/punkte_freischalten.js | 343 + .../administrator/zuteilungen.js | 575 + .../Zuladungsliste/architekt/einreichung.js | 464 + .../Zuladungsliste/architekt/konto.js | 219 + .../Zuladungsliste/architekt/position.js | 326 + .../Zuladungsliste/architekt/zuweisung.js | 349 + .../columns/columns_auswertungen.js | 74 + .../columns/columns_eigereichte_architekt.js | 101 + .../columns_einreichungen_administrator.js | 107 + .../columns_freischaltungen_administrator.js | 91 + .../columns/columns_konto_architekt.js | 46 + .../columns_zuteilungen_administrator.js | 114 + .../columns/columns_zuweisung_architekt.js | 75 + .../menus/menuitems_einreichungen.js | 163 + .../menus/menuitems_freischalten.js | 136 + .../menus/menuitems_zuladungsliste_admin.js | 354 + .../menus/menuitems_zuteilung.js | 171 + .../menus/menuitems_zuweisung.js | 132 + .../JavaScript/Zuladungsliste/progressbar.js | 1 + .../zuladungsliste_functions.js | 744 + .../zuladungsliste_modul_loader.js | 44 + .../Zuladungsliste/zuladungsliste_pi1.js | 101 + .../Zuladungsliste/zuladungsliste_pi2.js | 97 + .../Zuladungsliste/zuladungsliste_topmenu.js | 118 + .../Zuladungsliste/zuladungsliste_xhr.js | 146 + .../typo3conf/ext/off/Resources/archiv.tar.gz | Bin 0 -> 4739717 bytes public/typo3conf/ext/off/composer.json | 38 + public/typo3conf/ext/off/ext_emconf.php | 34 + public/typo3conf/ext/off/ext_localconf.php | 84 + public/typo3conf/ext/off/ext_tables.php | 65 + public/typo3conf/ext/off/ext_tables.sql | 316 + public/typo3conf/ext/sr_freecap | 1 + public/typo3conf/ext/zuladungsliste | 1 + .../Private/Language/de.locallang_mod.xlf | 20 + .../de/aboutmodules/mod/de.locallang_mod.xlf | 17 + .../de/adodb/locallang_datasource_config.xlf | 29 + .../l10n/de/adodb/locallang_wizard.xlf | 29 + .../Private/Language/de.locallang.xlf | 120 + .../de.locallang_db_new_content_el.xlf | 156 + .../Private/Language/de.locallang_layout.xlf | 430 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang.xlf | 498 + .../Private/Language/de.locallang_mod.xlf | 20 + public/typo3conf/l10n/de/belog/locallang.xlf | 65 + .../l10n/de/belog/mod/de.locallang.xlf | 296 + .../l10n/de/belog/mod/de.locallang_mod.xlf | 17 + .../Private/Language/de.locallang.xlf | 221 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Language/de.locallang_mod_permission.xlf | 176 + .../l10n/de/beuser/mod/de.locallang.xlf | 170 + .../l10n/de/beuser/mod/de.locallang_mod.xlf | 17 + .../Resources/Private/Language/de.Backend.xlf | 420 + .../Resources/Private/Language/de.Backend.xml | 167 + .../Private/Language/de.ExtConfTemplate.xlf | 43 + .../Private/Language/de.ExtConfTemplate.xml | 22 + .../Private/Language/de.locallang.xlf | 25 + .../Private/Language/de.locallang.xml | 16 + .../Private/Language/de.locallang_rte.xlf | 103 + .../Private/Language/de.locallang_rte.xml | 44 + .../Language/de.locallang_csh_fe_groups.xlf | 104 + .../Language/de.locallang_csh_fe_users.xlf | 212 + .../Language/de.locallang_csh_pages.xlf | 558 + .../Language/de.locallang_csh_pageslol.xlf | 156 + .../Language/de.locallang_csh_statictpl.xlf | 73 + .../Language/de.locallang_csh_sysdomain.xlf | 64 + .../de.locallang_csh_sysfilereference.xlf | 51 + .../de.locallang_csh_sysfilestorage.xlf | 68 + .../Language/de.locallang_csh_systmpl.xlf | 180 + .../Language/de.locallang_csh_ttcontent.xlf | 789 + .../core/Resources/Private/Language/de.db.xlf | 744 + .../Private/Language/de.debugger.xlf | 23 + .../Private/Language/de.fileMessages.xlf | 294 + .../Parser/Fixtures/de.fr.locallang.xlf | 20 + .../Fixtures/de.fr.locallang_override.xlf | 16 + .../Parser/Fixtures/de.locallang.xlf | 20 + .../Parser/Fixtures/de.locallang_override.xlf | 16 + .../Private/Language/de.locallang_em.xlf | 14 + .../Private/Language/de.locallang_em.xml | 9 + .../de/css_styled_content/de.locallang_db.xlf | 100 + .../de/css_styled_content/de.locallang_db.xml | 30 + .../css_styled_content/pi1/de.locallang.xlf | 144 + .../css_styled_content/pi1/de.locallang.xml | 41 + .../Private/Language/de.locallang_em.xlf | 12 + .../Private/Language/de.locallang_em.xml | 8 + .../l10n/de/dbal/mod1/de.locallang.xlf | 24 + .../l10n/de/dbal/mod1/de.locallang.xml | 11 + .../l10n/de/dbal/mod1/de.locallang_mod.xlf | 12 + .../l10n/de/dbal/mod1/de.locallang_mod.xml | 8 + .../Private/Language/de.locallang.xlf | 125 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang.xlf | 96 + .../Private/Language/de.locallang_db.xlf | 44 + .../Private/Language/de.locallang.xlf | 488 + .../Private/Language/de.locallang.xml | 156 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang_mod.xml | 11 + .../Private/Language/de.locallang.xlf | 80 + .../Private/Language/de.locallang.xml | 31 + ...h_tx_testextension_domain_model_child1.xlf | 14 + ...h_tx_testextension_domain_model_child1.xml | 9 + ...h_tx_testextension_domain_model_child2.xlf | 23 + ...h_tx_testextension_domain_model_child2.xml | 12 + ...h_tx_testextension_domain_model_child3.xlf | 17 + ...h_tx_testextension_domain_model_child3.xml | 10 + ...h_tx_testextension_domain_model_child4.xlf | 14 + ...h_tx_testextension_domain_model_child4.xml | 9 + ...csh_tx_testextension_domain_model_main.xlf | 29 + ...csh_tx_testextension_domain_model_main.xml | 14 + .../Private/Language/de.locallang_db.xlf | 80 + .../Private/Language/de.locallang_db.xml | 31 + .../Language/de.locallang_testmodule.xlf | 18 + .../Language/de.locallang_testmodule.xml | 11 + .../Language/de.locallang_testmodule1.xlf | 14 + .../Language/de.locallang_testmodule1.xml | 9 + .../Fixtures/Tools/de.existing_locallang.xlf | 14 + .../Fixtures/Tools/de.existing_locallang.xml | 9 + .../de/extension_builder/de.locallang_db.xlf | 86 + .../de/extension_builder/de.locallang_db.xml | 33 + .../Private/Language/de.locallang.xlf | 756 + .../Private/Language/de.locallang_db.xlf | 92 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.Database.xlf | 212 + .../Private/Language/de.locallang.xlf | 207 + .../Private/Language/de.locallang.xlf | 556 + .../Private/Language/de.locallang.xml | 191 + .../Language/de.locallang_csh_fe_users.xlf | 12 + .../Language/de.locallang_csh_fe_users.xml | 9 + .../Private/Language/de.locallang_db.xlf | 304 + .../Private/Language/de.locallang_db.xml | 107 + .../Private/Language/de.locallang_mod.xlf | 17 + .../Private/Language/de.locallang_mod.xml | 10 + .../Private/Language/de.locallang.xlf | 16 + .../Private/Language/de.locallang_tca.xlf | 152 + .../Private/Language/de.locallang_tca.xml | 43 + .../Private/Language/de.locallang.xlf | 40 + .../Private/Language/de.Database.xlf | 76 + .../Private/Language/de.FrontendEditing.xlf | 44 + .../Private/Language/de.locallang.xlf | 12 + .../Private/Language/de.locallang_em.xlf | 12 + .../Private/Language/de.locallang.xlf | 290 + .../Private/Language/de.locallang_wizard.xlf | 1195 ++ .../Private/Language/de.Database.xlf | 72 + .../Language/de.locallang_csh_webinfo.xlf | 233 + .../Language/de.locallang_csh_weblayout.xlf | 270 + .../Private/Language/de.locallang_tca.xlf | 835 + .../Private/Language/de.locallang_ttc.xlf | 1212 ++ .../Private/Language/de.locallang_webinfo.xlf | 120 + .../Private/Language/de.locallang.xlf | 566 + .../Private/Language/de.locallang_csh.xlf | 529 + .../Private/Language/de.locallang_csh_45.xlf | 17 + .../l10n/de/impexp/modfunc1/de.locallang.xlf | 11 + .../Private/Language/de.locallang.xlf | 350 + .../Private/Language/de.locallang.xml | 93 + .../Private/Language/de.locallang_em.xlf | 80 + .../Private/Language/de.locallang_em.xml | 25 + .../l10n/de/indexed_search/de.locallang.xlf | 136 + .../l10n/de/indexed_search/de.locallang.xml | 39 + .../de.locallang_csh_indexcfg.xlf | 220 + .../de.locallang_csh_indexcfg.xml | 55 + .../de/indexed_search/de.locallang_db.xlf | 144 + .../de/indexed_search/de.locallang_db.xml | 42 + .../indexed_search/mod/de.locallang_mod.xlf | 20 + .../indexed_search/mod/de.locallang_mod.xml | 10 + .../indexed_search/modfunc1/de.locallang.xlf | 11 + .../indexed_search/modfunc1/de.locallang.xml | 8 + .../indexed_search/modfunc2/de.locallang.xlf | 32 + .../indexed_search/modfunc2/de.locallang.xml | 15 + .../de/indexed_search/pi/de.locallang.xlf | 345 + .../de/indexed_search/pi/de.locallang.xml | 90 + .../Private/Language/de.locallang.xlf | 88 + .../Language/de.locallang_csh_webinfo.xlf | 71 + .../Private/Language/Report/de.locallang.xlf | 126 + .../Private/Language/de.BackendModule.xlf | 38 + .../l10n/de/install/mod/de.locallang_mod.xlf | 33 + .../l10n/de/install/report/de.locallang.xlf | 44 + .../Private/Language/de.locallang.xlf | 142 + .../Private/Language/de.locallang_mod.xlf | 20 + .../l10n/de/lang/de.locallang_alt_doc.xlf | 108 + .../l10n/de/lang/de.locallang_alt_intro.xlf | 24 + .../de/lang/de.locallang_browse_links.xlf | 144 + .../l10n/de/lang/de.locallang_common.xlf | 272 + .../l10n/de/lang/de.locallang_core.xlf | 1778 ++ .../de/lang/de.locallang_csh_be_groups.xlf | 436 + .../de/lang/de.locallang_csh_be_users.xlf | 352 + .../l10n/de/lang/de.locallang_csh_corebe.xlf | 1203 ++ .../l10n/de/lang/de.locallang_csh_pages.xlf | 206 + .../de/lang/de.locallang_csh_sysfilem.xlf | 104 + .../l10n/de/lang/de.locallang_csh_syslang.xlf | 28 + .../l10n/de/lang/de.locallang_csh_sysnews.xlf | 24 + .../de/lang/de.locallang_csh_web_func.xlf | 40 + .../de/lang/de.locallang_csh_web_info.xlf | 36 + .../l10n/de/lang/de.locallang_general.xlf | 236 + .../l10n/de/lang/de.locallang_login.xlf | 116 + .../l10n/de/lang/de.locallang_misc.xlf | 588 + .../de/lang/de.locallang_mod_admintools.xlf | 16 + .../l10n/de/lang/de.locallang_mod_doc.xlf | 16 + .../l10n/de/lang/de.locallang_mod_file.xlf | 20 + .../de/lang/de.locallang_mod_file_list.xlf | 182 + .../l10n/de/lang/de.locallang_mod_help.xlf | 16 + .../de/lang/de.locallang_mod_help_about.xlf | 96 + .../lang/de.locallang_mod_help_cshmanual.xlf | 20 + .../l10n/de/lang/de.locallang_mod_system.xlf | 16 + .../l10n/de/lang/de.locallang_mod_tools.xlf | 16 + .../l10n/de/lang/de.locallang_mod_user.xlf | 16 + .../l10n/de/lang/de.locallang_mod_user_ws.xlf | 604 + .../de/lang/de.locallang_mod_usertools.xlf | 16 + .../l10n/de/lang/de.locallang_mod_web.xlf | 16 + .../de/lang/de.locallang_mod_web_func.xlf | 28 + .../de/lang/de.locallang_mod_web_info.xlf | 24 + .../de/lang/de.locallang_mod_web_list.xlf | 224 + .../l10n/de/lang/de.locallang_show_rechis.xlf | 160 + .../de/lang/de.locallang_t3lib_fullsearch.xlf | 36 + .../l10n/de/lang/de.locallang_tca.xlf | 855 + .../l10n/de/lang/de.locallang_tcemain.xlf | 16 + .../l10n/de/lang/de.locallang_tsfe.xlf | 268 + .../l10n/de/lang/de.locallang_tsparser.xlf | 12 + .../l10n/de/lang/de.locallang_view_help.xlf | 96 + .../l10n/de/lang/de.locallang_wizards.xlf | 444 + .../de/lang/hooks/clearcache/de.locallang.xlf | 12 + .../Private/Language/Module/de.locallang.xlf | 265 + .../Private/Language/Module/de.locallang.xml | 71 + .../Language/Module/de.locallang_csh.xlf | 84 + .../Language/Module/de.locallang_csh.xml | 26 + .../Language/Module/de.locallang_mod.xlf | 20 + .../Language/Module/de.locallang_mod.xml | 10 + .../Private/Language/de.locallang.xlf | 76 + .../Private/Language/de.locallang.xml | 24 + .../l10n/de/linkvalidator/locallang.xlf | 59 + .../modfuncreport/de.locallang.1415814893.xlf | 59 + .../modfuncreport/de.locallang.1415814893.xml | 24 + .../modfuncreport/de.locallang.1415814894.xlf | 206 + .../modfuncreport/de.locallang.1415814894.xml | 73 + .../modfuncreport/de.locallang.1415814895.xlf | 65 + .../modfuncreport/de.locallang.1415814895.xml | 26 + .../modfuncreport/de.locallang.1415814896.xlf | 17 + .../modfuncreport/de.locallang.1415814896.xml | 10 + .../modfuncreport/de.locallang.xlf | 200 + .../modfuncreport/de.locallang.xml | 71 + .../modfuncreport/de.locallang_csh.xlf | 65 + .../modfuncreport/de.locallang_csh.xml | 26 + .../modfuncreport/de.locallang_mod.xlf | 17 + .../modfuncreport/de.locallang_mod.xml | 10 + .../Private/Language/de.locallang.xlf | 426 + .../Private/Language/de.locallang_mod.xlf | 20 + .../de.locallang_mod_configuration.xlf | 20 + .../Resources/Private/Language/locallang.xlf | 68 + .../Resources/de.locallang.1415814897.xlf | 17 + .../Resources/de.locallang.1415814898.xlf | 254 + .../Resources/de.locallang.1415814899.xlf | 17 + .../Resources/de.locallang.1415814900.xlf | 314 + .../Private/Language/de.locallang.xlf | 134 + .../Private/Language/de.locallang.xml | 49 + .../Private/Language/de.locallang_be.xlf | 468 + .../Private/Language/de.locallang_be.xml | 163 + .../Language/de.locallang_csh_category.xlf | 41 + .../Language/de.locallang_csh_category.xml | 18 + .../Language/de.locallang_csh_file.xlf | 29 + .../Language/de.locallang_csh_file.xml | 14 + .../Language/de.locallang_csh_flexforms.xlf | 95 + .../Language/de.locallang_csh_flexforms.xml | 36 + .../Language/de.locallang_csh_link.xlf | 29 + .../Language/de.locallang_csh_link.xml | 14 + .../Language/de.locallang_csh_media.xlf | 41 + .../Language/de.locallang_csh_media.xml | 18 + .../Language/de.locallang_csh_news.xlf | 89 + .../Language/de.locallang_csh_news.xml | 34 + .../Private/Language/de.locallang_csh_tag.xlf | 23 + .../Private/Language/de.locallang_csh_tag.xml | 12 + .../Private/Language/de.locallang_db.xlf | 170 + .../Private/Language/de.locallang_db.xml | 61 + .../Private/Language/de.locallang_mod.xlf | 17 + .../Private/Language/de.locallang_mod.xml | 10 + .../de.locallang_modadministration.xlf | 17 + .../de.locallang_modadministration.xml | 10 + .../de/opendocs/de.locallang_opendocs.xlf | 24 + .../de/opendocs/de.locallang_opendocs.xml | 11 + .../opendocs/mod/de.locallang.1415814901.xlf | 20 + .../opendocs/mod/de.locallang.1415814901.xml | 11 + .../l10n/de/opendocs/mod/de.locallang_mod.xlf | 14 + .../l10n/de/opendocs/mod/de.locallang_mod.xml | 9 + .../Private/Language/de.locallang.xlf | 160 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang_tasks.xlf | 44 + .../Private/Language/de.locallang.xlf | 32 + .../Private/Language/de.locallang_reports.xlf | 405 + .../reports/mod/de.locallang.1415814909.xlf | 308 + .../reports/mod/de.locallang.1415814910.xlf | 26 + .../l10n/de/reports/mod/de.locallang.xlf | 26 + .../Private/Language/de.locallang.xlf | 32 + .../Private/Language/de.locallang_em.xlf | 12 + .../Plugins/Abbreviation/de.locallang_csh.xlf | 126 + .../Plugins/Abbreviation/de.locallang_js.xlf | 88 + .../Plugins/BlockElements/de.locallang.xlf | 80 + .../Plugins/BlockElements/de.locallang_js.xlf | 132 + .../Plugins/BlockStyle/de.locallang_js.xlf | 60 + .../Plugins/CharacterMap/de.locallang_js.xlf | 1014 + .../Plugins/ContextMenu/de.locallang_js.xlf | 292 + .../Plugins/CopyPaste/de.locallang_js.xlf | 20 + .../Plugins/DefaultClean/de.locallang_js.xlf | 12 + .../Plugins/DefaultImage/de.locallang_js.xlf | 44 + .../Plugins/DefaultInline/de.locallang_js.xlf | 32 + .../Plugins/DefaultLink/de.locallang_js.xlf | 24 + .../DefinitionList/de.locallang_js.xlf | 52 + .../Plugins/EditElement/de.locallang_csh.xlf | 152 + .../Plugins/EditElement/de.locallang_js.xlf | 76 + .../Plugins/EditorMode/de.locallang_js.xlf | 16 + .../Plugins/FindReplace/de.locallang_js.xlf | 92 + .../Plugins/InlineElements/de.locallang.xlf | 104 + .../InlineElements/de.locallang_js.xlf | 132 + .../Plugins/InsertSmiley/de.locallang_js.xlf | 84 + .../Plugins/Language/de.locallang.xlf | 12 + .../Plugins/Language/de.locallang_csh.xlf | 69 + .../Plugins/Language/de.locallang_js.xlf | 28 + .../Plugins/MicrodataSchema/de.locallang.xlf | 16 + .../MicrodataSchema/de.locallang_csh.xlf | 119 + .../MicrodataSchema/de.locallang_js.xlf | 33 + .../Plugins/PlainText/de.locallang_csh.xlf | 147 + .../Plugins/PlainText/de.locallang_js.xlf | 68 + .../Plugins/QuickTag/de.locallang_js.xlf | 56 + .../Plugins/RemoveFormat/de.locallang_csh.xlf | 215 + .../Plugins/RemoveFormat/de.locallang_js.xlf | 68 + .../Plugins/SelectFont/de.locallang.xlf | 88 + .../Plugins/SpellChecker/de.locallang_js.xlf | 172 + .../Plugins/TYPO3Color/de.locallang_js.xlf | 32 + .../TYPO3HtmlParser/de.locallang_js.xlf | 12 + .../Plugins/TYPO3Image/de.locallang_js.xlf | 12 + .../TableOperations/de.locallang_csh.xlf | 1074 + .../TableOperations/de.locallang_js.xlf | 684 + .../Plugins/TextStyle/de.locallang_js.xlf | 32 + .../Plugins/UserElements/de.locallang_js.xlf | 12 + .../Private/Language/de.locallang.xlf | 80 + .../de.locallang_accessibilityicons.xlf | 56 + .../de.locallang_browselinkscontroller.xlf | 140 + .../Language/de.locallang_contentcss.xlf | 36 + .../Private/Language/de.locallang_csh.xlf | 82 + .../de.locallang_csh_abbreviation.xlf | 65 + .../Private/Language/de.locallang_db.xlf | 36 + .../Private/Language/de.locallang_dialogs.xlf | 464 + .../Private/Language/de.locallang_em.xlf | 41 + .../Private/Language/de.locallang_msg.xlf | 56 + .../de.locallang_selectimagecontroller.xlf | 128 + .../Language/de.locallang_statusreport.xlf | 24 + .../Language/de.locallang_tooltips.xlf | 160 + .../de.locallang_userelementscontroller.xlf | 28 + .../Private/Language/de.locallang.xlf | 212 + .../de.locallang_csh_saltedpasswords.xlf | 31 + .../Private/Language/de.locallang_em.xlf | 60 + .../Private/Language/de.locallang.xlf | 552 + .../Language/de.locallang_csh_scheduler.xlf | 160 + .../Private/Language/de.locallang_em.xlf | 28 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang_tca.xlf | 20 + .../Resources/Private/Language/locallang.xlf | 407 + .../Language/locallang_csh_scheduler.xlf | 127 + .../Private/Language/locallang_mod.xlf | 17 + .../Private/Language/locallang_tca.xlf | 14 + .../Resources/de.locallang.1415814984.xlf | 419 + .../Resources/de.locallang.1415814985.xlf | 127 + .../Resources/de.locallang.1415814986.xlf | 23 + .../Resources/de.locallang.1415814987.xlf | 17 + .../Resources/de.locallang.1415814988.xlf | 17 + .../Resources/de.locallang.1416085778.xlf | 56 + .../Private/Language/de.locallang.xlf | 565 + .../Private/Language/de.locallang_csh_mod.xlf | 393 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Private/Language/de.locallang.xlf | 1574 ++ .../Private/Language/de.locallang.xml | 521 + .../Private/Language/de.locallang_db.xlf | 122 + .../Private/Language/de.locallang_db.xml | 45 + .../Language/de.locallang_db_layout.xlf | 23 + .../Language/de.locallang_db_layout.xml | 12 + .../Language/de.locallang_statusreport.xlf | 44 + .../Language/de.locallang_statusreport.xml | 19 + .../de/sr_feuser_register/de.locallang.xlf | 23 + .../de/sr_feuser_register/de.locallang.xml | 12 + .../de/sr_feuser_register/de.locallang_db.xlf | 122 + .../de/sr_feuser_register/de.locallang_db.xml | 45 + .../sr_feuser_register/pi1/de.locallang.xlf | 1574 ++ .../sr_feuser_register/pi1/de.locallang.xml | 521 + .../l10n/de/sr_freecap/mod1/de.locallang.xlf | 62 + .../l10n/de/sr_freecap/mod1/de.locallang.xml | 25 + .../de/sr_freecap/mod1/de.locallang_mod.xlf | 17 + .../de/sr_freecap/mod1/de.locallang_mod.xml | 10 + .../l10n/de/sr_freecap/pi1/de.locallang.xlf | 14 + .../l10n/de/sr_freecap/pi1/de.locallang.xml | 9 + .../l10n/de/sr_freecap/pi2/de.locallang.xlf | 65 + .../l10n/de/sr_freecap/pi2/de.locallang.xml | 26 + .../Private/Language/de.locallang.xlf | 141 + .../Private/Language/de.locallang.xml | 49 + .../Private/Language/de.locallang_db.xlf | 194 + .../Private/Language/de.locallang_db.xml | 69 + .../Private/Language/de.locallang_mod.xlf | 17 + .../Private/Language/de.locallang_mod.xml | 10 + .../Private/Language/de.locallang_db.xlf | 9 + .../Private/Language/de.locallang_db.xml | 8 + .../de/static_info_tables/de.locallang.xlf | 20 + .../de/static_info_tables/de.locallang.xml | 11 + .../de/static_info_tables/de.locallang_db.xlf | 176 + .../de/static_info_tables/de.locallang_db.xml | 63 + .../Private/Language/de.locallang.xlf | 76 + .../de/sv/reports/de.locallang.1415814992.xlf | 59 + .../l10n/de/sv/reports/de.locallang.xlf | 59 + .../l10n/de/sys_action/de.locallang.xlf | 160 + .../l10n/de/sys_action/de.locallang.xml | 45 + .../sys_action/de.locallang_csh_sysaction.xlf | 85 + .../sys_action/de.locallang_csh_sysaction.xml | 28 + .../l10n/de/sys_action/de.locallang_tca.xlf | 72 + .../l10n/de/sys_action/de.locallang_tca.xml | 23 + .../Private/Language/de.locallang.xlf | 44 + .../Language/de.locallang_csh_sysnote.xlf | 44 + .../Private/Language/de.locallang_tca.xlf | 40 + .../de/sys_note/locallang_csh_sysnote.xlf | 35 + .../l10n/de/sys_note/locallang_tca.xlf | 32 + .../Private/Language/de.locallang.xlf | 60 + .../l10n/de/taskcenter/de.locallang.xlf | 80 + .../l10n/de/taskcenter/de.locallang.xml | 25 + .../l10n/de/taskcenter/task/de.locallang.xlf | 103 + .../l10n/de/taskcenter/task/de.locallang.xml | 29 + .../de/taskcenter/task/de.locallang_mod.xlf | 20 + .../de/taskcenter/task/de.locallang_mod.xml | 10 + .../Private/Language/de.locallang.xlf | 116 + .../Language/de.locallang_analyzer.xlf | 84 + .../Private/Language/de.locallang_ceditor.xlf | 24 + .../Private/Language/de.locallang_info.xlf | 104 + .../Private/Language/de.locallang_mod.xlf | 20 + .../Language/de.locallang_objbrowser.xlf | 184 + .../Private/Language/de.locallang_emails.xlf | 33 + .../Private/Language/de.locallang_emails.xml | 18 + .../l10n/de/version/de.locallang.xlf | 497 + .../l10n/de/version/de.locallang.xml | 129 + .../Private/Language/de.locallang.xlf | 40 + .../Private/Language/de.locallang_mod.xlf | 20 + .../viewpage/view/de.locallang.1415815011.xlf | 29 + .../viewpage/view/de.locallang.1415815012.xlf | 17 + .../de/viewpage/view/de.locallang_mod.xlf | 17 + .../Private/Language/de.locallang.xlf | 68 + .../Private/Language/de.locallang_csh.xlf | 45 + .../Private/Language/de.locallang.xlf | 52 + .../Private/Language/de.locallang_csh.xlf | 42 + .../Private/Language/de.locallang.xlf | 430 + .../Private/Language/de.locallang.xml | 118 + .../Language/de.locallang_csh_sysws_stage.xlf | 39 + .../Language/de.locallang_csh_sysws_stage.xml | 14 + .../Private/Language/de.locallang_db.xlf | 110 + .../Private/Language/de.locallang_db.xml | 28 + .../Private/Language/de.locallang_mod.xlf | 40 + .../Private/Language/de.locallang_mod.xml | 15 + 2984 files changed, 267797 insertions(+) create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/sites/app/config.yaml create mode 100644 config/sites/zuladungsliste/config.yaml create mode 100644 packages/zuladungsliste/.gitignore create mode 100644 packages/zuladungsliste/.vscode/settings.json create mode 100644 packages/zuladungsliste/Classes/Backend/FixUser.php create mode 100755 packages/zuladungsliste/Classes/Backend/Labels.php create mode 100644 packages/zuladungsliste/Classes/Backend/Selecting.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Architekten.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/AufloesungPunkteVerteilung.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Erfolgspunkte.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Frauen.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Neueinsteiger.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/PunkteKriterien.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/PunkteVerschiebung.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Sektionstage.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Solidaritaetserklaerung.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/Sondersperrungen.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/WettbewerbeArchitekten.php create mode 100644 packages/zuladungsliste/Classes/Berechnung/_Berechnung.php create mode 100644 packages/zuladungsliste/Classes/Bootstrap/KammerById.php create mode 100644 packages/zuladungsliste/Classes/Bootstrap/UserSettings.php create mode 100644 packages/zuladungsliste/Classes/Bootstrap/_BootstrapController.php create mode 100644 packages/zuladungsliste/Classes/Controller/AdministrationController.php create mode 100644 packages/zuladungsliste/Classes/Controller/ArchitektenController.php create mode 100644 packages/zuladungsliste/Classes/Controller/EditController.php create mode 100644 packages/zuladungsliste/Classes/Controller/ExtrasperrungController.php create mode 100644 packages/zuladungsliste/Classes/Controller/KriterienController.php create mode 100644 packages/zuladungsliste/Classes/Controller/NewController.php create mode 100644 packages/zuladungsliste/Classes/Controller/WettbewerbeController.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Architekten.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Extrasperrung.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Kammern.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Kriterien.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Preisart.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Punkte.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Sektionstage.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/User.php create mode 100644 packages/zuladungsliste/Classes/Domain/Model/Wettbewerbe.php create mode 100644 packages/zuladungsliste/Classes/Domain/Repository/ArchitektenRepository.php create mode 100644 packages/zuladungsliste/Classes/Domain/Repository/KriterienRepository.php create mode 100644 packages/zuladungsliste/Classes/Domain/Repository/WettbewerbeRepository.php create mode 100644 packages/zuladungsliste/Classes/Download/PdfEinreichung.php create mode 100644 packages/zuladungsliste/Classes/Download/PdfListe.php create mode 100644 packages/zuladungsliste/Classes/Download/_DownloadController.php create mode 100644 packages/zuladungsliste/Classes/Download/print.css create mode 100644 packages/zuladungsliste/Classes/Download/style.css create mode 100644 packages/zuladungsliste/Classes/Einreichen/EinreichungDelete.php create mode 100644 packages/zuladungsliste/Classes/Einreichen/EinreichungenUser.php create mode 100644 packages/zuladungsliste/Classes/Einreichen/_EinreichenController.php create mode 100644 packages/zuladungsliste/Classes/Liste/Archive.php create mode 100644 packages/zuladungsliste/Classes/Liste/ArchiveMenu.php create mode 100644 packages/zuladungsliste/Classes/Liste/EinreichungenAdmin.php create mode 100644 packages/zuladungsliste/Classes/Liste/Freischaltungen.php create mode 100644 packages/zuladungsliste/Classes/Liste/ListeAdmin.php create mode 100644 packages/zuladungsliste/Classes/Liste/ListeTree.php create mode 100644 packages/zuladungsliste/Classes/Liste/Recalculate.php create mode 100644 packages/zuladungsliste/Classes/Liste/_ListeController.php create mode 100644 packages/zuladungsliste/Classes/Middleware/Ajax.php create mode 100644 packages/zuladungsliste/Classes/PunkteZuweisung/Preise.php create mode 100644 packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisen.php create mode 100644 packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisungen.php create mode 100644 packages/zuladungsliste/Classes/PunkteZuweisung/_PunkteZuweisungController.php create mode 100644 packages/zuladungsliste/Classes/Scheduler/CronTask.php create mode 100644 packages/zuladungsliste/Classes/Upload/Upload.php create mode 100644 packages/zuladungsliste/Classes/Upload/_UploadController.php create mode 100644 packages/zuladungsliste/Classes/User/UserKonto.php create mode 100644 packages/zuladungsliste/Classes/User/_UserController.php create mode 100644 packages/zuladungsliste/Classes/Utilities/FileUtility.php create mode 100644 packages/zuladungsliste/Classes/Utilities/Message.php create mode 100644 packages/zuladungsliste/Classes/Utilities/Resources.php create mode 100644 packages/zuladungsliste/Classes/Zuladungsliste/PositionArchitekt.php create mode 100644 packages/zuladungsliste/Classes/Zuladungsliste/Punktezuweisung.php create mode 100644 packages/zuladungsliste/Classes/Zuladungsliste/TreemenuPosition.php create mode 100644 packages/zuladungsliste/Classes/Zuladungsliste/_ZuladungslisteController.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/Zuteilung.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/ZuteilungNeu.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/ZuteilungWettbewerbe.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/Zuteilungen.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/ZuteilungenErteilt.php create mode 100644 packages/zuladungsliste/Classes/Zuteilungen/_ZuteilungenController.php create mode 100644 packages/zuladungsliste/Configuration/Extbase/Persistence/Classes.php create mode 100644 packages/zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml create mode 100644 packages/zuladungsliste/Configuration/RequestMiddlewares.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/fe_users.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/sys_template.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tt_content.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_extrasperrung.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_kammern.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_kriterien.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_preisart.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_punkte.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_sektionstage.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_wettbewerbe.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_konto_aufloesung_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_kriterien_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_verschiebung_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_wettbewerbe_architekten_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_extrasperrung.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kammern.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kriterien.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_preisart.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_punkte.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_sektionstage.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_wettbewerbe.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_extrasperrung_user_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_konto_aufloesung_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_kriterien_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_verschiebung_mm.php create mode 100644 packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_wettbewerbe_architekten_mm.php create mode 100644 packages/zuladungsliste/Configuration/TypoScript/constants.typoscript create mode 100644 packages/zuladungsliste/Configuration/TypoScript/setup.typoscript create mode 100644 packages/zuladungsliste/Readme.md create mode 100644 packages/zuladungsliste/Resources/Private/.htaccess create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Layouts/Default.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Partials/FormErrors.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/FormFields.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/Properties.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/FormFields.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/Properties.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Architekten/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Edit.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/New.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Show.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Edit.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Front.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/New.html create mode 100644 packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Show.html create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_bezuladungsliste.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_bmzuladungsliste.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_fe_users.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Language/locallang_db.xlf create mode 100644 packages/zuladungsliste/Resources/Private/Layouts/Default.html create mode 100644 packages/zuladungsliste/Resources/Private/Layouts/EmptyPageRenderer.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Address.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Captcha.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/CaptchaField.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/City.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Company.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Country.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/DateOfBirth.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Email.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Fax.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/FirstName.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Frauenfoerderpunkt.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Image.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Kammermitgliedsnummer.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/LastName.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/MiddleName.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Name.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Password.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/State.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitCreate.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitUpdate.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Telephone.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Terms.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Title.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Usergroup.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Username.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Vereidigung.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Www.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Fields/Zip.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/FormErrors.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Kriterien/FormFields.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Kriterien/Properties.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/FormFields.html create mode 100644 packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/Properties.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Architekten/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Login.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Logout.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Kriterien/Edit.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Kriterien/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Kriterien/New.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Kriterien/Show.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Edit.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/List.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/New.html create mode 100644 packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Show.html create mode 100644 packages/zuladungsliste/Resources/Public/Css/Backend/backend.css create mode 100644 packages/zuladungsliste/Resources/Public/Css/img/filter.png create mode 100644 packages/zuladungsliste/Resources/Public/Css/img/lupe.png create mode 100644 packages/zuladungsliste/Resources/Public/Css/visual/backend.css create mode 100644 packages/zuladungsliste/Resources/Public/Css/zuladungsliste.css create mode 100644 packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.eot create mode 100644 packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.svg create mode 100644 packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.ttf create mode 100644 packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff create mode 100644 packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff2 create mode 100644 packages/zuladungsliste/Resources/Public/Icons/Extension.png create mode 100644 packages/zuladungsliste/Resources/Public/Icons/ExtensionAdler.png create mode 100644 packages/zuladungsliste/Resources/Public/Icons/ExtensionBgWhite.png create mode 100644 packages/zuladungsliste/Resources/Public/Icons/ext_icon.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/lupe.png create mode 100644 packages/zuladungsliste/Resources/Public/Icons/relation.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/competition.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/kammer.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/list.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/preis.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/transfer.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/waage.svg create mode 100644 packages/zuladungsliste/Resources/Public/Icons/svg/wettbewerb.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.gif create mode 100644 packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungacht.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungalle.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungdrei.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungfree.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungfuenf.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladunggesperrt.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungneun.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungpdf.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungsechs.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungsieben.png create mode 100644 packages/zuladungsliste/Resources/Public/Icons/zuladungsliste.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungvier.png create mode 100755 packages/zuladungsliste/Resources/Public/Icons/zuladungzwei.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/Historic_City_Center_of_Graz.jpg create mode 100644 packages/zuladungsliste/Resources/Public/Images/arching.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/bgpattern.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/ext_icon.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/logo-neu.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/logo.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/panther.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/zt-kammer-logo-504x100.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/zt-logo-tr.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/zt-logo.JPG create mode 100644 packages/zuladungsliste/Resources/Public/Images/zt-logo.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/ztkammer-adler.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/ztkammer-logo-adler.png create mode 100644 packages/zuladungsliste/Resources/Public/Images/ztkammer-logo.png create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/auswertung_alle.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/einreichungen.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/punkte_freischalten.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/zuteilungen.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/einreichung.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/konto.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/position.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/zuweisung.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_auswertungen.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_eigereichte_architekt.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_einreichungen_administrator.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_freischaltungen_administrator.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_konto_architekt.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuteilungen_administrator.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuweisung_architekt.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_einreichungen.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_freischalten.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuladungsliste_admin.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuteilung.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuweisung.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_functions.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi1.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi2.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_topmenu.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_xhr.js create mode 100644 packages/zuladungsliste/Resources/Public/JavaScript/package.json create mode 100644 packages/zuladungsliste/composer.json create mode 100644 packages/zuladungsliste/ext_emconf.php create mode 100644 packages/zuladungsliste/ext_localconf.php create mode 100644 packages/zuladungsliste/ext_tables.php create mode 100644 packages/zuladungsliste/ext_tables.sql create mode 100644 packages/zuladungsliste/fix-table-datetime.sql create mode 100644 public/.htaccess create mode 100644 public/favicon.ico create mode 100644 public/typo3conf/.LocalConfiguration.php.swp create mode 100644 public/typo3conf/PackageStates.php create mode 100644 public/typo3conf/autoload/autoload_classaliasmap.php create mode 100644 public/typo3conf/autoload/autoload_classmap.php create mode 100644 public/typo3conf/autoload/autoload_psr4.php create mode 100644 public/typo3conf/ext/bootstrap_package/.php-cs-fixer.dist.php create mode 100644 public/typo3conf/ext/bootstrap_package/.phplint.yml create mode 100644 public/typo3conf/ext/bootstrap_package/CHANGELOG.md create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Backend/ToolbarItem/VersionToolbarItem.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ContainerContextProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/CsvFileProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FileFilterProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FlexFormProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/IconsDataProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/StaticFilesProcessor.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ConditionProvider.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ExtensionWrapper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Form/FieldWizard/IconWizard.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/GoogleFontHook.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/PreProcessHook.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/AbstractIcon.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/FileIcon.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/GlyphiconsProvider.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/IconInterface.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/IconList.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/IconProviderInterface.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/IoniconsProvider.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Icons/SvgIcon.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Parser/AbstractParser.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Parser/ParserInterface.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Parser/ScssParser.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Service/BrandingService.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Service/CompileService.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Service/GoogleFontService.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Service/IconService.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/AbstractUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionMediaOrientUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/BackendLayoutUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/BulletContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemLayoutUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemTypeUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/AbstractCriteria.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CreaterThanCriteria.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CriteriaInterface.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/EqualStringCriteria.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/InCriteria.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/LikeCriteria.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/ExternalMediaContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassToBackgroundUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/ListGroupContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/PanelContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TabContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TabMediaOrientUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TableContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonContentElementUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonIconUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonSizeUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonTypeUpdate.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Userfuncs/Tca.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Utility/ExternalMediaUtility.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Utility/ImageVariantsUtility.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/Utility/SvgUtility.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageInfoViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageVariantsViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/PaginateViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExplodeViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExternalMediaViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/FalViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsAudioViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsImageViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsMediaViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/LowercaseDashedViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/TrimViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/UpperCamelCaseViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/IconViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/InlineSvgViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/LightboxViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/PaginateViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/TypoScript/ConstantViewHelper.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/.htaccess create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/ExpressionLanguage.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Accordion.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/BackgroundImage.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/CardGroup.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Carousel.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/IconGroup.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuCard.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Tab.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Timeline.xml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/Form/Setup.yaml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/RTE/Default.yaml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/Services.yaml create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/100_pages.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/101_sys_template.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/102_tt_content.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/200_content_element_accordion.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/201_content_element_audio.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/202_content_element_bullets.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/203_content_element_card_group.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/204_content_element_carousel.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/205_content_element_carousel_small.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/206_content_element_carousel_fullscreen.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/207_content_element_csv.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/208_content_element_externalmedia.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/209_content_element_header.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/210_content_element_icon_group.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/211_content_element_image.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/212_content_element_listgroup.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/213_content_element_media.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/214_content_element_menu_card_list.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/215_content_element_menu_card_dir.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/216_content_element_menu_thumbnail_list.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/217_content_element_menu_thumbnail_dir.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/218_content_element_panel.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/219_content_element_quote.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/220_content_element_social_links.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/221_content_element_tab.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/222_content_element_table.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/223_content_element_text.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/224_content_element_textcolumn.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/225_content_element_texticon.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/226_content_element_textmedia.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/227_content_element_textpic.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/228_content_element_textteaser.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/229_content_element_timeline.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/230_content_element_uploads.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/231_content_element_gallery.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/300_content_general_columns.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/301_content_general_palettes.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/400_bootstrappackage_carousel_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/500_cropping.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/600_ext_container.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_accordion_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_card_group_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_carousel_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_icon_group_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_tab_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_timeline_item.php create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/All.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Categories.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Accordion.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Audio.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Bullets.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CardGroup.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Carousel.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselFullscreen.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselSmall.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Csv.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ExternalMedia.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Gallery.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Header.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/IconGroup.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Image.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ListGroup.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Media.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardDir.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardList.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailDir.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailList.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Panel.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Quote.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/SocialLinks.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Tab.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Table.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Text.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textcolumn.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Texticon.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textmedia.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textpic.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textteaser.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Timeline.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Uploads.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_25_75.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_50_50.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_offset_right.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/3_columns.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/default.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/simple.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_feature.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_start.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left_2_columns.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right_2_columns.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/RTE.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCADefaults.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEFORM.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEMAIN.tsconfig create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Container/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/.htaccess create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/LICENSE.md create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/README.md create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/bin/pscss create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/composer.json create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/phpcs.xml.dist create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/scss.inc.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Base/Range.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Block.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Cache.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Colors.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/CompilationResult.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/CachedResult.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/Environment.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/CompilerException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/ParserException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/RangeException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/SassException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/SassScriptException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/ServerException.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compact.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compressed.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Crunched.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Debug.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Expanded.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Nested.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/OutputBlock.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/LoggerInterface.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/QuietLogger.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/StreamLogger.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node/Number.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/OutputStyle.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Parser.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64VLQ.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Type.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util/Path.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/ValueConverter.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Version.php create mode 100644 public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Warn.php create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-11.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-14.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Extension/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Configuration/ImageRendering/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Configuration/TypoScript/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Desktop.jpg create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Mobile.jpg create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Tablet.jpg create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/typo3-frontend.png create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Includes.txt create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Introduction/Index.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Documentation/Settings.cfg create mode 100644 public/typo3conf/ext/bootstrap_package/LICENSE create mode 100644 public/typo3conf/ext/bootstrap_package/README.rst create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/.htaccess create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Forms/Contact.form.yaml create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Language/Backend.xlf create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Language/ExtConfTemplate.xlf create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Language/locallang.xlf create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/ContentElements/Default.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/Page/Default.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Control.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Indicator.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/General/BackgroundImage.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/BackgroundImage.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/CallToAction.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Header.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Html.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Image.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Text.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/TextAndImage.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container1Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container3Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container4Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/After/All.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/Before/All.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Footer/All.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Frame/General/BackgroundImage.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/All.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Date.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Header.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/SubHeader.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Gallery.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Audio.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Image.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Video.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Audio.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Image.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Video.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Menu/SkipNavigation.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Table/Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Form.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Rules.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Searchresult.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainAfter.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainBefore.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageAfter.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageBefore.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterAfter.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterBefore.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Breadcrumb.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Language.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Main.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Meta.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Subnavigation.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/CookieConsent.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/Copyright.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterContent.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterMeta.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/ScrollTop.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/SocialLinks.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Ai/BootstrapPackage.ai create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Psd/icon-shapes.psd create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/Default.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/GoogleAnalyticsStatus.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Accordion.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Audio.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Bullets.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CardGroup.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Carousel.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselFullscreen.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselSmall.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Container.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Csv.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Div.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ExternalMedia.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Gallery.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Generic.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Header.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Html.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/IconGroup.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Image.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/List.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ListGroup.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Mailform.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Media.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuAbstract.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardDir.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardList.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedContent.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedPages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuPages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRecentlyUpdated.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRelatedPages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSection.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSectionPages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemap.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemapPages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSubpages.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailDir.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailList.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Panel.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Quote.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Shortcut.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/SocialLinks.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Tab.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Table.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Text.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textcolumn.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Texticon.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaAbove.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaBelow.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicAbove.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicBelow.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textteaser.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Timeline.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Uploads.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Form/Form.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Form.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Search.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns2575.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns5050.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2ColumnsOffsetRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/3Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Default.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/None.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Simple.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialFeature.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialStart.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft2Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight2Columns.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Csv.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ExternalMedia.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ListGroup.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Quote.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ViewHelpers/Paginate/Index.html create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/icons/address.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/icons/hidpi/address.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/lang/de.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/lang/en.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/icons/box.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/icons/hidpi/box.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/lang/de.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/lang/en.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/icons/columns.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/icons/hidpi/columns.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/de.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/en.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/icons/bootstrappackage_indent.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/icons/hidpi/bootstrappackage_indent.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/lang/de.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/lang/en.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Table/plugin.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Table/plugin.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/js/bootstrap.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_alert.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_badge.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_breadcrumb.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_button-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_buttons.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_card.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_carousel.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_close.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_code.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_custom-forms.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_dropdown.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_forms.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_functions.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_images.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_input-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_jumbotron.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_list-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_media.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_mixins.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_modal.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_nav.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_navbar.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_pagination.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_popover.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_print.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_progress.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_reboot.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_root.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_spinners.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_tables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_toasts.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_tooltip.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_transitions.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_type.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_utilities.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_variables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/bootstrap-grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/bootstrap-reboot.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/bootstrap.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_alert.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_background-variant.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_badge.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_border-radius.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_box-shadow.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_breakpoints.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_buttons.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_caret.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_clearfix.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_deprecate.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_float.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_forms.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_gradients.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_grid-framework.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_hover.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_image.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_list-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_lists.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_nav-divider.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_pagination.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_reset-text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_resize.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_screen-reader.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_size.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_table-row.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_text-emphasis.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_text-hide.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_text-truncate.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_transition.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/mixins/_visibility.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_align.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_background.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_borders.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_clearfix.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_display.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_embed.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_flex.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_float.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_interactions.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_overflow.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_position.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_screenreaders.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_shadows.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_sizing.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_spacing.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_stretched-link.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/utilities/_visibility.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/vendor/_rfs.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/js/bootstrap.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_accordion.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_alert.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_badge.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_breadcrumb.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_button-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_buttons.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_card.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_carousel.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_close.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_containers.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_dropdown.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_forms.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_functions.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_helpers.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_images.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_list-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_mixins.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_modal.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_nav.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_navbar.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_offcanvas.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_pagination.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_placeholders.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_popover.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_progress.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_reboot.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_root.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_spinners.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_tables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_toasts.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_tooltip.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_transitions.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_type.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_utilities.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/_variables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap-grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap-reboot.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap-utilities.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_floating-labels.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_form-check.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_form-control.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_form-range.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_form-select.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_form-text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_input-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_labels.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/forms/_validation.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_clearfix.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_colored-links.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_position.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_ratio.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_stacks.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_stretched-link.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_text-truncation.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_visually-hidden.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/helpers/_vr.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_alert.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_backdrop.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_border-radius.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_box-shadow.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_breakpoints.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_buttons.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_caret.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_clearfix.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_color-scheme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_container.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_deprecate.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_forms.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_gradients.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_grid.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_image.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_list-group.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_lists.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_pagination.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_reset-text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_resize.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_table-variants.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_text-truncate.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_transition.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_utilities.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/mixins/_visually-hidden.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/utilities/_api.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/vendor/_rfs.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/cookieconsent/cookieconsent.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/cookieconsent/cookieconsent.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/jquery/jquery.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/modernizr/modernizr.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe-ui-default.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/popper-core/popper.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/popper/popper.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap4-rte.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap4-rte.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap4-theme.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap4-theme.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap5-rte.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap5-rte.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap5-theme.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Css/bootstrap5-theme.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.eot create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.min.css create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.ttf create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.woff create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.woff2 create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_25_75.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_50_50.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_offset_right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/3_columns.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/default.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/simple.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/special_feature.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/special_start.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_left_2_columns.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_right_2_columns.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/facebook.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/file-audio.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/file-image.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/file-video.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/file.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/github.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/googleplus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/instagram.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/linkedin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/rss.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/twitter.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/vimeo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/vk.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/xing.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/BootstrapPackageIcon/youtube.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/accordion-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/accordion.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/beside-text-img-centered-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/beside-text-img-centered-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/card-group-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/card-group.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-backgroundimage.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-calltoaction.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-header.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-html.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-image.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-text.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item-textandimage.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/carousel.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-1.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-3.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-4.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/csv.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/externalmedia.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/gallery.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/icon-group-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/icon-group.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/listgroup.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/menu-card.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/social-links.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/tab-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/tab.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/texticon.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/timeline-item.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/ContentElements/timeline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/Extension.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/SystemInformation/bootstrappackage.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Icons/favicon.ico create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Backend/backend-logo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Backend/login-background-image.jpg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Backend/login-logo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/BootstrapPackage.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/BootstrapPackageInverted.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/adjust.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/align-center.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/align-justify.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/align-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/align-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/arrow-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/arrow-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/arrow-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/arrow-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/asterisk.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/backward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/ban-circle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/barcode.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/bell.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/bold.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/book.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/bookmark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/briefcase.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/bullhorn.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/calendar.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/camera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/certificate.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/check.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/chevron-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/chevron-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/chevron-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/chevron-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/circle-arrow-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/circle-arrow-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/circle-arrow-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/circle-arrow-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/cloud-download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/cloud-upload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/cloud.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/cog.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/collapse-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/collapse-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/comment.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/compressed.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/copyright-mark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/credit-card.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/cutlery.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/dashboard.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/download-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/earphone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/edit.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/eject.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/envelope.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/euro.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/exclamation-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/expand.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/export.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/eye-close.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/eye-open.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/facetime-video.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/fast-backward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/fast-forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/file.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/film.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/filter.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/fire.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/flag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/flash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/floppy-disk.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/floppy-open.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/floppy-remove.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/floppy-save.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/floppy-saved.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/folder-close.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/folder-open.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/font.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/fullscreen.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/gbp.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/gift.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/glass.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/globe.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hand-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hand-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hand-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hand-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hd-video.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/hdd.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/header.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/headphones.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/heart-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/heart.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/home.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/import.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/inbox.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/indent-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/indent-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/info-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/italic.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/leaf.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/link.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/list-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/list.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/lock.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/log-in.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/log-out.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/magnet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/map-marker.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/minus-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/minus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/move.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/music.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/new-window.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/off.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/ok-circle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/ok-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/ok.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/open.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/paperclip.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/pause.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/pencil.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/phone-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/phone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/picture.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/plane.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/play-circle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/play.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/plus-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/plus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/print.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/pushpin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/qrcode.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/question-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/random.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/record.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/refresh.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/registration-mark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/remove-circle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/remove-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/remove.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/repeat.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/resize-full.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/resize-horizontal.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/resize-small.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/resize-vertical.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/retweet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/road.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/save.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/saved.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/screenshot.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sd-video.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/search.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/send.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/share-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/share.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/shopping-cart.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/signal.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-alphabet-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-alphabet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-attributes-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-attributes.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-order-alt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort-by-order.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sort.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sound-5-1.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sound-6-1.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sound-7-1.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sound-dolby.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/sound-stereo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/star-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/star.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/stats.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/step-backward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/step-forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/stop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/subtitles.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tags.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tasks.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/text-height.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/text-width.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/th-large.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/th-list.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/th.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/thumbs-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/thumbs-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/time.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tint.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tower.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/transfer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/trash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tree-conifer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/tree-deciduous.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/unchecked.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/upload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/usd.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/user.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/volume-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/volume-off.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/volume-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/warning-sign.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/wrench.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/zoom-in.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Glyphicons/zoom-out.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/alert-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/alert.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-add-contact.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-add.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-alarm.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-archive.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-back.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-down-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-down-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-up-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-arrow-up-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-battery.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-book.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-calendar.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-call.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-camera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-chat.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-checkmark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-clock.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-close.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-contact.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-contacts.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-data.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-developer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-display.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-drawer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-dropdown.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-earth.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-folder.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-forums.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-friends.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-hand.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-image.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-inbox.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-information.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-keypad.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-lightbulb.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-locate.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-location.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-mail.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-microphone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-mixer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-more.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-note.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-playstore.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-printer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-promotion.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-reminder.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-remove.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-search.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-send.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-settings.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-share.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-social-user.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-social.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-sort.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-stair-drawer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-star.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-stopwatch.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-storage.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-system-back.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-system-home.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-system-windows.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-timer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-trash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-user-menu.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-volume.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/android-wifi.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/aperture.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/archive.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-down-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-down-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-down-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-expand.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-graph-down-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-graph-down-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-graph-up-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-graph-up-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-left-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-left-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-left-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-move.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-resize.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-return-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-return-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-right-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-right-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-right-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-shrink.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-swap.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-up-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-up-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/arrow-up-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/asterisk.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/at.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/bag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/battery-charging.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/battery-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/battery-full.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/battery-half.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/battery-low.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/beaker.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/beer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/bluetooth.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/bonfire.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/bookmark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/briefcase.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/bug.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/calculator.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/calendar.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/camera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/card.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/cash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatbox-working.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatbox.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatboxes.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatbubble-working.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatbubble.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chatbubbles.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/checkmark-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/checkmark-round.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/checkmark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chevron-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chevron-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chevron-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/chevron-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/clipboard.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/clock.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/close-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/close-round.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/close.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/closed-captioning.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/cloud.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/code-download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/code-working.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/code.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/coffee.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/compass.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/compose.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/connection-bars.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/contrast.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/cube.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/disc.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/document-text.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/document.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/drag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/earth.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/edit.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/egg.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/eject.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/email.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/eye-disabled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/eye.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/female.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/filing.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/film-marker.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/fireball.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/flag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/flame.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/flash-off.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/flash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/flask.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/folder.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/fork-repo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/fork.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/funnel.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/game-controller-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/game-controller-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/gear-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/gear-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/grid.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/hammer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/happy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/headphone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/heart-broken.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/heart.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/help-buoy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/help-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/help.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/home.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/icecream.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/icon-social-google-plus-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/icon-social-google-plus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/image.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/images.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/information-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/information.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ionic.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-alarm-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-alarm.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-albums-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-albums.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-americanfootball-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-americanfootball.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-analytics-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-analytics.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-back.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-thin-down.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-thin-left.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-thin-right.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-thin-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-arrow-up.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-at-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-at.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-barcode-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-barcode.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-baseball-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-baseball.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-basketball-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-basketball.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bell-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bell.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bolt-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bolt.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bookmarks-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-bookmarks.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-box-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-box.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-briefcase-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-briefcase.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-browsers-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-browsers.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-calculator-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-calculator.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-calendar-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-calendar.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-camera-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-camera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cart-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cart.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-chatboxes-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-chatboxes.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-chatbubble-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-chatbubble.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-checkmark-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-checkmark-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-checkmark.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-circle-filled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-circle-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-clock-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-clock.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-close-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-close-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-close.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud-download-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud-download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud-upload-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud-upload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloud.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloudy-night-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloudy-night.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloudy-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cloudy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cog-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-cog.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-compose-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-compose.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-contact-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-contact.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-copy-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-copy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-download-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-download.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-drag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-email-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-email.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-expand.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-eye-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-eye.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-fastforward-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-fastforward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-filing-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-filing.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-film-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-film.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-flag-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-flag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-folder-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-folder.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-football-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-football.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-gear-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-gear.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-glasses-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-glasses.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-heart-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-heart.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-help-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-help-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-help.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-home-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-home.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-infinite-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-infinite.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-information-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-information-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-information.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-ionic-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-keypad-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-keypad.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-lightbulb-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-lightbulb.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-location-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-location.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-locked-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-locked.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-loop-strong.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-loop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-medkit-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-medkit.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-mic-off.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-mic-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-mic.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-minus-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-minus-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-minus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-monitor-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-monitor.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-moon-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-moon.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-more-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-more.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-musical-note.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-musical-notes.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-navigate-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-navigate.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paper-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paper.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paperplane-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paperplane.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-partlysunny-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-partlysunny.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pause-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pause.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paw-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-paw.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-people-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-people.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-person-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-person.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-personadd-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-personadd.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-photos-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-photos.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pie-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pie.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-play-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-play.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-plus-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-plus-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-plus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pricetag-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pricetag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pricetags-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pricetags.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-printer-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-printer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pulse-strong.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-pulse.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-rainy-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-rainy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-recording-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-recording.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-redo-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-redo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-refresh-empty.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-refresh-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-refresh.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-reload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-reverse-camera-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-reverse-camera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-rewind-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-rewind.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-search-strong.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-search.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-settings-strong.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-settings.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-shrink.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-skipbackward-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-skipbackward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-skipforward-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-skipforward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-snowy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-speedometer-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-speedometer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-star-half.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-star-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-star.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-stopwatch-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-stopwatch.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-sunny-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-sunny.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-telephone-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-telephone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-tennisball-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-tennisball.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-thunderstorm-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-thunderstorm.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-time-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-time.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-timer-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-timer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-toggle-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-toggle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-trash-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-trash.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-undo-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-undo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-unlocked-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-unlocked.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-upload-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-upload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-videocam-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-videocam.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-volume-high.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-volume-low.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-wineglass-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-wineglass.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-world-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ios-world.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ipad.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/iphone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ipod.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/jet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/key.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/knife.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/laptop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/leaf.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/levels.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/lightbulb.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/link.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/load-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/load-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/load-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/load-d.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/location.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/locked.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/log-in.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/log-out.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/loop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/magnet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/male.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/man.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/map.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/medkit.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/merge.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/mic-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/mic-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/mic-c.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/minus-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/minus-round.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/minus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/model-s.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/monitor.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/more.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/mouse.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/music-note.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/navicon-round.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/navicon.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/navigate.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/network.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/no-smoking.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/nuclear.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/outlet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/paper-airplane.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/paperclip.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pause.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/person-add.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/person-stalker.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/person.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pie-graph.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pinpoint.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pizza.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/plane.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/planet.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/play.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/playstation.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/plus-circled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/plus-round.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/plus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/podium.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pound.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/power.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pricetag.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pricetags.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/printer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/pull-request.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/qr-scanner.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/quote.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/radio-waves.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/record.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/refresh.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/reply-all.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/reply.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ribbon-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/ribbon-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/sad.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/scissors.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/search.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/settings.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/share.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/shuffle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/skip-backward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/skip-forward.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-android-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-android.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-apple-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-apple.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-bitcoin-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-bitcoin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-buffer-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-buffer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-designernews-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-designernews.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-dribbble-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-dribbble.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-dropbox-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-dropbox.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-facebook-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-facebook.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-foursquare-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-foursquare.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-freebsd-devil.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-github-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-github.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-google-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-google.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-googleplus-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-googleplus.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-hackernews-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-hackernews.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-instagram-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-instagram.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-linkedin-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-linkedin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-pinterest-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-pinterest.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-reddit-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-reddit.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-rss-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-rss.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-skype-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-skype.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-tumblr-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-tumblr.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-tux.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-twitter-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-twitter.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-usd-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-usd.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-vimeo-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-vimeo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-windows-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-windows.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-wordpress-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-wordpress.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-yahoo-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-yahoo.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-youtube-outline.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/social-youtube.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/speakerphone.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/speedometer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/spoon.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/star.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/stats-bars.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/steam.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/stop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/thermometer.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/thumbsdown.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/thumbsup.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/toggle-filled.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/toggle.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/trash-a.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/trash-b.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/trophy.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/umbrella.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/university.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/unlocked.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/upload.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/usb.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/videocamera.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/volume-high.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/volume-low.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/volume-medium.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/volume-mute.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/wand.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/waterdrop.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/wifi.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/wineglass.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/woman.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/wrench.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/Ionicons/xbox.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/Icons/none.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/PhotoSwipe/default-skin.png create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/PhotoSwipe/default-skin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/PhotoSwipe/preloader.gif create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Images/blank.gif create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.accordion.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.cookieconsent.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.lightbox.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.navbar.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.popover.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.smoothscroll.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.stickyheader.min.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.accordion.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.cookieconsent.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.lightbox.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.navbar.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.popover.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.smoothscroll.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/JavaScript/Src/bootstrap.stickyheader.js create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/_variables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_accordion.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_carousel.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_form.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_mixins.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/compat/_visually.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/rte.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap4/theme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/_variables.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/compat/_embed.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/compat/_form.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/compat/_text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/rte.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/bootstrap5/theme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_accordion.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_address.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_audio.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_backendlayout.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_blockquote.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_breadcrumb.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_button.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_card.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_carousel.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_contentcontainer.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_figure.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_filelink.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_footer.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_frame.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_gallery.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_icongroup.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_link.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_list.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_misc.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_navbar.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_pagination.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_scrolltop.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_section.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_sociallink.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_subnav.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_tab.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_table.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_text.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_texticon.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_textpic.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_textteaser.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_thumbnail-menu.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_timeline.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/_well.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/card/_cardgroup.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/card/_cardmenu.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/components/card/_cardpanel.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/plugins/_cookieconsent.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Resources/Public/Scss/plugins/_photoswipe.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Parser/ScssParserTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/AccordionContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/AccordionMediaOrientUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/BackendLayoutUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/BulletContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/CarouselContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/CarouselItemLayoutUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/CarouselItemTypeUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/ExternalMediaContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/AccordionContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/AccordionContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/AccordionMediaOrientUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/AccordionMediaOrientUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/BackendLayoutUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/BackendLayoutUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/BulletContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/BulletContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselItemLayoutUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselItemLayoutUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselItemTypeUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/CarouselItemTypeUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/ExternalMediaContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/ExternalMediaContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/FrameClassToBackgroundUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/FrameClassToBackgroundUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/FrameClassUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/FrameClassUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/ListGroupContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/ListGroupContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/PanelContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/PanelContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TabContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TabContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TabMediaOrientUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TabMediaOrientUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TableContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TableContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonContentElementUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonContentElementUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonIconUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonIconUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonSizeUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonSizeUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonTypeUpdate/Input.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/Fixtures/TexticonTypeUpdate/Result.csv create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/FrameClassToBackgroundUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/FrameClassUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/ListGroupContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/PanelContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TabContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TabMediaOrientUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TableContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TexticonContentElementUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TexticonIconUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TexticonSizeUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Functional/Updates/TexticonTypeUpdateTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Configuration/TCA/Overrides/sys_template.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Configuration/TypoScript/constants.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Configuration/TypoScript/setup.typoscript create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Private/Scss/CoreSyntax/theme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Private/Scss/Legacy/theme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Private/Scss/Relative/theme.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Public/Images/PhotoSwipe/default-skin.png create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Public/Images/PhotoSwipe/default-skin.svg create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/Resources/Public/Images/PhotoSwipe/preloader.gif create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/composer.json create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/ext_emconf.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/ext_localconf.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Packages/demo_package/ext_tables.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Unit/Compiler/Fixtures/Calculation/Input.scss create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Unit/Compiler/Fixtures/Calculation/Output.css create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Unit/Compiler/ScssCompilerTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Unit/Utility/ExternalMediaUtilityTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/Tests/Unit/Utility/ImageVariantsUtilityTest.php create mode 100644 public/typo3conf/ext/bootstrap_package/composer.json create mode 100644 public/typo3conf/ext/bootstrap_package/ext_conf_template.txt create mode 100644 public/typo3conf/ext/bootstrap_package/ext_emconf.php create mode 100644 public/typo3conf/ext/bootstrap_package/ext_localconf.php create mode 100644 public/typo3conf/ext/bootstrap_package/ext_tables.php create mode 100644 public/typo3conf/ext/bootstrap_package/ext_tables.sql create mode 100644 public/typo3conf/ext/femanager/.crowdin.yml create mode 100755 public/typo3conf/ext/femanager/.ddev/commands/host/initialize create mode 100755 public/typo3conf/ext/femanager/.ddev/commands/web/typo3 create mode 100755 public/typo3conf/ext/femanager/.ddev/commands/web/typo3cms create mode 100644 public/typo3conf/ext/femanager/.ddev/config.yaml create mode 100644 public/typo3conf/ext/femanager/.ddev/docker-compose.browser.yaml create mode 100644 public/typo3conf/ext/femanager/.ddev/typo3/AdditionalConfiguration.php create mode 100644 public/typo3conf/ext/femanager/.ddev/typo3/config.yaml create mode 100644 public/typo3conf/ext/femanager/.github/workflows/terupload.yaml create mode 100644 public/typo3conf/ext/femanager/.github/workflows/test-documentation.yml create mode 100644 public/typo3conf/ext/femanager/.github/workflows/testing.yaml create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/AbstractController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/AbstractFrontendController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/DataController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/EditController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/InvitationController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/NewController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/UserBackendController.php create mode 100644 public/typo3conf/ext/femanager/Classes/Controller/UserController.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/AbstractDataProcessor.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/CleanUserGroup.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/DataProcessorInterface.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/DataProcessorRunner.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/DateConverter.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProcessor/ImageManipulation.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProvider/CountryDataProvider.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProvider/CountryZonesDataProvider.php create mode 100644 public/typo3conf/ext/femanager/Classes/DataProvider/FallbackCountryDataProvider.php create mode 100644 public/typo3conf/ext/femanager/Classes/DependencyInjection/CompilerPass/ChangeClassDatamapPass.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Model/Log.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Model/User.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Model/UserGroup.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Repository/LogRepository.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Repository/PluginRepository.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Repository/UserGroupRepository.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Repository/UserRepository.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/AutoAdminConfirmation/AbstractConfirmation.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/AutoAdminConfirmation/ConfirmationInterface.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/AutoAdminConfirmation/EmailDomainConfirmation.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/AutoAdminConfirmationService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/FileService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/FinisherService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/RatelimiterService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/SendMailService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/SendParametersService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/StoreInDatabaseService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Service/ValidationSettingsService.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/AbstractValidator.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/CaptchaValidator.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/ClientsideValidator.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/PasswordValidator.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/ServersideValidator.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/ShouldValidateStateCondition.php create mode 100644 public/typo3conf/ext/femanager/Classes/Domain/Validator/ValidationConditionInterface.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/AdminConfirmationUserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/AfterMailSendEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/AfterUserUpdateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/BeforeMailBodyRenderEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/BeforeMailSendEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/BeforeUpdateUserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/BeforeUserConfirmEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/BeforeUserCreateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/CreateConfirmationRequestEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/DeleteUserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/FinalCreateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/FinalUpdateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/ImpersonateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/InviteUserConfirmedEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/InviteUserCreateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/InviteUserEditEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/InviteUserUpdateEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/RefuseUserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/UniqueUserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/UserEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Event/UserLogEvent.php create mode 100644 public/typo3conf/ext/femanager/Classes/Exception/FileNotFoundException.php create mode 100644 public/typo3conf/ext/femanager/Classes/Exception/NotPaginatableException.php create mode 100644 public/typo3conf/ext/femanager/Classes/Finisher/AbstractFinisher.php create mode 100644 public/typo3conf/ext/femanager/Classes/Finisher/FinisherInterface.php create mode 100644 public/typo3conf/ext/femanager/Classes/Finisher/FinisherRunner.php create mode 100644 public/typo3conf/ext/femanager/Classes/Finisher/SaveToAnyTableFinisher.php create mode 100644 public/typo3conf/ext/femanager/Classes/Finisher/SendParametersFinisher.php create mode 100644 public/typo3conf/ext/femanager/Classes/Persistence/Generic/Mapper/DataMap.php create mode 100644 public/typo3conf/ext/femanager/Classes/UserFunc/StaticInfoTables.php create mode 100644 public/typo3conf/ext/femanager/Classes/UserFunc/UserFieldsOptions.php create mode 100644 public/typo3conf/ext/femanager/Classes/UserFunc/UserOptions.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/AbstractUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/BackendUserUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/BackendUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/ConfigurationUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/FileUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/FrontendUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/HashUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/LocalizationUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/LogUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/ObjectUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/StringUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/TemplateUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/Utility/UserUtility.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Be/GetClassNameOnActionViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Be/IsConfirmationModuleActivatedViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Be/IsResendUserConfirmationRequestActivatedViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Condition/IsBackendAdministratorAuthenticationViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Form/GetCountriesFromStaticInfoTablesViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Form/GetCountriesViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Form/SelectViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Form/TextfieldViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/BackendEditLinkViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/BackendNewLinkViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/CaptchaEnabledViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/ExplodeViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/GetFirstViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/JsonEncodeViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/RequestViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Misc/UpperViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Pagination/PaginateViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Pagination/UriViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Repository/GetFirstViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Validation/AbstractValidationViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Validation/FormValidationDataViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Classes/ViewHelpers/Validation/IsRequiredFieldViewHelper.php create mode 100644 public/typo3conf/ext/femanager/Configuration/Extbase/Persistence/Classes.php create mode 100644 public/typo3conf/ext/femanager/Configuration/FlexForms/FlexFormPi1.xml create mode 100644 public/typo3conf/ext/femanager/Configuration/Services.php create mode 100644 public/typo3conf/ext/femanager/Configuration/Services.yaml create mode 100644 public/typo3conf/ext/femanager/Configuration/TCA/Overrides/fe_users.php create mode 100644 public/typo3conf/ext/femanager/Configuration/TCA/Overrides/sys_template.php create mode 100644 public/typo3conf/ext/femanager/Configuration/TCA/Overrides/tt_content.php create mode 100644 public/typo3conf/ext/femanager/Configuration/TCA/tx_femanager_domain_model_log.php create mode 100644 public/typo3conf/ext/femanager/Configuration/TypoScript/Layout/setup.typoscript create mode 100644 public/typo3conf/ext/femanager/Configuration/TypoScript/Main/constants.typoscript create mode 100644 public/typo3conf/ext/femanager/Configuration/TypoScript/Main/setup.typoscript create mode 100644 public/typo3conf/ext/femanager/Configuration/UserTsConfig/BackendModule.typoscript create mode 100644 public/typo3conf/ext/femanager/Documentation/Changelog/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/FAQ/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/AutoConfirmation/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/Countryselect/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/FillEmailAsUsername/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/Finishers/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/NewFields/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/NewValidators/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/RateLimiter/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/ResendUserConfirmationRequest/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/ShowListUsers/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/Signals/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Features/Templates/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/feature-showlistusers-loggedin-user.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/feature-showlistusers-loggedin-user1.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/feature-showlistusers-loggedin-user2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backend1.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backend2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backend3.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backend4.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backendmodule.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_backendmodule2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_constants.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_create1.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_create2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_create3.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_edit1.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_edit2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_extensionmanager.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_extensionmanager_configuration.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_feusers_record.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_flexform_newfields.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_newfield1.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_newfield2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_plugin.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_plugin2.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Images/femanager_plugin3.png create mode 100644 public/typo3conf/ext/femanager/Documentation/Includes.rst.txt create mode 100644 public/typo3conf/ext/femanager/Documentation/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Installation/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Introduction/Images.txt create mode 100644 public/typo3conf/ext/femanager/Documentation/Introduction/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Sitemap.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/Upgrade/Index.rst create mode 100644 public/typo3conf/ext/femanager/Documentation/guides.xml create mode 100644 public/typo3conf/ext/femanager/Resources/Private/.htaccess create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Language/locallang.xlf create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Language/locallang_csh_fe_users.xlf create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Language/locallang_db.xlf create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Language/locallang_mod.xlf create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Layouts/Backend.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Layouts/Clean.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Layouts/Default.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Layouts/Email.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Backend/Searchform.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Address.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Captcha.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/CaptchaField.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/City.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Company.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Country.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/DateOfBirth.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Email.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Fax.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/FirstName.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Gender.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Image.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/LastName.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/MiddleName.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Name.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Password.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/State.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/SubmitCreate.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/SubmitUpdate.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Telephone.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Terms.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Title.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Usergroup.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Username.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Www.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Fields/Zip.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Mail/UserProperties.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/AdditionalFields.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/DeleteLink.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/FlashMessages.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/FormErrors.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/Pagination.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/ResendConfirmation.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/Misc/ValidationMessages.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Partials/User/Searchform.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Edit/ConfirmUpdateRequest.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Edit/Edit.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/CreateAdminConfirmation.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/CreateNotify.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/CreateUserConfirmation.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/CreateUserNotify.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/CreateUserNotifyRefused.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/Invitation.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/InvitationNotify.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/InvitationNotifyStep1.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/InvitationRefused.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/UpdateNotify.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/UpdateRequest.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Email/UpdateRequestRefused.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Invitation/Edit.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Invitation/New.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/Invitation/Status.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/New/ConfirmCreateRequest.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/New/CreateStatus.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/New/New.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/New/ResendConfirmationDialogue.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/User/FileDelete.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/User/FileUpload.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/User/List.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/User/Show.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/User/Validate.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/UserBackend/Confirmation.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/UserBackend/List.html create mode 100644 public/typo3conf/ext/femanager/Resources/Private/Templates/UserBackend/ListOpenUserConfirmations.html create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Css/Additional.min.css create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Css/Backend.min.css create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Css/Main.min.css create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Icons/Extension.svg create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Icons/Log.png create mode 100644 public/typo3conf/ext/femanager/Resources/Public/Icons/relation.gif create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Backend.min.js create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Data.min.js create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Femanager.min.js create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Validation.min.js create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Vendor/bootstrap.min.css create mode 100644 public/typo3conf/ext/femanager/Resources/Public/JavaScript/Vendor/bootstrap.min.js create mode 100644 public/typo3conf/ext/femanager/composer.json create mode 100644 public/typo3conf/ext/femanager/ext_conf_template.txt create mode 100644 public/typo3conf/ext/femanager/ext_emconf.php create mode 100644 public/typo3conf/ext/femanager/ext_localconf.php create mode 100644 public/typo3conf/ext/femanager/ext_tables.php create mode 100644 public/typo3conf/ext/femanager/ext_tables.sql create mode 100644 public/typo3conf/ext/femanager/ext_typoscript_setup.typoscript create mode 100644 public/typo3conf/ext/femanager/readme.md create mode 100644 public/typo3conf/ext/femanager/rector.php create mode 100755 public/typo3conf/ext/femanager/shell-commands.sh create mode 100644 public/typo3conf/ext/off/.gitignore create mode 100644 public/typo3conf/ext/off/Classes/Backend/FixUser.php create mode 100755 public/typo3conf/ext/off/Classes/Backend/Labels.php create mode 100644 public/typo3conf/ext/off/Classes/Backend/Selecting.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Architekten.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/AufloesungPunkteVerteilung.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Erfolgspunkte.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Frauen.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Neueinsteiger.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/PunkteKriterien.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Sektionstage.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Solidaritaetserklaerung.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/Sondersperrungen.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/WettbewerbeArchitekten.php create mode 100644 public/typo3conf/ext/off/Classes/Berechnung/_Berechnung.php create mode 100644 public/typo3conf/ext/off/Classes/Bootstrap/KammerById.php create mode 100644 public/typo3conf/ext/off/Classes/Bootstrap/UserSettings.php create mode 100644 public/typo3conf/ext/off/Classes/Bootstrap/_BootstrapController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/AdministrationController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/ArchitektenController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/EditController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/ExtrasperrungController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/KriterienController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/NewController.php create mode 100644 public/typo3conf/ext/off/Classes/Controller/WettbewerbeController.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Architekten.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Extrasperrung.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Kammern.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Kriterien.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Preisart.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Punkte.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Sektionstage.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/User.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Model/Wettbewerbe.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Repository/ArchitektenRepository.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Repository/KriterienRepository.php create mode 100644 public/typo3conf/ext/off/Classes/Domain/Repository/WettbewerbeRepository.php create mode 100644 public/typo3conf/ext/off/Classes/Download/PdfEinreichung.php create mode 100644 public/typo3conf/ext/off/Classes/Download/PdfListe.php create mode 100644 public/typo3conf/ext/off/Classes/Download/_DownloadController.php create mode 100644 public/typo3conf/ext/off/Classes/Download/print.css create mode 100644 public/typo3conf/ext/off/Classes/Download/style.css create mode 100644 public/typo3conf/ext/off/Classes/Einreichen/EinreichungDelete.php create mode 100644 public/typo3conf/ext/off/Classes/Einreichen/EinreichungenUser.php create mode 100644 public/typo3conf/ext/off/Classes/Einreichen/_EinreichenController.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/Archive.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/ArchiveMenu.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/EinreichungenAdmin.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/Freischaltungen.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/ListeAdmin.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/ListeTree.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/Recalculate.php create mode 100644 public/typo3conf/ext/off/Classes/Liste/_ListeController.php create mode 100644 public/typo3conf/ext/off/Classes/Middleware/Ajax.php create mode 100644 public/typo3conf/ext/off/Classes/PunkteZuweisung/Preise.php create mode 100644 public/typo3conf/ext/off/Classes/PunkteZuweisung/PunkteZuweisen.php create mode 100644 public/typo3conf/ext/off/Classes/PunkteZuweisung/PunkteZuweisungen.php create mode 100644 public/typo3conf/ext/off/Classes/PunkteZuweisung/_PunkteZuweisungController.php create mode 100644 public/typo3conf/ext/off/Classes/Scheduler/CronTask.php create mode 100644 public/typo3conf/ext/off/Classes/Upload/Upload.php create mode 100644 public/typo3conf/ext/off/Classes/Upload/_UploadController.php create mode 100644 public/typo3conf/ext/off/Classes/User/UserKonto.php create mode 100644 public/typo3conf/ext/off/Classes/User/_UserController.php create mode 100644 public/typo3conf/ext/off/Classes/Utilities/FileUtility.php create mode 100644 public/typo3conf/ext/off/Classes/Utilities/Message.php create mode 100644 public/typo3conf/ext/off/Classes/Utilities/Resources.php create mode 100644 public/typo3conf/ext/off/Classes/Zuladungsliste/PositionArchitekt.php create mode 100644 public/typo3conf/ext/off/Classes/Zuladungsliste/Punktezuweisung.php create mode 100644 public/typo3conf/ext/off/Classes/Zuladungsliste/TreemenuPosition.php create mode 100644 public/typo3conf/ext/off/Classes/Zuladungsliste/_ZuladungslisteController.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/Zuteilung.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/ZuteilungNeu.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/ZuteilungWettbewerbe.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/Zuteilungen.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/ZuteilungenErteilt.php create mode 100644 public/typo3conf/ext/off/Classes/Zuteilungen/_ZuteilungenController.php create mode 100644 public/typo3conf/ext/off/Configuration/Extbase/Persistence/Classes.php create mode 100644 public/typo3conf/ext/off/Configuration/FlexForms/flexform_zuladungsliste.xml create mode 100644 public/typo3conf/ext/off/Configuration/RequestMiddlewares.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/fe_users.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/sys_template.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tt_content.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_extrasperrung.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_kammern.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_kriterien.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_preisart.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_punkte.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_sektionstage.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_wettbewerbe.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_konto_aufloesung_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_kriterien_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/Overrides/tx_zuladungsliste_wettbewerbe_architekten_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_extrasperrung.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_kammern.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_kriterien.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_preisart.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_punkte.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_sektionstage.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_domain_model_wettbewerbe.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_extrasperrung_user_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_konto_aufloesung_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_punkte_kriterien_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TCA/tx_zuladungsliste_wettbewerbe_architekten_mm.php create mode 100644 public/typo3conf/ext/off/Configuration/TypoScript/constants.typoscript create mode 100644 public/typo3conf/ext/off/Configuration/TypoScript/setup.typoscript create mode 100644 public/typo3conf/ext/off/Readme.md create mode 100644 public/typo3conf/ext/off/Resources/Private/.htaccess create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Layouts/Default.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Partials/FormErrors.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Partials/Kriterien/FormFields.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Partials/Kriterien/Properties.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Partials/Wettbewerbe/FormFields.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Partials/Wettbewerbe/Properties.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Architekten/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Kriterien/Edit.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Kriterien/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Kriterien/New.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Kriterien/Show.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Wettbewerbe/Edit.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Wettbewerbe/Front.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Wettbewerbe/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Wettbewerbe/New.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Backend/Templates/Wettbewerbe/Show.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_bezuladungsliste.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_bmzuladungsliste.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_fe_users.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Language/locallang_db.xlf create mode 100644 public/typo3conf/ext/off/Resources/Private/Layouts/Default.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Layouts/EmptyPageRenderer.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Address.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Captcha.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/CaptchaField.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/City.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Company.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Country.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/DateOfBirth.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Email.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Fax.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/FirstName.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Frauenfoerderpunkt.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Gender.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Image.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Kammermitgliedsnummer.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/LastName.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/MiddleName.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Name.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Password.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/State.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/SubmitCreate.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/SubmitUpdate.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Telephone.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Terms.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Title.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Usergroup.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Username.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Vereidigung.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Www.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Fields/Zip.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/FormErrors.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Kriterien/FormFields.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Kriterien/Properties.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Wettbewerbe/FormFields.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Partials/Wettbewerbe/Properties.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Architekten/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Felogin/Login/Login.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Felogin/Login/Logout.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Kriterien/Edit.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Kriterien/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Kriterien/New.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Kriterien/Show.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Wettbewerbe/Edit.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Wettbewerbe/List.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Wettbewerbe/New.html create mode 100644 public/typo3conf/ext/off/Resources/Private/Templates/Wettbewerbe/Show.html create mode 100644 public/typo3conf/ext/off/Resources/Public/Css/Backend/backend.css create mode 100644 public/typo3conf/ext/off/Resources/Public/Css/img/filter.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Css/img/lupe.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Css/visual/backend.css create mode 100644 public/typo3conf/ext/off/Resources/Public/Css/zuladungsliste.css create mode 100644 public/typo3conf/ext/off/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.eot create mode 100644 public/typo3conf/ext/off/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.ttf create mode 100644 public/typo3conf/ext/off/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff create mode 100644 public/typo3conf/ext/off/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff2 create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/Extension.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/ExtensionAdler.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/ExtensionBgWhite.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/ext_icon.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/lupe.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/relation.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/competition.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/kammer.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/list.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/preis.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/waage.svg create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/svg/wettbewerb.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.gif create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungacht.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungalle.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungdrei.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungfree.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungfuenf.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladunggesperrt.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungneun.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungpdf.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungsechs.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungsieben.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Icons/zuladungsliste.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungvier.png create mode 100755 public/typo3conf/ext/off/Resources/Public/Icons/zuladungzwei.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/Historic_City_Center_of_Graz.jpg create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/arching.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/bgpattern.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/ext_icon.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/logo-neu.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/logo.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/panther.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/zt-kammer-logo-504x100.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/zt-logo-tr.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/zt-logo.JPG create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/zt-logo.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/ztkammer-adler.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/ztkammer-logo-adler.png create mode 100644 public/typo3conf/ext/off/Resources/Public/Images/ztkammer-logo.png create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/administrator/auswertung_alle.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/administrator/einreichungen.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/administrator/punkte_freischalten.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/administrator/zuteilungen.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/architekt/einreichung.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/architekt/konto.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/architekt/position.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/architekt/zuweisung.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_auswertungen.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_eigereichte_architekt.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_einreichungen_administrator.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_freischaltungen_administrator.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_konto_architekt.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuteilungen_administrator.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuweisung_architekt.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_einreichungen.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_freischalten.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuladungsliste_admin.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuteilung.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuweisung.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/progressbar.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_functions.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi1.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi2.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_topmenu.js create mode 100644 public/typo3conf/ext/off/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_xhr.js create mode 100644 public/typo3conf/ext/off/Resources/archiv.tar.gz create mode 100644 public/typo3conf/ext/off/composer.json create mode 100644 public/typo3conf/ext/off/ext_emconf.php create mode 100644 public/typo3conf/ext/off/ext_localconf.php create mode 100644 public/typo3conf/ext/off/ext_tables.php create mode 100644 public/typo3conf/ext/off/ext_tables.sql create mode 160000 public/typo3conf/ext/sr_freecap create mode 120000 public/typo3conf/ext/zuladungsliste create mode 100644 public/typo3conf/l10n/de/aboutmodules/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/aboutmodules/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/adodb/locallang_datasource_config.xlf create mode 100644 public/typo3conf/l10n/de/adodb/locallang_wizard.xlf create mode 100644 public/typo3conf/l10n/de/backend/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/backend/Resources/Private/Language/de.locallang_db_new_content_el.xlf create mode 100644 public/typo3conf/l10n/de/backend/Resources/Private/Language/de.locallang_layout.xlf create mode 100644 public/typo3conf/l10n/de/backend/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/belog/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/belog/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/belog/locallang.xlf create mode 100644 public/typo3conf/l10n/de/belog/mod/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/belog/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/beuser/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/beuser/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/beuser/Resources/Private/Language/de.locallang_mod_permission.xlf create mode 100644 public/typo3conf/l10n/de/beuser/mod/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/beuser/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.Backend.xlf create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.Backend.xml create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.ExtConfTemplate.xlf create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.ExtConfTemplate.xml create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.locallang_rte.xlf create mode 100644 public/typo3conf/l10n/de/bootstrap_package/Resources/Private/Language/de.locallang_rte.xml create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_fe_groups.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_fe_users.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_pages.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_pageslol.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_statictpl.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_sysdomain.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_sysfilereference.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_sysfilestorage.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_systmpl.xlf create mode 100644 public/typo3conf/l10n/de/context_help/Resources/Private/Language/de.locallang_csh_ttcontent.xlf create mode 100644 public/typo3conf/l10n/de/core/Resources/Private/Language/de.db.xlf create mode 100644 public/typo3conf/l10n/de/core/Resources/Private/Language/de.debugger.xlf create mode 100644 public/typo3conf/l10n/de/core/Resources/Private/Language/de.fileMessages.xlf create mode 100644 public/typo3conf/l10n/de/core/Tests/Unit/Localization/Parser/Fixtures/de.fr.locallang.xlf create mode 100644 public/typo3conf/l10n/de/core/Tests/Unit/Localization/Parser/Fixtures/de.fr.locallang_override.xlf create mode 100644 public/typo3conf/l10n/de/core/Tests/Unit/Localization/Parser/Fixtures/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/core/Tests/Unit/Localization/Parser/Fixtures/de.locallang_override.xlf create mode 100644 public/typo3conf/l10n/de/css_styled_content/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/css_styled_content/Resources/Private/Language/de.locallang_em.xml create mode 100644 public/typo3conf/l10n/de/css_styled_content/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/css_styled_content/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/css_styled_content/pi1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/css_styled_content/pi1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/dbal/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/dbal/Resources/Private/Language/de.locallang_em.xml create mode 100644 public/typo3conf/l10n/de/dbal/mod1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/dbal/mod1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/dbal/mod1/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/dbal/mod1/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/documentation/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/documentation/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/extbase/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/extbase/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Resources/Private/Language/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child1.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child1.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child2.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child2.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child3.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child3.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child4.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_child4.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_main.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_csh_tx_testextension_domain_model_main.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_testmodule.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_testmodule.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_testmodule1.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/TestExtensions/test_extension/Resources/Private/Language/de.locallang_testmodule1.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/Tools/de.existing_locallang.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/Tests/Fixtures/Tools/de.existing_locallang.xml create mode 100644 public/typo3conf/l10n/de/extension_builder/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/extension_builder/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/extensionmanager/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/extensionmanager/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/extensionmanager/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/felogin/Resources/Private/Language/de.Database.xlf create mode 100644 public/typo3conf/l10n/de/felogin/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_csh_fe_users.xlf create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_csh_fe_users.xml create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/femanager/Resources/Private/Language/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/filelist/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/filemetadata/Resources/Private/Language/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/filemetadata/Resources/Private/Language/de.locallang_tca.xml create mode 100644 public/typo3conf/l10n/de/fluid/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/fluid_styled_content/Resources/Private/Language/de.Database.xlf create mode 100644 public/typo3conf/l10n/de/fluid_styled_content/Resources/Private/Language/de.FrontendEditing.xlf create mode 100644 public/typo3conf/l10n/de/fluid_styled_content/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/fluid_styled_content/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/form/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/form/Resources/Private/Language/de.locallang_wizard.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.Database.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.locallang_csh_webinfo.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.locallang_csh_weblayout.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.locallang_ttc.xlf create mode 100644 public/typo3conf/l10n/de/frontend/Resources/Private/Language/de.locallang_webinfo.xlf create mode 100644 public/typo3conf/l10n/de/impexp/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/impexp/Resources/Private/Language/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/impexp/Resources/Private/Language/de.locallang_csh_45.xlf create mode 100644 public/typo3conf/l10n/de/impexp/modfunc1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/Resources/Private/Language/de.locallang_em.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang_csh_indexcfg.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang_csh_indexcfg.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/mod/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/modfunc1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/modfunc1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/modfunc2/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/modfunc2/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/indexed_search/pi/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/indexed_search/pi/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/info_pagetsconfig/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/info_pagetsconfig/Resources/Private/Language/de.locallang_csh_webinfo.xlf create mode 100644 public/typo3conf/l10n/de/install/Resources/Private/Language/Report/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/install/Resources/Private/Language/de.BackendModule.xlf create mode 100644 public/typo3conf/l10n/de/install/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/install/report/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/lang/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/lang/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_alt_doc.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_alt_intro.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_browse_links.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_common.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_core.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_be_groups.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_be_users.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_corebe.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_pages.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_sysfilem.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_syslang.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_sysnews.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_web_func.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_csh_web_info.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_general.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_login.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_misc.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_admintools.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_doc.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_file.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_file_list.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_help.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_help_about.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_help_cshmanual.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_system.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_tools.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_user.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_user_ws.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_usertools.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_web.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_web_func.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_web_info.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_mod_web_list.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_show_rechis.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_t3lib_fullsearch.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_tcemain.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_tsfe.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_tsparser.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_view_help.xlf create mode 100644 public/typo3conf/l10n/de/lang/de.locallang_wizards.xlf create mode 100644 public/typo3conf/l10n/de/lang/hooks/clearcache/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang_csh.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/Module/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/locallang.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814893.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814893.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814894.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814894.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814895.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814895.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814896.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.1415814896.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang_csh.xml create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/linkvalidator/modfuncreport/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/Private/Language/de.locallang_mod_configuration.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/Private/Language/locallang.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/de.locallang.1415814897.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/de.locallang.1415814898.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/de.locallang.1415814899.xlf create mode 100644 public/typo3conf/l10n/de/lowlevel/Resources/de.locallang.1415814900.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_be.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_be.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_category.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_category.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_file.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_file.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_flexforms.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_flexforms.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_link.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_link.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_media.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_media.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_news.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_news.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_tag.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_csh_tag.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_modadministration.xlf create mode 100644 public/typo3conf/l10n/de/news/Resources/Private/Language/de.locallang_modadministration.xml create mode 100644 public/typo3conf/l10n/de/opendocs/de.locallang_opendocs.xlf create mode 100644 public/typo3conf/l10n/de/opendocs/de.locallang_opendocs.xml create mode 100644 public/typo3conf/l10n/de/opendocs/mod/de.locallang.1415814901.xlf create mode 100644 public/typo3conf/l10n/de/opendocs/mod/de.locallang.1415814901.xml create mode 100644 public/typo3conf/l10n/de/opendocs/mod/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/opendocs/mod/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/recycler/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/recycler/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/recycler/Resources/Private/Language/de.locallang_tasks.xlf create mode 100644 public/typo3conf/l10n/de/reports/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/reports/Resources/Private/Language/de.locallang_reports.xlf create mode 100644 public/typo3conf/l10n/de/reports/mod/de.locallang.1415814909.xlf create mode 100644 public/typo3conf/l10n/de/reports/mod/de.locallang.1415814910.xlf create mode 100644 public/typo3conf/l10n/de/reports/mod/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rsaauth/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rsaauth/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/Abbreviation/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/Abbreviation/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/BlockElements/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/BlockElements/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/BlockStyle/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/CharacterMap/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/ContextMenu/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/CopyPaste/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/DefaultClean/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/DefaultImage/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/DefaultInline/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/DefaultLink/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/DefinitionList/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/EditElement/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/EditElement/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/EditorMode/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/FindReplace/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/InlineElements/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/InlineElements/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/InsertSmiley/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/Language/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/Language/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/MicrodataSchema/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/MicrodataSchema/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/MicrodataSchema/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/PlainText/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/PlainText/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/QuickTag/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/RemoveFormat/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/RemoveFormat/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/SelectFont/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/SpellChecker/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TYPO3Color/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TYPO3HtmlParser/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TYPO3Image/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TableOperations/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TableOperations/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/TextStyle/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/Plugins/UserElements/de.locallang_js.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_accessibilityicons.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_browselinkscontroller.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_contentcss.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_csh_abbreviation.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_dialogs.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_msg.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_selectimagecontroller.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_statusreport.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_tooltips.xlf create mode 100644 public/typo3conf/l10n/de/rtehtmlarea/Resources/Private/Language/de.locallang_userelementscontroller.xlf create mode 100644 public/typo3conf/l10n/de/saltedpasswords/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/saltedpasswords/Resources/Private/Language/de.locallang_csh_saltedpasswords.xlf create mode 100644 public/typo3conf/l10n/de/saltedpasswords/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/de.locallang_csh_scheduler.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/de.locallang_em.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/locallang.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/locallang_csh_scheduler.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/Private/Language/locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1415814984.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1415814985.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1415814986.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1415814987.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1415814988.xlf create mode 100644 public/typo3conf/l10n/de/scheduler/Resources/de.locallang.1416085778.xlf create mode 100644 public/typo3conf/l10n/de/setup/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/setup/Resources/Private/Language/de.locallang_csh_mod.xlf create mode 100644 public/typo3conf/l10n/de/setup/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_db_layout.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_db_layout.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_statusreport.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/Resources/Private/Language/de.locallang_statusreport.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/pi1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_feuser_register/pi1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sr_freecap/mod1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_freecap/mod1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sr_freecap/mod1/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/sr_freecap/mod1/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/sr_freecap/pi1/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_freecap/pi1/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sr_freecap/pi2/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sr_freecap/pi2/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/Language/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/LanguagePackTemplate/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/Resources/Private/LanguagePackTemplate/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/static_info_tables/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/static_info_tables/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/sv/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sv/reports/de.locallang.1415814992.xlf create mode 100644 public/typo3conf/l10n/de/sv/reports/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang_csh_sysaction.xlf create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang_csh_sysaction.xml create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/sys_action/de.locallang_tca.xml create mode 100644 public/typo3conf/l10n/de/sys_note/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/sys_note/Resources/Private/Language/de.locallang_csh_sysnote.xlf create mode 100644 public/typo3conf/l10n/de/sys_note/Resources/Private/Language/de.locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/sys_note/locallang_csh_sysnote.xlf create mode 100644 public/typo3conf/l10n/de/sys_note/locallang_tca.xlf create mode 100644 public/typo3conf/l10n/de/t3editor/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/taskcenter/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/taskcenter/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/taskcenter/task/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/taskcenter/task/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/taskcenter/task/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/taskcenter/task/de.locallang_mod.xml create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang_analyzer.xlf create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang_ceditor.xlf create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang_info.xlf create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/tstemplate/Resources/Private/Language/de.locallang_objbrowser.xlf create mode 100644 public/typo3conf/l10n/de/version/Resources/Private/Language/de.locallang_emails.xlf create mode 100644 public/typo3conf/l10n/de/version/Resources/Private/Language/de.locallang_emails.xml create mode 100644 public/typo3conf/l10n/de/version/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/version/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/viewpage/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/viewpage/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/viewpage/view/de.locallang.1415815011.xlf create mode 100644 public/typo3conf/l10n/de/viewpage/view/de.locallang.1415815012.xlf create mode 100644 public/typo3conf/l10n/de/viewpage/view/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/wizard_crpages/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/wizard_crpages/Resources/Private/Language/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/wizard_sortpages/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/wizard_sortpages/Resources/Private/Language/de.locallang_csh.xlf create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang.xlf create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang.xml create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_csh_sysws_stage.xlf create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_csh_sysws_stage.xml create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_db.xlf create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_db.xml create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_mod.xlf create mode 100644 public/typo3conf/l10n/de/workspaces/Resources/Private/Language/de.locallang_mod.xml diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..2945016 --- /dev/null +++ b/composer.json @@ -0,0 +1,63 @@ +{ + "repositories": { + "local": { + "type": "path", + "url": "packages/*" + }, + "0": { + "type": "composer", + "url": "https://composer.typo3.org/" + } + }, + "name": "typo3/cms-base-distribution", + "description": "TYPO3 CMS Base Distribution", + "license": "GPL-2.0-or-later", + "config": { + "allow-plugins": { + "typo3/class-alias-loader": true, + "typo3/cms-composer-installers": true + } + }, + "require": { + "typo3/cms-adminpanel": "^11.5", + "typo3/cms-belog": "^11.5", + "typo3/cms-beuser": "^11.5", + "typo3/cms-felogin": "^11.5", + "typo3/cms-fluid-styled-content": "^11.5", + "typo3/cms-form": "^11.5", + "typo3/cms-impexp": "^11.5", + "typo3/cms-info": "^11.5", + "typo3/cms-redirects": "^11.5", + "typo3/cms-reports": "^11.5", + "typo3/cms-rte-ckeditor": "^11.5", + "typo3/cms-setup": "^11.5", + "typo3/cms-sys-note": "^11.5", + "typo3/cms-t3editor": "^11.5", + "typo3/cms-tstemplate": "^11.5", + "typo3/cms-viewpage": "^11.5", + "mpdf/mpdf": "^8.0", + "bk2k/bootstrap-package": "^12.0", + "catfan/medoo": "v2.1.12", + "typo3/cms-backend": "^11.5", + "typo3/cms-core": "^11.5", + "typo3/cms-extbase": "^11.5", + "typo3/cms-extensionmanager": "^11.5", + "typo3/cms-filelist": "^11.5", + "typo3/cms-fluid": "^11.5", + "typo3/cms-frontend": "^11.5", + "typo3/cms-install": "^11.5", + "typo3/cms-recordlist": "^11.5", + "typo3/cms-scheduler": "^11.5", + "neitanod/forceutf8": "^2.0", + "typo3/cms-about": "^11.5", + "typo3/cms-dashboard": "^11.5", + "typo3/cms-lowlevel": "^11.5", + "typo3/cms-opendocs": "^11.5", + "typo3/cms-recycler": "^11.5", + "typo3/cms-seo": "^11.5", + "typo3/minimal": "^11.5", + "hermanntelser/zuladungsliste": "dev-main", + "sjbr/sr-freecap": "^11.5", + "in2code/femanager": "^7.0" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..d8d26aa --- /dev/null +++ b/composer.lock @@ -0,0 +1,8218 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "6519e2ae9da7543afd4aae224d757b50", + "packages": [ + { + "name": "bacon/bacon-qr-code", + "version": "2.0.8", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconQrCode.git", + "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22", + "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22", + "shasum": "" + }, + "require": { + "dasprid/enum": "^1.0.3", + "ext-iconv": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phly/keep-a-changelog": "^2.1", + "phpunit/phpunit": "^7 | ^8 | ^9", + "spatie/phpunit-snapshot-assertions": "^4.2.9", + "squizlabs/php_codesniffer": "^3.4" + }, + "suggest": { + "ext-imagick": "to generate QR code images" + }, + "type": "library", + "autoload": { + "psr-4": { + "BaconQrCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "BaconQrCode is a QR code generator for PHP.", + "homepage": "https://github.com/Bacon/BaconQrCode", + "support": { + "issues": "https://github.com/Bacon/BaconQrCode/issues", + "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8" + }, + "time": "2022-12-07T17:46:57+00:00" + }, + { + "name": "bk2k/bootstrap-package", + "version": "12.0.10", + "source": { + "type": "git", + "url": "https://github.com/benjaminkott/bootstrap_package.git", + "reference": "e7c038ce35e589b5918b0e43c90d8ebabc49c5bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/benjaminkott/bootstrap_package/zipball/e7c038ce35e589b5918b0e43c90d8ebabc49c5bc", + "reference": "e7c038ce35e589b5918b0e43c90d8ebabc49c5bc", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-pdo": "*", + "ext-simplexml": "*", + "php": ">=7.2.0", + "scssphp/scssphp": "^1.8.1", + "typo3/cms-backend": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-core": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-extbase": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-extensionmanager": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-fluid": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-frontend": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-install": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-rte-ckeditor": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-seo": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3fluid/fluid": "^2.5.2" + }, + "require-dev": { + "b13/container": "^1.3", + "bk2k/demo-package": "@dev", + "bk2k/extension-helper": "^1.0", + "friendsofphp/php-cs-fixer": "^3.0.0", + "friendsoftypo3/phpstan-typo3": "^0.8.1", + "overtrue/phplint": "^2.3.5", + "phpstan/phpstan": "^0.12.87", + "phpstan/phpstan-deprecation-rules": "^0.12.6", + "phpstan/phpstan-phpunit": "^0.12.19", + "phpstan/phpstan-strict-rules": "^0.12.9", + "typo3/cms-belog": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-felogin": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-filelist": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-form": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-indexed-search": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-info": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-lowlevel": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-tstemplate": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/cms-workspaces": "^10.4 || ^11.5 || 11.*.*@dev", + "typo3/testing-framework": "^5.0 || ^6.4" + }, + "type": "typo3-cms-extension", + "extra": { + "typo3/cms": { + "app-dir": ".build", + "web-dir": ".build/public", + "extension-key": "bootstrap_package" + }, + "branch-alias": { + "dev-BP_12-0": "12.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "BK2K\\BootstrapPackage\\": "Classes" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Kott", + "email": "info@bk2k.info", + "homepage": "http://www.bk2k.info/", + "role": "Developer" + } + ], + "description": "Bootstrap Package delivers a full configured frontend theme for TYPO3, based on the Bootstrap CSS Framework.", + "homepage": "https://github.com/benjaminkott/bootstrap_package", + "keywords": [ + "TYPO3 CMS", + "bootstrap", + "frontend", + "introduction", + "responsive", + "sitepackage", + "theme", + "web" + ], + "support": { + "issues": "https://github.com/benjaminkott/bootstrap_package/issues", + "source": "https://github.com/benjaminkott/bootstrap_package/tree/12.0.10" + }, + "funding": [ + { + "url": "https://www.paypal.me/benjaminkott", + "type": "custom" + } + ], + "time": "2023-06-30T13:47:27+00:00" + }, + { + "name": "catfan/medoo", + "version": "v2.1.12", + "source": { + "type": "git", + "url": "https://github.com/catfan/Medoo.git", + "reference": "d1ff4e0e873a3e032e3d8804031dd6be4e013b22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/catfan/Medoo/zipball/d1ff4e0e873a3e032e3d8804031dd6be4e013b22", + "reference": "d1ff4e0e873a3e032e3d8804031dd6be4e013b22", + "shasum": "" + }, + "require": { + "ext-pdo": "*", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pdo_dblib": "For MSSQL or Sybase database on Linux/UNIX platform", + "ext-pdo_mysql": "For MySQL or MariaDB database", + "ext-pdo_oci": "For Oracle database", + "ext-pdo_pqsql": "For PostgreSQL database", + "ext-pdo_sqlite": "For SQLite database", + "ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform" + }, + "type": "framework", + "autoload": { + "psr-4": { + "Medoo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Angel Lai", + "email": "angel@medoo.in" + } + ], + "description": "The lightweight PHP database framework to accelerate development", + "homepage": "https://medoo.in", + "keywords": [ + "database", + "database library", + "lightweight", + "mariadb", + "mssql", + "mysql", + "oracle", + "php framework", + "postgresql", + "sql", + "sqlite" + ], + "support": { + "issues": "https://github.com/catfan/Medoo/issues", + "source": "https://github.com/catfan/Medoo" + }, + "funding": [ + { + "url": "https://paypal.me/AngelaonLai", + "type": "custom" + }, + { + "url": "https://opencollective.com/medoo", + "type": "open_collective" + } + ], + "time": "2024-02-03T11:28:59+00:00" + }, + { + "name": "christian-riesen/base32", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/ChristianRiesen/base32.git", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ChristianRiesen/base32/zipball/2e82dab3baa008e24a505649b0d583c31d31e894", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.17", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.5.13 || ^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Base32\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Riesen", + "email": "chris.riesen@gmail.com", + "homepage": "http://christianriesen.com", + "role": "Developer" + } + ], + "description": "Base32 encoder/decoder according to RFC 4648", + "homepage": "https://github.com/ChristianRiesen/base32", + "keywords": [ + "base32", + "decode", + "encode", + "rfc4648" + ], + "support": { + "issues": "https://github.com/ChristianRiesen/base32/issues", + "source": "https://github.com/ChristianRiesen/base32/tree/1.6.0" + }, + "time": "2021-02-26T10:19:33+00:00" + }, + { + "name": "dasprid/enum", + "version": "1.0.6", + "source": { + "type": "git", + "url": "https://github.com/DASPRiD/Enum.git", + "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90", + "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90", + "shasum": "" + }, + "require": { + "php": ">=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.6" + }, + "time": "2024-08-09T14:30:48+00:00" + }, + { + "name": "doctrine/annotations", + "version": "1.14.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915", + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1 || ^2", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "~1.4.10 || ^1.10.28", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7", + "vimeo/psalm": "^4.30 || ^5.14" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.14.4" + }, + "time": "2024-09-05T10:15:52+00:00" + }, + { + "name": "doctrine/cache", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2022-05-20T20:07:39+00:00" + }, + { + "name": "doctrine/dbal", + "version": "2.13.9", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.22.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.9" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-05-02T20:28:55+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" + }, + "time": "2025-04-07T20:06:18+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^0.5.3 || ^1", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2022-10-12T20:51:15+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:15:36+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.2.6", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", + "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2|^2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.2.6" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-06-01T07:04:22+00:00" + }, + { + "name": "enshrined/svg-sanitize", + "version": "0.18.0", + "source": { + "type": "git", + "url": "https://github.com/darylldoyle/svg-sanitizer.git", + "reference": "6a2c069dab3843ca4d887ff09c972fc7033888d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/6a2c069dab3843ca4d887ff09c972fc7033888d0", + "reference": "6a2c069dab3843ca4d887ff09c972fc7033888d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^8.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "enshrined\\svgSanitize\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Daryll Doyle", + "email": "daryll@enshrined.co.uk" + } + ], + "description": "An SVG sanitizer for PHP", + "support": { + "issues": "https://github.com/darylldoyle/svg-sanitizer/issues", + "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.18.0" + }, + "time": "2024-02-22T17:51:05+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2025-03-27T13:37:11+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2025-03-27T13:27:01+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.7.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2025-03-27T12:30:47+00:00" + }, + { + "name": "hermanntelser/zuladungsliste", + "version": "dev-main", + "dist": { + "type": "path", + "url": "packages/zuladungsliste", + "reference": "62e76e2ab05801d0b37db05bd09eaffe0a0b7fb4" + }, + "require": { + "typo3/cms-core": "^11.5" + }, + "replace": { + "typo3-ter/zuladungsliste": "self.version" + }, + "type": "typo3-cms-extension", + "extra": { + "typo3/cms": { + "cms-package-dir": "{$vendor-dir}/typo3/cms", + "web-dir": ".Build/public", + "extension-key": "zuladungsliste" + } + }, + "autoload": { + "psr-4": { + "HermannTelser\\Zuladungsliste\\": "Classes" + } + }, + "scripts": { + "post-autoload-dump": [ + "TYPO3\\TestingFramework\\Composer\\ExtensionTestEnvironment::prepare" + ] + }, + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Hermann Telser", + "email": "hermann.telser@gmail.com", + "role": "Developer" + } + ], + "description": "Programm zur Verwaltung Zuladungsliste für die Architektenkammer in Österrreich", + "transport-options": { + "relative": true + } + }, + { + "name": "in2code/femanager", + "version": "7.5.3", + "source": { + "type": "git", + "url": "https://github.com/in2code-de/femanager.git", + "reference": "fabec8bea13a2dd327b2c1a043a1f98006be083c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/in2code-de/femanager/zipball/fabec8bea13a2dd327b2c1a043a1f98006be083c", + "reference": "fabec8bea13a2dd327b2c1a043a1f98006be083c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pdo": "*", + "php": "^7.4 || ^8.0", + "symfony/config": "^5.4", + "typo3/cms-core": "^11.5" + }, + "replace": { + "typo3-ter/femanager": "self.version" + }, + "require-dev": { + "behat/behat": "^3.8", + "behat/mink-selenium2-driver": "^1.5", + "drevops/behat-screenshot": "^1.1", + "friends-of-behat/mink-browserkit-driver": "^1.6", + "friends-of-behat/mink-extension": "^2.6", + "friendsofphp/php-cs-fixer": "^3.2", + "genesis/behat-fail-aid": "^3.7", + "helhum/typo3-console": "^7.0", + "helmich/typo3-typoscript-lint": "^2.5", + "mikey179/vfsstream": "^1.6", + "nimut/testing-framework": "6.x-dev", + "phpmd/phpmd": "^2.10", + "phpunit/phpunit": "^9.5", + "se/selenium-server-standalone": "^3.141", + "sjbr/static-info-tables": "^11.5", + "squizlabs/php_codesniffer": "^3.6", + "ssch/typo3-rector": "^1.1", + "typo3/cms-adminpanel": "^11.5", + "typo3/cms-belog": "^11.5", + "typo3/cms-beuser": "^11.5", + "typo3/cms-dashboard": "^11.5", + "typo3/cms-extbase": "^11.5", + "typo3/cms-extensionmanager": "^11.5", + "typo3/cms-felogin": "^11.5", + "typo3/cms-filelist": "^11.5", + "typo3/cms-fluid-styled-content": "^11.5", + "typo3/cms-frontend": "^11.5", + "typo3/cms-impexp": "^11.5", + "typo3/cms-info": "^11.5", + "typo3/cms-install": "^11.5", + "typo3/cms-lowlevel": "^11.5", + "typo3/cms-recordlist": "^11.5", + "typo3/cms-rte-ckeditor": "^11.5", + "typo3/cms-scheduler": "^11.5", + "typo3/cms-setup": "^11.5", + "typo3/cms-t3editor": "^11.5", + "typo3/cms-tstemplate": "^11.5", + "typo3/coding-standards": "^v0.4.0" + }, + "type": "typo3-cms-extension", + "extra": { + "typo3/cms": { + "web-dir": ".Build/Web", + "extension-key": "femanager", + "cms-package-dir": "{$vendor-dir}/typo3/cms" + } + }, + "autoload": { + "psr-4": { + "In2code\\Femanager\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Alex Kellner", + "email": "alexander.kellner@in2code.de" + }, + { + "name": "Stefan Busemann", + "email": "stefan.busemann@in2code.de" + } + ], + "description": "Modern TYPO3 Frontend User Registration.", + "homepage": "https://github.com/in2code-de/femanager", + "keywords": [ + "fe_users", + "form", + "frontend", + "profile", + "registration", + "sr_feuser_register", + "typo3" + ], + "support": { + "issues": "https://github.com/in2code-de/femanager/issues", + "source": "https://github.com/in2code-de/femanager/tree/7.5.3" + }, + "time": "2025-07-22T08:42:20+00:00" + }, + { + "name": "lolli42/finediff", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/lolli42/FineDiff.git", + "reference": "807deaf7aa119cf47b58e90ba7bf37c8c8264c7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lolli42/FineDiff/zipball/807deaf7aa119cf47b58e90ba7bf37c8c8264c7a", + "reference": "807deaf7aa119cf47b58e90ba7bf37c8c8264c7a", + "shasum": "" + }, + "require": { + "php": ">=7.2.0", + "symfony/polyfill-mbstring": "^1.23" + }, + "replace": { + "cogpowered/finediff": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.4", + "phpstan/phpstan": "^1.9.14", + "phpunit/phpunit": "^8.5.33 || ^9.6.11 || ^10.3.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "cogpowered\\FineDiff\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raymond Hill" + }, + { + "name": "Rob Crowe", + "email": "rob@cogpowered.com" + }, + { + "name": "Christian Kuhn", + "email": "lolli@schwarzbu.ch", + "role": "maintainer" + } + ], + "description": "PHP implementation of a Fine granularity Diff engine", + "homepage": "https://github.com/lolli42/FineDiff", + "keywords": [ + "diff", + "finediff", + "opcode", + "string", + "text" + ], + "support": { + "issues": "https://github.com/lolli42/FineDiff/issues", + "source": "https://github.com/lolli42/FineDiff/tree/1.0.4" + }, + "time": "2024-07-09T14:52:10+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "fcf91eb64359852f00d921887b219479b4f21251" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", + "reference": "fcf91eb64359852f00d921887b219479b4f21251", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + }, + "time": "2025-07-25T09:04:22+00:00" + }, + { + "name": "mpdf/mpdf", + "version": "v8.2.5", + "source": { + "type": "git", + "url": "https://github.com/mpdf/mpdf.git", + "reference": "e175b05e3e00977b85feb96a8cccb174ac63621f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/e175b05e3e00977b85feb96a8cccb174ac63621f", + "reference": "e175b05e3e00977b85feb96a8cccb174ac63621f", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "ext-mbstring": "*", + "mpdf/psr-http-message-shim": "^1.0 || ^2.0", + "mpdf/psr-log-aware-trait": "^2.0 || ^3.0", + "myclabs/deep-copy": "^1.7", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "setasign/fpdi": "^2.1" + }, + "require-dev": { + "mockery/mockery": "^1.3.0", + "mpdf/qrcode": "^1.1.0", + "squizlabs/php_codesniffer": "^3.5.0", + "tracy/tracy": "~2.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-bcmath": "Needed for generation of some types of barcodes", + "ext-xml": "Needed mainly for SVG manipulation", + "ext-zlib": "Needed for compression of embedded resources, such as fonts" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Mpdf\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-only" + ], + "authors": [ + { + "name": "Matěj Humpál", + "role": "Developer, maintainer" + }, + { + "name": "Ian Back", + "role": "Developer (retired)" + } + ], + "description": "PHP library generating PDF files from UTF-8 encoded HTML", + "homepage": "https://mpdf.github.io", + "keywords": [ + "pdf", + "php", + "utf-8" + ], + "support": { + "docs": "https://mpdf.github.io", + "issues": "https://github.com/mpdf/mpdf/issues", + "source": "https://github.com/mpdf/mpdf" + }, + "funding": [ + { + "url": "https://www.paypal.me/mpdf", + "type": "custom" + } + ], + "time": "2024-11-18T15:30:42+00:00" + }, + { + "name": "mpdf/psr-http-message-shim", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/mpdf/psr-http-message-shim.git", + "reference": "3206e6b80b6d2479e148ee497e9f2bebadc919db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/psr-http-message-shim/zipball/3206e6b80b6d2479e148ee497e9f2bebadc919db", + "reference": "3206e6b80b6d2479e148ee497e9f2bebadc919db", + "shasum": "" + }, + "require": { + "psr/http-message": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Mpdf\\PsrHttpMessageShim\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Dorison", + "email": "mark@chromatichq.com" + }, + { + "name": "Kristofer Widholm", + "email": "kristofer@chromatichq.com" + }, + { + "name": "Nigel Cunningham", + "email": "nigel.cunningham@technocrat.com.au" + } + ], + "description": "Shim to allow support of different psr/message versions.", + "support": { + "issues": "https://github.com/mpdf/psr-http-message-shim/issues", + "source": "https://github.com/mpdf/psr-http-message-shim/tree/1.0.0" + }, + "time": "2023-09-01T05:59:47+00:00" + }, + { + "name": "mpdf/psr-log-aware-trait", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/mpdf/psr-log-aware-trait.git", + "reference": "7a077416e8f39eb626dee4246e0af99dd9ace275" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/psr-log-aware-trait/zipball/7a077416e8f39eb626dee4246e0af99dd9ace275", + "reference": "7a077416e8f39eb626dee4246e0af99dd9ace275", + "shasum": "" + }, + "require": { + "psr/log": "^1.0 || ^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Mpdf\\PsrLogAwareTrait\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Dorison", + "email": "mark@chromatichq.com" + }, + { + "name": "Kristofer Widholm", + "email": "kristofer@chromatichq.com" + } + ], + "description": "Trait to allow support of different psr/log versions.", + "support": { + "issues": "https://github.com/mpdf/psr-log-aware-trait/issues", + "source": "https://github.com/mpdf/psr-log-aware-trait/tree/v2.0.0" + }, + "time": "2023-05-03T06:18:28+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.13.4", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "neitanod/forceutf8", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/neitanod/forceutf8.git", + "reference": "c1fbe70bfb5ad41b8ec5785056b0e308b40d4831" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/neitanod/forceutf8/zipball/c1fbe70bfb5ad41b8ec5785056b0e308b40d4831", + "reference": "c1fbe70bfb5ad41b8ec5785056b0e308b40d4831", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ForceUTF8\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastián Grignoli", + "email": "grignoli@gmail.com" + } + ], + "description": "PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings.", + "homepage": "https://github.com/neitanod/forceutf8", + "support": { + "issues": "https://github.com/neitanod/forceutf8/issues", + "source": "https://github.com/neitanod/forceutf8/tree/master" + }, + "time": "2019-12-10T14:09:14+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.19.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.1" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" + }, + "time": "2024-09-29T15:01:53+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62", + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2" + }, + "time": "2025-04-13T19:20:35+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + }, + "time": "2024-11-09T15:12:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.33.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + }, + "time": "2024-10-13T11:25:22+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2" + }, + "time": "2023-04-10T20:06:20+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2" + }, + "time": "2023-04-11T06:14:47+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "scssphp/scssphp", + "version": "v1.13.0", + "source": { + "type": "git", + "url": "https://github.com/scssphp/scssphp.git", + "reference": "63d1157457e5554edf00b0c1fabab4c1511d2520" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/scssphp/scssphp/zipball/63d1157457e5554edf00b0c1fabab4c1511d2520", + "reference": "63d1157457e5554edf00b0c1fabab4c1511d2520", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4", + "sass/sass-spec": "*", + "squizlabs/php_codesniffer": "~3.5", + "symfony/phpunit-bridge": "^5.1", + "thoughtbot/bourbon": "^7.0", + "twbs/bootstrap": "~5.0", + "twbs/bootstrap4": "4.6.1", + "zurb/foundation": "~6.7.0" + }, + "suggest": { + "ext-iconv": "Can be used as fallback when ext-mbstring is not available", + "ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv" + }, + "bin": [ + "bin/pscss" + ], + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "ScssPhp\\ScssPhp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "homepage": "https://github.com/robocoder" + }, + { + "name": "Cédric Morin", + "email": "cedric@yterium.com", + "homepage": "https://github.com/Cerdic" + } + ], + "description": "scssphp is a compiler for SCSS written in PHP.", + "homepage": "http://scssphp.github.io/scssphp/", + "keywords": [ + "css", + "less", + "sass", + "scss", + "stylesheet" + ], + "support": { + "issues": "https://github.com/scssphp/scssphp/issues", + "source": "https://github.com/scssphp/scssphp/tree/v1.13.0" + }, + "time": "2024-08-17T21:02:11+00:00" + }, + { + "name": "setasign/fpdi", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/Setasign/FPDI.git", + "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/67c31f5e50c93c20579ca9e23035d8c540b51941", + "reference": "67c31f5e50c93c20579ca9e23035d8c540b51941", + "shasum": "" + }, + "require": { + "ext-zlib": "*", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "setasign/tfpdf": "<1.31" + }, + "require-dev": { + "phpunit/phpunit": "^7", + "setasign/fpdf": "~1.8.6", + "setasign/tfpdf": "~1.33", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "^6.2" + }, + "suggest": { + "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." + }, + "type": "library", + "autoload": { + "psr-4": { + "setasign\\Fpdi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Slabon", + "email": "jan.slabon@setasign.com", + "homepage": "https://www.setasign.com" + }, + { + "name": "Maximilian Kresse", + "email": "maximilian.kresse@setasign.com", + "homepage": "https://www.setasign.com" + } + ], + "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", + "homepage": "https://www.setasign.com/fpdi", + "keywords": [ + "fpdf", + "fpdi", + "pdf" + ], + "support": { + "issues": "https://github.com/Setasign/FPDI/issues", + "source": "https://github.com/Setasign/FPDI/tree/v2.6.3" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", + "type": "tidelift" + } + ], + "time": "2025-02-05T13:22:35+00:00" + }, + { + "name": "sjbr/sr-freecap", + "version": "v11.5.5", + "source": { + "type": "git", + "url": "https://codeberg.org/sjbr/sr-freecap", + "reference": "24c99c76e5a508c6936c21524749466b01054f1d" + }, + "require": { + "typo3/cms-core": "^11.5" + }, + "replace": { + "typo3-ter/sr-freecap": "self.version" + }, + "type": "typo3-cms-extension", + "extra": { + "typo3/cms": { + "extension-key": "sr_freecap" + } + }, + "autoload": { + "psr-4": { + "SJBR\\SrFreecap\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Stanislas Rolland", + "homepage": "https://www.sjbr.ca", + "role": "Developer" + } + ], + "description": "A TYPO3 integration of freeCap CAPTCHA.", + "homepage": "https://codeberg.org/sjbr/sr-freecap", + "keywords": [ + "captcha", + "typo3" + ], + "support": { + "issues": "https://codeberg.org/sjbr/sr-freecap/issues" + }, + "time": "2023-06-19T20:27:30+00:00" + }, + { + "name": "symfony/cache", + "version": "v5.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/0fe08ee32cec2748fbfea10c52d3ee02049e0f6b", + "reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-04T11:43:55+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "517c3a3619dadfa6952c4651767fcadffb4df65e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/517c3a3619dadfa6952c4651767fcadffb4df65e", + "reference": "517c3a3619dadfa6952c4651767fcadffb4df65e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/config", + "version": "v5.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "977c88a02d7d3f16904a81907531b19666a08e78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/977c88a02d7d3f16904a81907531b19666a08e78", + "reference": "977c88a02d7d3f16904a81907531b19666a08e78", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-30T07:58:02+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-06T11:30:55+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v5.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4.26|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-20T10:51:57+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918", + "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9", + "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.5.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", + "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/expression-language", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/expression-language.git", + "reference": "a784b66edc4c151eb05076d04707906ee2c209a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/a784b66edc4c151eb05076d04707906ee2c209a9", + "reference": "a784b66edc4c151eb05076d04707906ee2c209a9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an engine that can compile and evaluate expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/expression-language/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-04T14:55:40+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "57c8294ed37d4a055b77057827c67f9558c95c54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/57c8294ed37d4a055b77057827c67f9558c95c54", + "reference": "57c8294ed37d4a055b77057827c67f9558c95c54", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/process": "^5.4|^6.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-22T13:05:35+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "63741784cd7b9967975eec610b256eed3ede022b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b", + "reference": "63741784cd7b9967975eec610b256eed3ede022b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-28T13:32:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "3f38b8af283b830e1363acd79e5bc3412d055341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f38b8af283b830e1363acd79e5bc3412d055341", + "reference": "3f38b8af283b830e1363acd79e5bc3412d055341", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "^1.0|^2.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-13T18:58:02+00:00" + }, + { + "name": "symfony/lock", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/lock.git", + "reference": "f85ebc5346a2f0e4f9e347e9154922a6d4665c65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/lock/zipball/f85ebc5346a2f0e4f9e347e9154922a6d4665c65", + "reference": "f85ebc5346a2f0e4f9e347e9154922a6d4665c65", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/dbal": "<2.13" + }, + "require-dev": { + "doctrine/dbal": "^2.13|^3|^4", + "predis/predis": "^1.0|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Lock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Derussé", + "email": "jeremy@derusse.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", + "homepage": "https://symfony.com", + "keywords": [ + "cas", + "flock", + "locking", + "mutex", + "redlock", + "semaphore" + ], + "support": { + "source": "https://github.com/symfony/lock/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-21T20:36:41+00:00" + }, + { + "name": "symfony/mailer", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/f732e1fafdf0f4a2d865e91f1018aaca174aeed9", + "reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=7.2.5", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2.6|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<4.4" + }, + "require-dev": { + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/8c1b9b3e5b52981551fc6044539af1d974e39064", + "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.4", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-23T20:18:32+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6", + "reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-21T18:38:29+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-10T14:38:51+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-01-02T08:10:11+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/property-access", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "111e7ed617509f1a9139686055d234aad6e388e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/111e7ed617509f1a9139686055d234aad6e388e0", + "reference": "111e7ed617509f1a9139686055d234aad6e388e0", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/property-info": "^5.2|^6.0" + }, + "require-dev": { + "symfony/cache": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property-path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/property-info", + "version": "v5.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "a0396295ad585f95fccd690bc6a281e5bd303902" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/a0396295ad585f95fccd690bc6a281e5bd303902", + "reference": "a0396295ad585f95fccd690bc6a281e5bd303902", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "suggest": { + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts information about PHP class' properties using metadata of popular sources", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "support": { + "source": "https://github.com/symfony/property-info/tree/v5.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-25T16:14:41+00:00" + }, + { + "name": "symfony/rate-limiter", + "version": "v5.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/rate-limiter.git", + "reference": "c902bf796ca6c9656c3cc8185b53afb9acbb7c72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/c902bf796ca6c9656c3cc8185b53afb9acbb7c72", + "reference": "c902bf796ca6c9656c3cc8185b53afb9acbb7c72", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/lock": "^5.2|^6.0", + "symfony/options-resolver": "^5.1|^6.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\RateLimiter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Wouter de Jong", + "email": "wouter@wouterj.nl" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a Token Bucket implementation to rate limit input and output in your application", + "homepage": "https://symfony.com", + "keywords": [ + "limiter", + "rate-limiter" + ], + "support": { + "source": "https://github.com/symfony/rate-limiter/tree/v5.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-07T11:51:21+00:00" + }, + { + "name": "symfony/routing", + "version": "v5.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "dd08c19879a9b37ff14fd30dcbdf99a4cf045db1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/dd08c19879a9b37ff14fd30dcbdf99a4cf045db1", + "reference": "dd08c19879a9b37ff14fd30dcbdf99a4cf045db1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v5.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-12T18:20:21+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f37b419f7aea2e9abf10abd261832cace12e3300" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300", + "reference": "f37b419f7aea2e9abf10abd261832cace12e3300", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/string", + "version": "v5.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "136ca7d72f72b599f2631aca474a4f8e26719799" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/136ca7d72f72b599f2631aca474a4f8e26719799", + "reference": "136ca7d72f72b599f2631aca474a4f8e26719799", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-10T20:33:58+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8", + "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-08T15:21:10+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "862700068db0ddfd8c5b850671e029a90246ec75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/862700068db0ddfd8c5b850671e029a90246ec75", + "reference": "862700068db0ddfd8c5b850671e029a90246ec75", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "a454d47278cc16a5db371fe73ae66a78a633371e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a454d47278cc16a5db371fe73ae66a78a633371e", + "reference": "a454d47278cc16a5db371fe73ae66a78a633371e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.3" + }, + "require-dev": { + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:11:13+00:00" + }, + { + "name": "typo3/class-alias-loader", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/class-alias-loader.git", + "reference": "cf2aebabe1886474da7194e1531900039263b3e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/class-alias-loader/zipball/cf2aebabe1886474da7194e1531900039263b3e0", + "reference": "cf2aebabe1886474da7194e1531900039263b3e0", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=7.1" + }, + "replace": { + "helhum/class-alias-loader": "*" + }, + "require-dev": { + "composer/composer": "^1.1@dev || ^2.0@dev", + "mikey179/vfsstream": "~1.4.0@dev", + "phpunit/phpunit": ">4.8 <9" + }, + "type": "composer-plugin", + "extra": { + "class": "TYPO3\\ClassAliasLoader\\Plugin", + "branch-alias": { + "dev-main": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\ClassAliasLoader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Helmut Hummel", + "email": "info@helhum.io" + } + ], + "description": "Amends the composer class loader to support class aliases to provide backwards compatibility for packages", + "homepage": "http://github.com/TYPO3/class-alias-loader", + "keywords": [ + "alias", + "autoloader", + "classloader", + "composer" + ], + "support": { + "issues": "https://github.com/TYPO3/class-alias-loader/issues", + "source": "https://github.com/TYPO3/class-alias-loader/tree/v1.2.0" + }, + "time": "2024-10-11T08:11:39+00:00" + }, + { + "name": "typo3/cms-adminpanel", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/adminpanel.git", + "reference": "b32d946dd41e10fb0e5e2ae76fff5447563bcf61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/adminpanel/zipball/b32d946dd41e10fb0e5e2ae76fff5447563bcf61", + "reference": "b32d946dd41e10fb0e5e2ae76fff5447563bcf61", + "shasum": "" + }, + "require": { + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "symfony/var-dumper": "^5.4", + "typo3/cms-backend": "11.5.41", + "typo3/cms-core": "11.5.41", + "typo3/cms-fluid": "11.5.41", + "typo3/cms-frontend": "11.5.41", + "typo3fluid/fluid": "^2.7.2" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "adminpanel" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Adminpanel\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The TYPO3 admin panel provides a panel with additional functionality in the frontend (Debugging, Caching, Preview...)", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-adminpanel/11.5/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-backend", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/backend.git", + "reference": "3731452fa07b013cf96b67b3a826a3403a8f2968" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/backend/zipball/3731452fa07b013cf96b67b3a826a3403a8f2968", + "reference": "3731452fa07b013cf96b67b3a826a3403a8f2968", + "shasum": "" + }, + "require": { + "psr/event-dispatcher": "^1.0", + "typo3/cms-core": "11.5.41", + "typo3/cms-recordlist": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "replace": { + "typo3/cms-about": "self.version", + "typo3/cms-context-help": "self.version", + "typo3/cms-cshmanual": "self.version", + "typo3/cms-func-wizards": "self.version", + "typo3/cms-wizard-crpages": "self.version", + "typo3/cms-wizard-sortpages": "self.version" + }, + "suggest": { + "typo3/cms-install": "To generate url to install tool in environment toolbar" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Backend\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "backend" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Backend\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Classes for the TYPO3 backend.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-belog", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/belog.git", + "reference": "659f1d607aeba5542158396dabbaa3a1c76f0775" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/belog/zipball/659f1d607aeba5542158396dabbaa3a1c76f0775", + "reference": "659f1d607aeba5542158396dabbaa3a1c76f0775", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "belog" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Belog\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Displays backend log, both per page and system wide. Available as the module Tools>Log (system wide overview) and Web>Info/Log (page relative overview).", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-beuser", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/beuser.git", + "reference": "0ed0db0d285bf447f278ec1b1dfbb2f23878154a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/beuser/zipball/0ed0db0d285bf447f278ec1b1dfbb2f23878154a", + "reference": "0ed0db0d285bf447f278ec1b1dfbb2f23878154a", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "beuser" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Beuser\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Backend user administration and overview. Allows you to compare the settings of users and verify their permissions and see who is online.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-cli", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/cms-cli.git", + "reference": "e7ad171e5abf790db17296d33268e1a620452558" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/cms-cli/zipball/e7ad171e5abf790db17296d33268e1a620452558", + "reference": "e7ad171e5abf790db17296d33268e1a620452558", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "conflict": { + "phpstan/phpdoc-parser": "<1.0 || >=2.0" + }, + "bin": [ + "typo3" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "TYPO3 command line binary", + "homepage": "https://typo3.org", + "support": { + "issues": "https://github.com/TYPO3/cms-cli/issues", + "source": "https://github.com/TYPO3/cms-cli/tree/3.1.2" + }, + "time": "2024-11-13T12:02:24+00:00" + }, + { + "name": "typo3/cms-composer-installers", + "version": "v3.1.4", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/CmsComposerInstallers.git", + "reference": "29fb214976fe05f39c7d0619ce1d648d59c50a08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/CmsComposerInstallers/zipball/29fb214976fe05f39c7d0619ce1d648d59c50a08", + "reference": "29fb214976fe05f39c7d0619ce1d648d59c50a08", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0 || ^2.0.0", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "composer/installers": "<2.0.0" + }, + "replace": { + "lw/typo3cms-installers": "*", + "netresearch/composer-installers": "*" + }, + "require-dev": { + "composer/composer": "1.2.*@dev || 2.0.*@dev", + "friendsofphp/php-cs-fixer": "^2.18", + "overtrue/phplint": "^2.0", + "phpunit/phpunit": "^8.5" + }, + "type": "composer-plugin", + "extra": { + "class": "TYPO3\\CMS\\Composer\\Installer\\Plugin", + "branch-alias": { + "dev-main": "3.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 CMS Core Team", + "homepage": "https://forge.typo3.org/projects/typo3cms-core", + "role": "Developer" + }, + { + "name": "The TYPO3 Community", + "homepage": "https://typo3.org/community/", + "role": "Contributor" + } + ], + "description": "TYPO3 CMS Installers", + "homepage": "https://github.com/TYPO3/CmsComposerInstallers", + "keywords": [ + "cms", + "core", + "extension", + "installer", + "typo3" + ], + "support": { + "general": "https://typo3.org/support/", + "issues": "https://github.com/TYPO3/CmsComposerInstallers/issues", + "source": "https://github.com/TYPO3/CmsComposerInstallers/tree/v3.1.4" + }, + "time": "2024-08-13T14:56:37+00:00" + }, + { + "name": "typo3/cms-core", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/core.git", + "reference": "1249ec68101f20fd3d5b2e51366da0c005930a12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/core/zipball/1249ec68101f20fd3d5b2e51366da0c005930a12", + "reference": "1249ec68101f20fd3d5b2e51366da0c005930a12", + "shasum": "" + }, + "require": { + "bacon/bacon-qr-code": "^2.0.4", + "christian-riesen/base32": "^1.6", + "composer-runtime-api": "^2.1", + "doctrine/annotations": "^1.11", + "doctrine/dbal": "^2.13.8", + "doctrine/event-manager": "^1.0.0", + "doctrine/instantiator": "^1.4", + "doctrine/lexer": "^1.2.3", + "egulias/email-validator": "^3.2.1", + "enshrined/svg-sanitize": "^0.18.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-pcre": "*", + "ext-pdo": "*", + "ext-session": "*", + "ext-xml": "*", + "guzzlehttp/guzzle": "^7.7.0", + "guzzlehttp/psr7": "^2.4.3", + "lolli42/finediff": "^1.0.1", + "masterminds/html5": "^2.7.6", + "nikic/php-parser": "^4.13.2", + "php": "^7.4 || ^8.0", + "psr/container": "^1.1 || ^2.0", + "psr/event-dispatcher": "^1.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.0", + "symfony/config": "^5.4", + "symfony/console": "^5.4", + "symfony/dependency-injection": "^5.4", + "symfony/event-dispatcher-contracts": "^1.1 || ^2.0", + "symfony/expression-language": "^5.4", + "symfony/filesystem": "^5.4", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "symfony/mailer": "^5.4", + "symfony/mime": "^5.4", + "symfony/options-resolver": "^5.4", + "symfony/polyfill-intl-icu": "^1.23.0", + "symfony/polyfill-intl-idn": "^1.23.0", + "symfony/polyfill-intl-normalizer": "^1.27", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1", + "symfony/polyfill-php81": "^1.23", + "symfony/polyfill-php83": "^1.31", + "symfony/rate-limiter": "^5.4.8", + "symfony/routing": "^5.4", + "symfony/yaml": "^5.4", + "typo3/class-alias-loader": "^1.1.4", + "typo3/cms-cli": "^3.1", + "typo3/cms-composer-installers": "^2.0 || ^3.0 || ^4.0", + "typo3/html-sanitizer": "^2.1.4", + "typo3/phar-stream-wrapper": "^3.1.7", + "typo3/symfony-psr-event-dispatcher-adapter": "^1.0 || ^2.0", + "typo3fluid/fluid": "^2.7.2" + }, + "conflict": { + "hoa/core": "*", + "typo3/cms": "*" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "replace": { + "typo3/cms-lang": "self.version", + "typo3/cms-saltedpasswords": "self.version", + "typo3/cms-sv": "self.version" + }, + "suggest": { + "ext-fileinfo": "Used for proper file type detection in the file abstraction layer", + "ext-gd": "GDlib/Freetype is required for building images with text (GIFBUILDER) and can also be used to scale images", + "ext-intl": "TYPO3 with unicode-based filesystems", + "ext-mysqli": "", + "ext-openssl": "OpenSSL is required for sending SMTP mails over an encrypted channel endpoint", + "ext-zip": "", + "ext-zlib": "TYPO3 uses zlib for amongst others output compression and un/packing t3x extension files" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Core\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "core" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "files": [ + "Resources/PHP/GlobalDebugFunctions.php" + ], + "psr-4": { + "TYPO3\\CMS\\Core\\": "Classes/" + }, + "classmap": [ + "Resources/PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The core library of TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-dashboard", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/dashboard.git", + "reference": "9cbf64d358f6b380f588b86f536c827a97970ae5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/dashboard/zipball/9cbf64d358f6b380f588b86f536c827a97970ae5", + "reference": "9cbf64d358f6b380f588b86f536c827a97970ae5", + "shasum": "" + }, + "require": { + "typo3/cms-backend": "11.5.41", + "typo3/cms-core": "11.5.41", + "typo3/cms-extbase": "11.5.41", + "typo3/cms-fluid": "11.5.41", + "typo3/cms-frontend": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "serviceProvider": "TYPO3\\CMS\\Dashboard\\ServiceProvider", + "partOfFactoryDefault": true + }, + "extension-key": "dashboard" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Dashboard\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Dashboard for TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-dashboard/11.5/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-extbase", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/extbase.git", + "reference": "373a6115683261da595f9191bff88c90e962e523" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/extbase/zipball/373a6115683261da595f9191bff88c90e962e523", + "reference": "373a6115683261da595f9191bff88c90e962e523", + "shasum": "" + }, + "require": { + "phpdocumentor/reflection-docblock": "^5.2", + "phpdocumentor/type-resolver": "^1.4", + "symfony/dependency-injection": "^5.4", + "symfony/property-access": "^5.4", + "symfony/property-info": "^5.4", + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-scheduler": "Additional scheduler tasks" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Extbase\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "extbase" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Extbase\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "A framework to build extensions for TYPO3 CMS.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-extensionmanager", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/extensionmanager.git", + "reference": "52045f9740341b39d6b21c408b81e2dbf0c3a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/extensionmanager/zipball/52045f9740341b39d6b21c408b81e2dbf0c3a163", + "reference": "52045f9740341b39d6b21c408b81e2dbf0c3a163", + "shasum": "" + }, + "require": { + "ext-libxml": "*", + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "extensionmanager" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Extensionmanager\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "TYPO3 Extension Manager", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-felogin", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/felogin.git", + "reference": "c2d3896f00b2b8927ece41d54046298967f8e83f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/felogin/zipball/c2d3896f00b2b8927ece41d54046298967f8e83f", + "reference": "c2d3896f00b2b8927ece41d54046298967f8e83f", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "felogin" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\FrontendLogin\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "A template-based plugin to log in Website Users in the Frontend", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-felogin/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-filelist", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/filelist.git", + "reference": "9904c03ff1aabb2eec7c8795364560904f4490ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/filelist/zipball/9904c03ff1aabb2eec7c8795364560904f4490ea", + "reference": "9904c03ff1aabb2eec7c8795364560904f4490ea", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "filelist" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Filelist\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Listing of files in the directory", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-fluid", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/fluid.git", + "reference": "94e30bbf5a2476fdf5881b11b795849c41393292" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/fluid/zipball/94e30bbf5a2476fdf5881b11b795849c41393292", + "reference": "94e30bbf5a2476fdf5881b11b795849c41393292", + "shasum": "" + }, + "require": { + "symfony/dependency-injection": "^5.4", + "typo3/cms-core": "11.5.41", + "typo3/cms-extbase": "11.5.41", + "typo3fluid/fluid": "^2.7.2" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Fluid\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "fluid" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Fluid\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Fluid is a next-generation templating engine which makes the life of extension authors a lot easier!", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/other/typo3/view-helper-reference/main/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-fluid-styled-content", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/fluid_styled_content.git", + "reference": "1e12ebe6739032dd7705b8a109a246023714b31f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/fluid_styled_content/zipball/1e12ebe6739032dd7705b8a109a246023714b31f", + "reference": "1e12ebe6739032dd7705b8a109a246023714b31f", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41", + "typo3/cms-fluid": "11.5.41", + "typo3/cms-frontend": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "fluid_styled_content" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\FluidStyledContent\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "A set of common content elements based on Fluid for Frontend output.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-fluid-styled-content/main/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-form", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/form.git", + "reference": "396587e413fba68b1665d4a4e430f9a0284b2922" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/form/zipball/396587e413fba68b1665d4a4e430f9a0284b2922", + "reference": "396587e413fba68b1665d4a4e430f9a0284b2922", + "shasum": "" + }, + "require": { + "psr/http-message": "^1.0", + "symfony/expression-language": "^5.4", + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-filelist": "Listing of files in the directory", + "typo3/cms-impexp": "Import and Export of records from TYPO3 in a custom serialized format (.T3D) for data exchange with other TYPO3 systems." + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "form" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Form\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Form Library, Plugin and Editor", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-form/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-frontend", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/frontend.git", + "reference": "6a812823d392fcab40144121db357b61929b2e31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/frontend/zipball/6a812823d392fcab40144121db357b61929b2e31", + "reference": "6a812823d392fcab40144121db357b61929b2e31", + "shasum": "" + }, + "require": { + "ext-libxml": "*", + "symfony/polyfill-mbstring": "^1.23.1", + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-adminpanel": "Provides additional information and functionality for backend users in the frontend." + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Frontend\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "frontend" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Frontend\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Classes for the frontend of TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-impexp", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/impexp.git", + "reference": "0271b272993c8d845566b09280dd4c547b3686ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/impexp/zipball/0271b272993c8d845566b09280dd4c547b3686ff", + "reference": "0271b272993c8d845566b09280dd4c547b3686ff", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "impexp" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Impexp\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Import and Export of records from TYPO3 in a custom serialized format (.T3D) for data exchange with other TYPO3 systems.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-impexp/11.5/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-info", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/info.git", + "reference": "d08d9992f0ff75b9bb61742d21d87e25eb54a66b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/info/zipball/d08d9992f0ff75b9bb61742d21d87e25eb54a66b", + "reference": "d08d9992f0ff75b9bb61742d21d87e25eb54a66b", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "replace": { + "typo3/cms-info-pagetsconfig": "self.version" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "info" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Info\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Shows various infos", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-install", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/install.git", + "reference": "7364ae581b33e535b508155dc753ea3bba5a3a7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/install/zipball/7364ae581b33e535b508155dc753ea3bba5a3a7d", + "reference": "7364ae581b33e535b508155dc753ea3bba5a3a7d", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.13.8", + "guzzlehttp/promises": "^1.5.2 || ^2.0", + "nikic/php-parser": "^4.13.2", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "typo3/cms-core": "11.5.41", + "typo3/cms-extbase": "11.5.41", + "typo3/cms-fluid": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "serviceProvider": "TYPO3\\CMS\\Install\\ServiceProvider", + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "install" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Install\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The Install Tool mounted as the module Tools>Install in TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-lowlevel", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/lowlevel.git", + "reference": "20ff5881a8f8e865079c05fe3790f8abe00487ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/lowlevel/zipball/20ff5881a8f8e865079c05fe3790f8abe00487ed", + "reference": "20ff5881a8f8e865079c05fe3790f8abe00487ed", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "serviceProvider": "TYPO3\\CMS\\Lowlevel\\ServiceProvider", + "partOfFactoryDefault": true + }, + "extension-key": "lowlevel" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Lowlevel\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Enables the 'Config' and 'DB Check' modules for technical analysis of the system. This includes raw database search, checking relations, counting pages and records etc.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-opendocs", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/opendocs.git", + "reference": "3f5d7a2012488a5995fae94e8397e3832df9d94f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/opendocs/zipball/3f5d7a2012488a5995fae94e8397e3832df9d94f", + "reference": "3f5d7a2012488a5995fae94e8397e3832df9d94f", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "extension-key": "opendocs" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Opendocs\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Shows opened documents by the user.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-recordlist", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/recordlist.git", + "reference": "71bd2e22e196e96a93f6c0213de755e0af6d3cb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/recordlist/zipball/71bd2e22e196e96a93f6c0213de755e0af6d3cb8", + "reference": "71bd2e22e196e96a93f6c0213de755e0af6d3cb8", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "protected": true, + "partOfFactoryDefault": true, + "partOfMinimalUsableSystem": true + }, + "extension-key": "recordlist" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Recordlist\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "List of database-records", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-recycler", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/recycler.git", + "reference": "b649b293a82ec151dbfa4ccb561a88abd57a1923" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/recycler/zipball/b649b293a82ec151dbfa4ccb561a88abd57a1923", + "reference": "b649b293a82ec151dbfa4ccb561a88abd57a1923", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-scheduler": "Remove deleted records after given time" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "extension-key": "recycler" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Recycler\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The recycler offers the possibility to restore deleted records or remove them from the database permanently. These actions can be applied to a single record, multiple records, and recursively to child records (ex. restoring a page can restore all content elements on that page). Filtering by page and by table provides a quick overview of deleted records before taking action on them.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-recycler/11.5/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-redirects", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/redirects.git", + "reference": "2b10082a0c3a8fa66a78259c24db5d856650180e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/redirects/zipball/2b10082a0c3a8fa66a78259c24db5d856650180e", + "reference": "2b10082a0c3a8fa66a78259c24db5d856650180e", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.13.8", + "psr/http-message": "^1.0", + "psr/log": "^1.0", + "symfony/console": "^5.4", + "typo3/cms-backend": "11.5.41", + "typo3/cms-core": "11.5.41", + "typo3fluid/fluid": "^2.7.2" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-reports": "Get reports of redirects", + "typo3/cms-scheduler": "Execute commands to update redirect status" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "redirects" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Redirects\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Custom redirects in TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-redirects/11.5/en-us/", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-reports", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/reports.git", + "reference": "67f0a28b4ab7fc272e34d6dcd0f6d4df69efbe39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/reports/zipball/67f0a28b4ab7fc272e34d6dcd0f6d4df69efbe39", + "reference": "67f0a28b4ab7fc272e34d6dcd0f6d4df69efbe39", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-scheduler": "Determine system's status and send it via email" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "reports" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Reports\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The reports module groups several system reports.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-rte-ckeditor", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/rte_ckeditor.git", + "reference": "d9a7cf09be268dccc7d92fd7ff856c851d4d7cba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/rte_ckeditor/zipball/d9a7cf09be268dccc7d92fd7ff856c851d4d7cba", + "reference": "d9a7cf09be268dccc7d92fd7ff856c851d4d7cba", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "suggest": { + "typo3/cms-setup": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "rte_ckeditor" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\RteCKEditor\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Integration of CKEditor as Rich Text Editor.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-rte-ckeditor/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-scheduler", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/scheduler.git", + "reference": "40b5369dea148a8bed3752230bff423aab3a6e01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/scheduler/zipball/40b5369dea148a8bed3752230bff423aab3a6e01", + "reference": "40b5369dea148a8bed3752230bff423aab3a6e01", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "extension-key": "scheduler" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Scheduler\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "The TYPO3 Scheduler lets you register tasks to happen at a specific time", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-scheduler/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-seo", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/seo.git", + "reference": "eb5ca5e7ff4253e9790e706ab97d97f77afd9456" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/seo/zipball/eb5ca5e7ff4253e9790e706ab97d97f77afd9456", + "reference": "eb5ca5e7ff4253e9790e706ab97d97f77afd9456", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41", + "typo3/cms-extbase": "11.5.41", + "typo3/cms-frontend": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "seo" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Seo\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "SEO features for TYPO3.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-seo/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-setup", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/setup.git", + "reference": "e6eb22e70b5fa3ad3dc57956df65b0d51b2ba6c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/setup/zipball/e6eb22e70b5fa3ad3dc57956df65b0d51b2ba6c3", + "reference": "e6eb22e70b5fa3ad3dc57956df65b0d51b2ba6c3", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "setup" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Setup\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Allows users to edit a limited set of options for their user profile, eg. preferred language and their name and email address.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-sys-note", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/sys_note.git", + "reference": "e1bac2277714817a57b1840015d429f79c53f0a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/sys_note/zipball/e1bac2277714817a57b1840015d429f79c53f0a0", + "reference": "e1bac2277714817a57b1840015d429f79c53f0a0", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "sys_note" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\SysNote\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Records with messages which can be placed on any page and contain instructions or other information related to a page or section.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-t3editor", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/t3editor.git", + "reference": "6b3eeeb24f615b5759b2a81b62b5ddf1ca5b16af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/t3editor/zipball/6b3eeeb24f615b5759b2a81b62b5ddf1ca5b16af", + "reference": "6b3eeeb24f615b5759b2a81b62b5ddf1ca5b16af", + "shasum": "" + }, + "require": { + "ext-libxml": "*", + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "t3editor" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\T3editor\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "JavaScript-driven editor with syntax highlighting and code completion. Based on CodeMirror.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org/c/typo3/cms-t3editor/11.5/en-us", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-tstemplate", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/tstemplate.git", + "reference": "f4df4e41499e7965a6758d9b631f87f4c4d7c7bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/tstemplate/zipball/f4df4e41499e7965a6758d9b631f87f4c4d7c7bd", + "reference": "f4df4e41499e7965a6758d9b631f87f4c4d7c7bd", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "tstemplate" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Tstemplate\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Framework for management of TypoScript template records for the CMS frontend.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/cms-viewpage", + "version": "v11.5.41", + "source": { + "type": "git", + "url": "https://github.com/TYPO3-CMS/viewpage.git", + "reference": "b74824c98c8265fdb652651a7f0209a51c42e9d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3-CMS/viewpage/zipball/b74824c98c8265fdb652651a7f0209a51c42e9d9", + "reference": "b74824c98c8265fdb652651a7f0209a51c42e9d9", + "shasum": "" + }, + "require": { + "typo3/cms-core": "11.5.41" + }, + "conflict": { + "typo3/cms": "*" + }, + "type": "typo3-cms-framework", + "extra": { + "typo3/cms": { + "Package": { + "partOfFactoryDefault": true + }, + "extension-key": "viewpage" + }, + "branch-alias": { + "dev-master": "11.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\CMS\\Viewpage\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 Core Team", + "email": "typo3cms@typo3.org", + "role": "Developer" + } + ], + "description": "Shows the frontend webpage inside the backend frameset.", + "homepage": "https://typo3.org", + "support": { + "chat": "https://typo3.org/help", + "docs": "https://docs.typo3.org", + "issues": "https://forge.typo3.org", + "source": "https://github.com/typo3/typo3" + }, + "time": "2024-10-15T08:52:52+00:00" + }, + { + "name": "typo3/html-sanitizer", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/html-sanitizer.git", + "reference": "c672a2e02925de8eed0dcaeb3a3c90d3642049a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/html-sanitizer/zipball/c672a2e02925de8eed0dcaeb3a3c90d3642049a0", + "reference": "c672a2e02925de8eed0dcaeb3a3c90d3642049a0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "masterminds/html5": "^2.7.6", + "php": "^7.2 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\HtmlSanitizer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Hader", + "email": "oliver@typo3.org" + } + ], + "description": "HTML sanitizer aiming to provide XSS-safe markup based on explicitly allowed tags, attributes and values.", + "support": { + "issues": "https://github.com/TYPO3/html-sanitizer/issues", + "source": "https://github.com/TYPO3/html-sanitizer/tree/v2.2.0" + }, + "time": "2024-07-12T15:52:25+00:00" + }, + { + "name": "typo3/minimal", + "version": "v11.5.0", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/minimal.git", + "reference": "28c3d3b2b0fcd872eb51d8f4c26594284a3eb1fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/minimal/zipball/28c3d3b2b0fcd872eb51d8f4c26594284a3eb1fe", + "reference": "28c3d3b2b0fcd872eb51d8f4c26594284a3eb1fe", + "shasum": "" + }, + "require": { + "typo3/cms-backend": "^11.5", + "typo3/cms-core": "^11.5", + "typo3/cms-extbase": "^11.5", + "typo3/cms-extensionmanager": "^11.5", + "typo3/cms-filelist": "^11.5", + "typo3/cms-fluid": "^11.5", + "typo3/cms-frontend": "^11.5", + "typo3/cms-install": "^11.5", + "typo3/cms-recordlist": "^11.5" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "TYPO3 CMS Core Team", + "homepage": "https://forge.typo3.org/projects/typo3cms-core", + "role": "Developer" + }, + { + "name": "The TYPO3 Community", + "homepage": "https://typo3.org/community/", + "role": "Contributor" + } + ], + "description": "Minimal required set of TYPO3 extensions", + "support": { + "general": "https://typo3.org/support/", + "irc": "irc://irc.freenode.net/#typo3-cms", + "issues": "https://forge.typo3.org", + "news": "nntp://lists.typo3.org", + "source": "https://github.com/TYPO3/minimal/tree/v11.5.0" + }, + "time": "2021-10-05T11:29:15+00:00" + }, + { + "name": "typo3/phar-stream-wrapper", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/phar-stream-wrapper.git", + "reference": "a931b28f422a60052db85c0a84a05a366453b2c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/a931b28f422a60052db85c0a84a05a366453b2c0", + "reference": "a931b28f422a60052db85c0a84a05a366453b2c0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.0 || ~8.0 || ~8.1 || ~8.2 || ~8.3" + }, + "require-dev": { + "ext-xdebug": "*", + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^5.1" + }, + "suggest": { + "ext-fileinfo": "For PHP builtin file type guessing, otherwise uses internal processing" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "v3.x-dev" + } + }, + "autoload": { + "psr-4": { + "TYPO3\\PharStreamWrapper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Interceptors for PHP's native phar:// stream handling", + "homepage": "https://typo3.org/", + "keywords": [ + "phar", + "php", + "security", + "stream-wrapper" + ], + "support": { + "issues": "https://github.com/TYPO3/phar-stream-wrapper/issues", + "source": "https://github.com/TYPO3/phar-stream-wrapper/tree/v3.1.8" + }, + "time": "2024-12-09T23:06:33+00:00" + }, + { + "name": "typo3/symfony-psr-event-dispatcher-adapter", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/symfony-psr-event-dispatcher-adapter.git", + "reference": "c93fd7cc9f215cfbbc6ce89089eadabedf65a21f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/symfony-psr-event-dispatcher-adapter/zipball/c93fd7cc9f215cfbbc6ce89089eadabedf65a21f", + "reference": "c93fd7cc9f215cfbbc6ce89089eadabedf65a21f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/event-dispatcher-contracts": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "TYPO3\\SymfonyPsrEventDispatcherAdapter\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Adapter to provide compatibility with the Symfony's event dispatcher interface in all versions with the PSR-14 specification.", + "homepage": "https://typo3.org/", + "keywords": [ + "adapter", + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/TYPO3/symfony-psr-event-dispatcher-adapter/issues", + "source": "https://github.com/TYPO3/symfony-psr-event-dispatcher-adapter/tree/v2.1.0" + }, + "time": "2021-03-02T09:36:49+00:00" + }, + { + "name": "typo3fluid/fluid", + "version": "2.7.4", + "source": { + "type": "git", + "url": "https://github.com/TYPO3/Fluid.git", + "reference": "24f4494083c8d304680e4c9c38667dff33720dd4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TYPO3/Fluid/zipball/24f4494083c8d304680e4c9c38667dff33720dd4", + "reference": "24f4494083c8d304680e4c9c38667dff33720dd4", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "ext-mbstring": "*", + "friendsofphp/php-cs-fixer": "^3.4", + "phpstan/phpstan": "^1.7", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5.33 || ^9.5.28 || ^10.0.16" + }, + "suggest": { + "ext-json": "PHP JSON is needed when using JSONVariableProvider: A relatively rare use case" + }, + "bin": [ + "bin/fluid" + ], + "type": "library", + "autoload": { + "psr-4": { + "TYPO3Fluid\\Fluid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "description": "The TYPO3 Fluid template rendering engine", + "homepage": "https://github.com/TYPO3/Fluid", + "support": { + "docs": "https://docs.typo3.org/other/typo3fluid/fluid/main/en-us/", + "issues": "https://github.com/TYPO3/Fluid/issues", + "source": "https://github.com/TYPO3/Fluid" + }, + "time": "2023-03-23T12:04:09+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "hermanntelser/zuladungsliste": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config/sites/app/config.yaml b/config/sites/app/config.yaml new file mode 100644 index 0000000..62941b0 --- /dev/null +++ b/config/sites/app/config.yaml @@ -0,0 +1,26 @@ +base: 'https://steiermark.test/app' +errorHandling: + - + errorCode: 404 + errorHandler: Page + errorContentSource: 't3://page?uid=1' + - + errorCode: 403 + errorHandler: Page + errorContentSource: 't3://page?uid=1' +languages: + - + title: Deutsch + enabled: true + base: / + typo3Language: de + locale: de_DE.UTF-8 + iso-639-1: de + websiteTitle: '' + navigationTitle: '' + hreflang: de_DE + direction: '' + flag: global + languageId: 0 +rootPageId: 50 +websiteTitle: '' diff --git a/config/sites/zuladungsliste/config.yaml b/config/sites/zuladungsliste/config.yaml new file mode 100644 index 0000000..6da194e --- /dev/null +++ b/config/sites/zuladungsliste/config.yaml @@ -0,0 +1,26 @@ +base: 'https://steiermark.test' +errorHandling: + - + errorCode: 403 + errorHandler: Page + errorContentSource: 't3://page?uid=1' + - + errorCode: 404 + errorHandler: Page + errorContentSource: 't3://page?uid=1' +languages: + - + title: Deutsch + enabled: true + base: / + typo3Language: de + locale: de_DE.UTF-8 + iso-639-1: de + navigationTitle: '' + hreflang: de-DE + direction: '' + flag: global + languageId: 0 + websiteTitle: '' +rootPageId: 1 +websiteTitle: '' diff --git a/packages/zuladungsliste/.gitignore b/packages/zuladungsliste/.gitignore new file mode 100644 index 0000000..394abcc --- /dev/null +++ b/packages/zuladungsliste/.gitignore @@ -0,0 +1,5 @@ +composer.lock +Resources/Public/Css/node_modules +Resources/Public/Css/package-lock.json +Resources/Public/JavaScript/package-lock.json +Resources/Public/JavaScript/node_modules \ No newline at end of file diff --git a/packages/zuladungsliste/.vscode/settings.json b/packages/zuladungsliste/.vscode/settings.json new file mode 100644 index 0000000..75a748d --- /dev/null +++ b/packages/zuladungsliste/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#fa1b49", + "activityBar.background": "#fa1b49", + "activityBar.foreground": "#e7e7e7", + "activityBar.inactiveForeground": "#e7e7e799", + "activityBarBadge.background": "#155e02", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#e7e7e799", + "sash.hoverBorder": "#fa1b49", + "statusBar.background": "#dd0531", + "statusBar.foreground": "#e7e7e7", + "statusBarItem.hoverBackground": "#fa1b49", + "statusBarItem.remoteBackground": "#dd0531", + "statusBarItem.remoteForeground": "#e7e7e7", + "titleBar.activeBackground": "#dd0531", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.inactiveBackground": "#dd053199", + "titleBar.inactiveForeground": "#e7e7e799" + }, + "peacock.remoteColor": "#dd0531" +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Backend/FixUser.php b/packages/zuladungsliste/Classes/Backend/FixUser.php new file mode 100644 index 0000000..24bee6d --- /dev/null +++ b/packages/zuladungsliste/Classes/Backend/FixUser.php @@ -0,0 +1,45 @@ +getQueryBuilderForTable('fe_users'); + $statement = $queryBuilder + ->select('*') + ->from('fe_users') + ->where( + $queryBuilder->expr()->neq('date_of_birth', (int) 0) + )->execute() + ->fetchAll(); + + foreach ($statement as $key => $row) { + $queryBuilder + ->update('fe_users') + ->where( + $queryBuilder->expr()->eq('uid', (int) $row['uid']) + ) + ->set('tx_extbase_type', (string) 'Tx_Zuladungsliste_Architekten') + ->set('vereidigung', (string) date("Y-m-d", $row['date_of_birth'])) + ->set('name', (string) $row['first_name'] . " " . $row['last_name']) + ->set('date_of_birth', (int) 0) + ->execute(); + } + } +} diff --git a/packages/zuladungsliste/Classes/Backend/Labels.php b/packages/zuladungsliste/Classes/Backend/Labels.php new file mode 100755 index 0000000..90c3a9e --- /dev/null +++ b/packages/zuladungsliste/Classes/Backend/Labels.php @@ -0,0 +1,251 @@ +getQueryBuilderForTable('tx_zuladungsliste_konto_aufloesung_mm'); + $count = $queryBuilder + ->count('uid') + ->from('tx_zuladungsliste_konto_aufloesung_mm') + ->where( + $queryBuilder->expr()->eq('uid_empfaenger', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)) + )->execute() + ->fetchColumn(0); + + $company = $record['company'] != " " ? $record['company'] : ''; + if ($count) { + $parameters['title'] = $company . ' [EMPFÄNGER]'; + } elseif ($record["kontoaufloesung_active"] > 0) { + $parameters['title'] = $company . "\n [" . $record["kontoaufloesung_active"] . " AUFGELÖST]"; + } else { + $parameters['title'] = $company; + } + + FixUser::set(); + } + + public function loadKriterienPunkte(&$parameters) + { + $kriterien_label = ''; + if (isset($parameters['options']['tx_zuladungsliste_punkte_kriterien_mm']) && is_array($parameters['options']['tx_zuladungsliste_punkte_kriterien_mm'])) { + $kriterien_id = $parameters['row']['uid_kriterien']; + $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_kriterien', $kriterien_id); + $kriterien_label = $record['bezeichnung']; + + $punkte_id = $parameters['row']['uid_punkte'][0]; + $item = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_punkte', $punkte_id); + $kriterien_label .= '
' . $item['bezeichnung'] . ''; + + //\TYPO3\CMS\Core\Utility\DebugUtility::debug($parameters['row']['uid_punkte'][0]); + + if ($parameters['row']['punkte'] == 1) { + $kriterien_label .= '
' . $parameters['row']['punkte'] . ' Punkt'; + } else { + $kriterien_label .= '
' . $parameters['row']['punkte'] . ' Punkte'; + } + } else { + $kriterien_label = '[Fehler!]'; + } + $parameters['title'] = $kriterien_label; + } + + public function loadPunkteVerteilungs(&$parameters) + { + $parameters['title'] = "ERROR"; + if (isset($parameters['options']['tx_zuladungsliste_konto_aufloesung_mm']) && is_array($parameters['options']['tx_zuladungsliste_konto_aufloesung_mm'])) { + $uid_empfaenger = $parameters['row']['uid_empfaenger'][0]; + + //\TYPO3\CMS\Core\Utility\DebugUtility::debug($uid_empfaenger); + + $prozente = $parameters['row']['prozente']; + + $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $uid_empfaenger); + + $colorclass = "zuladungsliste-kammern-" . $record["kammernid"]; + + $parameters['title'] = '' . $record['name']; + $parameters['title'] .= " (" . $prozente . "%) "; + } + } + + public function loadWettbewerbArchitekten(&$parameters) + { + if (isset($parameters['options']['tx_zuladungsliste_wettbewerbe_architekten_mm']) && is_array($parameters['options']['tx_zuladungsliste_wettbewerbe_architekten_mm'])) { + + if (is_array($parameters['row']['uid_wettbewerbe'])) { + $wettbewerbe_id = (int) $parameters['row']['uid_wettbewerbe'][0]; + } else { + $wettbewerbe_id = (int) $parameters['row']['uid_wettbewerbe']; + } + + if (is_array($parameters['row']['tstamp_zuordnung'])) { + $tstamp_zuordnung = (int) $parameters['row']['tstamp_zuordnung'][0]; + } else { + $tstamp_zuordnung = (int) $parameters['row']['tstamp_zuordnung']; + } + + if (is_array($parameters['row']['tstamp_aktivierung'])) { + $tstamp_aktivierung = (int) $parameters['row']['tstamp_aktivierung'][0]; + } else { + $tstamp_aktivierung = (int) $parameters['row']['tstamp_aktivierung']; + } + + if (is_array($parameters['row']['tstamp_ablehnen'])) { + $tstamp_ablehnen = (int) $parameters['row']['tstamp_ablehnen'][0]; + } else { + $tstamp_ablehnen = (int) $parameters['row']['tstamp_ablehnen']; + } + + if (is_array($parameters['row']['ist_befangen'])) { + $ist_befangen = (int) $parameters['row']['ist_befangen'][0]; + } else { + $ist_befangen = (int) $parameters['row']['ist_befangen']; + } + + if (is_array($parameters['row']['uid_user'])) { + $user_id = (int) $parameters['row']['uid_user'][0]; + } else { + $user_id = (int) $parameters['row']['uid_user']; + } + + if (is_array($parameters['row']['uid_punkte'])) { + $punkte_id = (int) $parameters['row']['uid_punkte'][0]; + } else { + $punkte_id = (int) $parameters['row']['uid_punkte']; + } + + // echo json_encode($parameters); + + // \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",array_keys($parameters["row"]))); + // \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",$parameters["row"])); + // \TYPO3\CMS\Core\Utility\DebugUtility::debug($parameters["row"]["uid_user"],"uid_user 1: "); + // \TYPO3\CMS\Core\Utility\DebugUtility::debug($user_id,"uid_user 2: "); + // \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",array_keys($parameters["options"]))); + // \TYPO3\CMS\Core\Utility\DebugUtility::debug($wettbewerbe_id,$punkte_id); + + if (isset($wettbewerbe_id)) { + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe'); + $record = $queryBuilder + ->select('kriteriumid', 'wettbewerb') + ->from('tx_zuladungsliste_domain_model_wettbewerbe') + ->where( + $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($wettbewerbe_id, \PDO::PARAM_INT)) + )->execute(); + + while ($row = $record->fetch()) { + $kriterien_id = $row['kriteriumid']; + $wettbewerb_label = $row['wettbewerb']; + } + + // $wettbewerb_label .= '' . $wettbewerbe_id . ''; + // \TYPO3\CMS\Core\Utility\DebugUtility::debug($record); + // return; + // $record = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("kriteriumid,wettbewerb", "tx_zuladungsliste_domain_model_wettbewerbe", "uid=$wettbewerbe_id"); + + $parameters['row']['uid'] = strpos($parameters['row']['uid'], "NEW") !== false ? "Neuer Eintrag Bitte Sichern" : $parameters['row']['uid']; + + if ($user_id) { + $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $user_id); + $wettbewerb_label .= '
' . $record['company'] . ''; + } + if ($tstamp_ablehnen || $ist_befangen) { + $tstamp_ablehnen = $tstamp_ablehnen ? date("d. M. Y", $tstamp_ablehnen) : false; + $label_abge = $ist_befangen ? 'Befangen' : 'Abgelehnt am:'; + $wettbewerb_label .= '
' . $label_abge . '' . $tstamp_ablehnen . ''; + } + if ($punkte_id) { + $tstamp_zuordnung = $tstamp_zuordnung ? date("d. M. Y", $tstamp_zuordnung) : false; + $tstamp_aktivierung = $tstamp_aktivierung ? date("d. M. Y", $tstamp_aktivierung) : false; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte'); + $record = $queryBuilder + ->select('tx_zuladungsliste_domain_model_punkte.bezeichnung', 'k.uid', 'k.punkte') + ->from('tx_zuladungsliste_domain_model_punkte') + ->join( + 'tx_zuladungsliste_domain_model_punkte', + 'tx_zuladungsliste_punkte_kriterien_mm', + 'k', + $queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid')) + ) + ->where( + $queryBuilder->expr()->eq('k.uid_kriterien', $queryBuilder->createNamedParameter($kriterien_id, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->createNamedParameter($punkte_id, \PDO::PARAM_INT)) + ) + ->execute(); + + while ($row = $record->fetch()) { + $punkte = $row['punkte'] == 0 ? "Keine " : $row['punkte']; + $bezeichnung = $row['bezeichnung']; + } + + $wettbewerb_label .= '
' . $bezeichnung . ' (' . $punkte; + $wettbewerb_label .= $punkte == 1 ? ' Punkt)' : ' Punkte)
'; + if ($punkte != 0) { + if ($tstamp_zuordnung) { + $wettbewerb_label .= '
Zugeordnet am:' . $tstamp_zuordnung . ''; + } + + if ($tstamp_aktivierung) { + $wettbewerb_label .= '
Freigeschaltet am:' . $tstamp_aktivierung . ''; + } + } + + } + } + } else { + $wettbewerb_label = '[Fehler!]'; + } + + $parameters['title'] = '' . $wettbewerb_label . ''; + // $parameters['title'] = '' . $wettbewerb_label . '
' . $kriterium_label . ''; + } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Backend/Selecting.php b/packages/zuladungsliste/Classes/Backend/Selecting.php new file mode 100644 index 0000000..fbda9c2 --- /dev/null +++ b/packages/zuladungsliste/Classes/Backend/Selecting.php @@ -0,0 +1,68 @@ +getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte'); + + $resource = $queryBuilder + ->select('tx_zuladungsliste_domain_model_punkte.bezeichnung', 'tx_zuladungsliste_domain_model_punkte.uid', 'k.punkte') + ->from('tx_zuladungsliste_domain_model_punkte') + ->join( + 'tx_zuladungsliste_domain_model_punkte', + 'tx_zuladungsliste_punkte_kriterien_mm', + 'k', + $queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid')) + ) + ->where( + $queryBuilder->expr()->eq('k.uid_kriterien', $queryBuilder->createNamedParameter($kriterien_id, \PDO::PARAM_INT)) + ) + ->orderBy('tx_zuladungsliste_domain_model_punkte.sorting') + ->execute() + ->fetchAll(); + + foreach ($resource as $key => $row) { + if ($row['punkte']==0) { + $parameters["items"][] = array($row['bezeichnung'].' (Keine Punkte Zugeordnet)', $row['uid']); + } else { + $parameters["items"][] = array($row['bezeichnung'].' ('.$row['punkte'].' Punkte)', $row['uid']); + } + } + } else { + $parameters["items"][] = array('Punkte für Kriterium fehlen',''); + } + } else { + $parameters["items"][] = array('Wettbewerb auswählen und speichern',''); + } + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/Architekten.php b/packages/zuladungsliste/Classes/Berechnung/Architekten.php new file mode 100644 index 0000000..81d3674 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Architekten.php @@ -0,0 +1,72 @@ +, NUH-Odds GmbH + * + ***/ + +class Architekten +{ + /** + * @param mixed $uid + * + * @return void + */ + public static function load($uid = 0) + { + + // _Berechnung::$debug = 1; + + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Load Architekten'); + } + + // 2 usergroup => Ordentliche Registrierung zur Zuladungsliste + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('uid', 'disable', 'email', 'name', 'last_name', 'company', 'vereidigung', 'frauenfoerderpunkt', 'solidaritaetserklaerung', 'extrasperrung', 'kontoaufloesung', 'kontoaufloesung_active', 'wettbewerbe', 'kammernid', 'kammermitgliedsnummer', 'gender', 'date_of_birth') + ->from('fe_users') + ->where( + $queryBuilder->expr()->eq('kammernid', (int) _Berechnung::$_config['kammernid']), + $queryBuilder->expr()->eq('pid', (int) _Berechnung::$_config['pid']), + $queryBuilder->expr()->eq('usergroup', (int) _Berechnung::$_config['usergroup']), + ); + + if (is_array($uid)) { + $queryBuilder->andWhere($queryBuilder->expr()->in('uid', $uid)); + } elseif (0 != $uid) { + $queryBuilder->andWhere($queryBuilder->expr()->eq('uid', (int) $uid)); + } + if (0 != _Berechnung::$_config['berechne_bis']) { + $queryBuilder->andWhere('crdate <= ' . _Berechnung::$_config['berechne_bis']); + $date = date('Y-m-d', _Berechnung::$_config['berechne_bis']); + $queryBuilder->andWhere("vereidigung < '$date' or vereidigung IS NULL"); + } + + $statement = $queryBuilder->execute()->fetchAll(); + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + foreach ($statement as $value) { + _Berechnung::$_data['architekten_uids'][] = $value['uid']; + } + + _Berechnung::$_data['architekten'] = $statement; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/AufloesungPunkteVerteilung.php b/packages/zuladungsliste/Classes/Berechnung/AufloesungPunkteVerteilung.php new file mode 100644 index 0000000..7976937 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/AufloesungPunkteVerteilung.php @@ -0,0 +1,164 @@ +, NUH-Odds GmbH + * + ***/ + +class AufloesungPunkteVerteilung +{ + /** + * @return void + */ + public static function manage() + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Manage Auflösung Punkte Verteilung'); + } + + // 2 usergroup => Ordentliche Registrierung zur Zuladungsliste + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder->select('uid')->from('fe_users') + ->where($queryBuilder->expr()->isNotNull('kontoaufloesung_active')); + if(_Berechnung::$_config['berechne_bis'] != 0) + { + $date = date('Y-m-d', _Berechnung::$_config['berechne_bis']); + $queryBuilder->andWhere("kontoaufloesung_active < '$date'"); + } + $statement = $queryBuilder->execute()->fetchAll(); + + // Message::note($queryBuilder->getSQL()); + // exit; + + + $_geber = []; + if(count($statement)){ + foreach ($statement as $value) { + $_geber[] = $value['uid']; + } + } + + if(count($_geber) == 0){ + return; + } + + $_geber_list = implode($_geber, ","); + + // echo $_geber_list; + // exit; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_konto_aufloesung_mm'); + $statement = $queryBuilder + ->select('uid_geber', ' uid_empfaenger', ' prozente') + ->from('tx_zuladungsliste_konto_aufloesung_mm') + ->where( + $queryBuilder->expr()->gt('prozente', (int) 0), + $queryBuilder->expr()->in('uid_geber', $_geber_list) + )->execute()->fetchAll(); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + $verteiler_arr = []; + foreach ($statement as $key => $value) { + $uid = $value['uid_geber']; + $verteiler_arr[$uid][] = $value; + } + + foreach ($verteiler_arr as $uid_geber => $empfaener_arr) { + $frauenpunkt_abgezogen = ''; + $neueinsteigerpunkt_abgezogen = ''; + $solidaritaetserklaerung_abgezogen = ''; + + foreach (_Berechnung::$_data['liste'] as $key_geber => $_value_liste) { + if ($_value_liste['user_id'] == $uid_geber) { + + $geber_punkte = $_value_liste['punkte']; + if ($geber_punkte > 0) { + $geber_company = $_value_liste['company']; + + _Berechnung::$_data['liste'][$key_geber]['company'] .= ' ( Kontoauflösung '._Berechnung::$_data['liste'][$key_geber]['kontoaufloesung_active'].')'; + _Berechnung::$_data['liste'][$key_geber]['punkte'] = 0; + _Berechnung::$_data['liste'][$key_geber]['nominiert'] = 0; + _Berechnung::$_data['liste'][$key_geber]['auswertung']['wettbewerbe']['punkte'] = 0; + _Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte'] = 0; + if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['frauenfoerderpunkt']['punkte']) { + $frauenpunkt_abgezogen = ', Frauenförderpunkt wurde abgezogen'; + --$geber_punkte; + _Berechnung::$_data['liste'][$key_geber]['auswertung']['frauenfoerderpunkt']['punkte'] = 0; + } + if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte']) { + $neueinsteigerpunkt_abgezogen = ', Neueinsteigerpunkt wurde abgezogen'; + --$geber_punkte; + _Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte'] = 0; + } + if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['solidaritaetserklaerung']['punkte']) { + $solidaritaetserklaerung_abgezogen = ', Solidaritätserklärungspunkt wurde abgezogen'; + --$geber_punkte; + _Berechnung::$_data['liste'][$key_geber]['auswertung']['solidaritaetserklaerung']['punkte'] = 0; + } + + foreach ($empfaener_arr as $key => $_empfaenger) { + $uid_empfaenger = $_empfaenger['uid_empfaenger']; + $prozente = $_empfaenger['prozente']; + + // SET EMPFÄNGER + foreach (_Berechnung::$_data['liste'] as $key => $value) { + if ($value['user_id'] == $uid_empfaenger) { + // if($uid_empfaenger==326){ + // print_r(_Berechnung::$_data['liste'][$key]); + // exit; + // } + $punkte_empf_anteil = round($geber_punkte * ($prozente / 100), 2); + if(_Berechnung::$_data['liste'][$key]['gesperrt'] == 0) + { + _Berechnung::$_data['liste'][$key]['nominiert'] = 1; + } + _Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] + $punkte_empf_anteil; + _Berechnung::$_data['liste'][$key]['istempfaenger'] = '1'; + _Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe']['punkte'] += $punkte_empf_anteil; + _Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe'][] = [ + 'wettbewerb' => "$prozente% von Kontoauflösung " . $frauenpunkt_abgezogen . $neueinsteigerpunkt_abgezogen . $solidaritaetserklaerung_abgezogen, + 'verfahrensid' => '', + 'verfahrensort' => '', + 'entscheidungstermin' => '', + 'mit_sperrung' => '', + 'punkte' => $punkte_empf_anteil, + 'bezeichnung' => '', + 'bezeichnung_punkte' => '', + 'regelwerk' => '', + 'monate_seit_entscheidungstermin' => '', + 'punkte_aktive' => '', + 'gueltig_bis' => '', + 'von_transfer' => $geber_company, + ]; + } + } + } + // unset geber punkte + unset(_Berechnung::$_data['liste'][$key_geber]); + } + } + } + } + + // print_r(_Berechnung::$_data['liste']); + // exit; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/Erfolgspunkte.php b/packages/zuladungsliste/Classes/Berechnung/Erfolgspunkte.php new file mode 100644 index 0000000..d0a081a --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Erfolgspunkte.php @@ -0,0 +1,214 @@ +, NUH-Odds GmbH + * + ***/ + +class Erfolgspunkte +{ + /** + * @return string + */ + public static function load_user($_liste, $user_objekt) + { + // _Berechnung::$debug = 1; + + if (_Berechnung::$debug) { + Message::debug( + __FILE__, + __LINE__, + "Erfolgspunkte" + ); + } + + if (!isset(_Berechnung::$_data['sektionstage'])) { + Sektionstage::load(); + } + + // _Berechnung::$_config['berechne_bis'] = mktime(0, 0, 0, 7, 15, 2021); + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe'); + $queryBuilder + ->select( + 'tx_zuladungsliste_domain_model_wettbewerbe.uid', + 'tx_zuladungsliste_domain_model_wettbewerbe.wettbewerb', + 'tx_zuladungsliste_domain_model_wettbewerbe.verfahrensid', + 'tx_zuladungsliste_domain_model_wettbewerbe.verfahrensort', + 'tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin', + 'tx_zuladungsliste_domain_model_wettbewerbe.abgabetermin', + 'tx_zuladungsliste_domain_model_wettbewerbe.sperre_deaktiviert', + 'b.ladung_durch_auslober', + 'c.punkte', + 'd.sperrung AS mit_sperrung', + 'd.bezeichnung', + 'e.bezeichnung AS bezeichnung_punkte' + ) + ->from('tx_zuladungsliste_domain_model_wettbewerbe') + ->leftJoin( + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'tx_zuladungsliste_wettbewerbe_architekten_mm', + 'b', + $queryBuilder->expr()->eq( + 'b.uid_wettbewerbe', + $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.uid') + ) + ) + ->leftJoin( + 'b', + 'tx_zuladungsliste_punkte_kriterien_mm', + 'c', + $queryBuilder->expr()->eq( + 'c.uid_punkte', + $queryBuilder->quoteIdentifier('b.uid_punkte') + ) + )->leftJoin( + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'tx_zuladungsliste_domain_model_kriterien', + 'd', + $queryBuilder->expr()->eq( + 'd.uid', + $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid') + ) + )->leftJoin( + 'c', + 'tx_zuladungsliste_domain_model_punkte', + 'e', + $queryBuilder->expr()->eq( + 'e.uid', + $queryBuilder->quoteIdentifier('c.uid_punkte') + ) + ) + ->where( + $queryBuilder->expr()->eq('c.uid_kriterien', 'tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid'), + $queryBuilder->expr()->eq('b.tstamp_ablehnen', 0), + $queryBuilder->expr()->gt('b.tstamp_aktivierung', 0), + $queryBuilder->expr()->eq('b.uid_user', (int) $user_objekt['uid']) + ) + ->groupBy('tx_zuladungsliste_domain_model_wettbewerbe.verfahrensid') + ->orderBy('tx_zuladungsliste_domain_model_wettbewerbe.uid','DESC'); + + if (_Berechnung::$_config['berechne_bis'] != 0) { + $date = date("Y-m-d", _Berechnung::$_config['berechne_bis']); + $queryBuilder->andWhere("b.tstamp_aktivierung <= " . _Berechnung::$_config['berechne_bis']); + $queryBuilder->andWhere("tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin < '$date'"); + } + + $statement = $queryBuilder->execute()->fetchAll(); + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + $_liste["gesperrt_bis"] = 0; + $_liste["kommentar"] = 0; + $_liste["gesperrt"] = 0; + $_liste["nominiert"] = 1; + + $_return_sort = []; + foreach ($statement as $key => $row) { + + if ((int) $row["entscheidungstermin"] > 0) { + $entscheidungstermin = strtotime($row["entscheidungstermin"]); + $datetime2 = new \DateTime($row["entscheidungstermin"]); + } else { + $entscheidungstermin = strtotime($row["abgabetermin"]); + $datetime2 = new \DateTime($row["abgabetermin"]); + } + + // Message::note($row['wettbewerb']); + $_sektionstag = Sektionstage::filter($entscheidungstermin); + + $datetime1 = new \DateTime(); + if (_Berechnung::$_config['berechne_bis'] != 0) { + $datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']); + } + $interval = $datetime1->diff($datetime2); + $monate_seit_entscheidungstermin = $interval->m + ($interval->y * 12); + + $row["regelwerk"] = $_sektionstag["bezeichnung"]; + $row["monate_seit_entscheidungstermin"] = $monate_seit_entscheidungstermin; + + // PUNKTE GÜLTIGKEIT + $row["punkte_aktive"] = $monate_seit_entscheidungstermin <= $_sektionstag["punktezeit"] ? 1 : 0; + + if ($row["punkte_aktive"] == 1) { + $_liste["punkte"] = $_liste["punkte"] + $row["punkte"]; + } + + $datetime3 = clone $datetime2; + $datetime3->modify("+" . $_sektionstag["punktezeit"] . " months"); + $row["gueltig_bis"] = date("d.m.Y", $datetime3->format("U")); + $row["wettbewerb_sort"] = $datetime3->format("U"); + + // SPERRZEIT + if ($row["mit_sperrung"] and $row["sperre_deaktiviert"] == 0) { + if ($row['ladung_durch_auslober'] == 1) { + // Active Sperrzeit wird auf 9 Monate verkürzt + $_sektionstag["sperrzeit"] = 9; + } + $row["sperrung_aktive"] = $monate_seit_entscheidungstermin <= $_sektionstag["sperrzeit"] ? 1 : 0; + $datetime2->modify("+" . $_sektionstag["sperrzeit"] . " months"); + $row["gesperrt_bis"] = date("d.m.Y", $datetime2->format("U")); + + $_liste['controll']['gesperrt_bis'] = $row["gesperrt_bis"]; + $_liste['controll']['sperrung_aktive'] = $datetime2->format("U"); + $_liste['controll']['berechne_bis'] = _Berechnung::$_config['berechne_bis']; + + // salam 28.4.2022 + $sperreZeitLimit = (_Berechnung::$_config['berechne_bis'] != 0) ? _Berechnung::$_config['berechne_bis'] : time(); + + if ($row["sperrung_aktive"] and $datetime2->format("U") > $sperreZeitLimit) { + + // echo "\n"; + // echo $row["gesperrt_bis"]; + // echo "\n"; + // echo $_liste["gesperrt_bis"]; + // echo "\n"; + // exit; + + + if ($_liste["gesperrt_bis"] != "" and $row["gesperrt_bis"] != "") { + + $tmp1 = new \DateTime($row["gesperrt_bis"]); + $tmp2 = new \DateTime($_liste["gesperrt_bis"]); + + if ($tmp1 > $tmp2) + $_liste["gesperrt_bis"] = $row["gesperrt_bis"]; + } else { + $_liste["gesperrt_bis"] = $row["gesperrt_bis"]; + } + if ($row['ladung_durch_auslober'] == 1) { + $_liste["kommentar"] = $row["wettbewerb"] . ' (Ladung durch Auslober/in, Sperrzeit wird auf 9 Monate verkürzt)'; + } else { + $_liste["kommentar"] = $row["wettbewerb"]; + } + $_liste["gesperrt"] = 1; + $_liste["nominiert"] = 0; + } + } + $_return_sort[] = $row; + } + + if ($_return_sort) { + $wettbewerb_sort = array_column($_return_sort, 'wettbewerb_sort'); + array_multisort($wettbewerb_sort, SORT_DESC, $_return_sort); + } + + // WETTBEWERBE ERFOLGSPUNKTE + $_liste["auswertung"]["wettbewerbe"] = $_return_sort; + + return $_liste; + } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Berechnung/Frauen.php b/packages/zuladungsliste/Classes/Berechnung/Frauen.php new file mode 100644 index 0000000..b7e63c2 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Frauen.php @@ -0,0 +1,78 @@ +, NUH-Odds GmbH + * + ***/ + +class Frauen +{ + /** + * @return void + */ + public static function load($_liste, $user_objekt) + { + if (_Berechnung::$debug) { + Message::debug(__file__, __line__, "Load Frauen Förderungs Punkt"); + } + + // FRAUEN FÖRDERUNGS PUNKT + // $_liste["auswertung"]["frauenfoerderpunkt"] = Frauen::load($_liste, $user_objekt, $_liste["punkte"]); + // $_liste["punkte"] += $_liste["auswertung"]["frauenfoerderpunkt"]["punkte"]; + + + + if ($user_objekt["frauenfoerderpunkt"]==0) { + $_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 0; + $_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Kein Anspruch"; + return $_liste; + } else { + // Frauenförderung ohne Punkte immer Gültig + if ($_liste["punkte"] > 0) { + $_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 1; + $_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Punktestand > 0; Punkt gültig"; + $_liste["punkte"]++; + return $_liste; + } + + $vereidigung = strtotime($user_objekt["vereidigung"]); + $sektionstag = Sektionstage::filter($vereidigung); + + $frauenfoerderung_monate = $sektionstag["frauenfoerderung"]; + + $datetime1 = new \DateTime(); + if (_Berechnung::$_config['berechne_bis'] != 0) { + $datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']); + } + $datetime2 = new \DateTime($user_objekt["vereidigung"]); + + $interval = $datetime1->diff($datetime2); + $monate_seit_vereidigung = $interval->m + ($interval->y * 12); + + if ($monate_seit_vereidigung < $frauenfoerderung_monate) { + $monate = $frauenfoerderung_monate-$monate_seit_vereidigung; + + $_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 1; + $_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Frauenförderung ohne Punkte noch $monate Monate gültig"; + $_liste["punkte"]++; + } else { + $_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 0; + $_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Keine Einreichungen, Zeitspanne seit Vereidigung größer als 5 Jahre, Punkt ist verfallen"; + } + + return $_liste; + } + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/Neueinsteiger.php b/packages/zuladungsliste/Classes/Berechnung/Neueinsteiger.php new file mode 100644 index 0000000..5d21c29 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Neueinsteiger.php @@ -0,0 +1,75 @@ +, NUH-Odds GmbH + * + ***/ + +class Neueinsteiger +{ + /** + * @param mixed $_liste + * @param mixed $user_objekt + * + * @return void + */ + public static function load($_liste, $user_objekt) + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Load NeueinsteigerPunkt'); + } + + if ($user_objekt['vereidigung'] == "") { + $_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0; + $_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Kein Vereidigungsdatum verfügbar'; + + return $_liste; + } + + $vereidigung = strtotime($user_objekt['vereidigung']); + $_sektionstag = Sektionstage::filter($vereidigung); + + $datetime1 = new \DateTime(); + if (0 != _Berechnung::$_config['berechne_bis']) { + $datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']); + } + $datetime2 = new \DateTime($user_objekt['vereidigung']); + + $interval = $datetime1->diff($datetime2); + $monate_seit_vereidigung = $interval->m + ($interval->y * 12); + + if ($monate_seit_vereidigung > $_sektionstag['neueinsteiger']) { + $_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0; + $_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt ist verfallen. Vereidigung '.$user_objekt['vereidigung']; + + return $_liste; + } + + $jahre_seit_vereidigung = $interval->y; + + if ($jahre_seit_vereidigung < 5) { + $neueinsteigerpunkt = 5 - $jahre_seit_vereidigung; + $datetime2->modify('+5 year'); + + $_liste['auswertung']['neueinsteigerpunkt']['punkte'] = $neueinsteigerpunkt; + $_liste['punkte'] = $_liste['punkte'] + $neueinsteigerpunkt; + $_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt Vereidigung '.$user_objekt['vereidigung']; + $_liste['auswertung']['neueinsteigerpunkt']['gueltig_bis'] = $datetime2->format('Y-m-d'); + } else { + $_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0; + $_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt ist verfallen. Vereidigung '.$user_objekt['vereidigung']; + } + + return $_liste; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/PunkteKriterien.php b/packages/zuladungsliste/Classes/Berechnung/PunkteKriterien.php new file mode 100644 index 0000000..a746eac --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/PunkteKriterien.php @@ -0,0 +1,62 @@ +, NUH-Odds GmbH + * + ***/ + +class PunkteKriterien +{ + public static function load() + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Load Punkte Kriterien'); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm'); + $queryBuilder + ->select( + 'tx_zuladungsliste_punkte_kriterien_mm.uid', + 'tx_zuladungsliste_punkte_kriterien_mm.uid_punkte', + 'tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien', + 'tx_zuladungsliste_punkte_kriterien_mm.punkte', + 'a.bezeichnung AS bezeichnung_punkte', + 'b.bezeichnung AS bezeichnung_kritierien' + )->from('tx_zuladungsliste_punkte_kriterien_mm') + ->join( + 'tx_zuladungsliste_punkte_kriterien_mm', + 'tx_zuladungsliste_domain_model_punkte', + 'a', + $queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_punkte')) + ) + ->join( + 'tx_zuladungsliste_punkte_kriterien_mm', + 'tx_zuladungsliste_domain_model_kriterien', + 'b', + $queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien')) + ); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + $tmp = $queryBuilder->execute()->fetchAll(); + $return = []; + foreach ($tmp as $key => $value) + { + $return[$value['uid_punkte']][$value['uid_kriterien']] = $value; + } + return $return; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/PunkteVerschiebung.php b/packages/zuladungsliste/Classes/Berechnung/PunkteVerschiebung.php new file mode 100644 index 0000000..2e94b00 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/PunkteVerschiebung.php @@ -0,0 +1,168 @@ +, NUH-Odds GmbH + * + ***/ + +class PunkteVerschiebung +{ + /** + * @return array + */ + public static function load() + { + // _Berechnung::$debug = 1; + + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, "Punkte Verschiebung"); + } + + // 2 usergroup => Ordentliche Registrierung zur Zuladungsliste + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_verschiebung_mm'); + $statement = $queryBuilder + ->select("a.company", "tx_zuladungsliste_punkte_verschiebung_mm.uid_geber", "tx_zuladungsliste_punkte_verschiebung_mm.uid_empfaenger", "tx_zuladungsliste_punkte_verschiebung_mm.verschiebung_ab", "tx_zuladungsliste_punkte_verschiebung_mm.verschiebung_stichtag", "tx_zuladungsliste_punkte_verschiebung_mm.prozente") + ->from('tx_zuladungsliste_punkte_verschiebung_mm') + ->join( + 'tx_zuladungsliste_punkte_verschiebung_mm', + 'fe_users', + 'a', + $queryBuilder->expr()->eq('a.uid', 'tx_zuladungsliste_punkte_verschiebung_mm.uid_empfaenger') + ) + ->orderBy('verschiebung_stichtag'); + + $statement = $queryBuilder->execute()->fetchAll(); + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + return $statement; + } + + /** + * @return void + */ + public static function manage() + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Manage Auflösung Punkte Verteilung'); + } + + $_punkte_geber = self::load(); + if (!$_punkte_geber) { + return; + } + + foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) { + foreach ($_punkte_geber as $geber) { + if ($_value_liste['user_id'] == $geber['uid_geber']) { + + if($geber['verschiebung_ab'] <= _Berechnung::$_config['berechne_bis_datum']){ + + // echo "\n" . _Berechnung::$_data['liste'][$key]['punkte']; + + $punkte_zu_verschieben = self::collectPunkte($geber, $_value_liste); + + // nur aufführen wenn noch Punkte übrig sind und der Emfänger schon existiert (für berechnung des Archieves) + if ($punkte_zu_verschieben > 0 and in_array($geber['uid_empfaenger'], _Berechnung::$_data['architekten_uids'])) { + // GEBER + _Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] - $punkte_zu_verschieben; + $tmp = []; + $tmp['punkte'] = $punkte_zu_verschieben; + $tmp['kommentar'] = $geber['company']; + $tmp['prozente'] = $geber['prozente']; + $tmp['verschiebung_stichtag'] = $geber['verschiebung_stichtag']; + $tmp['verschiebung_ab'] = $geber['verschiebung_ab']; + _Berechnung::$_data['liste'][$key]['auswertung']['verschiebung_gegeben'][] = $tmp; + + // EMPFÄNGER + $tmp = []; + $tmp['punkte'] = $punkte_zu_verschieben; + $tmp['kommentar'] = $_value_liste['company']; + $tmp['prozente'] = $geber['prozente']; + $tmp['verschiebung_stichtag'] = $geber['verschiebung_stichtag']; + $tmp['verschiebung_ab'] = $geber['verschiebung_ab']; + self::addToEmpfaenger($geber, $tmp); + } + } + } + } + } + } + + /** + * @return void + * "id": 61, + */ + public static function addToEmpfaenger(&$geber, $tmp) + { + foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) { + if ($_value_liste['user_id'] == $geber['uid_empfaenger']) { + if(_Berechnung::$_data['liste'][$key]['gesperrt'] == 0){ + _Berechnung::$_data['liste'][$key]['nominiert'] = 1; + } + _Berechnung::$_data['liste'][$key]['auswertung']['verschiebung_empfangen'][] = $tmp; + _Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] + $tmp['punkte']; + } + } + } + + /** + * @return int + */ + public static function collectPunkte(&$geber, &$_value_liste) + { + $debug = 0; + // print_r($_value_liste['auswertung']['wettbewerbe']); + if($debug){ + // print_r($geber); + echo PHP_EOL; + echo _Berechnung::$_config['berechne_bis_datum']; + echo PHP_EOL; + $punkte2 = 0; + $punkte = 0; + } + + foreach ($_value_liste['auswertung']['wettbewerbe'] as $value) { + + // print_r($value); + + if ($value["punkte_aktive"] == 1){ + $punkte2 += $value['punkte']; + } + + if ($value["punkte_aktive"] == 1 and $value['entscheidungstermin'] < $geber['verschiebung_stichtag']) { + if($debug){ + echo "\n" . '"' . $value['wettbewerb'] . '","' . $value['entscheidungstermin'] . '","' . $value['gueltig_bis'] . '","' . number_format($value['punkte'], 2, ',','.') . '"'; + } + $punkte += $value['punkte']; + } + } + if($debug){ + // echo "\n"; + // echo "\n"; + echo "\n"; + echo "\n"; + echo "Punkte zum Verschieben: " . $punkte . "\n"; + echo "\n"; + echo "Punkte aktuell: " . $punkte2 . "\n"; + echo "\n"; + echo "Punkte prozentueller Anteil: " . round($punkte * ($geber['prozente'] / 100), 2); + exit; + } + return round($punkte * ($geber['prozente'] / 100), 2); + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/Sektionstage.php b/packages/zuladungsliste/Classes/Berechnung/Sektionstage.php new file mode 100644 index 0000000..c0da826 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Sektionstage.php @@ -0,0 +1,105 @@ +, NUH-Odds GmbH + * + ***/ + +class Sektionstage +{ + /** + * @return void + */ + public static function load() + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, "Lade Sektionstage"); + } + + // 2 usergroup => Ordentliche Registrierung zur Zuladungsliste + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_sektionstage'); + $statement = $queryBuilder + ->select("bezeichnung", "stichtag", "sperrzeit", "sperrzeitstart", "punktezeit", "punktezeitstart", "neueinsteiger", "neueinsteigerstart", "frauenfoerderung", "frauenfoerderungstart", "frauenfoerderungsonderstart", "kammernid") + ->from('tx_zuladungsliste_domain_model_sektionstage') + ->where( + $queryBuilder->expr()->eq('kammernid', (int) _Berechnung::$_config['kammernid']) + ); + + if (_Berechnung::$_config['berechne_bis'] != 0) { + $date = date("Y-m-d", _Berechnung::$_config['berechne_bis']); + $queryBuilder->andWhere("stichtag < '" . $date . "'"); + } + + $statement = $queryBuilder->execute()->fetchAll(); + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + $_arr = []; + foreach ($statement as $key => $value) { + $stichtag = strtotime(trim($value['stichtag'])); + $_arr[$stichtag] = $value; + } + ksort($_arr); + _Berechnung::$_data['sektionstage'] = $_arr; + } + + /** + * @return array + */ + public static function filter($entscheidungstermin) + { + // echo "\nEntscheidungstermin: " . date("d. m. Y", $entscheidungstermin) , "\n"; + $_sektionstage = _Berechnung::$_data['sektionstage']; + foreach ($_sektionstage as $stichtag => $_stichtagdetails) { + if ($entscheidungstermin <= $stichtag) { + // print_r($_stichtagdetails); + return $_stichtagdetails; + } + } + // print_r($_stichtagdetails); + return $_stichtagdetails; + } +// public static function filter($stichtag) +// { + +// // krsort(_Berechnung::$_data['sektionstage'], SORT_NUMERIC); +// echo "\nSTICHTAG: " . date("d. m. Y", $stichtag); +// echo "\n"; +// $_stichtagdetails = []; +// foreach (_Berechnung::$_data['sektionstage'] as $entscheidungstermin => $_stichtagdetails) { +// // echo "\nENTSCHEIDUNGSTERMIN: " . date("d. m. Y", $entscheidungstermin); +// if ($stichtag < $entscheidungstermin) { +// return $_stichtagdetails; +// } +// } +// // echo "\nHERE"; +// // echo "\nENTSCHEIDUNGSTERMIN: " . date("d. m. Y", $entscheidungstermin); +// print_r($_stichtagdetails); +// return $_stichtagdetails; +// } +// public static function filter($stichtag) +// { +// $_stichtagdetails = []; +// $entscheidungstermin = 0; +// foreach (_Berechnung::$_data['sektionstage'] as $stichtag => $_stichtagdetails) { +// if ($entscheidungstermin >= $stichtag) { +// return $_stichtagdetails; +// } +// } +// return array_shift(array_slice(_Berechnung::$_data['sektionstage'], 0, 1)); +// } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Berechnung/Solidaritaetserklaerung.php b/packages/zuladungsliste/Classes/Berechnung/Solidaritaetserklaerung.php new file mode 100644 index 0000000..d64a407 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Solidaritaetserklaerung.php @@ -0,0 +1,43 @@ +, NUH-Odds GmbH + * + ***/ + +class Solidaritaetserklaerung +{ + /** + * @return void + */ + public static function filter($_liste, $user_objekt) + { + if (_Berechnung::$debug) { + Message::debug(__file__, __line__, "Filter Solidaritaetserklaerung"); + } + // Datum Start SOLIDARITÄTSERKLÄRUNG ab 15. Juni "2021" + if (_Berechnung::$_config['berechne_bis'] == 0 or _Berechnung::$_config['berechne_bis'] > mktime(0, 0, 0, 6, 15, 2021)) { + if ($user_objekt["solidaritaetserklaerung"]==0) { + $_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Solidaritätserklärung nicht zugestimmt"; + $_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 0; + } else { + $_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Solidaritätserklärung zugestimmt"; + $_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 1; + $_liste["punkte"]++; + } + } + return $_liste; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/Sondersperrungen.php b/packages/zuladungsliste/Classes/Berechnung/Sondersperrungen.php new file mode 100644 index 0000000..37072ef --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/Sondersperrungen.php @@ -0,0 +1,98 @@ +, NUH-Odds GmbH + * + ***/ + +class Sondersperrungen +{ + /** + * @return void + */ + public static function load() + { + // _Berechnung::$debug = 1; + + if (_Berechnung::$debug) { + Message::debug( + __FILE__, + __LINE__, + "Load ListeBerechnung" + ); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_extrasperrung'); + $statement = $queryBuilder + ->select('tx_zuladungsliste_domain_model_extrasperrung.begruendung', 'tx_zuladungsliste_domain_model_extrasperrung.sperrzeitbis', 'b.uid_user', 'c.company') + ->from('tx_zuladungsliste_domain_model_extrasperrung') + ->join( + 'tx_zuladungsliste_domain_model_extrasperrung', + 'tx_zuladungsliste_extrasperrung_user_mm', + 'b', + $queryBuilder->expr()->eq('b.uid_extrasperrung', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_extrasperrung.uid')) + ) + ->join( + 'b', + 'fe_users', + 'c', + $queryBuilder->expr()->eq('c.uid', $queryBuilder->quoteIdentifier('b.uid_user')) + ) + ->where( + $queryBuilder->expr()->eq('c.kammernid', _Berechnung::$_config['kammernid']) + )->execute()->fetchAll(); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + $_sondersperrungen = []; + foreach ($statement as $key => $value) { + $uid_user = $value['uid_user']; + $value['sperrzeitbis_timestamp'] = strtotime($value['sperrzeitbis']); + $_sondersperrungen[$uid_user][] = $value; + } + _Berechnung::$_data['sondersperrungen'] = $_sondersperrungen; + } + + /** + * @return void + */ + public static function filter($_liste, $user_objekt) + { + $sperrzeitbis = 0; + $user_id = $user_objekt["uid"]; + if (isset(_Berechnung::$_data['sondersperrungen'][$user_id])) { + foreach (_Berechnung::$_data['sondersperrungen'][$user_id] as $key => $value_sperrung) { + $brechnen_bis = _Berechnung::$_config['berechne_bis']; + $brechnen_bis = !$brechnen_bis ? time() : $brechnen_bis; + if ($brechnen_bis < $value_sperrung["sperrzeitbis_timestamp"] + and $data["gesperrt_bis"] < $value_sperrung["sperrzeitbis"] + and $value_sperrung["sperrzeitbis"] > $sperrzeitbis) { + // $return["gesperrt_bis"] = $value_sperrung["sperrzeitbis_timestamp"]; + $sperrzeitbis = $value_sperrung["sperrzeitbis"]; + $data = []; + $data["gesperrt"] = 1; + $data["gesperrt_bis"] = $value_sperrung["sperrzeitbis"]; + $data["kommentar"] = $value_sperrung["begruendung"]; + $_liste["auswertung"]['sondersperrungen']['data'] = $data; + $_liste["gesperrt_bis"] = $value_sperrung["sperrzeitbis"]; + $_liste["nominiert"] = 0; + } + } + } + return $_liste; + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/WettbewerbeArchitekten.php b/packages/zuladungsliste/Classes/Berechnung/WettbewerbeArchitekten.php new file mode 100644 index 0000000..d7253b5 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/WettbewerbeArchitekten.php @@ -0,0 +1,63 @@ +, NUH-Odds GmbH + * + ***/ + +class WettbewerbeArchitekten +{ + /** + * @return void + */ + public static function load() + { + if (_Berechnung::$debug) { + Message::debug(__FILE__, __LINE__, 'Load Wettbewerbe Architekten'); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder + ->select( + 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid AS uid_wettarch', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_user', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_punkte', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_zuordnung', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_aktivierung', + 'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_ablehnen', + 'a.wettbewerb', + 'a.bundesland', + 'a.entscheidungstermin', + 'a.abgabetermin', + 'a.kriteriumid' + ) + ->from('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->join( + 'tx_zuladungsliste_wettbewerbe_architekten_mm', + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'a', + $queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe')) + )->where( + $queryBuilder->expr()->gt('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_punkte', 0), + // $queryBuilder->expr()->eq('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe', 729) + ); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + return $queryBuilder->execute()->fetchAll(); + } +} diff --git a/packages/zuladungsliste/Classes/Berechnung/_Berechnung.php b/packages/zuladungsliste/Classes/Berechnung/_Berechnung.php new file mode 100644 index 0000000..7d42d43 --- /dev/null +++ b/packages/zuladungsliste/Classes/Berechnung/_Berechnung.php @@ -0,0 +1,287 @@ +, NUH-Odds GmbH + * + ***/ + +class _Berechnung +{ + public static $_return = []; + public static $_data = []; + public static $_config = []; + public static $debug = 0; + + /** + * @return string + */ + public function __construct($berechne_bis = 0) + { + self::$debug = 0; + + // $berechne_bis = mktime(0, 0, 0, 6, 15, 2023); + + self::$_data = []; + $user = $GLOBALS['TSFE']->fe_user->user; + self::$_config['pid'] = 41; // Ordner ID der gültigen Architeken + self::$_config['kammernid'] = 1; // Kammer ID is fixed to Steiermarkfor now + self::$_config['userid'] = $user['uid']; + self::$_config['usergroup'] = 2; // 2 => Ordentliche Registrierung zur Zuladungsliste + self::$_config['liste_start'] = mktime(0, 0, 0, 6, 15, 2017); // 15 July 2017 12:00:00 AM CEST + + if ($berechne_bis) { + self::$_config['berechne_bis'] = $berechne_bis; + } else { + self::$_config['berechne_bis'] = 0; + } + + // self::$_config['berechne_bis'] = 1707748093; + + if(self::$_config['berechne_bis']) + _Berechnung::$_config['berechne_bis_datum'] = date('Y-m-d', _Berechnung::$_config['berechne_bis']); + else + _Berechnung::$_config['berechne_bis_datum'] = date('Y-m-d'); + } + + /** + * @return string + */ + public static function berechnen() + { + self::$_data = []; + + self::$debug = 0; + + Sondersperrungen::load(); + + // controllo = 0 => all + $architekt_uid = 0; + // $architekt_uid = [326,259]; + // $architekt_uid = [280,244]; + // $architekt_uid = [132, 366]; + + Architekten::load($architekt_uid); + + // print_r(self::$_data); exit; + + Sektionstage::load(); + + foreach (self::$_data['architekten'] as $key => $user_objekt) { + $_liste = []; + $_liste["id"] = $user_objekt["uid"]; + $_liste["disable"] = $user_objekt["disable"]; + $_liste["user_id"] = $user_objekt["uid"]; + $_liste["company"] = $user_objekt["company"]; + $_liste["name"] = $user_objekt["name"]; + // $_liste["last_name"] = $user_objekt["last_name"]; + // $_liste["vereidigung"] = $user_objekt["vereidigung"]; + $_liste["kontoaufloesung"] = $user_objekt["kontoaufloesung"]; + $_liste["kontoaufloesung_active"] = $user_objekt["kontoaufloesung_active"]; + // $_liste["nameorder"] = $_liste["last_name"]!="" ? $_liste["last_name"] : $_liste["company"]; + + $_liste["punkte"] = 0; + $_liste["auswertung"] = []; + + + // WETTBEWERBE ERFOLGSPUNKTE + $_liste = Erfolgspunkte::load_user($_liste, $user_objekt); + + // SONDER SPERRUNGEN + $_liste = Sondersperrungen::filter($_liste, $user_objekt); + + // NEUEINSTEIGERPUNKT + $_liste = Neueinsteiger::load($_liste, $user_objekt); + + // FRAUEN FÖRDERUNGS PUNKT + $_liste = Frauen::load($_liste, $user_objekt); + + // SOLIDARITÄTSERKLÄRUNG + $_liste = Solidaritaetserklaerung::filter($_liste, $user_objekt); + + + $_liste["aeltestes_entscheidungs_datum"] = isset($_liste["auswertung"]["wettbewerbe"][0]) ? $_liste["auswertung"]["wettbewerbe"][0]["entscheidungstermin"] : 0; + + if ($user_objekt["vereidigung"]) { + $vereidigung = strtotime($user_objekt["vereidigung"]); + } + if ($_liste["aeltestes_entscheidungs_datum"] != 0) { + $aeltestes_entscheidungs_datum = strtotime($_liste["aeltestes_entscheidungs_datum"]); + } + + if ($_liste["punkte"] == 0) { + $_liste["nominiert"] = 0; + } + + + + if ($_liste["punkte"] == 0) { + $_liste["sortdatum"] = 100000000; + } elseif (isset($vereidigung) and isset($aeltestes_entscheidungs_datum)) { + $_liste["sortdatum"] = $aeltestes_entscheidungs_datum < $vereidigung ? $aeltestes_entscheidungs_datum : $vereidigung; + } elseif (isset($vereidigung)) { + $_liste["sortdatum"] = $vereidigung; + } elseif (isset($aeltestes_entscheidungs_datum)) { + $_liste["sortdatum"] = $aeltestes_entscheidungs_datum; + } else { + $_liste["sortdatum"] = 100000000; + } + + // if($user_objekt["uid"]==353){ + // print_r($_liste['punkte']); + // exit; + // } + + self::$_data['liste'][] = $_liste; + } + + + if (is_array(self::$_data['liste'])) { + + AufloesungPunkteVerteilung::manage(); + // print_r(self::$_data['liste']); + // exit; + /*** + Reihung der Liste absolut + a) Punktezahl + b) bei Gleichstand: Ältestes in der Wertung befindliche Zuerkennungs-, Entscheidungs- oder Vereidigungsdatum geht vor + c) falls immer noch Gleichstand: Reihung alphabetisch nach Nach- bzw. Firmennamen + */ + + PunkteVerschiebung::manage(); + + $punkte = array_column(self::$_data['liste'], 'punkte'); + $sortdatum = array_column(self::$_data['liste'], 'sortdatum'); + $nameorder = array_column(self::$_data['liste'], 'company'); + foreach ($nameorder as $key => $value) { + $nameorder[$key] = strtolower($value); + } + array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $sortdatum, SORT_NUMERIC, SORT_DESC, $nameorder, SORT_ASC, SORT_STRING, self::$_data['liste']); + + // print_r(self::$_data['liste']); + // exit; + + /*** + Reihung für Nominierung Wie Reihung absolut, aber ohne Zählung von gesperrten Teilnehmern (Sperre bei WB-Teilnahme an geladenen WB, aber nicht nur durch Nominierung aus der Liste(!), dzt. 18 Monate) + Nominierung Herangezogen wird die Nominierungsreihung. + 1 Nominierung: Nr. 1 der Nominierungsreihung + 2 Nominierungen: Nr. 1 und die Nr. des Absolutwerts der Hälfte des Maximalwerts der Nominierungsreihung (z.B. 35 in der Nominierungswertung, gezogen wird Nr. 1 und Nr. 17) + 3 Nominierungen: Nr. 1, die Nr. des Absolutwerts von 2/3 des Maximalwerts der Nominierungsreihung, die Nr. des Absolutwerts von 1/3 des Maximalwerts der Nominierungsreihung (z.B. 35 in der Nominierungswertung, gezogen wird Nr. 1, Nr. 11, Nr. 23) + ab 4 Nominierungen: Die ersten 3 Nominierungen wie oben, nächste ist die Nr. 2, nächste die dem Absolutwert von 2/3 des Maximalwerts der Nominierungreihung folgende Zahl (z.B. bei obigem Beispiel, aber 5 aus 35: Nr. 1,2,11,12,23) + */ + + $arr = []; + $pos = 1; + $rang = 1; + foreach (self::$_data['liste'] as $key => $value) { + if ($value["disable"] == 0) { + $value["rang"] = $rang; + $rang++; + + $sperre_wettbewerbe = $value["auswertung"]["wettbewerbe"]["gesperrt_bis"]; + $sperre_sondersperrungen = $value["auswertung"]["sondersperrungen"]['data']["gesperrt_bis"]; + + $sperre_wettbewerbe = str_replace(". ", "-", $sperre_wettbewerbe); + if (strtotime($sperre_wettbewerbe) > self::$_config['berechne_bis']) { + $value["gesperrt_bis"] = $sperre_wettbewerbe; + } + if (strtotime($sperre_sondersperrungen) > self::$_config['berechne_bis']) { + $value["gesperrt_bis"] = $sperre_sondersperrungen; + } + + $value["punkte"] = (float) $value["punkte"]; + if ($value["nominiert"] == 1 and $value["punkte"] > 0) { + $value["pos"] = $pos; + $pos++; + } else { + $value["pos"] = 0; + } + // unset($value["auswertung"]); + unset($value["nameorder"]); + unset($value["aeltestes_entscheidungs_datum"]); + unset($value["last_name"]); + unset($value["vereidigung"]); + + $arr[] = $value; + } + } + + // print_r(self::$_data['liste']); + // exit; + + $eins = $pos; + $zwei = floor($pos / 2); + $drei = floor($pos / 3); + $vier = floor($pos / 4); + $fuenf = floor($pos / 5); + $sechs = floor($pos / 6); + + // echo "\neins: " . $eins; + // echo "\nzwei: " . $zwei; + // echo "\ndrei: " . $drei; + // echo "\nvier: " . $vier; + // echo "\nfünf: " . $fuenf; + // echo "\nsechs: " . $sechs; + + self::$_data['liste'] = []; + foreach ($arr as $key => $value) { + $pos = $value["pos"]; + if ($pos == 1) { + $value["n1"] = 1; + $value["n2"] = 1; + $value["n3"] = 1; + $value["n4"] = 1; + $value["n5"] = 1; + $value["n6"] = 1; + } elseif ($pos > 1) { + $value["n2"] = ($pos == $zwei) ? 1 : 0; + $value["n3"] = ($pos == $drei || $pos == $drei * 2) ? 1 : 0; + $value["n4"] = ($pos == 2 || $pos == $drei || $pos == $drei * 2) ? 1 : 0; + $value["n5"] = ($pos == 2 || $pos == $drei || $pos == $drei + 1 || $pos == $drei * 2) ? 1 : 0; + $value["n6"] = ($pos == 2 || $pos == $drei || $pos == $drei + 1 || $pos == $drei * 2 || $pos == $drei * 2 + 1) ? 1 : 0; + // $value["n4"] = $pos==$vier || $pos==$vier*2 || $pos==$vier*3?1:0; + // $value["n5"] = $pos==$fuenf || $pos==$fuenf*2 || $pos==$fuenf*3 || $pos==$fuenf*4?1:0; + } + + if ($pos == 2) { + $value["e1"] = 1; + $value["e2"] = 1; + $value["e3"] = 1; + } + if ($pos == 3) { + $value["e4"] = 1; + $value["e5"] = 1; + $value["e6"] = 1; + } elseif ($pos > 3) { + $value["e2"] = ($pos == $zwei + 1) ? 1 : 0; + $value["e3"] = ($pos == $drei + 1 || $pos == $drei * 2 + 1) ? 1 : 0; + $value["e4"] = ($pos == 4 || $pos == $drei + 1 || $pos == $drei * 2 + 1) ? 1 : 0; + $value["e5"] = ($pos == 4 || $pos == $drei + 2 || $pos == $drei + 3 || $pos == $drei * 2 + 1) ? 1 : 0; + $value["e6"] = ($pos == 4 || $pos == $drei + 2 || $pos == $drei + 3 || $pos == $drei * 2 + 2 || $pos == $drei * 2 + 3) ? 1 : 0; + // e6 condition needs controll todo + } + self::$_data['liste'][] = $value; + + } + } + + // print_r(self::$_data['liste']); + // exit; + } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Bootstrap/KammerById.php b/packages/zuladungsliste/Classes/Bootstrap/KammerById.php new file mode 100644 index 0000000..5d80fca --- /dev/null +++ b/packages/zuladungsliste/Classes/Bootstrap/KammerById.php @@ -0,0 +1,41 @@ +, NUH-Odds GmbH + * + ***/ + +class KammerById +{ + /** + * @param mixed $kammerid + * + * @return string + */ + public static function load($kammerid = 0) + { + if ($kammerid == 0) { + Message::warning(__file__, __line__, "KammerID fehlt"); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_domain_model_kammern')->createQueryBuilder(); + $statement = $queryBuilder->select('bezeichnung')->from('tx_zuladungsliste_domain_model_kammern') + ->where($queryBuilder->expr()->in('uid', $kammerid)) + ->execute(); + while ($row = $statement->fetch()) { + return $row['bezeichnung']; + } + } +} diff --git a/packages/zuladungsliste/Classes/Bootstrap/UserSettings.php b/packages/zuladungsliste/Classes/Bootstrap/UserSettings.php new file mode 100644 index 0000000..f0dafbe --- /dev/null +++ b/packages/zuladungsliste/Classes/Bootstrap/UserSettings.php @@ -0,0 +1,71 @@ +, NUH-Odds GmbH + * + ***/ + + use HermannTelser\Zuladungsliste\Utilities\Resources; + +class UserSettings +{ + /** + * + * @return array + */ + public static function load() + { + $user = $GLOBALS['TSFE']->fe_user->user; + + if ($user['gender'] == 0) { + $gender = 'Herr'; + } elseif ($user['gender'] == 1) { + $gender = 'Frau'; + } else { + $gender = ''; + } + + _Berechnung::$_return = [ + ['key' => 'userid', 'value' => $user['uid']], + ['key' => 'isadmin', 'value' => self::is_admin($user['usergroup'])], + ['key' => 'usergroup', 'value' => $user['usergroup']], + ['key' => 'gender', 'value' => $gender], + ['key' => 'username', 'value' => $user['username']], + ['key' => 'fullname', 'value' => $user['title'] . " " . $user['first_name'] . " " . $user['last_name']], + ['key' => 'company', 'value' => $user['company']], + ['key' => 'email', 'value' => $user['email']], + ['key' => 'inliste', 'value' => $user['inliste']], + ['key' => 'vereidigung', 'value' => $user['vereidigung']], + ['key' => 'frauenfoerderpunkt', 'value' => $user['frauenfoerderpunkt']], + ['key' => 'kammernid', 'value' => $user['kammernid']], + ['key' => 'kammermitgliedsnummer', 'value' => $user['kammermitgliedsnummer']], + ['key' => 'kammer', 'value' => KammerById::load($user['kammernid'])], + ['key' => 'displaymenu', 'value' => Resources::displaymenu()], + ['key' => 'sperren', 'value' => Resources::sperren()], + ['key' => 'years', 'value' => Resources::years()], + ['key' => 'next', 'value' => Resources::next()], + ['key' => 'bundeslaender', 'value' => Resources::bundeslaender()]]; + } + /** + * + * @return bool + */ + public static function is_admin($str) + { + $_arr = \explode(",", $str); + foreach ($_arr as $key => $value) { + if($value == '3') { + return true; + } + } + return false; + } +} diff --git a/packages/zuladungsliste/Classes/Bootstrap/_BootstrapController.php b/packages/zuladungsliste/Classes/Bootstrap/_BootstrapController.php new file mode 100644 index 0000000..aad22ec --- /dev/null +++ b/packages/zuladungsliste/Classes/Bootstrap/_BootstrapController.php @@ -0,0 +1,42 @@ + + * + * All rights reserved + * ************************************************************* */ + + +class _BootstrapController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'administrator': + UserSettings::load(); + break; + case 'start_liste': + UserSettings::load(); + break; + case 'load_archive_menu': + ArchiveMenu::load(); + break; + default: + Message::error(__FILE__, __LINE__, "no xaction switch defined"); + } + } +} diff --git a/packages/zuladungsliste/Classes/Controller/AdministrationController.php b/packages/zuladungsliste/Classes/Controller/AdministrationController.php new file mode 100644 index 0000000..46ca1df --- /dev/null +++ b/packages/zuladungsliste/Classes/Controller/AdministrationController.php @@ -0,0 +1,35 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Test case for class HermannTelser\Zuladungsliste\Controller\ExtrasperrungController. + * + * @author Hermann Telser + */ + class AdministrationController extends \TYPO3\CMS\Core\Tests\UnitTestCase +{ +} diff --git a/packages/zuladungsliste/Classes/Controller/ArchitektenController.php b/packages/zuladungsliste/Classes/Controller/ArchitektenController.php new file mode 100644 index 0000000..46e69b8 --- /dev/null +++ b/packages/zuladungsliste/Classes/Controller/ArchitektenController.php @@ -0,0 +1,150 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Test case for class HermannTelser\Zuladungsliste\Controller\KriterienController. + * + * @author Hermann Telser + */ +class ArchitektenController extends ActionController +{ + + /** + * @var \HermannTelser\Zuladungsliste\Controller\KriterienController + */ + protected $subject = NULL; + + public function setUp() + { + $this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\KriterienController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE); + } + + public function tearDown() + { + unset($this->subject); + } + + /** + * @test + */ + public function listActionFetchesAllKriteriensFromRepositoryAndAssignsThemToView() + { + $allKriteriens = $this->getMock('TYPO3\CMS\Extbase\Persistence\ObjectStorage', array(), array(), '', FALSE); + $kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('findAll'), array(), '', FALSE); + $kriterienRepository->expects($this->once())->method('findAll')->will($this->returnValue($allKriteriens)); + $this->inject($this->subject, 'kriterienRepository', $kriterienRepository); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $view->expects($this->once())->method('assign')->with('kriteriens', $allKriteriens); + $this->inject($this->subject, 'view', $view); + $this->subject->listAction(); + } + + /** + * @test + */ + public function showActionAssignsTheGivenKriterienToView() + { + $kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien(); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $this->inject($this->subject, 'view', $view); + $view->expects($this->once())->method('assign')->with('kriterien', $kriterien); + $this->subject->showAction($kriterien); + } + + /** + * @test + */ + public function createActionAddsTheGivenKriterienToKriterienRepository() + { + $kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien(); + $kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('add'), array(), '', FALSE); + $kriterienRepository->expects($this->once())->method('add')->with($kriterien); + $this->inject($this->subject, 'kriterienRepository', $kriterienRepository); + $this->subject->createAction($kriterien); + } + + /** + * @test + */ + public function editActionAssignsTheGivenKriterienToView() + { + $kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien(); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $this->inject($this->subject, 'view', $view); + $view->expects($this->once())->method('assign')->with('kriterien', $kriterien); + $this->subject->editAction($kriterien); + } + + /** + * @test + */ + public function updateActionUpdatesTheGivenKriterienInKriterienRepository() + { + $kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien(); + $kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('update'), array(), '', FALSE); + $kriterienRepository->expects($this->once())->method('update')->with($kriterien); + $this->inject($this->subject, 'kriterienRepository', $kriterienRepository); + $this->subject->updateAction($kriterien); + } + + /** + * @test + */ + public function deleteActionRemovesTheGivenKriterienFromKriterienRepository() + { + $kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien(); + $kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('remove'), array(), '', FALSE); + $kriterienRepository->expects($this->once())->method('remove')->with($kriterien); + $this->inject($this->subject, 'kriterienRepository', $kriterienRepository); + $this->subject->deleteAction($kriterien); + } + + /** + * action list + * + * @return void + */ + public function listAction() + { + // $architektens = $this->architektenRepository->findAll(); + // $this->view->assign('architektens', $architektens); + } + + /** + * action + * + * @return void + */ + public function Action() + { + + } + +} diff --git a/packages/zuladungsliste/Classes/Controller/EditController.php b/packages/zuladungsliste/Classes/Controller/EditController.php new file mode 100644 index 0000000..e26e2b1 --- /dev/null +++ b/packages/zuladungsliste/Classes/Controller/EditController.php @@ -0,0 +1,20 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Test case for class HermannTelser\Zuladungsliste\Controller\WettbewerbeController. + * + * @author Hermann Telser + */ +class ExtrasperrungController extends \TYPO3\CMS\Core\Tests\UnitTestCase +{ + + /** + * @var \HermannTelser\Zuladungsliste\Controller\WettbewerbeController + */ + protected $subject = NULL; + + public function setUp() + { + $this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\WettbewerbeController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE); + } + + public function tearDown() + { + unset($this->subject); + } + + /** + * @test + */ + public function listActionFetchesAllWettbewerbesFromRepositoryAndAssignsThemToView() + { + $allWettbewerbes = $this->getMock('TYPO3\CMS\Extbase\Persistence\ObjectStorage', array(), array(), '', FALSE); + $wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('findAll'), array(), '', FALSE); + $wettbewerbeRepository->expects($this->once())->method('findAll')->will($this->returnValue($allWettbewerbes)); + $this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $view->expects($this->once())->method('assign')->with('wettbewerbes', $allWettbewerbes); + $this->inject($this->subject, 'view', $view); + $this->subject->listAction(); + } + + /** + * @test + */ + public function showActionAssignsTheGivenWettbewerbeToView() + { + $wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe(); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $this->inject($this->subject, 'view', $view); + $view->expects($this->once())->method('assign')->with('wettbewerbe', $wettbewerbe); + $this->subject->showAction($wettbewerbe); + } + + /** + * @test + */ + public function createActionAddsTheGivenWettbewerbeToWettbewerbeRepository() + { + $wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe(); + $wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('add'), array(), '', FALSE); + $wettbewerbeRepository->expects($this->once())->method('add')->with($wettbewerbe); + $this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository); + $this->subject->createAction($wettbewerbe); + } + + /** + * @test + */ + public function editActionAssignsTheGivenWettbewerbeToView() + { + $wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe(); + $view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface'); + $this->inject($this->subject, 'view', $view); + $view->expects($this->once())->method('assign')->with('wettbewerbe', $wettbewerbe); + $this->subject->editAction($wettbewerbe); + } + + /** + * @test + */ + public function updateActionUpdatesTheGivenWettbewerbeInWettbewerbeRepository() + { + $wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe(); + $wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('update'), array(), '', FALSE); + $wettbewerbeRepository->expects($this->once())->method('update')->with($wettbewerbe); + $this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository); + $this->subject->updateAction($wettbewerbe); + } + + /** + * @test + */ + public function deleteActionRemovesTheGivenWettbewerbeFromWettbewerbeRepository() + { + $wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe(); + $wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('remove'), array(), '', FALSE); + $wettbewerbeRepository->expects($this->once())->method('remove')->with($wettbewerbe); + $this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository); + $this->subject->deleteAction($wettbewerbe); + } + + /** + * action + * + * @return void + */ + public function Action() + { + + } + +} diff --git a/packages/zuladungsliste/Classes/Controller/KriterienController.php b/packages/zuladungsliste/Classes/Controller/KriterienController.php new file mode 100644 index 0000000..2a0224c --- /dev/null +++ b/packages/zuladungsliste/Classes/Controller/KriterienController.php @@ -0,0 +1,142 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Test case for class HermannTelser\Zuladungsliste\Controller\ExtrasperrungController. + * + * @author Hermann Telser + */ +class KriterienController extends \TYPO3\CMS\Core\Tests\UnitTestCase +{ + + /** + * @var \HermannTelser\Zuladungsliste\Controller\ExtrasperrungController + */ + protected $subject = NULL; + + /** + * kriterienRepository + * + * @var \HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository + * @TYPO3CMSExtbaseAnnotationInject + */ + protected $kriterienRepository = NULL; + + public function setUp() + { + $this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\ExtrasperrungController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE); + } + + public function tearDown() + { + unset($this->subject); + } + + /** + * action list + * + * @return void + */ + public function listAction() + { + $kriteriens = $this->kriterienRepository->findAll(); + $this->view->assign('kriteriens', $kriteriens); + } + + /** + * action show + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien + * @return void + */ + public function showAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien) + { + $this->view->assign('kriterien', $kriterien); + } + + /** + * action new + * + * @return void + */ + public function newAction() + { + + } + + /** + * action create + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $newKriterien + * @return void + */ + public function createAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $newKriterien) + { + $this->addFlashMessage('The object was created. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->kriterienRepository->add($newKriterien); + $this->redirect('list'); + } + + /** + * action edit + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien + * @TYPO3CMS\Extbase\Annotation\IgnoreValidation $kriterien + * @return void + */ + public function editAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien) + { + $this->view->assign('kriterien', $kriterien); + } + + /** + * action update + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien + * @return void + */ + public function updateAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien) + { + $this->addFlashMessage('The object was updated. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->kriterienRepository->update($kriterien); + $this->redirect('list'); + } + + /** + * action delete + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien + * @return void + */ + public function deleteAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien) + { + $this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->kriterienRepository->remove($kriterien); + $this->redirect('list'); + } + +} diff --git a/packages/zuladungsliste/Classes/Controller/NewController.php b/packages/zuladungsliste/Classes/Controller/NewController.php new file mode 100644 index 0000000..1230dd1 --- /dev/null +++ b/packages/zuladungsliste/Classes/Controller/NewController.php @@ -0,0 +1,20 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +use TYPO3\CMS\Extbase\Annotation\Inject; + +/** + * Test case for class \HermannTelser\Zuladungsliste\Domain\Model\Architekten. + * + * @copyright Copyright belongs to the respective authors + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later + * @author Hermann Telser + */ +class WettbewerbeController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController +{ + + /** + * @var \HermannTelser\Zuladungsliste\Domain\Model\Architekten + */ + protected $subject = NULL; + + /** + * wettbewerbeRepository + * + * @var \HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository + * @TYPO3\CMS\Extbase\Annotation\Inject + */ + protected $wettbewerbeRepository = NULL; + + public function setUp() + { + $this->subject = new \HermannTelser\Zuladungsliste\Domain\Model\Architekten(); + } + + public function tearDown() + { + unset($this->subject); + } + + + + /** + * @test + */ + public function getInlisteReturnsInitialValueForBool() + { + $this->assertSame(FALSE, $this->subject->getInliste()); + } + + /** + * @test + */ + public function setInlisteForBoolSetsInliste() + { + $this->subject->setInliste(TRUE); + $this->assertAttributeEquals(TRUE, 'inliste', $this->subject); + } + + /** + * @test + */ + public function getVereidigungReturnsInitialValueForDateTime() + { + $this->assertEquals(NULL, $this->subject->getVereidigung()); + } + + /** + * @test + */ + public function setVereidigungForDateTimeSetsVereidigung() + { + $dateTimeFixture = new \DateTime(); + $this->subject->setVereidigung($dateTimeFixture); + $this->assertAttributeEquals($dateTimeFixture, 'vereidigung', $this->subject); + } + + /** + * @test + */ + public function getGeburtsdatumReturnsInitialValueForDateTime() + { + $this->assertEquals(NULL, $this->subject->getGeburtsdatum()); + } + + /** + * @test + */ + public function setGeburtsdatumForDateTimeSetsGeburtsdatum() + { + $dateTimeFixture = new \DateTime(); + $this->subject->setGeburtsdatum($dateTimeFixture); + $this->assertAttributeEquals($dateTimeFixture, 'geburtsdatum', $this->subject); + } + + /** + * @test + */ + public function getfrauenfoerderpunktReturnsInitialValueForBool() + { + $this->assertSame(FALSE, $this->subject->getfrauenfoerderpunkt()); + } + + /** + * @test + */ + public function setfrauenfoerderpunktForBoolSetsfrauenfoerderpunkt() + { + $this->subject->setfrauenfoerderpunkt(TRUE); + $this->assertAttributeEquals(TRUE, 'frauenfoerderpunkt', $this->subject); + } + + /** + * action list + * + * @return void + */ + public function listAction() + { + $wettbewerbes = $this->wettbewerbeRepository->findAll(); + $this->view->assign('wettbewerbes', $wettbewerbes); + } + + /** + * action show + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe + * @return void + */ + public function showAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe) + { + $this->view->assign('wettbewerbe', $wettbewerbe); + } + + /** + * action new + * + * @return void + */ + public function newAction() + { + //// top.TYPO3.Backend.NavigationContainer.PageTree.select(38); + echo ''; + exit(); + } + + /** + * action create + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $newWettbewerbe + * @return void + */ + public function createAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $newWettbewerbe) + { + $this->addFlashMessage('The object was created. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->wettbewerbeRepository->add($newWettbewerbe); + $this->redirect('list'); + } + + /** + * action edit + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe + * @TYPO3\CMS\Extbase\Annotation\IgnoreValidation $wettbewerbe + * @return void + */ + public function editAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe) + { + $this->view->assign('wettbewerbe', $wettbewerbe); + } + + /** + * action update + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe + * @return void + */ + public function updateAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe) + { + $this->addFlashMessage('The object was updated. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->wettbewerbeRepository->update($wettbewerbe); + $this->redirect('list'); + } + + /** + * action delete + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe + * @return void + */ + public function deleteAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe) + { + $this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); + $this->wettbewerbeRepository->remove($wettbewerbe); + $this->redirect('list'); + } + +} diff --git a/packages/zuladungsliste/Classes/Domain/Model/Architekten.php b/packages/zuladungsliste/Classes/Domain/Model/Architekten.php new file mode 100644 index 0000000..03b559f --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Architekten.php @@ -0,0 +1,193 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Architeckten model extends FrondenUser model + */ +class Architekten extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser +{ + + /** + * kammermitgliedsnummer + * + * @var string + */ + protected $kammermitgliedsnummer; + + /** + * inliste + * + * @var bool + */ + protected $inliste = false; + + /** + * vereidigung + * + * @var \DateTime + */ + protected $vereidigung = null; + + /** + * geburtsdatum + * + * @var \DateTime + */ + protected $geburtsdatum = null; + + /** + * frauenfoerderpunkt + * + * @var bool + */ + protected $frauenfoerderpunkt = false; + + /** + * Returns the kammermitgliedsnummer + * + * @return string $kammermitgliedsnummer + */ + public function getKammermitgliedsnummer() { + return $this->kammermitgliedsnummer; + } + + /** + * Sets the kammermitgliedsnummer + * + * @param string $kammermitgliedsnummer + * @return void + */ + public function setKammermitgliedsnummer($kammermitgliedsnummer) { + $this->kammermitgliedsnummer = $kammermitgliedsnummer; + } + + /** + * Returns the inliste + * + * @return bool $inliste + */ + public function getInliste() + { + return $this->inliste; + } + + /** + * Sets the inliste + * + * @param bool $inliste + * @return void + */ + public function setInliste($inliste) + { + $this->inliste = $inliste; + } + + /** + * Returns the boolean state of inliste + * + * @return bool + */ + public function isInliste() + { + return $this->inliste; + } + + /** + * Returns the vereidigung + * + * @return \DateTime $vereidigung + */ + public function getVereidigung() + { + return $this->vereidigung; + } + + /** + * Sets the vereidigung + * + * @param \DateTime $vereidigung + * @return void + */ + public function setVereidigung(\DateTime $vereidigung) + { + $this->vereidigung = $vereidigung; + } + + /** + * Returns the geburtsdatum + * + * @return \DateTime $geburtsdatum + */ + public function getGeburtsdatum() + { + return $this->geburtsdatum; + } + + /** + * Sets the geburtsdatum + * + * @param \DateTime $geburtsdatum + * @return void + */ + public function setGeburtsdatum(\DateTime $geburtsdatum) + { + $this->geburtsdatum = $geburtsdatum; + } + + /** + * Returns the frauenfoerderpunkt + * + * @return bool $frauenfoerderpunkt + */ + public function getfrauenfoerderpunkt() + { + return $this->frauenfoerderpunkt; + } + + /** + * Sets the frauenfoerderpunkt + * + * @param bool $frauenfoerderpunkt + * @return void + */ + public function setfrauenfoerderpunkt($frauenfoerderpunkt) + { + $this->frauenfoerderpunkt = $frauenfoerderpunkt; + } + + /** + * Returns the boolean state of frauenfoerderpunkt + * + * @return bool + */ + public function isfrauenfoerderpunkt() + { + return $this->frauenfoerderpunkt; + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/Extrasperrung.php b/packages/zuladungsliste/Classes/Domain/Model/Extrasperrung.php new file mode 100644 index 0000000..129bbaf --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Extrasperrung.php @@ -0,0 +1,120 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Extrasperrung + */ +class Extrasperrung extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * begruendung + * + * @var string + */ + protected $begruendung = ''; + + /** + * sperrzeitbis + * + * @var \DateTime + */ + protected $sperrzeitbis = null; + + /** + * extrasperrungUser + * + * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<> + */ + protected $extrasperrungUser = null; + + /** + * Returns the begruendung + * + * @return string $begruendung + */ + public function getBegruendung() + { + return $this->begruendung; + } + + /** + * Sets the begruendung + * + * @param string $begruendung + * @return void + */ + public function setBegruendung($begruendung) + { + $this->begruendung = $begruendung; + } + + /** + * Returns the sperrzeitbis + * + * @return \DateTime $sperrzeitbis + */ + public function getSperrzeitbis() + { + return $this->sperrzeitbis; + } + + /** + * Sets the sperrzeitbis + * + * @param \DateTime $sperrzeitbis + * @return void + */ + public function setSperrzeitbis(\DateTime $sperrzeitbis) + { + $this->sperrzeitbis = $sperrzeitbis; + } + + /** + * __construct + */ + public function __construct() + { + //Do not remove the next line: It would break the functionality + $this->initStorageObjects(); + } + + /** + * Initializes all ObjectStorage properties + * Do not modify this method! + * It will be rewritten on each save in the extension builder + * You may modify the constructor of this class instead + * + * @return void + */ + protected function initStorageObjects() + { + $this->extrasperrungUser = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/Kammern.php b/packages/zuladungsliste/Classes/Domain/Model/Kammern.php new file mode 100644 index 0000000..1d993a9 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Kammern.php @@ -0,0 +1,63 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Kammern + */ +class Kammern extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * bezeichnung + * + * @var string + */ + protected $bezeichnung = ''; + + /** + * Returns the bezeichnung + * + * @return string $bezeichnung + */ + public function getBezeichnung() + { + return $this->bezeichnung; + } + + /** + * Sets the bezeichnung + * + * @param string $bezeichnung + * @return void + */ + public function setBezeichnung($bezeichnung) + { + $this->bezeichnung = $bezeichnung; + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/Kriterien.php b/packages/zuladungsliste/Classes/Domain/Model/Kriterien.php new file mode 100644 index 0000000..6823534 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Kriterien.php @@ -0,0 +1,119 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Wetbewerbsarten mit Bewertung + */ +class Kriterien extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * bezeichnung + * + * @var string + */ + protected $bezeichnung = ''; + + /** + * preisartid + * + * @var \HermannTelser\Zuladungsliste\Domain\Model\Preisart + */ + protected $preisartid = null; + + /** + * sektinstagid + * + * @var \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage + */ + protected $sektinstagid = null; + + /** + * Returns the bezeichnung + * + * @return string $bezeichnung + */ + public function getBezeichnung() + { + return $this->bezeichnung; + } + + /** + * Sets the bezeichnung + * + * @param string $bezeichnung + * @return void + */ + public function setBezeichnung($bezeichnung) + { + $this->bezeichnung = $bezeichnung; + } + + /** + * Returns the preisartid + * + * @return \HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid + */ + public function getPreisartid() + { + return $this->preisartid; + } + + /** + * Sets the preisartid + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid + * @return void + */ + public function setPreisartid(\HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid) + { + $this->preisartid = $preisartid; + } + + /** + * Returns the sektinstagid + * + * @return \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid + */ + public function getSektinstagid() + { + return $this->sektinstagid; + } + + /** + * Sets the sektinstagid + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid + * @return void + */ + public function setSektinstagid(\HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid) + { + $this->sektinstagid = $sektinstagid; + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/Preisart.php b/packages/zuladungsliste/Classes/Domain/Model/Preisart.php new file mode 100644 index 0000000..d87c7a1 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Preisart.php @@ -0,0 +1,63 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Preisart + */ +class Preisart extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * preisart + * + * @var string + */ + protected $preisart = ''; + + /** + * Returns the preisart + * + * @return string $preisart + */ + public function getPreisart() + { + return $this->preisart; + } + + /** + * Sets the preisart + * + * @param string $preisart + * @return void + */ + public function setPreisart($preisart) + { + $this->preisart = $preisart; + } + +} diff --git a/packages/zuladungsliste/Classes/Domain/Model/Punkte.php b/packages/zuladungsliste/Classes/Domain/Model/Punkte.php new file mode 100644 index 0000000..2406dbb --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Punkte.php @@ -0,0 +1,63 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Punkte + */ +class Punkte extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * bezeichnung + * + * @var string + */ + protected $bezeichnung = ''; + + /** + * Returns the bezeichnung + * + * @return string $bezeichnung + */ + public function getBezeichnung() + { + return $this->bezeichnung; + } + + /** + * Sets the bezeichnung + * + * @param string $bezeichnung + * @return void + */ + public function setBezeichnung($bezeichnung) + { + $this->bezeichnung = $bezeichnung; + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/Sektionstage.php b/packages/zuladungsliste/Classes/Domain/Model/Sektionstage.php new file mode 100644 index 0000000..ae03968 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Sektionstage.php @@ -0,0 +1,371 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Sektionstage + */ +class Sektionstage extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + + /** + * bezeichnung + * + * @var string + */ + protected $bezeichnung = ''; + + /** + * stichtag + * + * @var \DateTime + */ + protected $stichtag = null; + + /** + * sperrzeit + * + * @var int + */ + protected $sperrzeit = 0; + + /** + * sperrzeitstart + * + * @var \DateTime + */ + protected $sperrzeitstart = null; + + /** + * punktezeit + * + * @var int + */ + protected $punktezeit = 0; + + /** + * punktezeitstart + * + * @var \DateTime + */ + protected $punktezeitstart = null; + + /** + * neueinsteiger + * + * @var int + */ + protected $neueinsteiger = 0; + + /** + * neueinsteigerstart + * + * @var \DateTime + */ + protected $neueinsteigerstart = null; + + /** + * frauenfoerderung + * + * @var int + */ + protected $frauenfoerderung = 0; + + /** + * frauenfoerderungstart + * + * @var \DateTime + */ + protected $frauenfoerderungstart = null; + + /** + * frauenfoerderungsonderstart + * + * @var \DateTime + */ + protected $frauenfoerderungsonderstart = null; + + /** + * kammernid + * + * @var \HermannTelser\Zuladungsliste\Domain\Model\Kammern + */ + protected $kammernid = null; + + /** + * Returns the bezeichnung + * + * @return string $bezeichnung + */ + public function getBezeichnung() + { + return $this->bezeichnung; + } + + /** + * Sets the bezeichnung + * + * @param string $bezeichnung + * @return void + */ + public function setBezeichnung($bezeichnung) + { + $this->bezeichnung = $bezeichnung; + } + + /** + * Returns the stichtag + * + * @return \DateTime $stichtag + */ + public function getStichtag() + { + return $this->stichtag; + } + + /** + * Sets the stichtag + * + * @param \DateTime $stichtag + * @return void + */ + public function setStichtag(\DateTime $stichtag) + { + $this->stichtag = $stichtag; + } + + /** + * Returns the sperrzeit + * + * @return int $sperrzeit + */ + public function getSperrzeit() + { + return $this->sperrzeit; + } + + /** + * Sets the sperrzeit + * + * @param int $sperrzeit + * @return void + */ + public function setSperrzeit($sperrzeit) + { + $this->sperrzeit = $sperrzeit; + } + + /** + * Returns the sperrzeitstart + * + * @return \DateTime $sperrzeitstart + */ + public function getSperrzeitstart() + { + return $this->sperrzeitstart; + } + + /** + * Sets the sperrzeitstart + * + * @param \DateTime $sperrzeitstart + * @return void + */ + public function setSperrzeitstart(\DateTime $sperrzeitstart) + { + $this->sperrzeitstart = $sperrzeitstart; + } + + /** + * Returns the punktezeit + * + * @return int $punktezeit + */ + public function getPunktezeit() + { + return $this->punktezeit; + } + + /** + * Sets the punktezeit + * + * @param int $punktezeit + * @return void + */ + public function setPunktezeit($punktezeit) + { + $this->punktezeit = $punktezeit; + } + + /** + * Returns the punktezeitstart + * + * @return \DateTime $punktezeitstart + */ + public function getPunktezeitstart() + { + return $this->punktezeitstart; + } + + /** + * Sets the punktezeitstart + * + * @param \DateTime $punktezeitstart + * @return void + */ + public function setPunktezeitstart(\DateTime $punktezeitstart) + { + $this->punktezeitstart = $punktezeitstart; + } + + /** + * Returns the neueinsteiger + * + * @return int $neueinsteiger + */ + public function getNeueinsteiger() + { + return $this->neueinsteiger; + } + + /** + * Sets the neueinsteiger + * + * @param int $neueinsteiger + * @return void + */ + public function setNeueinsteiger($neueinsteiger) + { + $this->neueinsteiger = $neueinsteiger; + } + + /** + * Returns the neueinsteigerstart + * + * @return \DateTime $neueinsteigerstart + */ + public function getNeueinsteigerstart() + { + return $this->neueinsteigerstart; + } + + /** + * Sets the neueinsteigerstart + * + * @param \DateTime $neueinsteigerstart + * @return void + */ + public function setNeueinsteigerstart(\DateTime $neueinsteigerstart) + { + $this->neueinsteigerstart = $neueinsteigerstart; + } + + /** + * Returns the frauenfoerderung + * + * @return int $frauenfoerderung + */ + public function getFrauenfoerderung() + { + return $this->frauenfoerderung; + } + + /** + * Sets the frauenfoerderung + * + * @param int $frauenfoerderung + * @return void + */ + public function setFrauenfoerderung($frauenfoerderung) + { + $this->frauenfoerderung = $frauenfoerderung; + } + + /** + * Returns the frauenfoerderungstart + * + * @return \DateTime $frauenfoerderungstart + */ + public function getFrauenfoerderungstart() + { + return $this->frauenfoerderungstart; + } + + /** + * Sets the frauenfoerderungstart + * + * @param \DateTime $frauenfoerderungstart + * @return void + */ + public function setFrauenfoerderungstart(\DateTime $frauenfoerderungstart) + { + $this->frauenfoerderungstart = $frauenfoerderungstart; + } + + /** + * Returns the frauenfoerderungsonderstart + * + * @return \DateTime $frauenfoerderungsonderstart + */ + public function getFrauenfoerderungsonderstart() + { + return $this->frauenfoerderungsonderstart; + } + + /** + * Sets the frauenfoerderungsonderstart + * + * @param \DateTime $frauenfoerderungsonderstart + * @return void + */ + public function setFrauenfoerderungsonderstart(\DateTime $frauenfoerderungsonderstart) + { + $this->frauenfoerderungsonderstart = $frauenfoerderungsonderstart; + } + + /** + * Returns the kammernid + * + * @return \HermannTelser\Zuladungsliste\Domain\Model\Kammern kammernid + */ + public function getKammernid() + { + return $this->kammernid; + } + + /** + * Sets the kammernid + * + * @param \HermannTelser\Zuladungsliste\Domain\Model\Kammern $kammernid + * @return void + */ + public function setKammernid(\HermannTelser\Zuladungsliste\Domain\Model\Kammern $kammernid) + { + $this->kammernid = $kammernid; + } + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Model/User.php b/packages/zuladungsliste/Classes/Domain/Model/User.php new file mode 100644 index 0000000..2cf611d --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/User.php @@ -0,0 +1,90 @@ +kammermitgliedsnummer; + } + + /** + * Sets the kammermitgliedsnummer + * + * @param string $kammermitgliedsnummer + * @return void + */ + public function setKammermitgliedsnummer($kammermitgliedsnummer) + { + $this->kammermitgliedsnummer = $kammermitgliedsnummer; + } + + + /** + * @return bool + */ + public function getFrauenfoerderpunkt() + { + return $this->frauenfoerderpunkt; + } + + /** + * Sets the frauenfoerderpunkt + * + * @param bool $frauenfoerderpunkt + * @return void + */ + public function setFrauenfoerderpunkt($frauenfoerderpunkt) + { + $this->frauenfoerderpunkt = $frauenfoerderpunkt; + } + + + /** + * @return string + */ + public function getVereidigung() + { + return $this->vereidigung; + } + + /** + * Sets the Vereidigung + * + * @param string $vereidigung + * @return void + */ + public function setVereidigung($vereidigung) + { + $this->vereidigung = $vereidigung; + } +} diff --git a/packages/zuladungsliste/Classes/Domain/Model/Wettbewerbe.php b/packages/zuladungsliste/Classes/Domain/Model/Wettbewerbe.php new file mode 100644 index 0000000..248e6b0 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Model/Wettbewerbe.php @@ -0,0 +1,355 @@ + + */ + protected $wettbewerbUser = null; + + /** + * Returns the wettbewerb + * + * @return string $wettbewerb + */ + public function getWettbewerb() + { + return $this->wettbewerb; + } + + /** + * Sets the wettbewerb + * + * @param string $wettbewerb + * @return void + */ + public function setWettbewerb($wettbewerb) + { + $this->wettbewerb = $wettbewerb; + } + + /** + * Returns the beschreibung + * + * @return string $beschreibung + */ + public function getBeschreibung() + { + return $this->beschreibung; + } + + /** + * Sets the beschreibung + * + * @param string $beschreibung + * @return void + */ + public function setBeschreibung($beschreibung) + { + $this->beschreibung = $beschreibung; + } + + /** + * Returns the registrierung + * + * @return string $registrierung + */ + public function getRegistrierung() + { + return $this->registrierung; + } + + /** + * Sets the registrierung + * + * @param string $registrierung + * @return void + */ + public function setRegistrierung($registrierung) + { + $this->registrierung = $registrierung; + } + + /** + * Returns the verfahrensort + * + * @return string $verfahrensort + */ + public function getVerfahrensort() + { + return $this->verfahrensort; + } + + /** + * Sets the verfahrensort + * + * @param string $verfahrensort + * @return void + */ + public function setVerfahrensort($verfahrensort) + { + $this->verfahrensort = $verfahrensort; + } + + /** + * Returns the bundesland + * + * @return string $bundesland + */ + public function getBundesland() + { + return $this->bundesland; + } + + /** + * Sets the bundesland + * + * @param string $bundesland + * @return void + */ + public function setBundesland($bundesland) + { + $this->bundesland = $bundesland; + } + + /** + * Returns the abgabetermin + * + * @return \DateTime $abgabetermin + */ + public function getAbgabetermin() + { + return $this->abgabetermin; + } + + /** + * Sets the abgabetermin + * + * @param \DateTime $abgabetermin + * @return void + */ + public function setAbgabetermin(\DateTime $abgabetermin) + { + $this->abgabetermin = $abgabetermin; + } + + /** + * Returns the kammerbeschluss + * + * @return \DateTime $kammerbeschluss + */ + public function getKammerbeschluss() + { + return $this->kammerbeschluss; + } + + /** + * Sets the kammerbeschluss + * + * @param \DateTime $kammerbeschluss + * @return void + */ + public function setKammerbeschluss(\DateTime $kammerbeschluss) + { + $this->kammerbeschluss = $kammerbeschluss; + } + + /** + * Returns the entscheidungstermin + * + * @return \DateTime $entscheidungstermin + */ + public function getEntscheidungstermin() + { + return $this->entscheidungstermin; + } + + /** + * Sets the entscheidungstermin + * + * @param \DateTime $entscheidungstermin + * @return void + */ + public function setEntscheidungstermin(\DateTime $entscheidungstermin) + { + $this->entscheidungstermin = $entscheidungstermin; + } + + /** + * Returns the sperrung + * + * @return bool $sperrung + */ + public function getSperrung() + { + return $this->sperrung; + } + + /** + * Sets the sperrung + * + * @param bool $sperrung + * @return void + */ + public function setSperrung($sperrung) + { + $this->sperrung = $sperrung; + } + + /** + * Returns the boolean state of sperrung + * + * @return bool + */ + public function isSperrung() + { + return $this->sperrung; + } + + /** + * Returns the aufgabenstellung + * + * @return string $aufgabenstellung + */ + public function getAufgabenstellung() + { + return $this->aufgabenstellung; + } + + /** + * Sets the aufgabenstellung + * + * @param string $aufgabenstellung + * @return void + */ + public function setAufgabenstellung($aufgabenstellung) + { + $this->aufgabenstellung = $aufgabenstellung; + } + + /** + * __construct + */ + public function __construct() + { + //Do not remove the next line: It would break the functionality + $this->initStorageObjects(); + } + + /** + * Initializes all ObjectStorage properties + * Do not modify this method! + * It will be rewritten on each save in the extension builder + * You may modify the constructor of this class instead + * + * @return void + */ + protected function initStorageObjects() + { + $this->wettbewerbUser = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); + } + +} diff --git a/packages/zuladungsliste/Classes/Domain/Repository/ArchitektenRepository.php b/packages/zuladungsliste/Classes/Domain/Repository/ArchitektenRepository.php new file mode 100644 index 0000000..633f038 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Repository/ArchitektenRepository.php @@ -0,0 +1,36 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * The repository for Architektens + */ +class ArchitektenRepository extends \TYPO3\CMS\Extbase\Persistence\Repository +{ + + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Repository/KriterienRepository.php b/packages/zuladungsliste/Classes/Domain/Repository/KriterienRepository.php new file mode 100644 index 0000000..cbc47e1 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Repository/KriterienRepository.php @@ -0,0 +1,36 @@ +, Hermann Telser + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * The repository for Kriteriens + */ +class KriterienRepository extends \TYPO3\CMS\Extbase\Persistence\Repository +{ + + +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Domain/Repository/WettbewerbeRepository.php b/packages/zuladungsliste/Classes/Domain/Repository/WettbewerbeRepository.php new file mode 100644 index 0000000..63c3753 --- /dev/null +++ b/packages/zuladungsliste/Classes/Domain/Repository/WettbewerbeRepository.php @@ -0,0 +1,36 @@ +getQueryBuilderForTable('tx_zuladungsliste_archive_admin'); + $statement = $queryBuilder + ->select('liste', 'crdate') + ->from('tx_zuladungsliste_archive_admin') + ->where( + $queryBuilder->expr()->eq('uid', (int) $pdf_archive_id) + ) + ->execute()->fetchAll(); + $_liste = json_decode($statement[0]['liste'], true); + $timestamp = $statement[0]['crdate']; + $timestamp_formattet = (strftime('%A %d. %B %Y', $statement[0]['crdate'])); + $timestamp_titel = (strftime('%d. %b. %Y', $statement[0]['crdate'])); + } else { + $berechnene::berechnen(); + ListeTree::set_dijit(); + $_liste = $berechnene::$_return; + $timestamp = time(); + $timestamp_formattet = strftime('%A %d. %B %Y', time()); + $timestamp_titel = strftime('%d. %b. %Y', time()); + } + + self::$Mpdf = new \Mpdf\Mpdf([ + 'mode' => 'utf-8', + 'format' => 'A4-P', + 'margin_left' => 7, + 'margin_right' => 7, + 'margin_top' => 12, + 'margin_bottom' => 12, + 'margin_header' => 0, + 'margin_footer' => 0, + ]); + self::$Mpdf->SetTitle("ZL vom " . $timestamp_titel); + $stylesheet = file_get_contents($extPath.'Classes/Download/style.css'); + self::$Mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS); + + // logo + $html = '
'; + $image = $extPath.'Resources/Public/Images/ztkammer-logo.png'; + $html .= ''; + + // header + $html .= '
Zuladungsliste Wettbewerbe Steiermark
'; + + // sub header + $sektionstag = Sektionstage::filter($timestamp); + $html .= '

Stand '.$timestamp_formattet.', auf Basis des Sektionstages vom '.$sektionstag['stichtag'].', '.$sektionstag['bezeichnung'].'

'; + + // tabelle + $html .= ''; + $html .= ''; + foreach ($_liste as $key => $value) { + if (isset($value['user_id'])) { + if (0 == $value['pos']) { + $value['pos'] = ''; + $color = "rot"; + } else { + $value['gesperrt_bis'] = 'Frei'; + $color = "gruen"; + } + + $html .= ''; + $html .= "'; + $html .= "'; + $html .= "'; + $html .= "'; + $html .= "'; + $html .= ''; + } + } + $html .= '
RangPosBüroPunkteSperrung bis
".$value['rang'].'".$value['pos'].'".$value['company'].'".number_format($value['punkte'], 2).'".$value['gesperrt_bis'].'
'; + + self::$Mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY); + + self::$Mpdf->Output('Standard.pdf', Mpdf\Output\Destination::INLINE); + + exit; + } +} diff --git a/packages/zuladungsliste/Classes/Download/_DownloadController.php b/packages/zuladungsliste/Classes/Download/_DownloadController.php new file mode 100644 index 0000000..2228b64 --- /dev/null +++ b/packages/zuladungsliste/Classes/Download/_DownloadController.php @@ -0,0 +1,39 @@ + + * + * All rights reserved + * ************************************************************* */ + + +class _DownloadController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'download_pdf': + PdfListe::download(); + break; + case 'download_einreichung': + PdfEinreichung::download(); + break; + } + } +} diff --git a/packages/zuladungsliste/Classes/Download/print.css b/packages/zuladungsliste/Classes/Download/print.css new file mode 100644 index 0000000..100e64f --- /dev/null +++ b/packages/zuladungsliste/Classes/Download/print.css @@ -0,0 +1,98 @@ +body { + font-family: sans-serif; + font-size: 0.9em; + line-height: 1.1em; + margin: 0; + padding: 0; +} + +.liste-titel { + font-family: sans-serif; + padding: 15mm 0 0; + font-size: 2em; + font-weight: bold; + text-align: center; + margin: 1em auto; +} + +.rot { + color: #800; +} + +table { + width: 100%; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +.filter { + background-color: #eee; + border: 1px solid #cbcbcb; + padding: 0.5rem 1rem; + margin: 0.5rem 0; +} + +/* PURE TABLES START */ +.pure-table { + /* Remove spacing between table cells (from Normalize.css) */ + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + border: 1px solid #cbcbcb; +} + +.pure-table td, +.pure-table th, +.pure-table-noborder td, +.pure-table-noborder th { + border-left: 1px solid #cbcbcb; + border-bottom: 1px solid #cbcbcb; + /* inner column border */ + border-width: 0 0 1px 1px; + font-size: inherit; + margin: 0; + overflow: visible; + /*to make ths where the title is really long work*/ + padding: .7em 1em; + /* cell padding */ +} + +.pure-table td { + background-color: transparent; +} + +.pure-table-odd td { + background-color: #eee; +} + +/* nth-child selector for modern browsers */ +.pure-table-striped tr:nth-child(2n-1) td { + background-color: #eee; + border-bottom: 1px solid #cbcbcb; +} + +/* BORDERED TABLES */ +.pure-table-bordered td { + border-bottom: 1px solid #cbcbcb; +} + +.pure-table-bordered tbody>tr:last-child>td { + border-bottom-width: 0; +} + +/* HORIZONTAL BORDERED TABLES */ +.pure-table-horizontal td, +.pure-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #cbcbcb; +} + +.pure-table-horizontal tbody>tr:last-child>td { + border-bottom-width: 0; +} diff --git a/packages/zuladungsliste/Classes/Download/style.css b/packages/zuladungsliste/Classes/Download/style.css new file mode 100644 index 0000000..ba50455 --- /dev/null +++ b/packages/zuladungsliste/Classes/Download/style.css @@ -0,0 +1,121 @@ +body { + font-family: sans-serif; + font-size: 1em; + line-height: 18pt; + margin: 0; + padding: 0; +} + +.liste-titel { + font-family: sans-serif; + padding: 15mm 0 0; + font-size: 1.5em; + text-align: center; +} + +table.liste { + width: 100%; + font-size: .9em; + margin-top: 15mm; +} + +.rot { + color: #800; +} + +.gruen { + color: green; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +/* PURE TABLES START */ +.pure-table { + /* Remove spacing between table cells (from Normalize.css) */ + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + border: 1px solid #cbcbcb; +} + +.pure-table-noborder { + /* Remove spacing between table cells (from Normalize.css) */ + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; +} + +.pure-table caption { + color: #000; + font: italic 85%/1 arial, sans-serif; + padding: 1em 0; + text-align: center; +} + +.pure-table td, +.pure-table th, +.pure-table-noborder td, +.pure-table-noborder th { + border-left: 1px solid #cbcbcb; + border-bottom: 1px solid #cbcbcb; + /* inner column border */ + border-width: 0 0 1px 1px; + font-size: inherit; + margin: 0; + overflow: visible; + /*to make ths where the title is really long work*/ + padding: .7em 1em; + /* cell padding */ +} + +.pure-table thead { + background-color: #e0e0e0; + color: #000; + text-align: left; + vertical-align: bottom; +} + +/* +striping: + even - #fff (white) + odd - #f2f2f2 (light gray) +*/ +.pure-table td { + background-color: transparent; +} + +.pure-table-odd td { + background-color: #f2f2f2; +} + +/* nth-child selector for modern browsers */ +.pure-table-striped tr:nth-child(2n-1) td { + background-color: #f2f2f2; + border-bottom: 1px solid #cbcbcb; +} + +/* BORDERED TABLES */ +.pure-table-bordered td { + border-bottom: 1px solid #cbcbcb; +} + +.pure-table-bordered tbody>tr:last-child>td { + border-bottom-width: 0; +} + +/* HORIZONTAL BORDERED TABLES */ +.pure-table-horizontal td, +.pure-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #cbcbcb; +} + +.pure-table-horizontal tbody>tr:last-child>td { + border-bottom-width: 0; +} diff --git a/packages/zuladungsliste/Classes/Einreichen/EinreichungDelete.php b/packages/zuladungsliste/Classes/Einreichen/EinreichungDelete.php new file mode 100644 index 0000000..7ac89f6 --- /dev/null +++ b/packages/zuladungsliste/Classes/Einreichen/EinreichungDelete.php @@ -0,0 +1,47 @@ + + * + * All rights reserved + * ************************************************************* */ + +class EinreichungDelete +{ + public static function laden() + { + // lösche Einreichung + $uid = GeneralUtility::_GP('uid'); + if (!is_numeric($uid)) { + exit; + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + $queryBuilder + ->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where( + $queryBuilder->expr()->eq('uid', (int) $uid) + ) + ->set('tstamp', time()) + ->set('deleted', (int) 1) + ->execute(); + + echo $queryBuilder->getSQL(); + } +} diff --git a/packages/zuladungsliste/Classes/Einreichen/EinreichungenUser.php b/packages/zuladungsliste/Classes/Einreichen/EinreichungenUser.php new file mode 100644 index 0000000..017e5d3 --- /dev/null +++ b/packages/zuladungsliste/Classes/Einreichen/EinreichungenUser.php @@ -0,0 +1,57 @@ + + * + * All rights reserved + * ************************************************************* */ + +class EinreichungenUser +{ + public static function laden() + { + // EIGEREICHTE PROJEKT + $user = $GLOBALS['TSFE']->fe_user->user; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + // $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('uid', 'crdate', 'wettbewerb', 'beschreibung', 'entscheidungstermin', 'verfahrensort', 'bundesland', 'dokument_orig_name', 'aufgenommen', 'abgelehnt', 'begruendung') + ->from('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where($queryBuilder->expr()->eq('cruser_id', $user['uid'])) + ->orderBy('aufgenommen'); + $statement = $queryBuilder->execute()->fetchAll(); + + $arr = array(); + foreach ($statement as $key => $value) { + $value["status"] = 0; + if($value["aufgenommen"] > 0){ + $value["status"] = 1; + } + else if ($value["abgelehnt"] > 0){ + $value["status"] = 2; + } + $arr[] = $value; + } + + header('Content-Type: application/json'); + echo json_encode($arr); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Einreichen/_EinreichenController.php b/packages/zuladungsliste/Classes/Einreichen/_EinreichenController.php new file mode 100644 index 0000000..aba0a32 --- /dev/null +++ b/packages/zuladungsliste/Classes/Einreichen/_EinreichenController.php @@ -0,0 +1,36 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _EinreichenController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'lade_einreichungen': + return EinreichungenUser::laden(); + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/Liste/Archive.php b/packages/zuladungsliste/Classes/Liste/Archive.php new file mode 100644 index 0000000..02d6f86 --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/Archive.php @@ -0,0 +1,41 @@ +getQueryBuilderForTable('tx_zuladungsliste_archive_admin'); + $statement = $queryBuilder + ->select('liste') + ->from('tx_zuladungsliste_archive_admin') + ->where($queryBuilder->expr()->eq('uid', (int) $archive_id)) + ->addOrderBy('uid', 'DESC') + ->execute() + ->fetchAll(); + + header('Content-Type: application/json'); + echo $statement[0]['liste']; + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Liste/ArchiveMenu.php b/packages/zuladungsliste/Classes/Liste/ArchiveMenu.php new file mode 100644 index 0000000..bf48247 --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/ArchiveMenu.php @@ -0,0 +1,55 @@ +, NUH-Odds GmbH + * + ***/ + +class ArchiveMenu +{ + /** + * + * @return string + */ + public static function load() + { + $queryBuilder = GeneralUtility::makeInstance( + ConnectionPool::class + )->getQueryBuilderForTable('tx_zuladungsliste_archive_admin'); + $statement = $queryBuilder + ->select('uid', 'crdate') + ->from('tx_zuladungsliste_archive_admin') + ->addOrderBy('uid', 'DESC') + ->execute(); + + $tmp=[]; + foreach ($statement as $key => $value) { + $year = date("Y", $value["crdate"]); + $tmp[$year][] = $value; + } + _Berechnung::$_return = []; + foreach ($tmp as $year => $value) { + $t = array(); + $t["year"] = $year; + foreach ($value as $key => $val) { + $t2 = array(); + $t2["id"] = $val["uid"]; + $t2["titel"] = strftime("%e. %b. %G", $val["crdate"]); + $t["subdata"][] = $t2; + } + _Berechnung::$_return[] = $t; + } + } +} diff --git a/packages/zuladungsliste/Classes/Liste/EinreichungenAdmin.php b/packages/zuladungsliste/Classes/Liste/EinreichungenAdmin.php new file mode 100644 index 0000000..7b7c9bd --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/EinreichungenAdmin.php @@ -0,0 +1,149 @@ +getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + $queryBuilder + ->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where( + $queryBuilder->expr()->eq('uid', (int) $uid), + $queryBuilder->expr()->eq('aufgenommen', 0), + $queryBuilder->expr()->eq('abgelehnt', 0) + )->set('deleted', '1')->execute(); + // echo $queryBuilder->getSQL(); + echo 1; + exit; + } + + /** + * @return bool + */ + public static function update() + { + // EINGEREICHTE PROJEKT UPDATE + $uid = preg_replace("'\D'", "", $_GET['uid']); + if (!is_numeric($uid)) { + exit; + } + $field = preg_replace("'\W'", "", $_GET['field']); + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + if ($field=="aufgenommen") { + $queryBuilder + ->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where($queryBuilder->expr()->eq('uid', (int) $uid)) + ->set('aufgenommen', (int) time()) + ->set('abgelehnt', 0) + ->execute(); + } elseif ($field=="abgelehnt") { + $queryBuilder + ->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where($queryBuilder->expr()->eq('uid', (int) $uid)) + ->set('aufgenommen', 0) + ->set('abgelehnt', (int) time()) + ->execute(); + } + + // echo $queryBuilder->getSQL(); + echo 1; + exit; + } + + + /** + * @return bool + */ + public static function load() + { + // EINGEREICHTE PROJEKT LOAD + + // _Berechnung::$debug = 1; + + if (_Berechnung::$debug) { + Message::debug( + __FILE__, + __LINE__, + 'Load ListeBerechnung' + ); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + $statement = $queryBuilder + ->select( + 'a.company', + 'a.name', + 'a.uid AS user_uid', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.uid', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.crdate', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.wettbewerb', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.beschreibung', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.entscheidungstermin', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.verfahrensort', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.bundesland', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.dokument_orig_name', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.aufgenommen', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.abgelehnt', + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.begruendung' + ) + ->from('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->join( + 'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen', + 'fe_users', + 'a', + $queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.cruser_id')) + ) + ->where( + $queryBuilder->expr()->eq('a.deleted', (int) 0), + $queryBuilder->expr()->eq('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.deleted', (int) 0) + )->execute()->fetchAll(); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + + $bundeslaender_map = array_flip(Resources::bundeslaender()); + + + $_return = []; + foreach ($statement as $key => $value) { + $value['id'] = (int) $value['uid']; + unset($value['uid']); + $value['aufgenommen'] = (int) $value['aufgenommen']; + $value['abgelehnt'] = (int) $value['abgelehnt']; + $value['year'] = (int) substr($value['entscheidungstermin'], 0, 4); + $value['bundeslandid'] = $bundeslaender_map[$value['bundesland']]; + + $value['status'] = 1; + if ($value['abgelehnt'] > 0) { + $value['status'] = 3; + } elseif ($value['aufgenommen'] > 0) { + $value['status'] = 2; + } + + $_return[] = $value; + } + + header('Content-Type: application/json'); + echo json_encode($_return); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Liste/Freischaltungen.php b/packages/zuladungsliste/Classes/Liste/Freischaltungen.php new file mode 100644 index 0000000..034205b --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/Freischaltungen.php @@ -0,0 +1,175 @@ +getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid', (int) $uid_wettarch) + ) + ->set('tstamp', (int) time()) + ->set('tstamp_aktivierung', (int) time()) + ->set('tstamp_ablehnen', 0) + ->execute(); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + echo 1; + exit; + } + + /** + * @return bool + */ + public static function ablehnen() + { + // _Berechnung::$debug = 1; + + $uid_wettarch = GeneralUtility::_GP('uid_wettarch'); + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid', (int) $uid_wettarch) + ) + ->set('tstamp', (int)time()) + ->set('tstamp_aktivierung', 0) + ->set('tstamp_ablehnen', (int)time()) + ->execute(); + + if (_Berechnung::$debug) { + Message::note($queryBuilder->getSQL()); + } + echo 1; + exit; + } + + /** + * @return void + */ + public static function load() + { + $webvalue = GeneralUtility::_GP('value'); + $webkey = GeneralUtility::_GP('key'); + + new _Berechnung(); + + _Berechnung::$debug = 0; + + if (_Berechnung::$debug) { + Message::debug( + __FILE__, + __LINE__, + 'Load Liste Freischaltungen' + ); + } + Architekten::load(); + $Architekten = []; + foreach (_Berechnung::$_data['architekten'] as $key => $_row) { + $Architekten[$_row['uid']] = $_row; + } + $PunkteKriterien = PunkteKriterien::load(); + + $WettbewerbeArchitekten = WettbewerbeArchitekten::load(); + + $_data = []; + foreach ($WettbewerbeArchitekten as $key => $_row) { + $uid_user = $_row['uid_user']; + if (isset($Architekten[$uid_user])) { + $_row = array_merge($_row, $Architekten[$uid_user]); + + $uid_punkte = $_row['uid_punkte']; + $kriteriumid = $_row['kriteriumid']; + if (!$PunkteKriterien[$uid_punkte][$kriteriumid]) { + print_r($_row); + exit; + } + $_row = array_merge($_row, $PunkteKriterien[$uid_punkte][$kriteriumid]); + $_data[] = $_row; + } + } + + $bundeslaender_map = array_flip(Resources::bundeslaender()); + + _Berechnung::$_return = []; + foreach ($_data as $key => $_row) { + $_row['id'] = $key; + $entyear = (int) substr($_row['entscheidungstermin'], 0, 4); + $abgyear = (int) substr($_row['abgabetermin'], 0, 4); + if ($entyear) { + $_row['jahr'] = $entyear; + } elseif ($abgyear) { + $_row['jahr'] = $abgyear; + } else { + $_row['jahr'] = 'fehlt!'; + } + // anstehend + $_row['status'] = 0; + if (0 != $_row['tstamp_zuordnung'] and 0 == $_row['tstamp_aktivierung'] and 0 == $_row['tstamp_ablehnen']) { + $_row['status'] = 1; + } + // freie + if (0 != $_row['tstamp_aktivierung']) { + $_row['status'] = 2; + } + // freie + if (0 != $_row['tstamp_ablehnen']) { + $_row['status'] = 3; + } + $_row['bundeslandid'] = $bundeslaender_map[$_row['bundesland']]; + if ('jahr' == $webkey) { + if ($_row['jahr'] == $webvalue) { + _Berechnung::$_return[] = $_row; + } + } else { + _Berechnung::$_return[] = $_row; + } + } + } +} diff --git a/packages/zuladungsliste/Classes/Liste/ListeAdmin.php b/packages/zuladungsliste/Classes/Liste/ListeAdmin.php new file mode 100644 index 0000000..124c4eb --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/ListeAdmin.php @@ -0,0 +1,45 @@ +, NUH-Odds GmbH + * + ***/ + +class ListeAdmin +{ + /** + * + * @return string + */ + public static function load() + { + $archive_id = GeneralUtility::_GP('archive_id'); + + if ($archive_id) { + Archive::load($archive_id); + } + + $berechnen = new _Berechnung(); + + $berechnen::berechnen(); + + ListeTree::set_dijit(); + + + header('Content-Type: application/json'); + echo json_encode(_Berechnung::$_return); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Liste/ListeTree.php b/packages/zuladungsliste/Classes/Liste/ListeTree.php new file mode 100644 index 0000000..5ceec99 --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/ListeTree.php @@ -0,0 +1,214 @@ + $value) { + //if($value["user_id"]==140){ + // print_r($value); + // _Berechnung::$_return = array(); + //} + $wettbewerbe = $value["auswertung"]["wettbewerbe"]; + $neueinsteigerpunkt = $value["auswertung"]["neueinsteigerpunkt"]; + $frauenfoerderpunkt = $value["auswertung"]["frauenfoerderpunkt"]; + $solidaritaetserklaerung = $value["auswertung"]["solidaritaetserklaerung"]; + $sondersperrungen = $value["auswertung"]["sondersperrungen"]; + $verschiebung_gegeben = $value["auswertung"]["verschiebung_gegeben"]; + $verschiebung_empfangen = $value["auswertung"]["verschiebung_empfangen"]; + unset($value["auswertung"]); + $value["id"] = (int) $i; + $value["hasChildren"] = (int) 1; + $value["parent"] = null; + $value["punkte"] = (float) $value["punkte"]; + $value["sortdatum"] = (int) $value["sortdatum"]; + $value["gesperrt_bis_sort"] = strtotime($value["gesperrt_bis"]); + _Berechnung::$_return[] = $value; + $i++; + + // neueinsteigerpunkt + if ($neueinsteigerpunkt) { + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' Neueinsteigerpunkt' . $neueinsteigerpunkt["kommentar"] . ''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = (float) $neueinsteigerpunkt["punkte"]; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "neueinsteiger"; + $tmp["gesperrt_bis"] = ''; + _Berechnung::$_return[] = $tmp; + } + // frauenfoerderpunkt + if ($frauenfoerderpunkt) { + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' Frauenförderpunkt' . $frauenfoerderpunkt["kommentar"] . ''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = (float) $frauenfoerderpunkt["punkte"]; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "frauenfoerderpunkt"; + $tmp["gesperrt_bis"] = ''; + _Berechnung::$_return[] = $tmp; + } + + // solidaritaetserklaerung + if ($solidaritaetserklaerung) { + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' Solidaritätserklärung' . $solidaritaetserklaerung["kommentar"] . ''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = (float) $solidaritaetserklaerung["punkte"]; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "solidaritaetserklaerung"; + $tmp["gesperrt_bis"] = ''; + _Berechnung::$_return[] = $tmp; + } + + // sondersperrungen + if (isset($sondersperrungen)) { + foreach ($sondersperrungen as $key => $sperre) { + + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' Sondersperrung' . $sperre["kommentar"] . ''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = 0; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "sondersperrung"; + $tmp["gesperrt_bis"] = $sperre["gesperrt_bis"]; + $tmp["gesperrt_bis_sort"] = strtotime($sperre["gesperrt_bis"]); + _Berechnung::$_return[] = $tmp; + } + } + + // verschiebung_gegeben + if (isset($verschiebung_gegeben)) { + foreach ($verschiebung_gegeben as $key => $gegeben) { + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' '. $gegeben['prozente'] . '% der Punkte wurden übertragen zu ' . $gegeben["kommentar"] . ' Zeitraum bis zum ' . $gegeben['verschiebung_stichtag'] . ''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = "-" . $gegeben['punkte']; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "verschiebung_gegeben"; + $tmp["gesperrt_bis"] = ''; + _Berechnung::$_return[] = $tmp; + } + } + // verschiebung_empfangen + if (isset($verschiebung_empfangen)) { + foreach ($verschiebung_empfangen as $key => $empfangen) { + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["company"] = ' Punkte empfangen von ' . $empfangen["kommentar"] . 'Zeitraum bis zum ' . $empfangen['verschiebung_stichtag'] .''; + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = $empfangen['punkte']; + $tmp["nominiert"] = (int) 2; + $tmp["type"] = "verschiebung_empfangen"; + $tmp["gesperrt_bis"] = ''; + _Berechnung::$_return[] = $tmp; + } + } + + // $wettbewerbe = array_reverse($wettbewerbe); + foreach ($wettbewerbe as $key => $value2) { + if (is_array($value2)) { + /*** + [wettbewerb] => Bebauung Conrad v. Hötzendorfstr./Fröhlichgasse Graz + [verfahrensid] => 1628 + [verfahrensort] => Graz + [entscheidungstermin] => + [punkte] => 1.00 + [bezeichnung] => Regional beschränkt offener WB (1- oder mehrstufig) - Zulassungsgebiet Befugnis AT oder Stmk./Ktn. + [regelwerk] => Regelwerk V1 02/2016 + [monate_seit_entscheidungstermin] => 24208 + [punkte_aktive] => 0 + [gueltig_bis] => 30. Nov. 0004. + [sperrung_aktive] => 0 + [gesperrt_bis] => 30. May. 0001. + */ + // print_r($value2); + // exit; + $tmp = []; + $tmp["id"] = (int) $i; + $i++; + $tmp["info"] = $value2["bezeichnung"] . '
' . $value2["bezeichnung_punkte"]; + + + if ($value2["mit_sperrung"] == 0) { + $tmp["info"] .= '
Preis ohne Sperrung'; + } elseif (isset($value2["sperre_deaktiviert"]) and $value2["sperre_deaktiviert"] == 1) { + $tmp["info"] .= '
Wettbewerb mit Sperrung, Sperrung deaktiviert'; + } else { + $tmp["info"] .= '
Wettbewerb mit Sperrung'; + } + + $tmp["company"] = '' . $value2["verfahrensid"] . ''; + + if ($value2["mit_sperrung"] == 1) { + $tmp["company"] .= ' Geladen'; + } + + $tmp["company"] .= $value2["wettbewerb"]; + + $tmp["gesperrt_bis"] = ''; + if (isset($value2["sperrung_aktive"]) and $value2["sperrung_aktive"] == 1) { + $tmp["gesperrt_bis"] = $value2["gesperrt_bis"]; + $tmp["gesperrt_bis_sort"] = strtotime($value2["gesperrt_bis"]); + } + + // $tmp["company"] .= ''; + // if (isset($value2["sperrung_aktive"]) and $value2["sperrung_aktive"]==1) { + // $tmp["company"] .= 'Sperrung bis: '.$value2["gesperrt_bis"].''; + // } + // + // if (isset($value2["von_transfer"])) { + // $tmp["company"] .= $value2["von_transfer"]; + // $tmp["info"] = ""; + // } else { + // $tmp["company"] .= 'Gültig bis:'; + // } + // $tmp["company"] .= ''; + + $tmp["hasChildren"] = (int) 0; + $tmp["parent"] = (int) $value["id"]; + $tmp["punkte"] = (float) $value2["punkte"]; + if ((float) $value2["punkte"]) { + $tmp["valid"] = $value2["gueltig_bis"]; + } + $tmp["nominiert"] = (int) 2; + // $tmp["sortdatum"] = (int)$value2["sortdatum"]+$key; + $tmp["punkte_aktive"] = $value2["punkte_aktive"]; + $tmp["geladen"] = $value2["mit_sperrung"]; + $tmp["type"] = "wettbewerb"; + _Berechnung::$_return[] = $tmp; + } + } + //if($value["user_id"]==140){ + // print_r(_Berechnung::$_return); + // exit; + //} + } + } +} diff --git a/packages/zuladungsliste/Classes/Liste/Recalculate.php b/packages/zuladungsliste/Classes/Liste/Recalculate.php new file mode 100644 index 0000000..0bc23a1 --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/Recalculate.php @@ -0,0 +1,101 @@ +getConnectionForTable('tx_zuladungsliste_archive_admin'); + $connection->truncate('tx_zuladungsliste_archive_admin'); + $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_archive_user'); + $connection->truncate('tx_zuladungsliste_archive_user'); + + $month = 6; + $timestamp = 0; + while ($timestamp < time()) { + ++$month; + // fixed to 15 + $timestamp = mktime(0, 0, 0, $month, 15, 2017); + // $timestamp = mktime(0, 0, 0, $month, 15, 2023); + + if ($timestamp >= time()) { + echo 1; + exit; + } + + $berechnen::$_config['berechne_bis'] = $timestamp; + $berechnen::berechnen(); + + if (isset($berechnen::$_data['liste'])) { + + ListeTree::set_dijit(); + + $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin'); + $connection + ->insert('tx_zuladungsliste_archive_admin') + ->values([ + 'tstamp' => time(), + 'crdate' => $timestamp, + 'liste' => json_encode(Encoding::fixUTF8($berechnen::$_return)), + ]) + ->execute(); + $uid_archive_admin = $connection->getConnection()->lastInsertId(); + + + $userid = 0; + $user_arr = []; + foreach ($berechnen::$_return as $key => $value) { + if ($value["hasChildren"] == 1) { + $insert_array = []; + $insert_array["tstamp"] = $timestamp; + $insert_array["crdate"] = $timestamp; + $insert_array["user_id"] = $value["user_id"]; + $insert_array["archive_admin_uid"] = $uid_archive_admin; + $insert_array["company"] = $value["company"]; + $insert_array["name"] = $value["name"]; + $insert_array["punkte"] = $value["punkte"]; + $insert_array["nominiert"] = $value["nominiert"]; + $insert_array["rang"] = $value["rang"]; + $insert_array["pos"] = $value["pos"]; + $insert_array["gesperrt_bis"] = $value["gesperrt_bis"]; + + $userid = $value["id"]; + $user_arr[$userid]["user"] = $insert_array; + } else { + $user_arr[$userid]["data"][] = $value; + } + } + foreach ($user_arr as $key => $value) { + $insert_array = []; + $insert_array = $value["user"]; + + if (is_array($value["data"]) and count($value["data"]) > 0) { + + $insert_array["auswertung"] = json_encode(Encoding::fixUTF8($value["data"])); + $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user'); + $connection + ->insert('tx_zuladungsliste_archive_user') + ->values($insert_array) + ->execute(); + } + } + } + } + echo 1; + exit; + } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Liste/_ListeController.php b/packages/zuladungsliste/Classes/Liste/_ListeController.php new file mode 100644 index 0000000..097b085 --- /dev/null +++ b/packages/zuladungsliste/Classes/Liste/_ListeController.php @@ -0,0 +1,61 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _ListeController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'load_liste_admin': + ListeAdmin::load(); + break; + case 'load_freischaltungen': + Freischaltungen::load(); + break; + case 'freischaltung_aktivieren': + Freischaltungen::aktivieren(); + break; + case 'freischaltung_ablehnen': + Freischaltungen::ablehnen(); + break; + case "load_einreichungen": + EinreichungenAdmin::load(); + break; + case "disable_einreichung": + EinreichungenAdmin::disable(); + break; + case "update_einreichung": + EinreichungenAdmin::update(); + break; + case 'liste_alles_neu': + Recalculate::run(); + break; + case 'cron_latest': + // https://zuladungsliste.nuhodds.com/app/administration?zlcontroller=liste_controller&xaction=liste_alles_neu + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/Middleware/Ajax.php b/packages/zuladungsliste/Classes/Middleware/Ajax.php new file mode 100644 index 0000000..a1ff53c --- /dev/null +++ b/packages/zuladungsliste/Classes/Middleware/Ajax.php @@ -0,0 +1,74 @@ +handle($request); + if (!isset($request->getQueryParams()['zlcontroller'])) { + return $response; + } + $xaction = $request->getQueryParams()['xaction']; + // $user = $GLOBALS['TSFE']->fe_user->user; + $zlcontroller = $request->getQueryParams()['zlcontroller']; + + switch ($zlcontroller) { + case 'bootstrap_controller': + new _BootstrapController($xaction); + break; + case 'liste_controller': + new _ListeController($xaction); + break; + case 'download_controller': + new _DownloadController($xaction); + break; + case 'zuteilungen_controller': + new _ZuteilungenController($xaction); + break; + case 'zuladungsliste_controller': + new _ZuladungslisteController($xaction); + break; + case 'punktezuweisung_controller': + new _PunkteZuweisungController($xaction); + break; + case 'einreichen_controller': + new _EinreichenController($xaction); + break; + case 'user_controller': + new _UserController($xaction); + break; + case 'upload_controller': + new _UploadController($xaction); + break; + default: + _Berechnung::$_return = ['error' => __FILE__.': call \''.$zlcontroller.'\' not implemented']; + break; + } + + return new JsonResponse(_Berechnung::$_return); + } +} diff --git a/packages/zuladungsliste/Classes/PunkteZuweisung/Preise.php b/packages/zuladungsliste/Classes/PunkteZuweisung/Preise.php new file mode 100644 index 0000000..47f08e5 --- /dev/null +++ b/packages/zuladungsliste/Classes/PunkteZuweisung/Preise.php @@ -0,0 +1,118 @@ + + *¨ + * All rights reserved + * ************************************************************* */ + +class Preise +{ + /** + * @return void + */ + public static function laden() + { + $kriteriumid = GeneralUtility::_GP('kriteriumid'); + $wettbewerbid = GeneralUtility::_GP('wettbewerbid'); + + $user = $GLOBALS['TSFE']->fe_user->user; + + // $punktestatus = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid_punkte, tstamp_zuordnung, tstamp_aktivierung", "tx_zuladungsliste_wettbewerbe_architekten_mm", + // "uid_wettbewerbe=$wettbewerb_id AND uid_user=$user_id AND uid_punkte>0", "", "", "", "uid_punkte"); + + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder + ->select('uid_punkte', 'tstamp_zuordnung', 'tstamp_aktivierung') + ->from('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), + $queryBuilder->expr()->gt('uid_punkte', 0), + $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) + ) + ->orderBy('uid_punkte'); + $res = $queryBuilder->execute()->fetchAll(); + + $punktestatus = []; + $closed=false; + foreach ($res as $key => $value) { + $punktestatus[$value['uid_punkte']] = $value; + if ($value["tstamp_aktivierung"]>0) { + $closed=true; + } + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte'); + $queryBuilder + ->select( + 'tx_zuladungsliste_domain_model_punkte.uid', + 'tx_zuladungsliste_domain_model_punkte.bezeichnung', + 'b.sorting', + 'b.punkte', + 'b.uid_punkte' + ) + ->from('tx_zuladungsliste_domain_model_punkte') + ->leftJoin( + 'tx_zuladungsliste_domain_model_punkte', + 'tx_zuladungsliste_punkte_kriterien_mm', + 'b', + $queryBuilder->expr()->eq( + 'b.uid_punkte', + $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid') + ) + ) + ->where( + $queryBuilder->expr()->eq('b.uid_kriterien', (int) $kriteriumid) + ); + $_punkte_kriterien = $queryBuilder->execute()->fetchAll(); + + // echo $queryBuilder->getSQL(); + $_return = []; + foreach ($_punkte_kriterien as $key => $value) { + $value["sorting"] = (int)$value["sorting"]; + $value["status"] = 0; + $value["tstamp_zuordnung"] = ""; + $value["tstamp_aktivierung"] = ""; + + $punkteId = $value["uid_punkte"]; + if (isset($punktestatus[$punkteId])) { + $tmp = $punktestatus[$punkteId]; + + if ($tmp["tstamp_zuordnung"]>0) { + $value["tstamp_zuordnung"] = date("d. M. Y", $tmp["tstamp_zuordnung"]); + $value["status"] = 1; + } + if ($tmp["tstamp_aktivierung"]>0) { + $value["tstamp_aktivierung"] = date("d. M. Y", $tmp["tstamp_aktivierung"]); + } + } + if ($closed) { + $value["status"] = 2; + } + $_return[] = $value; + } + + header('Content-Type: application/json'); + echo json_encode($_return); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisen.php b/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisen.php new file mode 100644 index 0000000..ef0e60e --- /dev/null +++ b/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisen.php @@ -0,0 +1,170 @@ + + *¨ + * All rights reserved + * ************************************************************* */ + +class PunkteZuweisen +{ + /** + * @return void + */ + public static function setzen() + { + $user = $GLOBALS['TSFE']->fe_user->user; + + $debug = 0; + + $kriteriumid = GeneralUtility::_GP('kriteriumid'); + $wettbewerbid = GeneralUtility::_GP('wettbewerbid'); + + $arr = json_decode(GeneralUtility::_GP('data'), true); + $zuweisung_uid_punkte = (int) $arr["uid_punkte"]; + + if (!is_numeric($zuweisung_uid_punkte)) { + if ($debug) { + Message::note("zuweisung_uid_punkte fehlt"); + } + exit; + } + if (!is_numeric($kriteriumid)) { + if ($debug) { + Message::note("kriteriumid fehlt"); + } + exit; + } + if (!is_numeric($wettbewerbid)) { + if ($debug) { + Message::note("wettbewerbid fehlt"); + } + exit; + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder + ->select('uid', 'uid_wettbewerbe', 'uid_user', 'uid_punkte', 'sorting', 'tstamp', 'crdate', 'tstamp_zuordnung', 'tstamp_aktivierung') + ->from('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), + $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) + ) + ->orderBy('uid_punkte'); + $active_punkte = $queryBuilder->execute()->fetchAll(); + + // echo $queryBuilder->getSQL(); + // + // print_r($active_punkte); + // + // exit; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte'); + $queryBuilder + ->select( + 'tx_zuladungsliste_domain_model_punkte.uid', + 'tx_zuladungsliste_domain_model_punkte.bezeichnung', + 'b.sorting', + 'b.punkte', + 'b.uid_punkte' + ) + ->from('tx_zuladungsliste_domain_model_punkte') + ->leftJoin( + 'tx_zuladungsliste_domain_model_punkte', + 'tx_zuladungsliste_punkte_kriterien_mm', + 'b', + $queryBuilder->expr()->eq( + 'b.uid_punkte', + $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid') + ) + ) + ->where( + $queryBuilder->expr()->eq('b.uid_kriterien', (int) $kriteriumid) + ); + $kriterien = $queryBuilder->execute()->fetchAll(); + + if ($debug) { + Message::note($queryBuilder->getSQL()); + } + + //Kontrolle if uid_punkte existiert in den kriterien für diesen wettbewerb + $_uid_punkte = array_column($kriterien, 'uid_punkte'); + if (!in_array($zuweisung_uid_punkte, $_uid_punkte)) { + if ($debug) { + Message::note("uid_punkte existiert nicht in den kriterien für diesen wettbewerb"); + } + exit; + } + + + + if (count($active_punkte)) { + if ($active_punkte[0]["uid_punkte"]==$zuweisung_uid_punkte) { + // PUNKTE ZUWEISUNG VOM BENUTZER GELÖSCHT + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder + ->delete('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), + $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) + ) + ->execute(); + } else { + // UPDATE PUNKTE + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where( + $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), + $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) + ) + ->set('tstamp', (int) time()) + ->set('tstamp_zuordnung', (int) time()) + ->set('uid_punkte', (int) $zuweisung_uid_punkte) + ->execute(); + } + } else { + // PUNKTE NEU ZUGETEILT + + $insertArray = array(); + $insertArray['crdate'] = time(); + $insertArray['pid'] = WETTBEWERBE_PID; + $insertArray['tstamp_zuordnung'] = time(); + $insertArray['uid_punkte'] = $zuweisung_uid_punkte; + $insertArray['uid_wettbewerbe'] = $wettbewerbid; + $insertArray['uid_user'] = $user['uid']; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + $queryBuilder + ->insert('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->values($insertArray) + ->execute(); + } + + if ($debug) { + Message::note($queryBuilder->getSQL()); + } + + echo 1; + exit; + } +} diff --git a/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisungen.php b/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisungen.php new file mode 100644 index 0000000..74dbbef --- /dev/null +++ b/packages/zuladungsliste/Classes/PunkteZuweisung/PunkteZuweisungen.php @@ -0,0 +1,94 @@ + + *¨ + * All rights reserved + * ************************************************************* */ + +class PunkteZuweisungen +{ + /** + * @return void + */ + public static function laden() + { + $user = $GLOBALS['TSFE']->fe_user->user; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe'); + // $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('uid', 'wettbewerb', 'bundesland', 'kriteriumid', 'entscheidungstermin', 'abgabetermin') + ->from('tx_zuladungsliste_domain_model_wettbewerbe'); + $_wettbewerbe = $queryBuilder->execute()->fetchAll(); + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); + // $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('uid_wettbewerbe', 'tstamp_zuordnung', 'tstamp_aktivierung') + ->from('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->where($queryBuilder->expr()->eq('uid_user', (int) $user['uid'])); + $res = $queryBuilder->execute()->fetchAll(); + $punktestatus = []; + foreach ($res as $key => $value) { + $punktestatus[$value['uid_wettbewerbe']] = $value; + } + + $bundeslaender = Resources::bundeslaender(); + $bundeslaender = array_flip($bundeslaender); + + $_return = []; + foreach ($_wettbewerbe as $key => $value) { + $value["bundeslandid"] = $bundeslaender[$value["bundesland"]]; + $year = date('Y', strtotime($value["entscheidungstermin"])); + + if (strtotime($value["entscheidungstermin"]) > 0) { + $value["jahr"] = (int) $year; + } else { + $value["jahr"] = (int) date('Y', strtotime($value["abgabetermin"])); + } + + unset($value["entscheidungstermin"]); + unset($value["abgabetermin"]); + + $wettbewerbeId = $value["uid"]; + + $value["status"] = 0; + if (isset($punktestatus[$wettbewerbeId])) { + $tmp = $punktestatus[$wettbewerbeId]; + + if ($tmp["tstamp_zuordnung"]>0) { + $value["status"] = 1; + } + + if ($tmp["tstamp_aktivierung"]>0) { + $value["status"] = 2; + } + } + + $_return[] = $value; + } + + header('Content-Type: application/json'); + echo json_encode($_return); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/PunkteZuweisung/_PunkteZuweisungController.php b/packages/zuladungsliste/Classes/PunkteZuweisung/_PunkteZuweisungController.php new file mode 100644 index 0000000..83a4aa7 --- /dev/null +++ b/packages/zuladungsliste/Classes/PunkteZuweisung/_PunkteZuweisungController.php @@ -0,0 +1,41 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _PunkteZuweisungController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'lade_punktezuweisungen': + PunkteZuweisungen::laden(); + break; + case 'lade_preise': + Preise::laden(); + break; + case 'setze_punktezuweisungen': + PunkteZuweisen::setzen(); + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/Scheduler/CronTask.php b/packages/zuladungsliste/Classes/Scheduler/CronTask.php new file mode 100644 index 0000000..ef7ce20 --- /dev/null +++ b/packages/zuladungsliste/Classes/Scheduler/CronTask.php @@ -0,0 +1,17 @@ +run(); + } +} diff --git a/packages/zuladungsliste/Classes/Upload/Upload.php b/packages/zuladungsliste/Classes/Upload/Upload.php new file mode 100644 index 0000000..5ac8d6d --- /dev/null +++ b/packages/zuladungsliste/Classes/Upload/Upload.php @@ -0,0 +1,118 @@ + + * + * All rights reserved + * ************************************************************* */ + +class Upload +{ + /** + * + * @return bool + */ + public static function einreichen() + { + /*** UPLOAD FILE start ***/ + $user = $GLOBALS['TSFE']->fe_user->user; + $user_id = $user['uid']; + $upload_dir = Environment::getPublicPath() . "/uploads/tx_zuladungsliste/$user_id"; + if (!is_dir($upload_dir)) { + GeneralUtility::mkdir($upload_dir); + } + $insert_array = []; + $insert_array['dokument_orig_name'] = ""; + $insert_array['dokument_size'] = ""; + $insert_array['dokument_type'] = ""; + if (isset($_FILES['uploadedfile'])) { + $dokument_size = $_FILES['uploadedfile']['size']; + $dokument_orig_name = $_FILES['uploadedfile']['name']; + $dokument_orig_type = $_FILES['uploadedfile']['type']; + move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $upload_dir . '/' . $dokument_orig_name); + } + foreach ($_POST as $nm => $val) { + $postdata[$nm] = $val; // array for html + } + $data = ["Bitte Wählen","Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"]; + $insert_array = []; + $insert_array['crdate'] = time(); + $insert_array['tstamp'] = time(); + $insert_array['cruser_id'] = $user_id; + $insert_array['wettbewerb'] = htmlspecialchars($postdata['formwettbewerb']); + $insert_array['beschreibung'] = htmlspecialchars($postdata["formbeschreibung"]); + $insert_array['entscheidungstermin'] = htmlspecialchars($postdata["formentscheidungstermin"]); + $insert_array['verfahrensort'] = htmlspecialchars($postdata["formverfahrensort"]); + $insert_array['bundesland'] = $data[$postdata["formbundesland"]]; + $insert_array['dokument_orig_name'] = $dokument_orig_name; + $insert_array['dokument_size'] = round($dokument_size/1024, 2) . "k"; + $insert_array['dokument_type'] = "pdf"; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + $queryBuilder + ->insert('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->values($insert_array) + ->execute(); + + echo 1; + exit; + } + + /** + * + * @return bool + */ + public static function aktualisieren() + { + /*** UPLOAD FILE start ***/ + $uid = GeneralUtility::_GP("uid"); + if (!is_numeric($uid)) { + echo 1; + exit; + } + + $user = $GLOBALS['TSFE']->fe_user->user; + $user_id = $user['uid']; + $upload_dir = Environment::getPublicPath() . "/uploads/tx_zuladungsliste/$user_id"; + if (!is_dir($upload_dir)) { + GeneralUtility::mkdir($upload_dir); + } + if (isset($_FILES['uploadedfile'])) { + $dokument_size = $_FILES['uploadedfile']['size']; + $dokument_orig_name = $_FILES['uploadedfile']['name']; + $dokument_orig_type = $_FILES['uploadedfile']['type']; + move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $upload_dir . '/' . $dokument_orig_name); + } + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen'); + $queryBuilder + ->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen') + ->where( + $queryBuilder->expr()->eq('uid', (int) $uid) + ) + ->set('tstamp', time()) + ->set('dokument_orig_name', (string) $dokument_orig_name) + ->set('dokument_size', (string) round($dokument_size/1024, 2) . "k") + ->execute(); + + echo 1; + exit; + } +} diff --git a/packages/zuladungsliste/Classes/Upload/_UploadController.php b/packages/zuladungsliste/Classes/Upload/_UploadController.php new file mode 100644 index 0000000..7f2ae39 --- /dev/null +++ b/packages/zuladungsliste/Classes/Upload/_UploadController.php @@ -0,0 +1,41 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _UploadController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'dokument_einreichen': + Upload::einreichen(); + break; + case 'dokument_aktualisieren': + Upload::aktualisieren(); + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/User/UserKonto.php b/packages/zuladungsliste/Classes/User/UserKonto.php new file mode 100644 index 0000000..80ec1d3 --- /dev/null +++ b/packages/zuladungsliste/Classes/User/UserKonto.php @@ -0,0 +1,199 @@ + + * + * All rights reserved + * ************************************************************* */ + +class UserKonto +{ + + public static function sichern(){ + $user = $GLOBALS['TSFE']->fe_user->user; + $data = GeneralUtility::_GP('data'); + $data = json_decode($data, true); + + $update_array = []; + foreach ($data as $key => $value) + { + switch ($value["fieldname"]) { + case "address": + $update_array["address"] = $value["value"]; + break; + case "zip": + $update_array["zip"] = $value["value"]; + break; + case "city": + $update_array["city"] = $value["value"]; + break; + case "title": + $update_array["title"] = $value["value"]; + break; + case "first_name": + $update_array["first_name"] = $value["value"]; + break; + case "last_name": + $update_array["last_name"] = $value["value"]; + break; + case "telephone": + $update_array["telephone"] = $value["value"]; + break; + } + } + + $user = $GLOBALS['TSFE']->fe_user->user; + + if(\count($update_array) == 7){ + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users'); + $queryBuilder->update('fe_users') + ->where($queryBuilder->expr()->eq('uid', (int) $user['uid'])) + ->set('address', (string) $update_array['address']) + ->set('zip', (string) $update_array['zip']) + ->set('city', (string) $update_array['city']) + ->set('title', (string) $update_array['title']) + ->set('first_name', (string) $update_array['first_name']) + ->set('last_name', (string) $update_array['last_name']) + ->set('telephone', (string) $update_array['telephone']) + ->execute(); + } + // echo $queryBuilder->getSQL(); + + echo 1; + exit; + } + + public static function laden() + { + $user = $GLOBALS['TSFE']->fe_user->user; + + $return = []; + + $tmp = []; + $tmp['id'] = 0; + $tmp['editable'] = 0; + $tmp['title'] = 1; + $tmp['beschreibung'] = "Architektur"; + $tmp['value'] = 'Büro'; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 1; + $tmp['editable'] = 0; + $tmp['fieldname'] = 'company'; + $tmp['beschreibung'] = "Büroname:"; + $tmp['value'] = $user['company']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 2; + $tmp['editable'] = 0; + $tmp['fieldname'] = 'email'; + $tmp['beschreibung'] = "E-Mail:"; + $tmp['value'] = $user['email']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 3; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'address'; + $tmp['beschreibung'] = "Büroanschrift:"; + $tmp['value'] = $user['address']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 4; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'zip'; + $tmp['beschreibung'] = "PLZ:"; + $tmp['value'] = $user['zip']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 5; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'city'; + $tmp['beschreibung'] = "Ort:"; + $tmp['value'] = $user['city']; + $return[] = $tmp; + + + + $tmp = []; + $tmp['id'] = 6; + $tmp['editable'] = 0; + $tmp['title'] = 1; + $tmp['beschreibung'] = "Verantwortliche"; + $tmp['value'] = 'Person'; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 7; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'title'; + $tmp['beschreibung'] = "Titel:"; + $tmp['value'] = $user['title']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 8; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'first_name'; + $tmp['beschreibung'] = "Vorname:"; + $tmp['value'] = $user['first_name']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 9; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'last_name'; + $tmp['beschreibung'] = "Nachname:"; + $tmp['value'] = $user['last_name']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 10; + $tmp['editable'] = 0; + $tmp['fieldname'] = 'vereidigung'; + $tmp['beschreibung'] = "Tag der Vereidigung:"; + $tmp['value'] = $user['vereidigung']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 11; + $tmp['editable'] = 0; + $tmp['fieldname'] = 'kammermitgliedsnummer'; + $tmp['beschreibung'] = "Mitgliedsnummer:"; + $tmp['value'] = $user['kammermitgliedsnummer']; + $return[] = $tmp; + + $tmp = []; + $tmp['id'] = 12; + $tmp['editable'] = 1; + $tmp['fieldname'] = 'telephone'; + $tmp['beschreibung'] = "Telefon:"; + $tmp['value'] = $user['telephone']; + $return[] = $tmp; + + $return = json_encode($return); + header('Content-Type: application/json'); + echo $return; + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/User/_UserController.php b/packages/zuladungsliste/Classes/User/_UserController.php new file mode 100644 index 0000000..a369d63 --- /dev/null +++ b/packages/zuladungsliste/Classes/User/_UserController.php @@ -0,0 +1,40 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _UserController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'lade_konto': + return UserKonto::laden(); + break; + case 'sichern_konto': + return UserKonto::sichern(); + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/Utilities/FileUtility.php b/packages/zuladungsliste/Classes/Utilities/FileUtility.php new file mode 100644 index 0000000..f06be27 --- /dev/null +++ b/packages/zuladungsliste/Classes/Utilities/FileUtility.php @@ -0,0 +1,40 @@ + 'Begründungen', 'id' => 'begruendung', 'ckecked' => false], + ['label' => 'Titel', 'id' => 'titel', 'ckecked' => false], + ['label' => 'Name', 'id' => 'name', 'ckecked' => true], + ['label' => 'Geburtsdatum', 'id' => 'geburtsdatum', 'ckecked' => true], + ['label' => 'Vereidigung', 'id' => 'vereidigung', 'ckecked' => true], + ['label' => 'Ältest Projekt in Wertung', 'id' => 'aeltesterEntscheidungstermin', 'ckecked' => false], + ['label' => 'Punkte', 'id' => 'punkte', 'ckecked' => true], + ['label' => 'Sperre', 'id' => 'sperre', 'ckecked' => true], + ['label' => 'Id', 'id' => 'id', 'ckecked' => false] + ]; + } + + public static function sperren() + { + return [ + ['id' => '1', 'label' => 'Default', 'value' => '0', 'selected' => true], + ['id' => '2', 'label' => '3 Monare', 'value' => '3'], + ['id' => '3', 'label' => '4 Monare', 'value' => '4'], + ['id' => '4', 'label' => '5 Monare', 'value' => '5'], + ['id' => '5', 'label' => '6 Monare', 'value' => '6'], + ['id' => '6', 'label' => '8 Monare', 'value' => '8'], + ['id' => '7', 'label' => '10 Monare', 'value' => '10'], + ['id' => '8', 'label' => '12 Monare', 'value' => '12'], + ['id' => '9', 'label' => '18 Monare', 'value' => '18'], + ['id' => '10', 'label' => '24 Monare', 'value' => '24'], + ]; + } + + public static function bundeslaender() + { + return [ + 'Burgenland', + 'Kärnten', + 'Niederösterreich', + 'Oberösterreich', + 'Salzburg', + 'Steiermark', + 'Tirol', + 'Vorarlberg', + 'Wien' + ]; + } + + public static function years() + { + $arr = range(2012, date('Y')); + rsort($arr); + return $arr; + } + + + public static function next() + { + return[ + ['id' => '1', 'label' => 'Nächste(r)'], + ['id' => '2', 'label' => 'Nächsten Zwei'] , + ['id' => '3', 'label' => 'Nächsten Drei'] , + ['id' => '4', 'label' => 'Nächsten Vier'] , + ['id' => '5', 'label' => 'Nächsten Fünf'] , + ['id' => '6', 'label' => 'Nächsten Sechs'] + ]; + } +} diff --git a/packages/zuladungsliste/Classes/Zuladungsliste/PositionArchitekt.php b/packages/zuladungsliste/Classes/Zuladungsliste/PositionArchitekt.php new file mode 100644 index 0000000..b5cb2e9 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuladungsliste/PositionArchitekt.php @@ -0,0 +1,44 @@ + + * + * All rights reserved + * ************************************************************* */ + +class PositionArchitekt +{ + public static function laden() + { + //LOAD POSITION TREE Menu + // echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC"); + // exit; + $uid = preg_replace("'\D'", "", $_GET['uid']); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user'); + $queryBuilder + ->select('auswertung') + ->from('tx_zuladungsliste_archive_user') + ->where($queryBuilder->expr()->eq('uid', (int) $uid)); + $tmp = $queryBuilder->execute()->fetchAll(); + // echo $queryBuilder->getSQL(); + + header('Content-Type: application/json'); + echo $tmp[0]["auswertung"]; + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Zuladungsliste/Punktezuweisung.php b/packages/zuladungsliste/Classes/Zuladungsliste/Punktezuweisung.php new file mode 100644 index 0000000..ef338c9 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuladungsliste/Punktezuweisung.php @@ -0,0 +1,78 @@ + + * + * All rights reserved + * ************************************************************* */ + +// class PositionArchitekt +// { +// public static function laden() +// { +// //LOAD POSITION TREE Menu +// // echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC"); +// // exit; +// $uid = preg_replace("'\D'", "", $_GET['uid']); +// $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user'); +// $queryBuilder +// ->select('auswertung') +// ->from('tx_zuladungsliste_archive_user') +// ->where($queryBuilder->expr()->eq('uid', (int) $uid)); +// $tmp = $queryBuilder->execute()->fetchAll(); +// // echo $queryBuilder->getSQL(); +// +// // ---------- +// +// $arr2 = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid id, wettbewerb, kriteriumid, bundesland, EXTRACT(YEAR FROM entscheidungstermin) entyear, EXTRACT(YEAR FROM abgabetermin) abgyear", "tx_zuladungsliste_domain_model_wettbewerbe", "deleted=0 AND hidden=0"); +// +// $punktestatus = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid_wettbewerbe, tstamp_zuordnung, tstamp_aktivierung", "tx_zuladungsliste_wettbewerbe_architekten_mm", "uid_user=$user_id AND uid_punkte>0", "", "", "", "uid_wettbewerbe"); +// +// $arr = array(); +// foreach ($arr2 as $key => $value) { +// $value["status"] = 0; +// +// if ($value["entyear"]!=0) { +// $value["jahr"] = $value["entyear"]; +// } else { +// $value["jahr"] = $value["abgyear"]; +// } +// unset($value["entyear"]); +// unset($value["abgyear"]); +// +// $wettbewerbeId = $value["id"]; +// if (isset($punktestatus[$wettbewerbeId])) { +// $tmp = $punktestatus[$wettbewerbeId]; +// +// if ($tmp["tstamp_zuordnung"]>0) { +// $value["status"] = 1; +// } +// +// if ($tmp["tstamp_aktivierung"]>0) { +// $value["status"] = 2; +// } +// } +// $arr[] = $value; +// } +// +// +// header('Content-Type: application/json'); +// echo $tmp[0]["auswertung"]; +// exit(); +// } +// } diff --git a/packages/zuladungsliste/Classes/Zuladungsliste/TreemenuPosition.php b/packages/zuladungsliste/Classes/Zuladungsliste/TreemenuPosition.php new file mode 100644 index 0000000..55323c8 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuladungsliste/TreemenuPosition.php @@ -0,0 +1,97 @@ + + * + * All rights reserved + * ************************************************************* */ + +class TreemenuPosition +{ + public static function laden() + { + //LOAD POSITION TREE Menu + // echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC"); + // exit; + $user = $GLOBALS['TSFE']->fe_user->user; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users'); + // $queryBuilder + // ->getRestrictions() + // ->removeByType(StartTimeRestriction::class) + // ->removeByType(EndTimeRestriction::class); + // $queryBuilder->getRestrictions()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('uid', 'tstamp', 'punkte', 'rang', 'nominiert', 'gesperrt_bis') + ->from('tx_zuladungsliste_archive_user') + ->where( + $queryBuilder->expr()->eq('user_id', (int) $user['uid']), + )->orderBy('tstamp', 'DESC'); + $tmp = $queryBuilder->execute()->fetchAll(); + + // echo $queryBuilder->getSQL(); + // debug($queryBuilder->getSQL()); + + // $tmp = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid, tstamp, punkte, rang, nominiert', 'tx_zuladungsliste_archive_user', "user_id=$user_id AND hidden=0", '', 'tstamp DESC'); + $arr = []; + $i = 1; + $p_year = 0; + foreach ($tmp as $value) { + //print_r($value); + $year = date('Y', $value['tstamp']); + if ($p_year != $year) { + $p_year = $year; + $arr[] = [ + 'title' => $year, + 'id' => (int) $i, + 'hasChildren' => (int) 1, + 'type' => 'year', + 'parent' => null, + ]; + $parentid = $i; + ++$i; + } + + $value["tstamp"] += 3600 * 12; + $date = new DateTime(); + $date->setTimestamp($value["tstamp"]); + $formatter = new IntlDateFormatter('de_DE', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT); + $formatter->setPattern('dd. MMMM YYYY'); + $arr[] = [ + 'title' => $formatter->format($date), + 'hasChildren' => 0, + 'parent' => $parentid, + 'type' => 'month', + 'punkte' => $value['punkte'], + 'rang' => $value['rang'], + 'nominiert' => $value['nominiert'], + 'gesperrt_bis' => $value['gesperrt_bis'], + 'id' => $i, + 'uid' => $value['uid'], + ]; + ++$i; + } + + header('Content-Type: application/json'); + echo json_encode($arr); + exit(); + } +} \ No newline at end of file diff --git a/packages/zuladungsliste/Classes/Zuladungsliste/_ZuladungslisteController.php b/packages/zuladungsliste/Classes/Zuladungsliste/_ZuladungslisteController.php new file mode 100644 index 0000000..a097ddd --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuladungsliste/_ZuladungslisteController.php @@ -0,0 +1,40 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _ZuladungslisteController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'lade_treemenu_position': + return TreemenuPosition::laden(); + case 'lade_position_architekt': + return PositionArchitekt::laden(); + case 'lade_punktezuweisung': + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/Zuteilung.php b/packages/zuladungsliste/Classes/Zuteilungen/Zuteilung.php new file mode 100644 index 0000000..3906dfc --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/Zuteilung.php @@ -0,0 +1,140 @@ + + * + * All rights reserved + * ************************************************************* */ + +class Zuteilung +{ + /** + * @return void + */ + public static function laden() + { + // load for prit zuteilungen + $zuteilung_uid = preg_replace("'\D'", "", $_GET['zuladungid']); + if (!is_numeric($zuteilung_uid)) { + exit; + } + + // $arr = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("a.uid id, a.tstamp, b.wettbewerb, a.anzahl_architekten", + // "tx_zuladungsliste_zuteilungen a, tx_zuladungsliste_domain_model_wettbewerbe b", + // "a.hidden=0 AND a.uid_wettbewerbe=b.uid AND a.uid=$zuteilung_uid"); + + + $limitSelection=date('Y-m-d', strtotime('-1 year')); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('tx_zuladungsliste_zuteilungen.uid', 'tx_zuladungsliste_zuteilungen.tstamp', 'b.wettbewerb', 'tx_zuladungsliste_zuteilungen.anzahl_architekten') + ->from('tx_zuladungsliste_zuteilungen') + ->join( + 'tx_zuladungsliste_zuteilungen', + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'b', + $queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen.uid_wettbewerbe')), + ) + ->where($queryBuilder->expr()->eq('tx_zuladungsliste_zuteilungen.uid', $zuteilung_uid)); + $statement = $queryBuilder->execute()->fetchAll(); + + // Message::note($queryBuilder->getSQL()); + + $$print = ' + Print Zuladungsliste'; + + if (isset($_GET['print'])) { + $print .= '
'; + } else { + $print .= ''; + } + $print .= '

'.$statement[0]["wettbewerb"].'
vom '.date("d. M. y", (int)$statement[0]["tstamp"]).'

'; + + $limitSelection=date('Y-m-d', strtotime('-1 year')); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select( + 'tx_zuladungsliste_zuteilungen_user.uid', + 'tx_zuladungsliste_zuteilungen_user.tstamp', + 'tx_zuladungsliste_zuteilungen_user.position', + 'tx_zuladungsliste_zuteilungen_user.ersatz', + 'b.company', + 'b.name' + ) + ->from('tx_zuladungsliste_zuteilungen_user') + ->join( + 'tx_zuladungsliste_zuteilungen_user', + 'fe_users', + 'b', + $queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen_user.user_id')), + ) + ->where($queryBuilder->expr()->eq('tx_zuladungsliste_zuteilungen_user.uid_zuteilungen_user', $zuteilung_uid)) + ->orderBy('ersatz')->addOrderBy('position'); + + // Message::note($queryBuilder->getSQL()); + + + + $statement = $queryBuilder->execute()->fetchAll(); + + $nomiert = '

Nominierungen

'; + $nomiert .= ''; + $ersatz = '

Ersatz Nominierungen

'; + $ersatz .= ''; + + // if (count($statement)/2==$key) { + // $print .= ''; + // } + + foreach ($statement as $key => $value) { + $colorclass = $value["ersatz"] ? "ersatz" : "gewaehlt"; + + if ($value["ersatz"]) { + $ersatz .= ''; + $ersatz .= ''; + $ersatz .= ''; + $ersatz .= ''; + $ersatz .= ''; + $ersatz .= ''; + } else { + $nomiert .= ''; + $nomiert .= ''; + $nomiert .= ''; + $nomiert .= ''; + $nomiert .= ''; + $nomiert .= ''; + } + } + $nomiert .= '
'; + $ersatz .= ''; + + $print .= $nomiert; + $print .= $ersatz; + + if (isset($_GET['print'])) { + $print .= ''; + } + echo $print; + exit; + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungNeu.php b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungNeu.php new file mode 100644 index 0000000..c05a603 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungNeu.php @@ -0,0 +1,122 @@ + + * + * All rights reserved + * ************************************************************* */ + +class ZuteilungNeu +{ + /** + * @return void + */ + public static function zuteilen() + { + $user = $GLOBALS['TSFE']->fe_user->user; + + /******************************************************** + * VARS + ********************************************************/ + $kammernid = GeneralUtility::_GP("kammernid"); + if (!is_numeric($kammernid)) { + exit; + } + $wettbewerb_uid = GeneralUtility::_GP("wettbewerb_uid"); + if (!is_numeric($wettbewerb_uid)) { + exit; + } + $next = GeneralUtility::_GP("next"); + if (!is_numeric($next)) { + exit; + } + + /******************************************************** + * NEXT + ********************************************************/ + $arr = Zuteilungen::laden($returnAsArray = true); + $next_array = Zuteilungen::filterNaechsten($arr, $next); + + /******************************************************** + * punkte uid with 0 punkte + * Platzhalter für Zuteilung + * bei gewinn erden punkte später zugeteilt + ********************************************************/ + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm'); + $queryBuilder + ->select( + 'a.uid', + 'a.bezeichnung', + )->from('tx_zuladungsliste_punkte_kriterien_mm') + ->join( + 'tx_zuladungsliste_punkte_kriterien_mm', + 'tx_zuladungsliste_domain_model_punkte', + 'a', + $queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_punkte')) + ) + ->where($queryBuilder->expr()->eq('tx_zuladungsliste_punkte_kriterien_mm.punkte', 0)); + // Message::note($queryBuilder->getSQL()); + $zuweisung_uid_punkte = $queryBuilder->execute()->fetchOne(); + + $insert_array = []; + $insert_array['tstamp'] = time(); + $insert_array['crdate'] = time(); + $insert_array['pid'] = WETTBEWERBE_PID; + $insert_array['uid_user'] = $user['uid']; // Ersteller + $insert_array['uid_wettbewerbe'] = $wettbewerb_uid; + $insert_array['anzahl_architekten'] = $next; + + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen'); + $queryBuilder->insert('tx_zuladungsliste_zuteilungen')->values($insert_array)->execute(); + $uid_zuteilungen_user = $queryBuilder->getConnection()->lastInsertId(); + + foreach ($next_array as $key => $value) { + if ($value["ersatz"]==0) { + $insert_array = array(); + $insert_array['crdate'] = time(); + $insert_array['pid'] = WETTBEWERBE_PID; + $insert_array['tstamp_zuordnung'] = time(); + $insert_array['tstamp_aktivierung'] = time(); + $insert_array['uid_punkte'] = $zuweisung_uid_punkte; + $insert_array['uid_wettbewerbe'] = $wettbewerb_uid; + $insert_array['uid_user'] = $value["user_id"]; // Architekten + $queryBuilder + ->insert('tx_zuladungsliste_wettbewerbe_architekten_mm') + ->values($insert_array) + ->execute(); + } + $insert_array = array(); + $insert_array['tstamp'] = time(); + $insert_array['crdate'] = time(); + $insert_array['pid'] = WETTBEWERBE_PID; + $insert_array['uid_zuteilungen_user'] = $uid_zuteilungen_user; + $insert_array['user_id'] = $value["user_id"]; // Architekten + $insert_array['position'] = $key+1; + $insert_array['ersatz'] = $value["ersatz"]; + $queryBuilder + ->insert('tx_zuladungsliste_zuteilungen_user') + ->values($insert_array) + ->execute(); + } + sleep(1); + echo $uid_zuteilungen_user; + exit; + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungWettbewerbe.php b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungWettbewerbe.php new file mode 100644 index 0000000..d43b5f8 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungWettbewerbe.php @@ -0,0 +1,78 @@ + + * + * All rights reserved + * ************************************************************* */ + +class ZuteilungWettbewerbe +{ + /** + * @return void + */ + public static function laden() + { + $limitSelection=date('Y-m-d', strtotime('-1 year')); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('tx_zuladungsliste_domain_model_wettbewerbe.uid', 'tx_zuladungsliste_domain_model_wettbewerbe.wettbewerb', 'tx_zuladungsliste_domain_model_wettbewerbe.sperre_deaktiviert') + ->from('tx_zuladungsliste_domain_model_wettbewerbe') + ->join( + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'tx_zuladungsliste_domain_model_kriterien', + 'b', + $queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid')) + ) + ->where( + $queryBuilder->expr()->gt('tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin', $queryBuilder->createNamedParameter($limitSelection)), + $queryBuilder->expr()->eq('b.sperrung', (int) 1) + ); + $statement = $queryBuilder->execute()->fetchAll(); + + // Message::note($queryBuilder->getSQL()); + + // select wettbewerb für zuteilung + // $limitSelection=date('Y-m-d', strtotime('-1 year')); + // // echo $GLOBALS['TYPO3_DB']->SELECTquery("a.uid id, a.wettbewerb name", "tx_zuladungsliste_domain_model_wettbewerbe a, tx_zuladungsliste_domain_model_kriterien b", "a.deleted=0 AND a.hidden=0 AND a.entscheidungstermin>'".$limitSelection."' AND a.kriteriumid=b.uid AND b.sperrung=1","","a.sperre_deaktiviert ASC, a.entscheidungstermin ASC"); + // $tmp = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( + // "a.uid id, a.wettbewerb name, a.sperre_deaktiviert", + // "tx_zuladungsliste_domain_model_wettbewerbe a, tx_zuladungsliste_domain_model_kriterien b", + // "a.deleted=0 AND a.hidden=0 AND a.entscheidungstermin>'".$limitSelection."' AND a.kriteriumid=b.uid AND b.sperrung=1", + // "", + // "a.uid DESC" + // ); + // $arr=[]; + // while (list($key, $value) = each($tmp)) { + // if ($value["sperre_deaktiviert"]==1) { + // $value["label"] = '
' . $value["name"] . '
(Sperre deaktiviert).'; + // } else { + // $value["label"] = '' . $value["name"] . ""; + // } + // $arr[] = $value; + // } + + + header('Content-Type: application/json'); + echo json_encode($statement); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/Zuteilungen.php b/packages/zuladungsliste/Classes/Zuteilungen/Zuteilungen.php new file mode 100644 index 0000000..f47aaa2 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/Zuteilungen.php @@ -0,0 +1,86 @@ + + * + * All rights reserved + * ************************************************************* */ + +class Zuteilungen +{ + /** + * @return void + */ + public static function laden($return_array = false) + { + $liste = new _Berechnung(); + $liste::berechnen(); + + $_p = ['n2','n3','n4','n5','n6','e2','e3','e4','e5','e6']; + + $_arr = []; + foreach (_Berechnung::$_data['liste'] as $key => $value) { + $door = false; + foreach ($_p as $k => $v) { + if (isset($value[$v]) and $value[$v] == 1) { + $value[$v] = (int) $value[$v]; + $door = true; + } + } + if ($door) { + unset($value['auswertung']); + $_arr[] = $value; + } + } + + if ($return_array) { + return $_arr; + } + + header('Content-Type: application/json'); + echo json_encode($_arr); + exit(); + } + + /** + * @return void + */ + public static function filterNaechsten($_arr, $dienaechsten) + { + $f1 = "n".$dienaechsten; + $f2 = "e".$dienaechsten; + // echo "\nf1: " . $f1; + // echo "\nf2: " . $f2; + // echo "\n"; + $next = []; + foreach ($_arr as $key => $value) { + if ((isset($value[$f1]) and $value[$f1]==1) || (isset($value[$f2]) and $value[$f2]==1)) { + $tmp = []; + $tmp['user_id'] = $value['user_id']; + $tmp['pos'] = $value['pos']; + $tmp['rang'] = $value['rang']; + $tmp["ersatz"] = $value[$f2] ? $value[$f2] : 0; + $tmp[$f1] = $value[$f1]; + $tmp[$f2] = $value[$f2]; + $next[] = $tmp; + } + } + return $next; + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungenErteilt.php b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungenErteilt.php new file mode 100644 index 0000000..88dd313 --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/ZuteilungenErteilt.php @@ -0,0 +1,53 @@ + + * + * All rights reserved + * ************************************************************* */ + +class ZuteilungenErteilt +{ + /** + * @return void + */ + public static function laden() + { + $limitSelection=date('Y-m-d', strtotime('-1 year')); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen'); + $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + $queryBuilder + ->select('tx_zuladungsliste_zuteilungen.uid', 'tx_zuladungsliste_zuteilungen.tstamp', 'b.wettbewerb', 'tx_zuladungsliste_zuteilungen.anzahl_architekten') + ->from('tx_zuladungsliste_zuteilungen') + ->join( + 'tx_zuladungsliste_zuteilungen', + 'tx_zuladungsliste_domain_model_wettbewerbe', + 'b', + $queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen.uid_wettbewerbe')) + ); + $statement = $queryBuilder->execute()->fetchAll(); + + // Message::note($queryBuilder->getSQL()); + + header('Content-Type: application/json'); + echo json_encode($statement); + exit(); + } +} diff --git a/packages/zuladungsliste/Classes/Zuteilungen/_ZuteilungenController.php b/packages/zuladungsliste/Classes/Zuteilungen/_ZuteilungenController.php new file mode 100644 index 0000000..25bf0fb --- /dev/null +++ b/packages/zuladungsliste/Classes/Zuteilungen/_ZuteilungenController.php @@ -0,0 +1,50 @@ + + * + * All rights reserved + * ************************************************************* */ + +class _ZuteilungenController +{ + public function __construct($xaction) + { + switch ($xaction) { + case 'lade_zuteilungen': + Zuteilungen::laden(); + break; + case 'zuteilungen_wettbewerbe': + ZuteilungWettbewerbe::laden(); + break; + case 'zuteilungen_erteilt': + ZuteilungenErteilt::laden(); + break; + case 'zuteilung_laden': + Zuteilung::laden(); + break; + case 'neu_zuteilen': + ZuteilungNeu::zuteilen(); + break; + default: + Message::error(__FILE__, __LINE__, 'no xaction switch defined'); + } + } +} diff --git a/packages/zuladungsliste/Configuration/Extbase/Persistence/Classes.php b/packages/zuladungsliste/Configuration/Extbase/Persistence/Classes.php new file mode 100644 index 0000000..d7f06f2 --- /dev/null +++ b/packages/zuladungsliste/Configuration/Extbase/Persistence/Classes.php @@ -0,0 +1,21 @@ + [ + 'tableName' => 'fe_users', + 'recordType' => 'Tx_Zuladungsliste_Architekten', + 'subclasses' => [ + \HermannTelser\Zuladungsliste\Domain\Model\User::class + ] + ], + \HermannTelser\Zuladungsliste\Domain\Model\User::class => [ + 'tableName' => 'fe_users', + 'recordType' => 'Tx_Zuladungsliste_Architekten', + ], + \HermannTelser\Zuladungsliste\Domain\Model\Architekten::class => [ + 'tableName' => 'fe_users', + 'recordType' => 'Tx_Zuladungsliste_Architekten', + ] +]; diff --git a/packages/zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml b/packages/zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml new file mode 100644 index 0000000..e910621 --- /dev/null +++ b/packages/zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml @@ -0,0 +1,37 @@ + + + 1 + + + + + + Zuladungsliste Konfiguration + + array + + + + + reload + + select + + + Administration + 1 + + + Zuladungsliste + 2 + + + 0 + + + + + + + + diff --git a/packages/zuladungsliste/Configuration/RequestMiddlewares.php b/packages/zuladungsliste/Configuration/RequestMiddlewares.php new file mode 100644 index 0000000..b966e22 --- /dev/null +++ b/packages/zuladungsliste/Configuration/RequestMiddlewares.php @@ -0,0 +1,12 @@ + [ + 'HermannTelser/zuladungsliste/ajaxzuladungsliste' => [ + 'target' => \HermannTelser\Zuladungsliste\Middleware\Ajax::class, + 'after' => [ + 'typo3/cms-frontend/prepare-tsfe-rendering' + ] + ], + ], +]; diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/fe_users.php b/packages/zuladungsliste/Configuration/TCA/Overrides/fe_users.php new file mode 100644 index 0000000..7070271 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/fe_users.php @@ -0,0 +1,206 @@ + 0, + 'label' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste.tx_extbase_type', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => array( + array('Architekten','Tx_Zuladungsliste_Architekten') + ), + 'default' => 'Tx_Zuladungsliste_Architekten', + 'size' => 1, + 'maxitems' => 1, + ) + ); + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tempColumnstx_zuladungsliste_fe_users, 1); +} + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'fe_users', + $GLOBALS['TCA']['fe_users']['ctrl']['type'], + '', + 'after:' . $GLOBALS['TCA']['fe_users']['ctrl']['label'] +); + +$GLOBALS['TCA']['fe_users']['ctrl']['formattedLabel_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadArchitekten'; +$GLOBALS['TCA']['fe_users']['feInterface']['fe_admin_fieldList'] .= ',kammermitgliedsnummer'; +$GLOBALS['TCA']['fe_users']['ctrl']['label'] = 'company'; +$tmp_zuladungsliste_columns = array( + 'kammermitgliedsnummer' => array( + 'exclude' => 0, + 'label' => 'ZT Kammer Mitgliedsnummer', + 'config' => array( + 'type' => 'input', + 'size' => 10, + 'eval' => 'unique' + ) + ), + 'inliste' => array( + 'exclude' => 0, + 'label' => 'In Zuladungsliste', + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'vereidigung' => array( + 'exclude' => 0, + 'label' => 'Tag der Vereidigung', + 'config' => array( + 'renderType' => 'inputDateTime', + 'dbType' => 'date', + 'type' => 'input', + 'size' => 7, + 'format' => 'date', + 'eval' => 'date', + 'checkbox' => 1, + 'disableAgeDisplay' => 1, + 'default' => '0000-00-00' + ), + ), + 'frauenfoerderpunkt' => array( + 'exclude' => 0, + 'label' => 'Frauenförderpunkt', + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'solidaritaetserklaerung' => array( + 'exclude' => 0, + 'label' => 'Solidaritätserklärung', + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'kontoaufloesung_active' => array( + 'exclude' => 0, + 'label' => 'Kontoauflösung (gültig nur mit Stichtag)', + 'config' => array( + 'renderType' => 'inputDateTime', + 'dbType' => 'date', + 'type' => 'input', + 'size' => 7, + 'format' => 'date', + 'eval' => 'date', + 'checkbox' => 1, + 'disableAgeDisplay' => 1, + 'default' => '0000-00-00' + ), + ), + 'kontoaufloesung_begruendung' => [ + 'label' => 'Begründung der Auslistung, z.B.: Pension, Abmeldung, Zusammenlegung..)', + 'config' => array( + 'type' => 'text' + ), + ], + 'extrasperrung' => array( + 'exclude' => 0, + 'label' => 'Sperrungen', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_extrasperrung_user_mm', + 'foreign_field' => 'uid_user', + 'foreign_label' => 'uid_extrasperrung', + 'appearance' => array( + 'expandSingle' => 1, + 'newRecordLinkAddTitle' => 0, + 'levelLinksPosition' => 'both', + ), + ), + ), + 'wettbewerbe' => array( + 'exclude' => 0, + 'label' => 'Wettbewerbe', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_wettbewerbe_architekten_mm', + 'foreign_field' => 'uid_user', + 'foreign_label' => 'uid_wettbewerbe', + 'appearance' => array( + 'expandSingle' => 1, + 'newRecordLinkAddTitle' => 0, + 'levelLinksPosition' => 'both', + ), + ), + ), + 'kammernid' => array( + 'exclude' => 0, + 'label' => 'Kammer Zuordnung', + 'config' => array( + 'type' => 'select', + 'size' => 1, + 'renderType' => 'selectSingle', + 'items' => array( + array(' --- Bitte wählen --- ',0) + ), + 'foreign_table' => 'tx_zuladungsliste_domain_model_kammern', + ) + ), + 'kontoaufloesung' => array( + 'exclude' => 0, + 'label' => 'Punkte Verteilung (optional)', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_konto_aufloesung_mm', + 'foreign_field' => 'uid_geber', + 'foreign_label' => 'uid_empfaenger', + ), + ), + 'punkteverschiebung' => array( + 'exclude' => 0, + 'label' => 'Punkte verschieben', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_punkte_verschiebung_mm', + 'foreign_field' => 'uid_geber', + 'foreign_label' => 'uid_empfaenger', + ), + ), +); + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tmp_zuladungsliste_columns); + + +/* inherit and extend the show items from the parent class */ + +// debug($GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']); + +// if (isset($GLOBALS['TCA']['fe_users']['types']['0']['showitem'])) { +// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = $GLOBALS['TCA']['fe_users']['types']['0']['showitem']; +// } elseif (is_array($GLOBALS['TCA']['fe_users']['types'])) { +// // use first entry in types array +// $fe_users_type_definition = reset($GLOBALS['TCA']['fe_users']['types']); +// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = $fe_users_type_definition['showitem']; +// } else { +// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = ''; +// } + + +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = '--div--;Allgemein,username,password,usergroup'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Persönliche Daten,company,title,gender,first_name,last_name,date_of_birth,address,zip,city,static_info_country,telephone,email,comments'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Hinweise,description'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Zuladungsliste,kammermitgliedsnummer, kammernid, vereidigung, geburtsdatum, frauenfoerderpunkt, solidaritaetserklaerung'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Wettbewerbe,wettbewerbe'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Besondere Sperrungen,extrasperrung'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Konto Auflösung, kontoaufloesung_active, kontoaufloesung_begruendung, kontoaufloesung'; +$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Punkte Verschiebung,punkteverschiebung'; + +$GLOBALS['TCA']['fe_users']['columns'][$GLOBALS['TCA']['fe_users']['ctrl']['type']]['config']['items'][] = ['Zuladungsliste ZT Kammer Architekten']; + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr( + 'Zuladungsliste', + 'EXT:/Resources/Private/Language/locallang_csh_.xlf' +); diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/sys_template.php b/packages/zuladungsliste/Configuration/TCA/Overrides/sys_template.php new file mode 100644 index 0000000..777b6d6 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/sys_template.php @@ -0,0 +1,5 @@ + $fakeField, +// 'config' => [ +// 'type' => 'passthrough', +// ] +// ]; +// } +// } + + +// $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['zuladungsliste_pi1'] = 'pi_flexform'; +// \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( +// 'zuladungsliste_pi1', +// 'FILE:EXT:zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml' +// ); diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_extrasperrung.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_extrasperrung.php new file mode 100644 index 0000000..b6a5df9 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_extrasperrung.php @@ -0,0 +1,10 @@ +loadKriterien'; diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_preisart.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_preisart.php new file mode 100644 index 0000000..ea7e35a --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_preisart.php @@ -0,0 +1,9 @@ +loadSektionstag'; diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_wettbewerbe.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_wettbewerbe.php new file mode 100644 index 0000000..9ace1b3 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_domain_model_wettbewerbe.php @@ -0,0 +1,9 @@ +loadPunkteVerteilungs' ; +$GLOBALS['TCA']['tx_zuladungsliste_konto_aufloesung_mm']['ctrl']['formattedLabel_userFunc_options'] = array( + 'tx_zuladungsliste_konto_aufloesung_mm' => array( + 'uid_empfaenger', + 'prozente' + ) +); diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_kriterien_mm.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_kriterien_mm.php new file mode 100644 index 0000000..510bb19 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_kriterien_mm.php @@ -0,0 +1,12 @@ +loadKriterienPunkte' ; +$GLOBALS['TCA']['tx_zuladungsliste_punkte_kriterien_mm']['ctrl']['formattedLabel_userFunc_options'] = [ + 'tx_zuladungsliste_punkte_kriterien_mm' => [ + 'uid_kriterien', + 'uid_punkte', + 'punkte' + ] +]; diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_verschiebung_mm.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_verschiebung_mm.php new file mode 100644 index 0000000..9cd9884 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_punkte_verschiebung_mm.php @@ -0,0 +1,13 @@ +loadTeilnehmer' ; +$GLOBALS['TCA']['tx_zuladungsliste_punkte_verschiebung_mm']['ctrl']['formattedLabel_userFunc_options'] = array( + 'tx_zuladungsliste_wettbewerbe_architekten_mm' => array( + 'uid_geber', + 'uid_empfaenger', + 'prozente', + 'wettbewerbe', + ) +); \ No newline at end of file diff --git a/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_wettbewerbe_architekten_mm.php b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_wettbewerbe_architekten_mm.php new file mode 100644 index 0000000..806d218 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/Overrides/tx_zuladungsliste_wettbewerbe_architekten_mm.php @@ -0,0 +1,15 @@ +loadWettbewerbArchitekten' ; +$GLOBALS['TCA']['tx_zuladungsliste_wettbewerbe_architekten_mm']['ctrl']['formattedLabel_userFunc_options'] = array( + 'tx_zuladungsliste_wettbewerbe_architekten_mm' => array( + 'uid_wettbewerbe', + 'uid_user', + 'uid_punkte', + 'notizen', + 'tstamp_zuordnung', + 'tstamp_aktivierung' + ) +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_extrasperrung.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_extrasperrung.php new file mode 100644 index 0000000..b49f580 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_extrasperrung.php @@ -0,0 +1,174 @@ + array( + 'title' => 'Besondere Sperrung', + 'label' => 'begruendung', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'delete' => 'deleted', + 'searchFields' => 'begruendung,sperrzeitbis,extrasperrung_user,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg' + ), + 'interface' => array( + 'showRecordFieldList' => 'begruendung, sperrzeitbis,extrasperrung_user', + ), + 'types' => array( + '1' => array('showitem' => 'begruendung, sperrzeitbis, extrasperrung_user'), + ), + 'palettes' => array( + '1' => array('showitem' => ''), + ), + 'columns' => array( + + // 'sys_language_uid' => array( + // 'exclude' => 1, + // 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language', + // 'config' => array( + // 'type' => 'select', + // 'renderType' => 'selectSingle', + // 'foreign_table' => 'sys_language', + // 'foreign_table_where' => 'ORDER BY sys_language.title', + // 'items' => array( + // array('LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages', -1), + // array('LLL:EXT:lang/locallang_general.xlf:LGL.default_value', 0) + // ), + // ), + // ), + // 'l10n_parent' => array( + // 'displayCond' => 'FIELD:sys_language_uid:>:0', + // 'exclude' => 1, + // 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.l18n_parent', + // 'config' => array( + // 'type' => 'select', + // 'renderType' => 'selectSingle', + // 'items' => array( + // array('', 0), + // ), + // 'foreign_table' => 'tx_zuladungsliste_domain_model_extrasperrung', + // 'foreign_table_where' => 'AND tx_zuladungsliste_domain_model_extrasperrung.pid=###CURRENT_PID### AND tx_zuladungsliste_domain_model_extrasperrung.sys_language_uid IN (-1,0)', + // ), + // ), + // 'l10n_diffsource' => array( + // 'config' => array( + // 'type' => 'passthrough', + // ), + // ), + // + // 't3ver_label' => array( + // 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.versionLabel', + // 'config' => array( + // 'type' => 'input', + // 'size' => 30, + // 'max' => 255, + // ) + // ), + + 'hidden' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => array( + 'type' => 'check', + ), + ), + 'starttime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'endtime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + # TODO + 'begruendung' => array( + 'exclude' => 1, + 'label' => 'Besondere Sperrung', + 'formattedLabel_userFunc' => 'HermannTelser\Zuladungsliste\Classes\Utilities\ZuladungslisteLabelHelper->sperrung_user', + 'formattedLabel_userFunc_options' => array( + 'special' => array( + 'begruendung', + 'sperrzeitbis' + ) + ), + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'max' => 255, + 'eval' => 'trim,required', + ) + ), + 'sperrzeitbis' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste_domain_model_extrasperrung.sperrzeitbis', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'size' => 7, + 'eval' => 'date', + 'checkbox' => 0, + ), + ), + 'extrasperrung_user' => array( + 'exclude' => 1, + 'label' => 'Sperrungen Architekten', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_extrasperrung_user_mm', + 'foreign_field' => 'uid_extrasperrung', + // 'foreign_label' => 'uid_user', + // 'foreign_selector' => 'uid_user', + // 'foreign_unique' => 'uid_user', + 'foreign_sortby' => 'sorting', + 'appearance' => array( + 'collapseAll' => true, + 'expandSingle' => true, + //'newRecordLinkAddTitle' => FALSE, + //'useCombination' => TRUE, + //'useSortable' => TRUE, + 'enabledControls' => array( + 'info' => false, + 'new' => false, + 'dragdrop' => false, + 'sort' => false, + //'hide' => false, + //'delete' => false, + //'localize' => false, + ), + + ), + ), + ), + ), +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kammern.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kammern.php new file mode 100644 index 0000000..a8ec6af --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kammern.php @@ -0,0 +1,101 @@ + [ + 'title' => 'Kammern', + 'label' => 'bezeichnung', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'typeicon_column' => 'uid', + 'delete' => 'deleted', + 'enablecolumns' => [ + //'disabled' => 'hidden', + //'starttime' => 'starttime', + //'endtime' => 'endtime', + ], + 'searchFields' => 'bezeichnung,einsichtstag', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/kammer.svg', + ], + 'interface' => [ + 'showRecordFieldList' => 'bezeichnung,einsichtstag', + ], + 'types' => [ + '1' => ['showitem' => 'bezeichnung,einsichtstag'], + ], + 'palettes' => [ + '1' => ['showitem' => ''], + ], + 'columns' => [ + 'hidden' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => [ + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')), + ], + ], + ], + 'endtime' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'input', + 'size' => 13, + 'eval' => 'datetime', + 'renderType' => 'inputDateTime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => [ + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')), + ], + ], + ], + 'bezeichnung' => [ + 'exclude' => 1, + 'label' => 'Kammer der Architekten', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim', + ], + ], + 'einsichtstag' => [ + 'exclude' => 1, + 'label' => 'Monatlicher Stichtag für Stand der Einsichtnahme', + 'config' => [ + 'type' => 'input', + 'size' => 5, + 'max' => 2, + 'eval' => 'int,required', + 'checkbox' => 1, + 'default' => 1, + 'range' => [ + 'lower' => 1, + 'upper' => 31, + ], + ], + ], + ], +]; diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kriterien.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kriterien.php new file mode 100644 index 0000000..f7aa397 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_kriterien.php @@ -0,0 +1,187 @@ + [ + 'title' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste_domain_model_kriterien', + 'label' => 'bezeichnung', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'typeicon_column' => 'kammernid', + 'delete' => 'deleted', + 'enablecolumns' => [ + //'disabled' => 'hidden', + //'starttime' => 'starttime', + //'endtime' => 'endtime', + ], + 'default_sortby' => 'ORDER BY sorting', + 'sortby' => 'sorting', + 'searchFields' => 'bezeichnung,sektinstagid,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/list.svg', + ], + 'interface' => [ + 'showRecordFieldList' => 'bezeichnung, kammernid, sektinstagid, sperrung', + ], + 'types' => [ + '1' => ['showitem' => 'bezeichnung, kammernid, sperrung, sektinstagid, --div--;Punktezuordnung,punkteid'], + ], + 'palettes' => [ + '1' => ['showitem' => ''], + ], + 'columns' => [ + 'hidden' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => [ + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')), + ], + ], + ], + 'endtime' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => [ + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')), + ], + ], + ], + + 'bezeichnung' => [ + 'exclude' => 1, + 'label' => 'Kriterium', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim', + ], + ], + // 'preisartid' => [ + // 'exclude' => 1, + // 'label' => 'Kriterium des Preises', + // 'config' => [ + // 'fieldWizard' => [ + // 'selectIcons' => [ + // 'disabled' => false + // ] + // ], + // 'type' => 'select', + // 'renderType' => 'selectSingle', + // 'items' => [ + // ['Kriterium wählen', '--div--'], + // ], + // 'foreign_table' => 'tx_zuladungsliste_domain_model_preisart', + // 'foreign_table_where' => 'ORDER BY tx_zuladungsliste_domain_model_preisart.uid ASC', + // 'size' => 1, + // 'minitems' => 1, + // 'maxitems' => 1, + // ], + // ], + 'kammernid' => [ + 'exclude' => 1, + 'label' => 'Kammer', + + 'config' => [ + 'fieldWizard' => [ + 'selectIcons' => [ + 'disabled' => true + ] + ], + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['Kammer wählen', '--div--'], + ], + 'foreign_table' => 'tx_zuladungsliste_domain_model_kammern', + 'foreign_table_where' => 'ORDER BY tx_zuladungsliste_domain_model_kammern.uid ASC', + 'size' => 1, + 'minitems' => 1, + 'maxitems' => 1, + ], + ], + 'sperrung' => [ + 'exclude' => 0, + 'label' => 'Wettbewerbe mit Sperrung', + 'config' => [ + 'type' => 'check', + 'default' => 0, + ], + ], + 'sektinstagid' => [ + 'exclude' => 1, + 'label' => 'Sektionstag', + + 'config' => [ + 'fieldWizard' => [ + 'selectIcons' => [ + 'disabled' => true + ] + ], + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['Sektionstag wählen', '--div--'], + ], + 'foreign_table' => 'tx_zuladungsliste_domain_model_sektionstage', + 'foreign_table_where' => 'ORDER BY tx_zuladungsliste_domain_model_sektionstage.stichtag ASC', + 'size' => 1, + 'minitems' => 1, + 'maxitems' => 1, + ], + ], + 'punkteid' => [ + 'exclude' => 1, + 'label' => 'Kriterien', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_punkte_kriterien_mm', + 'foreign_field' => 'uid_kriterien', + 'foreign_label' => 'uid_punkte', + 'foreign_table_where' => 'ORDER BY tx_zuladungsliste_domain_model_punkte.sorting ASC', + 'appearance' => [ + 'collapseAll' => true, + 'expandSingle' => true, + 'useCombination' => 1, + 'useSortable' => true, + 'enabledControls' => [ + 'info', + 'new', + 'dragdrop', + 'sort', + 'hide', + 'delete', + 'localize', + ], + ], + ], + ], + ], +]; diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_preisart.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_preisart.php new file mode 100644 index 0000000..1f9f69b --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_preisart.php @@ -0,0 +1,84 @@ + array( + 'title' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste_domain_model_preisart', + 'label' => 'preisart', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'delete' => 'deleted', + 'enablecolumns' => array( + 'disabled' => 'hidden', + //'starttime' => 'starttime', + //'endtime' => 'endtime', + ), + 'searchFields' => 'preisart,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/preis.svg' + ), + 'interface' => array( + 'showRecordFieldList' => 'preisart', + ), + 'types' => array( + '1' => array('showitem' => 'preisart'), + ), + 'palettes' => array( + '1' => array('showitem' => ''), + ), + 'columns' => array( + 'hidden' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => array( + 'type' => 'check', + ), + ), + 'starttime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'endtime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'preisart' => array( + 'exclude' => 1, + 'label' => 'Art des Preises', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + ), +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_punkte.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_punkte.php new file mode 100644 index 0000000..28d5f76 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_punkte.php @@ -0,0 +1,98 @@ + array( + 'title' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste_domain_model_punkte', + 'label' => 'bezeichnung', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'delete' => 'deleted', + 'dividers2tabs' => true, + 'default_sortby' => 'ORDER BY sorting', + 'sortby' => 'sorting', + 'enablecolumns' => array( + ), + 'searchFields' => 'bezeichnung,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/preis.svg' + ), + 'interface' => array( + 'showRecordFieldList' => 'bezeichnung, kriterienid', + ), + 'types' => array( + '1' => array('showitem' => 'bezeichnung, kriterienid'), + ), + 'palettes' => array( + '1' => array('showitem' => ''), + ), + 'columns' => array( + 'hidden' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => array( + 'type' => 'check', + ), + ), + 'starttime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'endtime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'bezeichnung' => array( + 'exclude' => 1, + 'label' => 'Punkte', + 'config' => array( + 'type' => 'input', + 'size' => 20, + 'max' => 50, + 'eval' => 'trim,required', + ), + ), + 'kriterienid' => array( + 'exclude' => 1, + 'label' => 'Verwendet bei diesen Kriterien', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_punkte_kriterien_mm', + 'foreign_field' => 'uid_punkte', + // 'foreign_label' => 'uid_kriterien', + // 'foreign_selector' => 'uid_kriterien', + // 'foreign_unique' => 'uid_kriterien', + 'foreign_sortby' => 'sorting', + ), + ), + ), +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_sektionstage.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_sektionstage.php new file mode 100644 index 0000000..e828ce1 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_sektionstage.php @@ -0,0 +1,263 @@ + array( + 'title' => 'Sektionstage', + 'label' => 'bezeichnung', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'typeicon_column' => 'kammernid', + 'delete' => 'deleted', + 'enablecolumns' => array( + 'disabled' => 'hidden', + //'starttime' => 'starttime', + //'endtime' => 'endtime', + ), + 'searchFields' => 'bezeichnung,stichtag,sperrzeit,sperrzeitstart,punktezeit,punktezeitstart,neueinsteiger,neueinsteigerstart,frauenfoerderung,frauenfoerderungstart,frauenfoerderungsonderstart,sektionstage_notizen,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/waage.svg' + ), + 'interface' => array( + 'showRecordFieldList' => 'hidden, bezeichnung, rwcode, stichtag, sperrzeit, sperrzeitstart, punktezeit, punktezeitstart, neueinsteiger, neueinsteigerstart, frauenfoerderung, frauenfoerderungstart, frauenfoerderungsonderstart, sektionstage_notizen', + ), + 'types' => array( + '0' => array('showitem' => 'bezeichnung, rwcode, kammernid, stichtag, + --palette--;Sperrzeiten;sperrzeit, + --palette--;Gültigkeit Punkte Allgemein;punktezeit, + --palette--;Gültigkeit Neueinsteiger;neueinsteiger, + --palette--;Gültigkeit Frauenförderung;frauenfoerderung, + --palette--;Frauenförderung Sonderstart;frauenfoerderungsonderstart, + --palette--;Bemerkungen zum Sektionstag, sektionstage_notizen') + // (wenn nicht 0 wird ab Stichtag die Sperrung monatlich angepasst, von Sperrzeit auf Sperzeit Transit) + ), + 'palettes' => array( + '1' => array('showitem' => 'bezeichnung, rwcode, kammernid, stichtag'), + 'sperrzeit' => array('showitem' => 'sperrzeit, sperrzeitstart'), + 'punktezeit' => array('showitem' => 'punktezeit, punktezeitstart'), + 'neueinsteiger' => array('showitem' => 'neueinsteiger, neueinsteigerstart'), + 'frauenfoerderung' => array('showitem' => 'frauenfoerderung, frauenfoerderungstart'), + 'frauenfoerderungsonderstart' => array('showitem' => 'frauenfoerderungsonderstart'), + 'sektionstage_notizen' => array('showitem' => 'sektionstage_notizen') + + ), + 'columns' => array( + 'hidden' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden', + 'config' => array( + 'type' => 'check', + ), + ), + 'rwcode' => array( + 'exclude' => 1, + 'label' => 'Kürzel', + 'config' => array( + 'type' => 'input', + 'size' => 5, + 'max' => 5, + ), + ), + 'starttime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'endtime' => array( + 'exclude' => 1, + 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'bezeichnung' => array( + 'exclude' => 1, + 'label' => 'Sektionstag', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + 'kammernid' => [ + 'exclude' => 1, + 'label' => 'Kammer Zuordnung', + 'config' => [ + 'fieldWizard' => [ + 'selectIcons' => [ + 'disabled' => true + ] + ], + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['Bitte Wählen', 0], + ], + 'foreign_table' => 'tx_zuladungsliste_domain_model_kammern', + ] + ], + 'stichtag' => array( + 'exclude' => 1, + 'label' => 'Stichtag', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'sperrzeit' => array( + 'exclude' => 1, + 'label' => 'In Monaten', + 'config' => array( + 'type' => 'input', + 'size' => 4, + 'eval' => 'int,required', + 'range' => array('lower'=>12,'upper'=>60), + 'checkbox' => '1', + 'default' => '1', + ) + ), + 'sperrzeitstart' => array( + 'exclude' => 1, + 'label' => 'Start Datum', + 'description' => 'Gültig für Wettbewerbe mit Freigabe jünger als Feldwert, wenn leer wird der Wert des vorherigen Sektionstages übernommen, wenn alle ohne Wert wird die Bedingung ingnoriert', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'punktezeit' => array( + 'exclude' => 1, + 'label' => 'In Monaten', + 'config' => array( + 'type' => 'input', + 'size' => 4, + 'eval' => 'int' + ) + ), + 'punktezeitstart' => array( + 'exclude' => 1, + 'label' => 'Start Datum', + 'description' => 'Gültig wenn Vereidigungsdatum jünger als Feldwert, wenn leer wird der Wert des vorherigen Sektionstages übernommen, wenn alle ohne Wert wird die Bedingung ingnoriert', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'neueinsteiger' => array( + 'exclude' => 1, + 'label' => 'In Monaten', + 'config' => array( + 'type' => 'input', + 'size' => 4, + 'eval' => 'int' + ) + ), + 'neueinsteigerstart' => array( + 'exclude' => 1, + 'label' => 'Start Datum', + 'description' => 'Gültig wenn Vereidigungsdatum jünger als Feldwert, wenn leer wird der Wert des vorherigen Sektionstages übernommen, wenn alle ohne Wert wird die Bedingung ingnoriert', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'frauenfoerderung' => array( + 'exclude' => 1, + 'label' => 'In Monaten', + 'config' => array( + 'type' => 'input', + 'size' => 4, + 'eval' => 'int' + ) + ), + 'frauenfoerderungstart' => array( + 'exclude' => 1, + 'label' => 'Start Datum', + 'description' => 'Gültig wenn Vereidigungsdatum jünger als Feldwert, wenn leer wird der Wert des vorherigen Sektionstages übernommen, wenn alle ohne Wert wird die Bedingung ingnoriert', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'frauenfoerderungsonderstart' => array( + 'exclude' => 1, + 'label' => 'Start Datum', + 'description' => 'Bei Eingabe eines Datums wird der Frauenförderungspunkt ab diesem Zeitpunkt anstatt dem Datum der Vereidigung berechnet, wenn im Vergleich dazu eine längere Gültigkeit erzielt wird.', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'sektionstage_notizen' => array( + 'exclude' => 0, + 'label' => 'Bemerkungen', + 'config' => array( + 'type' => 'text', + 'cols' => 48, + 'rows' => 5, + ), + ), + + ), +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_wettbewerbe.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_wettbewerbe.php new file mode 100644 index 0000000..cdf01e3 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_domain_model_wettbewerbe.php @@ -0,0 +1,263 @@ + array( + 'title' => 'Wettbewerbe', + 'label' => 'wettbewerb', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'delete' => 'deleted', + 'enablecolumns' => array( + 'disabled' => 'hidden', + //'starttime' => 'starttime', + //'endtime' => 'endtime', + ), + 'searchFields' => 'wettbewerb,beschreibung,', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/wettbewerb.svg', + 'default_sortby' => 'uid DESC' + ), + 'interface' => array( + // Feld "kammerbeschluss" für stmk nicht in verwendung, sperrung + 'showRecordFieldList' => 'hidden, wettbewerb, beschreibung, registrierung, verfahrensort, bundesland, abgabetermin, entscheidungstermin, aufgabenstellung, wettbewerb_user', + ), + 'types' => array( + '1' => array('showitem' => ' + --div--;Wettbewerbe & Preise, wettbewerb, verfahrensid, kriteriumid, entscheidungstermin, sperre_deaktiviert, + --div--;Auszeichnungen, wettbewerb_user, + --div--;Beschreibung, beschreibung, + --div--;Zusätzliche Informationen, registrierung, verfahrensort, bundesland, aufgabenstellung' + ), + ), + 'palettes' => array( + '1' => array('showitem' => ''), + ), + 'columns' => array( + + 'hidden' => array( + 'exclude' => 0, + 'label' => 'Verborgen', + 'config' => array( + 'type' => 'check', + ), + ), + 'starttime' => array( + 'exclude' => 0, + 'label' => 'Startzeit', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + 'endtime' => array( + 'exclude' => 0, + 'label' => 'Endzeit', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'size' => 13, + 'eval' => 'datetime', + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true + ], + 'range' => array( + 'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y')) + ), + ), + ), + + 'wettbewerb' => array( + 'exclude' => 0, + 'label' => 'Wettbewerb oder Preis', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' + ), + ), + 'verfahrensid' => array( + 'exclude' => 0, + 'label' => 'Verfahren Id', + 'description' => "Projekt Nummer gelisted auf 'www.architekturwettbewerb.at'", + 'config' => array( + 'type' => 'input', + 'size' => 10, + 'eval' => 'int,required,unique' + ), + ), + 'beschreibung' => array( + 'exclude' => 0, + 'label' => 'Beschreibung', + 'config' => array( + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim', + ), + ), + 'registrierung' => array( + 'exclude' => 0, + 'label' => 'Registrierung', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + 'verfahrensort' => array( + 'exclude' => 0, + 'label' => 'Verfahrensort', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + 'bundesland' => array( + 'exclude' => 0, + 'label' => 'Bundesland', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + 'abgabetermin' => array( + 'exclude' => 0, + 'label' => 'Abgabetermin', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'kammerbeschluss' => array( + 'exclude' => 0, + 'label' => 'Kammerbeschluss Freigabedatum', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'entscheidungstermin' => array( + 'exclude' => 0, + 'label' => 'Entscheidungstermin', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'sperrung' => array( + 'exclude' => 0, + 'label' => 'Wettbewerb mit Sperrung', + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'sperre_deaktiviert' => array( + 'exclude' => 0, + 'label' => 'Sperrung deaktivieren', + 'description' => "Bei Wettbewerb mit Sperrung diese für diesen Wettbewerb deaktivieren", + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'aufgabenstellung' => array( + 'exclude' => 0, + 'label' => 'Aufgabenstellung', + 'config' => array( + 'type' => 'text', + 'cols' => 40, + 'rows' => 15, + 'eval' => 'trim' + ) + ), + 'wettbewerb_user' => array( + 'exclude' => 0, + 'label' => 'Architekten', + 'config' => array( + 'type' => 'inline', + 'foreign_table' => 'tx_zuladungsliste_wettbewerbe_architekten_mm', + 'foreign_table_where' => 'ORDER BY fe_users.company DESC', + 'foreign_field' => 'uid_wettbewerbe', + // 'foreign_sortby' => 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid', + // 'foreign_label' => 'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_user', + // 'foreign_selector' => 'uid_user', + // 'foreign_unique' => 'uid_user', + 'appearance' => array( + 'levelLinksPosition' => 'both', + 'collapseAll' => true, + 'expandSingle' => true, + //'newRecordLinkAddTitle' => FALSE, + //'useCombination' => TRUE, + //'useSortable' => TRUE, + 'enabledControls' => array( + 'info' => false, + 'new' => false, + 'dragdrop' => false, + 'sort' => false, + //'hide' => false, + //'delete' => false, + //'localize' => false, + ), + + ), + ), + ), + 'kriteriumid' => array( + 'exclude' => 0, + 'label' => 'Kriterium des Preises', + 'config' => array( + 'fieldWizard' => [ + 'selectIcons' => [ + 'disabled' => true + ] + ], + "type" => "select", + 'renderType' => 'selectSingle', + 'items' => array( + array('Kriterium wählen', '--div--'), + ), + "foreign_table" => "tx_zuladungsliste_domain_model_kriterien", + 'foreign_table_where' => 'ORDER BY uid', + //'foreign_table_where' => ' AND tx_zuladungsliste_domain_model_kriterien.uid=###REC_FIELD_[kriteriumid]### ORDER BY tx_zuladungsliste_domain_model_kriterien.bezeichnung ASC', + "size" => 1, + "minitems" => 1, + "maxitems" => 1, + ), + ), + ), +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_extrasperrung_user_mm.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_extrasperrung_user_mm.php new file mode 100644 index 0000000..e567824 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_extrasperrung_user_mm.php @@ -0,0 +1,48 @@ + array( + 'title' => 'Besondere Sperrungen', + 'hideTable' => true, + 'sortby' => 'sorting', + 'label' => 'Besondere Sperrungen User Relation', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg', + 'typeicon_classes' => [ + 'default' => 'zuladungsliste-sperrung', + ], + ), + 'columns' => array( + 'uid_extrasperrung' => array( + 'label' => 'Besondere Sperrungen', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tx_zuladungsliste_domain_model_extrasperrung', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'uid_user' => array( + 'label' => 'Architekt', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => array( array(' --- Bitte wählen --- ',0) ), + 'foreign_table' => 'fe_users', + 'foreign_table_where' => ' ORDER BY company', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + ), + 'types' => array( + '0' => array('showitem' => 'uid_extrasperrung,uid_user') + ), + 'palettes' => array() +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_konto_aufloesung_mm.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_konto_aufloesung_mm.php new file mode 100644 index 0000000..40172a0 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_konto_aufloesung_mm.php @@ -0,0 +1,62 @@ + array( + 'title' => 'Kontoauflösung', + 'hideTable' => true, + 'label' => 'Konto Auflösen', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.gif', + 'typeicon_classes' => [ + 'default' => 'zuladungsliste-kontoclosed', + ], + ), + 'columns' => array( + 'uid_geber' => array( + 'label' => 'Aufzulösendes Konto', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'fe_users', + //'foreign_table_where' => ' AND sys_language_uid IN (0,-1)', + 'foreign_table_where' => ' ORDER BY company', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'uid_empfaenger' => array( + 'label' => 'Punkte Empfänger', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'fe_users', + //'foreign_table_where' => ' AND sys_language_uid IN (0,-1)', + 'foreign_table_where' => ' AND fe_users.pid=41 AND kontoaufloesung=0 ORDER BY company', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'prozente' => array( + 'exclude' => 1, + 'label' => 'Prozentuelle Verteilung', + 'config' => array( + 'type' => 'input', + 'size' => 5, + 'eval' => 'double2' + ), + 'range' => array( + 'lower' => 0, + 'upper' => 100 + ), + ), + ), + 'types' => array( + '0' => array('showitem' => 'uid_geber,uid_empfaenger,prozente') + ), + 'palettes' => array() +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_kriterien_mm.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_kriterien_mm.php new file mode 100644 index 0000000..d23877a --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_kriterien_mm.php @@ -0,0 +1,59 @@ + array( + 'title' => 'Punkte Kriterien', + 'hideTable' => TRUE, + 'sortby' => 'sorting', + 'label' => 'Punkte Kriterien Relation', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/preis.svg' + ), + 'columns' => array( + 'uid_punkte' => Array( + 'label' => 'Punkte', + 'config' => Array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'selectedListStyle' => '200px', + 'foreign_table' => 'tx_zuladungsliste_domain_model_punkte', + 'foreign_table_where' => ' ORDER BY tx_zuladungsliste_domain_model_punkte.sorting ASC', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'uid_kriterien' => Array( + 'label' => 'Kriterien', + 'config' => Array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tx_zuladungsliste_domain_model_kriterien', + //'foreign_table_where' => ' AND sys_language_uid IN (0,-1)', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'punkte' => array( + 'exclude' => 1, + 'label' => 'Punkte (0 - 10.0)', + 'config' => array( + 'type' => 'input', + 'size' => 5, + 'eval' => 'double2' + ), + 'range' => array( + 'lower' => 0, + 'upper' => 10 + ), + ), + ), + 'types' => array( + '0' => array('showitem' => 'uid_punkte,uid_kriterien,punkte') + ), + 'palettes' => array() +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_verschiebung_mm.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_verschiebung_mm.php new file mode 100644 index 0000000..bc6b464 --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_punkte_verschiebung_mm.php @@ -0,0 +1,109 @@ + array( + 'title' => 'Punkte Verschieben', + 'hideTable' => true, + 'label' => 'Punkte verschieben', + // 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/svg/transfer.svg', + 'typeicon_classes' => [ + 'default' => 'zuladungsliste-kontoclosed', + ], + ), + 'columns' => array( + 'uid_geber' => array( + 'label' => 'Punkte Geber', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'fe_users', + 'foreign_table_where' => ' ORDER BY company', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'uid_empfaenger' => array( + 'label' => 'Punkte Empfänger', + 'config' => array( + 'eval' => 'required', + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'fe_users', + 'foreign_table_field' => 'company', + 'foreign_table_where' => ' AND fe_users.pid=41 AND kontoaufloesung=0 ORDER BY uid', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'verschiebung_ab' => array( + 'exclude' => 0, + 'label' => 'Datum der Punkteverschiebung Start', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'verschiebung_stichtag' => array( + 'exclude' => 0, + 'label' => 'Punkteverschiebung (gültig nur mit Stichtag)', + 'description' => 'Beinhalted alle gültigen Punkte der Geberliste deren Entscheidungstermin vor dem eingegebenen Stichtag liegt.', + 'config' => array( + 'dbType' => 'date', + 'renderType' => 'inputDateTime', + 'type' => 'input', + 'format' => 'date', + 'size' => 10, + 'eval' => 'date,null', + 'checkbox' => 1, + 'disableAgeDisplay' => 1 + ), + ), + 'prozente' => array( + 'exclude' => 1, + 'eval' => 'required', + 'label' => 'Prozentuelle Punkte', + 'description' => 'Prozentueller Anteil der zu verschiebenden Punkte.', + 'config' => array( + 'type' => 'input', + 'size' => 5, + 'eval' => 'double2' + ), + 'range' => array( + 'lower' => 0, + 'upper' => 100 + ), + ), + // Implementierung nur auf Anfrage (05.03.2024) + // aktuell diabled + 'wettbewerbe' => array( + 'exclude' => 0, + 'label' => 'Wettbewerbe', + 'description' => 'Sollten die zu verschiebenden Punkte auf spezielle Wettbewerbe limitiert werden können diese hier selektioniert werden.', + 'config' => array( + 'default' => '0', + 'type' => 'select', + 'renderType' => 'selectMultipleSideBySide', + 'foreign_table' => 'tx_zuladungsliste_domain_model_wettbewerbe', + 'foreign_table_where' => ' AND tx_zuladungsliste_domain_model_wettbewerbe.uid in (SELECT uid_wettbewerbe FROM tx_zuladungsliste_wettbewerbe_architekten_mm WHERE uid_user=###REC_FIELD_uid_geber###)', + 'size' => 3, + 'autoSizeMax' => 10, + ), + ), + ), + 'types' => array( + '0' => array('showitem' => 'uid_geber,uid_empfaenger,verschiebung_ab,verschiebung_stichtag,prozente') + ), + 'palettes' => array() +); diff --git a/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_wettbewerbe_architekten_mm.php b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_wettbewerbe_architekten_mm.php new file mode 100644 index 0000000..9dd981f --- /dev/null +++ b/packages/zuladungsliste/Configuration/TCA/tx_zuladungsliste_wettbewerbe_architekten_mm.php @@ -0,0 +1,128 @@ + array( + 'title' => 'Wettbewerbe Architekten', + 'hideTable' => true, + 'sortby' => 'sorting', + 'label' => 'Wettbewerbe Architekten', + 'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg' + ), + 'columns' => array( + 'tstamp_zuordnung' => array( + 'exclude' => 0, + 'label' => 'Datum Zuordnung', + 'config' => array( + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'date', + ), + ), + 'tstamp_aktivierung' => array( + 'exclude' => 0, + 'label' => 'Datum Freischaltung', + 'config' => array( + 'type' => 'input', + 'eval' => 'date', + 'renderType' => 'inputDateTime', + ), + ), + 'tstamp_ablehnen' => array( + 'exclude' => 0, + 'label' => 'Datum Ablehnung', + 'config' => array( + 'type' => 'input', + 'eval' => 'date', + 'renderType' => 'inputDateTime', + ), + ), + 'ist_befangen' => [ + 'exclude' => 0, + 'label' => 'Befangen', + 'config' => [ + 'type' => 'check', + ], + ], + 'bemerkungen' => [ + 'exclude' => 0, + 'label' => 'Bemerkungen zu Ablehnung/Befangenheit', + 'config' => [ + 'type' => 'text', + 'size' => 30, + 'eval' => 'trim' + ] + ], + // popup in liste + 'uid_wettbewerbe' => array( + 'label' => 'Wettbewerb', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => array( array(' --- Bitte wählen --- ',0) ), + 'foreign_table' => 'tx_zuladungsliste_domain_model_wettbewerbe', + 'foreign_table_where' => 'ORDER BY uid DESC', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + 'default' => 0, + ), + ), + 'uid_user' => array( + 'label' => 'Architekt', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => array( array(' --- Bitte wählen --- ',0) ), + 'foreign_table' => 'fe_users', + 'foreign_table_where' => 'ORDER BY company', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + ), + ), + 'ladung_durch_auslober' => array( + 'exclude' => 1, + 'label' => 'Ladung durch Auslober/in', + 'description' => 'Bei einer Ladung durch Auslober wird die aktive Sperrzeit auf 9 Monate verkürzt', + 'config' => array( + 'type' => 'check', + ), + ), + 'uid_punkte' => array( + 'label' => 'Punkte', + 'config' => array( + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemListStyle' => '200px', + 'size' => 1, + 'minitems' => 0, + 'maxitems' => 1, + 'itemsProcFunc' => 'HermannTelser\\Zuladungsliste\\Backend\\Selecting->loadPunkte' + ), + ), + 'notizen' => array( + 'exclude' => 0, + 'label' => 'Bemerkungen zur Punktevergabe', + // 'displayCond' => 'FIELD:uid_user:REQ:true', + 'config' => array( + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ), + ), + ), + 'types' => [ + '0' => [ + 'showitem' => 'uid_wettbewerbe, uid_user, ladung_durch_auslober, uid_punkte,notizen, tstamp_zuordnung,tstamp_aktivierung, --palette--; Ablehnung/Befangenheit; ablehnung', + ] + ], + 'palettes' => [ + 'ablehnung' => [ + 'showitem' => 'tstamp_ablehnen, ist_befangen, bemerkungen', + ], + ], +); diff --git a/packages/zuladungsliste/Configuration/TypoScript/constants.typoscript b/packages/zuladungsliste/Configuration/TypoScript/constants.typoscript new file mode 100644 index 0000000..a21ff9b --- /dev/null +++ b/packages/zuladungsliste/Configuration/TypoScript/constants.typoscript @@ -0,0 +1,30 @@ + +plugin.tx_zuladungsliste { + view { + # cat=plugin.tx_zuladungsliste_zuladungsliste/file; type=string; label=Path to template root (FE) + templateRootPath = EXT:zuladungsliste/Resources/Private/Templates/ + # cat=plugin.tx_zuladungsliste_zuladungsliste/file; type=string; label=Path to template partials (FE) + partialRootPath = EXT:zuladungsliste/Resources/Private/Partials/ + # cat=plugin.tx_zuladungsliste_zuladungsliste/file; type=string; label=Path to template layouts (FE) + layoutRootPath = EXT:zuladungsliste/Resources/Private/Layouts/ + } + persistence { + # cat=plugin.tx_zuladungsliste_zuladungsliste//a; type=string; label=Default storage PID + storagePid = + } +} + +module.tx_zuladungsliste { + view { + # cat=module.tx_zuladungsliste/file; type=string; label=Path to template root (BE) + templateRootPath = EXT:zuladungsliste/Resources/Private/Backend/Templates/ + # cat=module.tx_zuladungsliste/file; type=string; label=Path to template partials (BE) + partialRootPath = EXT:zuladungsliste/Resources/Private/Backend/Partials/ + # cat=module.tx_zuladungsliste/file; type=string; label=Path to template layouts (BE) + layoutRootPath = EXT:zuladungsliste/Resources/Private/Backend/Layouts/ + } + persistence { + # cat=module.tx_zuladungsliste//a; type=string; label=Default storage PID + storagePid = + } +} diff --git a/packages/zuladungsliste/Configuration/TypoScript/setup.typoscript b/packages/zuladungsliste/Configuration/TypoScript/setup.typoscript new file mode 100644 index 0000000..0eebd7e --- /dev/null +++ b/packages/zuladungsliste/Configuration/TypoScript/setup.typoscript @@ -0,0 +1,101 @@ +################ +#### PAGE #### +################ +page > +page = PAGE +page { + + typeNum = 0 + bodyTag = + + includeCSS { + fontawesome = typo3conf/ext/zuladungsliste/Resources/Public/Css/node_modules/@fortawesome/fontawesome-free/css/all.css + claro = typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dijit/themes/claro/claro.css + dgrid = typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dgrid/css/dgrid.css + zuladungsliste = typo3conf/ext/zuladungsliste/Resources/Public/Css/zuladungsliste.css + } + + includeJSLibs { + file1 = typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js + file1.type = application/x-javascript + } + + includeJS { + file3 = typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dojo/dojo.js + file3.type = application/x-javascript + } + + #noPageTitle=2 + shortcutIcon = typo3conf/ext/zuladungsliste/Resources/Public/Icons/Extension.png +} + +[loginUser('*') && page["uid"] in [34,44]] +page { + headerData { + 5 = TEXT + 5 { + field = title + noTrimWrap = || + } + 15 = CONTENT + 15.select.pidInList = this + 15.table = tt_content + 15.renderObj = COA + 15.renderObj { + 10 = TEXT + 10.field = list_type + 10.noTrimWrap = || + } + } +} +[End] +################ +#### CONFIG #### +################ +config { + admPanel=0 + doctype=html5 + disablePrefixComment = 1 + + spamProtectEmailAddresses = 2 + spamProtectEmailAddresses_atSubst = (at) + + extTarget = _blank + intTarget = _top + + xhtml_cleaning=all + prefixLocalAnchors = all + + noPageTitle = 2 + #pageTitleFirst = 1 + + linkVars = L + sys_language_uid = 0 + + # DEVELOPMENT + compressJs = 0 + compressCss = 0 + concatenateJs = 0 + concatenateCss = 0 + minifyJs = 0 + minifyCSS = 0 + + + disableAllHeaderCode = 0 + disablePrefixComment = 1 + inlineStyle2TempFile = 1 + removePageCss = 0 + removeDefaultCss = 1 + removeDefaultJS = 1 + moveJsFromHeaderToFooter = 0 + prefixLocalAnchors = all + disableBodyTag = 0 + + #pageRendererTemplateFile = typo3conf/ext/zuladungsliste/Resources/Private/Layouts/EmptyPageRenderer.html + + headerComment ( + --------------------------------------------- + contact & info -> hermann.telser(at)gmail.com + --------------------------------------------- + ) +} diff --git a/packages/zuladungsliste/Readme.md b/packages/zuladungsliste/Readme.md new file mode 100644 index 0000000..32926cc --- /dev/null +++ b/packages/zuladungsliste/Readme.md @@ -0,0 +1,29 @@ +# Zuladungsliste für die Steiermark + +Typo3 Erweiterung zur verwaltung der Zuladungsliste für die Steiermark +Verion TYPO3 CMS 11.5.19 + +### Installing + +``` +* git clone http://gitea.nuhodds.com:3000/salam/nuh_1x2.git +``` + +## Authors + +Hermann Telser + +## Version History + +* 0.1 + * Create Repository + +## License + +This project is privat + +## Acknowledgments + +Website Produktion +* [Zuladungsliste Prod](https://zuladungsliste.ztkammer.at/) +* [Zuladungsliste Dev](https://devzuladungsliste.betaid.info/) \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/.htaccess b/packages/zuladungsliste/Resources/Private/.htaccess new file mode 100644 index 0000000..96d0729 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/.htaccess @@ -0,0 +1,11 @@ +# Apache < 2.3 + + Order allow,deny + Deny from all + Satisfy All + + +# Apache >= 2.3 + + Require all denied + diff --git a/packages/zuladungsliste/Resources/Private/Backend/Layouts/Default.html b/packages/zuladungsliste/Resources/Private/Backend/Layouts/Default.html new file mode 100644 index 0000000..5506c5c --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Layouts/Default.html @@ -0,0 +1,36 @@ + + +
+
+
+
+ + + + + + +
+
+ + +
+
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Backend/Partials/FormErrors.html b/packages/zuladungsliste/Resources/Private/Backend/Partials/FormErrors.html new file mode 100644 index 0000000..bdf280a --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Partials/FormErrors.html @@ -0,0 +1,13 @@ + + + +
    + +
  • + {propertyPath}:
      +
    • {error}
    • +
    +
  • +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/FormFields.html b/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/FormFields.html new file mode 100644 index 0000000..e816efc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/FormFields.html @@ -0,0 +1,5 @@ + +
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/Properties.html b/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/Properties.html new file mode 100644 index 0000000..741e956 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Partials/Kriterien/Properties.html @@ -0,0 +1,11 @@ + + + + + + +
+ + + {kriterien.bezeichnung} +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/FormFields.html b/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/FormFields.html new file mode 100644 index 0000000..f2f0973 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/FormFields.html @@ -0,0 +1,41 @@ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/Properties.html b/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/Properties.html new file mode 100644 index 0000000..2ace066 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Partials/Wettbewerbe/Properties.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + {wettbewerbe.wettbewerb} +
+ + + {wettbewerbe.beschreibung} +
+ + + {wettbewerbe.registrierung} +
+ + + {wettbewerbe.verfahrensort} +
+ + + {wettbewerbe.bundesland} +
+ + + {wettbewerbe.abgabetermin -> f:format.date()} +
+ + + {wettbewerbe.kammerbeschluss -> f:format.date()} +
+ + + {wettbewerbe.entscheidungstermin -> f:format.date()} +
+ + + {wettbewerbe.sperrung} +
+ + + {wettbewerbe.aufgabenstellung} +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Architekten/List.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Architekten/List.html new file mode 100644 index 0000000..caec484 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Architekten/List.html @@ -0,0 +1,43 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Architekten

+ + + + + + + + + + + + + + + + + + + + + + + +
{architekten.inliste} {architekten.vereidigung -> f:format.date()} {architekten.geburtsdatum -> f:format.date()} {architekten.freuenfoerderpunkt}EditDelete
+ +New Architekten +
diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Edit.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Edit.html new file mode 100644 index 0000000..d0155a2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Edit.html @@ -0,0 +1,26 @@ + + + +This template displays a EDIT form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Edit.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Edit Kriterien

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/List.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/List.html new file mode 100644 index 0000000..21a11fc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/List.html @@ -0,0 +1,37 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Kriterien

+ + + + + + + + + + + + + + + + + +
{kriterien.bezeichnung}EditDelete
+ +New Kriterien +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/New.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/New.html new file mode 100644 index 0000000..8a66b76 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/New.html @@ -0,0 +1,26 @@ + + + +This template displays a NEW form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + New.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

New Kriterien

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Show.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Show.html new file mode 100644 index 0000000..cc9c29f --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Kriterien/Show.html @@ -0,0 +1,22 @@ + + + +This Template is responsible for displaying a single view for a domain object + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Show.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Single View for Kriterien

+ + + +Back to list
+New Kriterien +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Edit.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Edit.html new file mode 100644 index 0000000..91abdee --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Edit.html @@ -0,0 +1,26 @@ + + + +This template displays a EDIT form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Edit.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Edit Wettbewerbe

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Front.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Front.html new file mode 100644 index 0000000..8b05f93 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Front.html @@ -0,0 +1,5 @@ + + + +

Weiterleitung zum Frontend

+
diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/List.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/List.html new file mode 100644 index 0000000..e209267 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/List.html @@ -0,0 +1,55 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Wettbewerbe

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{wettbewerbe.wettbewerb} {wettbewerbe.beschreibung} {wettbewerbe.registrierung} {wettbewerbe.verfahrensort} {wettbewerbe.bundesland} {wettbewerbe.abgabetermin -> f:format.date()} {wettbewerbe.kammerbeschluss -> f:format.date()} {wettbewerbe.entscheidungstermin -> f:format.date()} {wettbewerbe.sperrung} {wettbewerbe.aufgabenstellung}EditDelete
+ +New Wettbewerbe +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/New.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/New.html new file mode 100644 index 0000000..c0cba40 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/New.html @@ -0,0 +1,26 @@ + + + +This template displays a NEW form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + New.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

New Wettbewerbe

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Show.html b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Show.html new file mode 100644 index 0000000..14a3f9e --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Backend/Templates/Wettbewerbe/Show.html @@ -0,0 +1,22 @@ + + + +This Template is responsible for displaying a single view for a domain object + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Show.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Single View for Wettbewerbe

+ + + +Back to list
+New Wettbewerbe +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang.xlf new file mode 100644 index 0000000..fe8839e --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang.xlf @@ -0,0 +1,140 @@ + + + +
+ + + Wettbewerbe + + + Wettbewerb + + + Beschreibung + + + Registrierung + + + Verfahrensort + + + Bundesland + + + Abgabetermin + + + Kammerbeschluss + + + Entscheidungstermin + + + Sperrung + + + Aufgabenstellung + + + Wettbewerb User + + + Extrasperrung + + + Begruendung + + + Sperrzeitbis + + + Extrasperrung User + + + Kriterien + + + Bezeichnung + + + Preisartid + + + Sektinstagid + + + Punkte + + + Bezeichnung + + + Preisart + + + Preisart + + + Sektionstage + + + Bezeichnung + + + Stichtag + + + Sperrzeit + + + Sperrzeitstart + + + Punktezeit + + + Punktezeitstart + + + Neueinsteiger + + + Neueinsteigerstart + + + Frauenfoerderung + + + Frauenfoerderungstart + + + Frauenfoerderungsonderstart + + + Kammernid + + + Kammern + + + Bezeichnung + + + + + diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_bezuladungsliste.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_bezuladungsliste.xlf new file mode 100644 index 0000000..2e8399e --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_bezuladungsliste.xlf @@ -0,0 +1,14 @@ + + + +
+ + + zuladungsliste + + + + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_bmzuladungsliste.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_bmzuladungsliste.xlf new file mode 100644 index 0000000..224629a --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_bmzuladungsliste.xlf @@ -0,0 +1,18 @@ + + + +
+ + + Zuladungsliste + + + Administration der Zuladungsliste + + + Diese Modul dient zur Administration der Wettbewerbszuladungsliste für der Kammer der ZiviltechnikerInnen für Steiermark und Kärnten + in Österrreich + + + + diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_fe_users.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_fe_users.xlf new file mode 100644 index 0000000..e428903 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_fe_users.xlf @@ -0,0 +1,20 @@ + + + +
+ + + inliste + + + vereidigung + + + geburtsdatum + + + frauenfoerderpunkt + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf new file mode 100644 index 0000000..6573aa6 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf @@ -0,0 +1,17 @@ + + + +
+ + + begruendung + + + sperrzeitbis + + + extrasperrungUser + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf new file mode 100644 index 0000000..c2704bc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf @@ -0,0 +1,11 @@ + + + +
+ + + bezeichnung + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf new file mode 100644 index 0000000..90fc619 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf @@ -0,0 +1,17 @@ + + + +
+ + + bezeichnung + + + preisartid + + + sektinstagid + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf new file mode 100644 index 0000000..8dcb2aa --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf @@ -0,0 +1,11 @@ + + + +
+ + + preisart + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf new file mode 100644 index 0000000..c2704bc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf @@ -0,0 +1,11 @@ + + + +
+ + + bezeichnung + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf new file mode 100644 index 0000000..486cc95 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf @@ -0,0 +1,44 @@ + + + +
+ + + bezeichnung + + + stichtag + + + sperrzeit + + + sperrzeitstart + + + punktezeit + + + punktezeitstart + + + neueinsteiger + + + neueinsteigerstart + + + frauenfoerderung + + + frauenfoerderungstart + + + frauenfoerderungsonderstart + + + kammernid + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf new file mode 100644 index 0000000..dc5a129 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf @@ -0,0 +1,41 @@ + + + +
+ + + wettbewerb + + + beschreibung + + + registrierung + + + verfahrensort + + + bundesland + + + abgabetermin + + + kammerbeschluss + + + entscheidungstermin + + + sperrung + + + aufgabenstellung + + + wettbewerbUser + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Language/locallang_db.xlf b/packages/zuladungsliste/Resources/Private/Language/locallang_db.xlf new file mode 100644 index 0000000..0fae40e --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Language/locallang_db.xlf @@ -0,0 +1,143 @@ + + + +
+ + + Wettbewerbe + + + Wettbewerb + + + Beschreibung + + + Registrierung + + + Verfahrensort + + + Bundesland + + + Abgabetermin + + + Kammerbeschluss + + + Entscheidungstermin + + + Sperrung + + + Aufgabenstellung + + + Wettbewerb User + + + Extrasperrung + + + Begruendung + + + Sperrzeitbis + + + Extrasperrung User + + + Kriterien + + + Bezeichnung + + + Preisartid + + + Sektinstagid + + + Punkte + + + Bezeichnung + + + Preisart + + + Preisart + + + Sektionstage + + + Bezeichnung + + + Stichtag + + + Sperrzeit + + + Sperrzeitstart + + + Punktezeit + + + Punktezeitstart + + + Neueinsteiger + + + Neueinsteigerstart + + + Frauenfoerderung + + + Frauenfoerderungstart + + + Frauenfoerderungsonderstart + + + Kammernid + + + Kammern + + + Bezeichnung + + + + Zuladungsliste ZT Kammer Architekten + + + + diff --git a/packages/zuladungsliste/Resources/Private/Layouts/Default.html b/packages/zuladungsliste/Resources/Private/Layouts/Default.html new file mode 100644 index 0000000..5f6208e --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Layouts/Default.html @@ -0,0 +1,4 @@ + +
+ +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Layouts/EmptyPageRenderer.html b/packages/zuladungsliste/Resources/Private/Layouts/EmptyPageRenderer.html new file mode 100644 index 0000000..6ec46cc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Layouts/EmptyPageRenderer.html @@ -0,0 +1,27 @@ +###XMLPROLOG_DOCTYPE### +###HTMLTAG### +###HEADTAG### + +###METACHARSET### +###INLINECOMMENT### + +###BASEURL### +###SHORTCUT### +###TITLE### +###META### + +###CSS_LIBS### +###CSS_INCLUDE### +###CSS_INLINE### + +###JS_LIBS### +###JS_INCLUDE### +###JS_INLINE### + +###HEADERDATA### +###POSTJSMARKER### + + +###BODY### + + diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Address.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Address.html new file mode 100644 index 0000000..d243a1d --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Address.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Captcha.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Captcha.html new file mode 100644 index 0000000..e03f7b6 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Captcha.html @@ -0,0 +1,33 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} + + + + + + + + + + + +
+ +
+
    +
  • + Please install extension sr_freecap +
  • +
  • + And enable it with + plugin.tx_femanager.settings.new.validation.captcha.captcha = 1 or + plugin.tx_femanager.settings.edit.validation.captcha.captcha = 1 + in TypoScript +
  • +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/CaptchaField.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/CaptchaField.html new file mode 100644 index 0000000..da83dcb --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/CaptchaField.html @@ -0,0 +1,21 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +{namespace freeCap=SJBR\SrFreecap\ViewHelpers} +
+
+ +
+ + + +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/City.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/City.html new file mode 100644 index 0000000..57e2f4b --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/City.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Company.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Company.html new file mode 100644 index 0000000..c1aabda --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Company.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Country.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Country.html new file mode 100644 index 0000000..b4f3122 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Country.html @@ -0,0 +1,62 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ + + + + + + + +
+
+
+ + + + + + + + + + + {countryName} + + + {countryName} + + + + + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/DateOfBirth.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/DateOfBirth.html new file mode 100644 index 0000000..d7037ce --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/DateOfBirth.html @@ -0,0 +1,18 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Email.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Email.html new file mode 100644 index 0000000..223e7d3 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Email.html @@ -0,0 +1,16 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Fax.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Fax.html new file mode 100644 index 0000000..26ffde6 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Fax.html @@ -0,0 +1,16 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/FirstName.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/FirstName.html new file mode 100644 index 0000000..0005d53 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/FirstName.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Frauenfoerderpunkt.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Frauenfoerderpunkt.html new file mode 100644 index 0000000..3fe07bc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Frauenfoerderpunkt.html @@ -0,0 +1,17 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+
+
+ +
+
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Image.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Image.html new file mode 100644 index 0000000..ede5f6d --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Image.html @@ -0,0 +1,29 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ + + + + +
+ + + Delete image +
+
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Kammermitgliedsnummer.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Kammermitgliedsnummer.html new file mode 100644 index 0000000..1ca0ad2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Kammermitgliedsnummer.html @@ -0,0 +1,14 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/LastName.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/LastName.html new file mode 100644 index 0000000..f2c63f0 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/LastName.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/MiddleName.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/MiddleName.html new file mode 100644 index 0000000..eec5386 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/MiddleName.html @@ -0,0 +1,16 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Name.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Name.html new file mode 100644 index 0000000..6da532b --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Name.html @@ -0,0 +1,16 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Password.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Password.html new file mode 100644 index 0000000..e29b144 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Password.html @@ -0,0 +1,36 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+ +
+ +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/State.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/State.html new file mode 100644 index 0000000..f8f3c90 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/State.html @@ -0,0 +1,19 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} + +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitCreate.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitCreate.html new file mode 100644 index 0000000..f7a268b --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitCreate.html @@ -0,0 +1,8 @@ +
+
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitUpdate.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitUpdate.html new file mode 100644 index 0000000..424f2b3 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/SubmitUpdate.html @@ -0,0 +1,8 @@ +
+
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Telephone.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Telephone.html new file mode 100644 index 0000000..46e3c33 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Telephone.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Terms.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Terms.html new file mode 100644 index 0000000..8caa771 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Terms.html @@ -0,0 +1,24 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Title.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Title.html new file mode 100644 index 0000000..112d8a3 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Title.html @@ -0,0 +1,19 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+Ansprechpartner: +
+
+
+
+ +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Usergroup.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Usergroup.html new file mode 100644 index 0000000..3fe67d2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Usergroup.html @@ -0,0 +1,61 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} + + + + + +
+ +
+ +
+
+
+ + + + + +
+ +
+ + + ]]>
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Username.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Username.html new file mode 100644 index 0000000..9e35d77 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Username.html @@ -0,0 +1,18 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Vereidigung.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Vereidigung.html new file mode 100644 index 0000000..4baa59a --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Vereidigung.html @@ -0,0 +1,13 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Www.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Www.html new file mode 100644 index 0000000..b5ed9e0 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Www.html @@ -0,0 +1,16 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+ +
+ +
+
diff --git a/packages/zuladungsliste/Resources/Private/Partials/Fields/Zip.html b/packages/zuladungsliste/Resources/Private/Partials/Fields/Zip.html new file mode 100644 index 0000000..86e4fc0 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Fields/Zip.html @@ -0,0 +1,15 @@ +{namespace femanager=In2code\Femanager\ViewHelpers} +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/FormErrors.html b/packages/zuladungsliste/Resources/Private/Partials/FormErrors.html new file mode 100644 index 0000000..bdf280a --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/FormErrors.html @@ -0,0 +1,13 @@ + + + +
    + +
  • + {propertyPath}:
      +
    • {error}
    • +
    +
  • +
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Kriterien/FormFields.html b/packages/zuladungsliste/Resources/Private/Partials/Kriterien/FormFields.html new file mode 100644 index 0000000..e816efc --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Kriterien/FormFields.html @@ -0,0 +1,5 @@ + +
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Kriterien/Properties.html b/packages/zuladungsliste/Resources/Private/Partials/Kriterien/Properties.html new file mode 100644 index 0000000..fdd9b19 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Kriterien/Properties.html @@ -0,0 +1,11 @@ + + + + + + +
+ + + {kriterien.bezeichnung} +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/FormFields.html b/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/FormFields.html new file mode 100644 index 0000000..f2f0973 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/FormFields.html @@ -0,0 +1,41 @@ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/Properties.html b/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/Properties.html new file mode 100644 index 0000000..cfb7313 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Partials/Wettbewerbe/Properties.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + {wettbewerbe.wettbewerb} +
+ + + {wettbewerbe.beschreibung} +
+ + + {wettbewerbe.registrierung} +
+ + + {wettbewerbe.verfahrensort} +
+ + + {wettbewerbe.bundesland} +
+ + + {wettbewerbe.abgabetermin -> f:format.date()} +
+ + + {wettbewerbe.kammerbeschluss -> f:format.date()} +
+ + + {wettbewerbe.entscheidungstermin -> f:format.date()} +
+ + + {wettbewerbe.sperrung} +
+ + + {wettbewerbe.aufgabenstellung} +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Architekten/List.html b/packages/zuladungsliste/Resources/Private/Templates/Architekten/List.html new file mode 100644 index 0000000..7d7de08 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Architekten/List.html @@ -0,0 +1,43 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Architekten

+ + + + + + + + + + + + + + + + + + + + + + + +
{architekten.inliste} {architekten.vereidigung -> f:format.date()} {architekten.geburtsdatum -> f:format.date()} {architekten.freuenfoerderpunkt}EditDelete
+ +New Architekten +
diff --git a/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Login.html b/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Login.html new file mode 100644 index 0000000..b230da9 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Login.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + + + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + {extraHidden} +
+
+
+ + diff --git a/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Logout.html b/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Logout.html new file mode 100644 index 0000000..614c5e0 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Felogin/Login/Logout.html @@ -0,0 +1,46 @@ + + + + + + +

+ +

+

+ +

+ + +
+ + + +
+ + {user.username} +
+
+ +
+ +
+ + +
+
+
+ + diff --git a/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Edit.html b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Edit.html new file mode 100644 index 0000000..36d8b66 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Edit.html @@ -0,0 +1,26 @@ + + + +This template displays a EDIT form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Edit.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Edit Kriterien

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Kriterien/List.html b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/List.html new file mode 100644 index 0000000..5bd0ed3 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/List.html @@ -0,0 +1,37 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Kriterien

+ + + + + + + + + + + + + + + + + +
{kriterien.bezeichnung}EditDelete
+ +New Kriterien +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Kriterien/New.html b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/New.html new file mode 100644 index 0000000..40d8feb --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/New.html @@ -0,0 +1,26 @@ + + + +This template displays a NEW form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + New.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

New Kriterien

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Show.html b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Show.html new file mode 100644 index 0000000..73a1350 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Kriterien/Show.html @@ -0,0 +1,22 @@ + + + +This Template is responsible for displaying a single view for a domain object + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Show.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Single View for Kriterien

+ + + +Back to list
+New Kriterien +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Edit.html b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Edit.html new file mode 100644 index 0000000..6533dc9 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Edit.html @@ -0,0 +1,26 @@ + + + +This template displays a EDIT form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Edit.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Edit Wettbewerbe

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/List.html b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/List.html new file mode 100644 index 0000000..91287f0 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/List.html @@ -0,0 +1,55 @@ + + + +This Template is responsible for creating a table of domain objects. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + List.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Listing for Wettbewerbe

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{wettbewerbe.wettbewerb} {wettbewerbe.beschreibung} {wettbewerbe.registrierung} {wettbewerbe.verfahrensort} {wettbewerbe.bundesland} {wettbewerbe.abgabetermin -> f:format.date()} {wettbewerbe.kammerbeschluss -> f:format.date()} {wettbewerbe.entscheidungstermin -> f:format.date()} {wettbewerbe.sperrung} {wettbewerbe.aufgabenstellung}EditDelete
+ +New Wettbewerbe +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/New.html b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/New.html new file mode 100644 index 0000000..347cc41 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/New.html @@ -0,0 +1,26 @@ + + + +This template displays a NEW form for the current domain object. + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + New.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

New Wettbewerbe

+ + + + + + + + + +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Show.html b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Show.html new file mode 100644 index 0000000..5a05ac2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Private/Templates/Wettbewerbe/Show.html @@ -0,0 +1,22 @@ + + + +This Template is responsible for displaying a single view for a domain object + +If you modify this template, do not forget to change the overwrite settings +in /Configuration/ExtensionBuilder/settings.yaml: + Resources: + Private: + Templates: + Show.html: keep + +Otherwise your changes will be overwritten the next time you save the extension in the extension builder + + +

Single View for Wettbewerbe

+ + + +Back to list
+New Wettbewerbe +
\ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Public/Css/Backend/backend.css b/packages/zuladungsliste/Resources/Public/Css/Backend/backend.css new file mode 100644 index 0000000..d6ec9b2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Css/Backend/backend.css @@ -0,0 +1,59 @@ +.icon-zuladungsliste-kammern-1 .fa { + color: #006400; +} +.icon-zuladungsliste-kammern-2 .fa { + color: #4169e1; +} +.icon-zuladungsliste-kammern-3 .fa { + color: #a52a2a; +} +.icon-zuladungsliste-kammern-4 .fa { + color: #daa520; +} +.icon-zuladungsliste-kriterium-1 .fa { + color: #006400; +} +.icon-zuladungsliste-kriterium-2 .fa { + color: #4169e1; +} +.icon-zuladungsliste-kriterium-3 .fa { + color: #a52a2a; +} +.icon-zuladungsliste-kriterium-4 .fa { + color: #daa520; +} +.zuladungsliste-kammern-1 { + color: #006400; +} +.zuladungsliste-kammern-2 { + color: #4169e1; +} +.zuladungsliste-kammern-3 { + color: #a52a2a; +} +.zuladungsliste-kammern-4 { + color: #daa520; +} +.be_punktestatus { + color: green; +} +.be_punktestatus span { + width: 250px; + display: inline-block; + color: #666; +} +.typo3-login { + background-image: none !important; + background-color: #369; +} +.btn-login { + background-color: #a00 !important; +} +.panel-login .panel-body { + border-color: #369; +} +.small { + font-size: 80%; + font-weight: normal; + margin-left: 25px; +} diff --git a/packages/zuladungsliste/Resources/Public/Css/img/filter.png b/packages/zuladungsliste/Resources/Public/Css/img/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5c3fc3e581e3dfdda24caa2d2e3e6232cca778 GIT binary patch literal 459 zcmV;+0W|)JP)O+BS|T? zmcD^lcm)v~qfcO`;H%h)k6>XVNGz-bN#g@ZEG<%K6T*gNZ<+NwF$tRxQuxDRcF+9( zx%|7%3ve7~GtYC&Y19(H$>39!n;ZJC5V5*tR{VlnQ*`Z}xh>j{Dx7)25RZ6^Ldxm&K&LZSxL~jMtsIJKY(j{&+6qN~*g0V$y<^NNFdJZDn-7e>@Ut%}kH$_pfw+4Cek0m^ga5GzC?9_JrK zhUGUJ4QYOy#4?vT^>0PJdeRN?iOD|ut0AgRr(;1}MRgU|8R3xh##3BF{!ORTXNXU5 z{v!6`#F2}Zi42LM84`jS{?+q{{GsDz#il7w6vn4Z@(V9eLaaqJ{{$ESa$5tJJ>o$~ P00000NkvXXu0mjfpmXGO literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Css/visual/backend.css b/packages/zuladungsliste/Resources/Public/Css/visual/backend.css new file mode 100644 index 0000000..554f7c1 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Css/visual/backend.css @@ -0,0 +1,54 @@ +.icon-zuladungsliste-kammern-1 .fa { + color: #006400; +} +.icon-zuladungsliste-kammern-2 .fa { + color: #4169e1; +} +.icon-zuladungsliste-kammern-3 .fa { + color: #a52a2a; +} +.icon-zuladungsliste-kammern-4 .fa { + color: #daa520; +} +.icon-zuladungsliste-kriterium-1 .fa { + color: #006400; +} +.icon-zuladungsliste-kriterium-2 .fa { + color: #4169e1; +} +.icon-zuladungsliste-kriterium-3 .fa { + color: #a52a2a; +} +.icon-zuladungsliste-kriterium-4 .fa { + color: #daa520; +} +.zuladungsliste-kammern-1 { + color: #006400; +} +.zuladungsliste-kammern-2 { + color: #4169e1; +} +.zuladungsliste-kammern-3 { + color: #a52a2a; +} +.zuladungsliste-kammern-4 { + color: #daa520; +} +.be_punktestatus { + color: green; +} +.be_punktestatus span { + width: 250px; + display: inline-block; + color: #666; +} +.typo3-login { + background-image: none !important; + background-color: #369; +} +.btn-login { + background-color: #a00 !important; +} +.panel-login .panel-body { + border-color: #369; +} diff --git a/packages/zuladungsliste/Resources/Public/Css/zuladungsliste.css b/packages/zuladungsliste/Resources/Public/Css/zuladungsliste.css new file mode 100644 index 0000000..7853243 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Css/zuladungsliste.css @@ -0,0 +1,1401 @@ +@font-face { + font-family: 'Raleway'; + src: url('../Fonts/Raleway/raleway-v28-latin-regular.woff') format('woff'), + url('../Fonts/Raleway/raleway-v28-latin-regular.woff2') format('woff2'); +} + +h1 { + font-family: 'Raleway'; +} + +.element-subheader { + font-size: 1.4rem; +} + +html, +body { + width: 100%; + height: 100%; + margin: 0; +} + +body { + padding: 0; + background: #fff; + color: #424242; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 1rem; +} + +.floatright { + float: right; +} + +/*************************************************** + tx-srfeuserregister-pi1 +***************************************************/ + +.mytooltip { + position: relative; + display: inline-block; + cursor: pointer; + color: #088930; +} + +.mytooltip .mytooltiptext { + visibility: hidden; + width: 220px; + background-color: #555; + color: #fff; + text-align: left; + border-radius: 6px; + padding: 15px; + position: absolute; + z-index: 1; + bottom: 125%; + left: 50%; + margin-left: -60px; + opacity: 0; + transition: opacity 1s; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + line-height: 1.55; +} + +.mytooltip .mytooltiptext::after { + content: ''; + position: absolute; + top: 100%; + left: 27%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #555 transparent transparent transparent; +} + +.mytooltip:hover .mytooltiptext { + visibility: visible; + opacity: 1; +} + +.tx-srfreecap-cant-read { + height: 30px; + display: block; +} + +#protokoll2_label, +#protokoll_label { + cursor: pointer !important; +} + +#maincontainer { + width: 100%; + height: 100%; + margin: 0; + padding: 2rem; +} + +.page_title { + text-align: center; + font-size: 110%; + font-weight: bold; +} + +:focus { + outline: 0; +} + +*:focus { + outline: 0; +} + +.position_top2 { + position: relative; + top: 2px; +} + +.dijitMenuItemLabel .fa { + position: relative; + right: 1px; + top: -1px; +} + +::-webkit-scrollbar { + display: none; +} + +.primary { + color: #0099ff; +} + +.secondary { + color: #088930; +} + +.dgrid-row-expanded .gesperrt{ + color: #fff; +} + +.gesperrt, +.tertiary { + color: #cf202c; +} + +.fourthly { + color: #8c9089; +} + +.fiftly { + color: #b09c57; +} + +a:link, +a:visited { + text-decoration: none; + color: #088930; +} + +a:hover, +a:active { + color: #cf202c; +} + +.position_year { + line-height: 20px; + font-weight: bold; +} + +.line-height-50 { + line-height: 50px; + padding-left: 2px; +} + +/* +find . -name '*.js' -exec sed -i -e 's/gray/fiftly/g' {}; +find . -name '*.js' -exec sed -i -e 's/gray/fiftly/g' {} \; +*/ +.border-l-red { + border-left: 2px solid #cf202c; +} + +.enabled { + cursor: pointer; + background-color: #aad7b8 !important; +} + +.no-border-l { + border-left: 0; +} + +.pointer { + cursor: pointer; +} + +.no-padding { + padding: 0; +} + +.fp70 { + font-size: 70%; +} + +.margintop5 { + margin-top: 5px; +} + +.mr5 { + margin-right: 5px; +} + +.company_line2 { + margin-left: 20px; + color: inherit; + font-style: italic; +} + +.width125 { + width: 125px; + text-align: right; + display: inline-block; +} + +.right { + text-align: right; +} + +.center { + text-align: center; +} + +.bold { + font-weight: bold; +} + +/************************************************* + MENU +*************************************************/ +#topmenu { + background-image: url('/typo3conf/ext/zuladungsliste/Resources/Public/Images/logo-neu.png'); + background-repeat: no-repeat; + background-position: 5px center; + background-size: auto 50px; + background-color: #efefef !important; + text-align: right; + line-height: 44px; +} + +#infobox, +#infobox2 { + margin: 1em; + font-family: 'Raleway'; + font-size: 1.8rem; + color: #088930; +} + +.claro .dijitTab { + border: 1px solid #088930; + text-align: center; +} + +.claro .dijitMenu { + border: 1px solid #088930; +} + +.claro .dijitMenuBar .dijitMenuItemHover, +.claro .dijitMenuBar .dijitMenuItemSelected { + border: solid 1px #088930; +} + +.claro .dijitMenu .dijitMenuItemHover td, +.claro .dijitMenu .dijitMenuItemSelected td, +.claro .dijitMenuItemHover, +.claro .dijitComboBoxMenu .dijitMenuItemHover, +.claro .dijitMenuItemSelected { + border-color: #088930; + background-color: #aad7b8; +} + +/************************************************* + TAB +*************************************************/ +.claro .dijitTabHover { + border-color: #088930; + background-color: #aad7b8; +} + +.claro .dijitTabActive { + border-color: #088930; + background-color: #aad7b8; +} + +.claro .dijitTabChecked { + border-color: #b5bcc7; + background-color: #e8f4ec; +} + +.claro .tabStripButtonHover { + background-color: #c2f0c2; +} + +.claro .tabStripButtonActive { + background-color: #aad7b8; +} + +.claro .dijitTabContainerLeft .tabLabel { + text-align: left; + padding-left: 5px; +} + +.mr7 { + margin-right: 7px; +} + +.mr10 { + margin-right: 10px; +} + +.ml10 { + margin-left: 10px; +} + +.pl100 { + padding-left: 100px; +} + +.pointer { + cursor: pointer; +} + +.claro .dijitTab .tabLabel { + display: inline-block; + cursor: pointer; + line-height: 32px; + min-height: 15px; + min-width: 180px; + color: #424242; +} + +.tab-header { + background-color: #efefef !important; + text-align: center; + overflow: hidden; + height: 34px; + line-height: 35px; + font-size: 1.5rem; +} + +.text-header { + font-family: 'Raleway'; + font-size: 2.5rem; + color: #088930; + background-image: url('../Images/panther.png'); + background-position: 99.7% center; + background-repeat: no-repeat; + background-size: 35px; +} + +.text-subheader { + font-family: 'Raleway'; + font-size: 1.8rem; + color: #088930; +} + +.filter-header { + background: #efefef !important; + height: 34px; + line-height: 34px; + text-align: center; +} + +.textbox { + width: 142px; +} + +.filter-box .dijitPlaceHolder { + cursor: text; + text-align: left; + margin-top: 1px; + text-indent: 2px; + width: 93%; + background-image: url('img/filter.png'); + background-repeat: no-repeat; + background-position: right center; +} + +.search-box .dijitPlaceHolder { + cursor: text; + text-align: left; + margin-top: 1px; + text-indent: 2px; + width: 93%; + background-image: url('img/lupe.png'); + background-repeat: no-repeat; + background-position: right center; +} + +.cell-icon { + width: 50px; + text-align: center; + padding: auto 0; +} + +.ce7-100 { + width: 100px; + text-align: center; + padding: auto 0; +} + +.cell-50 { + text-align: center; + width: 50px; +} + +.cell-100 { + width: 100px; +} + +.cell-110 { + text-align: center; + width: 110px; +} + +.cell-120 { + width: 120px; +} + +.cell-140 { + width: 140px; +} + +.cell-200 { + width: 200px; +} + +.cell-420 { + width: 420px; +} + +.childelement_even { + background-color: #f8f8f8 !important; + cursor: default; +} + +.childelement_even:hover { + background-color: #d3d3d3 !important; + cursor: default; +} + +.childelement_odd { + background-color: #f0f0f0 !important; + cursor: default; +} + +.childelement_odd:hover { + background-color: #d3d3d3 !important; + cursor: default; +} + +.childelement_act_even { + background-color: #e6ffe6 !important; + cursor: default; +} + +.childelement_act_even:hover { + background-color: #c2f0c2 !important; + cursor: default; +} + +.childelement_act_odd { + background-color: #f7fff7 !important; + cursor: default; +} + +.childelement_act_odd:hover { + background-color: #c2f0c2 !important; + cursor: default; +} + +.childelement_frauen_even { + background-color: #f2e6ff !important; + cursor: default; +} + +.childelement_frauen_even:hover { + background-color: #d7b3ff !important; + cursor: default; +} + +.childelement_frauen_odd { + background-color: #fcf3ff !important; + cursor: default; +} + +.childelement_frauen_odd:hover { + background-color: #d7b3ff !important; + cursor: default; +} + +.childelement_neu_even { + background-color: #fffae6 !important; + cursor: default; +} + +.childelement_neu_even:hover { + background-color: #ffe066 !important; + cursor: default; +} + +.childelement_neu_odd { + background-color: #fff5cc !important; + cursor: default; +} + +.childelement_neu_odd:hover { + background-color: #ffe066 !important; + cursor: default; +} + +.childelement_sperre_even { + background-color: #ffe6e6 !important; + cursor: default; +} + +.childelement_sperre_even:hover { + background-color: #fcc !important; + cursor: default; +} + +.childelement_sperre_odd { + background-color: #f5d6d6 !important; + cursor: default; +} + +.childelement_sperre_odd:hover { + background-color: #fcc !important; + cursor: default; +} + +.vfid { + display: inline-block; + width: 50px; + font-weight: bold; + text-align: left; +} + +.vfid20 { + display: inline-block; + width: 25px; + font-weight: bold; + text-align: left; +} + +.geladen { + display: inline-block; + width: 70px; + font-weight: bold; + color: #538cc6; +} + +/* from zl.css */ +.dijitTooltipContainer { + width: 350px; + border-radius: 5px; + padding: 10px; + border: 1px solid #000 !important; + font-size: normal; + line-height: 1.5rem; +} + +#zl_maincontainer_bc { + height: 100%; + width: 100%; +} + +#cp_print { + display: none; + overflow: hidden; + height: 26cm; +} + +#zl_menu { + line-height: 36px; +} + +#zl_menu .dijitMenuItem { + padding-top: 10px !important; +} + +#zl_menu_liste { + text-align: center; +} + +#dijit_MenuBarItem_0 { + background: transparent !important; +} + +#copyright_information { + font-size: 14px; + background: #fff; +} + +#copyright_information .dijitDialogPaneContent { + padding: 23px; + line-height: 18px; +} + +.color_white { + color: #fff; +} + +#menu_einzelansicht, +#zl_menu { + background-image: url('/typo3conf/ext/zuladungsliste/Resources/Public/Images/ztkammer-logo-adler.png'); + background-repeat: no-repeat; + background-position: 3px center; + background-size: auto 50px; + background-color: #f9f9f9 !important; + text-align: right; + line-height: 52px; + height: 54px; +} + +.zlicon { + background-repeat: no-repeat; + background-position: left center; + height: 18px; + text-align: center; + width: 22px; +} + +.zliconAlle { + background-image: url('../Icons/zuladungalle.png'); +} + +.zliconTwo { + background-image: url('../Icons/zuladungzwei.png'); +} + +.zliconThree { + background-image: url('../Icons/zuladungdrei.png'); +} + +.zliconFour { + background-image: url('../Icons/zuladungvier.png'); +} + +.zliconFive { + background-image: url('../Icons/zuladungfuenf.png'); +} + +.zliconGesperrt { + background-image: url('../Icons/zuladunggesperrt.png'); +} + +.zliconFree { + background-image: url('../Icons/zuladungfree.png'); +} + +.downloadPDF { + background-image: url('../Icons/zuladungpdf.png'); +} + +#searchbox_zutl, +#searchbox_preis, +#searchbox_ein, +#searchbox_frei, +#searchbox_zuw, +#searchbox_zu { + border: 1px solid #ccc; + margin: 0 3px; + text-align: center; +} + +#widget_searchbox_zutl, +#widget_searchbox_preis, +#widget_searchbox_ein, +#widget_searchbox_zuw, +#widget_searchbox_frei, +#widget_searchbox_zu { + width: 120px; +} + +#widget_searchbox_zutl .dijitPlaceHolder, +#widget_searchbox_preis .dijitPlaceHolder, +#widget_searchbox_ein .dijitPlaceHolder, +#widget_searchbox_zuw .dijitPlaceHolder, +#widget_searchbox_frei .dijitPlaceHolder, +#widget_searchbox_zu .dijitPlaceHolder { + background-image: url('../Icons/lupe.png'); + background-position: right center; + background-repeat: no-repeat; + display: block; + text-align: left; + padding: 2px 2px 2px 5px; + width: 110px; +} + +#print_header { + background-image: url('/typo3conf/ext/zuladungsliste/Resources/Public/Images/ztkammer-logo-adler.png'); + background-repeat: no-repeat; + background-position: 3px center; + background-size: auto 50px; + text-align: right; + line-height: 52px; + height: 54px; +} + +.printcontainer { + border: 1px solid #aaa; +} + +table.print_zladungen { + width: 100%; +} + +table.print_zladungen td { + border-collapse: separate; + padding: 5px; +} + +table.print_zladungen td.gewaehlt { + background: #e9f9ee; + text-align: right; +} + +table.print_zladungen td.ersatz { + background: #e9f2f9; + text-align: right; +} + +table.print_zladungen td.company { + width: 60%; + text-align: left; +} + +#cp_naechsten_menu { + padding: 0; + width: 220px; + cursor: pointer; +} + +#cp_naechsten_menu .field-label { + padding: 10px; +} + +#cp_naechsten { + padding: 0; + cursor: pointer; + height: 290px; +} + +#cp_naechsten_top { + padding: 0; + cursor: pointer; + height: 80px; + padding: 20px; + background: #eee; +} + +.cp_naechsten_ersatz_header { + height: 28px; + background-color: #efefef !important; + line-height: 28px; + text-align: center; + font-weight: bold; + font-size: 16px; + color: #424242; + border: 0; +} + +#cp_naechsten_ersatz { + padding: 0; + cursor: pointer; +} + +#select_wettbewerb { + width: 500px; + height: 22px; + line-height: 23px; +} + +#cp_zuteilungen_bestehende { + border: 0; + padding: 0; + width: 420px; +} + +#positionierung_menu { + border-left: 0; + width: 200px; + text-align: left; +} + +#positionierung_top { + text-align: center; + line-height: 30px; + background-color: #efefef; +} + +#position_datum { + display: inline-block; + font-size: 18px; + margin: auto 20px; + font-weight: bold; +} + +#position_punkte, +#position_rang, +#position_sperrung { + display: inline-block; + margin: auto 20px; + font-size: 18px; +} + +#position_sperrung { + color: #cf122c !important; +} + +#positionierung_data { + border: 0; + padding: 0; +} + +#positionierung_menu .field-title { + cursor: pointer; + line-height: 26px; +} + +#positionierung .ui-icon { + color: #369; +} + +#positionierung_center { + background: #efefef; + border: 0; + padding: 0; +} + +#positionierung_center .vfid { + display: none; +} + +#menu_einreichung, +#menu_freischalten { + text-align: center; +} + +#bc_einzelansicht { + height: 100%; + width: 100%; +} + +/* tab list left */ +#tab_container_tablist, +#tab_container_achitekten_tablist { + padding-top: 35px; +} + +#tab_container_tablist .dijitTab, +#tab_container_achitekten_tablist .dijitTab { + margin-top: 5px; +} + +#bc_punkte { + width: 49%; +} + +#bc_search { + height: 32px; + border: 1px solid #d0d0d0; + overflow: hidden; +} + +#logout { + margin-right: 20px; +} + +#preise, +#wettbewerbe { + padding: 0; + cursor: pointer; +} + +#punkte_erklarung { + padding: 10px; + color: #424242; + line-height: 18px; +} + +#widget_search_wettbewerbe { + border: 0; + box-shadow: unset !important; +} + +#widget_search_wettbewerbe .dijitPlaceHolder { + background-position: right center; + background-repeat: no-repeat; + line-height: 24px; + height: 24px; + margin: auto 5px; + text-align: left; + border: 0; + overflow: hidden; +} + +#search_wettbewerbe { + text-indent: 5px; + border: 0; + line-height: 32px; + height: 32px; + overflow: hidden; +} + +#search_wettbewerbe .dijitBorderContainer-child, +#search_wettbewerbe .dijitSplitContainer-child { + border: 0; + overflow: hidden; +} + +#reset_search { + margin: 0; + padding: 0; + width: 36px; + line-height: 32px; + height: 32px; + border: 0; + text-align: center; + cursor: pointer; + overflow: hidden; +} + +#menu_wettbewerbe { + text-align: center; +} + +#wettbewerbe_selected { + text-align: center; + line-height: 26px; + height: 26px; + font-size: 20px; + background-color: #efefef; + background-image: url(images/standardGradient.png); + background-repeat: repeat-x; + background-image: -moz-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: -webkit-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: -o-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + _background-image: none; +} + +#einreichen, +#kontoedit { + padding: 10px 50px; +} + +table, +td, +th { + border-collapse: separate; +} + +table { + border-spacing: 6px; +} + +table.zuladungsliste_table { + border-spacing: 5px; + margin: 20px 0; +} + +table.zuladungsliste_table td { + padding: 10px; +} + +.dojoxUploaderFileListTable thead { + display: none; +} + +/* #address, +#city, +#company, +#date_of_birth, +#first_name, +#formbundesland, +#formverfahrensort, +#formwettbewerb, +#last_name, +#static_info_country, +#telephone, +#title, +#zip { + line-height: 24px; + height: 24px; +} + +#formabgabetermin, +#formregistrierung { + line-height: 24px; + height: 24px; + margin-top: 2px; +} + +#formbeschreibung { + line-height: 24px; +} + */ +#kontoeditheader { + height: 80px; + border: 0; + text-indent: 100px; + font-size: 1.5rem; + padding-top: 60px; +} + +#cp_kontoedit { + width: 400px; + border: 0; +} + +.editable { + cursor: pointer; +} + +.dojoxUploaderFileListProgress { + font-size: 24px; + color: orange; + font-weight: bold; + margin: 5px; +} + +#infobox { + height: 50px; + width: 500px; + text-align: center; +} + +a.icon { + color: #369; + cursor: pointer; +} + +a.icon:hover { + color: red; + cursor: pointer; +} + +.button-submit { + border: 0 none; + border-radius: 5px; + cursor: pointer; + height: 22px; + line-height: 16px; + background: #7db500 linear-gradient(to bottom, #fbfbfb, #e1e1e1) repeat scroll + 0 0; + border: 1px solid #d4d4d4; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.15); + color: #424242; + display: inline-block; + font-weight: 300; + height: 32px; + line-height: 30px; + margin: 0; + padding: 2px 12px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 1px white; + vertical-align: middle; +} + +.button-submit:focus, +.button-submit:hover { + background: #7db500 linear-gradient(to bottom, #a0e800, #6b9c00) repeat scroll + 0 0; + text-shadow: 0 -1px 1px rgba(19, 28, 0, 0.35); + color: white; +} + +.button-submit:active { + background: #76a312 none repeat scroll 0 0; + color: #374f00; + text-shadow: 0 -1px 1px rgba(19, 28, 0, 0.35); +} + +.dijitButton .dijitButtonNode, +.dijitComboButton .dijitButtonNode, +.dijitDropDownButton .dijitButtonNode, +.dijitToggleButton .dijitButtonNode { + background: transparent none repeat scroll 0 0 !important; + border-width: 0; +} + +.button-action { + background: #7db500 linear-gradient(to bottom, #8fcf00, #6b9c00) repeat scroll + 0 0; + border-color: #5a8200; + color: white; + text-shadow: 0 -1px 1px rgba(19, 28, 0, 0.35); +} + +.button-action:focus, +.button-action:hover { + background: #7db500 linear-gradient(to bottom, #a0e800, #6b9c00) repeat scroll + 0 0; +} + +.button-action:active { + background: #76a312 none repeat scroll 0 0; + color: #374f00; + box-shadow: none; + text-shadow: none; +} + +.dijitButtonHover .dijitButtonNode { + box-shadow: none; + text-shadow: none; +} + +.button-small { + background: #7db500 linear-gradient(to bottom, #fbfbfb, #e1e1e1) repeat scroll + 0 0; + border: 1px solid #d4d4d4; + border-radius: 5px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.15); + color: #424242; + display: inline-block; + font-size: 12px; + line-height: 14px; + margin: 0; + padding: 5px 3px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 1px white; + vertical-align: middle; + min-width: 60px; + cursor: pointer; +} + +.button-circle { + border-radius: 240px; + border-width: 4px; + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.2); + font-size: 19px; + height: 120px; + line-height: 120px; + padding: 0; + width: 120px; +} + +.flat-button { + background: #7db500 linear-gradient(to bottom, #fbfbfb, #e1e1e1) repeat scroll + 0 0; + border: 1px solid #d4d4d4; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.15); + color: #424242; + display: inline-block; + font-family: 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, + 'Lucida Grande', sans-serif; + font-size: 14px; + font-weight: 300; + height: 32px; + line-height: 32px; + margin: 0; + padding: 0 25.6px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 1px white; + vertical-align: middle; +} + +.uploadBtn { + background: #7db500 linear-gradient(to bottom, #fbfbfb, #e1e1e1) repeat scroll + 0 0; + border: 1px solid #d4d4d4; + border-radius: 5px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.15); + color: #424242; + display: inline-block; + font-size: 12px; + line-height: 14px; + margin: 0; + padding: 7px 5px 3px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 1px white; + vertical-align: middle; + width: 160px; + cursor: pointer; +} + +.uploadHover { + background: #7db500 linear-gradient(to bottom, #a0e800, #6b9c00) repeat scroll + 0 0; + border: 1px solid #d4d4d4; + border-radius: 5px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, + 0 1px 2px rgba(0, 0, 0, 0.15); + color: #424242; + display: inline-block; + font-size: 12px; + line-height: 14px; + margin: 0; + padding: 7px 5px 3px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 1px white; + vertical-align: middle; + width: 160px; + cursor: pointer; + font-weight: bold; +} + +.uploadPress { + background-image: url('buttonActive.png'); +} + +.uploadDisabled { + background-image: none; + background-color: #424242; + color: #999; + border: 1px solid #999; +} + +#printIFrame1 { + z-index: 100; +} + +@media print { + body { + font: 13px Myriad, Helvetica, Tahoma, Arial, clean, sans-serif; + width: 100%; + height: 100%; + margin: 20px; + padding: 0; + overflow: hidden; + color: #000; + background: #fff; + } + + h1 { + font: 16px Myriad, Helvetica, Tahoma, Arial, clean, sans-serif; + } +} + +.claro .dijitComboBoxMenu .dijitMenuItem, +.claro .dijitMenu .dijitMenuItem td { + padding: 5px; +} + +.claro .dijitMenuBar { + padding: 7px; +} + +/********************************************************************** + DGRID +**********************************************************************/ +.dgrid-footer { + padding: 2px; +} + +.dgrid-status { + text-align: center; +} + +.dgrid-navigation { + text-align: center; +} + +.claro .dgrid-row-odd { + background-color: #fff; +} + +.claro .dgrid-row-even { + background-color: #efefef; +} + +.claro .dgrid { + border: 1px solid #b5bcc7; + background: #fff; + color: #333; +} + +.claro .dgrid-header { + font-weight: bold; +} + +.claro .dgrid-footer, +.claro .dgrid-header { + background-color: #efefef; + background-image: url(images/standardGradient.png); + background-repeat: repeat-x; + background-image: -moz-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: -webkit-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: -o-linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + background-image: linear-gradient( + rgba(255, 255, 255, 0.7) 0%, + rgba(255, 255, 255, 0) 100% + ); + _background-image: none; +} + +.dgrid-pagination .dgrid-status { + float: none; +} + +.dgrid-pagination .dgrid-navigation, +.dgrid-pagination .dgrid-page-size { + float: none; +} + +.claro .dgrid-row { + line-height: 32px; +} + +.claro .dgrid-row:hover { + background-color: #aad7b8; +} + +#cp_zuweisung_wettbewerbe .dgrid-selected, +#positionierung_menu .dgrid-selected { + background-color: rgb(8, 137, 48); + color: rgb(255, 255, 255); +} +.claro .dijitButton .dijitButtonNode, +.claro .dijitDropDownButton .dijitButtonNode, +.claro .dijitComboButton .dijitButtonNode, +.claro .dijitToggleButton .dijitButtonNode { + border: 0; + padding: 0; +} + +.claro .dgrid-selected:hover { + background-color: #aad7b8; +} + +.claro .dgrid-highlight { + background-color: #ff6; +} + +.claro .dgrid-cell { + border-color: #b5bcc7; + line-height: 18px; + border-right: 0; + vertical-align: middle; + padding: 7px; +} + +.claro .dgrid-header .dgrid-cell { + border-color: #b5bcc7; +} + +.dgrid-hider-toggle { + display: none; +} + +.dgrid { + height: 100%; + margin: 0; + padding: 0; + border: 0; +} + +.dgrid-row-expanded { + background-color: rgb(80, 135, 97) !important; + color: rgb(255, 255, 255); +} + +.claro .dgrid-pagination { + border-top: 1px solid #d9dde2; +} + +.dojoxUploaderFileListTable { + background-color: #aad7b8; +} + +.bg-danger { + color: #fff !important; +} diff --git a/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.eot b/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..72121eafd977452ade424c3f78c6d181ac7285dc GIT binary patch literal 24624 zcmZ^dbxa!$;N{x_h0@{_cc-}faCaE)I@}$`C|bO@ySuv#hanq2Y#Tmw$QWZA+xK$G zUGhsV_xbPhUh?wzZ2L_u}jP%7kB< zzE}xei{=!l3om!B`g<0OE1-$%3vstgNE%`M^b5?{mDt%FtYl5xV!UeJtUE1&bp!2( zB9`zC0KwQ3L4qDV`EjOvT`yW*VRelcYaYlRo2nW7A0cn+P}b-9plmN9ep_4D-?wAq z;kWek7nSKqnndO7Jq23q84mW@dQSf6!{B$u@c0qW7k4lxnK;fF-H7Kp&2QB6UxOtjDJSZu^1g1p&VQ1ruU}exwUxxg zYMODe+#di&agE2~ru_ARfo=&1wGSZ*@tFIC3+jck|2~0xt3t2QU~5V6H!E1k@F%3iG1SgeP0Inp?kLW?FjLDO@P ztscMeHIM-+*kCePn-Qab(TE}gV>A+CEsMCijUbn+f>d3pKX~Vp2Yet)@0SxGSHecZ z>O8KxIe2ev|I5Vpi9^xvN2?exCkQifEqUFp1n5Bv8`Uqn<-Az#rma%CYx(g>`py@W zaw%$gRHGfKv{W|p6m3^6}Ljmu{C~HJ!4M)KEOC1 z-7l$>u!Rv37q=~*hVeqKa zh<}Fmh_t|zxB+I;(E&!u$)&SLdCkH^j6XC?3;|KJ?YYlFLcx~5H`1@BZ;>G;-q57g zKI?m&+5x4CoN3J>%*V;POLC<;@WZ-d|9dlRX0NJcSD1$3m@Qbn{a_E}tv!jP$r_Zg*<5q{SU-(bOHlrx2WU${6@O4Q z{v;AqQqg{QLuV!oh)|4ClMHKo^q%yI z#Hn$MH(2ni;&=LTBjre><jd-bG%CMZ-lk4dC9f#KsxVo+dqqX$n0BJ2pT8y#?tktkbecO z2!7ty=2iQen;@$1WuUi}BUkPNGr2$#x_w>;luLnG!XYnWC>s(PghV#Wd?6t_j8|3h zv35FxGuDEFNP+c6w(!Zg(?bTxy$@a35U@DWL8Vx5! z4%puJ?u`t%@Rptzd9lpzHJuccMVoS+>6t^B+{Q+`K#>R$wq(>Ib^4blOEDdN!4!wL zK{8c1&CjX#b-K2d`y2~d5*c>zrHpc_05iRTo-$IRg!{RLPOsM2n|;HA6=-*2|I)3R zPOpt)b|A8i2!v)YO=wqKdd*d+uSvf69|yIgaqEw;u=zG3zfs|Ju3G8=Mt!A-taw8_ zI?`MkkAa1&g|0ie{R_zl=Pr?l9X?{Y(XvtF%*h}xV7v6^XXuc`%e!$LK?-^Ix0vDXGx z$>CHb4oQ4OI~ZgK(f-qy6vK)$^o3 z9a!39rGY<-H}a0ZE3$L0fw`+R5%$}f?pT!_jMX`H82VtR#1 zcVb%PMqEJ+UsbJZrXK!GgUh`{xE--uf`ABIdarRjOcR#(G_8t(N%ue2Q^zz^4l892 zszNSeLPsqgV%6@HmFd_h2PFN$JmZv!(p5LWiG}|fW-ak0Yb+i6mBu)Zaea~C&AH>8%Tr%=?tE zL>0+Ht@nmpV0Bn#LDCq9{$Pr^MDe!4X}G0E7seVX3(qG*(pt@U&Dy}lD}k|Bp&g_# zoZQI5Y~DR=-|PxH1x|hGRy^ECP!Y){%RZ~PiazIII8N=5DSFit0aU{9bB_)dHEbRJ z3omUmeWt#a4e!55ZhuR z@Z5qkCXE(TR3niXnME=Egv?n>EmnHmiXJ1B)jN4~GzfEv$1EPHw?Y-DTt1GAgU`nL zF-~lzF9PUXumTp5l=KSaggQ^YL z&G3$wUM{Fntrc64O&mYJhnCsL`}HV5%)x@Q(}dT~*e=(UMi7eiG*gP>ZOmc_NQYN+ z%s~wQU;KN6anN_Td}eJH?r{NmRD5MY_dBV3r{0Isq9qAQ{cGz1Wti3SspF|jaiS#o zDQhdBmt)@baV00hJ=2~PmbMOlnn9if{$UkO(Qwx0XB#7oVgjgO(%Z~JIFisXJ;7sS z7Bm2Kfz^+tM!wItPf-q+UIZDWQ|aG&6o8|GqQFnjC$kt4AYZAkva}RY&2zRg3`Dor z`;?PIX$l^|&X*enWP^{G>aRI;`4rO0d(c?E>%VEAG5SM&e@#kLw=<5Xu1gdCz^?Dk z1|qri=xedJA@UShwkN1GOq2uzGtb4zn?Zk5dy9lG3fK#1p9u^c8o(2#pIm|u3u26Q z8tOYrAP^NSUYEy+&2i7=67?dORd(iyWgm!&N%|eJx?oKtt=0~kN(miXy>Vh&ziXh} z>^1LIchT+F$GxJqox{2^@^y%L;f*(=m5Q=lRN~vk@hZ`VcZ|#nb8txmn~hVRaDQkY z4!?QTvJxF7cm`Inx7&(Sd{>Vd6ylsyN?oswnqd}Cbw~!jU=7K&qjF~sqFMaDd1oer~{YE?TdD@5a2;d4i|)MopyRohc7 zFj92*X%1*(w20ejD|kHEU{^(^A$$BcHrVS?`=3c4D6>!R*`lOj5V4wULy+Q&3k1a#)%58Vd(Vj3Vz@H_se&5F;ehn3pnC_iF@6w!%H z?36hcLUgOQx@a~Av2VV3(TQNs@Gvjq`0_lXDEktoNNu#~BIfRg0vMzE8R0}J5onOe z$-IUC11DbzYj>DE%u^OIAv<}gOstOw8&tQTxherOo~EF= zP%dBvr^-RT7Mn24nq0!zR=||)0Ne@t*1f9W;HW`C2BcvbHaxB>%tWVGYh4uc3e_}= zG$=)ua`Qq9;-~sk30QGBw1PUnYZyU8=Yi&W_@nC+<<>E7uUG2H?V~{UtI4;dLYtFo zPV!+zk^%@Q94-l^#nMSi#S)RSjZ5&fkB`a0!owpad!R&c)h}erd;^F0Va>dc@uUc_ zTbOFSqq-U^XVVD9uaPcMSw<|nPB8s6gebznG zM_o7q`}-<(VqVon-|Vz4+Wt-Qx6dpJ7$lL4YT_dJ!?JTiScs^#N4YvJ%q@ElE%|TN z&o_e&IL~LUSVN9Ac=X2ZKkQkGJADB$${8u40MfoL*u9HtLe4<7b#6xco75^!u9Z{&kAlj8NEVjuY6Z%h~Xz#jRgEr?0D6`V18-!+!B-fWLCn5?xp% z9YGuf*Qj6~!c95O#gzp0Xt6me)H4wx3DdS}G=2=MJ^R=0SVjH*zH(qu_Y0qy|6jBG zI}yxkmUWZn(7XGBzrjl`KE7?rCTo2&0z()cWs7D;o>Dsob4o8d?22|%WNrlj$=mCJ zcKx|z@~#*{<&w7VRX)4fe2f9T#Uw7=J)0+fi5HPTZ)3nvnKCiAm^Q*EJgzO9t-{e! zgVdG{;4ne{7jwuQc`UfwXjz(;Aa+s%Yjteluff-PA`BIJy{ zp_|fqjI8fGtLr2k@>@G!xmtv-+;TxKzcC2z077Cenfk}&e#Gtji%yw#bO*rVvK3<0 ze~*T^h_KL-yUExX$JQ`TewB(jbvo9fC(BbID2QfV{pK;dk)w80t9TN1dJGnGI%6;@lunKKuX-R@WeLE^rpH z3+YthCe2(jla^XLcqxm?BT2}4sfuZJq4)ZI+H3_T!z*F8*s&oFk4gdI_hcB`%4oIR zsa*_}rBt(Nd*5PbaB7iGSK7Q3r0k=e11_r#dp#H@tMCxk+7)|qi5Kwl9rYWtQ+QQ3=M zE~1sfIPaw`_(1j_8U4u@_TDb+^_-egZj-^PO?yU_6!?e;Qy&za^5hn?S_4HSt@oRw zT=ljwrXBm-<)=W;2H`&JBB-w-E$X0t1@AR5{fvfBn4R7%Ijcxcem#RKjOsyf z2IG`<4;?8MIFM0L>SyZ&v#ed9M8hn3Rz4%!c?$AudMeWg$!@;Fct?ceq&z`+;>a)1 zZsSL&f2Gp}d?($BnD54T7vCj#svG_CxQG(78*d>V^wCZUOJ6Pho;im;y!87OFz!OB zMRB=SrVegP)8f0}p0|nPq3A}b?-2vxCZj8e7{Z4<;aZM_ZQCGtHAbo=c#|-xdT`Yr);%68RN5o6&S|TruJL;;y5%Md>9lp0OdLZk(~PQJNoBdAH<1*K=nWg z!XvI>^hYBz3!p=-r0k}KvcsecY+BH+b?xQ>bgVE@ud+P0jajRb*{CIS@}VeOqN8H1 z;^ZM8I!jZ@AgWEJHEasqkd9<*<6vP4=IQ5EKAMHT1Vn`E`G@7? zw15svy^#29x=I0l`r9sAN~$Y!e?2yd;F;{m|YZ_1O|L zLWyd{7?_3OmJ&*8K%}miL0ZpUj*8xN+Q?q3BEzE2@0cpn4jWx_O1Nh`9nHrgWbu?yHJ<<`sl<7e6xf)f1?J$v?Sudr1vqHf(+AmI6g}uEm+u{m_*20 zPXf-X6$_Pj1WL4X0civWLZ0AN*=&GX7y4bXl#JvG2*LG|eEEVVt(%`{FL{s_6;yef zwC_QvHk?8WxjI%{c<;#*!=$~Jd`O|TSKdQS(FQ%5r%ZiHR5MP{!jHpo;C2BqttTtc zp>E^^$Y}7ShBb=E@yX21TH!vhE#|N2M~W$-hEWdr3_B_xwn(pqvxth%iFP!3;Wz(%Nney|qRAzWg5ZPmU-X*=$@;hDauA zI-3lAU98@a*Jz(RX>cFJ(4OF-4`3mS1}I6PEfj|plNAy+cNzKfHocra2Y9!gnnD){SNqflt-zFjN5SuC|4ERBbUv|Fn{p+nrW4aE}ZDj({M zxjG$PbA*c!l%nGRL<_Qu9GbF}DmkJ_RrKN76j>qNFZMeabCq35s&R>~N*xa%uaRPT zBwXlx_PKKA<(yRkW!sAAqI;Sb(A`sZJ5`{6AU@|QX(GD%7DfCpn$7I+{4L%=h=3|f zZX#bEWkkVmCg&Zvf|X+v>p+BC7kV}l0%-i_TTe$={ha)=GGj!S#*4wVD;QT&GG?vT zaZ!B@`kH2Ot$1h z;}dOJrK(t?p*TFuN*R>`=JfpirMYQPWpn%2#!xdj3!Dh1wnAarD%bh>Dyq|LZ8%wK zI4NZ=R>eSo7&9X<+(`2DgIsR-6p7i_e{Z6Eot0VAp62WALvbouTjT$zrS8i2Bvm$- zrf;`??`P!e79b3$X!GbN@3nDpr{k8qx2_hsJ)=v&AlFVRVlOEQ{j};Lravo?612r~W)Xw8v!f5+;qwq>ih^BuIop zW1jOx%;#E&aCd~A-r(PVFn9y8={)iOypm!M;(Vi*P}ane-$6pfUk zsghdnt&J=Vr^#F(toFYoT`mi<*;!<3I_xmbCzWm^D5-f0rpSmhF%@1pNS9=?5X0Xo zw{gCG+5;KTwV0dw;o=Z*W6al-j?(<(`K7b?vH5C44P??ul)1@gDLM3!KwBh{K_O<) zL2SI81?Pgw=p)CxTeLX^l=<)a)(Xh9_(m1!ddpm#gHXfeYmjxp)-8Dm~#f=c5#gvlyBTB-qLP?v=9*Mn*3Rui5NV51SMA~;7cG0Fk61aA? zfE$1ig>`orrm+^5lt$lha(}NeTfMBqN|a(m@(-QAc5&UCb8q-$-XVMdlM$C=q=Q)y z-7jUN=Q>A914`%sIE(9bxsY{#WqC+9Nj-_himI6We6xR#S^_cB4N-7}H*h)44Q3g?nQQ zMa|8K!`M>QSl7eqLDC|2hfzHPEE?(7t#npcV)ZW6W15#^Y!)A*=`5j!`F$a`DVkxo ziVHF7-+;#;eXhg5ti)rIFDnB|ksQT@9oDUuYS>r>ghKx+Hc5LXI1WrIaC<&CFfh%H zw2_uC>UIi$!}E9fFad-vZ`fLnvZvvwidv)q%z0x829qz7BUT<2x3ry?&P23j zc1<%4%Wvqv_52!tg-N5{slj{xCS->;Vq@x8$^NFV?&&aswz5t&cuD|EM{>C;O-?xH zhujZ}6(w8|Y;6p^&!YpecnH7roIpvdGX0tRBI9nB`{M9d!x>nithQaGUixCkk zjKXq^GqO1SjejVC+)@Y^fCD}OMx@&ZFfpG4`anYwLBl2z9>BT~t&gp?!QgS&Eub%S zBw4PQRq+twTR<86M@3lW2Z~)#3svt+lY;469*`qb7)0t^ZmU3oiGdz7zt@522iA7A z{aI5meavd0tS`{HQ{MHyr-0H^2|Npc0z8~qWQp8`v+Sxd#jB>0b#YbkN zOD|rSx+L{FuH`6}3|_qli85QB3M_?z@Ir#n3_@RXaMu>fNB_ouVk@$r=EHL}kJ2^` zgP;Q)VrD3gUq`FbGGiIj-;B6G=|3qvTG&;%4C#M|%abUiD{;CPBl0#2$kuP)z52sa zi|5cx^Z{(sj_it`OxAO8WuZ2dgIhcJ77ci+!Cx*zHLfphx!-F-U@n5svwyHW-Z`n@ zOSl@v&;Y8{D89u(#VMYVDHsh^MI-6X_>1hsfpU*_S0^8k$)l0UD z9j;uT&@&8YI9BAg z3i}@?{3Lx&T|H#tmMGS(XMK(A^g~#z`Z{usBm4g0%Mim%JXeg|jyF4Tk*cpKO-B&y zPvS$gco-+$wzKLicY2$>ft?<%aHufAIFQHJwQ9vDZzOz%~=CjWv`k5jcZkXSyIrhs;W_v zP#}`nHK%`S;3nCEvp0ar^VcEy*XXVG3euG;l0N(}J8x`X+{}}zy~{V~;ui6{Zy`KV z|IbI9vCI3tOO)b*^99?27+!wCJj+bJ1Hhin$&>T^ApK^r!pqod660X6dT9602zO5s z*On<(0DhR_^86}Q>N~b3p6o z6sp*~kD(0Ua+v0n{LsS0g?Y||h#G5UTQTgp`ld22{%2)YB&I6DO;q`(`rb|Vn+!kv z8sz=>z8b8i7Y01E<9Kux&xd z9R^SQmgh5VFga1fVm5BqV0D+VqyO&04E*Y6)QMxPOF!PHk~wllaRTo31HV-_z2*Bp z#m$z7`%WPFQ8Jw~HoXutvqaf1cs3uDR`{cHlLS^zuudQ*zR*u>RBwmpQ(VyDn!`GB zJi+oW_ui{$T8^C>Z$CuNIo))9d2nN~_AH{be~Y$!`|8a-umvSqmK5p%K;*kUk2~yX|U(zWU6vpJOcnl|1KPBo_M zV19lqb(p%)9OerwS5h<6-__2i>pgZF7XGN$tjkVuku$*_TEvx=Pdg zUFR7S^7}3NR*a98P5Hl#u>e7ax!wVbL&bl)*9tYlUv};|OM@3K8A#W-R>#^DaBw|? zaA>JH9q`?e=)&`w$T^R7%N}*gWoun^^^VCYm3r<0R1y$O6hf>nlIBPV-iGqIa=Ce0WF)&fduGPK5g2H%oKt6po_l=7ia-nfdCD zfU>81E+WVUAxg|1W*au~2X9MyrCU0++`bcLN7UGJ+ls@?&moDLS#_mbl{wl=?Eu9q z48a$KG_t?Wh6hb zdSR2pw|Ikpl`8He4!tNm+K{^ znj>R?{fXEp^mY7KLOor}=5XK+%Z2VXs7XzHvefH}|Nd+*+X;y~)@gwE61E3G6sPog zxU+UNd`IVFlDFzppOf1Dw6_QUm3J^5pj_@mjO==+A~CnalMrt(12HDL-poqwJT)&4 z%iY^I?K68pc1g+LlXK3cIWh!iWPim*D#d~Qe}iTy|6*j57`S`-f$?ofqnedx%v{`+;2ZPXuZv-uPM-qoCB>nuQ%uC7xT1_(t}qh*QZ#c%p@A z&uxqz(|6)~Bg-IJ0|;^T6T>TTcTJ;#Cofc`#Ru7V{!BrYoS!n)I!XD7ne5d=qQZam zX7W(nIW<8D;D?G)4BeaWl$zm)o@eEr?n4BJQPbvo#7iv2fGrBk`$ZFzJG&?RiK$tH z^iSC&zQlNi4DCtSt+Go5|CkMD3{l*k|EY+m%+1&FrRn%9YcU&~cWdz6#dUQB>=qA zrqq#J>RZTbJXh4{H&6qjc>xriNF*>#;-95%Cnzausy;?qA)18@IWqz|$J3nF^)ib~ zCn)>Tysae?OQOi*U@|}XJz!1W5K0zyjgkkEg@q&!)L$NlrY|~B);Y9BdD+lA{543k zC&vF=4y90V{#W|$kA47wBhpludW3}H(>wm)*AfdqT8CwM-7 zN(akX>U#FaRI4v+1fn z6t}1`9iIISNOlFZ9h`Xz(`gWBjS)|9|IR^%{G!_2lP+P#Ykp68Ra42Z?6;OFPhL^f zCs^>EmkL*Db&+uKR&yU*&B2WB-laNu*#ujT2&JX0R=8BUUHRzbBX9$<8J+M_k-@|W zqze{j_xt-3o-Ow08}aVuM;We`1HQbQ-s1p)1GEf=b-dpd?h^)GwQO-*GKZH&it&8; zWp^CYo{hLvv;Gl;eshyRI)Jrs)d2KyVVf&eQ zf(#~wfauy~tv-d+7f{Kjn5X3cF$S?xwD51(0vPmzU%6h|yoOGtvR$dUE>`geI^pEC z8#$VAj8$sKJ%{PXIs2dsKG4TVD+kz<&8O64=m3;ibUaNnF(Ja(@fNc-m=B=)cZ)B6 zL2ucF09gl4wiQy0>(xg77%R#y-|7NlP0B@oS8x7gWQa}#boaS%6yp+MC#Y3PG{lpx z0@#Sd(nL^0YhSho4T)c+?w!Ez@J`ORq)<{IrHL+JHJA?Y3rR#;;DCLV+l1=*5Q@_1 z{DXzr;5jraw)B7l?jga(xU7)38LMyxvcXToZJ$xQbm23*8Pqy8L=dmkz`eHWL>+#q(SNx93dI4?s zDp_9}AZMKS2>Sx8XhM;G!l*b7&Gow8JJ@JnB^nJZEJShs`4fz5fsI%!fLPp53}Vu) z8&^i7rVMzEpO;8;$iqn@+}N?63&(*kdG#w_WW-Tm4Ngrhl=R%t72Xv#iV{f>dTlpd zYLTIe!2Rzoqaw9onv+V7ymR@#G%qe;IAfAlDGSgeAM?%}xf78-`}{#d@S-;6Mng_v zyPdfZcKXpLgZ4N4u7D>t9V;lqPwes(c)-382bcQUl z`QC{;M9Je>w>oovdugZ&lh?y99XlNsd@3~U-ZUR)yb{*M{Lp*Pu4!o`C05PC_pK}{ zReak>DzF00s6^%0mz*0mK2_~OeX8tWDV6DwBh8vui_cKQIhrB2SE3%0InS2L61 z%v&TCCNd6A?ViJ#2^;)Ufj$`^_t{}Tq;kEg<1%&Fc<=p^Q zGAqU10TZ2~jy9X;`>9{9;O~&6MP6C#qspNGa$18Uet+Ry!jbmkJczfCA0b72+vl+X zp5F>)Cv~FsY!FVGXy8f;c9nGQ(;Qufz6+su2^%r%Vr~4knS#m-m$7i-)T;7g-4CV= z!{Bs50*c=nuAV7Y6uW2G$1l{TO>kN9wGCM)_&*~bTV{B@W&keUjDwCNfkUME+tMWo zKooI3tY1gAl~h%0BDU~vTd*%G-pkZVD}@`xnigt$tv)$-oR{?#)DAh!JS6p%HPWhM zc+Vk#o0s2|Z0K5nyc;J?V*IcmH#P`DH{Czf@&wx{vVLd}9$8XkK(8KWIv=ghSdiZb zpqqDC--9gTZR5<#@OG)yt|r3+I}wD}4=_<4t{9*P)MwRml7wq^5no$Y{+edI!v0RF zH?4-VuSCQ4$zpg7{Z~qlOeUbf1W_n#dTJjV7b=vNTJd-#rCNYy5l+&6o!}whlGR|= z!6goa9;Y^)7-jiz&ID-S9&Dt6et%(MMvhGktb*D0QpN=4<#gV_Q3L>=gB|N9mqG=u zjoS?7SCEB<&)dFkE#X+SRT+mYfia#o@L~lTc3ZCYZ;o%k%FK($>Sj#~)UM-nu4g}N zZ&%vK&5>l~3QJj|6Sd6*wjCkmQ{P1gaN$^}dc1(DPvXW}#hhrZ$`jVrF16E5SCRf; ze;7-qQpY(M@4Y~p@~3Uo#9Q)={-CZ}QX-=t-Vtn-I+osVVPCXrR1SaLIXVlVvm2lzrBAJodJ4H2M4d%%9PE=x^pbaWflCfN{OZZiO)BNp+;bBqMq8@N59R z2r1P++t;<%IjF2mQ8%{IIY|7lrWfn#aj#7LyD6( zAg_@>5fvQN6-4~``*>F37p5M2xdTLRvR2?@%SVX((w}k6@@`{9_+o0DO&GFTM?`FR zSSaykUe^S-cMdM<0tn+yNg|-EJ>Ge;tp&CbB^_lV%3fUGyevel}NcSn!v>f=F&&yl(`qw zVn6eg;N#=h;)l-66^^(4n+Cbs<)J4O!mSS%H2aK|8<^YZH(#yQ0Yp$XSr<(Gtevmu zmwp)J%;U*3ce)MBq=cuM2w2wL4TR%vW{Bl0@>xK7; zL`97F+_QA`c34e)^^U{$Y=1}4Oqa^lL7X!fZ(N60IAua(Tb1s#&V>oB^e^Rus)7zv zou9p5a`juWEMRXaI$!VeZ$E1Rw+^i?#q@sHOq!m6F3#gx^Y@%C=@3QWZq}oZmK40? zUWQa)n@z%j$kaMN*xDM_hSs1e(;>aTS665{6(gY2_9$r(dW{%=iiza;N2T(qp-kr< z!(nJ^omoxRj=GdsLot`h%oT!u(;4AY)SggrtoB&z(qx`07yPOp!n^3Apb_vCo9adhC5m1<33HU z*A_0!WG~KxhZs}MV@8tLk1P|z6%Z8x+CftD4?$_f7_S7*?8pJ)%uB>%Q zubsKvg#YO+*>BTp6a(p=Qb&NlCl(!2#*E^wu-mHu@uS@ztNIAPOyXG;j#1?k6zGjJ zg5!G&{&A6zHa%<-D0Op`?Yr_6{80o;xm4`m;~bBl zg*V_xXCCW-^PZF5%q*zVzg))n|L}AT!PTMn5g-_iE8LZl(taP8LXs$FX+0^TQvQ9d z3t-%v*!nDexJOB7wjHzjh<#F*q(zi_j z4*@vopUzO$aMg}eAx?<}8#^jU$b$}P zeuR0x(`JyE`a(t|hBMLkNS>Jw*$;2ie0GmC6Fwj86yUJ zD5KX2EhvNJOuaIs+&>rPSrBzzay;1{^$VNt;`dGOdzH%mxb+vvW=>UVC@~CmeQ~Uh z1eR~@K}K&e@zis|tV7wa{C!$b?=zG&_v%2;F}6K5p(pl{H8e`_$p)@V- zP&Ap|+U}Q`nDQ0j_O7`U9~Kf>t`)2keP{L7bamx?qV`U|x|YvRy5Ng)lKQLKK9}9N z^EWsMI~J>pMg}HSu?$ld?jd26W}dXZCHP#S9;jGwV=gO746VJSu9R0Hu_Lq4tkrz@dAoSog-4Z-ghM}L`sNIG6%3otZP;7*ys?Z2PzusCP8 z?M2USlg+6bXtpfl{@BCMIL0p*(?8}fzm~wgtrY!Cs_>E;z4eudMON9vWf-8kdPxNm ze#J%9#I;_3^U8!KM1Pm9C?1PA&rWfrDGZzT zo_-l*q5Nkk&}QfY{E%kap_gAtCp|VEWc8n$_K}3GgudjmvHH(P&DVZXi|?F<-%@hL zP1Gmo5=7q#$5xpm%~UEv735Wax#Yj4Bv$03 zaa0+0?IW&9*k58mrF- zHfF)44i6ZUGLd)**L7FH$TGHt!x498L#e99gpH?sJh==GJIlF4va zm1Ozjh2whkbfySg`$Mub;OVlz@o(lk-w>ZQUBx~&3|+*rPd!WKkw_-aj)-;PX`H#F z8fkp<7)O(D{u|eQ4HfU{PmxWH!sUbv(0)NZh7UbF1V*j6Z65FYRt8(%0U_Vt^W)GB zH1S|vN3TBPwM%Y2o}0pU3n>kLvrf2`FP&V%rzd7?%_NEv=oQeg@vc8Xj!b2UX=Qc|k#eUvBLc@|ObI7!wKD0sppz+hhJ8=?HMwnr z{bCnZ5!i24yP)~ZAiuisj#qg=!^+fRW`7)OU@dve9l#uq=$%%x;_|?e4iVD$IU=T- zrJxqgAP3MZS+%{ewDrlC^LWd|%sIb~wsJ8#h~dSh-*n6-Acc-dx6t6s1ifpj510t9ymDf{pV2u z6B4GnB%cT45ppEk5z?BM8d{`|y@O^ER|NAc--~7`s{x1$5k@`0a z^$L`fxM4JlrHYBvX1Ph%`^T-7AHI8WfQH)osH^MGHY*eSeW=f6bJHYYtS%q?k9-rPgo zJc4h~RLpyP0rP8Get~bjV|Vcw{_k9+=6r^1xZ-i_@5ir9Jzf#gG4 zs(qnvE!#Y0>;9#Y!4biad$pGbzCV%&NZ{1PI-;FkU;Q1_?VLZgViH{nH%g3(QF#0m z&B)smiSO$1XlmG-plZxx)%QDh**>>aQQE-~*1c#Iov3_paAOnvX*_`*BQrNq`*3sB z*qNB_6gGWPIy~>@SX@XgDma*0A_(+k-6`+*tQ#NLJcDdbl?^;H{n>gABbZ%wIrg{U z8xQvW`{4H-m(Zf(Q3Qu%?OzcR9)`AW!?a5#Qq8S##$l15ipZ}avELXzrrX3@=ng^Y zW~Op~i=AP#4-B#V=kkcZ%lv9|q4eouKc*}i-sb~T8htnyiOjh61QMyZd<-(X%@?aV z6h?$-tAZwtHJ??#Nqv=hj1zy8hRv7q53wWD-&!gRf5W!#E)iBqv2>WcfAo_&u=h$Q0*_~cDjw~b5Rn%7>F=wrb-S$y^)#F|>-{i@bISpvSQvmG@o zoqjdYG`ITgw0Tp8ByUEN6MRyqWu-H|B*M|2QJ} zzhHH|DH86t44OXO^5v+=?Z?h(ytp7JD5ocSL8k0uJ^!`f{x(kNWbj z+7gI?CrfV#q1j}cVtdXJft@fTY-xg~*Q!Y>h0Wg8U1_UkvvxWb5EK{#G1gn5g)uH~ zjq|?(&>t`02Byi(qw_yuPk;wd=bImaq3F==hn`>1&>b$kNhoP~3s^%Y>V+(P7ad8`$im#2Pfj>q{>)584G36ec#hQk4 zRF2zspDKC2t4ITVkG^_GQM&e?@E~LDr684St{04uEQ04A!aTmoe9#}Dw=O*7!&Pc| z#7*rN>Pwl==R$lcU;}hElF(0El5}KQfWoy}wcI(AU zTi-e(N{eS$h^74wR;{|;5H4aH&pDGXP>^L{0zoQ=@f6af8(kCCWf*{Zdg+(5y<##Z zdP`Ku>98|Y+_Crfk*eVi`c0q1SCFjdHpi=lKz~WJ8}Nzr8%n3F;sM<=&gg-7dw(?Y z8#|2xG?7i?6fDHV)?nKA#`7C6s%zJfp8q$>dSQ~P{}nclGEC$?$)^idicPq2laTLr zw5-AqmLGQLPS83gr_B*CQ>5t1Q`r?@X(n^0>|E+gespn&RvckZ0D8iFk$at8ZvL;o zksxi2RIHXj51x2BQqzau~Wt5hSmO>E?rW z+UA@IgiL7q`duc`IA2i{>7gvcc;38$cmF=HZY1an)M2EWh~vZ#*K`e?KAOR}Rj4=> z8f7Gi_)SfD$Y}_>NgpHwQkeY_l@1h61c3Zl-j)#Y;nDlR4{#G*IPigG7(PSfMwOn- z{Esy2R_s!Xb~t=};w{87Dk9R(jR*(o(MwPvF0(@D)#rF0kieK&*Uzt5iCEQ4e}YyZ z20%o;9o$$6Lx#){_4p-$5fE^X!s&boVCPo8(iEY$pqu)E(IdTz;IsMiF60GiO|95C3eIDBj%3qMbtQIO&w)2Pr0^Ybw~LGx3KxQ6ZVrGUh8_%pusM} z2HOW0P_Zug=Iu!M2~zGI?0^v;&rj4t39XoMu7LblmlGZ$S9|XS6;3ELC0bvsghm{9 z7H;G$N67wI3CJg`5{e>(eO9NyOCL^;0W7#Cb_r%k&g2r$-@hQ1VDVHM;U$_Vn|Xvr zMb*$E-*X%k2Y^~r#2jx&x`HRSxr@3HQOur|98wF30P?S6AHcNzx3<=r}y2)W5J|IE} z!Af8QLT7Op={-CvNl9jpZAoBtze!{@9`$9o>DtQ>NuS!R0ao(bg34J>VNGH#798MF zQ~&-B!cGoMGJyO~3DW-J?t=?!ZXvRf?o2}hi<{m*F{G4q^SyPLUE#jwJoZnJEQ;VUV4muLK&(g=87O~WErBV zNC!bn$sCkb{6_-;P7g$NgJK~e!}wlOpE7=;xpX#;5q?OlMi4l6=Sz&UfN?2llhfL! zSw+0wAYF0Yu!4vKsi_M{RaBWh###>Mk54o|<+en;`$pTu_Pm z3Illm`fL8R@iOq@IWf8qR}*K}=YmD_K{oL#GavA>}c}QH3+; zB;-hqd}8Z(sHHI13Z-k}z%#iA8^B-dzX%C)K-ytrwa4tXeSYv@4LG8Z>EeK{nsP+4 z%m7G2t+OciB?C9fCTuJ-c`Ix7}PyF+buBGK*ipe2CLSvSn!<3QtwQxN}*B;k5I>B5?DOQnNfn}xwr+;w*h+>gS3N}q;w*=M>1p*>k#D6F7hh! zyftARLiv1go|V>tA^0p?&nYYuQDOom#H3}$F;V@ly2P!}YFRm!z`8&IhaxC0^5r>Y z@rbyG&77N7OR<2NHaW_rQPgGp9B)X@p=yKGKr8z3(aXHCm zc7)ptEwmPwO9-PVSHv!Z3~3KJLI}06!#V}ZOVDp8S}0bJ%Aw<|9K=6<9k=S<({P^c zAnm+M+o|s2aN{+A5))n?fXc)=O=EhjtQuL2WBe$(D^&n~HUP11bW)dXHtAaBaV4E6 zwNT!$Ps;a(>kp{v%9hfF0#*n1%?hh~y1Pk0pGa*-n0n4YAr7Z317HqV#u2OTR((z~;fmK8cq?6?%&6cIKsNI8FZ3Losy4k)e+Uky zRo1^jUunT`;nj~3NhY(p-nl;j$j{Ws2|a1jh`nGoaguK^RPbU&5J_^Qtx*t2=q_O> zr6EadLYf&&%<*F@R8_d;@I-04u9d5RKgc*2m8xJ06?00pNQqrxpDR>O3c%Mqk0)Hl zLY+y?iNx@#=l#UI^ZiwNtsHA>0+R zeGloR*Q}lZgM-gVL?HTI%ex5y*d+Lc<^VV?F7ndA{qFh{n#GWy32&c$E$=ICoE}-R z25+eH;T>F}(@)8E2_}+R#le9>4UVz^8kpN^&;iBEZ$h$Ix^Y_2^(edtVtCe^q+kWW z#RIBkE?pB@v0gP3XldD2;|F@T@hd-XE8yypZ>+0Ufa=l~y0@g4bfKh!DR*CVq)Mqv zXeH4`pxXLbEsVX_%m(H=O;NhvS?QJK&SqS7*c1WkZ%78884#I`=-@&uN3yEZFxeD1 z8Oqk@Ye{PoeOc6{o=n^&DB-fX?G!hNJ~N6rBY0w*g2=L!pj7n2q)rq@VGo%gYxGxh zI=68;2`S32bE$6%Krw#^J(f5ifw@LJ#AkpIZ8zY7k*LfsWj3f#_(2PnCcm?huBeD0 z;qs>VC{Pg)LO^hLksfd+wE@+#P7t&KourlY(|%8FechhyoIrnmrioiywe5X&_*_z0fFq1sT*9F_cwte6z$Sao=s6b%8Uc(!v z!qi~32?4n@zHsa=SN^%Uz=TuLHeD~0rVi~tEh?D6Dg@p%Smt`!pArqe8{j+GMtUgaBvgQyE$Ah(74cJycHR(xU z94ls|iVUe(JX~;`By;oX(Pswo7_qKh^dU=)753{Pugv(c@E+|;#sD#5U= z@wr{#t2x$9MN_hjQ5Jl@tBJz3wAD%&t*wZM#B%SAMuiMN=%JX_&^?@ob!cunA5abb zEIx?b#NeHntz*^S2yaFO1KV?}g3M!uJJ`T>eu^2KytEuO-=HdW+GL|RH|viaJxjUt z9Kjwy+51}TVv zj~EO1k^LOz;K8X8CMDYj#(68bpm1i-vGvl;prsry4#Ke*I)AcjPyz`-E*fuzbfzpq z0f}ibn*1ARgQFLbu-T;C>{mP$_fdABSfcTLP`*eQ4z!)}BRO^q} zH;5_U1TqdGfq-gE!6z`Hz&J}6L*WQ(dltqKZqo}~k@zmlNcsb06nPp%EI)>kh=4wr zUIWi%$oX}i{2!AXP`y0i8JZEJqkhe^MS<-PR)pD7s-1XSK~Ln?iJM6#ac61 zfO+WW-7qIHx%*jIjY3sKYGoDrRCL$V?wbaE1o>LwSUl0?DzqO_1_|qJW1{VCR5ZW- zIeJx$$?=8zqfvE)c>mrdeqgUEpl(ntu}1tum2f2Tvh*k@612Lv)5#>Ydb~>btc8Hp zkvKk5(6KA&&Y|kfU+RV<5@8-k_n*VBv`ulz0_a8nQaQCSinqK86c0-x{amYT)B;Xw zXxP^3(2nt#MkmHYd#)#xvS^cwpi!*(h~_6~g6ajvr!x@+6^$Sj@{B@F44YQO$^{;R zeg(m-f;J3D2vl{*T;_Ik11dn3DFMUNBSc*~hK#2hyUzJL5*S6zf{(01MsOM^f+$;_ zuz;~-D&df;g8DR4t^zq;STzFRgJFOL_&kny(kU|(2O;dOablM>&=dh*IH<%t`_K@m z&ecs@hGPJ`wS+ritEPxxl&GesB->b(dq^Ow(80hFvGZAS04?*<)>LxKOG65x$)@=L zn&C~bmy-x*^0)NZs+}Zn%?&LHl9@IQ?$&Y(dX8Al0aB~k!-Zj2n;w}kaKqHb(;E*r z!qWw#kA+;LN7XwkGLC0m@Tfp+r~^Eebls3g5FCuDJwgjt(Oy<%*- zBTzelY_ST;YJ_~U+cFAphvXIQwvr&>4-{9JhLDrkIbzyWp%U4VIT?)_UCB&7Wkp$Y z21W!jky1lEQqmx>%!C3Xof@E^!>IM)-|iA9jX4Q?nvqp_#FyFl21|QsLq-GcIzo)P zX+9VEtA;R1F&7EX$64m>QR>QmV|cojLJybK-#bd~g5wamK(l4x_rmo84qEm9t$%C)=YK7q z%N%_{1?mZyCr0i~e^L{rR)utqDVSC1SOGMF($F}LK#hP$fkn`yTv0Se(j|z21;~Df z!i9`;Fi)$W47V5pF%iUxgaxTA0b5{ahpml&X97<=&91)@o`!)$G5bDN{dZsQ1Gsw# zx4nAvpBCH^*)d#85xAQ|X*(}DPUsy4wh^VXZn6d0fjaeGD3QZN z00;V6#B)@<0^Sg8oHjrJNI$R1(RG>R6sBH-epSL~Z@lEwYkRM>;hR2vUGA<;o_}6| z00fB_OQb?k$z-x2k;Gy`8Hs@(A{V1G5s40jcDiZQCN@%nMU_^7w1}YW;x(*@=3&~} zit;uOSR#m0iy^GL3TaFE@!lDkw> zjvV%3K#ly(bu4bKX0gjAT0~fvvKLUxDc( zw=M#&MBEO;UISR6VuG~1Fx7=C$nBdz6Tl(>w+8>cfyaRwjOaNJ>;@r;N%7aU27o=J zjEMp#UXl%FfVZ)$YI`kdZz4z_W!8LImSoWBDlNCTK*2H^06piBRG^Fd;@C7m_;7+_ zzDd9cRvXNgSdN-03^|mL2uGp3LK!Ub_gu&NrGSR$^6EEl3s%2nUU>3JmK_EdzF z$jt3&42i+3u)_8ld<0DT(Q`_h@>A=s6f}>pkQ&`d1x3$H^c&N+Qw?hrI^)o?K42C% zIi&S-Yf?ErbMBYhO`CxWScX9`hJ6O(VTpT7kclJzy~rW3_BP|S?{+{)fCA8dYZ1Nj zWA)u8P8uus*MN90&HMS*k&Vsxkzqhauz=52n9Mf5Y$CaZEX8+pz$R+1XoI8ft1pK~ z7;qxJJ^fZW+Z(J)&owm#rXX*51Vt_%40ymRTH8s1j!j&Gy3esi83q4XQ>wGHFcK=u zjPPnwN4Nwbl?2+K-IxG@!ZeV>-0?7^N-tN$q#=q0Yrv%JzH}4@Ic%16D)_|)HW`AK zu){%)Nyh;CC0}n>3QtN1837XAzI12MFdSJ6+<%p zwtsbM)v#6E4t7TLt-Zuzq8HnNLZiM}?xm@8c5om7jo12Oq8LUrP?Wfp;fuxaW)eS- zUqe3(!4m<%0biIy38~h@$=G!L_Tk&-<{-QzYfG%-6-RshqUOeTDgkR_7S(>~3JaQ{ zY9yAN5dnt$OkT*t!$kPVP7Ls!yA3RnM8h8c#vq900(g%VGeW7MnF>6La<~T=V5E^= zkWQfQHzsEpJK0K5q2WgOu;9wyFQkU7vcw4J#?GQ)R5wVx)2S8D5Fv*bh=L2XPb5$i zxjjtrNoQ0e18FWIYb&5wh%Lp^i%?ZA;-V5yRBI578O$IeiL0?h8^tuLQvz``=q_vx zDN`zs+i9UGv&&9R;4YTdD00EZ!1SgDVqq#Ikj2osuG=m}kELd!?nu8__^hOM5p;3I z7JyNOQ_eIsF~0OHjFmdfwio4*)>>KsWn$?ZDQ~MYwqFX>ZDtgpRpv7B0IX6X1=C{i zLW)O|`_5?*Sd=Is3>yj*)srDyJ%za(NN^qvG`$oWQ}cRc`jc~4d3qf(4>L`aeCSn1 zn7vZZYceQ826)8ns{*yWODd2B5f2?fsOXr_mYPA%VR@I6q8}kr6gc$z0E#F9QZJ0S z4u*8~jo%Nt$x#QAYG~wJt#t^TT!nc{4oWflap+*Rut(G=X<}^V=0zG{{m?zoEK9ATEY3bRaGd>!DH>Ylo-)d!SZz!5W2BpjRVJu zlMi?n(D}Mb5>KGkS?X|Iqz}IGUKWFkMDT8=Xmn4!?%R<=ZkKq}dE&jC_e;(Yb%vjt zIBauG<<(4g|DlE$lzjOgM>D`N%+kp+P6r@4k1he5p@Fq+6ay}kk=v16d@b70A>^lw z1Dq$Zr5^Qc*O3{oiehz8?&ssB{hht){QA(jomLDC=$Gp!@SM3@X(mOz$8?&a9F z0ZC@%6@*qHlYX{@X0u^>(ojr}eGZdUOQq)HMwl3bw_3-LYz25oJNz@dCO8AYX+!`7 zz6jHg6-ld#O2{Z9kxh(*hC?!0t$j#J3S~m`PZ2Op0+JB8P@@AD2vkt?W3by0~hV6Z?A$s9>VM#f^a&J9e=>e@H_G}?`u296?*LzhKPMM>7j zEij(x1n>0n$qn!hffP;$S3$RA>WEH(dWAx2H6uJ!a^Y1yc0~e2!35I|t2Ju*ReYRn z%Wi@!P>M{CW<_7oru?fo>lh(un9jC-PBayc*&{3;tcV<|n5N|IAo@i~4VK~q+Gm}2 z+uOZDKb2~9A9NNsbEk^b)4`J6zkDyCog_m9q6=~fz9oq2>~af?`u;coNiIAY1i~rt zub%J#1xUct0!;);aXu0r(lu&ZP-TgzNK~69{m7i1&;hIax2%LfaABE%T|~i;h(xfP z3P92_j9ZL!&C9~J(Fz&Fr%0mEHyC6LCcu_?n|p9OFRl`8JhEx=L3GXp6a>LVbK_y6 z$>0`RM2WJE$nkQcLr5SBIZPsB-D~ei9fVu5aUgo|994W3Pt}n6#9*?B)R(~i`G3aj z0SAyKg?UbD!JdeW!z^sUlK^;RLJ9~lBmou;aB!I``a1IXhJ*2e{0P*b&W7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.ttf b/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0ceb1cc1e70b893842cc35254385f389ed7754bf GIT binary patch literal 46760 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff b/packages/zuladungsliste/Resources/Public/Fonts/Raleway/raleway-v28-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..c5bf2f05cbe45a9797281a5672563961b0c76285 GIT binary patch literal 25916 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 HCuaW_`>>q7 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/ExtensionAdler.png b/packages/zuladungsliste/Resources/Public/Icons/ExtensionAdler.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eff3a45089d96192b44b1caedb6913cd7be13b GIT binary patch literal 57099 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/ext_icon.gif b/packages/zuladungsliste/Resources/Public/Icons/ext_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..9651890c783fd1396564b2c73a217f0c52f9d1c0 GIT binary patch literal 1579 zcmZ?wbhEHb6k-r&xXQqglaoDV%H)+RSNiyPzkK;JDJk*SuV2y8(aV-C`}Xadi;MG| z*|XQKU2AD+`SbkePoF+rv~XcyU|?ZkVMRs7rAwF8)YJ|i zKK$m*o35^|YuBzFI&>&4EiE)O^x?yY8#in?aNxlG`}h0%`x+Y?JUraR#6%q&>}zVO z&!0d4{{8#<`uZC;ZtUH=XUUQ!TQ+ZQZ*O0}e%*u#6BaL7eB;LTBbrg&Y3=Q-R zjPwnSbPdg|jE$@e3>2V1$xgwhC?(A*$i)q6S5Zoutx`rwNr9EVetCJhUb(Seeo?x< zp{1oI$P6PR-J+B<-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VTY?YK?UdSzg z8=F_G2lkF$a(=FUMPh-zp`HQAOAx>27Wn$&SDKp(S6y5Zl!|aKR)dQ}DhpEegHnt0 zON)|IgHqF!K~@!5ITxiSmgEu`n<+v~V(p z>2=9ZF3nBND}m`vLFhHYsTY(KK*3?Enm@@7}(7{p#h5=g*!#dHm?%gZuaH-no72=8fyuu3ou(>Eea+=gyuved^?i(;JWy=vu(<;#{XS-fcBg8B32&Y3-H=8Wmn zrcRkWY2t+bzTTehuFj73w$_&BrpAW)y4srRs>+J;veJ^`qQZjwyxg4Ztjvt`wA7U3 zq{M{yxY(HJsK|)$u+Wg;puhlsKVKhjFHaA5H&+*DCr1Z+J6juTD@zM=GgA{|BSQmy zJzX7bElmw|HB}X5B}D~!IawKLDM<-&F;Nj=AwdCtK3*PfE=~@1HdYp9CPoGZ#h)w; zAfN*xK;<0++y4Xe3p7%4>-ZK;a!|6g5RFqeYV7FX3`)4};E=;Q)rDCgMd*;&jYp4M z+`11gFON`++Rws!AUIRONKA}DnwQsFfl)?=NtR1YN?S*kms?1ao!OR0#NJ9wkxN69 z%bHnBQ^VR;L5%!FB(&7MV%kyV1RNs*P&m_b0E$DYm5KtMx)yPZpc*(_p*fnozYvua$z z0RzXQTs(?ND^3VLIKaW2Q8(p4L&D(>$%O_S2N)l+a4M;29T8}JaHLs)-%3DWfir_3 zldz3UMnFP4tBza~OU{mkM;sQ*32~+DZfIm{RPl0gY1o*+*3W8^krL3<>deGtCsZ(F JfeHtMH2`8?JO=;( literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/lupe.png b/packages/zuladungsliste/Resources/Public/Icons/lupe.png new file mode 100644 index 0000000000000000000000000000000000000000..a774a89cdbceae0820724f7ba35450358e7919d0 GIT binary patch literal 310 zcmV-60m=S}P)4} zKdMmZtzC7hF4tqR9_8{dC`_CrBSi$SK(|8jxH))4z=(rVf-T4J7pV&|Gn?50DqUwTG4+lA32b1oT+P3|zgGuew)*Qc^gt;~C@@ z91U`=Au0Gl>N7;7K=s~bJ9Wrj{{1=2M_8-enDfKqEBFy$0Cr+qN$_X22><{907*qo IM6N<$f}Y!fuK)l5 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/relation.gif b/packages/zuladungsliste/Resources/Public/Icons/relation.gif new file mode 100644 index 0000000000000000000000000000000000000000..db61d7e18817e2969b740ccc62838a1447cd3c3c GIT binary patch literal 233 zcmZ?wbh9u|6krfwIKsfd$jB%yEgcvb*xK4Ud-m+*V6c9}`t4wF3=FP=!D}%14h9Si z3=BC8i41uRsSG6y`V1KiB@8JH`3%Vn#SHokDGaF$WeoZZB@C4eia%Kx85o2ZbU<1_ zb~3Q0El@F3c|502Y26~Gy#`AJa- + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/kammer.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/kammer.svg new file mode 100644 index 0000000..79efa2c --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/kammer.svg @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/list.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/list.svg new file mode 100644 index 0000000..bf76281 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/list.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/preis.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/preis.svg new file mode 100644 index 0000000..6f2f8aa --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/preis.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/transfer.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/transfer.svg new file mode 100644 index 0000000..4b57593 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/transfer.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/waage.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/waage.svg new file mode 100644 index 0000000..dfe6a56 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/waage.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/packages/zuladungsliste/Resources/Public/Icons/svg/wettbewerb.svg b/packages/zuladungsliste/Resources/Public/Icons/svg/wettbewerb.svg new file mode 100644 index 0000000..5d7ad5f --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/svg/wettbewerb.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.gif new file mode 100755 index 0000000000000000000000000000000000000000..95dbf79fdabe840b58479479fdb07a7f016e85a4 GIT binary patch literal 1189 zcmZ?wbhEHbhkxs|bzm4Sf*6e!s#*c7Ft zSp~VcLG3C^NwZbTC@Cqh($_C9FV`zK*2^zS*Eh7Zv;>)9WTab^lBQc+nOBlnp_^B% z3^TzcwK%ybv!En1KTiQUdYPFiR>sCI zmL{&27Otk|W`>5Y29B(#eYu+axa zEK)?ngo0e$KumbDwNpSO{M5V@Tcsi;dppMe|Nj2@{p;tC@87({PcxqRv3h4bgmo;iK$#u35cm<%;FYmM&SmXyJnS^XAT(J!|HS>C>i8nLKIYg#NzX zp6;&Bj`p_Jmgc6$hWfhNn(C^`it@73lH#Jmg8aPPob0U3jP$hBl;otug!s7FnCPg; zi14t`kl>)e0DnJUA8#*D4|g|L7iT9&2YWkP8*3{|3v)A56JsMo1ARSR9c?X54RtkD z6=fww1$jAH8EGj=32`w|5n&-g0e(JS9&Rp94t6$H7G@?!1_s5SEDRu^10q1>2m`a9 zhf~ZGpWdWbmTZr0j%Y4W;8GA3xW9DOl`pAM**q%oUsF^MT>n@y@FFfdpH07h1;>;M1& literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg new file mode 100644 index 0000000..4d98f06 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kammern.gif new file mode 100755 index 0000000000000000000000000000000000000000..bea27d8dcdb4f66e515861cfb19ed1451986fa9c GIT binary patch literal 1221 zcmZ?wbhEHb6~Abs$i;Tpqp%9W}skZsAp(wVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C* zb_zB{DQQ+gE^bh}ic->Sl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai7Nw-=7FXt# zBv$C=6)VF`a7isrF3Kz@$;{7F0GXJWlwVq6tE2?;LT&-v*t}vruy^#5^Kg7`JJz}FYQ(%f9Q>f(~1RD^r68eAMwS&*t9lv*>cZh>BA zW{Q=uv5TdNtD}LdskxbMv>2~2MaLa!lC zy`ZE33Jxom)S}F?)D*X({9FaFm#s2!y2a8Jr+HAlDLCC?>4sCUzMX=NJ}6?5A{r(X zPai+LfA{vy>sK#dJb(7| z$>T>4AKbrp_s;EGH*Z|OcJ<2TOBXMkKX>-b=~E|996xsS$l*f=5A5H!chBx!J9li~ zwsp(qO&d3?U$=J6>QyUOEMK;C$>K!|7tEhGch2ltGiOYnHg(G6NfRgZ_x1L4cXf8O zx3#u3H#IiY*VWckS5;P&mz9*?xfYiVkztEs9eD=8|- z%gM?}OG!$Ii;0Q|3keGF^YQX&o0u!LO@ac + + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.gif new file mode 100755 index 0000000000000000000000000000000000000000..64333744540f07fc4edbd9bdcde649eb9f65b87e GIT binary patch literal 1284 zcmZ?wbhEHb?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0 zT;&&%T$P<{nWAKGr(jcIRgqhen_7~nP?4LHS8P>btCX0MpOk8qS8N3m)>l#hD=Epg zRdNJLD1hvA&M!(;Fx4~AO*SwyP%typGc-0aH#gT&FfuSS&^IvBH#E{UG`BJ~vNAAG zfC42u1)HLjG^-#NH>h1jDQUJ!86_nJR{Hwo<>h+i#(Mch>H3D2mX;thjEr=PQqpvb zEAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5FD#n~S5PfuV`Bv7?cblbaz-uV-Fy zNn&1dD$L%@%oLbj1H5{zoQqNuOY)0C^7C_GDIg#tza+mnBfmhwIoMReH!(Rg55xyW z55%`FsYRJ(sVQzn`MC<<@U_asVn2qz-OP-f&5Vs)&5X>=&CHCIpn6lt2{U~=1si=( z;y_9)Frgq9HxLt^^z9T7nI|o>*T>t-)5G1()y3J#(ZSx%*2db((!$)#)Wq1x&_G{LS4Ue*Q$t-% zRYh4zQ9)i#Rz_M%QbJrzR76-vP=KG0mxr5+lY^a&m4%s!k%2++CkwdD(E*X5GKzsE za6^kz;KmTCDZeZ^IojL`1Z1bLa5556I3*i1J4e}2`CIIojs*cPno7e~K0cV>qtx&7 npkPN1R|rSQa+a(_;iz?Qx$PKc9XDBNV6f$Go5dXgMh0sDR9e8w literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.svg b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.svg new file mode 100644 index 0000000..1859122 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_kriterien.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.gif new file mode 100755 index 0000000000000000000000000000000000000000..c517fa39871675c93ce438510bb2286bb03530b8 GIT binary patch literal 1184 zcmZ?wbhEHbhkxs|bzm4Sf*6e!s#*c7Ft zSp~VcLG3C^NwZbTC@Cqh($_C9FV`zK*2^zS*Eh7Zv;>)9WTab^lBQc+nOBlnp_^B% z3^TzcwK%ybv!En1KTiQUdYPFiR*sI& zPEIav=B}pZW`>5Y29Bsq8BV?Wb_zE7pom3^XqZrt ziyMduPquanh=iY-mtw0_q-1Z$`2XMEKfizd{PF$U*Ds$xef;qL-P<>>U%h}$>=IY|?mo_rKzE=rmCW>q^KY- zCo3Z@B`F~;CMqH&FX#K^#)_>+YJ1av?Is2pKn_VjS7dE(QX zoTbV3*v7?jfdZF;sKEWD)2@6;mCEL6Ie1U4>gLkW3#}$eH YG8(uTLQ+rfy}-m=P~jlQFT`LC05bNe2mk;8 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.svg b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.svg new file mode 100644 index 0000000..95433ff --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_preisart.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.gif new file mode 100755 index 0000000000000000000000000000000000000000..26a7a1d21d5bc2433e9edd3cce351f712274b2dc GIT binary patch literal 1231 zcmbVMX?WB`7*1`e2U@ivhk~Z5x7}ot-5eWsw{DXLss!q`N>xPCWOg@nbC{%Tx*n*2 zQl%D9Jn+W5-UnWYRJ;|%`@ZqM>RH8WeNwyN!_$W!&aatozW06S{pOpQ(j;+Fr3$G+ zR#hT;&hGB%)eXD5XQ`gE7BA^77K;di)D%az$<3&!cuJex9IN+jMeTqd+72_i8OH|J ztiw=Ui(@ls8OXK(v-;G616vByTh&5`8r87+1RC>s->?nnDX4GcOqciLn4($jkT+dE z2oo4Ol;U;7v1G7;2AYE9K$ONoNCgZ)84@SM5te1^PzsQM02Dz|A(G|86b}G8Jg@{B zbF?&{5~X1+M@z@CtmoN0LFDs!JRim_Cqt0YXf)uUsF0(jLvEMpDSpUwYfB6wbX7;U zJ>4?VfKh3;I=wiCl`I&xEN>w;U3|z8u384+D>gymfG~`}*N|b?OTn$j7%|&z?Xn?} zg09u+s4xZ7wI#4`*xMHh5^Y)LXE=IBHay2b;N10=~t080Ue zBT0@E7>*MF%ZX7^NJdH=BVk#INhWDpXp|&Cl8u0iP*G8kXp%`bk}Ml8VVg|XQ%n_> zbah=TVH>uKSp5?S!R<6_m%~{K{+^l7zLJN(`imIEzI=G&H-HOoB=Rr+!ECU^? zFRzcFzpd|N1K=czp+yleG@wOn7_0rCnh^;!Mg-0ApJpkAQlb=0x3qo&-THW-sl_n| zt51{_|NiUGKYri*+pmMa{QT38KYTy%-M8O-{neLWeE!*|pKSX0qYpoL|GjtLdHbz5 z-+2ACS6_Mgr5888@cf47o_*%&r=EP`@yFIb+Q06RwGXd(=)ni>zi;)u_uPHgop;=R z+pV|s-F(xHH(Y<+wX3eV`l>6hxcst}mtJ!5MJq16VEMA8z32BVIq%%=#pj&8XyJmh z&OBrO>8G7~N}I}^oHYByStlHST-(fJk7;d59o;-* zx;*WuBb%m9ks3vzA$df7A|9K}M>&?EBVmdJ1Rkn8{IEk0IryLh52(dz(EazDG;!a3 zCX639cJDEJRqwgS?p3?(I(nC#ciORXR7Lp?We8HUxuOg~Dv>$_L6G1tLdqi?J#o{t zWpn!0t{AhSXZ$2)(YUg)*}g(%^@M@+dQ;vw7hj+a4z8R%s=vIdqC#8VKdZVLnfwpQ C#IDu= literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.svg b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.svg new file mode 100644 index 0000000..b1d2afa --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_punkte.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_sektionstage.gif new file mode 100755 index 0000000000000000000000000000000000000000..113d93c6dd8b135005b797df676e87bb9a567d6e GIT binary patch literal 1184 zcmZ?wbhEHbhkxs|bzm4Sf*6e!s#*c7Ft zSp~VcLG3C^NwZbTC@Cqh($_C9FV`zK*2^zS*Eh7Zv;>)9WTab^lBQc+nOBlnp_^B% z3^TzcwK%ybv!En1KTiQUdYPFiR>sCI zmL{&2&aS5BW`>5Y29B-#@>9{rvI$+t)9jKYjf0{@vR*uV1}<@%-7-CyyUJd~pBX z-8;8$-Mn%A+SMzUFI~KF{@mF!r%#aDv3%LmC5sm=Trhv$+&Qyn&73iP+SDnNCrzBt-`CsI-PPIA-qzaE+|<}m zUsqdGT~%38URGLCTvS+)pO>4Hot2r9o|c-DoRpXl9~T=F9Tgc79u^uB926Mf@8|2| z?d9p=?&j*^?BwWRZ)a;`ZDna;Zf0s?Y-DJlucxb{t);1EF>tv&&SKd&Be*V&c@2Z%*4pRp!k!80R(hF1gIQgVD_{yjCt%cG3k{h+hd8ZE@hdOB+h;H9w!*NaY3jnupFNlAF$AZc R-g| + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.gif b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.gif new file mode 100755 index 0000000000000000000000000000000000000000..4686042c2fb05afdf1a64a17cfb29462ae81f361 GIT binary patch literal 1218 zcmZ?wbhEHb6~Abs$i;Tpqp%9W}skZsAp(wVs37(qhMrUXrOOkq;F`XYiMp|Y-D9%pa2C* zb_zB{DQQ+gE^bh}ic->Sl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai7Nw-=7FXt# zBv$C=6)VF`a7isrF3Kz@$;{7F0GXJWlwVq6tE2?;LT&-v*t}vruy^#5^Kg7`JJz}FYQ(%f9Q>f(~1RD^r68eAMwS&*t9lv*>cZh>BA zW{Q=uv$?CQg@vK3sky14p{s$TtD~`{xq*qLnWKw^vxONMv>2~2MaLaz}{ zy`ZE33Jxom)S}F?)D*X({9FaFm#s2!y2acLr+HAlDY)HYfK#u&oq~-%C}NQ!8YUFv z;s#>EldYWsBH^dzrPwMJDcRdG{{Q#)&+lJ9e|-P;^~>i^A3wZ*_x8=}S1(^YfA;jr z<3|r4+`o7C&h1+_Z(P52^~&W-7cZPYclONbQzuUxKX&xU;X?-x?BBO{&+c72cWmFb zb<5^W8#k<9w|33yRV!C4U$%6~;zbJ=%%3-R&g@w;XH1_qb;{&P6DRcd_4agkb#}D3 zwYD@jH8#}O)z(y3RaTUjm6jA26&B>@<>q8(WoD$OrKTh&B__nj#l}QOMMi{&g@yzN z1qS&0`TBT!d3w0Jxw<$zIXc+e+1glJSz4HznVJ|I85-#8>FQ`}X=mRK75<1YZzwZr>O( zsqunk9EY6C$GPzf#X1reEU(;f`*~xBkM#G#l~b>AA3t3h*OJ(tYN95{pm0E7?u59b jZv+EB>2BwUo4)Ck2VY}&`q_UftSl9C9OervF<1it>O8Ss literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg new file mode 100644 index 0000000..4871dd2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_wettbewerbe.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungacht.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungacht.png new file mode 100755 index 0000000000000000000000000000000000000000..05245c52288d6b7c9d49c1b04db73e5e190c0b91 GIT binary patch literal 1282 zcmZ?wbhEHb`}gnv|Nou66Bw`o#sAz9z5xm@ zi6w~ z%1*XSQL?vFu&J=B$SufCElE_U$j!+swyLmIN=(U5O0~)>wgL(3D=C1Llw{i~If5h< zKz2Ik7o{qg>KW)J8<-g=m>KFB8k?A#o9ieT85kPq8yM*u8tEFETNxW!85k%)fs&nq zO;JjkRgjAt)UKkGG+U*Nl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2xM!H2QX}ZOgc_oPz zx_QOQFcVx-i<65o3raHc^AtcPCMM;Vme?vO!Mu=L;Oh%FIIma_>><76{9OHt!~%Uo zJp=vRT#&!O9xg5kN<}yWtLoyA%7Rq=pw#00(xT+lpwu*FnC6Py0{j+%6c+gUTKN}c zrf23Q=D6f1m*%GCm3X??Dplkb=%r+)SQ!{v7#JFwn;4iI8JJlZ8d_L5n^{;m8<<9*)yk4ojh^;*wG`04;?(Pf8X9c zyLau}v3=XtEt@xO+^~M#+BK_Jtz5Bu+0rG87cE>cf8N|VvuDkmF@4(9DU&BnoY3Fb z+tc0E+0owC+S1(A*ic_rTT@+CSy5hAT2fq8SdgEWo0FZDnUS8Bnv$H9m=GTq8xtKB z84(^98WJ277~t>c>*MX^>EZ6?>f-F==wNSWYh!I?X<=?=YGQ0;XrQmBtD~)@siCf> zs-moDIqQTWAzl7(UtyX=<$6V(~^#Cq78X&SkTg?y$3AlbJM2oo(DKakV};nK_%CZf4Fn zbCR766>UkqA;wEU5(*MfsVx!3QZd0>Y@xNj*uL0+MM0DjNo`4OD->m7Hu1srhXd#Q zeBbw9IlEhu?^jhWuLJ;8C7Q()0AQhaD&_+K_ScN;001l_QiinREGZ~90&xwuBbYFh z4wOQQR^0LTqCnT^G#%a*sA*l^ba>CrP;eST@&ffV zsf^qL8?lXGkY;@<8)9LIqq(|3I2^8pewJey*3WQ$9~b89{5;FT8KYt_YHL|OB{t2( zvbC&0L~! zE+SA=sRYBCl{KB2HmTTPT*YEIn)OP0TB~8n@{6H{F^hIc3eDyFTwy0&v=Ea*4(_s5 zltS5RFOS9X{6YS)$1shv~P*zmk^xo5WS>_X_Lljd*2~nV2!=iOv zlW-SN(K@g-wyMeo`RC)$Q%SC*~%zjwH8;-{&1FTXMv*l9P1`|pp9-DHpV zH&m>q#A`?A{V?yH(NoQjwr)GHW>sOuU}f*X#F;xE-ph-xez|Sy{`K_6UEQNQHf?_W ze0bv94MR)oAA+_aX&`cN^;O^Cq$>`{?{zlOXduIrnRF;IH`~S6}^`xdi^a V(cd=``O5oJKtf82CmS|@_5^o6jP(Ej literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungdrei.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungdrei.png new file mode 100755 index 0000000000000000000000000000000000000000..147ed9e23b0b9bfd10e99fbed95febdc395ca4cd GIT binary patch literal 1282 zcmZ?wbhEHb z%1*XSQL?vFu&J=B$SufCElE_U$j!+swyLmIN=(U5O0~)>wgL(3D=C1Llw{i~If5h< zKz2Ik7o{qg>KW)J8<-g=m>KFB8k?A#o9ieT85kPq8yM*u8tEFETNxW!85k%)fs&nq zO;JjkRgjAt)UKkGG+U*Nl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2xM!H2QX}ZOgc_oPz zx_QOQFcVx-i<65o3raHc^AtcPCMM;Vme?vO!Mu=L;Oh%FIIma_>><76{9OHt!~%Uo zJp=vRT#&!O9xg5kN<}yWtLoyA%7Rq=pw#00(xT+lpwu*FnC6Py0{j+%6c+gUTKN}c zrf23Q=D6f1m*%GCm3X??Dplkb=%r+)SQ!{v7#JFwn;4iI8JJlZ8d_L5n^{;m8<<YE>3Q)CQeQ!M#e@)N>IHi> zU%h}$>=IY|?mo_rKzE= zrmCW>q^KY-Co3Z@B`F~;CMqH&FX#K^#)_>%=(?C5|IrXVoOL?9U_+Yty?0J54AuZgw7?kv literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungfree.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungfree.png new file mode 100755 index 0000000000000000000000000000000000000000..8f74fc3bdf7335ff160fbbeb3b94438efb6dc985 GIT binary patch literal 1130 zcmbVLO=ule6uv>I5?U9otXOiHF0#<~=H7Wf^TT^DPG;ViS28h99yJt^PG;_V8IqYh z&fMh9i$;S&RR{qqSWytvMO)~Pp{r0ZWMe5TM@W6$8 z59j;N`OZD(z0r~95A{CP3jjFO7}6~Oz~kw8>;M3uZzy*Y0C1Sq$JrQdv5p-Ppt^K| zz=m(PiA8L;`|5R40pO9A*Boc#=CI;WKX0co`NR)FYL$T`w4Eu!-~?%VL6zIQy2?S% zt#U7wOk{={ne>L{A~H5N(sbsg9NFatYOsvCrI*Fag3zBCVqt zIPt@WCrSfD(^OuFytWtE(>ir#d=jvRUgZ)$%)6eeAS@w_#Uc^~RF*K7B&{q-8WJU4 z#+q8pIQGNp1}@i8v0$iJ#<-58VnLJ2gJo40kc^B%hHV5fvjc}@c|Fg~u);&JiWU)@ z(Wpu3bT$E_la$eTl7>(lD?!tCydZt2-?OV$Cy_TxTqB}B-0834?UUaSMdLx;vZ$8o znp~($vQW@encKs<|EFhs4OaMcI35_5%w_3Ddc8OLHF$q{NZ?kvh#RP>zkm8B0N~?> zt~Qe&FPvWMeH$G-^}((7hWe2-`^VwgC)d|+f7iclKC{+5|NU~`G0i&7H@5%T9@M`X z{sg{r!{`2-U3&lZ-lfZ*ExvN@wSyt}>CCq)Pb|M^-MBb^_skE!bbp>dU_5tZW>Z;Q zUOKk=`G+ePa(`W$=(*E9b>hmErx*VH;`sW@cYk|ybnENBFORSP-GA%d+iwiryy$P8 c{i?pu16D4VuKv1V-$}Q>Q6JGS4W4}KKZ}rhR{#J2 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungfuenf.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungfuenf.png new file mode 100755 index 0000000000000000000000000000000000000000..b681e87a1b7da5e0ece82c18489a1eae7adab0e7 GIT binary patch literal 1283 zcmZ?wbhEHb|Np z%1*XSQL?vFu&J=B$SufCElE_U$j!+swyLmIN=(U5O0~)>wgL(3D=C1Llw{i~If5h< zKz2Ik7o{qg>KW)J8<-g=m>KFB8k?A#o9ieT85kPq8yM*u8tEFETNxW!85k%)fs&nq zO;JjkRgjAt)UKkGG+U*Nl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2xM!H2QX}ZOgc_oPz zx_QOQFcVx-i<65o3raHc^AtcPCMM;Vme?vO!Mu=L;Oh%FIIma_>><76{9OHt!~%Uo zJp=vRT#&!O9xg5kN<}yWtLoyA%7Rq=pw#00(xT+lpwu*FnC6Py0{j+%6c+gUTKN}c zrf23Q=D6f1m*%GCm3X??Dplkb=%r+)SQ!{v7#JFwn;4iI8JJlZ8d_L5n^{;m8<<n?#Msr<$j#8u)xg5k#l+3o#oWo!!o|ta*afE7Gq1QLF)uk4 zW^ZO@3QVsNUcFY%MX8A;`9&f5`8lu@5Rj2yl3$#WU!dR|Y^va!n4Fmh;)9|G;#-&0 zqRg_?6t|-MTm^9WT4iFf-_6|I4cXt8mL|?FPHwIyPEIC9#zsa;P`xSSgqgmbf{i{X zaUdlYm{5?58;A){`gRJ4%#)gzVyjf7WN*j#|KHy~zkmJw@%`J^FP}es{P6zW+c&RY zy?pWf+0!SFA3c0<|K8m@w{P9NasArWE0-@_ym0>9*)yk4ojh^;*wG`04;?(Pf8X9c zyLau}v3=XtEt@xO+^~M#+BK_Jtz5Bu+0rG87cE>cf8N|VvuDkmF@4(9DU&BnoY3Fb z+tc0E+0owC+S1(A*ic_rTT@+CSy5hAT2fq8SdgEWo0FZDnUS8Bnv$H9m=GTq8xtKB z84(^98WJ277~t>c>*MX^>EZ6?>f-F==wNSWYh!I?X<=?=YGQ0;XrQmBtD~)@siCf> zs-moDIqQDaV&LInSE+Iz4B3c}Z6Ios4PQO%K0*rnu8eQ!%fMSwO9U mIbkce(BuU{6B=T&G|!)WE$mTt?)mw=fQ0SbAIcS(7_0$&3Bt4h literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladunggesperrt.png b/packages/zuladungsliste/Resources/Public/Icons/zuladunggesperrt.png new file mode 100755 index 0000000000000000000000000000000000000000..5d64be1bd4133f167c77a44861bda06e8becec28 GIT binary patch literal 1134 zcmbVMO^6gn6fTI$D!M{WStD3!iHG1!SM|*FAJenWcF*h%*t?tFF&PXA_IB6IbauL{ z?XJ!APC!L-kv#^%zZeL)cv;Y!iUuNtc<`VgNyH%HLGh4)2#I1y=yh8?EFSWppz86y z@4fHUt2#P8IlgJbmJI-aO^pe|0ssuBYiJz+VB19Q1^{4$)mm(Zwprhf2&lSrmcWK@ zcZfx7cVYiEQU>6yw%2U2mbqJXsGqmfn0(@gAhq&n657rjVQ`joyg=jryz~PHJy+vC zE}6&-b<*`F1`(MVOg5dtoTIqhXa$xNHSt5AFdHU*FNoDdF2qPW|JQi|TQVW8L5L_{?0?U!xRxP8xk}GoC z8rNkkRC&JN@8|o4JdHX$Rum=W5QJRhwsY}9!0aR!#M?6lgTzkch0LP?Od0K2I?ptY z%Ov=rX}%;5;*~}@)aMgBBj5_w+`w;oX+F85dUR>@zNr26Z+6{%XP=}Ms{ zD?&l9D%=Xz{Xae9E3nL`!|~d%WG>67r`wmKUxBY44+&h2i@4FsPUqQr0Kl1sQEeu- zPg|c1e+4)8){j4K?znX0?|UQ9(Qilg4{6t0#<`!Lo&Mgw`L_DakDvZ~>HC>1{o;_++hIId*ZX_U?tDa}O4q zU(y|aO?^Ii|Nh0Vx7=$z!r$75ep&i#;`-A&cYfL&wh#XC(Zkk(xn%L51Kndw7jEA@ cd1}o&U~;^4b>zDfB>e#zwMk=XY~SJk0KXk{B>(^b literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungneun.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungneun.png new file mode 100755 index 0000000000000000000000000000000000000000..0ef78699ce63a5ecb2c61c20906dc91b5a69e268 GIT binary patch literal 1282 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungsliste.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungsliste.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eff3a45089d96192b44b1caedb6913cd7be13b GIT binary patch literal 57099 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Icons/zuladungzwei.png b/packages/zuladungsliste/Resources/Public/Icons/zuladungzwei.png new file mode 100755 index 0000000000000000000000000000000000000000..648efccce66b79cdd789e96e162d81b42a0969ab GIT binary patch literal 1156 zcmbVMO>Epm6rPexh{zrgIkZSHniMFsyB^!SvDez&XxFowF4Sr2ENX-Vs$!_ zu2V(_3kEg7eYF@Fy68kX6>SbMk}xsYq1x2lv^jF^CK;B3kYt6 z@YyoDUeuH^0d*EqSjge5jYlvX5p$xPR}^Irl(2{eED55N6%|dEG>qY4Iiw99CQ^FR}XZnvB3$~hKx1hH5wCLEHK4V`v2>iOJ?vwk$3G7uWsp&M|Q`7mL$ zrrA6%Ba}+;0>ijL>_?l8vY98uRv?HuEO=g`YeR6vO?tD8Eu*7WFQ9@+BQ_t})THg< z6dZfO?Gq(|fnjL-L$~Al)*NB>yhnZBBxMwPLC$d<4T~xkMJ10F36H3vsH*yis_Ix# zNm10R`IKWTY+l#ps$P)mbs39d9jgVBZ|Fp+RaH`}$|S`${fJw>P1C%t>!euewpdLM zsl{2?Vr(v*fQcE#Sv11}s81H4VcD*qoRjOhu9ncyeTF)Xka=*UznZ&6{)VD7Zq;2Z z=5eDZ zkD8>~iZ4HVU^Vjv?%y-`!qS&NAHSlUCGx+)^LLv51809(56+pH%%gvOg%COU$?(Gm zF6_9wcY62kw-!6!4?W)ZQ)cPgR}0&kPrZBLn-jZ^tQ{HK`Sypetc}0-V{hfer+sdA zs84h|D;HlMJh}YO-@@u7!~-uJ}4 zzwNsS_b;FS;n=|T)iamZKR(?5e(U%3&&R4)?|JgluVXK61BVX2bnWW!8727_n)PwA ISUdFcf1!(ioB#j- literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/Historic_City_Center_of_Graz.jpg b/packages/zuladungsliste/Resources/Public/Images/Historic_City_Center_of_Graz.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84d3fc3e68c56fc1153ee63613e6d1bcd79206e2 GIT binary patch literal 945427 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�UCpE7$jOCtratBpjlr+)0oOd)Lp4z|$ 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 EEGoQWE?R1MvqR}hM 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%0A%!x;}ide#~u$l7?SOiEReOyK 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 z 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 R6db1MpPYgBYPP0j1G>9;Y(=0?S)cjRq8)pE(r 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

oDywpGXhhtF7irE2_o6^qR^!}xxx)us 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Πj8?7HyffNNh{Yub=E>r@n}Ygn>a2%( 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�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 z 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
$omHc?#v04m9})Sp(j)b63g7PbmE zG@KSDxevF#tsxgho@H(L{t@)8^|iXT_+6{XZmn@~e{!*fQ^^2=!c zo@bD4$IFAstS!f5DBu&#Yf0gc5KADHt#(2`zcP$|w9Qk)I<|=ooz?Uzw)aO7valfc z?Oh4kYG*jM^fKbLGRjyUyi?xASsgshvIYPQXEiF?Owzgr#9SN$*0i+y987>=2?R5_ z;YB`e1!5}=HXEzB{OJzG!tGJkvNcEzuCaFx!k|7CPh3}H1<k+VFoG~@&H*&Ux;9Cnjn2a*r?wAtYy$yNg zKYyqOv39YfZgU7Co(TvchW`Lw38{=R zG){&9c*X(mSnYPU*Iry*(&{W*Z+Qlg2C5ym#Syj}b?2ai^&_%E4KCFs^e( z_2A4WP=*@ zG?zLAG2XBet-XT6Sy#CupcI}H)-H67bX#33MPYJqyZVNygw(bsbevA&&fiS%<+N6o zP{nSp+d%^i$Lm)wE-maL7Z)xPGC=pNFB0ljsOxX`c6oybMj(M)e~50b@9bn%k(xt| zsyYg%B!vnRlDV$cUV5WHx%v7vaqSmUX$I@4}V!Zopc%&)g^wRF0AT*sz^c{@oq z(ts29Mk|o9g7vjR+IR+HUjeLwO7CMqPEK^qNtRjRkV;?+A6ltWlJN713S6kls{w!ydd^8b%_5!jJz2b0r|2Nt&2tp7o>7NAdWy%n z@!YfS7WUCSqmPwYahmh#Ev30|?gM#!6r5(XA>6P9WZFUC1JG1HRIDXV^1Ce`8tV4` zC41;1ibCkI6vxV{I|{jds@`5tBfFIIIoiAhHHi(n!z)OnoYlR-@$#QzQBq1rO&V%0 z;xTyvEh7{4s`t<2S(hUvxD{Yw+X@d(p0!H$6FkWQ$y6C^8i+eHd0nHR(>zacdmXFE z8b$VX@(vq^_pZJhkvb_Wwa;VTy!8?_4H6BgG4-t|yjdojEtGc_;#+0;WXIkB^fgk4 zJJ7|xMXA~xv!aemoMScB#S%n{fOG%>>0I8KC5`p{ytelMq4}0J`_KH zWp;=Y(R0Ogx-xy6LQ=zXT{oH6pcS=Gb|#c#%_C}EVPJ{kvrvXZ)b}+ng&>kmQs(OC zb2YShQUcZ~MM?sDSdGfkD-Ij>H%b0xj zaJ=K|Rw7pNfmPg3YT+&XO?9dGhTlzl7h83hZuK8p^mwHUFO!8FWlyb7v#}DJNQ_3` z+3$3SeArw#=k!5)><$s~G~l{LKh zQ5;9hZsX}#&U}mxa_dh1&eJXKLmx4dlm`T6paraGX zTV2KWQdAE)LEH)B6_r|gXibaicHCS?8;6f?85tZ=e-h24#`{(|gX1HiTFZS!b~lzz z+=6+6K%$>fT~!Jx5f-rCmQ_SRzIUDE+abL&%HNTw*|*h`^2ispsn zkAAWMp`v0Hdg8Y%E+xB;c_s^=Ew~51DaxMBj94z3`r1;bdD>3Uyn|I%N4vI~DB@u& ze(a8%)V>PUWYauB8I4!Tomm{P2L~NSYW9^K&Hc^Xw~~lso>J<-4323^DhlIkLY=OW zt4S<&_fkm|3O##PfYPke{{YCIY2;k(+7D{zt`(yjUP8eXe8af)tmjXin>)GAYmwD$ zip704)wJ8&kF%1tPBxg^oz$}JlzCx7jP@NV&gzdCcPd=qQM9bAjKd@K6l(PvGjAQV z`ISVuj!}-C>c^dJZEXbQ87Igcdeb#)V>OdD7brmoHGw3Dcv4PR@fog)apprhLaldn z6?XEQfE;owu3r~v(dim|S8}FyED#w>>l7BkO)o-pfYo@%rJLlQ6KEj$50fO5*oQi1!jIi2! z=8Ggzo-OU?!>&Oi){n8o8JwvM2Hp=^y>F)&wA-8G#0f6c8RX}!QM$flQW7NzkWP6f zi-?jnB?MuP)j0|UOEu|$hKW_3SDL@2Ll&o}%Qc}2;Z9f3)&$ODW)l3arw1OjQCDJa z#VKU-3l`4f$*S@=I2r9yOvlV;C$FVOkjpXoSA*Xbw?b}Len$q3w@l3M3AblOm?kj@f&#tG*P(57jg9-wT?$(YBo-!H#w@Z1FX}g zT~gHyj-%xx2caUid^!!K{PFC=Pi#U0cxvQy$(Q$HFvZ{nys$c&>7c%X`qJJ{HBv-k z2V$nOlt9spp$jY@xVck@PQ+I=;@b%#)Z@Bfs~yT@4EGhX()_X{tA`^iAUzFd_{LE+ zzKk>YJe)y_gl#5n%|XmR}N9XPBuF6`c8F5*|F zDvYy8`kUNcxp6FjyAzy>U$zAERuXo|NI72F;+?KLk6V|8vlN6W0f6_X&v!M*JLKKG zhCYI+E)?+D3&jk>$#Ob_$2g_RfZw%b1_yKs>f05;>MF*kES7RjYk@2dnd{Q9Z41k> za!K4U1$1)7CH>$I1W{uRp7^ZXJ?ol9*&OJJk$lBLu=GBasiWyqPcjmpIr-E9pU$;f z&fe{!+Q3^yz)*VPtv+LtnC7qjenZX?^LOXlQrG^PEWpq##W6u;tG>MkG5o$VCook^y zX)@g3`GBLZVVZ-(I##83tPyU`zc6_*&qH2^qv@8qZk~xG5WLOznZ|Keq4I4ck?rDG zoyW{lrO%+^tZG4UOzkz$Ws#3Oa%*DV-V2p7F=S=v2Kga*`K6@pRH-xTNqb+edgzi$>Mt(eN&ZQOvBW)s~h_XwD}sY{fO#=}g~ z?NZjt+?2;9&w7y}K_{3751{E!j37_q@7AVR$pZrbuO_U>h=(u9C+kSi7e+?=uB04w ztJc=2@T()4axzDHyAGE;j*PfOQ`NiD1Cq4xu7zirMSyt;-MP+rtp)<#2|TF6#<)Ky z#w&h%6;p{=gN{Oqr7R6>%^E3~Ofa~ocEw@s3(aNaNJq@P9P>#XmA#xIS)@@K4ojYu zpDw+n=#CJ$x zkiQ`2x$hhJW^FG}d173`So9xs=Awn9x0)%?u#p%)2EA`nh8Z8f4J)-_Eg8o{JlhZYd*GV`eF~}L_p9S;BBTK(LZ76zHbEkb#7dH;F$n!}dMuUKO z=~-s>Au2Khu#!l{I?Ck91KW!~GAH5Oj-K^GRk^p^9RQ4suQf1=S_$lFBEAV0)^OpKKs%FZ9<-69UUJ45mLn=b=~v5QG&JM}0JluQc@4RS zImI^4?%PnAr++boZIC@hbsh}+0oEgi>JacCLK!y6wL#mCbKawNQINxT zUUSe?%C|&Jnlk3GbqoN=AahOM8mf7*?jT@{)Y3c5#t6Y(y)jhgM@K$-5CYT)m= zD^g3fS#5-pjmmloxY91KPD+JuU<>e03XXPkgLRxLDkLR`pdWo8l#?oNybFt9hr?ED~ z<xH~gFY~Y^eHJWCL3FN5F zZ{B!9`rAuQR?2ZQ4tB5bk9x*rAcO(1A$|=cdpqp%|reFQ4 z-J_7~bvWx=h*9E>8QXG#0Uou)nP1Oo(182%=~{N$_rOa`8kt_Vk zp5CIeM?_>cT{7Y*UTF%eFKTQPJ*4s6TguT&r#Tg3{{U1vjIQv59lC+?w^LL{?-*?y z0p6T%ZB0~{L(?=ZUT+Y?`-DciMcnDok?V@Tcj4$sy&*6=0Q?UYn0;kEiUgzzi21i@j3Y<#{^d?e&Ozl zqaC1}3~^rFd1-Uv86MW^<~VJXe(VM0H`cs+#5zs(jjT&!bqQ7+qxNy?D@e&Vp~X@X zj_Ac)_2b_aJ-f(`PX!M`PfC_JGQeQ;>IF`aaHNgc>&07DUjb;L3WWu z410&)^r&ub&C&#gL~)D&NT`0uvRs(raQPV|iXyw3M@>$Od+0@!kzGq1u)aX`2Dy8E zw$~w!7z4N~4hXK7Oz@O)z{66w@*JsjPwH!(n!wrL3v0J;B%hL19jV2u*%vhAu4s#! zC~l;@fP}dSM$ypc+Oix;A$yCHmTtzoT{A_rl@)Alns7(V;AGaUJ_*xeAujJ4S=eq^ zfWTjBFJVTTdmeig#EBGJLl6(j6>F{V_lV@unWvWBwqp*h+)L2TTKdp%H57?lWG#miw(&VAmb!*wT-A+#T2Du@5spJh{oHQxZ7hO zk0JK%CkFtN+Pc3D_?e(ox4M+<2WUOTb8T%R!0gJTcFE~gqari8lokFXTU}bjCVI8! zk#S~ajENlx=Q%j6(omsH2N}jIm$#m10!wQt$x*>QeXFmF;@DC?ou zN~gQ21-_oQ4ZDOO;{m-Eo zGoC4F)Et{JS!TP$_aC~q2M2Ez9-rci{To?y(F-g@VfXSHxAhOOn2obIkPZSN?^WUO z?X(VLXTmVf!Pn?&;?a{=EIz3B(_$z?O5c2rf|e^-ZT3lU#z{wRpjC@_SdS*w9gEPM zWA&;!o~a&%s@pqTLQN(P2Kpq}$y$nn~P8&Go8``;jVf=y$hQ(TU^o z`BC{|n|flBL~`5=bgX?6?X?R9SkrXN^06bZt;e*73`s28e)+bCKMh?OY(C2&21KmK)#H+8Xsy;OY-4#C6_sJCM`^9Bu{L32^OZfTHo6vd zn$5AewPscxWCwpvaoksu>+^~4kCzJ{LMzzrn<^$mEx2T3sTJqCwxOr#&2TQ2K@4`F z7(CFm&`jaH&{U+D7~t{9teKr5xiKoY%5jDm&0N2Gn~yT?C`v*bA+f-%`0j^`{>sZ^ z0^Hjs9n@oR^`g!?kkK!N^(V5KW|#u94=qzT#d-o~9Xah>b)Sdr6~vc!Axa#o4wL=!&$HXb zA}Ay@vTy+vb_9S=vx<@v%{Vd01v z&!tJP>1(U#^V<~#*-qU0)NE*c*Cc-+ldBWWNpEW(lzzJlXLA>OALW*tQ(ozz!mdwEsSqik$`gB=ZLjYbVd(mhRJ^Dpev1Oi5Bx3^apP{Va? zB1Boil^fH&I{_pY64+fy1@wp(Ry%f_98~rb$6yAXCEH0Wwo(walDxc5_O`o8zN{{TcOgBcwSQo7WHcTIh33Yl@R zvh^aYS$K0<)b#l-HI_?KPYSJ;BDy^{M}tHC#k_uP!CarTVTc}}R7zq9@Z>O_J zPUpwWKZI1}0y5yPPbEO;D$VeDteJPJt~gxLaibAe%!Ou!pD3ksj&WV5hBe5ptQN^3 zVwUQo%sd`?*A$aFTZmN(rtIz`t#qCYf@$xy2em8ZBw(`jKU#^}+M3hc?clsvn`l|< zmJo4~!2+^v^vGd_e3zK9Y_TJyc0MGQYn=rJtSsTBQ6}Dide#hgQnj;38mjqxXT56= zhUPVDwCrN*+P&_S$#H2KLBUTode<%ezcNZvA-Fa-Gk5i_&s4XH;>uX00!Imz1Fmb$ zWZfCsRH@v1bgkf`)~6Ll?{lWGx|dPDnPZXd;V4O9e(h~U7C2JL?pEeRU!Soc*9~WT zbrF&nX43tj?^-uEpXh4;0B9*L27JTXvvqlG-6FeG-y;pXfuaef6M7kKDn`2% z0op-UBd4gVR#J<=*3z&G{3G78Wt6zX1?SS5fx@xKRt=sy*48jO2Z2Q5)nQVp8N+Sw zS(kQ=Yi%6s<_Y)Vik<~aX?-x4nG1ynsi-Hv^K4NNXK^L)YHYy2YjbyX3fiowoqlKF zv8>%f+VL)6Y1Eb@4BbX)AtN!gaxmm%vFTchVxSH(YfjGB&Sxnq zgC8si=m%O`>xR6HaHDC$?E|G}&v17}F7&H47M{ns`bE><)H=>s$I8!KXmi6IyRm_nJ( z33Y^y;^yFdu#Q_kwdQ)%w$f>L5~(|f-H09sHP1HW>^@b{p{z-9dw$mpn2drEP;duo z#beKYD^pC>E=fXT2H6ye2^<0St2!rzZ~R4gJdk0tWAjSGfIX{aWuTmH^f~OD=NKKc zS1s)BCV;q!js{5sj8~~$d_K{|g}gAxz`}C!pX2tedtExl#s#;A2*}%yb4NL92a@Uj z9MttGk{e_JN%@_+0bZx!&kSi=O{)_k+}=VrI;iCRD&4)h#UGapYYb%a2UAkK5x~nO zu`$Y=hQ}@KQrl*USfQwEaySbp1aek2?dh85X1rM-!uXB9*5jhJ zbJsJfTSYRy;7(6`)7WLnrQX2j8R4r>Lz?#wYZITcy8_2O2YSo1NbZ_PlPemKc<=37 z3*rqr$|iyloUa2FGL^JIi(1aCQpxS~xWke$@^Ol0wzAJ}quX1?(+g`bk`MOJCbFX! z)}`+f-bkUqC7fUoYpS${TZ;%TWtm|{Oq_C0;Zw_GS2fN~Jr7vBx$+gEwo<&Das^_t z-H6N!s7@kBI0@6QQC^Do07mgz#CDz!9!~nr^GB-MlvW7SVti*Qsx6 z%8yl-!(R~OwUQ`O)SaNDV0?|wTA8%;E(x=SxzifP>h93131g9!OY!uo=GE0lp32x6 z+P~Jl3&(Nj(lEcWxL3G&0FZ<7;0p7-O7VrcmeoX!_fKF4tzxAq8C21laO-+shpfE$ zZG8KZaT;_L!Roj2YPz)7vqq6Lry(QgzSX+n?(G%>5*90zIpiAVZY`v?d`t4lo_Wq| zri@ZEa&1^(W5~`s5m&6{SWe(bVh9yMa#tjEJ!(YU9SZdg$JV+WTSk3OnUq^;Ej7it z5wIB@HyY}+e;7jslJ?UxExtDK&IUSH5vpF^YCmMMbml&)1~Pr>2}2}L1e^%loK{h% zeHp8E*e>pEX4Isb1!Revg5S=%ohsJG)(EDO(A>y!!HM~QD&pBxu`AHmQJ~Esv63cq zAs7Y8=8ClRv92CTPg8nbZty%}-D9a#z&Xmp!zX z)5U8M%Su2#hPs^>&hXvi*+(RDskhw2AcSt!$2w^(4^Hk*#+C1gCAqSK4LzIB0156$ z!Q49HwKT<5)865wX-Xg8NZnbho?HeQ1Cx`1S^9kXw3@ZRGrW3eav3qhW2P!Od5tZ~ zv^1}EhJ#dFri9NS;uzRvRSrp^rmTn>7yZ*RGb5aQyx@A8vTUtwl^Fn5g?Ik%sVCN{SxzOlmc-27 zY7dyH=qk)Jhl!(za-$6I*8;SSG>$rzT=z3IS9@Jb9Y8h}&eFKXYFT7r7$)uNxke{} znyab#Yo$DLIAU_anYtRshhLHnCMj0lO`F2B#ZKC=i)|LQSfsbQQzk!n0Vm$7*%r9E zh={^Ot(Ru$in9fdtFPQMpWVVbXT55thbNL{wlBZ{F$d)z<5*5{iM%=HtdW~zBs%Kd z>DIt~sps1V%iBF`rn&H;lTDi;n(7F^Viy3B)~$GR!IpX^q4x1BNh%zv#w)11X_#-w z^4YS~Q>z#7kyewAtnjANr>kB_61{4EVJmDHhf-jwpL9SlP zSB6kRkTcFrbe6M6a{+v1feJ8s)>Bs0(hs1ppvn>hGkVs(o;OD;js`%kpTl|z*=@MI zjU<{*ip!h|$kxhQYgcha8b=Y6fzt-LB|c|ldJ&H*xfmHvgPy~!2W(0U90SlAj^H}Q z8>lR#cI!y09x@++k-;=5hqTtjj>F3`a7X(zkjcIQjDiW^^%Uq;1Zuc!@-dDoTNsje zd@?cy!N)w(v0l>JjZBk(2_0$XHZm3iIT#f*QT(ziXFUhCSd7bYW98c0A2J6H(ht^! zNwQ^%NUWA}nfA1MUuNF{x58E_Z#|605awHa`JnKv>0OfmtVZAot`EZ(lg*?X8+P*K zw{Y1%-S1u0ZnGqEsSX%+qEWIil$&>EZlv?WbrcxiZ*r_8By>39ywBnmiv^v{lfA=9 zB-tV{(NtHc>IPT5wMckf*?v1$nt1+UHoXy0#iLE66TlQj>Py(;($L*VmR7M6@6a!& zdhGQK+Ubx+szSy@U@!xp3bE&Q{{S%u zO4Y}kaYmzy(9E{hlvrvu3lxmzxW@Ky2Wm}D?d^4qE&hG3 z#9>EV8nNK}P}5&tW0n2NITbgIqBgd=ZQ=~QyufE2h~}YEN!%q}wPSW|Q*Nx9ba1ms z(fNhD0h;rlh;vJz-Ck|lVb&E(9_q>3w>7;&dvv<-4V1&oM2a}o$I40j!nofa-fB9p zhqT%676))lr^^Q^o`CvR#ulE z95d+VLGw(988wr9($rQt;>V)&#YV)OfT}apfm#a!iyg&CBN;xmCZDB?$mMq|5cI`# z-6R$uw$kRf@=FXyFGd{Vq5CSycwvWk%fk{n*2J;PrCnOYCe6DZIsGclt)`py*ST^) zbvZzJ{3|y$7cvfubsX^r3S-Y)*G6t)RW|Id`$h+FDxKTJ2!=BwM9Yv*@QP$gBbX#C z2_xnwy>rS^kjO7ICHpv*$PpoJ&AGV(pQq`U2K`yGkRTzL^lmFc)w3fkxLgcz&0R~j zkIUH}=-IF`Dji8BVUgJBFbhDoixHX$cVIUp8f+SEhmPO9$!gH5GqPd-m@LVj`s~84Dj27wAtBDb0U`7To z!#(N?N#6eeT9Qa1FvdU(ovJ&_f^J$RjaO@6lg4W}#j<4^Gd}faeMrg_h~vV8+L~`0 z?H**Hkc9N_TQ<5~#-KlcsN37Zq%a4qbXsqQ^k^giPaWGHSduG#broigs#rE-nlah6R8;;=KaK-WeFhX3+#*PnV7bZ^3Ss@U*fW zsGO2})_&Se+BzM-RHp^+YIskH{3Ugy_?mq#%_X>nm0l;?o-1<8!@9a?k1gCvuL!_U zc_Y@l+lkss*)AEP8Ei(Y)koH;%YPa%3?5C{3_V3_?dP!Lgo9USo~vXJ?;a1eKIYB! zD_eVOXvw`t`AVKhr(D2bzqo-HXvr!%@M^}LESi3&ZFqPvxF?>XyHmQk=gvH?#>KyZ zwd?IUE$;48+8pn710|@}d<*ssF>WH0%-h77{&njU%WrpW4b(4{nL~^krs)i-*6uSL zgKGonS#z|>wb9^KO)imqM)I-BcDFnVp65(6OCyIHn~3B=5UvDl2P<99#ZQ$!PnQ|*RIYUE zTjla5Tu94=ko5+do9ZVMfw-AhDxBxJs&Yp1;kM@;4QyU%a@gFo6Xk-oH|^lnSs^g9 zAzTs9u&or(xlEm$^!zFCT2FO2iWtm~*eI*B*vyfOfSE@)Bv!VA5<;PwNPXEoh^d`R zEd*!T$*5><O{C+M{A%sh){#DlFCj;c>IMX;KYF*P3nUXNf%7Rf!`|ugS_~9p z8*mLpD!luPl;|vVL31dK1yL&WVVqH`MH~2fVq8e^5XdvoXPV_i(nqw$NZN8S+P8Fh zq}7&N28cTmkVk6Ot1Fjl7=W1Ya7N%cG?OfmUC9$LaKAR??@zsrt?mW9k+RDgVYA=f znKv>c4g;n-^{Ew!F0Aft;fmsTNRChnzIZiQHtw~pb*c-m55ZvQH%8b89ffCGl!)%y zS-|6-C>av3I0FN|X?A5mKQOC9bh4|sC)8HGhJzi|gtALIqXi{Y&^r_&)nm4|2$t*S z4mW2NGOg|UiAuW0+-Ehbrs+Ct2oiYKSzUUbg05Pyf)}-g!Xp#6J*sXNGHvwhh%J;n zn^a_AwLWWD?4(f`&OmIQYDU}VZ!(!q?t-U_NW9c$FK=xt6VL^!y|)fq>_sl2b8{-H zq-qq6p;s8LuSB!BmLzFn0EXNj7^mnS4w~BI?HYr}2vfL5=OousZ#3xS@}fs~#zsaK zv8h#TjiE+Qp+ziJn|#t|Cy|`hxZr^X<3-?r?jPT+P0(d3|=+lq3tlMIA@hr)-iw zV%R>ll$`CWI;qow*%xQlENreKwoJ<-jNyA#T|--*8&`X970(IlRN%E(Zr*+~q);7~-3vVxbWt(+a)F6`Tbyy+X$^ltPz!~g) zYoaq!*yE{6P~3Wdq1>M=0Drsd^sRKeh2atzRY@H4*0}?!+cfh-e|#c%NKv<=AFVzu zL+qEBx3v;y=2ml@iqghL)%D1AXNEZ$RAjLP1^jE8hs3rqT3z2Q-=92hfe0AMsk}#V zd#HGF{{YFjbXHBu7mcUVyyL+-wv}zEqH3~;%!y|#UX$WEpwn%w^;r;Hv@T6WIPbVBDwkHMCg?m)zJCsJC}-GyoJU-emSjsIZLXXASyCX_l0`p z#-FBKXYD#=te)isd7q7JqtQG?8rnh<(s)5s{&lrHLa6OyioOxkS4C94@@?mbISzd@ ziqDzSNSR84tl8(aRfH2^sxr zDOn7Mp$DcZfaDAeus9V~Ak>cWqU7fa0+2h^Dcs9G@wg1<29ivo1ad>3^&D(Wqa=}> zRM`tsRG7v()Di8?v`2J*!s7%Z(OfVkTar+J~_%*z0Fx zw-Nm7AC-ny2hyr|gT=Ow#lD{r$fQaYj;;!Yzj4jU{=#wXDDnKKOy%mg(O9UkssRON8 zYjbmGPyhs85ZwoYzYq=k5g1`BWTiG`GoYr z=qoR2&{}jecRXrN3YF?TX%aS&;ogyHNY_$1Yn-kZ$-Ek_raMJhhj%L_Nj1ERw-0*)gFyCg^s53SVuAk10WN@ zHOt(1Q&okw#TrVxk4CFrXx^6*u>>5370_uKrM39`C}vxw1d!e97a7u5iE*h4+Dk*v zFRX6tWJS5QXv=ar;UY|Gt=*x55WbbEB-&uA{j` zlXA1JMh^zGkc*`9E){oy!S${h-t?nxj2+qJS5IMlB}EEGNX9eLu$?xY(Q%Pp<43qy zZX|_RM-ySbl?oua5XS^+TxTaZ&2~C>p7s-k3S=VzNgVrD9OOQ0)cT6Qs_9mqDzIHX{a5X1zqp)r1auYUwzpH*%q}h1tB%9HdJcuH!>vND zuF+hf`M@~o+*drQH188xN;8e5d8PJ?ccosvwcMKVZtxqm+_m2y`x)Vd>MsX(W zhW4tl#LXr)w9*s62D+~icv4RdUyDoVa}jUdPN#=oPpu}Or_FaDgH5$(k&ZH>IHbMZ z5egrB**-iTxS6r`6~4t%`&Q?u?@DV^h6oi%NA)rKASlRySg^1ZM{a~4_!=BKswc|52S zlu$l=dRIpswwtG*du5jL=pC&zgnXyID*cX|ae5whxQP{bY_?D3M>i_6J1J4Ryo&bn zEvyn->4B|b<8jX|Ou4(3c8#P6(!{$%cRux6SkKy>1cid02;dq;K+bYT?|Q|`OLMj` zf?5`!)^9$-&`S&`$1A-?2_E%Lqm7WG0>JeLr8#?mIUe+{g$H&39Oj#lDrlMjt+gSK z<>`S`F0}=Sv~cktI60)e^O_`hBzWF4o;b~8i3`gom`P?llis(dW^q)9D;9ZLR(E&K zPb0Ng4duy{B|#m1Ds8VUp(Biv+~5kR^0ru%%ManLj9FqyM&bzs<2!{zb98}YGT?wP z8yuRmcx@U;CbKSq;vQl*X75wlXmaW?lQCFr_LIH;0HsWc+`*pGDF>Si?NiiMX1CAF z8swg=PY3X>hSS3m+*~R_DVjCoBx4oPr-ZGbMM>se{+OxeL@1oLn{4LVID}-n9&4%n(UqrLVH%No|$c?Kx8KXpS(vE6uN}d$Wq0X#&)x?=}{+rjS?-LMCn%Y*?FX%O9NFAeRxS)GaeO^lDFOFjLa&CF{nv_@04XJL>V(E3#f-Z?>a`=hee9Z-oh z+!6|jbLeYGu7tPD?rYuYSGJcc9m-)HzFAk0YDje16$nD^Gt>&J;m;I{G&)|dx_bv< zwa+FqU3dH=SJxlD()9(B(f(v44n3+T%@<~C7^@s#f^XzqS?yINlg?5CAkQ`HHa;EQ z3f*c2V2>Fp$E|Q)0r8%R;hhrXPi$LIX+L(sIc)aNYSq@fO>=)2nRNIV%0!0)n(Uf) zJfou3ykTji!uGl)x=A)aCB^(eP5Zb{3YqOnr6OI3fmf$WVUWrT=ZxTy*wY1oa*$aNQw)%W_(LQ7kxr+23 zjbzCzl0Pi$i_>w)shI&K7pdg)P=!8RfSsp2dQ`z%a~AGt*h`yfAZ|}p_7oCJ<0BrT zpwl9_yuAxyX*J}VaKbe>$@i|qOzGgV1b&=zm50+9<|l2hLfgBoHa3j!c{|(&IWaE-^R4(|Hi{y!(vmowWQfQa`kKYMxR}^a zB$98H7v^kW1MOWcmHn-khHS4dZ)1ow10}gRsl23JNXDAbfN4M47FR}TnhSv*~W zk;@gkL1x20D)3*uY-sn4moQmFDVdApyLPQ#6Hn#ZqdCpFZIff2r?IWo(dWI-HkK1? zkxW~1N`*?Q=WS-gX>ocsAV1c+*ld#GP+@S^>^KDPDN1EYPZa@wRc&vYP7NW;0k^JdnF(3CJW< z67piqBX(v}^8?zsB}KM$#=KHDtYKY5Tv?6D8H?pO#tnJ&=ya=}vfN6>b#foxy1QLM z^)(Z)W<_1Y0;+4;WOqItn_r4In)(gKXvaApPo-%Xxaeb2N>1l9=e@hLu|lpsT$;i0 z1+A)Epp62^er&1hnu=@Wyh!$=CIBL-%RJLMq@jGY7zVXbv76UIg`7}*twqwGEUCy1 zgPOeh(!p&VrLbVA4hcD`m$51$$Z{B*VyKIGWnjpqyJS`A)P}is9wwgZ>NO0dh$?rU zD%@5I$`$1K*MO_ismBqDL%5o?Y~)II6P2dOY^SJM$q5@9avnkMDwJ;{U@6Gxc<)^> zE3piRdv5L56`yfp@t12@w+1`8Jc>$v8767{+^VkZx#588idI7kNYO==G(L)JUe~TD`QO(U%?z< z-XbI$i*(|pg7GAHuA+`Bcn}rCjO2RNnQoj~v9*#T&UoWLg(=Cs0^#JWYaqERGZxx8 z;8jgRCYo^3l8T9fs=Q*B2@w&1Ic6C-^{J9(lL;nNs zwb1UOGF$n3e5nd$yYpSvo#M|IYtm`DRl6mUDkO3hLzm;JC#6ekp-q05bBp+r-V2ip zIXpAxoK{j&g3u=$oTZP4V~%0wZkkuQ?K@FK+$j4CHU1y!_#ZLQS@85JuxlMJ$|sVJp~ zJxxMJn-u1@xV*gGcOgiS{_Z3=&$%^vD|J~6jmsXK^shIE#hQ(_wlA(+yaerdy8-Q9 zhyAf;TTe0XcrP0p*Pkzr^`xNUG|MHDHdbaEvBgl6Q<~RMw?$QG*}r(qGqh%wRU-mFx(B^ei&D6P z^)2-AETzZG5nSS`r;4>rLr6M(z=5HJsg2owU71HT<7Y%*=r?o=dJ1mMnhtu${8rA$)s6paOo2yID-7Mq|0qAR=;*q1g zV{tA%?aheKA=Uy9pNFc~&Pbhtih9X|FW~yp~bAV#S$;Gnz%T2UjRLjEpp% zm2NgU+qq&{qOiP-22zp^GwE2mx-q$tiYQk(OdQsxrKO96Sr>C)VGe5!3u!KH)&wP+ zaR(-xEVUCGYN2LD<1WB*GAp36ur}8P+SoIvDt-Qyx!@lH$E@p;wb?BVq2Pn}}ji084O2MN-6F+9fC^u6c#jh4q|X&x)vY+% zUFtV;NgEa;F*Yj1@a~ZpIT*<`ycq@zHsnNEj|Aiq+N@dJJ*@0wP|R_FPZhGdYuvOp z_VJc?>*y*CM@|0Ay!$l!M987A4|=IdF{fs0q~W2B(bvsC+&vF|YjZ(|%eS6=tjz2e zIj$c@)M19pf+glg`J0Y8t{TePBh|yyQdeZEILYZrhcUCFmR0nt zwwC^F%X#W>qk=jbt)@*ZHy3u(vH`m>WMGj|3OC$!F$rl9Ht6t2xEztVgW9r8sc&@? zB4Q?NIR~$$Ys)wjx-;)%?TlADe#iH*$s%B!pizP`Tc|5o;+07~TRMc4K`=2Yjoh<} zisgcl<$m@3M-`7{e3v$Ava^CXY;bZZ*IK+b_JO1#91H;57NW#n;$BboJM_2(5-CR6 z8Mxx0zt>{4jo-~4R?n3H<*O1){#*6aCy-1|wqqyS- zEfLENLgQbU4=IdD*<@aUYtr;NwB2{Z<3*Yf(1W=E>5*2gbUi-S#6qwnP=)7jR{GRr zTH2yTra~c5GR0T#AFXrLs;9BvMvI2#fr2Y=xkZf=fCVyMWQ7{yC%1nqpo z%T zMP8KKS?p}Dp4JHE48*x4ahj<#mL6}~?n@shlqh=AOL`!;St7MpmGDCzpc>LKBU4$4 z6PZ-9rvPN}R&>eCH>Lvkj^JUr$6COjQV5W%oD7~Rt$q8r=T;4}8==Zk}l_t(l9Y ztC-aBigqPEOZpx0vDFnM<|*=y19O93kKwD^c8W_F!vg`w%xlLE;8tDObs&T2MS4Gk zb$InHM)``W%$Dj#JD%pITMX$Zl%bYZBWeO`#r3U1OU+X5=ylzN&!DeM@h+g28YHgA z=5TRdQ8AlSp3cocGRn&r9lvffA03E!ZQ{q2~`|`IttVA z6QgS~K^6p7NVf5T(*SddgG<(I?B%|-@?J@1fTF)(O;(~sYh5Mv9qf`x8v+89Vn3C1 zu<5gTFszb<5vX16+@E@bNYgH$(pzMJ83Ekr*&x*`8@asa)9)Fc;xo82e-Nl(cX}Mq zEuZ#fi~jX4MJKo&Yj$UZG|Mv| zE@B`99A_NTdNCYFhpr&hV6m{3L-{ubRtz#21+O;oe!6ZoJKIPcBrf?XIK~f3*@IqR z40y`o-NEvccwBuAaF@4FdvwyjeD&|mT3tmap;yf-8!s3tF74pEK_dFh&l z+SRU|f)yJ+@HMrjY5rR(qXl;4NuCyz-I0?ryuoQL>fG^g*yMT+^tz1ZSoG-$4Ih`g z9W&2L+0;>>+E{ftIG=;ty1D-w1zaezw=^1 zn7|+mQSB1kyIkaNjB#7o{iZ$BGVdeP(y}C3)!Qo3s2N<099O5`_y7CEtIlcCdZL*irqm5sjr!1IkTB1o@m%N0M$xK=!21?PTx$MYlkD{KcBsB*l9O1 zLZS%B0P@Z$@ai%{8c7|hmS6~37PYPXMSXL14XWE)A(4XaU_y%HnwvW*VN+L;9lwQ^ zL_cYtIXT*+pU%2#O%Bq|Fv|)D#@)<0$JVB?R9PlT=Ym-gLjx9Z?kbk0sDrst%uIgi zBQ=LCuV!{qrA>S$NBkoZTk4N=*~WQJfQsjC{3(4tqcnEsHv6}3WA{g;bc=m4gd<4O zxa#Cn?C%Uy$R{kw>yeLNO3^tjjUF1DmZoGr8;WSs$jIMo#tVe`aY)_|mJ7#?FJneU z$!v7ZXU!p_TXI}g#Dd+Tw+dt| z#O`({tw?YH6smqg3gbOKlz{L~dJdwIqS%40G`ogrH4C#59004!el$gQ;pi@6g4a%( z;IjoT?Vr+_a}rN(V{XK@d)1u>!?9mmE$Yruqmz!uBDyKHW6#9K(z)H(vh4dRfU6kF zsN)0Du6Y~CYycLqi_0C#IbsfQN$*>1KhYSo;1%aQQ6^y>QHkPfC^da8gkeq09H|`S zSCL#rEuHe-L|ZW)LYns7DiG78i5i4FHhb4C2GZkc(@EY9=Y#JB(bvOk~a1BtSfDn*3&#U0J68ppzuXhThBfz3F{f$`%iCrzG6+Q z>(si4d8(zAa5Gp}QF(~226m5_0o&G+-tCp0!iI&^g>JYtQr}e(Taojb20_TAuJsXE z>awX3E?O{fM@~Iz&Ar!{113Q$^K+WVnnse~$;T(9O$^H%Km_T|L968xIz`kONeEYd z+T7FeYoM@O8IJBzMsxVrX=CA?I^2^ed)bFoPnAD9>7lT~ zM4EI9XxRDIF_Zb$6U0Smj+%H`OLNa|JTt0VTDAQ4#yCmgN#qRE+Q#idzm|NqA1*oK zy#`G^p^fdQF5!pHT<0~Sma|!Caoky2K_UQDv+`5}iq05^Cu`MFoh#sI=QzJk^FI-!z>$?@AF#8cJ7X$GBu*?#$#jBDC0tMIdm)II7yOhwt>Q zJuj|T5yy*n;P-09p?WWBdp3P&5ef!uYhtNnM$m7-Y{B~{MV^sQq` zQZb$)oOfj{eTlq^F3LHqpCW79=&fxRe9Um5cB|LdvYTbOb`rGz0CDlh=UGl>GP4vLN3*w~9Qsx5I`vXjhTv|E zx;LeA-Wl;1_WiVpI7GaR;Hdr~>srzRRDr?9K9%R|N>*oNqN>2ZO0v)st#Re(Ejj5SmqpmGLL^X|g!>6%M- zNtxi>FvB^jI-Kh?*o~Xy7-Bk6Z92z1QUVxsB-YM1MMvFdLtwTLL*`teBN$Vjrly{2 zN!1OafsuoX&xQzu>*p_<21}|F!K>eIv6vX*wM8IcZOvOPi*Is~`-> zz~EP<>C-LVjc0PP`F>*Lsjo6I2bAX>J8@n2hAz#{im*8)t=j{?2C}d48&h8O%lA(r z+Ypg&Ki>ZBbH5VwRlD%Dj;8|Q;9r{uIL}^dr*+*MBOjHxBR#0p>=*kcO(@7-+E`ep zv8<@HwG2dCc03j+T@`WzD-Xvs>45T%6@eXi;)l(g%(KG7V-*k1Dbu)XK_WR}y98#v zIJD8^P7W^2%Xrvr&Ko?{sBG@10$W>ma1Jt~AR3K+Wn6*R88z4GcY@N~!D%AnZ#dv) zqNLnbh6f{aZGD$}h-6)zSgr+Di0&*Kt~jpuP?~*1NjB=y%1PM3j9}Lqx>fVc@vMBu z!8J7Mb1g%lI&O?erzg10ThpUCa>>cyA4;tqys0mg@sPx0Bc^K9L9Gc{0p-1F<*}1Q zcXqdBiYhaA08^m0mduknlwhFz)wOLjO=_$pEdHmhNqmvsX{@9ZB4v?>B>PrsqgoWU zGMxm=BE;*v0Oz10ndV0n!X+T!bzfSJH!BF=!#816XJ%P`QGz+*sVkFXK+W<8U`sZ6 z%`e)U$pv%IVk(R`OfsNy-nF1(mQsj9k&X{amaHpSqT!K{?EoHs3SkNvivh<^dbv6| zvQWwaQ;&MjnGYiv2dz{c!D?9-vIsy|zz2mD1a}US25whBg*2&&mG=zew>1lpK+ESR zwNi>LBx^x+B#<4vp?nZHz^A0UuL3UDMi@C5$gFf=6K+q`8nUwiJWQX$Fn#HAAvl`g znB_iWDvreaRKS;jAD8p2uRYq_h9mFi2hy%ZJbro&qznxA6`O$zLOCZ8kO;`2+N`|MB#x|^89eqCQhUXcL{>quPXTzXBCL%r*?tviA>X?#vw(Y%RAiOJ zfh53&Oj6;sXLbxwDAU994S3(H_vS3aQVkIEKa+a zt8HQTYMRJIo7@KHCaxMXqK&;W^j%bgCwazGXaz9)`Nuui(}r^8z84A3BBMPkQE>boEDd zG^*&&Fx17z+JTUx<7*L@X`uZH7ZTee;f$tArBO*3)TheyF%s3_lX5mwxHW#(X)WDlKsx08C}rAkPXyFwDbu0i zwz-Mh=yyqTWh*R%W&Z#pTbD4K)P+o;S$j7-g?YZ8skWbXfdFX9#Ea|iUG=rxGx<`+ z0YWmTJt`b*1_rUB{f6o8VO*dYWe4v2;;2LTSjHXvdtpfTcnaq$7n&+n)QDK{5hV^;yq7SZM#NN z-A*(9^>rQ>@J^NC$i>uPT-`X&p2I(tbdCGWhUi60eGp2c=sMWKU|+NC2spy_sWFCIHT^uJ3MuXnJ;o zXtwqcDsAAg`^V~QN-3kBHIg?BjnImU^3+{hJUiJ7e-fM;Ks@B0den1C8o>T?hD>s% zk^?GQ54AFHQ-VS2J5*j-yGIT|jGi&q6anR)A+Uzp<*saDF-0pLI}gIS_~CSwon?G5 z=ns1LM6k6G`40+7A8o?8j~94L$RFA|YJnL409h6)Cc7PUYkip0CC4^iDU#u;1`UX{uP5x`kma$+6L2}70AX(3&5-K{f6&GktEp-)MIkC z@4f9&$0Uh!Dp;3jNRR@jqYqlQ6w{f+kjT-oJ&zxiQWn22&Y%)=fNFF> z6qr17(=@{7)OwuG_?<@O7z~50I_q`igz-aO+r=W>=EMRQtyplq-F_xaE{$OnT@zt-+` z35ie^BtLX_tK@B=Q>c~hPN0x5=W7r#=~@jovuwsY4S2@~P@%}j;aJHevlW;jjwSx^ z?@`GkNZX5G`c}M`6-v!L3#u`-NX|MDUEhVC%I+-OlJ`;aq0azU7$a!dss0nvtlC^X zt;$M-t0Bq9@efL=N0}I=dU=yMP7FZ%T{COwVp%<=g$#C*>LyubIVyV^(VBSGnU%AVSvs5+G0!FZu$f9O za4SB;Tzk0XVQx@#Qb%giO6ue{V^(XEy;;}@@sE1TXChJ~b{mf%cci+y6L71Iql4P0 z%W}VHjJhxwn%O8|f=0oyx*WRk? z4H*a?NBcsYA52uiH6dJqo1xAz=}?&pxFDSM7^LSta=4*?TIx&@>HZkkW!5x@vRT$0 zMlKdc=W^ALw%b@w=S_Jv?a299N1O`tJu3El9Y!f)&gE>Jcdp-3@giDVTit1qTY1wT z-j-fe{VF9JOG89<0%JUJvhGx1I3omBE%oicha`DjCX!it6Tlq$*C7v%HCTj-%#yr~ z!?63cO(5|viXQ4=6VDC0nH|}-r~}fRVAIqavF`d;h^@5`4K3`>Jhu%PC-{gRE9bk3 zHr`xKkfE616IZNXU%t~K)2ySNEw`2g@SvUzTDS0por5R#z0A|f+=$~m53Nk)81*eu zl+n(8ptPZFqw{1u5IL@s!~PVzd&ur}cu-m?-Q_XCZ%Wx~ojXX=WHxq@Gb-?QjGxA> zTx(EkmNv6nNWr5(lSX*?s}6ZfWOTy~7;as;@hz5?&1(W8s*m*+!)W|XV(L28#msV> z8A8NLi4{(8ezlxzL)@8U9G2Q~T^EM*D;xN=E2*x`aKKVFjaPzOrD~$BsWOvWY*n|m zy}z-R`BhuVV5BL@tAA&f-bM34Lh2g_xURbY0K>X{jgr||>MLhH)@N+};kUn~VrrIm zSDFrkcN47AEM8Qsy~yuTD3?yYwr4f0u}eV`E)36xBe1OLVVR(7euvl7Q-k!Tw-wIw zNi*AcZp!BB27)$Rqjw`b98~s#IaTI?h;8R_Ck3hx5BQS%Sg?IE;uu~#c+?@=&IMZE zZxi9GQY$J^shah{{TbkY?c@{CYGV26~8?jmU(|wN3;kS-B57&Z8s+yZ5g6*k(QtgL zf#h(f*S%Q`p52VfdBGh{I#L&JnPXyPP!Bu`f;)nNp+Cgjl6VwLENWQ}&>41#GfR|3 zTib`W)Qrl&w1^8F@tUV`B(k7pMsVHv=C4^n9PX%x)lkU$%C^MG!1Sy7gcdttF|pjk3^7?!`7suW6angc(6uCy zrFXUjvME!san#lEF_I`uZNCEybB=2ha;$rcW^Ca>?N@Cs78@TR?A}P2_7^A%Ze4-1T9veXf89?}8H<2d|kISaZO8bWsSf_WyRm!MqMwVFx7 zw38~3PZ{bfTHRui9sK0LA9lHTC5_VsKyY$B>sl0x?7<=?HZAiUR7w^EbzTy^x6-_8 zYpA@b6b%bODvtT-UAK=fw5>l#o#wxbeCe2?QFMkHaG ziOx-Jc%tX~8^c;>g`rV2sTeXz)FwM-uy?dEMHpk19jiIk<=ApE|Zd)G>EB3+gK_@kO1B&37`zBM;riMp=*2vhFT5ZC=ey(~El; zQ;31VWA9PVDQff~%ek9#;#-S(uOPHotNyCN#IqBz2g z^c4q`80T*6jB#BsaY)6_p+ZJyJd#-T_chdbN5n%%)nT`o0cj`;CmsE1bgvGX37X_= zQZX3*wTYQE!f0d3G|mXwOdER{`Kp z7YO5R7g1tR#NI@woF79~G;MO{PrRBr92k~NADgP?sm8{aGw$Nbw*;NUVEt=b!n*Xj zW%}A(vHK&Q2^rdJsl1QFQ`wux3NkVR@JX*Z)a6l;Za89g?mX4=rmQ8s(dpBtK4EM| zer4yVtW8%`g3=;Hd-MD&Shm{y$4gk}m>D9BWD3iIe>4 zAKpvmyLq7iQo|IDd2^`UTU*H^Y-bCF>57X`({CcX0!7O>&m8eq?ey)E`S8lZNWN?V zNjSYpOxB%2nWIs*IQ~($xTqqxZ?yT+bUZG7DjRE;V&X%IH((rft7`FQYq!hO=|?fV zV|8+H3OT{fc_y7|?{6rYJ^O*&S3PO55Xrtb450DvS7Ek$$zz59uQMD49qBg4qPm`) z9-(7p;FEQCFokaI*eah=4Sex57cj(+a~mQ|SjUyXBQ@(+`WB$NR9bb^h~+@?lXiAj zns~0}W3N4}#DulD3Wz!nVNp&kHo~h-Ss74B7F1Sd+PvT#R=Zy;u*#tVkauH0*0SS; z*zUpGj1|W^sw_(afHBEqb5F9di%tzOaAjf1 z#&KO;hJ~cw8~JqkSX){}gCXHb_N;4Ww0Wa><1Y$0^8n~qJl8Xo)`pHP5Vwf#bel;d z(=J*gIK#4aHO<}0aXPP`E6pREk1(9$@vn8#wA~k6xsH85M}aNWaU%`}E6jDDFHrHj ztWhC?*;z?Z_*S&vD!7`l4x6K0+FM6+a|0|>;iK9?$g5`4&AEA{Vv*y8907{#qto>L zA4IY@az58akj5K19ffk*wx%@#s|+gzz6l7ue;VGDoRC>qihWMj#UWb~##SFZjrNg5S9hTu9?M@53h>B8Xk&wA*xT9V8gX-Z$L&GQZ1 zf!`JC-Wt>np=Ts=@gjV{XZUN$mNFyH9M91{o(k4-k1?e=S)Q_Q zQY%gD%&Q&&+sP!>Zn-q6CB5`9JdC6v1F*+aO>4N4bs>R`h&k_ zka`Nv#;u!o_lQ*|NtFgh zTurP_5+XD9bsse;PB2$vj3qZ@iXIHG)%CqfTYFrab~%!EA0mBCcDjFuG)*S&&%3++ z*3@DomCx>w_WISkRd}pE#bUo^vX7Su#_y@Bsc#%^#TNySE$dvf#NT7KmJ09RG;AQ# zuJ2~L`xU%5#B%B}xksR>qPw?6kzz(?&s=t_w045xIgx-U!zA;^dc7p?Yp6|XA>Q+; zn%qUs<^GkI#;$G48gIy}d#b?%=@i88kQ@QnR!VrmPMsaA*|C~GmE>NBp0%X|!+wHh zwF_|=*ulpuO=xXxBa-1(IL>zxMn~mDWf-njhpYFK(6PQb6L1G;jJG4&xy>-?(OJoH zs=3KxV*@0dcB?wRuc)0WZA#w4SFz8RB>Q&Y9^$$9(A`BG$VosxP~C-ZN(~s!YI-fs z+rs+n@=Df-i?exX!?r$CUB1j8QCudIp-UubJ)?%WBP!h$YoXEZ?~>M7E*3c^jzXoB z<$pTHtU0wq=26_(p5$6X=M^PE?OcbBWVn4SU08){FyKxPRXFQi4qjH>Gw#X2QP5Kg zTZfW6i2Tb-#qzEbusw}k7`X0pR+^T_lR!u9&DhW6S2(?TRy&1+Xb*Wu0RVG8o~A=OU`=WfD1-VnVa!ap_rOTG?kB zM;TJ5g5B#F#^t#hwzI)9O%!R75!;7as=AK*JBFFWGpHdk(0XF9V z8C68G?M5Ga73k4jCxm_(&v2l9qEVhtB(-DA+p;u^(52(uUfS$OV{dShGBzDS^sFxm zA~wEt5){Ly!qT_<-34;i(>9=EoR6JX1&HL5c{SPiUthHF?u&Al7KwKy)V#-zc8b#0 zRvNn^h8w*?IcBzsONmBhlM9?=)E4%S9@}Qzv%7r6j%xLfitn%dLNxsr${QH3NLd*` zB@}hVbvmj-*YQr!i3w7>mxGbsvy`l92sU8pniJaVd+n#VkV%lRZX^?qc&k_Xbl3J% z-$I^U=A1r!oN?%DR>I+|E+V;sM1?bzagMdBmaIH0cGE;!eMQ-seW@uXg($f0ZFpzP z{{Vz~%gSY7W8CZy@pq?c@=0xGT^DghB%F7w&kC#9*?oy(^2lJ}81fMHHMx8o z&6OU2;-i@|ZDxG`0OPAzZJyfjGaJd+?kD@T$J|^#RR9~-NzXfB0WQ1mdX@J!YPd9V^NI# zYH#fejZKz&#v91_RYo?7l<59;W}Gj{!0%d7SX;Cqqlj)n)SBCLX5ymmWyfzMge-BB zlT5m{lGrOr{p=DuS5+OcQ441dr#w_T#hTBiPWyj&r#TdRH*1mY)$DU_xxoj6+){8( zJJLo;wg9OPrv`)OZ(WEO^dr);S2nsz;__JZIO8=N9OMq&YTQ;5I6K?R2iL7yHjvuJ zWHFZA#^P&e)0B>B*NQXaib+lp3HPg!>1PDZDu77gdeqlQVuB`(fiB$_(w}nCy@KF! zPBWiM-ZVR$v&6oHme#h4T@^#J^(U~VK=#@+lR_rt#^R^7Q%QtJ?GA8^Fi1UXnZCdK zT=Gh>u~6P#LC@n<;G(oSb}+n*5+&QXjE&XO z_?9bM%?fy~#_hu~HZ#w)cjOc6rEEv);S^03D4w_fLyZvWhro&+iwxuRb|o2pP%d zw}aDCSVwa-cB0%!Li&n`v1I_Bezjsa*qj^#*CVxAk4`g5wO4n1imQmr5pH~e%~^mn zN&{^pryXliY!zeWM&nTw3d@h-&OsDh3l=&Y`jlp1ful~NIHvuI-VZV>oDzp4Z(5oi zPUbsSw^jf*@efL+xsLqgpIR&gw?AbLpJj}oQOh2ts&;n{U%8f5o@-bna4-SR zKPu9)@Wr*Aw2{d?j_w94Miq@(pWd49jk_=XgMC99*mTABag(>2=HuRUrna1 zT5301y}*JgmrqAKOo6eVYNT{HVFb13Jr!#cS(4`1rKPjs;$bH7+=`ee$>?u3(mHb- z){QN!v%HTR;ftJ;RP{^S=ro6d3&~O$8x0t4IjetexYQt9>!b-hz!v~@z{OUZWU&=t zkPc}0WuXnH6q!!aC$xYeX&js#yUx-0RC<_sQaF$wnDgn1pU*0X3P~JvsP5Us8;k52 z1E(UiPEvPfT*)gBf+d6n!61wS(-hM@ZU)C2x9$9BwgyPsY=%h{v4THZy{C9`=5#Wp zsmnh7@4yv&oyhixrbKXBG0DYmwwV+UvhL&^+%$3X zO}V$z%0?ixP{D|1k#K71!rPctte(cz$A~A^ygT+N>{>*AL$dU&yIV;#*i4rbTd0=_ zw44#|QA>2z_VL6nHmaQATO4{;2Dg7{ccx7eGZ*s9DJKMxS1M{s#!;@}@SPF7^R;iW z$9n@rBhD4MC(@ZBTSt15waDH^(3QmaLf$12>JnTCrA8p`Je>Bei>u3Zo*5krJ4t{* z=|pJ7Y)tFap6t1(%_`kQ%E}@<9>mrTsdN(SA~j}ljoyNrtm+o+f+fpFbBy<_3(ZmH zmKRkR&&)bzwuB6B`kfA+ev){8SQ-|W5*3fp82izv=$fXBcMKPntX^ad5l@&lN3Cb* z6GriBHgn`#$~?s9q0M%_5b-XnqU&&J`l)-}IYwf64t5U2W}M@xtY>YE4MRrM^oSz3 zy|a=SrQ{YBNRrA%M?E>Op*0w7buAjuNgvB2W96@&?ov1}q_+|)LmQP@2X*zV zY;R7lHsz};+4S4Rxq-s64C6c+^nVX{f-ex*JgXZd@$n+|t`AZg4Ze^q?3P=b<{^yd zg#)<7Kf=wa+g?X|X^8E&?3B5}H?gd0Q&U=<5UXZ-Q^?UFkPMaN4|<{ET@o)DX(=EA zJx<(iTz?p)({+gTF>x4W`$TX4uRTY#SxKcwM~Empx|57oJQS(DORDMCMh1(2;!|g9 zqF+pcFm|H#cNythliQm+!42GP!ty$C>s~Py5cq{<8D4uKgPTMC86g|9InPgt6Iw>S=}3uN2vF#zZ4`=+NANF+fE-N7_B$? zvQG`iCaX;k+AVHk7~SQP0q;u09%*-X4ZL&PTiPAd90&BQs7Q<$3jE+^x_g^rHjwhd zQEni7oyQp-)z8IfW01V(_mUDxu9(Y0P1{IP@5AuO#4Og*?I-<{S{C|{C18TraK;$M zoM-D<{vDMid)+=n{{UYZ*^|(Y^y@3T*q|1cDAKy{<2d@)Jydn!pp4C$38=!&iBMLekH%h2L634U%#f#>G20$9 zpK8gMT!hNRZe;`I+G}B2H@Ag??uFwYDef^`-lw2!R=ThRW0r`X-qpz-RN7|x=-GDC z`%Tm>W5LV@zZmo?^IGtuGEyg<>~9k!E=@r>ksE3DE)*E*~)TgVnyY!zdUDj$j( zLh1e>NJNaxEme~}1817(rxyum^f<9|i;cRTc)%{wNXX`_+D_`Oi6ZZi5&@`ZjCEiE z^%VPCMiMK66?4>|TI+hF$iAlhm;V4~u?Er=a-eyD_0M{yHG6xRjKV1unF5?Q8K&D@ z3u#Obh6S+19vYy$v9w6tqjHRyJ9CWIDJ1nmxY_Q2ykuzx);P%RO_i4AN~?0C0M!JO z$ZWi1s}O!=tyR)?`Eo~bv@yxrD^}7#RZ3 zAbCQQ<_V zCjyB{^Gg$)oaUGt1E)P}p(9j<{wyywEKRk(;3pkwAjcz+Ij5-v@U=GI<=}15?aTKDv;k7QbhUWXxrAhXj4vYgmZa5=g$-^s7$`$#By^s1=4v z=M@_XIr9d4A8IZp-Sj9+7na%GxE`3K3RXWc7-SxmG{Z46DFlPYDybVt0FHXr^yOmW z?u+ry z_BE`v6IR&KyAyFJw^e07IXvRI>&s>mZVmG}$aUhh#2PSV zrPaX(?YW5o>F#Siq9>;?U84p1t$GQ@GC2p3YsDi$KbI*aNQaWVS83r-6sU7ycOhiY%I(^+mf&^QS8&;= zX-ONpU}l+*w_Ccp5UfEN<07od1a9jgQ26_#^r-+O)QFB4qqd1-gl$3Eq%E~eISQka zN#d}l@nwy!uXU%)$g)D4loQJzO7mY6c*9!OU?>r+tuj~T&&~MNC^j?GCe-wubuR28 zx>u3_3vD?4YQ}+cZ*!!l*~@?0$~j1Rlt6{Tey*Rer=JVtpX!EZ416+HKL&|SH< zUH2OZ0Z#zb%_X7GsfRU5n8RD=l`;EjevDbzQisY#i)eMzolfi4Tqo91!>kRA}$4b=9qO(I){ zX|s^)`sSy5+pE&3ghOo1Pa}`1sbIIZw28!OuOU3PD&njnjCy3(M}5Sb5R8Q=ASLoyKUM_V*m(vo_UEet^T z7*+3{YDi43%&4K5_B9wPjq_xRluNU0k@XyAwdO{5A3mcj(vAB-01OT(t2~X80^>YY zZ@kARp0tAl_=u`b!)Y_JQ7aA3IXzBk11FjgpPRU$u8g6gR3Vgh88uPCj$xCBJdk)a zlM%b6YHy`q2Hlus`B@3#y2p`ck9cvk^MPJ}D~7l4k}^$R&~?m*vy}Xq`B>IC4#y)bYEV_3jxYH3z>0^#OTvq)bXLH4Q__bYQDYiaz*4|P4oW|c^hoG;JRm804@d_^ohHm+z* zsLHXVFrvpAi~yq*OZ#TiO}rA{BTc;u3=EJ@dY4JEeO5{0SurF@mCqThi;W`TZyrna zDxtQW-4D{DJg!YMSEA6dt8A9pBDcv|m=W}H*=`1`lkVQie(pJ~BJZLzsO_m{J6oHnoIw`ihvp>U3TBUab);YFRz~K~ zLv%wskDF%RYIN50+bdOdH#bvAyPOY|cM;UrGV`?V)19ff=M}UgWvRzfqm!}K+-lZx z+%UIU^((T4+2;9U9=vy__=8f`E%YmAhUGrZbpUioQ)rLcxlJ18c|1jGyW__pm9PfV zE3mq`u}Cf8xO6EKY>qZOW6)E2G83`K=$06`c@y3=v4{j8~bW?Y@d@i5c+1~;iU}!QojBvYY-qOj&jiv;h-6mEvl_=$7|*}0M<^mT3JE9B*BvQY>ULJA z&l?>?_AqK%W#x?RwkH@Q9-j5$`o4-Zr@6C|%j*&K9!uq1CP9FD@mqU(jwox z&f*16C}7}Z5$#$KPhgq9iBAE+Q_tyDm0xuBfpZ~jV0OW&B0Fb|^MzIhw{%S{=G3Ot zr(B^wyIgX8>4>+Y*u9mTY?0%+VV5JY^sQBC!tG+Mo-$W7vBDNc0Y(YqH5B^1Hn-;8 zVSAaCcQVE^fl|s!`xhaO1{snFi(|SDYi0z7{{X|6@C1=%jg+WEg2Sg3%tx%rBL%n8 z=Q0t-@r4K6*8ZIh?YxoRT}YwTfib5{R#KdLo5qBixqno+yV5i(8>@R+CJ7&s`QU-m zCcI|eYl}^4JDE!=MJqC(Ju_bCT~4r}=02DFKJ?a^zZ!gOyA-iIpA$E~OX}QnKT98>=S;w(~l2O-i z;2LgL13yf=Sf(;a0~}xyD^B9=nL{cZ#(w_*OoQ5%YX_DiIw~kZ$Wwr8E#wS=rebA0Z(zUYrpkOl}Ui8;8cMF`$hp@RZTz&8esB?H z;Jc1ATX2^Vo>^Nt6_kOM21Yr~1#cZzqGws7z0{U2<<*He4Ck8cGzo63++8#(TntB^ z-u1+2HyO+-#D>8b83PrysQ9|~PSz4zn`q>)MB0j+5^>(SDnps*bW!C`-a7Vz7KY;H z@s>iwvzBkrR#vI2X}WdHZ=%EYo5^AriMd$LI-2G!<*wT z_cSp^zN8Loo=HP}S*?1odPNkVuwya3)aLs|_HqIHtMsYv6v_${!8rA)zzl(#x$jNj zB81@kn!(Msac{YeE`=1+`B{9CxUlJpzinY_X@DVDQL`+-`CG8G z+@$mtgPq231`aq;RB!Co_S_8}7GV zq2y!FCxy>ytsR5h>Pc$o?R4YiiFyI+P^^m@;TBZDA9I}h)yLJR(zV3BvnsL}e6u8j zar)A`y@ww%*0JFkG{iS7{{X{`WaB=Sj-?@kDS|=BtuuG7>k6`5T*)LQzEmSbr>?9MVnf*i9?wYgrGpSRXY(A+k+HE%MrwwvWpjzJ02^)lENonN}ud87jTN z_o(kCFwbqi4e~~uzHvf^p>lP*yDckBFs;O6y)w$}-g1n)R~++IV!YmR&Cc&yxo2+$ z#M1e!#ddt#dsdc72rnaO_DK$1_wom&OC7S9ac~$jasX~B!&^aRY@4KKRsJmYsiU{G zxXsjP#RmWr-m`PDqHP!m^3(2{y_4hOb{q=O?dwR zi6@S2c;6`qW%-7A#aL^ZWK$c;=XWD>7Qy^$68>d&3O75U#^NhfH)|Ib;JAs)0>keS zRxPDT8QMT_P5~mY)>etOuscYtohIH}`1ZLG#vAXN%A{;!qjqRt>X%lUYUy^@0d3sw zXwi8;TD_;6$uxHIpl4KEIaSFO*})HnbQ@b}ZqQ97)I_w{&cWQ1RB!aw@cyfBbEDq0 z(A#e zhRW1npj@7N*343bR8ukhpO6nqj%ZyctC9vW?~l{BHM!yM3u@jbxmcluq+oM1 zi~(75+fx*-%*%aN>+Is#mdQUT86=A6bRP(67t^iX=F3}9HxmBcG z?2c;gEnTtVDQDEK+$oM(iIIUA0>#hSv> z)>bIR1gt(>A9{a>t@O#Ym~HP_kt1$^^)>4eOK+#!`4+LHaUOC9HB!@IMonyCXdW5X z?d@95ZA`~+zm#4{t!Q<9E<0zlisf6%kf8wg9cj{Paog$lmj#>UjN@-7n&fm166WW_ zbBF^)a`NZQkaYy}QERP7cFwx``o~YVSM&EV8-k8W{3|AXb^!`WDR+_1QYGUbT5t9_ zvWXB12a>k6L@JiNv>L)~K^G4|AJa8^`yJgpQBFPkDCPf^Du0{*T zdlcSyPNuznczooR-QpfmUZ8aqUiR+GUhU=PRi)B5={23mj!lZ zThg$fb2wfx+n%+n9nX_zB(gBt(e2u&y<{ojO5+`JdBtr>TXURxs>yC+1Ln>_J*kD6 z95P_AJc@B<5|1o?@SZWwYUSmmuuM#`ymH_c3^AJ6MLVc`)h@U!!#T}Z(QOv-wh4?t z9OoQSZeuceau5S?pGwhtp^-ANRy43d^$agoMq%!S0q%ai9^WM`#uxl6gwk}>r=7_6p-NaIwBc+TKG zYb2tO0qi>ZS5dfb>9d3!QKGP+o ztn!?!nG2smQt2_nWf{GZKYQkUx#VNsqPMWTmfa?Nh=AcwVNbjA(Uv%wuvg|id971h z80vI)wsv~tPF+k=x^@mbmG8l}Cv-AD4NVj^&J#d8`qhi;z@^$)ay1fzQ4uuFET z{{RoXDw6B6-A!>fmunty9{`hC#V31;QgL=iY`StosC|V=kxPzSuHN;%bpkXF6qv*a zRWbCeiz(6#LGGI@r#nV^)3lvtO> zt1@8Vk~&m7Eey9j`^8!olMjmCSX6JAd9#e_46zX@nD=C#0jBr%m% zW1J64>oj;RqSIh|cz{V$a*^*`ME)F>*~F6GLJ*7%!1G&rHnRF=j+PL|_KBk;E8_qy zT-Q3XXLM~HY{wkZGhubCB)ED@esgHaVppXG;Rt}-?^6`!eE8%z1EfGQ$l0QRQ{r>Qk>2V_Ze ztzAnxm39iFHH{UNZ!=ErWRb}{^{ZSKz~c+fX;p}IAP<+C*(A0wZLzMqj{vBq^M?6P zrs2&>P#Hi3s-KvXO#_BvN`N{F1T_u-!yEyQMNeyR_Se?e3yrAbc6t#}LdR@?sKYNA z^{0r71qGFJ*i_3^Vxa8qcRE+uXTH>t1=G>MN#r z)+M~T+XdV~S)5~$(z{JV#=2FQK2w=xk8+B_G*?5ib>56f(b@)(E^>Zhnu;rkEar8d zM27Y%a2*OD=gQowZ&M5hay`&_!-$ z#HSm2Vyz|6<#jb1YiePJJBiS|PWvzqdb-3xF@yl8X(JVYw>qYxzh_OcK(FSA^Xbkj zW@)07tx!vwaUhOJ)p8q< z*y%_Kl3Y)6M(>p3w6UGVGo$J2xr)j&v2)U)TbYDHAfs>}F>ck$=o-|+RMhP+hT^V# zw{AKfl($|bjcz3K%8RwVq|pafJ5VYr_N<$) z4>pJ(iuqVv72UPE;L-^gZDn7X7#^OK?218k8%$ma<6u-7mtL;;iaoo~lMhu!Y#j<6UQzJb(iipIq=bSb;+upi6 z>upBr`YcD@lmgZsd3}Jn0`5z*g7%v#kYOL3=+a^IW0oJsHA456ROX6j=XO((k zM{d|GwE3tF3N^N?#Qw2*|^|T9%ObtW7;fXh~7&9 z$gPwS$m+^Y=Hxn(HM;)*XW84w8+9-DhANfK)&13l!~*4nj*JEy0KnMxZOqr5$RmNiFGEHQDqcM z8bQEe)Yhh-rR#nuonF?;S1_SfU@!;cP$q>GMdZ~O&2b(}M4aG`Fik&oZYDu4sPXAG zyDjiI+ac+ZS@$}v#Ht!+0Pe`!>sGY(7xq`S7YU7^$r6#%9jh`Z8sXIfFFiS@8FwU< z-ZZdqsJn(3<0RErkEVIR;;k){+v9m3F~G$z!M;o!?mdNQq=0p$+>jRX!neze9@W^J z#+OdEk$~RgoE%pj9hK;lZ`tHPc*`y`T4rA(O^PQc&4}~))JdnX8;YseQeF^&{2*uYRT z{HoT4s@>@Fq_E1y5ahH^%ICinrv)M++C2*MK+|=kXTw2ozcNUNy*lQ}Z6Q=6a}@;2 z7YBE}S%XlD?$R5mBl#ri7qwnlW4Kn0#_lomdRH8$I&aAAhb>sy?sCts$8U2TrO@1f za^Kyp6p}d|WRIRQ52&s$#rg%_mwGiTC*Nx$;lVlEQd#(dMYS+21~*ZF5x!7Pr+d6;}x7cUtGKd6xu{k$}K-HMJ~_Eapa&cHz!_YK8ix!Z#aBdJdJM z(1MnieD->T7dgpR3da?_cG6mEjv@ITW4%b=5Nn+l;ULPhGY0R)Z%ZrBq+4EX^9*0Q zYz|k_rfT|{Qk9u+>{rGU_KBg--o|sqRbGT(b>wEHwX%0bn&SHfhY|M0MKb-J-2(;# zxUOckJw)`m+<0pFZ!~phKkjB6E;_Y$(#IrY zW5!gG#%q$Sd1P%)ZKi_rPqMMq?XN9_WQ;Jt$y0*eDjDUD zTP2=I*t}mUD%i=WKG5*T3dpJ>>&JSP2E@wOdTf!-RTD9ce8kelrK`%y?7Pvo0uFOl zt}g=wW#Ho(J;i3s`)?e?><1k^Yk1z;lc^QteqF=H*#kN0QbTglvMvgVI3|+#iCrYl zbJXUdX)?+HJ9`RkXg-CuRW~OLyH8aW4df$fkQ0F2k7{IcZ<#@1jAJ!qqRSbHn`-wW zrq&k5SSz^vx%M>?9Gq0F32%^{r1z%e@8tFCS|d~6#XE zD>m#6$2caeTV<(!n|Jj%?{FO}UM zw9(~%ceRz*Ad|xiRoA?cOGA;ut`H=PF zgIs*Fr7NSe-K!l>C6x!_YMsLQi?ps3o}<>gzY%z80)4X1Be)E*16*s456F6QJuAAM zMKpQUDL6Af4z9rR8yFd`he_2ugss<%N#vOt0l&&-!x8K%Eq%bq zx72kQEycKyFjg#N>PV!%owTVfF10&rfp0naWhwHX#;9ppli5!s(4)M|lzVy8?)z5U znwFueX~|`F;jNVJSi3E2%9g}Q%K8$giR><&(#uAcIHX;S@;?N6flw{0ZY3mTOymM; zNbS}T0LLAwR$;eu6NToX`4mL)N*P`kB;zaz>r@7%1Cm-?Kfm&=K`tTl(}dc0ZsUsN z3ZK6g7%|Q|M!4GvIqFSL9z#96;WDas6$hxQ7ltO08YS4@#D}r1OcX%9 z$m1N=aywx8w;epbZO5CiMlpaho+*oyAo;oMD3((Y#?!kTG@v8!&7^ex(w@T@i>29Nid z<+H{sNi8gM+|gZr@B2UOd!tBaVp|wFHJ>m`hAa*l2N>^J@JfpyVyegoLs~YBk9H+6 z?TZ}&;@VR72~%Y;;Y9fS=E)j z@#-sJY>^$%p&0%iYg^e3BC={qu;tD%$31H%_V>-oZY0#YtZ!=|1#qXFn#qz;pP7`@ zB)2P4XdS`Ilev3}UoaUMlk;@zS2UdyRMi*@Yf`bF`Dp(DD*koWS^PY-jG47N)tDZu z3BVrJoa)9qml`sb#~Wijsd*Dy$0N9GVlkZ8MGuFyJwir#k>W4+iw<#J_JL!fz$X?S zL?#?B%yP#*nXLQmW>}tNhCQct&oV*jSjuisM0CRrmgPuv%X?cG>~SfPBj#spDje2~ z8l-w|mMma)xn;@T7XW6c%*OWENYbmyr{_+UuX~}QY4J^L+ewdcL-efX(zh|!1lqDQ zZ8a-f+ez(w!3F00sUO5UjMfG1ytfxC8m?F#PHKBiKVyBW<$i3OcExEJ#!QMZ&BtDX zpFb=2N#wfJZJY^bW96tOP}yQSR4sBNibgHKI3Nn1HYJ)ebH9v%z^YdenC<4+q_cDb zsihUn?!r%%Xj;*(=CfwIjFKFH0rahnRmQbv71&LRq^qx?u18KcBuNXq6lK8A@S2j= zSuGIS&34~2XK6L3vQ6B>>lRiuUQ2sefZdUd?OtlK+{HhhQq=jPBFVhtIPFzg1*O55 z&U~C>3@RJPnt21;uvAcXwOnb~%5~e(7CzS%^f4GfNmV|0`wGjtoq-XE$c}#twXuU{OzQDQW@&z4e&}o(xAyh8wu^Geb{vLd z-m1pYD+y&mCvLRGX$Q#~H30_hb8hnMPn&Yb0*SHzZK0rQ#}f2rMA^_p|S@`V_@Tu zG1jKIh`}=>j5R{!ASWFKdA&~Mv9ICj6${3|GCA5kD+9;+Du2Qwb8i%G!qJTC&FIG` z6}92n+j9`OC!MCWJV_GWX*X7Zo6NX@l@t!7b6wQl$Cq7NXU;3P%ZYfL&O6h3lVi3MoKpa;0hqV_;zRhshjkrKPYXG*~ z0o0CZqGv<6bq6`mNu0ik3Wj$iiy%nv`T7(f4z%bg&kyRWtv6cClpGwm% zf?!!dRv7?#8pgiVHG6Q$W2eKkbd${I@~<|Y=cwL?OFYrscsQGa6bSaPZ&CjM>aPO4 zwUhf^e>QEWep6t`73(&qQNHkIqi1rAw}Fh2p1Zr^ynXK7BUfXI3myD+uKIV>@~bOc zyY_~5k}ich&FP4C1re;yE3VNK{HV{Jm)s;#lJWb|@TeAH_|?<}NIT zOJ-T*INgq(^_z92$aOIaIWfu3_32tA#zDA28DWqCt1Y%jOe{{-IZ_S{OOuFRHlSOwk(CAyELR=G=i)g@yk z$RIIZ)lr?9CqJfIwf*8p3m^lR-RWI)c3Mme94TOq!181r>nA~y%Es1Mo)FXXiBAU^ z=~|Os0%4gMPs_+*(v?X{PePG%Y;7K5h7k(3)e5-j=~$O@Nq(0wM4nv9(Dgq`lkHMo zUq+vLHB73;cJoPNb3fZoN0UVVXtFzsu%B{Rg%NPfY_No?lGh3{I1{J|w)vCRLYq`-t4VAo6wCfuqWH21C ztq_)i$>d=2{J`#Rm4q&r?6#hKd*ncPUrLoPTkMfK54!&Vbn*zUSw*pAIH`VC!<^$8z^v^)_3kXm+Nz(!j-K_TpK*OL+PwOjF&%HlbpDBKezL)Rs9KNSN?(*0dVu zg@lr_WaAX?^bIoK{Sj3M0J%L)WZm9IFQbjwO1C?~zyzA#mzn5-*E$t^q-EUiBamrJ z6b-eH9mP@816{oT03*o^T!{v7D?-ai)OD-q;I@gQvW#*6TF(&{N*`%saI7+)zsT>95V6j4Kc6cEiLyrf2v_Ca0MybEn^ zkgr7@YpxOHRy9#aglb*^)x0$%(>y}%+?*t+PXpXhE|a7_pKEarB)E2EnOyza_i3hv zAhFKs1e^tKhPgiwd_Az$AeHp@`xV3d*+KHLqEWc)c>be$wn~s&GURsZ1#_1y(#l+@ z2RY-`wB&(pt|W!rNXa81WjP!ghUUu>sEzVu;dtp&6rs73Mszbg1(XImy9#cmhwVdd z?0J0VwIa1TY4fCg(kS^|^PNh_y@0H%DHh)6&oUKw)a?NEsb-#QsFGP7iRfzNuc1iZYgnbX9&O8PBjr>X zz@>`vJvIdiDDwAUlh0blg8Jsl6-01U4u-8O5S_8)m8!m4n9@w?^t5`TWiTwH{IhM&MB#O#&&YVZ{Yh^Lyt1KI-Tu; zTxyU>V+yRMNDN9}qOWsZhlJlr@cxvoJ}xg~*(W@nJ)x6U88SPT3>2N zni!yFR5I*x>s&P=?__jFO)D3?QE`9b9bG56R~B6mDd1Oi;j2k)Gz)8ct<0!*#k;DC zAF`MQY^i zO}n0N;r{@IQ6`mZb9a7S9C?z&k%N)f0M}FmLf`DxQ6;UE13OoY~#D zv%;|LSl3=4(=-dqTT8RHHXMQcBDHQFE2v_+vXgQ!-xDdtCml5^F3#r-s_UQdkKDws z13clm8R)fkJyP3Pg)bqD#3f<^pK71Qz8{ZPzO>eqVh2GS!?sfvgySTE{WRl#j!yZbX;>~W)YYSRQ4ai~U zbyL==_iZsH;~~2z4Lq=wu{@VoRFmFK=VAx_IMN^IYYa_pM^I zGG%+0`z`D@q!7+Gu=KA=(e;6w%K7Qs64VTK^e_zn~Q5W;*M#O2*?-*j8!Jhow@R2VpVb!4z-i0SWDvB zEath0+bjrG@_zWPWRYh>sC}x>P=YH9IIf{|V$w5kGv2V4J5;c^6EiK^{oZ&7+PXV9 zBeS%I7+JQc#!2g08s45+)_Z93%y7zk)HIHY6XkYdSmj1gs@E&I-#)^U8S=$c1|+eYz7ZRg~Jw2bsL zqB8`B2l;s=eGPP8F3_ZdQcIg<+Z#X6?0ssr{g2x%JluZzF~J?{vNFD>pEx+PErE$+ znjCLN1fNRkHFj-xLw#!E<_l&UV~Qf#XXggFpvx>u!=M;HT405wOe!;k=L3){OQSZK z67G)Wkh-x`fO{IW(nKwkNX)D{l^toVX*1hNFO*kc$S=lzm7dJ*qjpI=8qRB&sOWCo zUarW5Xg6SCh~(6PU7AS|f%$>=#X)a9ui26&4d#GG>~qqgjNDm9I3PJ3=D8d-v8OSr ze#^Xhu>SEz;hKX|xG}`H4{f;_KXm?vopS#GZCD%}WDtFG+N$`G<+`x7lHM(rme`H? z!7e(Qx^(r_meF1-r?^x`l=+R+VxW@E(WQ_QcKzyt%1IVL$rkJ$PI?Nx48B^=xlULT zK{*w=R(ctg?CwMpyKW$|?fO?$YjO^Z_W{Eg*9V_oE0D9bxw)TwXf~F~EHEpiTUhO( zwbSCbR+8#m$%9IxOb+A1FfNnf2{jpttIER!oB#>MVtCLb7fYttUcJzrgUG6KHy(nz zPZwK9W$^sji3EE}1pxiyUU6n-OZaApmz7u?o(`B9*~hhA4Vwu~1jJ(Q7MM z^gj`6#?tkq-psC{gJ(Jz@3Tu2AYxM5bHlJ5F;$z+9bji@O?sv+Q< zbj3`uVs(m4sbT@|)~B1Xud_>bQjXbG#D{p3Imk6?D9aELb0ZvpI@QLC8y#h0nE8;# z;J0kkE$+>=__&D_faHZfl%3w=O)ZdH>9-oc+HGTC8YmiEk&Z`dhgl-_8x2hJBgC;y zgTQqdH6(Wu#c=aN%^R^`Sx;k6vxn`vE~jL8^4)G@bJIN-RfDK-@wu&^~sGD)i zH)vvpZ6uKYw{=EgbaJWKIzr1U6MDX^H z40k_jK=PyGFUiegLw0TMEatRsA#e-#6}b#QW7Uk;cOpoo89PryT0t^gnQKSXW4AX} zk)kw#$xu1Ss5E)*n^3y5lQG8GlLw3+YNq<7g^r*nvlw^E?HuN*Uuu`WYE0lLkd)j9 zBCLa2);M&{PG`Be^CK#8xc4=QsA>^F)5&CjNiRTpR2S_O2Hr=QOY?mB;8hJ@Rfw!g zh`Utq6!xYD%(|;u+Q&FR8G@3){&i(8VYIfHSQcb#{sd%K8*{12e`gd5SvC!)XzNt& zuCL^onoE{w_Nw6f3J@J_$BE+;MmL2*yzS<>`|l9TCCPYqC>#vdIzud{%#4@;mhRh^@>wvpLEJT7{5rsRY|Zc_0wsLMY)*dC^-t)$EhVlvVWhpl=yhx`QbLl&i| zjj&6|1ofoVlE+2W1=Y668ICq%pv6L#wnMSQ>3$v5HEE1Ck+VnuXY>NP-9O=rwA*hl z1aFSLg=A>@<<^I+%X1KLlc`b{(zL$WuWIk+sA%FKfbM%$h=*M8pZp`5CY!3f>u@Bz z@?=fFF5K{Q_*Sj9xf)+b9hQp~%yCGvAWV)y?rEBKi*a*qkZKo`&1#Yv79#mw-%9E< z+Zc}M;*3WME?ty=T8AW3S0LAvc#8T9+uKEgNTS#fHc96^nuZ?--`$6uq6-i?86B$8 z)vOXWSRipDDa4ZwGwWR*lj1a!Nw$UAX1oYPDxTFG#=gQyT*mPJgQnbE$!l`R)5g1k z1KYiHFvVe|%<(L7BztnC9zm{fNcQ*daT@KIQ^@D8g3CH;1VmBI;Pus2`wa;&U*}3N}epSlfy|Mlr6)? zS77XEs5Zh?V-;k9w9DDl8+(Kd56n+EtlQY`bnBed z5V^-n-Ayl3yPYSy8*+pl?L_I>1v<@0!IIS;LnNcjBsBIx+k*?=g^DZOGlhYLq)N7^1r)qZU@AshrzHAy2ZD=P^Ey~e3by$Gpj)S#XhfKJXZjpp2I3>8IUTc9+QoWETk|$lI{Z z&|2&M-NkdVtd}uJ?{T?d=V?5F?Mrd0fDr$UWAHmQ;G*jyCXD9DM4**pQ z&k4h)Yd3Pr(TfOn=*G)c)Jd}o zg|uG3opbu1iY_i7OG_sEJ*-QG3VT)Zwkz1Hb)k5FN53~ucK0_=^7%``AU^exsp#5P zo@7%w+`lsUeGOJvuC+g{dgmDYYL2;Qccmn2e(dtg&~*wvwRT9B%2UoHeU`zE-cLUS5W|6=N}+3bV`TEv=kztL1+~7Wj@K>_gSW0QX--x|CRj~U z;^yrmX&hsaamFgV_U>Z2nbSK-B#lxf#f%}O?zk<<}gjCzcVe*}o^ryzzyj2htYp^Dmg(lT^||-hUydGAlcL#X+X&x^>R0 ze73eQgDj1bPem2429B1AA#=WTB@RzRQ0$AjKZZ4H{VvVz=0tcTZO9*}t@t(39HrkO ziQpcUgpnu%EHmnOrYqVsyS~ylkCz>VWhkj`X$p=z7raxeTwUo+YiS5$Da*2&#kfRW zI^1p9GLM*lTGkQ#%h0c=H6`_g4dC0IL0oysbRs$QB9s>{h^m!&)~7XZDm2k~<%DH| zzRpf4y@W$@(J9=Al;^i<%7RG*vc%+WOrNN$Ybaon44!$%rF7WjOsY@L%0>w3iqO%S zeig^{b9IIf`YeM4eYFXREcbB@E;@Sok zM+Y5h&DvWGHM0^NbCaGbjpe_Wb0j`%c}jN-9!NCh5|9K@6_0NW!x^r5C3Db(z0%FJ zrq1fxK$$5ZAbVG(Npg1v^4-;!a4K`buP#tZGj0GV$t_-?qq>b2)Ay0e#Q_Yym4$fe zb4pcg>_To}ZH0>~AxNKZjz9S z?dPvi(x+Vx2xN{=GDe@w+@K%3ir;5(ZqrW6&yMGs9Fs|-XknYyM-}!7*sGFhmWv1=NUosd<#H+?5F$*_ zO28t6g2*s2TL}^*dqU)%r`D_8!jr+}Oo7vI8$rfvK5b3ClI5|>T*nZ$^PyH?hXfOv zf$iscQ28vO&!t|~P-)j-K^cxI1~#$JG~0RZ=4LIqm3t1=vu!J!5|1mhGp;R~1p%?g zUTU;#1B?zwt!>||Ce`I-%Y(&X6P%s_KczT3p(0rGoSXyPioY3-NQg{_11BQ0;@RE) zxD}%dFtm|=RxRDQqDYw*W3sfCEEw5xIc)c=%k4Ss3c8adWc}bOOG}1U*&`5{=qh`g ztB9mz-l~t$dWwXa1lltPn*tJ30f&0OrbPEDVO0!93f6={8pJiisRQLC4B%Cr48>{Y zM3(`4)gV6Hl|8Atjp$b76W9wV41^NR)k)^E(s?DicXe+s7*IwtUZbXXUq(+49a`&F zj!Tl;0(Aks4P|R)-YCVbt-KD=0L)U2MhIo@I2o!I2=_MzAi+QfoK}&wv=dC!)AbiE6itFbJC1savv+R{ zgM-1RUBY3PZtVNi zG03QLMtSIZR;tX}*F?_QgdN1P_2!(jvY-G5&t2TpB$hcj5QRR*rNa3D71`W+nsy{C zytSM=k}`TNYQ#L5T2z-I#x~-y1cQIe$Q7$=Ab6PvQP2MXUXv+Frdtun%fDwHqLw*k zj^oUNPcMufY8WQpAy1s=yB-BjBUO;25~Pge4)l(s?mr1EE*QC(w*(K@HQ)F@#}F-y zx)!HvEy8q-!1JWt)$EhWMLTgHHjsz;!5}IJJKu-vtb{1q0MchMn|E?AV?=yA2%KN`ijgY zWY$oW^4yX5ip|qCX+&nqQ@FMQF*Rn&cK+BzxaGI-r1M$Y%nwP^t>WBdXv=4)6{Bp- zBa=4ji;M*g$*lV+0$Y+_%E%`)<(eh7nci6ySFDUW{VO&y%nsnW*paB?XzTdYCgD<7 zK`L+CouAgZ&0|_y2`xO9XGuP381=vD`exFR6{9#i{}uXjw=A~S|GJA~u-o~!l zu!7}o5rK=L$6uvQu60G(9UiBsjb2EmXgsNeL1f25YLTAa#H6>N`B@nQxTt5mjyp3X zPTPsbcJ!=GQNzIsG}1{S`G{_qqA|ERD_I_g9<8Luac(16=7pR%0eJ)7qw%kej;Sm* zmdOfRL~?^}NHxRQ#ceDxiKKYPUy$I`SC{tiY8kh-FBn3O^0h(?i&&9QTg)O#b7aEA=*-1Iej`!?%AtQzrX5&vjZtXQ> zUpY_ivC!6urJTP0czk+wH8u0Ja0l2O)7-ZZ5xk&_e#NAgl8GP?1{0=r)hX>nU=7ZWYHyVMm3 zNYygGT-KJ4rd#P3F}9;5M%fnyaq}^*t5wy8i>7R~fJCzlgAm5mHB+y2l1Ef<&1lap zw(y3ftg9VLXe?7Znn{}keJfVa!u}u9HahIPd}qvlK|e~K>EynQ3EL^uE_&1Ltc}Ep z4Z3{ga0O*LvXZvPL?}itT}NKuJoc$;fgQOcc~iFnoq1ztW>8qnWr(0Ie9hQ6+8OPPRr&c9LCRJgV-B8#|QX92)3k0mAuj zfH*sbb5Ic#yhb=zA1+7+h~w2()yJdc!B7{q*K5nrBmVPzO|Os(sBf+=5GjOtXkQFRQ&^LVie6i00=<$@t{qbDAfL2=2kVOHEX z4!>HTPMhqyjhu?vB4s4i5(+WM9D350W3#aY5x2EIgG}zVNW?m=%t0`G&BNRtYNLFu z7|Wpy4nt!c)`qeR+}hnRkgV_{ZuP*$8fAgHo6MI#XH%2!T=qMmD@N?}?5U0t9i2)k z4DFNBkd-{-d-Ghtm;`5L*%EP(WRzQ;1v2*^_bG$Qd=8G1RvPWa4Op#xq-ioAS zt#!mMUhWZ&iy`xT_fs^pRwHynyrNf4C44jXnc z#YLy0J-q6m??(h5K~hR&$xz{)hB>UIxzSH+p05O{J)N-g5=Rj#zSEEnDVuQ28I+vy zx3H{_2e5w)I;y9c45Tp!Iji@tc^pXgk*lx=b_X@)N;as`=|$cqhMPD`xZEF?cG3?V zcds<~ouI{|>K|;jbvE5E8ncTKl(k2jvmE5M2W(X0Vz$U6K+&nkxvkx5D6O=KQYfR1BYb2IO>%@t!B>-> zxUJ(QGnw~su(>|DtR%KFLej?JijSRh$Q1iMj0CC) zwnfYC+)(udTU6tXC9De$B(V^!^L;<-rSNYE;d zR~Y7^j^-mQvEUVN?j97;$*7F$sdgVR2>G9O1zU>pS#A}S#yQB{+L?K1u-QDRkpBR6 zm5=LL+npmDPB`mYa;Ai9$95vPG8qJN2FJ=X_|%gbWV&eJzH+R}Sdogyu|MgHyEtRX zJu6X>EiV>W9K2-w#P_I_Y!@TdbcZ(2bh8(3(s^s9Q z$gFGa9LFnp5-X0qFi53NrL>UDbv&Fg91)NzG|28oJ?ibJNlAWBFm&DajL$?58j95EvUB!QD%=Z58r zPk|aFXyYS>e*U$EX(Y5RG3r~hfZM_$$J}B$tGkXs3I`p#)G|miWQ~ySeEt<)`svZ_ z1lc|3h=k5JEJ|FO^w@9jZNBZpGJg_CH!1wf}Bc#lfGHj&8$dU~9B%tkuZ+bJyV?h^U*n?{^IL4@pK?~2&IyteT@ zx>)IjJqgcM->XEKIXOxL|dp*z9RmIo~4n zA#>KfW5+sg_Q!^e)w~{M)C0_q9dX=OklpG&OehK5cKpf*AlE%x%VH%SrY@s1ys~__ z!TupxvZg^e;Cfdd zxF?`BR3iXRIrJ1=3g)h!tG_!=)@`7U7}dL*pRsBP>`LKqdy!DuSxF_jd5+0|U2(xY zaa1p3mKoP5(lUZok&42AkTcYTGktza?FVgz?L{4da^X#Hc6Ex+nB?A!0=6N zPZEee)wQHeyzc5MTPwn0cWX?LFaLH5+PKENjAmGgewOf;D;AB9s3B0{p4T<=e;f~SnjfS{Ac(rLvj>L%T+b2`SO zzgc*+veJ;d8Rg(^_NL#PxFof313Z5;gmHsbJVel1!5YPHzTw<3E87)_vP#-rxsl$OqQ3^@(>$Yj~FcTYy>p>YsDO?I=yaD)-&FMQSo)P=4AB(~9xwJevCv|&Er zPnRB;sxCfbAtNj>Iq6LUW7`B*Vc-uDNv7(FVIv>2%-F_y*B7{hgM;*>j%SJd#dZ>_ z0=PXXIHs&Pv+1KM4WUm1p+1!;a=}+_PjlM2UkGbytmzRmFf6Nr4_u1qCqpzcLXtFW z%YZ?}amqG!Hbgq+xfX*Jyt71FITvsMb_bevudhbGVUtE^WHXRKW5S3)4t!#aoB#gw!Hn8Mkrm*>-xYOlg3<>7j zvHtI+IOw!7ljdih>e?NrhxODFLS?YH!3~@MX_r!4=;}y_VgB#?Lc7boHrrCMmJ7p} zm~I8XhaQ#Xz9G~iyu235r6ILlv6K9M^`u?MXrp_q+)uq?Tt;}o?O76J0HMA@cMf`0 zi89gc0eJbbo@y119a=d_ z8n*?!j)jK`M=kv-c|an%XyJ}*mN2%{&#!u2Lt4GRg<+ai7V2}cMlyZsZ|vC-10miU z=3qI%s*=V^pDHrMFu?;f)wcvb-qP+;QV8U3nG5Mq!bPnX&4$ud^ciPNW`nQKQi)jFOk|mR_aKP3Fg5$E%G>h$WSd{`M)N;AU z6)DT9vYb?HZA}jqzn7;auOkNi&DG40kOR3SFQs=L z3bRW+A@wF#QRZYEbH#9yI)o%D@z)-;w%#h#uWf$K5J+w9;sa!BjMgnSj+bP0km_*U zK|STo+%XX+3eC+>)iu^IeWT4x5r9WIt|HzyxVUL%+=_l*arX^a{v9^OTA@sh3Ekx!c0($vVPR%jc{Q;v)cThdFd@^AbXWc=g38-0~KY%N{;reJWdV~_8mI*)9hO|Atqhik_|pYVJt&?7`8fG^G+j<+i{mW47?AnD&qKg7Utr{ zdx<>%04TbMmkXatZSRO-xVw(x9Ql?{vmAgkS(9t?++I7psFNh7H`&)==~^XY7bf>A z+S)}V&v7f5O}O&gBkxqvN)~eP;#kaNAa3j`gfld)_I5%Tc zYL<$2n0*a?`z^DfpSvHDUh$s35nnQ*&Vh{jD<^4awk4UBM8Ca6cM!ydZUQ;*)e z_uvW=C9_I7|9A!uy>k#W!+I;s2ByXJb z6-o?EntFM*OM_}-z>_(0am__7#w{U|N%HF{Lb>f&68MCfNwr)qKZtS-QcHt8FD1kL zh4*@MT5_~QXIrS=K^$roLTq4n4z-_uu6?8d`@#`{2C%%wxRYvzJI_wFY704KF$N`a z+f58k;$2?c+$$>|khVb0P?0|AEO0sN(z+S+RMW1fibf&h>(67**Q{v%3h<@3hvB%o zSf+c32I*yPGDkS{rFJyCo6qN7Ke50njxVz9+3)@7u zA&JC%;Coja4uoX7-msPq+d-GE4Q*(?FuK0iA4!hd7qOYP#UVV3*ws<3FWMNgsGtxr z)~VeJ#{;M65H_WGZ8Dbfn1v#@<2>x^9by< z4cx07^l(b;`=sOfRJxt`(7ZqPZ=dZG$@|TtqSo=Snnq(ABnU=99dqee9xt*mO$d>i zOKD>SyBVLB5?BYYSC!MrEbsaFN?GBeul0Oi~9ktEe_S5a!&Z4PmJ`=su z0B{=d80}X>yYV8ZX;<&3>Y_-=2`Sk8XM4TQH0NJUJNIU^NGF8uf=^Q9=#F3`++ zX0y{&@@&7emPK&Ht3S11)NgZtYb2~%Yx{ev2yZO&Bxx`#Tdq6tP1Mb*Yj*c{GfL7w z`n6twRt!=b7@ie&3EZ!7SEke!>|2J7T&m$o>r|RrqbW(tb6xc)AR?_b^ibnT3I}kNu@@_PKt1wPip6NhIyJ2kt+wteDoNoZoFHnUfL#|ViQk+ zPwxag7y6pnYP2Bt88jaW*`q@&HZgA)`P>8gn(ztMYi(x!!YPt?W0iz#oeJlQs@Lrd z`H@7}{w6s&sO+wkPGw<^a^FgPwi9IW+4-B$xmk!MhfXS$#-6f-k_k@n!vc7#cXCB1 z?}rls$30f6+e`v76U#~3r8Y@bt>w0LloASZPqlg%gwsWzPnu?dT16YnkytP_q()yl zHfY{Ggr1qLod`#zgjEanHy&K0Jnc1{s$4F2R%>tNs7Tf0kv>KT13jqLwHR#l^qxr4 z+DM`xg zj(0W+V~l-jXz!3oDxqa8+mMg(u5D#>Qoq2;RH-=?ay$Kv87N1~gNnBv##cHU%el&l zA9Td^Byj@-WSrMd8U^}X(J^adH{39WogqhhK<>n=W)liE`#QFIvcHW zEgYD1wF;}%k5l!oXH?biHDH3}{!|%I2YO_%ywgb0Z*?a*?^pEg8qRo1-pcUHDa1#v z54{N_9K}n0OKc4ku?KF7$}x(3dWP9N%nhZmz|d6PV%SAz<|~$wO5+*e*L@YlcRmTV za+}dOVccNRFCoR9mxTN~2Z!|7U0Gi4bqw$6n&dTx7FxaH5*9GTll89N%K0SHEa%(; znEiWVynDr(y!w}jE`~g~!5n{h3du#csc4H-)}^^)6a_?Ja(zu+@NS(3u?_XSkBQgk zLJwbB=TH_Wj@hq4_)n(U-)r}YcF*R0pD=)Sk3&v(QPA2JPg0urdr`NO5YEFq0uDf} zq_Y12ia%JhxMrSL+ahs|rE6j1F*C-%hE^(bPJwq4t@l`9=hCm{Clwx@m z>PJ}I@}#WnMRbZ``HOsu!KyHo^7ic8+*aJN?b8xrf|HH8?hk$|pW5-+XDD|>|;tBjubr6qWUz2nsOjfHRsQ;uq++PKrfw<-ZH8Fw}_ zS~9qI1|gJ@LjzQ`3wSSWwp>RR;BuvhO7r@jg4G^#;=i?8Yk`mmqr4tsvFYzrG8ti;&r`u|N9EGA)H#RC;j=O8j^h>q2@dcc$#Z!3Qlg15oLMg=aD?^f{ z&e<(f?FL>;w;w@9qKzuLMvPaED&+9V1;Z{gxaDwo+G>oB6f?8z9SNv~?sd7QjJab| zXaG`VV~lzVw+KOQh)2x43>szZ(Aq}{mAE4VXC|PNRknp=Fsm~+XBe&AWXv4n6G$;` z$2jEGd)ZnQWeN-K7_6B!i_3*rt)f&pJBU51D9z)@1;yGfTR$<$s#Kor%2=56BG!@R zwU5qyk_X+4RS4#nV=6w@>zci(;MsYO%+d$j&q6B~c@3Ok^sTL>jycPj+*$4=mx&}S zK9yMGJabYo$jCI$;>U4KC2a(WBT^U)1KOpTys{VWu;@Lh)=dwZi#rXZ@_j2?Q_~hW zRzRh|<90hzldxLmEM=9075PZ(PLe>=?#AQ;rA*et@CdocxHcZi%on zOg9XNa}INzxveYst?yOF#D;V8ZtqRVQ-XT3U}mmaF!ql;jMK{{GcMGJL`a9Cbabw(xF=4xr3ha8s#|y%X4RrsT{t zg73>|(#~HgTjn8n6}e$&74^HzER7ld5x1K3Bv|cZ@>N&MJZ&r1vvq9?P_eaLPAdYo ztl%BT8*|?k&nky%prgAv81yKmW_Myk9;b@!w6BJ?7dlwfbqnaCiIjOnK1O}(pPFL` zX;f}FBLG!vFE9oVG=?(!l?xr9{V6G2sl%jA2UzV|XzkHaVm!#b>h->@acZ&UhlO4{Jg0uNa|`Nu2f$s(p&0QH-TdgBPS(s&lrVhR#X?SB#HJ)6-V^b&)O6rHvycmHy}grU}K}6;Z}<)Zn(PiM(eX zqJX@0>)y04BUYYQi2|c@w01RJU}gj;$*$Ec4>C&3fuUoL#9)T48wnztQjO;zN}qM} z)|f4sN6(fX)Y>iUn0j!hz}5irU3ov7XPI2_DOHBq*WP;(c z;C;%Xbj!;|a}-0%&nZ=7D9v1%iDleK0grQ9dS;IWllk6W_K|mF^aimTH#V;x(YqWd z>zcQt>+G!!g~Wbbc)&Ty29#0LT205@I*XN$P_uhE;#P&mF^uEhysui(yB!~k0gMp zd=8vcXp%}A zHop^&owrb=nkM!tOp2~IoZ#0*;qMYYl_%Nm1IcXMU>uQIL&{_@NNN@Ji_Sm=eWaEQ>3>ht|OUjbRI3d)aLN)7Ux#5nQZ{X7RiD~ z(z!c}$xz$fC+^vojjhM!S@LR<#dDQn7pCuOb7t#rmNz&&jP~`b0K6^pd{0%bj}8HJ6AxqHde#SETE3LrFF4t2(@Wrpy{ECMzVnoWY7zhPs-P(D#5nJ#5)N9k$x-Sh$ z_H9l$-U7C>uarp{2Q{ZMaL}16yP0fCfHTv*NoRW2x`nH4E;r@&_7$-nlcPgxdnT)U zDqKSDixPf@xjh$Bw>RHqxbqv#d?bhZ)kc-o%w<(3cbbgWx}KGFb8M>f!kNnsP-eKx zVLY-)BS;t^>??l5QMk3gzp{G)Le4 zSkoyZC=wr+*EGwSAddXotm>167TFlpMKu+OJ zZ$oo(9p}292EDeA0TlEf<67uo-O1WJZx38ebn{Na<;YmV=V|Ml(qH)(4;|L?wNx;` z$u!9)f=dxC*(|JgZE?`nEyexVwsuvIU~DGdFtj-m!uwN>Kp9Ia4xo0de>j&c4&ckr zG)Ol?GsvaL!TC=W1I)l^#!}Y!|#H~ zM?SSITP)p}umQOqxitkDx7Kpn%E>DhAbsJ`)9oEhGO18ht_eMV3U;DoxRCC5mteph z0I0Op#FH0=%7x%BtzGW55mi;4{J58KCm1HCk_+8B1M|kb{KBqX!yH>KV+2S>NFA!B z)x@*Ixw+$-q{L^tHhT5vH5&p`0E6^2xyi}L(tx;AfIpRJnC^GlOrP62J%zE80yNns z?xP2cS46SL9D5anaYj4#uP@SXXVdRumM@!WmTUwMAp$i-g8qZn)5cS zMXhUXs9wiuZriOPlx_o$Gn)1DqiFAAZ78ve=Zq7S&o$z@d~2rOdBIv}E#&!%kG)>! zpz2WTx+>m7Yb-&J-EKu^S=!bq72&b9ws5dnLIZHkvbJX6Fe_4J*yJerLB>x?iEe98W2x{gld|g3Mu0*Bw(R$=o6MCuWSk$mYk}~c zv2;AXKktp?D=b0SI=CB(=v)A6o~byHSm zb*brdn%DIUDdxMkxBcLG3j^D&bFuG28+O81w_l}cO=CRrX4W*?dcOXZW*s&dZMMuj z>w%UHo|U&WV2?4Qowr#{=GNTh@-R3irntd#1-uT3oVHIHu921-k0%hK5~X*>IR>#V zqG(;A5@m;W>S@NOGc#zR8wM-p50}0>RDx2Qijv9G2fZ~`GU}}3o}_lD=lLC!Hb#F+ z(!`R%EF$>>qi3?Ob5?F)YZEGYczF)xV0#Lo1>lKT6w9#~ZsM)n>RY6QOByrAqqmvsHU)*27+zH2|JgwcdBe9x|&HOU}TWw@zm6E zr>RR)NT7XJQ%GQxBT7yThXT5ND@V4|+G~5wlRS&D*d9iGDKw1|I{_8JjLC37C(!|| zNh5O7F$l~CR~_q?t!;T?YL$s#wY0H5R01f}E-}@OL#kbcvW`VUv8Nl~IE&B(JRgabr03OucTKa4KLe41P zWMBmi)00qW+C9dv;wT}Fj7X#s&NIbc@lKg(qfc{dYp9uCIaRP!aBHx6&+t4h__Y3*6vT8ok0^TFY#cZFu+z zjF*2((kkYbH|+29>t%^&jBTBjQ0~hTYt!sB_^n`Jv}Qqu`g&KK_z%G|H<74o1UP{2 ziY#<*Q(mH5CyI$AnW5*`w&ue6SOIj}cpB2|t%;t^D{nGSHEb*&E;M*_5W zeq>;0WSsOg-w9hqaMzaw72;(G8>l0_HuMp*rcY}XjlIJ$SuV&Mr0VCjU6JKWn3W^U zO`YU+sLUyIB5#de7>c|kb|R?in!SqJ8*8hEwRzQ)92~7;%0g;4&81o1+|Gx{RsG%v zt#~G&X8zEU{2~b7IZ
tZN!{`bFid&-R#YZB>=jedjy?Ys!!Odb(`O75RZZY7?;) zA456|`CH~y1olzVi@2dVou*y}N+|DHesaLyb&x6G1JbR-4ZC@cWnhF8fI5>}a;2%6 zr47KkL<_TIYk&Z$-cK=MFiB0rUn*0W`@ku1cj+kl$^r(x4cHf3zlCswn7j(yD11 zCYj-Q8LeRk;zRe3B$|QzPkUzskk1vlx>s$b22MM3N-ze5GKNel;z7Z36b^{EoLb|H_!#!{-PF)0O zc<04O!}HliZiw%6SxYgWEG9+gV%`2G)-{+_vl?|k zLj~Blme6@}A92>R?z~#ovR+%fF~=GVL{#+^&e`03j`!_zGQgAMlvBe4>s1y@MV)U{ zxzmhsTZEcEBm&|`vy7PlF^6HC3g=pBCvP@Z zC7-8i)hn6k%kt~drnemSacqGf1P=c7HnFP8b+K`4a!g@z0O`$1r^9KbYK9Bc4J%^- zzq&_i&erT!#_+T`Fi1&XZ)%@vljRdL<#NpOImK8sDjrAzt zhGZvZST9e`yeb(MG8;L;&pm6Q`)$J8CC#f1@tl=C#Z2I(siJ4G#dH~zXLD!0N3Gmy z4W=mvbC4o}(3NH$y!q`*%*UmJ6BW6D+D(V_r!VL*i>aR&bKSwy%Pz+i>*F zd3KvLcY5rTMy4oES~T6eVxHBuz`sGbgO&BHYU!cfho=^~nb-J=S?#o>OL6p4bMFMjT@q9<|on&wg~NZEm3RVr9Z1`@r_abC62vWVM)iepmpjao(a8 z8dfmGMJZ@=PiP)xz}u0IdsHGIj#bA#xUJ1<+(j3e848U1Km$BhY!;K;xLAgL&2_?Q ztDMac8)+{Y4Z0SYR}b{{t8rG5x02Ui1;!nt4aY%AO8N&aj*Ca}Hl-ziw-beR0YU4GRePJQLRq9)FC-wG z5xXCybNW^HlQOy6j;ABNO%?k|tIaTApp1Zd6o#4K_yX1C8nh0~={yBaPCzx!_`_F@ z!^75E00Kb$zXS!atX^U`-HO=oKE9TATGC4@mRP*h#~#?OH^j0*cEa)$DhL6$9;DF) zd0md>EgIMDQ^g<8`_fs!{t;V~+cfT$mf6}5C(^U@*IPCj1T!WS0g^pyqwv$Np%uxF zFoGuoC$HmCUQ$}4s|^^v$~umSw%T|x{_(Or!|rOZfo)%6jhVo1YiCf@W0z2mOSdTN zoXXvXD!kUp^6zri)~0i=qVz7Vxu)wL5w^E@SYNIC9hy)PAs#b9&jNT*l(CCO})mTuLhWu}X} ziLH&(EKtX~B^`0;S$e^i+Tsb|MUkcDo4CbTyS;U``&F|Pl~4??UvW>Ao@Vzp7CkZ@ z5v~ALxyAvNvO%gEkBXwWvVzF~b0OMUag2)OwF~!^Jjjbk1cGJUxWEIERGxO0Mz=*p z$L~PK04JWbnn?lB%i=qmi6V+;F~rdj7pdGjRVA8tzX(ePyNo91Zj385%+Ge7U{xy~ z6rWnVqstY>r)_DzHhCPrTli14N?~$ab)EG;Ff%k45uN05^Dj!XYhq+aak@DsfU6F; zV0zV$H4^>cc$*P?@sYsyqTcd53(K)_I9QwJT>5%b)sEzC6k*5$%($kcAcY|4Nd#K$+tLKgm2qQGqLg!5St+n2v=dS4drTH`5 zRz9O~WpSw+)Mjaj1EvQRlW!H=+OkC|mUdhNoB@i~8etQKa7y*#v8zcTT+f#7{&z_P zjKnbm6&KhpBr;1eP+O6T=sw3CrL?cWAAc1}-eGejaX>$K`5>{tz^8E(S4>uu3P>zF zb6XZVEy43GKFrRdKRAu2AP)6!L%WvF`quVKNUno#UnC~rG0>XyO($Q}8h4g`9?sl6 zUS8pl+fQni!5pW8G|dNAp7KpX=`HQ;%Bl_9cOP8V^gbBTZaf{b8_3%3E2eKb8zhb0 zKPsVT;T<;3WKd<0GZrYvjZt<_>2;S>&P9Fb}*mF~1VOUrAII!Ps&lrNfk zfI3u~7J~(^l?>BMGAKJkvD^7onJ(pN1S+LV^V5oYLhXRkFvmcriow-U>Te7*<|2^h{!!HSwVp`SpO_7>jpHsU>j?hC*0#Wtf5+M>N=F6Z3`CG5m`tJZfEtW zvZ$mgs2Th--mBeeOdLjFDA>s@{VIc9Jj*CDVUHsmS7r1(=B#T=aSUma#DYjQ&UlUq zJVB#c+gp+iyO-Q}Clz~73ANJZPy-yMPBB^f?zd~ATQNyeS)34xr=>XWppG`rMK@Pa z!e$B{ZHyT3y!Ecy{{Z3rwU&W!Vz_6#PoHxf0zE5)`(xi&G`9Z$B)Ht*ax>PwGr{_j zc#B0#i@6J2TM)9NaJ+P_oLgFnNv)42zLleZsNwUD4R<~f)nwN!e#arr#3(st<$$bz z7kGTj;#sBB=ZEaBcORRDJ;p06$~-%HZFdBO%^xkdqYmP*lV1th6y&*&WzsE)f#P{M zQZNT<);94NnkGQX!vq@PhlwYa!aLm}2bA0Z21g2e=DL3l!KlZkf5g&NlHu6D9f9pd zE85KGts6U@bFO$Q`o`w=Xe_0=vqlXP#(rW6>5AtySak~+#8c_7X(?UNq=z{lTKWSR z73bd-KEQOCM2^dRr*tJoay#a(O6F=-JkCjEo*2c`suD0%RaQuIwGoFrzG@g{FSpD9 zpW)3cj?t=sypzv8D+hauPU6cFOso!g;5SN*AesrIR+AylRMXAMvGQ36B;y(D?@`Th zi+~)4G4vjSrCfs5+nFO(jOXUa$E{?~Wgd?tZm>^%&-}b&fV0`Yt*O$(li&9-g(W3)@gm#4}lxDxzd^ z>AN8GsNy4*+z3_cn!lz)X>laKY-U*a3%0f(w$cz4ip7|z#^*c{Q#y(aG%~cj&2MoD zl;hXZtk~McXnxTo-*g;-(A3u!k*2C(hST>_fa|p2aYn_O&5_d*2FBA^%ACD?HOglzz`-80(kdg;M~fga8S9Et zRhWPm)0)@N@1nJmu&yMntjwJJ&}O7E!+(^VYoTvGr0+fj5b9 z!W@2ejcDE`^e1T-bqg!FBof}hRhVNW=M_v`NeNbr207@%BDHU9wL@ysTnzOm-eje0i)U*hl)qLnlSpxo*G`nU2WK)MY&N@~{fhOOhUrQFy zkT6*Wa87&H`aEy2sRdXQ&ls*6v9zvq(v{VW%Y7)sZ(w=R(s&sce*_XM%9_eGjpC9l zOpH{M*n?h~s99V`a<3erke%3e!LDD#T0HUVQ%h?Qduf1mAn}qpt*FU$FvUkpq6x3% zn@_a4^R~Lj<%qm?9fZJgn_2BVf)Y~yGd0A@Uc&MPum9Oq(kG zpegeRWn++O7Ub>+%-l~S+N3Ju0=llgT8F8l9VcYG~ftaD3?ZHZhQT)t}uW zouIB)9CoZ9yQ4E_J>@whw(opYXxn7xr>Cu4m3B)i7S1~3ilHIN9QUrMJEE4Q%ejQ; zpb`{x0;qBiA4;5HM%aGcDzkFln5soV4^8qo1MsQ$7&vTm%~yrQbE^_@o@&gqMD9T3 zbO#g!ki#%1KDB<*OR48m1;GR^(lgY0R$v1s6)ZDNZo*ht3>r;c39iP1MK;SxRYxaC!hZST`Jw3_!uQd;(xvES?_QRj(QSuMP`#FCTqub(^`ZgFi1Ep*0Qdk zST6jSoq#GE2bz3r94qcBRPpF5L9T>t6#oD#URV87kVgV6{SMeN-ANR0Fj$V@2RIa7>c;f%d!tIjRu`b@`l$~a@UQ9Y zYZF}Xwce9)Jk0iu6KH1)h&C(Q|tE%(%U3U5IX?m&#h} zF|ep0;ODJEa90_@UX@~7c~K&r(+F3utwNDMoaFMj-P5&Ih;mjDL(ZV!gN~xD$s^q~ zMUb?r0*rU7nr?-0dl7N+LJ!`~59M7d={6QZF@u&-x7Re%F`ZbWJ52D|`&3_U1yqdf zQ<~nl5knp17R!uA>QzTQDoGi>+?%i?MFTZKFQAEUUM46?F)|-ocDc_fxo&y2v<01` zVn%bE{c6az`#O#Q8OUHNH@xzf5w`YjOoVl-FRhqrbLRIDDia0{J9&6vx&Ot9fv!eua%w)2zPVKb9F6o_8To|No`JIQEu6P=O-9Ot11s>sJU>PM|wlVL?X9M?hPJIHLMhSCKY7-Df*a9xe* zaSEw&I8rm3k29tc_iW2oH#c(aieN?n;d_c~_WSH6G60}1aNK6D&mvgqBKCAIJe>jU zTr~KO>{E~qcpt-#f}SH#<+6C{4Rg9}Is=$2Ws%vF@yw($H9%RZlI4#%GuAE!c9>t5O=9(}! zE4r?Cbg1HkHtjpy{`?LUH%eA#W?&BGBZ4~A5?Z~s8c9ayKXH22mNHMEv1&4h{rP6? z$>~r_aAYNk#s_+p5P9h%x+uuX9<>GZXp<2cRtG1Fq!tk--5V=%8@?*tlK??xWCY`m zxUBd~0f0aUwOK&%5RBQuq3kA(=R(#Ywr!IZ0P(xlwxzcd%F^3Q`?on9X1E)1BgRox zna3CcyRQs*XGhd@b)QhzZ!NAjm1vaUE-M7C%_DcY-s)Zi(jc^&_SvNqB7W>S$j_y6 zi4?19jd8aibGEH`lf{?%$c_suNi88mxGanTVeeLTeLC+&@TINvC+&9=0IwM60p}y> zSyZ;iZ5oq@#APnr5+VeDeYm0-8TPWtxI)<&Yynh0)Y9TfBvS}czB9%Tr7`r)W(Z8M zOKWSUO1q4*ILXgoD2*=Wlf@5HjnGOTv0(4UkZ_^yQpmWLFlDQaIcSZz)3bP;1hzyR5B~&4fcXZ7@a4TM3T`7m`&*knI zWL^L?$7}76B7x>@0oZjlZfFw9CA&~1R%~oNjbrK>wD%3VFcoux6n>SWcMGF#_fRsy z2;P_gWk~N;W|Xu}+ZYX<2TI6eEViwc^2B`c#%R30d18%7Dxq*noMw}a*tv-!npJ~( zKIXv%J7TQb&m(NwL~O&M=O&`kR@v3s<>cJ>RV&a6vn_+eD*pWzFbP6B;8Yo%HK9%w zbn`=<$9Ej&rIP8DfDBP~;FYJlEOzoq##?}=v8?xUZPj{7)S9^JL~qo!9om@&0V4+` zt2*$wn*;>N`>J@Q4$KOHj&YM#uJqv@s!tIIJTYU=YL<+nH9!YFb5GiKaq~7QN^KnD zG=+K2Pc>pSbh`;Awvpmoy0|1~wRCL@+S@d@3S$VFP{*mRF5co;Cft%b@-hMHD}Ffz z^xQFh>B_OrC}`RuN0yTaTV^*i4usdT{5881cwT#P&yg;F171Rs9k{?!7iron(>@$( zx_pogGCwjqmC2E@!wQO;#I$yj6%JRq8KT{lZlfWxN!oMMnrz{N_CEEIeW*`qb#9T` zO(8B0P9vd@OKE1SDinrM_PXF1!RE03^Z(K7Y`5HZrOo4O~O>cn%e?!z45R;!aV zE93@~DjNfyYK6pSJ4hWmRqZ)$Q6oEyNLOjcrBv31({>is-rDZgIY(2NlPOTQj)X&W3ip`xyZs9b5+LD9nPnt8gsI6(kl+HspWaM_H%P4)s^(UG)Z6_E5w-p1h4aw_UkS4}v z`Dj#gDF+~*&YqH$z|K3;?k>gmP%E=kJZq(ZP?mAQ9kE#m0Y)r&&T~^MFhDX-TnyDr zF>;)R&M`?V3J9?Terup1f-&j^S`tTVDEm6GIpjZcP{k(5S|%-(7*Atc+D?LJ5!~El zM#DJGXHsek?4*pibZg6-pn@V@+kQ#lR`hxbTSR1xI^0lqtJ9O^og#n?J;{S zzbPX)_pVm&;#^C65Qf-79f02|oR6h$Tx$A+Qp0x*_W1(>tDYEl;;)gd%#TsFfLmLv zL#P~|dReB501VP90&q7RWYz|o;@f+J6jy8I%G_@scCTw%N!9Jp!*R8f?)L_w-N1)i z@YSZZX(IWp3%L!w4+M{DsR14ww9_nb8p(l^{L|DOq7bAkR5m)LM&MM-jTafINi)pvH1f zL0pCRjPC92BD0PXZlH4V+y?)Zk9-ab-iNI+OLr~LY6ntHA4vVCX zDeaKYaLFu^2F6Zu1#ou~7D-V74C8`(8n>)pe`s8_#HeIx4)rCov>!^zn)WCkFCbDs zhrL9#dK~kW*@q}(d`SCWJd!GS=1?3-E;2GUjJxR#=_E`ANyFDJ6_Ja0?t@jP#|wxOccJ#5o7aayD#ENrDt-{LhiO^=Z6@r{{V&b z2G=!+VSUJ*WFTjXZ$xO7%ibIC-1_4PBakF<5YjR0gI>X=SXk&c5-@Yn3d#a~LTF%&ZefzEj8=-s2n^Gv z@@IX$LT8H5@aK!I?d)dLu3%YgCd#t8NB-d)8FvpTTYtFP!6nKY6 zH`X>VeX$5KtGE2KBds#u#TQd*aa_-JC!FMNbH>tp0YhG6)bya1T2zsVo6oyA0zCYw zS-v6GE;QM!o>-buaW|AeA1V)}WNLA)p=oZAw#kxVDRRVa#Wv?up7J#dEKXx54b%n# zvl+&Czd)ALQ@EbpGv>bi-GHke1=T*wsx_SQ;yaO*Vt5T&7b5Ea07+lB$^MlYV$L`P zYlWWR>DL7<)QJ#@M1=8IcGZCNTMIcfTkS{tPg4>t^rS}{Hdy^CO+!+PMj{O|-Z&)N z`^%XZ1cTUCR;bn*mY1e@i+qnQx}EXI$Si$omx>(fo*%N*L}YC_kxAzrxUAYwa+I1G z1aV6GgtrQ^?nT)#=%+l_FXB6tk}F8yk>p5*)^c%^P{DsNj#${T!us56VIZT2ZAvnR9E=cD%;PNH5{QBIjD6yre)OVHEVlMw#2~|-Z+(ak?B~vz>?z1F$yb%V$Fldt6n0U zqzD!BBjXr7MNre(Jhx;*BwPZldgif>-@H5A&C;!4xw*vQhDJiS88yE?m1Jizv{l2Rs_ypUa+BP%vXqPJ7f6*&Fh(yO>b6ayyTu5Svd>IWdd?s#t-}1zfPY*zXxE zGt)gjm8W7B+3u~(Y86fccQqWM)Im5{fMRkEYpGSc8LiGiBYev$k+}%x-nxw|Q%9Byo1flt5rOChRHB}yh}gB$?k}eEt_Ik; z>|WxcpTbkzypvi$&bzvQck5kAkqan=au{Jk)i!Nn=o?=++gTRNh2XY5>npOZVR&~+ z5o>e7a;*fCNBh1wV_Q-is~HS-wrW{U43eJpCbOqC-kOtJZb|KM>n83<6?)e0-(Aol z)L@hSDGtko^lw_uYpK&lr`aj#_ZO>s4bA-d5y~H8a5(K&ej{mO28+cO5tp`@0df4CcE%gj=!_zJ0NTb+0?VDbq*Y+p1)9CYnf=1(R~>+?kCavs>HN(3{cksM?P`c{G+ zZ+$(z;JbDt;}6ejspGifxVf{uL%Ao1hV;cQtEpST<=i0+ykXb-tymN4b6z}F(;T7` z<$GqSE}&teO0pe_eSz;(yy|t>ZUl)+K0-Z4gjrv8^d=#P@4TW zVZK<%scc0%S*@*fd!>aGPjXZ~4?9I=%Wfr8_J=W|fa;}s*8c#BEo`kdaTTH}r;@w2 zpW^RXS8}wLNeiyxt%Y;_-%8RO0ZdQj$c&`?ql(+nBE45@I9x?8+s7CQDgl&{`}XLV>vXjQvePtX-|XqZRTXZP-5^nQ~ZY}-NDI&aE z{S{G4N|5}gBa%fhNYU0-N%ZZA;U-kdl|6G=_7@XHVfJ|xGZUQVmd@+Xv=ZEgjQ!kt z3dDkVY;L4=x-RXJ>M=^i7Tm)e5lbtTSc^tZcsVtnsHLXp~xbrTTKty?gWg? zr-dGdi&(cv>;b?S=AlFjvujru_oW`?VBf~$z!eyt$tOAU?_3;YACvQ`BhukkXOR8l zoEorAwX*Np53s8pjD@m$yMPLXY?FoUT?UJx$0nlpDB37j z&yarb$TO0ARk0>;>^w~l6& z2N>a2w&Apr-8{#Aj;A1JB-QkBAR)TrCz?)DV@NG*(ino<+Mta_K~=!3LMVcHlSmgG zlagw(Nj$5!bK|Dof|f^y(k7PTMTt|BlgX*G7;jnkvNI%L?b_8Si($skVUb+W@oW<* zTWA$YkSJ#v$tQzaV)Fe9B=f9}PI3kSu3GVu*5{>!d$V8y0!yU0pE}$T}ghHpy1AYj|7_NM|l4)jQOGw3uJ-gRTBcaPVYI{YU^g6Dc z4fF+D%pW?A&D>Umx{$Vj7%dh_cJwC$HRc`z)gBFDZ6vq?+Tb0k!}zgYg(9}%2;>^) zm+qx-QB@V0LsQf)r_*J>ytEO?Z^&3q?aNgx^}Rml!?E5Y!?3a3tbTgh4gv_-M#IAo zYVzH8NSi~~niybrvbY9F%IBwg-V#+6j(XJ9Jy9O5u3TPRzGyAX)C*Gok4yvsj zOwVz!umtq?toiN}%)$&J@#{>qxt7ZGO%YXQ1QYeH$k{6#gnCu$+T1*4&LnN5dK%fg zy13GsNNw&UhC7}ZsmC>wsc1Laewvz$!1;2%K^*XV=C0U0TE3dr!0w!m8NEdp1Z?Rm z<>^Z;!=K(cV$N$8?qhkVxg5rvRKosy+eqxDQ5stOhabd6AWja@2lcL7T1}peWaR{o ztHHX$TT1$6%)xEs`JpU$4d^S=^y{xKBLt*n2g-d#cmoL}m3H7XM{qdr>0Nd2#7L6D zJ+|%kwNR`{<8?O~CwQ4jDJwJ5t##GA)?~Cr{n`RId)G7ZPSW1*Muoi87cns^H*!H7 z)=R@B{k%7E%O+hn7LB&%xt|c|&2esSp_X$Z9i%*ksm7vi%!%QhuM>@Hk1hp5Iaa{h zXcuxXH~=>%anChgc%`+OBbFvrEIIY3FiGch+FHEQ{YMfRL-J45{ua zn3y?Y&Q9Z#n$TG7OmT0AhD>Dj1Xh38q}eQys0ydD6QOv@e9P<86>H>1 z-WeEo$6CU+lVMYa4ZE7uk6?f_fr~NfJ63a#Qby`pgf_64P=d#t9&udsg?F~|)MR~X z{;pvAdomCCW-?E$Ww2*{I%2n@8$?3KCfqN!I(Mr#F~$9v43V~25G4B5B<|hmR6Ky~ zLcsOF&1@GYX$ZOuj!J+4H0ds+eetmaamg5{A_0oV0fAA?iq&Or91Ij7Rjd>HvN|pjGfKiq0~!YFku^QUR{iK zxCb@RTFEuhjbv3=vBMLA(yGcWnn#X7PG}uXH^3HLb^`&$K-~t;o#L6Jzkl6288%Z3T z`_$%H8AN;Vi<}BJ4l+AqH7h}ER@;xllcC`BsfYoOImIxk?b52{COJVoX8@kQ^yyE^ z5OfsKtN<83wDnEkkT}_5Sc0S(t^rr+4!x;mbJ0gCL52 zFx(90vu8{l(W9W=3q5Aln;{vzw)DZS)>uSxGA~7A&3Ve7-^b=LR0Mt%=&vd~a7d&S zc);DB^~qj6PMT8aTel<)uA^%V9M_-gHos-Ll{b8)&OL>9V{|czq+lcMlUN=twv5RY z!l^M#hvpqKQ-_tLJVY-WoD}hivc!DjzqKroOZG7^&dyhGJm#K37##9&DX#J?Z*EQy zHsUefy*r*;xl(mV-U5gHVq}0j)%`N%pjK4QK?DI=lYoyNNjT_z1zEFyD&+}3cy$!o zy40vPncXd(r*{~dN$u_7kuns%;?;wA8VP)o;E*{gYf8cmLr}C)_L$+0Gs`zt%~aJi zp#|EJD3Ct|`d128m5)KbXx$9ZuIJPBB#|UxZq7W_#|>ViFgO8N6l^-<(ASkU!l2ls zu=@9|%T3khlS;R2Z**O!J+V_-n~Vr(Y;A2M#np<>6cOJ zW+n+L@rMVGrDI=d%?x`al>@LNYV%!f<+ACma9U=V47en5gIrbB zCVB}DoE`|(Wmx6tz@93-<&3DDzV$=*lcf^2P>|f`r?p9IbtSxkI-_tlKH7!}1M?!0s&AMDi@+TYBxy5r=Y$UpN z5t1{2;PF})dbCdz*6WTA)gz%EwUn}NI8r$G>sm%VN^a!#F6K?&DOEnTaqg3AZ6Jj_ z`_^K)M&N;-3F%S0yT(u)4!EZ2sXa)sE#1sl3zbc*e)bJg^&gEqM%c*;KCv`t} zq4lWA$;LRROAnPZM$Nbm;8G&9AC&YNBifC{p>7+LP=}q^!4(DJLv-wb>?e%WIQe?w zr4h)Z=SRbI%Jrhakf`hCh3(#^Ng8!9F6kez0<^Tx3*G7^UQgV_`1zZI_*Y}3>9#g9 zJTO{*@lP{2>rpzY2K4B2JxnbnVunbe)sdDt7YA=t^fkL4jd7-G3pItrVjikN&ftA( zN$sF{3$#e*xgwF(Ry9b$UOEny!s|BfdX%uyiMiqH4+rg*^H}m4@+RJ5VaL=C^-o{B z(lx8)p2tjz1&vAu*aq)@D*-Hrn$kI9{{Wr^Tn-ggcI{$0KDDp3PCAKEwE2qB+D8MH zAhFLG?N))^DvT0KR2LU9+D0Xmk1seRbrl}8vOx{C#kIohXAK;qwPd-ThKinD!cA!M31CJ7Tf^}(gqZQoFP5fdzz8%Fj)!#C2kqqCM<)VI`QA$*`n zUYYc*BTuP>>sxag!VA0S`z%4(RAd(DE27i1SnbwHZd8_4$R@7a{f5eM6}(5!UZ*@% zQZuY_yv`gj`-7;h&I#4Nh_M{8$!77{Asbthp0vxWxYjsS#?I-FyZq}uTZWPu2tf*< z`IH=Fdekp>cG?q=wm> zn6cWjFHqP^^3ERZzG(pGZBJpVY7<)`+rnd!vLuR=C!P4Te!q`0e;YmIUE89^{d-d#ABGKj~{m&{uLJlu3^OtWf8_$o}#R5 z^7#M({HV9HX1fuiFj7w3`c$$-B1}<+54|pBdlu=*E3_v#Ve+3!hFFz}D8XEG#Z1G= z7~}A&_Yas zF!7Q1t0PdclGgI$P}9_iKaB?%^{msgvo0>?Y|N`61Z^YbG`It956!l$Lkv>co1_9# z4p~X%YO~4aNw_HIo+^!E&HX1>lXux=Ad)tzJYu$@wY{~t5;fT7bW5B`gA*La;A9#VMD#MLMXgb%E!46>6gL+>bU%4}Qw;FO zV(<M7gVTY!hRFmm$p)z$t&NgH=I#W5yeO>Ol?GA?;knLg{HgM@Dc}r# zHJ@_FU|*D+^O4$`B!oBc=K}|mQ7nuQsM>dQrz@^L^5@Xf2$|$ifD(P{MPXdi(?c*v z-pr~_MtUE5xpk?@ZqE;9@l5k`f8+Le+i0AR{^HN{DDaX1D^U5+q*YS*#xPOqlh3u{^b0CEmjHJ7rNbFoSr zSoD|%hcq9)x0NnIIC9y*^sbjqztODVe?C~&+^-EG&ePtwRaq`ounI=UuY6RudOfzK zVfI-ap=-nq%Gu0@S2E98M2&LP;04c&!lLvpPD03dR{ zRxmr&O$R`iQYu~+2*a*9BE5e=@MfQ+T17S5i6vo`Mjv!`&2Zu>MjD&aqbZ!0pW#Q< zG&AKb#kQdwZ8C@HAoQ+mCA-7BbiQ(Ytb;vk+^$*3OPgm=G(T_-nDnnc@y>`e%~s#U zki^Mjct3oxjuKCCSkbG`xpnAr91X(Ux)SQ?3iGszl4+t_03#~7IRu_*E^lVku9_=I zq?acO7n+9eNV>FzO~gecBRd#$uEpkYIJQ%s@uhvC&H%?f>b%a*p$iP-w`vSWI3u9w zDX)My&%IrVHEq198_O)pyK|B2SM6?P`yzhr9Tl)#j)Jjmq>Mae!vt@=j?kXi4m2%^yy}jJbkLI)Bsu9OEpoTf3jC_jWc-lA>nJ~6U7U8E6%0_SpT8=4M zu;{}zn}yID$+{#=K7L-LRjFf^=Fp?29x;%|(zD~Z7d8?^OC-U8Q_y4URxR&G*&aDx zcx)*muyJS%eNAL&;*C_`9P!?x{>iwP%Q3J31G_b}`#;sRcq+IU>P1$#@*sqg^G4`% zk~lSSsMdlY@;=FG*7B8RIATKd_Nq4}4Y*Zj-@89IrA<0WFvjQ1Sw|RdK=-P$z8!LM z7mjOq`G|mQE(0q8-lIJHsz4e3F0|%hyphN}kx`Tdi6b3{HL3vHyOEFq>soqM;I+Jn z6Y{fQ@#|Ut05DVO?N;=?FHzL)H(A>;SlngU;19;C=8-pUklIMf7=Y|T3h90x%xyeR zZNbBWBy4emSQmCO!FlG~O%pKai2Jdc=)4g+#o|?mcgr+Pzla&EWh+IS(}QlutxInq zm5Sk%9>=9snn42s?5dy~gVwQC4W2u8>)rRRN z!bu)EJu%+AcgI#H-&0ce5Iip)RgnJxcemEPXHA_y;UDuJFv}4jk81Pp8Y>-1E*DQf zU}CDTw=0q>O__u0j6D+C4R1^{*mO8Xt%v!3IM z=k)1Kta^>Q72X__RXwYt@gI#JSMdB67WOW)CdTs{u>!7~UCfRuc$IhV45z(XigcFV z1tpju+QfDIs+_3vg?Sqp86(ux_SWHSF0La|WEfM9D@mf_^%~5wPUxVjb?4H%zX+7M z@cd|SWwe;8;PyO<?>Wh>d3M)MG==g?FSW$aN6wW?C|KJW0)25 z8cvnRMpBEqI;uu3YI%;SsohTY@kr&{8%}#wX<=(}Jmd#>Pnl-m5dZ5=IBp(yU1;jma90y-!?KW0tB$ z42ZVwHlCc)5C{Vuzbc<*SPwx!TpVzC>M7iUu?Mv@Wtb>9shx409(}6CwUfTWM=W^F z7X&&BOu0Ogds53}eD!#gl_UnoYP}V*#OKVD0~pAwarqGJ*f(U3N$*hVB#j}dsJRs;R-dApM&1rmuh{QWpdM`nWit|#I_eO!*G8*0Xeh0k}+%trcer_?0=Dgb6 z($$qB!v)?1w9c}| z^Zg<}FCpaYeJfT-V!61sNuiEY8OYz-xjh(5YklWCj3~l~HPy@W41|3zg>;uM68u4Z55t`=fRW{VR_1L~2e3?#7zBjM)jDz;!3C zDy18h7I(IqgH9w^@WwXURr>K;x^IbZG{wRODmtTb4S9?jzmTWPc8udE1E{TwU44#A z5X+I%(xt?td$yB#ZLR6CU2Im%WP(2H3X*A+?H=%3G_%`=DH{FaanM(r_!q^N@aksL zM=2ENZ_UwLwRQd@@grz@ov>Z63&z2t{{U;TtS9cVqsV+^;sYM5ERjOi^GG*5ZTuwm zsv0kd?~a{$r_F4WSzadB&tuq%cC&5$tEJC$MTyp%%*7Tw`WmxuXEn^`AdI^YCmjuUz8UaJ z98Y-OObEN4Mjw0F3LCLX48riQgr8TO#W0uy86kk-PrZ6(kEL4ZmWI~FT3d$zJcM`l zr&>(}7HtG7w$Lf%`WIhX%+&lv4Xi43_bN|W0r`mb6`Q*?NU?ms*@-xkMf*I!eV}js zezikZ@YVO(Ma7yMtvSN7%M)jUJC4=N-rUQ348C)@iv;Y?IQOf52Jz?oBlojf%p{t^ zQ}-MAD_F-tH(?aufN_Q3D;||*+UM+YPjpy=6lAFbxvt|uvhe<^c{9tWX6;|hWMjZn z$T+KBIMXzkJT-90Vz!r$EGYZj^rdh(O#@!Ic%*4A#4y+8^W(3eQTJyyq<9oi5M^iBsk|a(P$R(MPRyY!!L9Rh#o?p zdQB8`KWa;emROiNu)qSS#|^!d@mcwVJgw$n*E^=A{hp#j+zB?ZS4BK^u8Uc|jbM&w zWrc22122q$Q(!7<20b@WeL`D@@@0%bBJGpjxm|WBtnPO!ZY%}>=mlNZd_fh(v9<$y zs0={p2(D6Do>_#_vom}1REccsJSV8jX=`(5a>`(r=8R*bcB-Fg)Y1#&0&va%H zu;3#16={OpovA0vi;@L8#_CfXf?H6itAJSYYo2pqV!gz12-Zd$nMVWGtH}Ti1-v3M z2+q@1FJ2`KvEVph*lw8gsUVqUkx-!l`P?Zh*j6(&YiUGw^2&0%NdOwix4CGpiN`p` zN$Fa8v&A$jr36m{5%<3EJ?kzg+{!j4;8U%1(q8DAG_N1$-m(X6pq2x@OokKX{`ykP z2I56$Y!8f*4sd-%Tf#vkqs_|T1n->HIHFdDs;bFw#T>MOFc%yej3nx;?S_$Cgaf5f zSDxPDB$q13?&G~_pE?Sn6p~M68Og5iOYn7sP)X)X_JfiiVc^$AZKqmT#DdNQL4Y_JH2KR&;Um^> ztYC`HWMrNa9fNRo*L@w@%?eJ02Xx3*?M|CTvb(t&jm4;vNfT<8_Nm^|8IZCCiIs2; zI2AXz$O^Ew5W9mUqi%7KD;fw#g*DjJxSGQ62`T6hp7ml~Rin8!a(U`RTuTIdw;H#5 zX1bP^BEF7T5T@0U`kZ&8rHW3@wqsJ_|E#jX#CMG!v`_)?eQEO*tqZySxR?k6Qe!ZnZsY;rZ zGX$Cpsn~gATy)x9 z{CoP<-?1hRkrXzzfX5VVaDWFOX9w1`(ImUIn1?6|5?GFu-6G!E1h$sSKG7#T{l`FS zE5x_+4Kg_6lgc}aN~5_QYAtp-Rnu1FL#S%)VdIn*RnW&_6Rz<-( zm~I2pH0!&SxVvTq1JEh#E1?q1a~l>UAs`$Q1z4~pZj@&UAlTm3pvn7}V0Z(O+Ot^z zehJR(ig(aQOJQ{0K$x=$BY!I$u~&8Hw^0S-$CV3^N3C%uRi460k=2+p2EgbIb$UhO z>RMad77i2^!5sS3*bA!w0zm!0arW&x-hKN^DUFZvs@8~*tHCNWu|1D!%+fVzZ!Raa zk|lu<7Dg@HR#ehTo+w-Ed&XrB7%uFtJJSmrx>ltET}h@zE?J8lF#Rf)o2)t2WU-zI z;eZAT+2k6ha9Ham_7&T?w~fB_O7G8cJjzj>a$6?`knCB~^$F}XyOfyuusA3QG>NRO zk)Ajr3mIeWR4n9Ml?*`)2Tyu!#i5jy#zE?6xDC71Op2hnZO0{ZRLs*z2bLHoLI--# zhf9Vg48XC*0X+q1==K_Q)K~WMN#)HHVd7!aIp&`*9Qs?#e(=CGC)jok?Vh*>wgs$f z_RrtM;W6bEJ%0+Kmd?!^F*}Di6q~pe8dQTStGMToD%G{rvbaSEymBjY!@_c1vOLOR zjk)s=rFAx58quv~kz;~eroh8D0-?<$Qb!+eXEn{taj1D5_EE)j7XAyrk`pw-I1xuj zJeulk?GoN#B2<8{I0Krr(n0r_$uybA&C~L%WnCJ^jG4~a_+G*#QzE?XdVn|;wH>O$ z7C54Y-??Hr0<1f;@IGGPFBMMbRMM?vG2UG=+zeqANk5Ha?OdLQ-ouq@XtUa-x+214 zaNC59*Yc=knpbj3+P%VzX0tCmPo>2=+r(N)0mJ8}J*z#n>&w++WUW8~$Cad3(v$AbA0gEl|rX;IfkMOt6yWSbVr0y>VQfy4Y&7o1JS>xHIG=aKt*+ z@Ya(@@t&JuXEP<8wYZJTbCTTT(Q7a%UTZqU@Cl%``!q;OyD-7X_O5wn7pCN2+(_(G zDcokg2Jc1w+1KTlQ@vR2%Kq!i7+m%yxh-eGn%9SJ1;~wWY5O`-f(ixfHCwUxZ7)co7u5%6G^?W*jxc!K9^~8r`t89;XusUL=DKS z>&KZLI9c+_#&yMu>N?ki^n6`_?nyzfyVeWFI7}o`hGF z>6%^Mt1AmsK&U`>bG1PCu9w1VsA;;r?VJr9`Ek7wxFh@3&sGX(=!4Ysh@`QC*UXY9 zc3z+ilUZ`!+jxpmZ7r0xsRt_~a7gYd$=l`?$y1*FDTskCM4~`Xr(;<{vWAuv=qYP+ z#`Vi;=S)ooYz7cMs-{uAq5i5p1H zFnZUa38^cif^l(nItyJ^{`xFDNj{Z%XF|SP z&Z=AZ$2?XufzwKQSY_?Vv__6H#z!8tPB_#k+%irMed|%Q{XH1SjV#2WEXRRaiblcn zb?2IKdKA;Xr&r+}S&hSKvs{&jC87<`pG?a(<^hIDK0eQ#0I7^lCm{m%oZ`9{4qi?X6+FN1Zlfa_ZPck`M z2cDps%ZBK=!br@yqZ9_v%M&M>I3S9}JDpBOdlOw2ric4BQzUVT zB7Sf>issC?k705LUA4UnHK>_#-%YrfDe^EqLFy|{jWQ_WKpBr54E}XO+U=teuOn#d zn$la?L8v69e~D(-H-b7Yyv~yaVVeoD%sa9n%ImK4gBC z1?1{*sUaE8MrysA0(tFYxV0}9e9V*eHC$X18{6E(#Q@=y{l>*ug5WGrBuqyC0ODcZ ziMAIiMns1Nz358MQ5g_S@XD@ouYrS{)bgayGcaru$*5K>mvS#qK2ci91a75F&PX3h z)w>OurF$_T_M}*lgPfC`S4g^d+wEElbZPDi_^<((gDSvNuskv!4 z90T(=Lrpu6*__iNzYBtWsp2J4zG2!AsIHQ44c=R6FR9yFn}{JFJD|u~%@#6hI%8^9 z?6M1T14q!GUMoZqflf2YZ(mQb>(BAxUps~F9vznA;JnYZ%89l1 z^#`pnj!+Q91IVoC?g(hJ$s{k(R*LQmw}G_d6%tl9rpTWx$`0d@MtfIX;X8wIrrqiD z6=sBq6FsYw&m-6#YiGkRGV6%Z#$<~GOShf~tZFO7=!>(|>L;~_QL~cPb08xdNNi%D zeH8xyVttWZyF|s8cP6hGmoK%7j02bBpGva>ZekSm80+4+l$=@A?I@m6e-qo?vYs}c zm0UmCFJg{I*suIYo@--Uvyu%$RGV;>9Ou&qrDDr%=EBN2G5pHF*Q*I#9!vLSWP{jfkF2vLG4AKGfW9iCQzW9#f5y z$GBr@8Lo2n(#qcXe5sr!et5|5>MNYmo->u>85NbOY1Y?B3ps{BIC|$gqOY-& ztZPAZc@Pj}BVzvmyIg6M06E5cS4-kOITua0mJ-rBe2?2T$vke7eBD>CJu2Xn*yODq zS7N}BV~iCvuF@hg4u#1W_7vL~UgqH-LW6nW`U-XA5~T7#!5atfsp6~1!Zy4`cHy3X=-hA=X6%%h@12#bEN|wye$0IzP(2^rTo?vw6r%oxz<8aSRcbMCI3ai*wMlY%;~!ekjdxl*0sGA2rRYhR+;Q#A zBy6h3BRCZ?3%G)E$FQfZmzjcCC>+%-i%&p`SeqdA3&%ZZQk;&SnC)5xE$6dfkj5S| z0B)J8Z34Wc?o`K64_XtsF2WP?k&KR{kyYd$F&tyIDsZJqQrM+Q$M!v;UXdei>^;T*Bk;gb6PXvL$DV^NHnmo8IC#`+_m@K=I-GX{-muj<#4 z-iG;vDbOE6D?`Lurk$xv1UC9qQN;;67$!0+I^NkJjyAOlu;U>+9QUjL0BX}MH1Q)a zp6Hx;Y;ZyLu17v+x!DRTIf}_aqoD@BVmBC|JEN3`QQUh~+nqk{ z=SqfIZ3u=UtFd_cn%Mr#`v$FQWML>AvXS1j^$D>T%)w*Mc7t6pg^}k~#A~5KdrKQB z^zX8%SwIb+dM~GtYOG~#$&Ntvs``b}nXN;|gwGG@SUSeJ1-1O1RNiEpao3F2iY6S~ z$3ohSYVISCVsn`ru4|RN@eE#T+FDG{JB%|wAC+O;Y8N_{-X(WZPSB`$$I`N|uJ&Ar z;!>|4%3mDSsIH;Q)YY{@-f~^)l5Ldof&TSr+wHXlZR6Mo>s;QQEag%=h-31WP20%% zjddg(Asnj=gY8O5Er6*#gf|W)a@)Ev>6)EKlme&$eFqt-ts;)+P!>jINy_eB=K%Xu z&1BHN$p&40I#zP1mWD=nCB0?yR!5C^=B?dZysGAKv9g@2 z1JqZYtdr>%kz85aZjhjE8-gp)Ebn0PMw+aTEnUs*Z1P%!Gt?ATK*x{{7 z#hjer5z{&ER2(vAZ#-j~*Sd%#hX55F>V(mJ%m>}a70{W?Rkpa6(%~n8@XOQ>(2_&u^_1(tCrz@I?|_!%Wq@vXa5(ytf3}I~8S7 z$R7036cOo(acd|$zWU?l6}zTh3yTS*i)5ksmJ`~!>-{(EK`tSXc@qQEvGlCA+|fIf zOXW8l(}Ns^3_-_QLmBx;Y-XCoGH^#c{VAFqhJoTMxl9^$+r=ygDh#KQ>CJREx^!1o zFJpfeA#b`!&JVG#FA{B&A@IOtW3_f38rOc;y2ASAMkgLrjB)|2D#GgM-knS6&PP(y zE;LO?$e1(3Cow)aBCE+fS;pcd$195U9Y)!Iv)v~M@Nc7u4!;E^?*tJ2=b!thh;+2`6HYXh8iaoNq22}E_*2fEtrvp8W zQeES77sffwYE2w5Tf7RpPVL_{VzYe2kb2gzcN$kLG=bFoz>(Iq^y`(Ge6j}cFuZj& zgBV~*QIJnK9V+Zs4;{Oe060G>$2G0=u-=4s&mp>RFfbtCgH_=mADfPP(KN3sv%79% z)S4sV)meZCzA8s;3veHHaQ2`5bibiblXA!vidO0a-m6n@^!{ z!)dou3$4f4pfdbgA_C67FX~_J!eph<+7n#%WeZjzPG83wl=3 zvqeR;?sM)QIi5EgU3!8j8?lc{-PR)eRMC)|8OGhfRy2@L1co+KkwZ-#P?~7%?X?Kv zi5Gh@$0OdWT=;@u2#jrD*d(5Uv0=aS?-W9TqXW6cXKE9M)C(c+%4dq6N5nM8$k~pwjVC3|v1+r?YVo2TYPi$6^mnPvG zw_}&{S)U8nKD?7%Z-x93d8@i#UVi4$PH`an)zf%;!1h{7i@jAu*F91!MLUAXzfsWgakZtde)GGO6L|LqjIt1dWVNkh9)IpNR?Qyc+PhY#<+cB zQoPh|UTG%`x!Rz5SF3p2P=Y%)g~*VQaf8^`jYx}}DByO_TJNH+uFhE*^F{+4zIm$C zH#}mmNgfA6DvW~+RWM2Gn%>4O0(rh({{StD`ihn**(Jko45#G-nz0Om7!d5QoD>cE<@eH+HnMRvA60 zRZ+b3<**{)-~idZJwBaChWs~MS*UwCBz4o7-;V*|9$0qoYdD;!^CTTBI>$uTuWp6QF@hyHHxe8IJJxZF zvrV0jTQquw>I->H0YN$3WY1jH8_SGJyV!8J%`;Qg7S0$Q;F{q118j&gryO;pg~p+$ ziJf^TfL9z>JY&l4&D8Iq)_7)U?sSHP;kGdhG1MMwnDJ(xdM&Ojj^(j$o+H2I1Xj<6 z<`G_)h61|d1JqWhiS1&&@ZI&it`s~(2J}6vqkWD!`?5SsPtxJi@8h|=)EA$<6g-yp zHM!zB67OBOf)Y~PTBAmzWi*O2CR3-Vs=Azi>7Xdc#z^(1LnoDS48Y<@-AEse zbID#U9ns$Bsy@}6t~z%$0?5P?UvH<)S0@|761ZkidF@o*EwOz2bDRPz%Ujs&-5HwQ zi{AJ@R*Kk_xwj%@DsV_0e@gN_W*C~~9x0ud%N#M!IOp}Rd(&d_wNN#LUeEWB{WOk9CJF+?o zo5_ruO%mQqEFm&fjP4x)u9gVxEoVz9?c!Nbl9>K4dgW}SmfT9`=Qjj4LvjGE8=K2Z z_JEn4ZV~?R$oYLLDn++rNTp+`g8eNP;wzX^G?p@;`h*3HOD4u=?^#3OLT6S!4#1&XelPTXW- zt=r2a4YC*5#9*G{q`3-VQb15x0ISy(zo%YlR#%FXS$^?=$C!Fjl&r2ajKoPMId*l} zIX~X5>pey(EdY_Wh*t%TRk)TXx|hicSaY;=#Ziv!MDCh-MlE*SRJJj_#99ERuOqbkYyNXrIVLz1~ zSqbLtBp!#>r_=O!WQ@;waHc<*Oll5uT^*uYNvFYMD<3OxC~z`V(N_?mpwevRHx}+q zND-HXW*?58od{Fcgm)oDd-3W`y>3)tMVlHg604(_LL+BxIB zbeiXgZ*`=$6NtRabjvhnmg9{3)cPg8hcv$beaZ{M`xlrDPospA&uG-bTT9ZAPZ?L0rGcx}TS zLS4s(3KuGVwa@Uok!!Qe?d)W}b^9Q9bAUprIIXYvMlUVaD~aH`izf=sxCGa>*uI#N zk);R}07(%b2Dr}|YM1F|*4GiTi4T~Ko`4$JP0M3XXB4$L>t6!RE6H`JyGbJqM;v|l z<22{ft@M34B>mFL?X}}0<^qciYUV=}PduE)+c0^}L36g{BQl3F_YLb(>Nt?*mc#-` zr;r8n3TN+QjwvKa{KC&F!mN17?dwk5W1UtccV0Jvzy_%sYmX4!L2G3bO3KAZRpTD@ zP^l>y>dTWQys{*A?D8s%WqI6dZ$RM5a=p>LTK4><@sT8mCpjKOKD*GdaGQ9^9ToMH}HYaJ}hQSrG zhd&_4T4K%imuOx!A;8$fwN<$>U(5p}gJ|QNbL~kDtahxMWO*As3F%U!WvJ1vmhs!h z(WuJzII2rDlCfoF*bX+-cM{#qtRl)I5Hd&SS9G|)v(eeY$&vuvxvAyuX&Bwus%`Hz zThFst+O&ct%P>l-U@tDFdsv}lm2$h!@R44<;cJNI(vt2d(Fu^F;C8MPThRPPXW}Vr z^videD~I#E*v0~b>S@AF-X_&(D8}f`J|6-Zrn!-4omYG3uocZ*%MqBpxFHYWUZZK? z$;|SbyVd(ifU%4=Nx|*|{sDmS5drl;pQH zV$EZ?jhrKIhb%BS&1zrxcH2+Y{=+52&er@$sG0ezq439t=8=L)Ya-fto6ElkBl=dd zny{5SyBJn_F14t#TtR3-3ysgf72WAx6jTpBqbQZY2V`L2S97E3*7M5#V*+CX_h@(m zx+v`+i8dri7t4;gpkByprBu5kV}mE@Xlz`A~avMJ!SC8&qWR-l@qWNa5uz zQEx)N)IQ4g`m9kZwZRa%Y%^!IY)2KyG6`)F7C*Wb@>;y#R=b$$Hlbu<=)ytI3Tx1G zJ$gM|QDh-5)0aYi_qeR;%1K@(^ziW6m{&e1xQbaKv$R;;F;+4UyNbiqFEtHJ=I-`J zL;MNA6|LeMKOR=Q!fIl{B9)>euF0M~rx1T{e25w7(?6{{S#8)HQcA#J3U0G$FRJ*R~h4f z4;u|mQx+7f7f(_THND{NZM9t?ZRM33Xbu4Hio5e_j$-tdFl~66FEpQ-e9lfg)%zQ} zc&uI-gh5Bo7FU47wms@COv|yF6R?4tdR7Z=oQ!3dj=8Ijz{|r^#8Lf@*&&xFF1>o! zDXrhn{ix{Vw9B02cRg!z>7li@NeqW5q|1ZGdsi8IbZ5Dd!6$jnPg>dtmPE|4rqtY6 za#+<&?j%#+C!y=sm_AlNO47uZp(Mp3?j=}&1xD!1F^>4BTRQowrLmL7dRB_*)0fJw ze#X|?~ZA7+nb#w%&?pSypFl831MNJjGXiS6%t!{@_8X#yK%K?TxJ~i za{27#JhH&yhf1p&O3tN82OWBGTg|7b$@zv3Hjz@LiUY#u9sMabG*Y)quk3>mmky2B zzA3TU2V!NB$$W0-t!a4*oGT^|UTQ803V^x)0Ay6$X$i6$WGbBxw`ysS?gb+x;TL=WmdNIz)Ab!kb4G{CQOV8)T+?(r zLeCU}>E~mE_J6tuxvsdcw5Q0ithOWWOQoPmsL?ebDu58-R7>}T-cj? zYm1ps2~-tQd(^76Hf2i<8(j+=b}^wVD_jr<0ALEXw+Sk(t-MN%R2IO&2BLmKG@1FTRHY|kl_2~dN9EMH^5V;6=;{p8M0WIX;=HMEZ%nM;$laree5K)a&KFF~4X-PlrG$jQ`V5#r=3f=<)L zX2o=Ebp@Ai$i02*th@02<@T8)!xWClzG8qlHHy9$yG@O$UEA2KgDM@tay^B0(v{Yy zpISDNW5K#&4;0>NcTNqJghp}*AMFN&iH%9cRDV;wkSi|$q9~F+;G*Up5{kW;QdfsO4fI`SPvO7nSY3m z!n!>h#IZbW3^SMx$}Wo7ghrfu8i{ zy-8tNT$K#C2R-W^_F&#ym;0RkX{3-g-sP1MOo$cPcP>~CifTL1(b}ZA62?YDdRA)R zNQo-1-DTqgu4_)tVfHf?PnM%=XSQf=#F%$-qBXx;Po~od1IPec&A|$hb#fWHK(I$5@@=F zS61ti1_&pp`qq4MB1m1C4*t39Y4J$XXFGV$(y(hy4%H*pboRWwuzQ=-jZBTc5Qjf0 zrv&HNbpX~MfpuYZX(p32rKFE72|k{cyC!nV!)p#WuRf$&kB!*IiE&y|aBj@sNCqerpXEPoj}7hVjF;)Kvm(r z^IU8plycuX@y&HX-X|4RW?6-!^S^qe##a~>ek+KgbXgFmO}{l)x3HG_eXwIHxooyE zR~Joq(UwvR4i0-(Q<6_p7BcQ>?k#u1nG8y>Jd!qgBLy&$)m&+|w}eh+aT5=f7oe)< zu&i-J0(b-40~LDPOqS#ZRbl+ArvA%?-DHm4*;HdYc>2`LkU?$!m30lespWHnM>W9Z zuQaIbEgnPjFyN8eu&x(ssV6zBw7+$qXWnIL3X16b)YkVv*JecaFR&DEx%d;Sh%L;)uk5O7DaWgeh*x^($2Rzos zOEO3>OCSx8TBQIg#C*AMcs;92O^P}0qKaa|GQ&7DOJIzw%X(&+KA|~9jI2w`Ip{04 z)9ho@?L4Ry20XKY%U3-=iGIr?+gaNrYJjd=srRgly?aoY5H1-qG4gR(a!N+L=W!;d zW{%L!GHxGu9&u6uZ#LG2z$c+Y+PIGlTv|h{D{4T?1gcg>W7FQc$uuiPnmKH58DWra zTzzU~K_FEc*ylV#&2z0zC1pDhAUNxemCL`#I^n?}*L$z%u`ZW2{Buk8sN`QTXM(*m zT=tKp+iJRt+RHTFZZjG~9^!try*FfKCw*Cg1knL1NTjO{HjanuRIX&k;-_d_XLqGu zyNts#CJM-mQI&=cL8y|#^HPzbvy04NnPKQXYh?5wuWusmWnw@hwQF1331LT`?2Vli zFKWnG+8GFO`^Dh%T9&r&JVm_kE+#m@87CDrEn`}5QbLfI{o8K?oYSpt3W=+zLjrxB%7ug4m)nD_Y3~B%|b>wK9yI( z5lFfv?2O3q95Sl)Q(9^~zgA5+c}J~ z2EhdWwc6fj*Ad+phbE0%mMq&4jFTCJKR z`3)+_dCmoLm(C5_5~w#E9f!EC>*37L4~VSVSrwzWM^B(DTyD8!&|S^tAmV2OX!oUm zc;#!|u|j)hhCr;C%H$JGg`-ea@In4{J4n(Z33vI5F|^fbVr1M%IqO$*oe1cX5<~6v zs64&Ika!0Gnv}(m3jznOI#i2pGU1pJ>~TfWLtwTNuGSo$xUH*MY$Jt(SkEiQagh8P zqXoG~4ZX%s0C%l46NpHP7hrfLMP}u9VWvWnL30{Puz4+>Guo-$#F0eDa4s{zJwbTfJ=B={I*07;T~R7>o=amDXuq2DG-D z?RtxDk#UHD;2(Ol*HY=bZgM(rhp+Y0i*AM}`Wat=itluP3~8DlK3CcYndORCWgk{%_DOJ@t2&cvYd<__08($E8CwoD8O{! zkaM5Hq!$T1a~WbKw*>)DAl8f!L-sWZ9@jlvxuMR=N1X-ekh+_TPE zfmCdKs-uPWtdH!YHNr|;F26DNt+zX&+`Dl<&jOz9WOv5res`x|qo*txh7%Of$t9Pv+O zV;R&)$d^oOn{<;QPu@^#QvO)QwVYxlMHn1<`qf=pWNUaNmNO74akr-jimR#Ld2w3? zlmUQw^sbsw(BP{#CSAIgHr1eL*;7dox>svxt6~5Wj#|!hHJ?0qPqRbP|>oFn0r;JZzr7*S+^8jfRTblGTP=Dbi1ge z&zu|>&N#&}8ZSN=WSFOz+*W$CWYl&eW4DIReJe9jll>jWdtiZEx7J^0j#(AAU~%=X zb5M3R<=s_XzFdRWwTvufDymCDi?NW6c8F(@l1dfA3Ct)8tA7bBZ93L2cbe_!8ynS)~UblvI!+v z{uQk}PP>BvwD&bmSnxV$wku>{^w5Id=1U8MG!ESGKqXXVbs+_ww{Z6IM#F5tec|Y9XH(N{$zu(~awCkZukjCh^1%6W9f{mB z523F@@XoVssld8z@G)J+zq)RL$N1J2Y1v&H(w*Iz&+7VQx@$zt=+VF3W&Tx`*=7NT zN3D8Y#-DF_W%diD=O}SU-N6?X;wDz1ddp4Yw&S_c@4jl3A-lBYG zYSy|ItigQU93Isy*K86s+6u2@-niQ8YPU4(wB?Qx^Ul6ZT>FxHS9zqtZD*vxacdSO zxCEDB&INF{j3l+UmlzDW+B#Qr5AO8a6kZ3C4RcmkN2!OW6i6g2-!o*NQ`W5gmCdY| z4~Wt=$YES(%DAn z?oQVP^!K84{iIv$7u5Aj22ris7GMchA5)6i*JF+JYnFfcW`)N+$2H7qi{wVGgzrY& zt?A8j`p1c{&xqi+mCTV98C>8T`&H1FxO3K{&pVt}tEo?{U11oM4S=V$ORac9^G-`! zh@Eb2ri*!GA8_{uxAprweKPRP1WE&(mB(@`I&E(9%R!x0_p6HzOrCPtari6G+#-mA$NE=lwi(;ZA&DWTY#w_)?bk=xd;TV6+L zo0lylr|zPhV0+Y>ZkU>mpzz4$QAT(jYTf;ftTTCWL=-3hoaZ$X)!3UE+J>SpSQBF$ zE!47{lTIE8N4as4o-tawagawG(A+(?;6$gpimcAq z+6ei3k(||uWNf3q&GK+MS3fn?kyb63p}T~t0LZ|Bk;(V03y8kOd9o;$Hw*IQ=Zey2 zF^Jp~kO=@B3gs>?Wu9{Kv1ZRxRYg0IakniblelLLK*vh;FN9iVm8m7mUce^2x4}~E zN`dQ&@~JSg5C;|5cpT4d9nI7?4x8W0WL^Ok**M+?l+MonD_u6~{{S9VH=VAd9D7$8 zscKq|t1p*5#EWK}A}ZY)dQM!y=5>y|$JJwf-1aQj@tT6;sUZcHZO`Wohk~;qY z4>RBRZpoto!~n!{eJfB~%E-$m00V$43&8ACPPu>|l~^!8TIu?g2fc9Byk>S&N>RB( zPJ4?@MhAOxBU6&WtEkp3zqPbSNVjfmGGO538s}Qt5KjzFf4yCHoO59h(-qYTT^x9b zrK#c?_*ri?IOT1OjgqbFQrLfJOQ+l1X^si9V zVzAjw`@%%ZcMNgTw3eEj#~~xU?2 z(-5e5&u(i~su8w~XM!7u%I9YUiqE->!m8k@ls4df>U$UStu0{2)ht(z)lTL$ZA7m) zjd9nlVHEDp_{muwnWElLsOWIr+)lDg`3G-7R%B8}Gt^?Sd>F;NHWY9cQUz~dIOKP) zI&tNjJ0tLwt?rNZyb4*Fq9Bu=m6_rVDm_kpS}Tad+!&eTa=9RmMk``iqDzR!mN!3E z9965k7aGJ9{h*N~L^5pa#w*joO)I8(xad2kkDt7^VT=vE$@Z$uLj1reJxM*qXxyij zaXK$Wm6U#Fs#^gwy2=BD>6*DcP8YdqcP1F5fQ5_>$Em5~)YalGEQ%RZsjTUuSr?Cy zLFg%v+a$Km$2)^<2D52yz=6z{H!KXhnZEBd$l@kQRTfDkCk(rI71P^j*77RKNe_;y zF;}C8I6x7g9P)i?9wN%fR%&yCiW3R6Wft+H2>E4E zlSMkNOJh3NNUd&pL#LMQ8DLexAxV(!J`4aafbv(ra9 zdAE+%YZ@i4 zo2H{+%PYSw++*;rR`N9nvJei_z%^9UYUWNBG10!uaCb8_kJ}i=dQwYqv3_viAH9s$ zhNpM?i)orD%NYPXdQ{Ru4DBR=3U5wS9EvVQj5y?tq={r>wYkdm6|W=1_9wVmS)=Y4 zVB)C5X&>7XQN|PvxZ<=Yfj)NF#w-3t?p`$%!41 zVB?_0MWNVQ*fbX&Ld;%4xn$%TlV7?EtlY;~$3T55ABR>WSJj8xS!K3$`QT*8IOua(x@o;k zy_sJ^&~X9t~QSOHO_d$ zTPIJlx{4DmtjesUHV4quDg;saE1jeeNjWDyYZm(YbLcK#AXT?S1;OR*%g&E-uQz}xA?dD)quh)93~jP$Ml0EX)Y--=Og z;8~X9HYG{nPC9|>T1{RcnduE`lHfXQVe3@Z}2&!uT7 zA&)16T&^XiVP0wJr|B_jEeek`u=#p}*c#-obt$f`q1ZwY+ej^*E7I>RqrLE!rE4f9 z6?du6Dt)WY=hI@dwYRy9NKu%ZKjDY&&wh1S%w8!hSCDwbef&~Hg|6+9%-F%fOCK=66)RA#Mb%R z<2yj)Q!VeN7SI>k`8#|S*s%}!$%+9-3n%G=O6PB^Y9neApFxPt&e0^$0AlSi&U92zVglis^nH+AXG+ zdvd2TO>csFVz1ixTTc5}zL8{-UE8wGdevSxG>s`HRPZdtV$^i-$1y(f$KY$LH}@9e zMIoLxUH~}7bF21!Hsa>u#t$k&4&qyOYaZ)TyttKo$=d{U98|dLbamUBHfHqtqPC*a zO&E{NXC_pIwpb?$7w*!ILksCNb+XC9ulxu~R9x^|bV z&lqVE5bT8T{0>XH#*9M#L#iEgIw*Te{?ux+9YGDnU8Jw}ni zyU{Pc(P;a3F4sfRg;`s}aX9b>sdoYy4vze>k5S=vsV4St8?YDGXge;Ut?JMhNX5qPj6~u4Fr*fWGlhV zTvslJ6RhN6!J`IND+|lDOEcoNd_AWnl$ zw6?qZEKp!$d2QWK(vN9<4EaajTU=Y}*2!gujxmXPVEs*Z9v;-@y3^;=MkBdYEeXwV zmnrtWCiV=pd0g*P$mX;>FC^BN+EV$<`v{9I)Pw6&d&F)w(ADwp_FJu+UEQg?g-X0= zK_`y?0F7`S9p7!QZ?fD&$TFVQFN|YYJZG%q=HDn|p4<+VrQkbwmSzxi!Z>2tBKz@fjayfMbCEwa>~nx722~fh>#xoYEHDrw2W{ zRO+FS9)^*k3O8o0kS&}>d6{vLtD3wN!Sn8A!sq3r(~yftbYi8OoKtV5+ix(zCxMb_ z0b1eY`y^##=2kA*`qXxpQdwR>a-=bd!}HM7pp~zrg=D}xc7g{%UG9nDD;YG$x?{Rv z`vGOh9CgJ*l0_wRinX!5)J*pXq()hvt^mo+UW>zbGup*6T`ZxF8B?5nYprhySQuJq znn@YBDjRD4LbNUPxNS7m7U#=VJSY{-Qol%@lcahk0y z-JDVH^Ocu8ZSP#|#P5A6l2gby7&OvCfq~Je_G-qe_cf>1cN|*9jCXp&yw&dQ{7q$g zjl8GIz;Tdzik)1v#fAYq^r+qxdD2z@ur*Ze9YS&DRxHi6rj@o8EZM+4DXDE0z!Sb% z;Tu9XAP-te7~%bR=B2awq>y@y8m?=yWgAAsQ;Dyv;}SSV-Sdz3MP|=)HT0~Co) z3C=hbsCIyIxyK!9DdR|No6B9Sdy2To=6aOvA~#o&L>Q6|K4Y8#U93JLD*jC6TnqqI zatBK0ygo!%QB2Amq+uUSU{!w=Ofc?t9G19pAtoH^Z?drnihy3*|RH2v8IQOIRD zBkNdDX%o$Pb!jZ-ArQbg`_)fO)h;isBGfbF%lAl+fIzJcXH_=UVY+`nfn)LLnV_oO*0KDAQk#Fw(&`S6v6 zu2c7bayX}7$jxTA9UeqE{41_8aoqFeE3&y>fRqMcIW*u^TANe0q0`qLssg4P(+5~?=fp40(TR*@vr;+{v|(cyO| ztz*qDE`+{k%E`9`)|Bup8g0ZVPQpuL(AOnB)36BK?W(Yiq@7;L;%7KU>}tH%OXY3n zaQ^V6@YG9psLd3-hg{@!6?4QEQABNuakvoP_^jO0b^{;n8}X7bIpd1E9L%eYz~qmY z){@HJE!$l~{Jl*>H||^k&eO(d=1)K_-(MfKq>-v9zz!7k6=TEGK=+qY{gyc=2RMF& zeJh@o!IhLQ0bWLF+D+7!x~03J$Ym%{<}@X18Ca7cw> z`ob9TxpT#ORHw}wo^3^GG*h}ju3dg$+;RLhUMFqp7c4=|UvNI>V^je0pXKU!t&MJ>3PqT-1+;g6osF78Pb{X%A z5*+7qs_>SqmfDTggDDo5ELtp|xP2?Hk|HDry769L_Xg$QjzJxbdLEy0_u4!&%gf_w zKDC`#^(vdz#(#-)HP$VoxlS%Ea>QeH@#$WFf8o7K*G(F%>l#HQglt~Iy==(V`fSpv z`J_HyrUg}KBDt}W!ekE&sB#Zuj-s+v8bwMGndLf5u)U3164^g{IK^}lTD}I{GiMAl z&1X6_ywcgm*jU`CY;#YBX<70w6cuk8f=IgMTT=5V81xygH-NGx3rC- zC2{~GsIHexw~psYj@nU`Wb5fz&2pj+HdG{MXvS&!PNzPJszZNn%&il00qQ%7wJakf z1B?T-5l|T81?QeF6C|}C(9cnTmg=?mGI9{p6f)O z&Q{$V0Ld9Vk?mTVrR1uK3gB;GN&IOwW^^K0^kt4C{Hdp4F=DqUyr{|k5PH?cwN^!E47lhGNirz6b{X8g2&~Ny zSecVhis3}b8)Y-b-fFi4L|ZJ-Nh&rr@KpL&J$q)WA#RF$irI%&d$BBQ5=1kOIn88U zUC3RPus{Vsri9E%?Z9BcfEn-Jk#5X$ZyW_bcly)aj?T43+jep~*2xmhd1j8_iPM1n zb5*3tQ-BE+>qEOlnQ`|f7^XSQVEXmN2?&-3Zdp(eqdwK^Fo-oBCrzFps=inS6OMb= zmD;YvQa_5l2f>oG{usU9Nif_Egq-6drlQcOmfGKX-CD8vZenCm!@p|t%|BF^!yY5I z)Q|>f35ICM>MPPEkpAI_1%cq#3F5n0(^|X0#`ReaIONuGc4KB1w|N$$t=!&5n^tx& zj=-9yYb2I;P`iS$I|Xr)xnA`qz+3~*2en&<+9^CZZY2!zoTw$bS4uIQtT)B_WEyt1 zKEkW^S)*57ue+^h+Q`_9Bl&En?`EnPxk6o=u*uCxgsEi*hT@c!k#OABjw^V#2ASF4 zkaOOml3XZZ&hOH!M`ngNrIngS0|Pu_soW~7I8^{+6`I`WdmV?v{Zig0ztgX05k)sB zao^Ilw>_(bFY~F#JR0*zn8d?p73qKp^m|*kAH6Y*pIVxc>Lg|BZK+zHHUe4}T(;9q z@a?^}w$fSOsbMI{W5EZ~uNe_i7I^o9+e(wcsTx?VwOctY?b0*61CI5B*yvGmiDGLV zJHqk9cOA5jsQBHVyI9v+>JZNrmAYk*%)=+^UG@F6S8-k1NTbUm`PZ9iLKW8JvYHi| zF}Z$kYQ-kbSuVz0+N6_AM6n^-IB=QCs?xzV)Qn=Yk-_c|*J}4^2E>Zm73UcWDkaqJ z*cB25=di8g6E0JgheFiuL5^D|jR4@9yAOn}9G013L^%E~Yhp|J@CkBBI5iFB>)Xk> zazO))+*R`2IZ+S%A@OkEZ4r<-Bbw5-fi#$&6`V_w4snXblU12YqbOx7P@Ps**t--8 zYMp|~8}rHbhUAYdbH!up$dKB*MhOkv4%JPs=XnC|z}=ix+ozT}VIo3N{_-9{s6UTd8DfMZl-->7sUe<0a3w5D0(zb( zU~GM+%RqrX%AhF(5PGrt)hP7_)~1#hK1LUSPu{7uc?8;Qdyo!lmA$Meo75bDJJHGn z7S@tObh~B|lGxnCj8{RXcy4RBZmz`2k=ugj-yW5mPw!Q6kT5_swWrL`UIhf0dIStMU+Rg&Qe!BO=Dts z))|^2vJyG;uD@6;G+iwjw-E?Cjb&-k{{U#CtfvZx00CT5vUfcSbGX8hG4CZF-w~J8Ooz*o+(x2 zxka^TfFFExH3*&?Sd_s&@}!bmfml|)Bf7i1)FPEs$8Gl%99Jo+YqvMoLevF@FGQ=2 zCd^!}Zfia#h|L&%vL*<89Dr+=Z9?N#zE})_QMf|KfGU;g5XMzkl6fYoSj29hX>x-- zg?7R!2#2ZB$EV)Mr!BxX@j$pwkQ^ueJ-9J&&05kfPCLcb};1lCru zA@X5S7-%!eu7s@hIFl#v z?TwYfJkm-UV1DOpR65nYt-Zi#Tik@_6_B!jACpqh$wIhwO1{vL+wJs^>&6P_YwH4&I(8qgj zkw_#NJ0BSKHH)oje`rZB64|Zf&+h`CzAKvWp0ho^sTu#0ymIqINXKrqNRqpihs)TS*d2@ z+$0B)ObefrBq=mnIk*MAmhDdPPMdVRq)r=CyqV6 z&D2ctDT*v^{3@fYQK%8K75DF57m00t!Klw@j#@PXZhHgTxu=n$B}NGM71vH&%IBFl zIJ+^7Rk4wddej7Av&pMD4y?ouIts5LJ&r3;M3qnl3_AA}YBnSVVU<3WP_r0@Pf8<| z)S*+1ia}=07%pBEW%CNBq2{GG3oK!gw<)Nsh?K{~mQpZCv`C SRg||Oepv_}n5WE`kN?>?jQnl@ literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/arching.png b/packages/zuladungsliste/Resources/Public/Images/arching.png new file mode 100644 index 0000000000000000000000000000000000000000..eedbbf7d045d189fe73b4d53a24f8370780b5b4e GIT binary patch literal 111851 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/ext_icon.png b/packages/zuladungsliste/Resources/Public/Images/ext_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eff3a45089d96192b44b1caedb6913cd7be13b GIT binary patch literal 57099 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�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 bGcqg}JEu22{&G130|SGntDnm{r-UW|(T;XH literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/logo.png b/packages/zuladungsliste/Resources/Public/Images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..39a36230ad3f39d4adf8dc9595887860adba1d37 GIT binary patch literal 62553 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≺;^Gi{UXLm7kZivWr7xx zX4JX)oYhs3QBb;dBN;GUuwF_th};nQFOUPujp!$?*C;ZX#-%9ta7v@?vOMyor4$On zDUdv9q54yO*Wghtu>X@8)Tq$y2LXpAruiMdQs6%WN#c-DFN&4okl;@cK=M*o7Pq#+ zXm7Wi3lg7A5@(Xm;dJCC8CqCSu-ae(`(J1vrBX?q(dd7gP3F7f(R!UOGuVbQdzsQQ=1 znh>lQi;97%0>PB=|6r8SB8LM8ck^=Rql6Y$&z?S;&KAm1WQ2q??lD8BbEmIn+4YnN5V-j#9AtAvWD9iU0 zFNS}sDpf;#i?_$&B|jUM^d_p0slg*Nes)tD#i)!{-^^!dwRLVa;Z%rE7xaf*vj?Y| zpH>O{u)p{$K@GyTJKTZ;)tqXZ-R5Jb={`x1@L72-x{Ny`0-5d|>K;r0SHV~rJ|iPA z43(65$8V2JBR(F{oKzwWX_cl^Tw0Rs!Hw}715+SVabzr6gFod!Ox~P7{S6M(ZT(-&@4}Tz#EK=cgG#Ti2Qzhzry{zi%Z+0ONRYkazm>l7XkUzw{efB{^x@*r0*7*+ z6NAMC_;kW+$$=eoz(r6AFb}NhCS+1&{lX0isB!guYcUcqJko2CC=lnQD3g}fWVlWB z8F%SpOMWkfywjd!?-}IgUH@ND9zhza)tV3|NYTBC3=|{g%#4;x6r$1C!6g>BoX%kf z2gd*5vhR>GQaAlku~G~dps)eABsSB_It6%iINtuc61*#A18An8{Po3O&j*t>i=?2U zS{BhnrWZ|%M+u1Q2yy#%@HRk3LJ2_3(6lE!UtAiQzV$5dN!sBrQoD!k<@&3?uW zHl}_{ltl#3@x0>rLDIh^_FiuHFIMY+@$vEfbK8%O^cuz>5I__c7bhel>hA>CLY}zH zK5@2G&HZ#q5=Sp6*1>0PZ4V#49yh zqahm3ELb(~RPW)8#N*2)U78Kz7!rrmbqm?A)1C%G5I8O1ev(nLUtDSQGIBeoSh1;10EDa?sfz(rNwq z%-?JCUe?2d>0kopyXDZaa4i;R+UF3Rmj#3Ls_Dgv{0sHf;y0D;*O)_Me05xrECpFf)6k z=feg4Sl}QQ`btULjeX?>*3*JKnqjv!=0QiQL;ne+>750r?ubfJ4!CWKo)NrurKiq% zia_f>aXDZRrQ{K}`vUyj3!#T7!T{syU60jXll}#oznq zdEHHTclEdbFHmPx%dT6+3Vz_u?I2!^f`WpOiYnr0I@5DHiIIs(LPEk|e1s}oqr zMCk%EV(&z~o&Q`AVFnnM3K<(4qcYRQ=kw_jmL8@uXxrVR-Nh~vK>UCc?9djurzvy<(JO9`!Qi}Dx|7BSFGz?FqjI5zA`s}3dXE(p5RXLTlv2|`>vy%I362eC zr?ZL&f)M_N?r)~e{<8h01}RKmLV@$1WrRs!dA(Rm$lSQoRZhC+S28v^d$(MJ>*I{Z zu*?@^6~&Spz`-0n-H^y<%r=UezE}|e>J7cnuU`~te4rQzErl0!1;Y~E-4Lmh(1%_b zj(3VR76JC^@vm#xFki3N2M(V*jYuej+1#RW0uj7lsZ2%B`D8ACh%imKo3e(GzYd9L zDG1R*)EdWcb){GGa#^Z1?pcLo&!rPdB>smlNY0_Aql-PS>5PHLVFl60#1CFAzQad) zlnG=341Z!gjnQ7!z1$b-fxE6ZjAeM^=7d2t+QI$-$6@%l0@-W@fY>Hy$|uaM_W}LT zV;Ryx)9>Es7c@gU-~2CPLV{6aZ^7sTU0_GDFr7Nev;#-Fsa7z;0y!3_sFQqRy7rbF$HDH?GbzXr=N7my8p1 zwbkkL`3PL>_I!q!O-x7_s52Pko{$P5nvQ=HSvgxji-5F3Tng;4oS_{a#(P&M4Mu>jnrpR}R7tyTYV5NhpHBTMBqVIA zBW|f949XAyp#cWpTO(1+t!bPtM21NR3uy8~(q7D4R4sBaSB?W)@%35h^`R;z{>kUeD?jLj>zOv<)&=v<`e z@M<*x6nw;a1`z4sDW5|Y8nVWEOA4;Whl?$_VKZ0~diNoh3 z5V(Qa-`@|1N$+N-sy5#k$jb%ojtwfx;?#6ECq_V5B8TQWWpmw)h|Oi>|>B}=twol5!~BK@Kc4W z0{bpPIjPy=#p6P9Ymh#Q({BA*)j@U*fwmiY?$V`@0;ZajBo`uNUNTAE&+2}GBR@$} zfmH$%KeAHURdy>kw1F3oW$oxb1Ejl&lUMv2ZLP*}XHA5?H~ z@NZJm__VaK93D?@$U&>uP2s;0d}w^mI>#pB^*SD_6(Q;UHY8A|ant8bzN?ttL0 zN@+ZaScCa|0adr%Xbj$_<0OrTxFRY&oOQ|M+42Gu&5z%J=vTcJV1%o{$~nfP(q+j} z$6SL}t^tu1%S4IHvLTvmI)l;XOzYuf{#WPL%uF^{I>)(?%k^sTD#t3dnzl@Xzf`fr zA{j212b|2}%g6n!yTP8YD5^0sN!V{n7*?6#ZA+6So7VXB^l>@9&!7et*uk3!m8jvF z{;=%8c}JbHQJ8tzjrj|hGVA~q-+)L5f0M?52FQoO6$A5L@_6 z?V)Qf*E;Wamw!ITc&1(7ylnqYI)_fj;z_t~`hHbuG>%wxBHD^t@5jy!L?GIN`38Oo zQ+*mcRho;yuqP$>I%%7)(Kh`d*KC=j=0b4ZSNapJtMucmdN^H_5EmyTB@H&6&REv+ zPo{|Yc<%i^jG(UJUu0fNB0gBQShlU!^$3yI#40CNt=1eKizlgHvj%`ddWXwnAYj2S z@i`CHk{z8!2c4HKYgNMqr0ff7xM3g4^Ae%|lKGTL`yF3J%w`7ru>J+TPq0(dd3D!S z>iK-N>HWOb)XVJ8WVP50CwLoLQ;z-h^#us%BZ=i62ty)qJ4!cuFjm#IXfF#QL2=TZ~*4bQ4} zBQmTPqgni_@^hMAt$nmnEW3>7WH%gq9ivtX{Mm~77&UyMP}!c>9K$Z>2Nzemn59zb zOor-^((t37tNagMOXXY6C7FA_zdVa~GY#M1u0~r>Jn3Vs(y~J=gQY}t;{%?w&?^*W z9ikP4I~b7%Rb(pk?sP&a&KKfSvq@=bW1#Te{B{RJQE+gyM%Gweue8ae)BOHSR;kwq z{1}}7)zUCACE9LvxTpLPRDvxL+n>11-VLtW&FTUw{nzVy{SU^8-{tz>G@6>O|CXtk zx$Sba0L=%439VT_Wl}Y1giOeJL0nCh&*}m&Az$||J48y_~G;ugygXOb?H$?7l& z&qnWZp&k$zsL^I`(2W_mx29x4OicXp^?uD`piMLF-&J632cc(PE`o2Q-;hQvEj2Se zeVF_GQECe}FpYU_rB*t^-#AIZMps#f8h8fB_>V%rjDs4x+I znK|={+G4wPwhUXFhM|`>HO;myov0#k@Yv{4Qjj;P-F-JftrDR`j>j9a+Ps@e0fZ!4 z&|ZPw@RMIDCOPIBV;Spuzv^Vqmc6^b{}H~&;z@q=frG=t__(;fC@dySCR6EdbB?Rk z`amL~5c@%RHv9L>R?o}x#Zm;j-p>~DMESKee`j}gL1WUHlSNX6@)ucXw20g&EGE%Z z(?;Yc?0IGlA0pqdjKkADS0OcDkHHj*IVu z2SYlSz#8NiUl#Js@{^y7drnI-F_}!^PN`#dzT}8CJ;I9XP`?soz216mOWaCC;;FE}jC}5Gq}@j)q9dFP}$ z8tsmxKVsm2=Ubg@m1?y|nRYz}z#5&$0)PF+wTUSTzV!R>StB7qLAU#9HlEsK8xzuH zo;H
@`&X#JPR>k4#^BR$xtJz-1=5i5DCsGv(_kVyu+5}Mk+QVG; zA_GV9Nl7L)XR>*;w#cs@MbE3l)IKks+l>-yEG5ie;@`t6s-XRAo*U%9uxF1M>{=7@=k--O7 zW0oNhuW5Nw1@B3qOrb#B1ZQ9#r~B)(Lya8?EInYA9BR#F(thIn&)$jcGIdLGZ(9XL z?FN~W+m@Hs{BcK$z~w`OM;!=#eI;OTI7TZ_X~7kG9ByH+Fo(y93b6SSF8;|REHBn+ z<+}c>h?^Y4EG;RCz})>_zhu-*E;A-O#H-xc_0k;&(LB>s;Is|QAmWNToeh?H(i)gBQ@nxGBS+Kd=J_qqoW3g6KT-BC6c?kbYR=^b;x#fu(9hKC^mxM zR(SP}bLTz23tnIhovKu%^14+oIb9z3$6pm$yoedCHQRinrVg=~D<0)Y&Cf-qQQr(Z z4=@Q@9U*<2M_CSjHH~du|BW=xI8FxW!zwGis=%PF`_t9^SL)^0LPoweCgbYU8@L?O z@CbMLAc*u8sr(voy96fXNC=+UGCC?k~tt|risd+7m+-4K>@ z3u4s@%e=p%g}-gm_q7#=Y{8mB+K2`tdW#S>?=*4LEnDnrdSS)IN|=QNqNkH0)EZS|isOfnp^@pH(o=_*J0D}2(#+KNOjPdQ>Kq+Mn2#tNfg2=|kcD&i?S(kIP5S?Ko z2%UVsTJ*ru9Zt!`mE3XJ9sv{)Zf~Rzv~}D{NPo(JueJWn>3oe);%V)Q7RnrJEqmhB|I((X68us*n4e^hW zTI*u?w?M}2{{==0j+cQk?eSd@zQ%pL?8}}YE_S>LSy-J+m|@9`fQ6Yi>&cOQrOnAK z2&wO8Z`l33Zn%=|5QX^1?_aT=7{tVrN^*RIOM1SHZzQ)TD-F~UxXh2Uyw~T1@?9~3 zo|;MBS9(hFoY)&hTH`R31JPW$+o#O&xAN)F1v=>DI;-inos87G(kTC03VJN^%jr_? z|6<83EI$m(-dBa;`Tl2=v#wb^(|{bwN1Hm_fIu*+e8NeK{t3Mi7lL5sbamyrJDNI5Qqv`8 zS3=RfSgIktJDjAitNFY?nTu?5Kx*S@GoOT*8IlrrjD)fGu9kZrrsj*gEXwqZMb;_Uc(Z{f4i9(1AAQfDzo#m3Gq zMf@93!MXQa?0V3Td92&EIPFD!cLZYYzpwS*KR$l_{J9PIsyE!W9z0NubhNA7^$%|t zhOmgg0pqtpJIm0RNtle-N8SeCH9FCDMj<-Lbae=xE} zn@KRic54NvNrpu-^eX4vggpMX z)*Cxw4Sh;>jHVvAIu{BF;>1Pavj+pyJ@Zsvx66s`-oUE2w6ruR*c5GjK*9vvS#TIN z|5Tp=%^Pq?7#7nBJPL}xkdf%<=&Iqjb8-TV&m?8C6Oa}MvMQ?h5ck+6Akr7O=T5rK zb~?G0mj&pPcxLS$$#60Cl`j*8V$wENJ84$ zL^>U=l(e+)VhX>XcS2sKd_R>=!4FK=TOAm*nvsa;e5PEOZ~vZsd`tB;0m|t$VG<^B z@$r4@ZBFhdMJZ^)x$|z@zgruol>ewAfcIu#jB0wPYxnbh1D?w@riFk1f|8l_qAk+3 z-4BwI5Mb0e9UL4QE#`)-maA4dk=|@nzTN5SM(SZQI1rLS9z!XQ{w^;EwHvYosZvQwl2> zLg8GN=?rHz82UHV?8l2WwPW6e3bh#byF*s*SLYYiQCZqa*X;a(0}Qq+w8|g-4Bcpp zA>U19)W5ABw#4{ql|sx-O~v@W?~zJpa?emlg8!_kwhtZ!CF)k%+q#g?Y9Cj0{`Hno;`m_K{n4Cq@8Nz85*$#ta&R~dV;KLb>?)ekQGwnQS(a_Ux)6n*v#2B!531*XZ9@zDYzk?k`3P-!X3}`9VTJ zFvxU;?_LUlUH8)3nNTR|q)J84Ni^Nb{)Ftqz7k>L-U_0ZOLGU1b<}djDix}Weu)zk z(jHHjIyNG*KLQ2%DFWp*6QLH`VUDH|bwWB^e65xWyf< z@~AqxD-pM26UN0)J%Jr>4egraYM;D#9SEImfEh_qQ1Ij07%N?|=|i7mYVCMj!5!8y z_`IG_6L8u}N8n8U`XyV}2v^`c$L*wP)hr9wfWbb2HUZj*XImPLAn)YR0T--6_!x=~$y5-ed(g{vASwVL z($LT_Pai5(C;((VM#IsJcTHq2?BDG+r4 z74yjB`XT86vITr57jk6I?zD%B5dz!NbtEC!yMQrEw`5s0+=BJ(5+}uE(C0-N8<&6t z2lQK_YiXQ+=|*_i^Qy|ZTVs+(pq~X^Cdgq{Dz&gO(O6P4T&*{b`f1Cz`){1p@2Weo zE-STc$YvH{I1=ys83@!~Ik5|McZ*w1A-^_>G55~wgx>L$lfQ{s|K=l&t0kk1#7)^M zGTDX{<0+b|&w#Z#aJH$eWB`Cabw;HU_J36{aC~fNPXCxC>6672&C-2G0*T5BA~Nr zOztF=bjDQ6dIbELg>W27vkn9!PKDuHjB-}<_A_g{sW@-ji*vuQLPDQxVcsq~u2NZz zf|rcmp018o%yJIiuDYqee@_vQBDmQJA!T#i|5}JCgbPSNUqPv>z|O2yCpr}I)^=RE8ewfs)bV%69GEI#(jc?yxJ$WxM{<-kt@pa_$YsJgrjk^JhEk4aH?< zN=r)4XePMd9o{_e#X#o5tSZ2A4II`c)UgKrN}!5MN;=@I8%wCHWT=q&kkq;nE-QG4 zP>)U6s!TrpV>yk-=~{$E(tZmTtJ`;YB5FwX|*FB6MBmtrS z9`Dz+i{<0vBPu3_t#GZ;?o9i%=~<%!rGjxv`2Y-|D@^K>gp6BR76-A*3Z3^doxtMg zYCK?3h_2(S^qMTOTef_7Z*FepE7W30ec$Vr(_#UHHzid@dip74l-uz%dAr*c6CbYt z_V9f)jSMJ!XftxiprOI@=@KL4(D`&etUm;meST-E=lw^DzF1yexkH`lu$;ni60w|S zb@X0bM7bAD#821V_ba_vD-}r}2ysyuv?#^97r=x#O;ThK7GV)v*S#TsniQ_Uu&I+};JWQQH z3Mxr}si7eFpNAULnNC}!>*1}6E*I&cNgQnEz<-k*MLP{DJ71$%$E3s!?P_teK?VNh z*ss^QRMGVn{y8HtYRlCY;ashj!FH;Ymj+B=<@x#uz5jiYWy2#i`1}XHo}Dn(oVh#a zYiW%3__pdvjP>eP!s3%uFi5}^y&birYc`R}8cD*J-ek43TSD`fbk5BtKRSQl z2_*|&ZFXwmMDeXOg{BxqoL)->69LdS`hf{ z^_CM)n!P(OItjOeBMCRdDHC!kJT{ZmI+x!!nX$&a>iS1r4B;#fN#y@oW(^XAG==@+ zp&<=zj-&1zRXXpKi)wdr_{B0==b^)Lyx z3+0g1)X@!v=j!N^zD-2aM7=9uLwmA*Dn%+?wyZKDz0IR=lXSuj@9Erb3>y0U6Res) zVh`Hxoxs{0f8dJm+bGG;5lCpJ53i#x8Zkl%2~;Q$2gp`6n04GZOxkcG6^}CCH})U2 zb#=2B$~5y8CVkbHT%;I^xc_?S-$JV=%JZ(qQgM@9My_&B%+^&Rh^8ZYpTP5ItJf1h zchkN3DVEX(ZbN+v`4}r3A0OusJ&o4gN`?}zrQ)>y(N7!a#f)Qw^1LN1YW$3nUxP}r zlTHy4BV5NDF2FVDZbE+iRaGZv8Fi8TQ;N&W$MuH*4DesTPDy^66epGNgZhL+76E6V)fr>$m%n7CjRQu6* z%E7A=v_)wo%86)iN2{8nBo^MswN+&uw;J+k0iMgWK56lx9m_)gcB-RVVi;SAe=hP9 zdm6_A*+Z`07xarb;x@REt4yg!a)mQmO>?RV0&^Z}OtMOXeyU}Vg77T`e>_n`6(DR{ z`9a}m*H`Dt)s5e&lv1r75A#-)(~3L5X1b%GH~u4|0T{u`=4`GW9zPPO<(f@ZJerd{ z0d`}4em>eS_f$`%@WM{)81cF`r=!_C5m+iYCb;d4;?e&TuY>bsSGOy5zoM3~%BiO@ zVx}o@Yu?hAC#UP?`UI9}-Z8^x^KI}4UA!K)D&ys(jikTRKcT2~q4+{}(;*I*XNfR2 z6+q4H6Pj^-jY$p$3AWYmK;w&`oiNcyW1+9K3J-y;9_y-tfuT_S5*1R`U#!$nRW*CQ z-l4SAemq;6YOnHjD-YEzz`!?NsN&9&1r{4jr!z_TUzxoVY3wJ?H)6@IMT%4YizOZ% zZj&3ds$f5IzQE`!9z+lo2-_HtpTT1hMLXz-o|@DWlMj^G%YRMu;~$d}iKPZGrDt&) z#2TlUW{K2oX?(W%n;61n)({E*caTTHj3_B0K!oaCd9&ij>Cc@Jai@ZRt)!eJL--wo zlr(12w7~c4vq&|{cC9&zzUD8+90xoCg5lHU2BmAfxR}^XkreKDf_ys6cIslURJqRA zC)Uv6A49z>aSI$E7fqA5P$FiKJ<->69D2kJ$z#!p(XaY1XtnhnujfBwS#0g%-Ph|< zdsOus%K2#W<>E#$_{N)(9g0!D%Zl=)hjhatLz!DM_|2Ka01gxe)Jpl_2Y?xwQJxnRInlbmJ`c>lAcgFrd)l6)p5D{1>->4wmo=9C+g=n$g6NOxX8sBc>+FfX zXG(PRgrL1TCX?>m06gFS3S3YHx>e%F!tUBWLZ!1<#14|SJ&;E1h{n(Z#%KTS;^GNT zgyBiebJ5aOm%}87OQo^zlbsg`%ABcXi-iJ$R@%C{)RSey(J#loU;lzM0d& z+WrcfFX@)R&C^kMUK!bQmSxgucixGYV(L9`WOdjTb-i5wHCHU7(dKB@MaDOFuB<8|kx4%EAIL?7|*+}YWYPGbvNs8EAsRK}}Kv87|({@<<4LJ+Q##^WH~QDc~xZ1lfbFLBYoV7p|t9Mezf zTZbA6+4G6>KrH9+y7SXViHM&pRJe9z6&C&{EG)SgG%_+mMok?e9`$#4(ffWzV%=ew zc+tDc%-ed8V(P?G8Ruho4v(<&@aJDt>9V9O+CMegr%?8|`m{C#gnO($KeTS?Pq}>^ z#^@&C#16tLm2G9@_G5R17qI3pcg#fyaHC!!t2CSFX7EyrN9W`OWCCFxEY@3DtF&4U z!>F@sU-1bzu2tE~Pq_|m4d0!cYgyHU6NT^Ky#__>_d>KqG_vTL&(htaXe;*Khd00p za%uMWzq4Cx^v{TYZ#k3=WgvF)j3?SiJ`v6w6H-x8tOKzNhe`ps;T7~8WO%E+&#eDW#OojM>4Ji(`haLsg;6wQdZc7Lf*%nDG4R1~WNk^2EqS=jN~Gz%yd-^<&(hh$?%jW$e7{ zNgN6^Nu;F)In(V!2gl*8FlT;ev3&#lfy@L@erWoP)59NrT#fL}1~Qg*F{h<$qKYK{ zUf6m{9%6d9%Flgp;x7A|o%+-t!QH>5Z^qgh zv@05-b_|h$$21q@8boR~1{Ip^`BqLQX~M)ds<}0rqs9=RFOR|4;w7;AGjf^Wlg0pi zC(BS08Axktb$l7y5^;TY;(`_q`8yz6!7CZmQ$TGMBx6g%DYzCNf$XBvV|Dz!&@K)~ zsplX^2yRVJWNBU&$-=~mz&bi=P@q<1>$nz2WA64+gZdn}2_Fj}7RUMIc-w$?fjis} zC=q_LEww@I{HvLwy9dp!(#U%DG%5CM?F=N0Tuz%f%D?( z<;yXI!kEY!1%XUSDr6g&yHinG2l>prhdOE=CD?}6uOVtL1=L8#5E zS8u~So`t^n2qMj@wiLjVz+;pt;O0A=Pac9Nw;{a+X$5R5wwqg`U0QvUq3Spf(FGz$ zN3p5Zsx4vcOh*4I*0Y^E580?x`m8t~MhpFtSot-*2&S!%F&=uML(9ZpU+9nv=WRw{Zopz8eH6sA{wU{Q(7+iMc05&K7JLbpHE6b@&D%e}M0oCn3*@7ns1azzlq- zNvX12Xs5~u;8VbgE~>49?T9c`W33l@jbkP9uw|oxQ3aE`%jRVG@yXg&<@m zLct|4_oYHo9%{Rgx-3K; zpoVQkGqgSpN_dI+AxB4Y}jkV^@03Cx4( zh`3xitkv&A{|V}-2qN8u{`pCaP4S=$Ph;>EQXM?HmUgX1xX?WWPp$_RlCQ4-fL+Bl zv62?G1<62Iqow5NY*eduRs7FBD)m#)Y{I~Fn`y};+1I1hZw?ZFra!- zD7NdH*QF@`CWxdw^cAP95q%yUKq?_`srkLCUH(oUf+sNu-a{J1-pHaRL}DJsj%3hH zS3L)GvWYffKc`XFfxnK`5XX@H(<~!9oeNpza|teE&{nMm8y)ENYCY{<3a6M&aCxDsMR8`QYYV>q91 zdjuQe5Se=6XJddDfW@3AYDP6dok1ubJ1_xw29MTi0352&dNokA0gWmz5?V*KB2t|g zn-Va7Px5R+auWqSj}$K{eVF9mkUE1V?t3tH=q{`EuD9r+Ddf)z5h|@V3 z+Y&MMrWO|{1X)=)5BQ~K_w4+p&LC8t0l*{3NjycOjB1-8m)fg=UF#ZFmz}68atw?E zX_&t!V;;{e&Koe115sY4&Ja|JI)iZTG(i@!+)Lr*1jr>tWRRkE4@d10ZjC#yqkM=A z7v`Q+%zdetC$dTsG(Un=;r2ChDw>Z%D~*8h8dMnT!0W{s&FN85Xz6#r4FlvI)hL>v_wj4jYF137yCOajr>tN zgvh^k!BCTviG7JY6Z1%hGy+i>h=jb7wiLiNWL4pp$oBR+s*pN^Q2n$5Zbll2UX=8k zYYJ+MK$OTp)K)<#kwF)%2O-j2h!a_uC$kVIvoT|`!7OpOkw6NPe1X&?I9XHs`FEtw zAk-|akW$?vfWbhi0|%9GJ4$2_YRf>BCIKi-{Li}b4YKZwz3(y z1|rpkNO2-kozeir*=kz?yF2D%|*60LzYNNKp*N>iA?Y2diW-+rV4 zI1ChNHLSxosWS){4i03xvo*300009Yxjcwbutu}3J+YN7Q+qQ1d@Wyt&_4HleA2?^$p1o$z zIkUr+6eLlR@R0xj0IIZG{J4|^!|r@hdI7zl;d>@Sn?dRVu@IqE8Jy<(g|KUsTA?XTFThGF@-b{CDvia z4UyI1R2fz-WB>sp0YbFWdD@Ca90XW=e0;L_n)ze5){RH$_VWy@f^e!~`6F)hBatog zcw8~eK`jP+6u4S(QSbj<0DJU}aQOJnjxMQ@R3po4|g)zxXRWs2tt(%{F&>!vK~^ReUsX}T4zpsgRI|Es`XdH81~8Xh(_6N7Q0=%T) z&GQ+D1gZ?Hg3(Nb+wBE_Ll9`uX7Jbfxq}_l#l07QBo5=Qw;+D>(!xSg^Du}*zOlL4 zlI=J?UO9DqkcFcuQ;sTw(xhG+CQ-zVlb07U$&-h02C7p)ps=uT`;n^tI9cWhEYIGP!#R|$= zwWH%DeTD01tp=7)PHa-gI~~DYW^|MYPZ=3&a#Zun>ybl@H@Y*V$udw6-h!Fq`>@JL zKl`KQ<8%K!0PKVSaqO@DcqJNaMG9CEfbj5M ztrZ9KyC4TYA=)pffgWdJF0IxgosRe-CjYs{g@%`C2N!l)W4OZZ-a;?HGUZrOj-N&U!3hlZ-D9vX_nebk~L zRxC*vwd1m_)#gpf%*sj=>RvQqg^9Q4(j|-ktL1T(Knd{q1I6Mw$h((kjU+6@#@6SY zHNHP)!A?#-z#cl4jHkb9#lqRl@${xXYE}mVIeJ-*n6WiBHAY8AODFt}=E@XEm&?=j z>rs5P<;tu9t(viA$gO41|JT91F3YGaogk2>3mc#Xo{3(`7G~kuzpJ+PYA`bO@$J3S z_aO!)_U|?CwwJm(XAcp^>CICfR}Ta)YzcDb(N08AYi?yVV$-;^umB4U)xd!tJ)V+n z#)8}4-i{mQ_sOypFKl|BpIDJB9+&Xc5|;@la*iW$e4iD7LQ9AyUGVqHCo>}>YR&(D zVDKf-!zBvM^0DMY6JT1dL{k2`Q4z%s;}c|Fejy}OI)8W(eyuI8u6D>M|2=F1aOljL zhlG<*VIzIF7b~pw6NIM$RaNP?-BN7x<&oqj4w&>P<2J8%xIYA+2_cgqK;WP>)npIVjH(O7&l5Z4X%e%VPSBIyFZ+P*^i+)tZ*^= zuj=YEf~yRUT$w#rL}-}CWnPJ5>TgC;Cn!}oCZK;!k1LFh4Hrd~)T)8`y}u5vohS~q z=KKNzbLRof+TOO}`Z!APsDuBPgaP~jnj;wf~! z?Jzr5sb8I_V^Agr>hlvfYcZ@;bayl3B0+a0U-|))WiGZl=OK5COG{AawM6Zu^T&RI zv2aS5`0dO8YJidlZ?$H}wGF}_M}Q-WrS>>o`HTV=RBn(fIgQ67KoBjC7ZD>-pil}^ z({8)Wl(`7(Zv29QjsSN&1kTCX(&9L|_X--R)j|=tI6GB4u#N`U_5hn;N|KETblK83 z+MDMuKz+D1h3jV?Jf}fkuSlGGcRog1Mz}1GI9a&n#Ag&C3ZumORBKsdH@O%)=*4CLe_OW~`J z&t9~=scE4`g*{}6@w-7DUWW0=kE&HWnNrp4>}-HrrvXR@ojBIh%nVlYv-qD-{v#oI z)gx+5L{XAIw$7+@uJIym45INz?L7zLd>ub zKAW_NT(p3>hF(IIfXO{H&yJbC3bMuww64A62YIPk;X~F z6^b}I<^mB>qS;tjw%ve`6C12>Gk^b3g>1qUcZTsiQI0q>+QccIQ?$-tSqZEcARjd~ zwGq^xc^Ld%+yA7J5Oe16=E)6M)#t#13yT92-&;9}!#;yUgPu0DEJk+j@>$WJhtR>^ z9`$G6%JRO42qD_=$_g$}d7DpJQ!~~gUCzSAWv=kiN%-cI$PZd2eSMfOK|=xEhE@FL zEV#lS;R!4m(NyH)tPV??>&ub%+m9@82h+JENS}s>hh2Dk%{b6dQQbW~VIW_b4N%5~ z+av#pDSX^_FUp|y(o)In@WxfU#zszc^~D~OAZEdbySs;5x5$v~t7i?60qT1-@ao}w zlRDyw(^kR3#%7N8ruH$C7;vS8{@B*+dNFgEH-EfaPca?bU5-SM%50dUIbg*RlCYPT zot?dBYP#}OBLsX%&C5`~s>N~Q(tc%|3kyo@hw2`3Edx z0`1l&2Zq#+1OLvaQ+Qg5W#pK*eG{>|)BnXIqrl~9YD8RRmZKijz-fF55Ngh`f59t_1ss6AbU$Sp7NV5fC(Or$N$)_>EX=lgSsC?E6P!7yi_?aKsvq%@HPD2PsSfPEO9Tq*fM|we3 zNIPyh+fr6LYtnds>m~{>jOW$4<;4$&!JSw`sFFdK`*p#*`tA;ORSuXv`bQ*v)C}5( zGIJ98;f#w<+bDS&3ykSJQ$It<$;m03%A}t7ZSQDpSL>f=6E(T*kx9@>E6^IGhu-Q8 z{CMx`GHA{$!tFNq@`Hch7>IWQMq7!~$!cs8E{6o5V2OHaZGG=mKAG6HHo#f*wcrC}k^ZOl@r| zJZ}D}BHEWDS!f#gfr=QfONbqns=g|WV9xJhw)7|wkS1iHj*uSFL;~YA;1%0ad&!29 zvOBal2m@`>G5rEm4M!qrnqr>Rry2zelud}QmE%f0gFyN1DJ>jthm?)j68$R zSuy)Ats5hkHRESX`!4BjI;dHiap4KDB8*Tp;|VmFkx;(Ik-NL46#Jl2GkiRJj~2pO zEtJVCU$*oD>%M1^m3)_=i*Q&dAJX<|NIf5+N2dLJNi+*NgN5tz`&-XjN(vS%q*#v2 zWz)WI=8wYkRGO<&ut7>9?ac?DB+P&0{v8PpaB`~Y2BA+7>9v=YSHf(<;YR} z=Xsb?_f*T0CN0SKyOVj9l;hRtvN3+@2|CUYybdyO^tfw`Dv|<@-RrJFq)LEVtE9iB zf3+Ir)PdQ5c?7urNIpFIA%A810gV6`T0n||g2JF(_hSmgukKCDUuCe1eC6kBLfxbS2j4V1KOUeOyN ze@MN1CGTMs70CRiqQB{6O0B5QHvqwVe-$8RuEli2UIA+H_ZZM>i|bZtWPFo#8Xg*& zc^Y`+VTjrvPt|;S`)&ZZ{n@{>+3tD6ANYL($z}HUoQj~@E4}@!^*4$C-Y=h_-i}5_ zE=Ot>EwZ^C4b;`|FpB}FGc$3^5Og@0W3`BRNG}Ac7p+}j_^^k|wKZ$igcU!ULq5FV zuN%3V|=c5qEfMCPM9bx94=>8?n zKqUcx>Obw1JZiIcur8~rP_^-|L9(}eetGFxy?N4O!GNAzj#Qz*T!h>SYY3FWE5l<# zJ>L~wHuK@4$je2kYc3mk=6tp1;sfY}*X5pP0pKMM`}_NeV+o?Esi?411$a%|-R~}E zjDU$HG#S$t+NrYgzgXD##n?72*;XnF3r*eJIB-$EiwZYZYSr$FwG*gOo~xR#bHx2; z3S+`%L%S2*6_J>Sz*kq!B5@}W$fs|)lNJm(u2hL+&v~tQw;N_u!8Z=g$ho~u$qnpz zJ1QLbl-+duVgRsBjeP6O7*%$Hyzy3t1P6>(VX@9Tfxm>Qb0L&ONbq6(4A!b0&iWbJ zuSp3ug4pP2bGG!14Ez=N8bpO2U6IMhJURO~As4*E|M^qsJm#-PG`Md5{zUI^&>}L@ zeB=lPnq`~iOCOPgrYJB|XDV#CSXy=3RY1!7&w5*SO@xne8WoFsS8@9whV&?Py=k*B zob`Nel!#?P{OB^Y+^{fjmd`U}=~B0McTmqFH;a16)N56w2AOr%=H-3G?3>m z*C_9g7ch~^Ibp1W{%S>PV6hO+uzZv)c-w4_GckB}+oRo?Cx}n*kM_hRCnln3e9=5! z?sTTqfH5*)Kcts*A(V|(xMI;(v50W+uZ?ouNlkniS=Uz~VVDv8!hhso9!U>{n9Vsf z!&pKM2tS$8A!bDnn{c&HS~L!tI_G&X;J_5Y#Hj!I1nb>t&;WnXCg8v!RXQJTrh-Em z(uZA>2BSf%TE}~f($c(YHy~olGO)*bgxJ3MO`75kHQ>`N-|0PvbY+T?hSX=Py{Afp z>2T=uJtAUa2YY*U*K}jRzOB#4G?q{6QAIu-slmgKr$@hl*NEu>rB zUP`mXzl*c+>YC-5Ip3y8Bs9ppub;AdtxzP%jtE4rz4&>^y!>gf4@P!c;^X6=pM4rl z!hs}CyDZPwAEWGEokao_|0%#MlmJFz%gC3cL+=1Tzsk-|)2$Bgkhp0xuN3oLnetGr zCHp;Hm7LA zL&C=mXm_&XD0+=pjKEtt#EXgKsgGP&%vdCybqKQOBuBEPb6o92e~2Q7f=+|H+>Y*i zAP@qwotjy*0g2a$?v+6kR%Ts~glPz6FF!UX7gvecey){Db=@B}Cg#-EW6poCt*qHp z*dEjlF8t_rk26AC+&D2zOT;4OazX9j8jZ*=zY`TK7ZOwkI4?XD<)T6#_aHMfQY^TH zgoFbI+wX&jT0|bH<_Tf}c6M%m0!Q|p%F?GO@FX$r8i>35#M08zE`9hbb0G2*JSjiJ zjp|oxQfIB4c(RJNr36Vr#R?5_FJRlTY_y`;j>{AGX-TF~nx{VE=SR&3g@0dp(;I-pgFU+I&JIB zyA?yAauO9ZcFcZ_Ekf~Vt=TOlJX##KFbRU3ho>iucSU*m!qL~v$th>MuDHgu@L|(q zHy!g+83E_^**}L*c8ZGJ0Q{1kF8>$62wkaWstje~sDST13Mwkp7Bw~XqS{bEpgNZ< z+h)6-0_Vz>`0F(pT0S@KLII5oK(Ioisn2M_!j%-4f7StJCN77(rsT(?QrJefO44WI zpK=m1#l>zCZ`79cZ3VT-zNYH~@XXuX_5xPi$KCv#-o0OojkMk}o?hnjnGK=ZUCPA` z;*i-tBq^V&yLv2{cDU_%L;MFvxBq@Jl;OYC+F5|rc1T#u8Pbd@Eh`&!%EKtv>$UPn|cKc4up#d*LuV@ZeegtLHV>NNMM$mo(rA<>^lreg3 zE|WT4>&}^iEEr`ABszYEQ|W%kN?$fVq#DOOWzIemnl`nuMGML7gxR5Yh$~>lFe@l@ z0?*?$}k{KoOsyaVVPgpS^GX#?eg$uQ6$HaX7*xB0ZJ$=4u z1(OrQRhrZ0@X}{ZYKsa5x8i1HI zuEB}`bW8E@wX#OdpuTC)m*F6Uof~UAc?f#|v#ZOihb%jYPJDE<0B2`si=2yPYBHmV z{kmuOW^Bph`}sl?(qheC-6s%;v9XcV5g~c_;D`(pN@LrzQ;w8y*(O!{98f?qIn6D8 zP?P0~Y?jHeNXLeD{L>Nhn@s8-N_B_K*lpgt}i?fJLm((=5d4UnE zQSVJ|w&~6!-#gSSp7n+8)(?%QT4m88tR+cw7w){@6w(HuRMjl5?c=8oC3W@Up&@_= zDx5&v=EXw=a-ML7zn~#78Iw{)G{Tt2$*FV8s8(kte|WEU)$YgKoEtw5Or`0t6-SCp z@oZ&NiHC`aN+ZE5{WaL64AcJ-t_RIPD^6L7!zt>^8 zn0G=Tg`U-kt2G}bt)crDg3>M-8Ql0baqG$^O_Y!^{V^c(t@iu;L}7(M5+JoaEnJ=R zhh9GVSR37o9_uylLbd|ac>zv*yv%q5U7LVisg$STW7~!H)JvZ6-8F3pA;NgXxIwoI zZ)M`GVJ=%K!u=zh%^~lJiJB*C0~dj5Z1|ha z28X_XiQ}FZrUMOmD3~NTh+FT7v$`N96@IZ>^rdrU!vWNZAxJ>&BqPf0&&%?YY1j=u zufe%R0XLSz`-a9}8!ComPGjI*98WJd{IS9g-?ti%1H0m0k3q6N`WYyL7f-b_eA{hL zbd6Ccq$|&5v9-}RB~(Iv%B<=bR5IacctiPXuHx(PZ?En&n4{v!nHHeDx&h<+$Z1pmfCTUq097)@QVvx4q*F9Cbc_ zFgtfV91ODe<|4;(7{a(R)ehm#Ty&=W4K4cVUHGL}t5hg5yx%$31N}o(pqr5x%e1Ek zYb;tTY6UN^n6;Q6{~QyQLa-kc?tf}t>-)ch-+z>q^=XdtUhL%tGCoBP%U=Y3Wo3B3 z<^BWzVfs+f4PB(?HjUcE{PxwJYtMU7oGaTS;$}>iR@S%`kqu%Q2G~%A387XAR2q;;ps*Rky33^Z`^uaHn?H%IyzmV# zr=|$J!|nReuR#A*Inm5kyY3K0A6?a3&5|BGF_WV5|(a^LVG9yvgb@ca};*Zh1;wio> zyiV{1Gk@iiUqTTJ7Oz6?OiGa~##&)_|uPZMd%O#`lvKtgs zqI^S=Ho47hK}ci)^`2r|Le76o_FHwZY!2x$CGzT&y zvu~OCCgD);glOs{?8tnWe+@hHB&O=M8>JfTQGZKH-=);;K|AAzch2$YJo;^xdxJ8S z=zX$0;CbWV%+7vt!EHBcPd%%GG>%>EmHLwzvP7{N+tqeqQ943p!C$!{r=hjJ)vFE# zQ0ak&E1S@lGHL0t^ZkckxjK>5vU7SKSn2$hX|GcXYYyx=O(iCm;n-;L@8hcJUkwH$ z#c2GvZ22K-GK?@~G2f^O`$ToFevIxP>+ItVnHtat(dw@rkBqwQ=I17gBd#dG_4mi5 zXKV}^*S#j)Nv&D^@hX7vmkw(B;VfAgEKGwREe!R?0H4!UKv;X{IDB?iIkET1*%vSq z3Inq$w{+$a+!5*kvm1PnZ?tmey#JGs#mCI7sH_Z8pt+&JZnKS(g*O;}+)({zG@r*Q z;Cat!C0=fn4iUl%$eI2=y!{(M)xMb`SF(VSU08f+?nE`cVemcBhHF`V)RaBd*V2N; z-226v316l(Q#M;^zUr6Ci;F%RqwiJk90fLYd~rxgzRU`U&#gZ1)M?f3HpQ2wy|K@_ zkUrCnM!>RBeTaS8JlDJTzAX08{oHnd8c$^2{Q| z^n>>!@X%1@c0Dev_Y$6BTTc^)xl^xi+RIhTGh?q$49ngpB8Bo7JgP{;bBeE`5n_xa zJ`Ye?IM;IXWfQy(TAgx)=_BqBw2N+dJ%3nO(!k5=PWK#3$c3gV94cz!=@W_5<%zZI z%9#oDZ;taIz5N^IGK?a-l)802@KZ{X+)q$P8FtQeW77;yA`44V0Uh4fk(a~z6r1ff z26H`s>Jq;j4_8)$6q2O0Updm18H;IawlA6#Du>L6Bg`#@jMiv?DM!Lj+3kY_ihY;X zurN3!UzK%cd7F0;EII*6m2*jZ$8@=9|QXutFS5H1+R)O|KF#s)BrlFOovEh)rD=a{(KjYQz{0hFjj#^3J z{cbL$6wPnTAdhIXubm<@%AWK?=G)>5uKxaK_jwb?qGOq2+ykLaWFf{miRi3&x)3L{ zqy^P-e*ZF)hcZL-L2Gs%?Djp8Jv`gn$hCo~sdW}bno)ED<$lk*{#dY@jKBmy0+o2H~GqvM7*| zBN6z3LCdt(po^iQp~+0J*V|q6QRdR1EGK0#>z$QF*?5kXB z)`2TH(d#iay<5PP-!}Vf{HuyZ{S9BLWOX;=OGKjL8pHsP~v|m?v2R~(mSFA>|`oQ0i2tfWTJmF^H~j=GQ_}Rq6?H5wh4FF z6fSs+my_t_Mu0ddkLe`8C!^~++tB8s!abmB{$T3On<1r+y77 zie0~y!z6c=m-{pL-dt`+10xp|M-~7$pFb!Q8Hb5yH$jChrq-K)wKBRAKQyF(^@;-|Z+OFD8FLwE>uDQ1k-+k~XNC5ZgWTlE|vf{ssP2Z!dy zy_O)5G>ptF*_zju!E@NMZs^X|F83u6HnJG$qSL{~A{aWqgox|y+MNBXfb=$zJ(&`}m@ghTSOnW{l2}asv%;#Tj1!^Wg>nQp#|E}rKgc`_D{M`B6!(`8u zib_g`f>zHce-g3UH>9OUm}z#%U50E@tR#jKrsbvrXa8#JXe7C}wm7lyT_Y#Z9ZMUb z&4#u)&-8hPOxX&%fi0&i<;n-Sy@r&xlj>@6-a%$) zuyOf7XsM9{*AHkc#MD)lzI~Hlp5gF7nfEP=hcw;I$QaTZALaciVgc(@uQ^P5sBg6N zvRn9g7ZRQ%x_g?5g7cT4Cen!|jPeoo=*t zf|^NmMD#U3bvW4CiVDR`;reyAm5=Rv&~JS+wKf3&NwXDt84%z^H7XiAI|Z(E>&3aV=jsL|tte3N**q*!)xAuBJ4b(KKWnz4MmsUN4*yY2UWF=w@ z4qjes4tzZ(?ngaaTY~MD`g&IrlREQvKR4)k!WJPmwhb^CJ)_%cr(kVOCvI;f)ko<2G-lu&_|0qN=Ma zzof)Mhl|zxAO!+B!;+?A`<5(oy3$32;J}s+wKQr5?MHIEaqQMBc65A<_N$*u{Qd&W zoH8hx8Y63iL|5So^=1J2IumQrYjjyvPEDx*OSZg07bT};bJcgff?LioBQDKJUaBG& zJ?*|}Zl`~?qotwdT_Z1k+o`8BUjC`u`oEZ&%(bmU8ZM**pcW}^8u^tO?iV~1{3HoJ zA;s$0sRw1NnE~T_s$9wUo(n15Q(rf?fjsWK+WF%N3wC}*OoAfSvghaL+S=Ny+FCFE zV1e4N?@bL2*fjMjNk~dLqea2CKduQ-9(B~!i4abOWy6e(y&q%=} zaOJ;nYxT;3Csb5`V@pTbCLkm{_1)?FDNGe4umGUxh?C;r~Jh**a<_ zj&pNy(nFz9c&OgJn$`R95SnREoq0%-DQB{w{<-#4VcIZ)-QXicD=vS$N*VZgr@OiY zS!K#g`O9MYX4jK#uX4IRH~-HV5-Eo~Z^rzC%c)SGVXTs7P;=mZy`)crHGQ51g~h*RblxUmbSUma9wwYfwm}{&&SJ`y zPL;b@Vm!R`w6x!1WPmq6CT><<9)1q1Wn%Pp1fW(qb+4;^JbX$za6N z(~YErq{x#omQ(_43A!z5=44P6J42xkX1-EQW3n0*rZ{W7)Zd#vT^H+X7|~gR3v6=M zwS7{NAMDpSa>b>k*0kx{K%Fej!0aYsR6_lLxV-Oi+t^cKsv@@cBTaL-J$ov@_ z33e4Ex=d#tLW(rDT+M5&8EwkQ&hfKr?>A9VQ6)eDX{BDH&2qJVQ2*LmMsV;uDnSm+ zt*CCxX0=?HTDXa}0>+O{-v`cSj`4yb9HQHow^chF8wp1B5tiGlZYC85;?{$d*LMRI zHL0YM9?xeRDoWJixKewIVRb`QtV)uy{xF8&Vz+um%>?&fEx-Tm)ti+N!itKl+uGV@ zE0jKSrpt-<8OJ%~PJ=f$iI9GZNki|GkdQc9TWfc}yMcz=?bn++v$ILxD>OiGC5aqn z*k?{W{(|6@l@;MYp;N$Vm)&aJa~qHbhI2U@vpTVkkMJ==io%=H^>>2kq}EuOH$SDv zbnMfiVX5#mrMFI3{c-w;n6d%|QL4V3&pMuD;KuPPljWOF2vQVvz#a}~ZEyGPB^8w` z-^1AOW>*sC=*GRkT>KEuxL*voLll>||8QeUA-`QwQ~>qJ@^j%Vf*E{kj96cPe?M9& z%mmR9cx^3X`mpx%>AFSz^5SCgd|6kQVE1&h(N16e6mWd+s^k3`G6U-qYJhzmiNmbj z;U%r_?=LAi{OE+6y3yb(lZqi23s;9Y_Naf%o(qmOD74<5xEwmX` zv&`!ZJG41JJxt<7b9HG-aqRtxBjTyrfE5EcQ0=1I1TX0C9PqFeIH^hbHUJh))ngJb z7=CJL)%Okk>W`)AQtg`oZZ<^vS&A)6H|V%VrXYvy@SO(p`8u$aBoI2cUvmrBcRRjN z-7DBACh2X=`pA2?#X$x-j2JEP)~rrU1_k=9qM`z7pwNs_-PPBZFVA~8CflRkbhbde zfac`xxii~WHT*}f6-WAHtrkPFLg-+{zOg;m`uS%2jMq+qIN>l-$kD^g!lj?UaH}2@ zAyevj+2@qur-)0Cz0Ae~)}kZlU>&`sp=?F?pw&c+NAaGmVO|W`x(=R=N`1{E68GDz z$WV;_PKD!QIGcK93x{lKjS=pu|Dk8g{k&?>rCtI_X4K|Y-dVx)3iESP zTah4m9{q=l{s(wMyOe0`GOD!lQs^CFUFie#($?{%wwhwRmSH;iS_J_PCigw!O!mY4 z<(AqlVw}}&wE6l?w2LG#w~UOl2^Tc}GO~H1e#d{Q9|6>nwA#%dHd=iQ^vMm&p(dSS zM}Z0QXy4pXvNG|@I;?kSwlp#6C@;6!FITq$T%+BB%E}PoLLX<=*ZF{4Yy5%lJv{(? zUx6GVK98WHm$&!#cfr#6&8;m~9u}vy=er7xs;xG6Sr%OAb5YSBea18}gunB_(90b> zK%CYq1!J#}`!?A|k`kG7b*l2@MB3`6vAeTz++vDb*6kbfhR!6R(zK~lEgqPajw-62lj1F{M9y7 z`ntN2p4BB_UZbfj*rS~-FhB(t{{Y7$ZOgwYNx|~{J&J{=z%kd+Z~giD>hFWQrJ^JXP(*vKpj`_7V~lD7$M*p9>(ARj@>XD3r8l8<5cm_35NA zG4x#Z#PI<04O^4+@U*ASPKvbP`pMN>n=gzZ74jGSvhr@KR$%V9r^84WDtjJp$};id zzf>8j57@4{eQikoH$DOLT;OSvZKS7Jw>;9Q#gzAc@W7RHb=9C!<#e^`SPZg$XV|;~ z&NG~|04hW=|BNd?5M$kWW8=K@H4+5DU3-jSZ#fuZBZ#5SA4=9P9S9#iMFt_giF!Fl zSyq$Z)gZ-?=YZ=}!Lu@WsOi+XlMnHjrbBn7N>qh#T^|v`=q~!Yy2wRMS_}yk(b3UA zzZ>_|8aOI#SwTew?DYM7bbq-&6BP|*7-ux>$}&EpiPy5X*B=h~wBBUj-=&f1{$}mI zYNt_E!yv1otD8A#F--m$?U!jS4e-i~pJABDu`Oj>yvtwLVc1{@!lW3%G_8T6K^>7K za?$d-d(EIM>HS)!XKlVM*uMNe^23-WQkO5t*09wh$Swj7<=pSM25Rkoh}Y|`EgN-&ax<&O+giSZ<`-DP-BAF zZJ(O8$ov*R+K7KeIV%%}mt1z4ya-WF(n4Uh$eVckYLSGoLZ>{1pZQihdSv$lOdZo>= zyqFUQJWnJNs02Pn-l-lIe_TgpjqX33DGFUBJ^X5BZ(LMbpS=+3>26E6N&*=SHZ`v> zKcn1cv2fr&k0tZi_LnEJeRy#_9f3B4T2^balI)TSu2$?HPEr}EoabMhRTHjWNIVSQ z+}D2|+HSvq5N;!=L-RtX59O&;ZFV13LcHSqmE41xR_#1mv!48_tEx6ln%vGeVPZfn z{(ZpUfh49;DoF*uPBu3eXKsO4OwKQ z)REDAx*f;a_q>3&UuL#4huEqW;CJ7Mj1NyY8v1=R=Su(B6UdJQNxeVEmajueiC_+Y zy|X!aP%QemZaB=*jVjHBCdz90h#z=E&z#~w(tao_VMyoud9OkcCn(0s0^W)=yd^xNyhy<>nhcx!CoQ5~7I-8nPB`PWT`Bg>-t>wWePvtJ^( zu3t~LDpbGGr>v%1H)1FXqA}a3PLaqyE$P^a%#Ah{WdA3zZ+3%fm`|;G4o*%OAPFAqxz8aZC@3fZ2m}%iQmVqOJ`h6q8M5O9D+jiy*RJBa z%@d+}KkvuxKo2K*i&9g86H54t8Uq=i$1IC8x4KVB=AZiK#t2D5n7&MYLa33F@hPu50 zIcfwOOkFEc#5nqe-}{W&v29(?qHC!)21g!0;4fEk<-P>SXcy!=+K+nPl|3T=aM`?M z)G3=`q*S$&{~|1}G?sakWY#CwxE!!b8OBLZN4jV>a&{K6<@M{y9+I{E-W-#8a|iV} zwl6$AGZ0ZAGaBK_!wI1lDpB!zi!fifcrQ>b;Vw4%9cW&ECY!5Vk5PYfVwd}h+wEMz zzkJK%!*#TWE?B7?s1A!Q>@Y9R}<_LHZ=^zZES z_yyAvn+w=5U=DABEy?vcDdR}$W~lhg885YRcvH6Xi_l0I{=mW`&X-U{3vIiO^pNC|ST#q^-6IuS>fY@R!-N z(blv!0wfO@X-!3LzX1FJDcG_`vRxJ31M$|NOc#w5mL#*bF+=A9qm3Y`Pe)%WvyigB z=azxr(!m`>=*3x5NHF9{RW&Q9ez_jJc!Nl^+}8VUR6b`9R=+0whf&)?lO^&j0&?p< zo3Gi>(~7%1;LQwX z`V1%OZuzwk#Z20gt2P=n`9=-%tRb~-oqn+O&vhSFTL)<*W^3z-x_pUw#F#z!(;~7* zEMF#goiPUf=d85D)pr+3?UJP3+>Os0pEBlfKHk6ppDz%oBN@3)#WDsd&gKSKXbLDa zL0tx%iaH7G27zR`gi-audpY{uo2RP5FGY_4zgTfH$3;pEnBEc3bBwUz(KVXZ%DCUv z6S4;1pTr_OR`t2{s&RgLsdjM8E#zAUzni-Jwl*xY-bY7Q6i64kWO^O%y488iT!!y< zN&fgM#E>+SwyzVZ0?b~om6far4>hYUj_0$EN5X4!A^D=+B^=pXOBkd@h7?+WcLTp= z%+na<3+;gLyZ%cHHPSv|M_-_d$9d4{rF*kQZs6p7S*$bi+GX;exB>+-9|)R6KG1qZ1oGLglu%t8m)S%VOxkF~>V-*)KScbPjZ zp*@@iO*y{J$F~W?+*D+l#gp;6KF{<|mv4jPmr0{s- zr@xXbC1DBo0=HKB^6&dW2HsK>oX~Yi4swh{f`i+zQ1*EM8ENc^h@{TPB9{E+J!jr* z{^?A)l08C2L~`JBr*A#TK6q67JANyJkkeCy8vpRh_Uq7BRB90a0Xgjivf32t$n{1e zYV0k`JQnfz&r@W{AJ?iTdfiLjZ|1#`pb5`AJca)Ya3YW0UNMCN$TJz zb1)@06`6jdb;grdxo^AvP$~0VJi63**;GgNm5teFU-sO4t8x7)>Vug0`R_hfj+&R{W&?k$V729;FREV~#3Y%ro`0_O{Exgz!J(&9AU#EJf85$a$W2UI6AW-ZS^Cba`Lu0wEJ4;(qzxh+E$L-ieP zxt*Qhi3LtDHW9z)$3ox0)TvO114xx;CXP=~Mg!MAU;WB&-k#sRk3MjEREk8Ma?MSi zJ8#H5{bKCyA0OyQV9G^21rTSSdx<5=4344^#@1I+HcRHO z|1ABU+qoz4!$;(J;s8ohL*D;OjQ*gdx&ho?ukQe5Y0;n*V8a~us>InBUWwiJ2&LCk z25u_V!L;YF7=a_DQie0v+Q0cF9m~EMgOPQW$rVZ={8W*2A2kt@B~i*`h-+x3>Mfu5Ed zwa&0|Y4oN$9hZHXZEQ&Y{TV1)*Z~FNFN#t&TXMEo&V3&mM6S8Te$gjMnC3k{5e9}V zANgR>x)OB!^mIbC^*f?TeAhJeZmrLTsii%5LSJr9}Bd9Tpbo89;Zp{6Cb4@QEn zraiZUfc|j-xuuKTH-0Ppt(%w{zwJLiI!inZG@jp=e*CYg-~O30oA_5Y=Js|oPG>1; z5=_I2m8D98YqerKWwY8odw%4qTjQ4yru59rtMlCdz2FzV z5&GKIp8LPc_|X8!%jac2r$PPy zC7?f48cF>tT59>d`@>h>OeiM|a7iu)yVBo+KSNnS#MD+fulYK2Jd2-{#oNg8ES`|V zR?H5E@zhm1QK#stqGw8-k(f%>Mvg=uO6q@>bzS%0w8@;f|Ka2#CO{R}-s-&Wo23X# zK)L;^pN;?cXPFmXHlOw7PW|B@YVePYaW>RTHv81T95(%eHp*CFJmzyg zAdZYDfBAU&4}WD_n{5}Kj}LP#y{1Slh<4grcq|Pkuf$afUvXpl4}Z6P{*y3SoZq=T ze%Fuqja%7ybSK=Ns{+Rw;Ru1|7MLRk(@Z^GXe~4mYZ%^ z6xPSeQX*ykk9T?QzWJzL5?MYpA1QS>7c(lwleF2aEGM4vYdkKeGPK)88K$603P+$j zX`i$!T7VZI_cNa;CGUam5Rav*x(+D~SsZy-PW4l#186 zoRm(}N@_xU05q#}B(PxQY>uuxE}2lp>6?uOeg;YoE6~7|yWq&FO#~>rjkZn2`QV6B zC_-5+o>Te;i!%;cIV6{_J3Q10B{?NPa7hm}1`)Q`gba~`-aha~d1e0KDdF`pyL=#Okpg)jg zU)~tM>qi7l4f={H&Y6F8q&lEsS@A`X01Qnu(L@ss=;sn) zU@&s!O;R#La(hX#t}M`IDz=g;l78Qruckd>K=N%^g4 zREoy6r&be9G|_;5c9B!5=y&fChDIryr9_zJnUJb*XG)SNma%{1OU894li0Gu_$QWs zC5sFXWfp{E$z+;bHe)hvHWb@U24P?{^W?MIQ>%$4njDs}|30T0|G|$lPdrU~T*_j; z%B+yn;8o%Jlu=I>m~7ou9z=X73Z=~TBg@&0`MeKIOEoncrKfZZN5(aCX1LUZW#wEx z{=lP@*<}6rxw_+?##s|hG|_*X1Mu@3H$vGkQyT6d+ zO;ja=A$>>#lO7C_^z|K z`AxLLu9yN!K8j>YN~Oi&QJv9XdfOQk$7;{FCYosSZv*uCeERXf%Y2Tq+jQmela)X{ zvy2q&uubFW(=)@%l{h~wcf2gg97~xFA-6tF(+;arDyZx*<>?C4@OKQ+Xpr-{^glLa zo_~$DnaFZ>wKyDf0$Fb<2$PdQc@wGLrvbetnrNZ`%)iB1%1Yr)hAp5cHQiA&i}$56 z>5Z2&(F*Io;SLWg^Zty{Nl*}VD4mJo@eh!IMXbgV9ZI2_)zX;ZG4 z5(Afd)5eWLW#-gr^7`wqb$54TmzQ38Y5)HH8qk-YC{=-*y4g~(&kC~Cj9iaYWqVzv zi@yNMaxv@Hq2>uQp1OvlY%D!M(+YyiWf{NJ?HohtIg+S{{N*TvviOkY$YRLjQo9E) z_O4yKvf1g?W$_4(jg1}8dz;B*@VKW^spG*JWErnwFc>`kkMPjYP=9}a`4+&z-p)=S z#ZmU$+tb_E+dBu)%e}q5BO@boUJyyl@jL~Sl%nu3h{qx$F(6D34!&LlhugJlCv?o= zTlo20K3ArzLS0?m2OT-j^SgKNdhx{EEetDvpZh|dfe0UvEl6Y z?Aep62&yK9cuCP1hQW!Hs|0N9?d=;MAOAN7`Z9>5$}+H1<|^h+0U%NEJ;BvlU6aw)d57!E|u7>2HLzTmJ@P#%>(ERTnN8rK8K+OT0mEEX%@ z2nas#TU7qS;K5BMlLvT(2%1P0z2Rj5waJyI2|F~%o_5efX%8y*>Z`AW51&Pj#tax20QYf^P zaB$kM5UCGuuy7iWP9zeg zTdcOED3a-CT582do_zAjYuBDy%E8s$-L-xDwu35_C!c(B>(*^Ho3*a4 z4*TND!=8}k!=v_i%%(l46h(9TshYqY9UZ5gww^8K8X6uR1b@$$r|Q#DXPj|nTU#53 zboSY2FIu#yytmDpH_Zz4?7tn#%ewNAn?i0#sx0%nZZ;&X6d<{n3&M(IlKw# zS1`eyJ9nkiDT7|WaM2>Qc%%x=J9q9}zI-{z)Sf-N@nqXb^=;k$efzq5y75>W42I>) zmsMBSsBiV2-MjHhx3;yuv3c`A{{UcR^_n%cwY4g80Yor>tRiR@3WvaRSFc`UQZnJB zlF3(Jd$qB#3GYUM!1ne=qtTTs3q=L??cKY-t4qk|O=k15Wy@-6YKk^>Xy3m5t5>fc z92^9dUbAKm1_`A_n3Ny@N$~;4#VPFF+qrV(D)n#x->qA>`g}fI9DMECzn|xGixw~1 zzHM7ye?LRhC!cak=@5ABckbK~i4b=OD6!FCViEMVCChT0-Y|_x=naMv3WNIL z=!+LG25e!#K#;X-*Orb2*}Hcy?w25nxJoNlEU&7nF8#!?3;;qIOr*NHdd-@X)zeWU z)C_tKL*24v3zQ1(`?__fn$4Dy=D_yJi3vP{PN#F#s@0`}6K}lnMtyyq$z;X_86O|3 zs;XMI?zB?2+OhF5+}3QCXK0FM8H3)4pK!H-peXsdBV3B@+qaJl4-2B;uc}_XYL&5=^$6Di`T!7#9`FGz(KGHW zE{j@VV^(iTG#WYQoDbXWg_LlOjg9~O=Re(UH%6iwxVv}n#zUo^K2#>|xZQ4_-`c9S zhZTqmMaZ}$wYIfQ1L*RzfQhzZ#R@!H=!EC<9LM1a$FpWI=+&`xb>Xqvk6~lL%a$## zt*t3BDqKsD3A_lbBLA+8UY@16hi>NF>@*KPRV*)5tok&K@{|g(PVF~!h{GthZ8`S? zmJ2>22E!y6e_HYGxoicw^8d%tGY=+JUtb@NM9RH4cuet%s)cBP^3Oi|jNk8Dw{G3M z#(A)KOY|S42Ji~|cmMu2H8yQ}1MeyT z7uOUNKChHU!b^*v0Mi>cZhZRbr?Csmu-FKgF1%o&(DrTHL5Ec%7sv%21A3_bigyoi zuxR1JQ`fBnygv2RlYpcW3geA}r4Ag&`wZY49v<58{DyQogWk}RR7EDu68rY;%NOf3 z;pGG_1p)!}>*VC*8=EomO?rbKL=s1T>BSe-#%THch7A}M&~43{)eeVaXm}71Rw}-B z2u5PX*YUBj&6_vB_S&m}hEq-s=l{JHJc6Imc+O-p!b=9g>BO}AFzWS=lsc|A3Har&!2G`)+ zPCf-1`nl(xEph7pzCN_Xy})w<1<>2uhvBI|1tuq7eEx;n+B)pEV&$rAh6hjrIsv%Y zy}P@+98gu}jc;GKcnM$02{vftsb^r^!ifDixp$`CY z1|_Q{9&3lg4wX<>SFf52Kvnz$!YVT?6i75UvfuAl8$bX22E1CJkl<4mi}|IOUItvM zIs-jpuhG#lwJW@1OO`Id+k&?arUu9n=)B6O;<4Dy9otVoebMoFqqWWMbGIOno$)Aj)nf4oBuz1XZFbLFLCC@51F@loT{0}shXOHyv@I2=OxKhIaPLI3=Z+a;(%jpuoHG9KnRRk#3Jd= z@7_kOD+wsqq$W;cx?Gg3+v+}jy8AodIo-G0D@iMMRDVky>Y~@cxRWQ_8XKE-BObFe z^!t@7S8Uq3;{5&Wv+LLoOodbw!ebF}E5qR(4D;D@=O`*8V~?{)c}hd1hoN(73xD29G)K1KC&Q=P+fkR0 z4I$5;?-1@R(*aG=Q_Pnvt$%ScJf8A~hDLMZwHa?q=tc=`MpxGif@>u0Pfv_`8&V0f z42(gXge!;*0Wv(b&zxKt>v|l4s+6lBqW85Gal-MZ^ zF;q8bN8Rp()q7N5y`r(dj8+|5`tik&o^lVOE>n{0^$`rr#@+62unbT`2t>s-PKyOhn1O(i z8e_3q54y-+zwoa_old7fc~#oaVp3xnFJ3NYvr5%eWcRTFe&t z6pRD17Xtw_i?-F{jbrLX+qQxNc_FCglVwYwN63=WQt4-8WLPnQLTW&#v9S>s2PISB z%F0VjxFpWx@pvi(%49@E`+%<>i-RSryi@9lxMB*)vmv0I}r?#76im?P6{5w7R-RV^=}c6;V@E zxKL!Hk5C9L%1XIU;;jIBy3<@-Xz`Yb!1B+<5pK>E}($j5k);|U1cK1BPMZBcvKw`Oc52|qdYQZXC2AO zw=~vdyno^UbPZN&s;a8$>+KC~ZZfIhDK>k77?C?_+J5okxz9JtKx7ndtgV^URlWEb z%h71U_{IkG_Vxl6nVBj-3I>CdI z60zU!v)S_V^76zgsKt^nfte~{ZQYL#+S0c%X(OFhOY-5~$!Gj0JT&N=8GBz(&0Jbi zQeZ0>7#I-fGdenoBp~DKq5596B`P6FNC2_Fzi;K`N@f<=VZyD^H(cLL;2S4NMz_>} zr|xM|v6GV%IBLKR_@behqFWtR^lO!h&e6o6-nr8W8-*wUl;3|pfKwH}moyd*1?ey( zgM))Emy4%j3rbymL%MbwqDG&M_wV1s89IIXUAJKL*kt1`rdNDKqZeyGT>CTfS2 zSmas%q9IY`ZC#8toAUnocO?`OU9u;9r$j^&fIcOvzpqtDT#i*3ASS2%e-YVRk@t_k zWnH}zo}Au(GP*tdEaIDs1eTO=EBO;cnNfp7kFcXT3ibqGE!IynLUwL`?0X9QDjY6|V`&`qT5*9P0 z-bilP51aL9VKkX8T)cRvvy*w7nUP`9cAFd!piej_^`LwI{j3uLBi*qIKIS1h>vr303O0eY)7 zqqTK6W`Z-9)MbYKe?2=pgHO}g)I{5p;$V7qj4;^d+Pb>(va)n7CEBEj+g;{xI6H6O z2KeM)Lz$tC4YBd*=cl3~&_kJ-nXc1q`lO``3kwVtv6)A-TUtlD6=NyJ2?Ok>pT^qS z+GLcUCM$|^u%i~|G`jx=gNrLG%N-pZf-o^nQi|I9!qKQt`GG0KYH|tA%tnsD?g%McOL@Z zq4PKsa<2~jJ-8GU+oFU+bL-YExt}UY5`(4_eFN#u;Nqgp1Dk1RXz1(f)4zrL;>GiY zg+N2hjX;^(TU+AAV6=yZ=_!HxVl9C()%)io5x?KhWRYA!NgT{cvWaaA@o8c-qIYBn#1Ez4%5#~UT@{YhrOWNrAwFe;EPXv^XAR2&d$oJ zDrO*f+TPwS2W1lbbUF(i4#&OkzN@OPezmfam7NXH#FzCFS+k;Buo6ZkCp!lq@Oa7# z3tfVbyWMWkf$ChYLNQ@-bICJs?AUQB1JK`os{P*md(0d>2_$45w(8dO5@Rj9&|K(p zJ$?F=&vv`r>2#_)FRj*|o*ww)%F0W-mJWD9Oo@Y31S~jOdDK)a3N^^yLpO$5pB%u({pH^KOK#1Ub9AyDGfi z)mN*i2(`#HVM+*xcY1pt(hHlLp{GxuQH9`)B1*Pj_}b&~jE;=lzJ1&2a0C_?(QtZN z+5y3C`9yOX){h-KhCadW$Ad$e+1ZRA1XB`ysimc$$!uzEX@($=kB{~D_mvcvoIigq zGb>x)K_}YU0*isWce^iN{t$nTeyOXi>-qNErsgJGG;~WvHe11-U|LdIIx;#kI5=pt z!A?pU74Qt~?$xVTW%&D@cTO;dZ{50CTU(DK7ziwkkB>vr(SXQ+y6E?=uCBVeI^f>v zbYOrZk+7g0)m7Dx9}m&v*fTn`)a?$&Y?8rXNQwvQ70$3E!;>dZC?Cq=z;SjJe%I4e zdGx5*Ph~@6vE1|{GE9t(Wmq#}{*BVf1gxwyefsIAhfsBxeokUC7fETx1BgwVlArmLrlW?Q|4cVpm#g+teoq3kv&dDnw5%qF z)A8=RXJi;b)WXm83&<2jT`>2>#h~3@z;qG|09%`z;Yfr@UR9-*?^K1mqH0f>D;0xdDXGMhI*|P9z8TM7#*Rz`D?X3xU8!DAdxdCQ+|J+s;I>QfU@T z8d9MdvCRX_+E`nIxnmnDE4^4~+AHvpAG%yFxnYr75QgTfFA#L!Wz3vBd6Kr*XbCHe zL*w;&jRu3Nz(Q4ln1k-_?wabFrlw}#7_mK`ilN7kA^i9^G!RFPDkvE_%gV}4CUb_C zq^<&iMffaMpSmP!3q{G@oOpN$v#_v$e}FuwOB2;DM~+Y?BgbmZ!1|JNWaJs{Ao|y5 zDAuUS*4Acqbxmz;E%MXRLT^PyuDrZ_8c6feEehm=h*FAShM5q~uJ? ziIy_Uc*HcJQRqA`Hy1hOphbSnL@>BSqeS_l``*gS!4K16`W2)*ckWRY7!6x{8z6THP^WoH~cDbMRR~`F31p32tnBGWQT3Q0@VVAHlkbQk^&F}YD z*VMrHe)nyE{`~pCK!0heTdbEXFDE6Amg!|aj(*tL3Yim0M`onaX4%5B~2YhO3N^DNWNyjUfftTNX3I>C-voq^! z>qe8w;c&o<;2 P00000NkvXXu0mjfS@1mW literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/zt-logo-tr.png b/packages/zuladungsliste/Resources/Public/Images/zt-logo-tr.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fa57ac823b3fefc9029a7e58ef8c7989c8f1cf GIT binary patch literal 83724 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 Y!?>*)6E`vd001ESMM<(s+%Vw(09CkP1poj5 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/zt-logo.JPG b/packages/zuladungsliste/Resources/Public/Images/zt-logo.JPG new file mode 100644 index 0000000000000000000000000000000000000000..c88d36a92e20d4ef6d5ac5ef48b05ac2b7eb7ddb GIT binary patch literal 68937 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�n40Jb=XRT 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/zt-logo.png b/packages/zuladungsliste/Resources/Public/Images/zt-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e9f132b35fb74003cf88322772844b094bd5d3 GIT binary patch literal 83724 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

XB0okF1`E1s^?hG&CF*Q0cz`*Hus(xw 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 literal 0 HcmV?d00001 diff --git a/packages/zuladungsliste/Resources/Public/Images/ztkammer-adler.png b/packages/zuladungsliste/Resources/Public/Images/ztkammer-adler.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf18d9f593b01ce24e4d6b707201c4e2ac42f6b GIT binary patch literal 7411 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' + + archivedatum + + '' + ) + } else { + dijit + .byId('cp_adminliste_header') + .set('content', 'Aktuelle Zuladungsliste') + } + + var callback = function (response) { + var store_auswertung = (window.store_auswertung = new (declare([ + Memory, + Trackable, + TreeStoreMixin + ]))({ + data: response, + idProperty: 'id' + })) + filterListe() + } + zuladungsliste_xhr.call_function( + callback, + 'liste_controller', + 'load_liste_admin', + '&archive_id=' + archive_id + ) + } + + /******************************************************* + * BASE BC + *******************************************************/ + var tab_auswertung = new BorderContainer({ + design: 'headline', + id: 'tab_auswertung', + title: ' Zuladungsliste', + onShow: function () { + ladeListe() + } + }) + /******************************************************* + * info header + *******************************************************/ + var cp_adminliste_header = new ContentPane({ + id: 'cp_adminliste_header', + region: 'top', + className: 'tab-header center' + }) + tab_auswertung.addChild(cp_adminliste_header) + + /******************************************************* + * MENU + *******************************************************/ + var cp_adminliste_menu = new ContentPane({ + id: 'cp_adminliste_menu', + style: 'padding:0;border:0;', + region: 'top' + }) + tab_auswertung.addChild(cp_adminliste_menu) + var menu_auswertungen = new MenuBar({ + id: 'menu_auswertungen', + className: 'center', + region: 'top', + splitter: false + }) + menu_auswertungen.addChild( + new TextBox({ + region: 'left', + type: 'text', + selectOnClick: false, + trim: false, + id: 'searchbox_zu', + placeHolder: 'Filter ..', + _setSelected: function () {}, + onKeyUp: function () { + filterListe() + } + }) + ) + menu_auswertungen.addChild( + new dijit.MenuBarItem({ + label: '', + id: 'resetbutton', + style: 'margin-right: 15px;', + onClick: function () { + dijit.byId('searchbox_zu').reset() + filterListe() + } + }) + ) + menuitems_zuladungsliste_admin.load_items(menu_auswertungen) + cp_adminliste_menu.addChild(menu_auswertungen) + + /******************************************************* + * GRID CP + *******************************************************/ + + var cp_adminliste_center = new ContentPane({ + id: 'cp_adminliste_center', + region: 'center', + style: 'padding:0; border:0' + }) + tab_auswertung.addChild(cp_adminliste_center) + + /******************************************************* + * GRID + *******************************************************/ + var PaginationGrid = declare([Grid, Pagination, Tree, ColumnHider]) + var grid_auswertung = (window.grid_auswertung = new PaginationGrid({ + collapseOnRefresh: true, + selectionMode: 'none', + columns: columns_auswertungen.load(), + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + rowsPerPage: 100, + renderRow: function (object, i) { + var rowElement = this.inherited(arguments) + if (object.type == 'frauenfoerderpunkt') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_frauen_even' + else rowElement.className += 'childelement_frauen_odd' + } else if (object.type == 'neueinsteiger') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_neu_even' + else rowElement.className += 'childelement_neu_odd' + } else if (object.type == 'sondersperrung') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_sperre_even' + else rowElement.className += 'childelement_sperre_odd' + } else if (object.hasChildren == 0 && object.punkte_aktive == 1) { + if (object.id % 2 == 0) + rowElement.className += 'childelement_act_even' + else rowElement.className += 'childelement_act_odd' + } else if (object.hasChildren == 0) { + if (object.id % 2 == 0) rowElement.className += 'childelement_even' + else rowElement.className += 'childelement_odd' + } + if (object.kontoaufloesung == 1) { + if (object.id % 2 == 0) rowElement.className += 'aufgeloest_even' + else rowElement.className += 'aufgeloest_odd' + } + return rowElement + } + })) + cp_adminliste_center.addChild(grid_auswertung) + + // grid_auswertung.on("dgrid-refresh-complete", function(evt) { + // window.line.destroy(); + // dojo.byId("cp_adminliste_header").set("content", "some text"); + // }); + + /******************************************************* + * START + *******************************************************/ + tab_container.addChild(tab_auswertung) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/einreichungen.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/einreichungen.js new file mode 100644 index 0000000..5d476e1 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/einreichungen.js @@ -0,0 +1,314 @@ +define([ + 'dojo/_base/declare', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dijit/form/TextBox', + 'dijit/MenuBar', + 'dijit/MenuBarItem', + 'dstore/Memory', + 'dstore/Trackable', + 'dgrid/Grid', + 'dgrid/CellSelection', + 'dgrid/extensions/Pagination', + 'dgrid/Tree', + 'zuladungsliste/menus/menuitems_einreichungen', + 'zuladungsliste/columns/columns_einreichungen_administrator', + 'zuladungsliste/zuladungsliste_xhr', + 'dojo/domReady!' +], function ( + declare, + ContentPane, + BorderContainer, + TextBox, + MenuBar, + MenuBarItem, + Memory, + Trackable, + Grid, + CellSelection, + Pagination, + Tree, + menuitems_einreichungen, + columns_einreichungen_administrator, + zuladungsliste_xhr +) { + return { + init: function (tab_container) { + LOCALSCOPE.filter_ein = [] + LOCALSCOPE.print_ein = '' + /******************************************************* + * Filter + *******************************************************/ + window.remove_ein = function (id) { + switch (id) { + case 1: + delete LOCALSCOPE.filter_ein.bundeslandid + break + case 2: + delete LOCALSCOPE.filter_ein.year + break + case 3: + delete LOCALSCOPE.filter_ein.status + break + case 4: + dijit.byId('searchbox_ein').reset() + break + } + filterEinreichungen() + } + + window.filterEinreichungen = function () { + var str = '' + if (LOCALSCOPE.filter_ein.bundeslandid != undefined) { + str += '    ' + str += + ' ' + LOCALSCOPE.bundeslaender[LOCALSCOPE.filter_ein.bundeslandid] + str += + ' ' + } + if (LOCALSCOPE.filter_ein.year != undefined) { + str += '    ' + str += ' ' + LOCALSCOPE.filter_ein.year + str += + ' ' + } + if (LOCALSCOPE.filter_ein.status != undefined) { + switch (LOCALSCOPE.filter_ein.status) { + case 1: + str += + '    Anstehend' + break + case 2: + str += + '    Angenommen' + break + case 3: + str += + '    Abgelehnt' + break + } + str += + ' ' + } + + LOCALSCOPE.filter_f = [] + var string = dijit.byId('searchbox_ein').get('value') + if (string != '') { + str += '    ' + str += + string + + ' ' + string = string.toLowerCase() + LOCALSCOPE.filter_f = store_einreichungen.filter(function (object) { + wettbewerb = object.wettbewerb.toLowerCase() + company = object.company.toLowerCase() + if (~wettbewerb.indexOf(string) || ~company.indexOf(string)) { + return true + } + return false + }) + LOCALSCOPE.filter_f = LOCALSCOPE.filter_f + .filter(LOCALSCOPE.filter_ein) + .sort('wettbewerb') + } else { + LOCALSCOPE.filter_f = store_einreichungen + .filter(LOCALSCOPE.filter_ein) + .sort('wettbewerb') + } + + LOCALSCOPE.print_ein = str + + grid_einreichungen.set('collection', LOCALSCOPE.filter_f) + grid_einreichungen.startup() + grid_einreichungen.refresh() + + if (str) { + dijit.byId('cp_einreichungen_filter').set('content', str) + } else { + dijit.byId('cp_einreichungen_filter').set('content', '') + } + } + + /******************************************************* + * Load Data + *******************************************************/ + window.loadEinreichungen = function () { + var callback = function (response) { + window.store_einreichungen = new (declare([Memory, Trackable]))({ + data: response, + idProperty: 'id' + }) + filterEinreichungen() + } + zuladungsliste_xhr.call_function( + callback, + 'liste_controller', + 'load_einreichungen' + ) + } + + var tab_einreichung = new BorderContainer({ + design: 'headline', + title: ' Einreichungen', + id: 'einreichungen', + onShow: function () { + loadEinreichungen() + } + }) + + /******************************************************* + * info header + *******************************************************/ + var cp_einreichung_header = new ContentPane({ + id: 'cp_einreichung_header', + content: 'Einreichungen', + region: 'top', + className: 'tab-header center' + }) + tab_einreichung.addChild(cp_einreichung_header) + + /******************************************************* + * menu_einreichung + *******************************************************/ + + var menu_einreichung = new MenuBar({ + region: 'top', + id: 'menu_einreichung', + splitter: false + }) + menu_einreichung.addChild( + new TextBox({ + name: 'searchbox_ein', + id: 'searchbox_ein', + disabled: false, + trim: true, + placeHolder: ' Filter...', + _setSelected: function () {}, + onKeyUp: function () { + filterEinreichungen() + } + }) + ) + menu_einreichung.addChild( + new dijit.MenuBarItem({ + label: '', + _setSelected: function () {}, + onClick: function () { + loadEinreichungen() + dijit.byId('searchbox_ein').reset() + } + }) + ) + menu_einreichung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Neu Laden', + _setSelected: function () {}, + onClick: function () { + dijit.byId('searchbox_ein').reset() + LOCALSCOPE.filter_ein = [] + LOCALSCOPE.search_ein = '' + loadEinreichungen() + } + }) + ) + menuitems_einreichungen.load_items(menu_einreichung) + tab_einreichung.addChild(menu_einreichung) + + /******************************************************* + * filter header + *******************************************************/ + var cp_einreichungen_filter = new ContentPane({ + id: 'cp_einreichungen_filter', + style: 'padding:0;', + region: 'top', + className: 'filter-header center' + }) + tab_einreichung.addChild(cp_einreichungen_filter) + + /******************************************************* + * cp grid + *******************************************************/ + + var CellSelectionGridEditor = declare([ + Grid, + Pagination, + Tree, + CellSelection + ]) + var grid_einreichungen = (window.grid_einreichungen = + new CellSelectionGridEditor({ + collection: new Memory(), + columns: columns_einreichungen_administrator.load(), + idProperty: 'id', + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + maxRowsPerPage: 25, + rowsPerPage: 100, + pageSkip: 25, + sort: 'sorting' + })) + tab_einreichung.addChild( + new ContentPane({ + id: 'cp_einreichungen', + region: 'center', + style: 'padding:0; border: 0;', + content: grid_einreichungen + }) + ) + grid_einreichungen.on('.dgrid-content .dgrid-cell:click', function (evt) { + var cell = grid_einreichungen.cell(evt) + var item = grid_einreichungen.row(evt) + var column = grid_einreichungen.column(evt) + var field = column.field + + switch (field) { + case 'delete': + if (item.status == 0 && confirm('Einreichung löschen?')) { + zuladungsliste_xhr.call_function( + loadEinreichungen, + 'liste_controller', + 'disable_einreichung', + '&uid=' + cell.row.id + ) + } + break + case 'aufgenommen': + zuladungsliste_xhr.call_function( + loadEinreichungen, + 'liste_controller', + 'update_einreichung', + '&field=' + field + '&uid=' + cell.row.id + ) + break + case 'abgelehnt': + zuladungsliste_xhr.call_function( + loadEinreichungen, + 'liste_controller', + 'update_einreichung', + '&field=' + field + '&uid=' + cell.row.id + ) + break + case 'dokument_orig_name': + // direkter zugriff auf "/uploads/tx_zuladungsliste/" mit htaccess file unterbunden + // öffnen nur mit gültigem login + // var url = "public/uploads/tx_zuladungsliste/" + cell.row.data.user_uid + "/" + cell.row.data.dokument_orig_name; + // window.open(url, "_blank"); + // return; + zuladungsliste_xhr.call_download( + 'download_controller', + 'download_einreichung', + '&userid=' + + cell.row.data.user_uid + + '&pdf=' + + encodeURIComponent(cell.row.data.dokument_orig_name) + ) + break + default: + } + }) + tab_container.addChild(tab_einreichung) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/punkte_freischalten.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/punkte_freischalten.js new file mode 100644 index 0000000..cf703f7 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/punkte_freischalten.js @@ -0,0 +1,280 @@ +define([ + 'dojo/_base/array', + 'dojo/_base/declare', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dstore/Memory', + 'dstore/Trackable', + 'dgrid/Grid', + 'dgrid/CellSelection', + 'dgrid/extensions/Pagination', + 'dijit/MenuBar', + 'dijit/form/TextBox', + 'zuladungsliste/menus/menuitems_freischalten', + 'zuladungsliste/columns/columns_freischaltungen_administrator', + 'zuladungsliste/zuladungsliste_xhr', + 'dojo/domReady!' +], function ( + arrayUtil, + declare, + ContentPane, + BorderContainer, + Memory, + Trackable, + Grid, + CellSelection, + Pagination, + MenuBar, + TextBox, + menuitems_freischalten, + columns_freischaltungen_administrator, + zuladungsliste_xhr +) { + return { + init: function (tab_container) { + LOCALSCOPE.filter_frei = [] + /******************************************************* + * Layout + *******************************************************/ + + window.remove = function (id) { + switch (id) { + case 1: + delete LOCALSCOPE.filter_frei.bundeslandid + break + case 2: + delete LOCALSCOPE.filter_frei.jahr + break + case 3: + delete LOCALSCOPE.filter_frei.status + break + case 4: + dijit.byId('searchbox_frei').reset() + break + } + filterFreischalten() + } + + window.filterFreischalten = function () { + var str = '' + if (LOCALSCOPE.filter_frei.bundeslandid != undefined) { + str += '    ' + str += + ' ' + LOCALSCOPE.bundeslaender[LOCALSCOPE.filter_frei.bundeslandid] + str += + ' ' + } + if (LOCALSCOPE.filter_frei.jahr != undefined) { + str += '    ' + str += ' ' + LOCALSCOPE.filter_frei.jahr + str += + ' ' + } + if (LOCALSCOPE.filter_frei.status != undefined) { + switch (LOCALSCOPE.filter_frei.status) { + case 1: + str += + '    Anstehend' + break + case 2: + str += + '    Freigegeben' + break + case 3: + str += + '    Abgelehnt' + break + } + str += + ' ' + } + + LOCALSCOPE.filter_f = [] + var string = dijit.byId('searchbox_frei').get('value') + if (string != '') { + str += '    ' + str += + string + + ' ' + string = string.toLowerCase() + LOCALSCOPE.filter_f = store_freischalten.filter(function (object) { + wettbewerb = object.wettbewerb.toLowerCase() + company = object.company.toLowerCase() + if (~wettbewerb.indexOf(string) || ~company.indexOf(string)) { + return true + } + return false + }) + LOCALSCOPE.filter_f = LOCALSCOPE.filter_f + .filter(LOCALSCOPE.filter_frei) + .sort('wettbewerb') + } else { + LOCALSCOPE.filter_f = store_freischalten + .filter(LOCALSCOPE.filter_frei) + .sort('wettbewerb') + } + + LOCALSCOPE.print_frei = str + + grid_freischalten.set('collection', LOCALSCOPE.filter_f) + grid_freischalten.startup() + grid_freischalten.refresh() + + if (str) { + dijit.byId('cp_freischalten_filter').set('content', str) + } else { + dijit.byId('cp_freischalten_filter').set('content', '') + } + } + + window.loadPunkteFreischalten = function (key, value) { + var callback = function (response) { + var store_freischalten = (window.store_freischalten = new (declare([ + Memory, + Trackable + ]))({ + data: response, + idProperty: 'id' + })) + filterFreischalten() + } + + var parameters = '' + if (key && value) parameters = '&key=' + key + '&value=' + value + + zuladungsliste_xhr.call_function( + callback, + 'liste_controller', + 'load_freischaltungen', + parameters + ) + } + + var tab_freischalten = new BorderContainer({ + design: 'headline', + title: ' Punkte Freischalten', + onShow: function () { + loadPunkteFreischalten() + dijit.byId('searchbox_frei').reset() + } + }) + + /******************************************************* + * info header + *******************************************************/ + var cp_freischaltung_header = new ContentPane({ + id: 'cp_freischaltung_header', + region: 'top', + className: 'tab-header center', + content: 'Punkte Freischalten' + }) + tab_freischalten.addChild(cp_freischaltung_header) + + /******************************************************* + * MENU + *******************************************************/ + var menu_freischalten = new MenuBar({ + id: 'menu_freischalten', + className: 'center', + region: 'top', + splitter: false + }) + menu_freischalten.addChild( + new TextBox({ + name: 'searchbox_frei', + id: 'searchbox_frei', + disabled: false, + trim: true, + placeHolder: ' Filter...', + _setSelected: function () {}, + onKeyUp: function () { + filterFreischalten() + } + }) + ) + menu_freischalten.addChild( + new dijit.MenuBarItem({ + label: '', + onClick: function () { + dijit.byId('searchbox_frei').reset() + filterFreischalten() + } + }) + ) + menuitems_freischalten.load_items(menu_freischalten) + tab_freischalten.addChild(menu_freischalten) + + /******************************************************* + * filter header + *******************************************************/ + var cp_freischalten_filter = new ContentPane({ + id: 'cp_freischalten_filter', + style: 'padding:0;', + region: 'top', + className: 'filter-header center' + }) + tab_freischalten.addChild(cp_freischalten_filter) + + /******************************************************* + * GRID + *******************************************************/ + var CellSelectionGrid = declare([Grid, Pagination, CellSelection]) + var grid_freischalten = (window.grid_freischalten = new CellSelectionGrid( + { + idProperty: 'id', + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + rowsPerPage: 25, + sort: 'name', + columns: columns_freischaltungen_administrator.load() + // columnSets: columns_freischaltungen_administrator.load() + } + )) + tab_freischalten.addChild( + new ContentPane({ + id: 'cp_freischalten_liste', + style: 'padding:0; border:0', + region: 'center', + content: grid_freischalten + }) + ) + grid_freischalten.on('dgrid-select', function (evt) { + var conf + var what = false + arrayUtil.map(evt.cells, function (cell) { + var field = cell.column.field + var item = cell.row.data + switch (field) { + case 'search': + dijit.byId('searchbox_frei').set('value', item.company) + filterFreischalten() + break + case 'tstamp_aktivierung': + if (confirm('Punkte aktivieren?')) { + zuladungsliste_xhr.call_function( + loadPunkteFreischalten, + 'liste_controller', + 'freischaltung_aktivieren', + '&uid_wettarch=' + item.uid_wettarch + ) + } + break + case 'tstamp_ablehnen': + if (confirm('Punkteaktivierung ablehnen?')) { + zuladungsliste_xhr.call_function( + loadPunkteFreischalten, + 'liste_controller', + 'freischaltung_ablehnen', + '&uid_wettarch=' + item.uid_wettarch + ) + } + break + } + }) + }) + + tab_container.addChild(tab_freischalten) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/zuteilungen.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/zuteilungen.js new file mode 100644 index 0000000..e0fb88d --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/administrator/zuteilungen.js @@ -0,0 +1,462 @@ +define([ + 'dojo/_base/array', + 'dojo/_base/declare', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dijit/layout/TabContainer', + 'dstore/Memory', + 'dgrid/OnDemandGrid', + 'dgrid/Selection', + 'dijit/Menu', + 'dijit/MenuItem', + 'dijit/MenuBar', + 'dijit/MenuBarItem', + 'dijit/MenuSeparator', + 'dijit/PopupMenuBarItem', + 'dijit/DropDownMenu', + 'dijit/ToolbarSeparator', + 'dijit/form/TextBox', + 'zuladungsliste/columns/columns_zuteilungen_administrator', + 'zuladungsliste/zuladungsliste_xhr', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + arrayUtil, + declare, + ContentPane, + BorderContainer, + TabContainer, + Memory, + OnDemandGrid, + Selection, + Menu, + MenuItem, + MenuBar, + MenuBarItem, + MenuSeparator, + PopupMenuBarItem, + DropDownMenu, + ToolbarSeparator, + TextBox, + columns_zuteilungen_administrator, + zuladungsliste_xhr, + zuladungsliste_functions +) { + return { + init: function (tab_container) { + LOCALSCOPE.filter_next = 0 + + var SelectionGrid = declare([OnDemandGrid, Selection]) + /******************************************************* + * Layout + *******************************************************/ + + var bc_zuteilung = new BorderContainer({ + design: 'headline', + title: ' Zuteilungen', + id: 'zuteilungen', + onShow: function () {} + }) + tab_container.addChild(bc_zuteilung) + + /******************************************************* + * info header + *******************************************************/ + var cp_zuteilung_header = new ContentPane({ + id: 'cp_zuteilung_header', + region: 'top', + className: 'tab-header center', + content: 'Zuteilungen' + }) + bc_zuteilung.addChild(cp_zuteilung_header) + + /******************************************************* + * Tab Container + *******************************************************/ + var tab_zuteilung = new TabContainer({ + region: 'center', + id: 'tab_zuteilung' + }) + bc_zuteilung.addChild(tab_zuteilung) + + var bc_bestehende = new BorderContainer({ + title: ' Erstellte Zuteilungen', + id: 'bc_bestehende', + design: 'headline', + onShow: function () { + ladeErteilteZuladungen() + } + }) + tab_zuteilung.addChild(bc_bestehende) + + /******************************************************* + * MENU + *******************************************************/ + var menu_zuteilungen = new MenuBar({ + id: 'menu_zuteilungen', + className: 'center', + region: 'top', + splitter: false + }) + menu_zuteilungen.addChild( + new TextBox({ + name: 'searchbox_zutl', + id: 'searchbox_zutl', + disabled: false, + trim: true, + placeHolder: ' Filter...', + _setSelected: function () {}, + onKeyUp: function () { + filterErteilteZuladungen() + } + }) + ) + menu_zuteilungen.addChild( + new dijit.MenuBarItem({ + label: '', + onClick: function () { + dijit.byId('searchbox_zutl').reset() + filterErteilteZuladungen() + } + }) + ) + menu_zuteilungen.addChild(new ToolbarSeparator()) + + menu_zuteilungen.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Drucken', + onClick: function () { + zuladungsliste_xhr.call_print( + 'zuteilungen_controller', + 'zuteilung_laden', + '&print=1&zuladungid=' + LOCALSCOPE.zuladungid + ) + } + }) + ) + bc_bestehende.addChild(menu_zuteilungen) + + var cp_zuteilungen_bestehende = new ContentPane({ + id: 'cp_zuteilungen_bestehende', + style: 'width:35%', + region: 'left' + }) + bc_bestehende.addChild(cp_zuteilungen_bestehende) + + var cp_zuteilungen_bestehende_print = new ContentPane({ + id: 'cp_zuteilungen_bestehende_print', + style: 'padding: 10px', + region: 'center' + }) + bc_bestehende.addChild(cp_zuteilungen_bestehende_print) + + var grid_zuteilungen_bestehende = (window.grid_zuteilungen_bestehende = + new SelectionGrid({ + columns: columns_zuteilungen_administrator.bestehende(), + idProperty: 'uid' + })) + cp_zuteilungen_bestehende.addChild(grid_zuteilungen_bestehende) + grid_zuteilungen_bestehende.on('dgrid-select', function (e) { + var row = e.rows[0], + item = row.data + LOCALSCOPE.zuladungid = item.uid + + var callback = function (response) { + dijit.byId('cp_zuteilungen_bestehende_print').set('content', response) + } + zuladungsliste_xhr.call_function_text( + callback, + 'zuteilungen_controller', + 'zuteilung_laden', + '&zuladungid=' + LOCALSCOPE.zuladungid + ) + }) + var bc_neue = new BorderContainer({ + title: ' Neue Zuteilungen', + id: 'bc_neue', + design: 'sidebar', + onShow: function () { + ladeZuladungen() + ladeZuladungenWettbewerbe() + LOCALSCOPE.zuladungid = 0 + grid_naechsten_menu.refresh() + dijit + .byId('wettbewerbe_zuteilen') + .set( + 'label', + 'Wettbewerb Zuteilen ' + ) + } + }) + tab_zuteilung.addChild(bc_neue) + + bc_neue.addChild( + new ContentPane({ + id: 'cp_naechsten_menu', + region: 'left' + }) + ) + bc_neue.addChild( + new ContentPane({ + className: 'text-subheader center', + region: 'top', + id: 'nomtop', + content: 'Nominierungen' + }) + ) + var menu_zuteilen = new MenuBar({ + id: 'menu_zuteilen', + className: 'center', + region: 'top', + splitter: false + }) + bc_neue.addChild(menu_zuteilen) + menu_zuteilen.addChild( + new MenuBarItem({ + label: 'Neu Laden', + onClick: function () { + ladeZuladungen() + } + }) + ) + menu_zuteilen.addChild(new ToolbarSeparator()) + menu_zuteilen.addChild( + new PopupMenuBarItem({ + id: 'wettbewerbe_zuteilen', + region: 'center', + label: 'Wettbewerb Zuteilen ', + popup: new DropDownMenu() + }) + ) + + bc_neue.addChild( + new ContentPane({ + id: 'cp_naechsten', + region: 'top' + }) + ) + bc_neue.addChild( + new ContentPane({ + className: 'text-subheader center', + region: 'top', + id: 'nomtoper', + content: 'Ersatz - Nominierungen' + }) + ) + bc_neue.addChild( + new ContentPane({ + id: 'cp_naechsten_ersatz', + region: 'center' + }) + ) + + var grid_naechsten_menu = (window.grid_naechsten_menu = new SelectionGrid( + { + collection: new Memory({ + data: LOCALSCOPE.next + }), + columns: [ + { + label: 'Nächsten', + field: 'label', + className: 'no-border-l', + sortable: false, + renderCell: function (object, data) { + return zuladungsliste_functions.renderIconText( + 'fa fa-list-ol', + data + ) + } + } + ] + }, + 'cp_naechsten_menu' + )) + + function filterNaechsten () { + var filter_f = [] + var c = [] + c['n' + LOCALSCOPE.filter_next] = 1 + filter_f = store_zuladungen.filter(c).sort('pos') + grid_naechsten_data.set('collection', filter_f) + grid_naechsten_data.startup() + grid_naechsten_data.resize() + c = [] + c['e' + LOCALSCOPE.filter_next] = 1 + filter_f = store_zuladungen.filter(c).sort('pos') + grid_naechsten_ersatz_data.set('collection', filter_f) + grid_naechsten_ersatz_data.startup() + grid_naechsten_ersatz_data.resize() + } + + grid_naechsten_menu.on('dgrid-select', function (e) { + var row = e.rows[0], + item = row.data + LOCALSCOPE.filter_next = item.id + dijit.byId('nomtop').set('content', 'Nominierung: ' + item.label) + dijit + .byId('nomtoper') + .set('content', 'Ersatz - Nominierung: ' + item.label) + filterNaechsten() + }) + + var grid_naechsten_data = (window.grid_naechsten_data = new SelectionGrid( + { + columns: columns_zuteilungen_administrator.naechsten_columns() + }, + 'cp_naechsten' + )) + var grid_naechsten_ersatz_data = (window.grid_naechsten_ersatz_data = + new SelectionGrid( + { + columns: columns_zuteilungen_administrator.naechsten_columns2() + }, + 'cp_naechsten_ersatz' + )) + + function filterErteilteZuladungen () { + var filter_f + var str = dijit.byId('searchbox_zutl').get('value') + if (str != '') { + str = str.toLowerCase() + filter_f = store_zuteilungen + .filter(function (object) { + wettbewerb = object.wettbewerb.toLowerCase() + if (~wettbewerb.indexOf(str)) { + return true + } + return false + }) + .sort([ + { + property: 'tstamp', + descending: true + } + ]) + } else { + filter_f = store_zuteilungen.sort([ + { + property: 'tstamp', + descending: true + } + ]) + } + grid_zuteilungen_bestehende.set('collection', filter_f) + grid_zuteilungen_bestehende.startup() + grid_zuteilungen_bestehende.resize() + } + + function ladeErteilteZuladungen () { + var callback = function (response) { + var Store = declare([Memory]) + var store_zuteilungen = (window.store_zuteilungen = new Store({ + data: response, + idProperty: 'uid' + })) + filterErteilteZuladungen() + } + zuladungsliste_xhr.call_function( + callback, + 'zuteilungen_controller', + 'zuteilungen_erteilt' + ) + } + + function ladeZuladungen () { + var callback = function (response) { + var store_zuladungen = (window.store_zuladungen = new (declare([ + Memory + ]))({ + data: response, + idProperty: 'id' + })) + filterNaechsten() + } + zuladungsliste_xhr.call_function( + callback, + 'zuteilungen_controller', + 'lade_zuteilungen' + ) + } + + function wettbewerbeZuteilen (item) { + if (LOCALSCOPE.filter_next == 0) { + zuladungsliste_functions.showAlertDialog( + 'Bitte die nächsten Architekten auswählen.' + ) + return + } + + dijit + .byId('wettbewerbe_zuteilen') + .set( + 'label', + '' + ) + + var callback = function (response) { + dijit + .byId('wettbewerbe_zuteilen') + .set( + 'label', + 'Wettbewerb Zuteilen ' + ) + var tabContainer = dijit.byId('tab_zuteilung') + tabContainer.selectChild(dijit.byId('bc_bestehende')) + var tab_callback = function (response) { + dijit + .byId('cp_zuteilungen_bestehende_print') + .set('content', response) + } + zuladungsliste_xhr.call_function_text( + tab_callback, + 'zuteilungen_controller', + 'zuteilung_laden', + '&zuladungid=' + response + ) + } + zuladungsliste_xhr.call_function( + callback, + 'zuteilungen_controller', + 'neu_zuteilen', + '&kammernid=' + + LOCALSCOPE.kammernid + + '&wettbewerb_uid=' + + item.uid + + '&next=' + + LOCALSCOPE.filter_next + ) + } + + function ladeZuladungenWettbewerbe () { + var callback = function (response) { + var pSubMenu = new Menu({ + region: 'center' + }) + arrayUtil.forEach(response, function (item, i) { + pSubMenu.addChild( + new MenuItem({ + label: + item.sperre_deaktiviert == 1 + ? item.wettbewerb + + ' (Sperre deaktiviert)' + : item.wettbewerb, + onClick: function () { + wettbewerbeZuteilen(item) + } + }) + ) + if (i < response.length - 1) pSubMenu.addChild(new MenuSeparator()) + }) + dijit.byId('wettbewerbe_zuteilen').set('popup', pSubMenu) + } + zuladungsliste_xhr.call_function( + callback, + 'zuteilungen_controller', + 'zuteilungen_wettbewerbe' + ) + } + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/einreichung.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/einreichung.js new file mode 100644 index 0000000..0596033 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/einreichung.js @@ -0,0 +1,371 @@ +define([ + 'dojo/_base/array', + 'dojo/_base/declare', + 'dojo/dom', + 'dojo/query', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dijit/layout/TabContainer', + 'dijit/form/Button', + 'dijit/Dialog', + 'dojox/form/Uploader', + 'dojo/io/iframe', + 'dstore/Memory', + 'dgrid/Grid', + 'dgrid/CellSelection', + 'dgrid/extensions/Pagination', + 'zuladungsliste/columns/columns_eigereichte_architekt', + 'zuladungsliste/zuladungsliste_xhr', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + arrayUtil, + declare, + dom, + query, + ContentPane, + BorderContainer, + TabContainer, + Button, + Dialog, + Uploader, + iframe, + Memory, + Grid, + CellSelection, + Pagination, + columns_eigereichte_architekt, + zuladungsliste_xhr, + zuladungsliste_functions +) { + return { + init: function (tab_container_achitekten) { + /******************************************************* + * Layout + *******************************************************/ + + var tab_einreichung = new BorderContainer({ + design: 'headline', + id: 'tab_einreichung', + title: ' Eingereichte Projekte' + }) + + var cp_einreichung_header = new ContentPane({ + id: 'cp_einreichung_header', + region: 'top', + className: 'tab-header center', + content: 'Eingereichte Projekte' + }) + tab_einreichung.addChild(cp_einreichung_header) + + /******************************************************* + * einreichen + *******************************************************/ + + window.setEinreichung = function () { + var FormEinreichen = '' + FormEinreichen += '

Neues Projekt einreichen
' + FormEinreichen += + '
' + FormEinreichen += + '' + FormEinreichen += '' + FormEinreichen += + '' + FormEinreichen += + '' + FormEinreichen += + '' + FormEinreichen += + '' + var options = + '' + FormEinreichen += + '' + FormEinreichen += + '' + FormEinreichen += + '' + FormEinreichen += + '' + FormEinreichen += '
' + dijit.byId('einreichen').set('content', FormEinreichen) + var einreichen_content = 0 + var EinreichenUploader = new Uploader( + { + label: 'Dokument auswählen (pdf)', + multiple: false, + url: '../index.php?zlcontroller=upload_controller&xaction=dokument_einreichen', + uploadOnChange: false, + showInput: true, + isDebug: true, + method: 'POST', + content: einreichen_content + }, + 'protokoll' + ) + var resetButtonEin = new Button( + { + label: ' Zurücksetzen', + className: 'button-submit', + onClick: function () { + sendform.reset() + EinreichenUploader.reset() + dom.byId('infobox').innerHTML = 'Neues Projekt einreichen' + query('.dojoxUploaderFileListProgress').style({ + display: 'none' + }) + } + }, + 'reset_button' + ) + var uploadButtonEin = new Button( + { + label: + ' Projekt einreichen', + id: 'uploadButtonEin', + className: 'button-submit', + onClick: function () { + var f = query('td.dojoxUploaderIcon', 'einreichen_filelist') + sendform.validate() + arrayUtil.forEach(f, function (item) { + if (item.innerHTML == 'PDF' || item.innerHTML == 'pdf') { + if (sendform.validate()) { + dom.byId('infobox').innerHTML = + '' + EinreichenUploader.submit(dom.byId('sendform')) + } + } else { + zuladungsliste_functions.showAlertDialog( + 'Bitte das Protokoll im PDF Format einreichen.' + ) + return + } + }) + } + }, + 'upload_button' + ) + dojo.connect(EinreichenUploader, 'onComplete', function (dataArray) { + dom.byId('infobox').innerHTML = + 'Projekt erfolgreich eingereicht' + sendform.reset() + EinreichenUploader.reset() + setTimeout(function () { + dom.byId('infobox').innerHTML = 'Neues Projekt einreichen' + }, 3e3) + }) + } + + window.resendPdfAgain = function (uid) { + /******************************************************* + * Aktualisieren + *******************************************************/ + + var FormAktualisieren = '' + FormAktualisieren += + '
Einreichung aktualisieren
' + FormAktualisieren += + '
' + FormAktualisieren += '' + FormAktualisieren += + '' + FormAktualisieren += + '' + FormAktualisieren += + '' + FormAktualisieren += '
' + + var aktualisieren_dialog = new Dialog({ + title: + ' Dokument auf den Server laden', + style: 'width: 600px; padding:20px auto;', + id: 'aktualisieren_dialog', + region: 'center', + content: FormAktualisieren, + onHide: function () { + dijit.byId('aktualisieren_dialog').destroyRecursive() + } + }) + + setTimeout(function () { + var aktual_content = 0 + var AktualisiererUpload = new Uploader( + { + label: 'Dokument auswählen (pdf)', + multiple: false, + url: + 'index.php?zlcontroller=upload_controller&xaction=dokument_aktualisieren&uid=' + + uid, + uploadOnChange: false, + showInput: true, + isDebug: true, + method: 'POST', + content: aktual_content + }, + 'protokoll2' + ) + var resetButtonAkt = new Button( + { + label: ' Zurücksetzen', + className: 'button-submit', + onClick: function () { + sendform2.reset() + AktualisiererUpload.reset() + dom.byId('infobox2').innerHTML = 'Einreichung aktualisieren' + query('.dojoxUploaderFileListProgress').style({ + display: 'none' + }) + } + }, + 'reset_button2' + ) + var uploadButtonAkt = new Button( + { + label: ' Hochladen', + id: 'uploadButtonAkt', + className: 'button-submit', + onClick: function () { + var f = query('td.dojoxUploaderIcon', 'aktualisieren_filelist') + sendform2.validate() + arrayUtil.forEach(f, function (item) { + if (item.innerHTML == 'PDF' || item.innerHTML == 'pdf') { + if (sendform2.validate()) { + dom.byId('infobox2').innerHTML = + '' + AktualisiererUpload.submit(dom.byId('sendform2')) + } + } else { + zuladungsliste_functions.showAlertDialog( + 'Bitte das Protokoll im PDF Format einreichen.' + ) + return + } + }) + } + }, + 'upload_button2' + ) + dijit.byId('aktualisieren_dialog').show() + dojo.connect(AktualisiererUpload, 'onComplete', function (dataArray) { + loadEinreichungen() + dijit.byId('aktualisieren_dialog').hide() + }) + }, 100) + } + + /******************************************************* + * eingereichte + *******************************************************/ + var CellSelectionGrid = declare([Grid, Pagination, CellSelection]) + var grid_einreichte_projekte = (window.grid_einreichte_projekte = + new CellSelectionGrid({ + collection: new Memory(), + columns: columns_eigereichte_architekt.projekte(), + idProperty: 'uid', + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + rowsPerPage: 100, + sort: 'sorting' + })) + grid_einreichte_projekte.on( + '.dgrid-content .dgrid-cell:click', + function (evt) { + var cell = grid_einreichte_projekte.cell(evt) + var item = grid_einreichte_projekte.row(evt) + var column = grid_einreichte_projekte.column(evt) + var field = column.field + + switch (field) { + case 'hochladen': + resendPdfAgain(item.id) + break + case 'delete': + if (item.status == 0 && confirm('Einreichung löschen?')) { + zuladungsliste_xhr.call_function( + loadEinreichungen, + 'einreichen_controller', + 'delete_einreichung', + '&uid=' + item.id + ) + } + break + case 'dokument_orig_name': + // direkter zugriff auf "/uploads/tx_zuladungsliste/" mit htaccess file unterbunden + // öffnen nur mit gültigem login + // var url = "../uploads/tx_zuladungsliste/" + LOCALSCOPE.userid + "/" + item.data.dokument_orig_name; + // window.open(url, "_blank"); + // return; + zuladungsliste_xhr.call_download( + 'download_controller', + 'download_einreichung', + '&userid=' + + LOCALSCOPE.userid + + '&pdf=' + + encodeURIComponent(cell.row.data.dokument_orig_name) + ) + break + default: + } + } + ) + /******************************************************* + * layout + *******************************************************/ + function loadEinreichungen() { + var callback = function (response) { + var store_einreichte_projekte = (window.store_einreichte_projekte = + new Memory({ + data: response, + idProperty: 'uid' + })) + grid_einreichte_projekte.set('collection', store_einreichte_projekte) + grid_einreichte_projekte.startup() + grid_einreichte_projekte.refresh() + } + + zuladungsliste_xhr.call_function( + callback, + 'einreichen_controller', + 'lade_einreichungen' + ) + } + + var einreichenTabs_einzelansicht = new TabContainer({ + title: 'Eingereichte Projekte', + id: 'einreichenTabs_einzelansicht', + tabPosition: 'top', + region: 'center', + class: 'centerPanel' + }) + einreichenTabs_einzelansicht.addChild( + new ContentPane({ + title: 'Projekt einreichen', + id: 'einreichen' + }) + ) + einreichenTabs_einzelansicht.addChild( + new ContentPane({ + title: 'Eingereichte Projekte', + id: 'tab_einreichte_projekte', + content: grid_einreichte_projekte, + onShow: function () { + loadEinreichungen() + } + }) + ) + tab_einreichung.addChild(einreichenTabs_einzelansicht) + + tab_container_achitekten.addChild(tab_einreichung) + + /******************************************************* + * start up + *******************************************************/ + + setEinreichung() + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/konto.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/konto.js new file mode 100644 index 0000000..600d3f5 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/konto.js @@ -0,0 +1,166 @@ +define([ + 'dojo/_base/declare', + 'dijit/MenuBar', + 'dijit/MenuBarItem', + 'dijit/ToolbarSeparator', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dstore/Memory', + 'dgrid/OnDemandGrid', + 'dgrid/Editor', + 'zuladungsliste/columns/columns_konto_architekt', + 'zuladungsliste/zuladungsliste_xhr', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + declare, + MenuBar, + MenuBarItem, + ToolbarSeparator, + ContentPane, + BorderContainer, + Memory, + OnDemandGrid, + Editor, + columns_konto_architekt, + zuladungsliste_xhr, + zuladungsliste_functions +) { + return { + init: function (tab_container_achitekten) { + /******************************************************* + * funtion + *******************************************************/ + function loadKonto () { + var callback = function (response) { + var store_konto = (window.store_konto = new Memory({ + data: response + })) + grid_konto.set('collection', store_konto) + grid_konto.startup() + grid_konto.refresh() + + dijit.byId('sichern').set('disabled', true) + dijit.byId('sichern').set('label', 'Änderungen Sichern') + } + + zuladungsliste_xhr.call_function( + callback, + 'user_controller', + 'lade_konto' + ) + } + + function sichernKonto () { + dijit + .byId('sichern') + .set('label', '') + var callback = function (response) { + setTimeout(function () { + dijit.byId('sichern').set('disabled', true) + dijit.byId('sichern').set('label', 'Änderungen Sichern') + }, 1000) + } + zuladungsliste_xhr.post_function( + callback, + 'user_controller', + 'sichern_konto', + store_konto.data + ) + } + + /******************************************************* + * Layout + *******************************************************/ + var tab_konto = new BorderContainer({ + design: 'headline', + id: 'tab_konto', + title: ' Ihr Benutzerkonto', + onShow: function () { + loadKonto() + } + }) + var cp_konto_header = new ContentPane({ + id: 'cp_konto_header', + region: 'top', + className: 'tab-header center', + content: 'Ihr Benutzerkonto' + }) + tab_konto.addChild(cp_konto_header) + + /******************************************************* + * Punkte Menu + *******************************************************/ + var menu_konto = new MenuBar({ + id: 'menu_konto', + class: 'center', + region: 'top', + splitter: false + }) + menu_konto.addChild( + new MenuBarItem({ + label: 'Neu laden', + onClick: function () { + loadKonto() + } + }) + ) + menu_konto.addChild(new ToolbarSeparator()) + menu_konto.addChild( + new MenuBarItem({ + label: 'Änderungen Sichern', + id: 'sichern', + disabled: true, + onClick: function () { + sichernKonto() + } + }) + ) + tab_konto.addChild(menu_konto) + + /******************************************************* + * änderungen + *******************************************************/ + tab_konto.addChild( + new ContentPane({ + region: 'bottom', + className: 'center', + style: 'padding: 50px; border: 0', + content: + 'Für Änderungen der E-Mail Adesse, des Büronamens oder dem Tag der Vereidigung
wenden Sie sich bitte an den/die Administrator/in der Zuladungsliste.
zuladungsliste@ztkammer.at' + }) + ) + + /******************************************************* + * gird + *******************************************************/ + + var cp_konto = new ContentPane({ + region: 'center', + style: 'padding: 0; border: 0;', + id: 'cp_konto' + }) + tab_konto.addChild(cp_konto) + + var CellSelectionGrid = declare([OnDemandGrid, Editor]) + + var grid_konto = (window.grid_konto = new CellSelectionGrid({ + collection: new Memory(), + columns: columns_konto_architekt.laden(), + style: 'border:0;', + showHeader: false, + idProperty: 'id' + })) + dijit.byId('cp_konto').set('content', grid_konto) + + grid_konto.on('dgrid-datachange', function (evt) { + dijit.byId('sichern').set('disabled', false) + dijit + .byId('sichern') + .set('label', '
Änderungen Sichern
') + }) + + tab_container_achitekten.addChild(tab_konto) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/position.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/position.js new file mode 100644 index 0000000..c6693da --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/position.js @@ -0,0 +1,270 @@ +define([ + 'dojo/_base/declare', + 'dojo/dom', + 'dijit/layout/ContentPane', + 'dijit/layout/BorderContainer', + 'dstore/Memory', + 'dstore/Trackable', + 'dstore/Tree', + 'dgrid/OnDemandGrid', + 'dgrid/Selection', + 'dgrid/Tree', + 'zuladungsliste/zuladungsliste_xhr', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + declare, + dom, + ContentPane, + BorderContainer, + Memory, + Trackable, + TreeStoreMixin, + OnDemandGrid, + Selection, + Tree, + zuladungsliste_xhr, + zuladungsliste_functions +) { + return { + init: function (tab_container_achitekten) { + /******************************************************* + * Functions + *******************************************************/ + var currentYear = (window.currentYear = new Date().getFullYear()) + + var StandardGrid = declare([OnDemandGrid, Selection]) + var grid_position = (window.grid_position = new StandardGrid({ + collection: new Memory(), + columns: [ + { + label: 'Projekte', + field: 'company', + className: 'no-border-l', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderCompany + }, + { + label: 'Gültig', + className: 'cell-140 center', + field: 'rang', + sortable: true + }, + { + label: 'Punkte', + field: 'punkte', + className: 'cell-100 center', + sortable: false, + renderCell: zuladungsliste_functions.formatPunkte + }, + { + label: ' ', + field: 'info', + className: 'cell-50 center', + renderCell: zuladungsliste_functions.renderInfoIcon, + hidden: false + } + ], + idProperty: 'id', + sort: 'id', + renderRow: function (object, i) { + var rowElement = this.inherited(arguments) + if (object.type == 'frauenfoerderpunkt') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_frauen_even' + else rowElement.className += 'childelement_frauen_odd' + } else if (object.type == 'neueinsteiger') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_neu_even' + else rowElement.className += 'childelement_neu_odd' + } else if (object.type == 'sondersperrung') { + if (object.id % 2 == 0) + rowElement.className += 'childelement_sperre_even' + else rowElement.className += 'childelement_sperre_odd' + } else if (object.hasChildren == 0 && object.punkte_aktive == 1) { + if (object.id % 2 == 0) + rowElement.className += 'childelement_act_even' + else rowElement.className += 'childelement_act_odd' + } else if (object.hasChildren == 0) { + if (object.id % 2 == 0) rowElement.className += 'childelement_even' + else rowElement.className += 'childelement_odd' + } + if (object.kontoaufloesung == 1) { + if (object.id % 2 == 0) rowElement.className += 'aufgeloest_even' + else rowElement.className += 'aufgeloest_odd' + } + return rowElement + } + })) + + function openAtStart() { + var row = position_store.filter({ id: 2 }) + row.forEach(function (item) { + dom.byId('position_datum').innerHTML = 'Stand: ' + item.title + dom.byId('position_punkte').innerHTML = 'Punkte: ' + item.punkte + dom.byId('position_rang').innerHTML = 'Rang: ' + item.rang + if (item.nominiert) { + dom.byId('position_sperrung').innerHTML = '' + } + else { + dom.byId('position_sperrung').innerHTML = 'Gesperrt bis ' + item.gesperrt_bis + } + + var callback = function (response) { + var store_user_pos = new Memory({ + data: response, + idProperty: 'id' + }) + grid_position.set('collection', store_user_pos) + grid_position.startup() + grid_position.refresh() + } + + zuladungsliste_xhr.call_function( + callback, + 'zuladungsliste_controller', + 'lade_position_architekt', + '&uid=' + item.uid + ) + }) + } + + function setPositonMenu() { + var callback = function (response) { + var position_store = (window.position_store = new (declare([ + Memory, + Trackable, + TreeStoreMixin + ]))({ + data: response + })) + var columns = { + title: { + label: ' ', + sortable: false, + field: 'title', + expandOn: 'click', + renderExpando: true, + renderCell: zuladungsliste_functions.renderPositionMenu + } + } + var position_tree_grid = new (declare([ + OnDemandGrid, + Selection, + Tree + ]))( + { + collection: position_store.getRootCollection(), + columns: columns, + id: 'position_tree_grid', + showHeader: 0, + shouldExpand: function (row, level, previouslyExpanded) { + if (row.data.type == 'year' && row.data.title == currentYear) { + return true + } + } + }, + 'positionierung_menu' + ) + + position_tree_grid.startup() + position_tree_grid.refresh() + + position_tree_grid.on('dgrid-select', function (eve) { + var row = eve.rows[0], + item = row.data + if (item.type == 'month') { + dom.byId('position_datum').innerHTML = 'Stand: ' + item.title + dom.byId('position_punkte').innerHTML = 'Punkte: ' + item.punkte + dom.byId('position_rang').innerHTML = 'Rang: ' + item.rang + if (item.nominiert) { + dom.byId('position_sperrung').innerHTML = '' + } + else { + dom.byId('position_sperrung').innerHTML = 'Gesperrt bis ' + item.gesperrt_bis + } + + var callback = function (response) { + var store_user_pos = new Memory({ + data: response, + idProperty: 'id' + }) + grid_position.set('collection', store_user_pos) + grid_position.startup() + grid_position.refresh() + } + + zuladungsliste_xhr.call_function( + callback, + 'zuladungsliste_controller', + 'lade_position_architekt', + '&uid=' + item.uid + ) + } else { + dom.byId('position_datum').innerHTML = '' + dom.byId('position_punkte').innerHTML = '' + dom.byId('position_rang').innerHTML = '' + dom.byId('position_sperrung').innerHTML = '' + grid_position.set('collection', new Memory()) + grid_position.startup() + grid_position.refresh() + } + }) + } + zuladungsliste_xhr.call_function( + callback, + 'zuladungsliste_controller', + 'lade_treemenu_position' + ) + } + + /******************************************************* + * Layout + *******************************************************/ + var tab_position = new BorderContainer({ + design: 'headline', + id: 'tab_position', + title: ' Zuladungsliste' + }) + + var cp_position_header = new ContentPane({ + id: 'cp_position_header', + region: 'top', + className: 'tab-header center', + content: 'Zuladungliste' + }) + tab_position.addChild(cp_position_header) + + tab_position.addChild( + new ContentPane({ + region: 'left', + id: 'positionierung_menu' + }) + ) + tab_position.addChild( + new ContentPane({ + region: 'top', + id: 'positionierung_top', + content: + '' + }) + ) + tab_position.addChild( + new ContentPane({ + region: 'center', + id: 'positionierung_center', + content: grid_position + }) + ) + + tab_container_achitekten.addChild(tab_position) + + setPositonMenu() + + setTimeout(function () { + openAtStart() + }, 1000) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/zuweisung.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/zuweisung.js new file mode 100644 index 0000000..7ba51d2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/architekt/zuweisung.js @@ -0,0 +1,301 @@ +define([ + "dojo/_base/declare", + "dijit/layout/ContentPane", + "dijit/layout/BorderContainer", + "dijit/MenuBar", + "dijit/MenuBarItem", + "dijit/form/TextBox", + "dstore/Memory", + "dgrid/Grid", + "dgrid/Selection", + "dgrid/extensions/Pagination", + "zuladungsliste/columns/columns_zuweisung_architekt", + "zuladungsliste/menus/menuitems_zuweisung", + "zuladungsliste/zuladungsliste_xhr", + "zuladungsliste/zuladungsliste_functions", + + "dojo/domReady!" +], function( + declare, + ContentPane, + BorderContainer, + MenuBar, + MenuBarItem, + TextBox, + Memory, + Grid, + Selection, + Pagination, + columns_zuweisung_architekt, + menuitems_zuweisung, + zuladungsliste_xhr, + zuladungsliste_functions +) { + return { + init: function(tab_container_achitekten) { + var SelectionGrid = declare([Grid, Pagination, Selection]); + + /******************************************************* + * PUNKTE ZUWEISUNG + *******************************************************/ + LOCALSCOPE.filter_zuweisung_status = 0; + LOCALSCOPE.filter_zuweisung_bundeslandid = -1; + LOCALSCOPE.filter_zuweisung_year = 0; + window.filterPunkteZuweisungen = function() { + var filter_f = []; + + var string = dijit.byId("searchbox_zuw").get("value"); + if (string != "") { + string = string.toLowerCase(); + filter_f = store_wettbewerbe.filter(function(object) { + wettbewerb = object.wettbewerb.toLowerCase(); + if (~wettbewerb.indexOf(string)) { + return true; + } + return false; + }); + } else { + filter_f = store_wettbewerbe; + } + var conditions = []; + if (LOCALSCOPE.filter_zuweisung_status) { + // 3 => not 1 or 2 + // 0 => all + if (LOCALSCOPE.filter_zuweisung_status == 3) + conditions.status = 0; + else conditions.status = LOCALSCOPE.filter_zuweisung_status; + } + + if (LOCALSCOPE.filter_zuweisung_bundeslandid > -1) { + conditions.bundeslandid = + LOCALSCOPE.filter_zuweisung_bundeslandid; + } + if (LOCALSCOPE.filter_zuweisung_year) { + conditions.jahr = LOCALSCOPE.filter_zuweisung_year; + } + + filter_f = filter_f.filter(conditions); + grid_zuweisung_wettbewerbe.set("collection", filter_f); + grid_zuweisung_wettbewerbe.startup(); + grid_zuweisung_wettbewerbe.refresh(); + }; + + function loadWettbewerbe() { + var callback = function(response) { + var store_wettbewerbe = (window.store_wettbewerbe = new Memory( + { + data: response, + idProperty: "uid" + } + )); + filterPunkteZuweisungen(); + }; + + zuladungsliste_xhr.call_function( + callback, + "punktezuweisung_controller", + "lade_punktezuweisungen" + ); + } + + function loadPreise() { + if (LOCALSCOPE.kriteriumid == 0 || LOCALSCOPE.wettbewerbid == 0) + return false; + + var callback = function(response) { + var store_preise = (window.store_preise = new Memory({ + data: response, + idProperty: "uid" + })); + grid_preise.set("collection", store_preise); + grid_preise.startup(); + grid_preise.refresh(); + }; + + zuladungsliste_xhr.call_function( + callback, + "punktezuweisung_controller", + "lade_preise", + "&kriteriumid=" + + LOCALSCOPE.kriteriumid + + "&wettbewerbid=" + + LOCALSCOPE.wettbewerbid + ); + } + var tab_zuweisung = new BorderContainer({ + design: "headline", + id: "tab_zuweisung", + title: ' Punktezuweisung', + onShow: function() { + loadWettbewerbe(); + } + }); + + var cp_zuweisung_header = new ContentPane({ + id: "cp_zuweisung_header", + region: "top", + className: "tab-header center", + content: 'Punktezuweisung' + }); + tab_zuweisung.addChild(cp_zuweisung_header); + + /******************************************************* + * PUNKTE left + *******************************************************/ + var bc_punkte = new BorderContainer({ + design: "headline", + region: "left", + id: "bc_punkte" + }); + tab_zuweisung.addChild(bc_punkte); + + /******************************************************* + * Punkte Menu + *******************************************************/ + var cp_preiszuweisung_menu = new ContentPane({ + id: "cp_preiszuweisung_menu", + style: "padding:0;border:0;", + region: "top" + }); + bc_punkte.addChild(cp_preiszuweisung_menu); + var menu_preiszuweisung = new MenuBar({ + id: "menu_preiszuweisung", + class: "center", + region: "top", + splitter: false + }); + menu_preiszuweisung.addChild( + new TextBox({ + region: "left", + type: "text", + selectOnClick: false, + trim: false, + id: "searchbox_zuw", + placeHolder: "Filter ..", + _setSelected: function() {}, + onKeyUp: function() { + filterPunkteZuweisungen(); + } + }) + ); + menu_preiszuweisung.addChild( + new MenuBarItem({ + label: '', + id: "resetbutton", + onClick: function() { + dijit.byId("searchbox_zuw").reset(); + filterPunkteZuweisungen(); + } + }) + ); + menuitems_zuweisung.load_items(menu_preiszuweisung); + cp_preiszuweisung_menu.addChild(menu_preiszuweisung); + /******************************************************* + * WETTBEWERBE grid + *******************************************************/ + var grid_zuweisung_wettbewerbe = (window.grid_zuweisung_wettbewerbe = new SelectionGrid( + { + collection: new Memory(), + columns: columns_zuweisung_architekt.wettbewerbe(), + idProperty: "uid", + collapseOnRefresh: true, + selectionMode: "single", + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + rowsPerPage: 25 + } + )); + grid_zuweisung_wettbewerbe.on("dgrid-select", function(evt) { + var row = evt.rows[0], + item = row.data; + + dijit + .byId("wettbewerbe_selected") + .set("content", item.wettbewerb); + + LOCALSCOPE.wettbewerbid = item.uid; + LOCALSCOPE.kriteriumid = item.kriteriumid; + + loadPreise(); + }); + + var cp_zuweisung_wettbewerbe = new ContentPane({ + id: "cp_zuweisung_wettbewerbe", + style: "padding:0;border:0;", + region: "center", + content: grid_zuweisung_wettbewerbe + }); + bc_punkte.addChild(cp_zuweisung_wettbewerbe); + /******************************************************* + * PREISE grid + *******************************************************/ + var grid_preise = (window.grid_preise = new SelectionGrid({ + collection: new Memory(), + columns: columns_zuweisung_architekt.preise(), + renderRow: function(object) { + var rowElement = this.inherited(arguments); + if (object.status == 2) { + rowElement.className += " " + " disabled"; + } else if (object.status == 1) { + rowElement.className += " " + " enabled"; + } + if (object.tstamp_aktivierung != "") + rowElement.className += " " + " enabled"; + return rowElement; + }, + idProperty: "id", + pagingLinks: true, + pagingTextBox: false, + firstLastArrows: true, + rowsPerPage: 100, + sort: "sorting" + })); + grid_preise.on("dgrid-select", function(e) { + var row = e.rows[0], + item = row.data; + if (item.status == 2) { + zuladungsliste_functions.showAlertDialog("Zugeordnete Preise werden kontrolliert und nach einer Freigabe gesperrt.
Bei Änderungswünschen wenden Sie sich bitte an den Administrator."); + return false; + } + zuladungsliste_xhr.post_function( + loadPreise, + "punktezuweisung_controller", + "setze_punktezuweisungen", + item, + "&kriteriumid=" + + LOCALSCOPE.kriteriumid + + "&wettbewerbid=" + + LOCALSCOPE.wettbewerbid + ); + + }); + /******************************************************* + * PREISE right + *******************************************************/ + var bc_preise = new BorderContainer({ + design: "headline", + region: "center", + id: "bc_preise" + }); + tab_zuweisung.addChild(bc_preise); + bc_preise.addChild( + new ContentPane({ + region: "top", + id: "wettbewerbe_selected" + }) + ); + bc_preise.addChild( + new ContentPane({ + region: "center", + id: "preise", + style: "padding:0;border:0;", + content: grid_preise + }) + ); + + tab_container_achitekten.addChild(tab_zuweisung); + + } + }; +}); diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_auswertungen.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_auswertungen.js new file mode 100644 index 0000000..95ab7ff --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_auswertungen.js @@ -0,0 +1,73 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + load: function () { + return [ + { + label: 'Büro', + field: 'company', + renderExpando: true, + expandOn: 'click', + unhidable: true, + sortable: true, + className: 'pointer no-border-l', + renderCell: zuladungsliste_functions.renderCompany + }, + { + label: 'Id', + field: 'id', + hidden: true, + className: 'cell-110' + }, + { + label: 'Rang', + field: 'rang', + sortable: true, + className: 'cell-110 bold' + }, + { + label: 'Position', + field: 'pos', + unhidable: true, + sortable: true, + className: 'cell-110 bold', + renderCell: zuladungsliste_functions.renderPosition + }, + { + label: 'Sperrung', + field: 'gesperrt_bis_sort', + className: 'cell-110', + renderCell: zuladungsliste_functions.formatSperre, + sortable: true + }, + { + label: 'Gültig', + field: 'valid', + className: 'cell-110', + sortable: true + }, + { + label: 'Punkte', + field: 'punkte', + sortable: false, + className: 'cell-110', + renderCell: zuladungsliste_functions.formatPunkte + }, + { field: 'sortdate', hidden: true }, + { + label: ' ', + field: 'info', + className: 'cell-icon', + renderHeaderCell: function () { + return zuladungsliste_functions.renderIcon( + 'fa fa-question-circle pointer' + ) + }, + renderCell: zuladungsliste_functions.renderInfoIcon, + hidden: false + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_eigereichte_architekt.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_eigereichte_architekt.js new file mode 100644 index 0000000..1f31267 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_eigereichte_architekt.js @@ -0,0 +1,101 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + projekte: function () { + return [ + { + label: 'Datum', + field: 'crdate', + className: 'cell-120 no-border-l', + sortable: true, + formatter: zuladungsliste_functions.formatDate + }, + { label: 'Projekt', field: 'wettbewerb', sortable: true }, + { + label: 'Beschreibung', + field: 'beschreibung', + className: 'cell-120', + sortable: false, + renderCell: zuladungsliste_functions.renderToolTipMaxLength + }, + { + label: 'Entschieden', + field: 'entscheidungstermin', + className: 'cell-120 center', + sortable: true + }, + { + label: 'Verfahrensort', + field: 'verfahrensort', + className: 'cell-120', + sortable: true, + renderCell: zuladungsliste_functions.renderToolTipMaxLength + }, + { + label: 'Bundesland', + field: 'bundesland', + className: 'cell-140', + sortable: true + }, + { + label: 'Protokoll', + field: 'dokument_orig_name', + className: 'cell-120 pointer', + sortable: true, + renderCell: function (object, data) { + return zuladungsliste_functions.renderIconText( + 'fa fa-file-pdf fourthly', + 'Öffnen', + data + ) + } + }, + { + label: 'Aktualisieren', + className: 'cell-120 pointer', + field: 'hochladen', + sortable: true, + renderCell: function (object, data) { + return zuladungsliste_functions.renderIconText( + 'fa fa-file-upload secondary', + 'Hochladen', + 'PDF Dokument aktualisieren
Ersetzt bestehendes Dokument' + ) + } + }, + { + label: 'Status', + field: 'status', + className: 'cell-120', + sortable: true, + renderCell: function (object, data, td) { + var div = document.createElement('div') + switch (data) { + case 0: + // div.className = "tertiary"; + div.innerHTML = 'Anhängig' + break + case 1: + // div.className = "secondary"; + div.innerHTML = 'Aufgenommen' + break + case 2: + div.className = 'tertiary' + div.innerHTML = 'Abgelehnt' + break + } + return div + } + }, + { + label: 'Begründung', + field: 'begruendung', + className: 'cell-120', + renderCell: zuladungsliste_functions.renderToolTipMaxLength, + sortable: false + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_einreichungen_administrator.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_einreichungen_administrator.js new file mode 100644 index 0000000..e2e55c7 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_einreichungen_administrator.js @@ -0,0 +1,105 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + load: function () { + return [ + { + label: 'Erstellt', + field: 'crdate', + sortable: true, + className: 'cell-100 no-border-l', + formatter: zuladungsliste_functions.formatDate + }, + { + label: 'Büro', + field: 'company', + className: 'bold', + sortable: true + }, + { + label: 'Ansprechpartner', + className: 'cell-140', + field: 'name', + sortable: true + }, + { + label: 'Projekt', + field: 'wettbewerb', + sortable: true + }, + { + field: 'beschreibung', + className: 'pointer', + sortable: false, + renderHeaderCell: function () { + return zuladungsliste_functions.renderTextIcon( + 'Beschreibung', + 'fa fa-question-circle pointer' + ) + }, + renderCell: zuladungsliste_functions.renderPopupText + }, + { + label: 'Verfahrensort', + className: 'cell-120', + field: 'verfahrensort', + sortable: true, + renderCell: zuladungsliste_functions.renderToolTipMaxLength + }, + { + label: 'Bundesland', + className: 'cell-100', + field: 'bundesland', + sortable: true + }, + { + label: 'Protokoll', + field: 'dokument_orig_name', + className: 'cell-120 pointer', + sortable: true, + renderCell: function (object, data) { + return zuladungsliste_functions.renderIconText( + 'fa fa-file-pdf fourthly', + 'Öffnen', + data + ) + } + }, + { + label: 'Entschieden', + className: 'cell-110', + field: 'entscheidungstermin', + sortable: true + }, + { + label: 'Annehmen', + field: 'aufgenommen', + className: 'cell-110', + sortable: true, + renderCell: zuladungsliste_functions.renderButtonGreen + }, + { + label: 'Ablehnen', + className: 'cell-110', + field: 'abgelehnt', + sortable: true, + renderCell: zuladungsliste_functions.renderButtonRed + }, + { + field: 'delete', + sortable: false, + className: 'center cell-50 pointer', + renderHeaderCell: function () { + return zuladungsliste_functions.renderIcon('fa fa-trash-alt') + }, + renderCell: function () { + return zuladungsliste_functions.renderIcon( + 'fa fa-trash-alt tertiary' + ) + } + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_freischaltungen_administrator.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_freischaltungen_administrator.js new file mode 100644 index 0000000..5e780ef --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_freischaltungen_administrator.js @@ -0,0 +1,87 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + load: function () { + return [ + { + className: 'cell-icon pointer no-border-l', + renderHeaderCell: function () { + return zuladungsliste_functions.renderIcon('fa fa-search fourthly') + }, + renderCell: function () { + return zuladungsliste_functions.renderIcon('fa fa-search fourthly') + }, + field: 'search', + rowSpan: 2 + }, + { + label: 'Architekturbüro', + field: 'company', + sortable: true + }, + { + label: 'Ansprechpartner', + field: 'name', + sortable: true + }, + { + label: 'Wettbewerb', + field: 'wettbewerb', + sortable: true + }, + { + label: 'Jahr', + field: 'jahr', + className: 'cell-100', + sortable: true + }, + { + label: 'Bundesland', + field: 'bundesland', + className: 'cell-140', + sortable: true + }, + { + label: 'Preis', + field: 'bezeichnung_punkte', + className: 'left pointer', + renderCell: function (object, data) { + return zuladungsliste_functions.renderToolTip( + data, + object.bezeichnung_kritierien + ) + }, + sortable: true + }, + { + label: 'Punkte', + className: 'cell-100 bold center', + field: 'punkte', + sortable: true + }, + { + label: 'Aktivierung', + className: 'cell-110 center', + field: 'tstamp_zuordnung', + renderCell: zuladungsliste_functions.renderButton, + sortable: true + }, + { + label: 'Freigegeben', + field: 'tstamp_aktivierung', + className: 'cell-110 center', + sortable: true, + renderCell: zuladungsliste_functions.renderButtonGreen + }, + { + label: 'Abgelehnt', + className: 'cell-110 center', + field: 'tstamp_ablehnen', + sortable: true, + renderCell: zuladungsliste_functions.renderButtonRed + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_konto_architekt.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_konto_architekt.js new file mode 100644 index 0000000..2473d45 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_konto_architekt.js @@ -0,0 +1,42 @@ +define(['dijit/form/TextBox', 'dojo/domReady!'], function (TextBox) { + return { + laden: function () { + return [ + { + field: 'beschreibung', + className: 'right no-border-l', + sortable: false, + renderCell: function (object, data) { + var div = document.createElement('div') + div.innerHTML = data + if (object.title) { + div.className = 'text-subheader line-height-50' + } + return div + } + }, + { + field: 'value', + editor: TextBox, + autoSave: true, + sortable: true, + renderCell: function (object, data) { + var div = document.createElement('div') + div.innerHTML = data + if (object.title) { + div.className = 'text-subheader line-height-50' + } + return div + }, + canEdit: function (object) { + return object.editable + }, + editorArgs: { + selectOnClick: true, + class: 'cell-200' + } + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuteilungen_administrator.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuteilungen_administrator.js new file mode 100644 index 0000000..536f226 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuteilungen_administrator.js @@ -0,0 +1,114 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + bestehende: function () { + return [ + { + label: 'Wettbewerb', + field: 'wettbewerb', + className: 'pointer no-border-l', + sortable: true + }, + { + label: 'Datum', + className: 'pointer cell-100 center', + field: 'tstamp', + sortable: true, + renderCell: zuladungsliste_functions.renderDate + }, + { + label: 'Anz.', + className: 'pointer cell-100 center', + field: 'anzahl_architekten', + sortable: true + } + ] + }, + + naechsten_columns: function () { + return [ + { + label: 'Position', + field: 'pos', + className: 'cell-100 center no-border-l', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderPosition + }, + { + label: 'Büro', + field: 'company', + renderExpando: true, + expandOn: 'click', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderCompany + }, + { + label: 'Rang', + field: 'rang', + className: 'cell-100 center', + sortable: true + }, + { + label: 'Status', + field: 'pos', + unhidable: true, + className: 'cell-100 center', + sortable: true, + renderCell: zuladungsliste_functions.renderStatus + }, + { + label: 'Punkte', + field: 'punkte', + className: 'cell-100 center', + sortable: false, + renderCell: zuladungsliste_functions.formatPunkte + } + ] + }, + naechsten_columns2: function () { + return [ + { + label: 'Position', + field: 'pos', + className: 'cell-100 center no-border-l', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderPosition + }, + { + label: 'Büro', + field: 'company', + renderExpando: true, + expandOn: 'click', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderCompany + }, + { + label: 'Rang', + field: 'rang', + className: 'cell-100 center', + sortable: true + }, + { + label: 'Status', + field: 'pos', + className: 'cell-100 center', + unhidable: true, + sortable: true, + renderCell: zuladungsliste_functions.renderStatus + }, + { + label: 'Punkte', + field: 'punkte', + className: 'cell-100 center', + sortable: false, + renderCell: zuladungsliste_functions.formatPunkte + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuweisung_architekt.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuweisung_architekt.js new file mode 100644 index 0000000..f6cd443 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/columns/columns_zuweisung_architekt.js @@ -0,0 +1,75 @@ +define(['zuladungsliste/zuladungsliste_functions', 'dojo/domReady!'], function ( + zuladungsliste_functions +) { + return { + wettbewerbe: function () { + return [ + { + label: 'Id', + field: 'uid', + hidden: true, + className: 'cell-50 pointer no-border-l' + }, + { + label: 'Wettbewerb', + field: 'wettbewerb', + className: 'pointer', + sortable: true + }, + { + label: 'Jahr', + field: 'jahr', + className: 'cell-100 center pointer', + sortable: true + }, + { + label: 'Bundesland', + field: 'bundesland', + className: 'cell-140 pointer', + sortable: true + } + ] + }, + preise: function () { + return [ + { + label: 'Preise', + field: 'bezeichnung', + sortable: true, + className: 'pointer no-border-l' + }, + { + label: 'Punkte', + field: 'punkte', + sortable: true, + className: 'cell-100 center pointer' + }, + { + label: 'Zuordnung', + field: 'tstamp_zuordnung', + className: 'cell-120 pointer center', + sortable: true + }, + { + label: 'Freigegeben', + field: 'tstamp_aktivierung', + className: 'cell-120 pointer center', + sortable: true + }, + { + label: 'An/Aus', + field: 'status', + className: 'cell-100 center pointer', + renderHeaderCell: function () { + return zuladungsliste_functions.renderToolTip( + 'An/Aus ', + '
Erläuterung
Ganze Punkte (1/1) werden bei Wettbewerbsteilnahmen, Erfolgen bzw. Preisen verwendet, die als Einzelmitglied oder ständige Arbeitsgemeinschaft / Gesellschaft (welche auch in der Zuladungsliste registriert ist) erlangt wurde.
Wenn diese Punkte für Leistungen einer nicht ständigen (also nicht in der Zuladungsliste erfassten) Arbeitsgemeinschaft erzielt wurden, sind von den Mitgliedern nur jew. anteilige Punkte (1/2, 1/3, 1/4) anzuführen!
Maßgeblich ist das Juryprotokoll oder ein vergleichbares Dokument.
' + ) + }, + renderCell: zuladungsliste_functions.renderToggleIcon, + sortable: true + } + ] + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_einreichungen.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_einreichungen.js new file mode 100644 index 0000000..9fc6797 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_einreichungen.js @@ -0,0 +1,120 @@ +define([ + 'dojo/_base/array', + 'dijit/MenuItem', + 'dijit/MenuBarItem', + 'dijit/MenuSeparator', + 'dijit/PopupMenuBarItem', + 'dijit/DropDownMenu', + 'dijit/ToolbarSeparator', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + arrayUtil, + MenuItem, + MenuBarItem, + MenuSeparator, + PopupMenuBarItem, + DropDownMenu, + ToolbarSeparator, + zuladungsliste_functions +) { + return { + load_items: function (menu_einreichung) { + menu_einreichung.addChild(new ToolbarSeparator()) + var bundesland_popup_einreichung = new DropDownMenu({ + region: 'top' + }) + arrayUtil.forEach(LOCALSCOPE.bundeslaender, function (item, index) { + bundesland_popup_einreichung.addChild( + new MenuItem({ + label: ' ' + item, + style: 'width: 200px;', + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_ein.bundeslandid = index + filterEinreichungen() + } + }) + ) + bundesland_popup_einreichung.addChild(new MenuSeparator()) + }) + menu_einreichung.addChild( + new PopupMenuBarItem({ + label: 'Bundesland ', + popup: bundesland_popup_einreichung + }) + ) + menu_einreichung.addChild(new ToolbarSeparator()) + var years_popup_einreichung = new DropDownMenu({ + region: 'top' + }) + arrayUtil.forEach(LOCALSCOPE.years, function (item) { + years_popup_einreichung.addChild( + new MenuItem({ + label: ' ' + item, + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_ein.year = item + filterEinreichungen() + } + }) + ) + years_popup_einreichung.addChild(new MenuSeparator()) + }) + menu_einreichung.addChild( + new PopupMenuBarItem({ + id: 'years_popup', + label: 'Jahr ', + popup: years_popup_einreichung + }) + ) + + menu_einreichung.addChild(new ToolbarSeparator()) + menu_einreichung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Anstehend', + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_ein.status = 1 + filterEinreichungen() + } + }) + ) + menu_einreichung.addChild(new ToolbarSeparator()) + menu_einreichung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Angenommen', + onClick: function () { + LOCALSCOPE.filter_ein.status = 2 + filterEinreichungen() + } + }) + ) + menu_einreichung.addChild(new ToolbarSeparator()) + menu_einreichung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Abgelehnt', + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_ein.status = 3 + filterEinreichungen() + } + }) + ) + menu_einreichung.addChild(new ToolbarSeparator()) + menu_einreichung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Drucken', + _setSelected: function () {}, + onClick: function () { + zuladungsliste_functions.print_einreichungen() + } + }) + ) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_freischalten.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_freischalten.js new file mode 100644 index 0000000..fa26276 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_freischalten.js @@ -0,0 +1,128 @@ +define([ + 'dojo/_base/array', + 'dijit/MenuItem', + 'dijit/MenuBarItem', + 'dijit/MenuSeparator', + 'dijit/PopupMenuBarItem', + 'dijit/DropDownMenu', + 'dijit/ToolbarSeparator', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function ( + arrayUtil, + MenuItem, + MenuBarItem, + MenuSeparator, + PopupMenuBarItem, + DropDownMenu, + ToolbarSeparator, + zuladungsliste_functions +) { + return { + load_items: function (menu_freischalten) { + menu_freischalten.addChild( + new MenuBarItem({ + label: 'Neu Laden', + onClick: function () { + dijit.byId('searchbox_frei').reset() + LOCALSCOPE.filter_frei = [] + LOCALSCOPE.search = '' + loadPunkteFreischalten() + } + }) + ) + + menu_freischalten.addChild(new ToolbarSeparator()) + + var bundesland_popup_freischalten = new DropDownMenu({ + region: 'top' + }) + arrayUtil.forEach(LOCALSCOPE.bundeslaender, function (item, index) { + bundesland_popup_freischalten.addChild( + new MenuItem({ + label: ' ' + item, + style: 'width: 200px;', + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_frei.bundeslandid = index + filterFreischalten() + } + }) + ) + bundesland_popup_freischalten.addChild(new MenuSeparator()) + }) + menu_freischalten.addChild( + new PopupMenuBarItem({ + label: 'Bundesland ', + popup: bundesland_popup_freischalten + }) + ) + menu_freischalten.addChild(new ToolbarSeparator()) + var years_popup_freischalten = new DropDownMenu({ + region: 'top' + }) + arrayUtil.forEach(LOCALSCOPE.years, function (item) { + years_popup_freischalten.addChild( + new MenuItem({ + label: ' ' + item, + onClick: function () { + LOCALSCOPE.filter_frei.jahr = item + filterFreischalten() + } + }) + ) + years_popup_freischalten.addChild(new MenuSeparator()) + }) + menu_freischalten.addChild( + new PopupMenuBarItem({ + id: 'years_popup_freischalten', + label: 'Jahr ', + popup: years_popup_freischalten + }) + ) + menu_freischalten.addChild(new ToolbarSeparator()) + menu_freischalten.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Anstehend', + onClick: function () { + LOCALSCOPE.filter_frei.status = 1 + filterFreischalten() + } + }) + ) + menu_freischalten.addChild(new ToolbarSeparator()) + menu_freischalten.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Freigegeben', + onClick: function () { + LOCALSCOPE.filter_frei.status = 2 + filterFreischalten() + } + }) + ) + menu_freischalten.addChild(new ToolbarSeparator()) + menu_freischalten.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Abgelehnt', + onClick: function () { + LOCALSCOPE.filter_frei.status = 3 + filterFreischalten() + } + }) + ) + menu_freischalten.addChild(new ToolbarSeparator()) + menu_freischalten.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Drucken', + onClick: function () { + zuladungsliste_functions.print_freischaltungen() + } + }) + ) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuladungsliste_admin.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuladungsliste_admin.js new file mode 100644 index 0000000..05716a2 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuladungsliste_admin.js @@ -0,0 +1,331 @@ +define([ + 'dojo/_base/array', + 'dijit/MenuItem', + 'dijit/MenuBarItem', + 'dijit/MenuSeparator', + 'dijit/PopupMenuBarItem', + 'dijit/PopupMenuItem', + 'dijit/DropDownMenu', + 'dijit/ToolbarSeparator', + 'zuladungsliste/zuladungsliste_xhr', + 'dojo/domReady!' +], function ( + arrayUtil, + MenuItem, + MenuBarItem, + MenuSeparator, + PopupMenuBarItem, + PopupMenuItem, + DropDownMenu, + ToolbarSeparator, + zuladungsliste_xhr +) { + return { + load_items: function (menu_auswertungen) { + var callback = function (response) { + menu_auswertungen.addChild( + new MenuBarItem({ + title: 'Die Liste mit dem Stand von heute wird neu geladen', + label: ' Neu Laden', + onClick: function () { + ladeListe() + } + }) + ) + + if (LOCALSCOPE.userid == 18) { + menu_auswertungen.addChild(new ToolbarSeparator()) + menu_auswertungen.addChild( + new MenuBarItem({ + title: 'Die gesammte Liste wird über alle Jahre neu berechnet', + label: 'Neu Berechnen', + // label: ' Neu Berechnen', + calssName: 'right', + id: 'liste_neu', + onClick: function () { + dijit + .byId('liste_neu') + .set( + 'label', + ' Rechnen..' + ) + var callback = function (response) { + dijit.byId('liste_neu').set('label', 'Neu Berechnen') + if (response == 1) window.location.reload() + } + zuladungsliste_xhr.call_function( + callback, + 'liste_controller', + 'liste_alles_neu' + ) + } + }) + ) + } + + menu_auswertungen.addChild(new ToolbarSeparator()) + var subMenuArchive = new DropDownMenu({ + region: 'top', + style: 'max-width: 200px;' + }) + var pSubMenu = [] + arrayUtil.forEach(response, function (item) { + subMenuArchive.addChild(new MenuSeparator()) + + var year = item.year + pSubMenu[year] = new DropDownMenu({ + style: 'max-width: 200px;', + region: 'top' + }) + arrayUtil.forEach(item.subdata, function (item2, i) { + if (i > 0) pSubMenu[year].addChild(new MenuSeparator()) + pSubMenu[year].addChild( + new MenuItem({ + label: + ' ' + + item2.titel, + onClick: function () { + ladeListe(item2.id, item2.titel) + } + }) + ) + }) + subMenuArchive.addChild( + new PopupMenuItem({ + label: ' JAHR ' + year, + popup: pSubMenu[year] + }) + ) + }) + menu_auswertungen.addChild( + new PopupMenuBarItem({ + title: + 'Die Listen mit dem Stand der vergangenen Jahr seit dem Begin der Zuladungsliste können aufgerufen werden.', + label: 'Archive ', + popup: subMenuArchive + }) + ) + + menu_auswertungen.addChild(new ToolbarSeparator()) + + var subMenuFilter = new DropDownMenu({ + style: 'max-width: 200px;', + region: 'top' + }) + subMenuFilter.addChild( + new MenuItem({ + label: ' Alle', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + hasChildren: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Gesperrte', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + nominiert: 0 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Freie', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + nominiert: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächste(r)', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n1: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächsten Zwei', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n2: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächsten Drei', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n3: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächsten Vier', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n4: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächsten Fünf', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n5: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: ' Nächsten Sechs', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + n6: 1 + }) + ) + } + }) + ) + subMenuFilter.addChild(new MenuSeparator()) + subMenuFilter.addChild( + new MenuItem({ + label: + ' Punkte von Kontoauflösung', + onClick: function () { + grid_auswertung.set( + 'collection', + store_auswertung.filter({ + istempfaenger: '1' + }) + ) + } + }) + ) + menu_auswertungen.addChild( + new PopupMenuBarItem({ + title: + 'Filtert die Zuladungsliste nache den aktuellen Nominierungen.', + label: 'Nominierung ', + popup: subMenuFilter, + disabled: 0, + id: 'nominierung' + }) + ) + + menu_auswertungen.addChild(new ToolbarSeparator()) + + var subMenuDownload = new DropDownMenu({ + style: 'max-width: 200px;', + region: 'top' + }) + subMenuDownload.addChild( + new MenuItem({ + title: 'Aktuelle Zuladungsliste als PDF aufrufen.', + label: ' Aktuelle Liste', + onClick: function () { + zuladungsliste_xhr.call_download( + 'download_controller', + 'download_pdf' + ) + } + }) + ) + var pSubMenuPdf = [] + arrayUtil.forEach(response, function (item, i) { + subMenuDownload.addChild(new MenuSeparator()) + + var year = item.year + pSubMenuPdf[year] = new DropDownMenu({ + style: 'max-width: 200px;', + region: 'top' + }) + arrayUtil.forEach(item.subdata, function (item2, j) { + if (j > 0) pSubMenuPdf[year].addChild(new MenuSeparator()) + pSubMenuPdf[year].addChild( + new MenuItem({ + label: + ' ' + item2.titel, + onClick: function () { + zuladungsliste_xhr.call_download( + 'download_controller', + 'download_pdf', + '&pdf_archive_id=' + item2.id + ) + } + }) + ) + }) + subMenuDownload.addChild( + new PopupMenuItem({ + label: ' JAHR ' + year, + popup: pSubMenuPdf[year] + }) + ) + }) + menu_auswertungen.addChild( + new PopupMenuBarItem({ + label: 'Download ', + popup: subMenuDownload + }) + ) + } + + zuladungsliste_xhr.call_function( + callback, + 'bootstrap_controller', + 'load_archive_menu' + ) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuteilung.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuteilung.js new file mode 100644 index 0000000..90d9371 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuteilung.js @@ -0,0 +1,147 @@ +define([ + 'dijit/MenuBarItem', + 'dijit/ToolbarSeparator', + 'dojo/domReady!' +], function (MenuBarItem, ToolbarSeparator) { + return { + load_items: function (menu_zuteilungen) { + menu_zuteilungen.addChild(new ToolbarSeparator()) + + menu_zuteilungen.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Drucken', + onClick: function () { + zuladungsliste_xhr.call_print( + 'zuteilungen_controller', + 'zuteilung_laden', + '&zuladungid=' + LOCALSCOPE.zuladungid + ) + } + }) + ) + // menu_freischalten.addChild( + // new MenuBarItem( + // { + // label: ' Neu Laden', + // onClick: function () + // { + // dijit.byId("searchboxfrei") + // .reset(); + // LOCALSCOPE.filter = []; + // LOCALSCOPE.search = ""; + // filterEinreichungen(); + // } + // }) + // ); + // + // menu_freischalten.addChild(new ToolbarSeparator()); + // + // var bundesland_popup_freischalten = new DropDownMenu({ + // region: "top" + // }); + // arrayUtil.forEach(LOCALSCOPE.bundeslaender, function (item, index) + // { + // bundesland_popup_freischalten.addChild( + // new MenuItem( + // { + // label: ' ' + item, + // style: "width: 200px;", + // _setSelected: function () {}, + // onClick: function () + // { + // LOCALSCOPE.filter.bundeslandid = index; + // filterStore(); + // } + // }) + // ); + // bundesland_popup_freischalten.addChild(new MenuSeparator()); + // }); + // menu_freischalten.addChild( + // new PopupMenuBarItem( + // { + // label: ' Bundesland ', + // popup: bundesland_popup_freischalten + // }) + // ); + // menu_freischalten.addChild(new ToolbarSeparator()); + // var years_popup_freischalten = new DropDownMenu({ + // region: "top" + // }); + // arrayUtil.forEach(LOCALSCOPE.years, function (item) + // { + // years_popup_freischalten.addChild( + // new MenuItem( + // { + // label: ' ' + item, + // onClick: function () + // { + // LOCALSCOPE.filter.jahr = item; + // filterStore(); + // } + // }) + // ); + // years_popup_freischalten.addChild(new MenuSeparator()); + // }); + // menu_freischalten.addChild( + // new PopupMenuBarItem( + // { + // id: "years_popup_freischalten", + // label: ' Jahr ', + // popup: years_popup_freischalten + // }) + // ); + // menu_freischalten.addChild(new ToolbarSeparator()); + // menu_freischalten.addChild( + // new MenuBarItem( + // { + // showLabel: true, + // label: ' Anstehend', + // onClick: function () + // { + // LOCALSCOPE.filter.status = 1; + // filterStore(); + // } + // }) + // ); + // menu_freischalten.addChild(new ToolbarSeparator()); + // menu_freischalten.addChild( + // new MenuBarItem( + // { + // showLabel: true, + // label: ' Freigegeben', + // onClick: function () + // { + // LOCALSCOPE.filter.status = 2; + // filterStore(); + // } + // }) + // ); + // menu_freischalten.addChild(new ToolbarSeparator()); + // menu_freischalten.addChild( + // new MenuBarItem( + // { + // showLabel: true, + // label: ' Abgelehnt', + // onClick: function () + // { + // LOCALSCOPE.filter.status = 3; + // filterStore(); + // } + // }) + // ); + // menu_freischalten.addChild(new ToolbarSeparator()); + // menu_freischalten.addChild( + // new MenuBarItem( + // { + // showLabel: true, + // label: ' Drucken', + // onClick: function () + // { + // zuladungsliste_functions.function_print("Freischaltungen"); + // } + // }) + // ); + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuweisung.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuweisung.js new file mode 100644 index 0000000..6959e7b --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/menus/menuitems_zuweisung.js @@ -0,0 +1,124 @@ +define([ + 'dojo/_base/array', + 'dijit/MenuItem', + 'dijit/MenuBarItem', + 'dijit/MenuSeparator', + 'dijit/PopupMenuBarItem', + 'dijit/DropDownMenu', + 'dijit/ToolbarSeparator', + 'dojo/domReady!' +], function ( + arrayUtil, + MenuItem, + MenuBarItem, + MenuSeparator, + PopupMenuBarItem, + DropDownMenu, + ToolbarSeparator +) { + return { + load_items: function (menu_preiszuweisung) { + menu_preiszuweisung.addChild(new ToolbarSeparator()) + menu_preiszuweisung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Freie', + onClick: function () { + LOCALSCOPE.filter_zuweisung_status = 3 + filterPunkteZuweisungen() + } + }) + ) + menu_preiszuweisung.addChild(new ToolbarSeparator()) + menu_preiszuweisung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Zugeordnet', + onClick: function () { + LOCALSCOPE.filter_zuweisung_status = 1 + filterPunkteZuweisungen() + } + }) + ) + menu_preiszuweisung.addChild(new ToolbarSeparator()) + menu_preiszuweisung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Freigegeben', + onClick: function () { + LOCALSCOPE.filter_zuweisung_status = 2 + filterPunkteZuweisungen() + } + }) + ) + + menu_preiszuweisung.addChild(new ToolbarSeparator()) + + var bundesland_popup_einreichung = new DropDownMenu({ + region: 'top', + style: 'max-width: 200px;' + }) + arrayUtil.forEach(LOCALSCOPE.bundeslaender, function (item, index) { + bundesland_popup_einreichung.addChild( + new MenuItem({ + label: ' ' + item, + onClick: function () { + LOCALSCOPE.filter_zuweisung_bundeslandid = index + filterPunkteZuweisungen() + } + }) + ) + bundesland_popup_einreichung.addChild(new MenuSeparator()) + }) + menu_preiszuweisung.addChild( + new PopupMenuBarItem({ + label: 'Bundesland ', + popup: bundesland_popup_einreichung + }) + ) + + menu_preiszuweisung.addChild(new ToolbarSeparator()) + + var years_popup_einreichung = new DropDownMenu({ + style: 'max-width: 120px;', + region: 'top' + }) + arrayUtil.forEach(LOCALSCOPE.years, function (item) { + years_popup_einreichung.addChild( + new MenuItem({ + label: ' ' + item, + _setSelected: function () {}, + onClick: function () { + LOCALSCOPE.filter_zuweisung_year = item + filterPunkteZuweisungen() + } + }) + ) + years_popup_einreichung.addChild(new MenuSeparator()) + }) + menu_preiszuweisung.addChild( + new PopupMenuBarItem({ + id: 'years_popup', + label: 'Jahr ', + popup: years_popup_einreichung, + disabled: 0 + }) + ) + + menu_preiszuweisung.addChild(new ToolbarSeparator()) + menu_preiszuweisung.addChild( + new MenuBarItem({ + showLabel: true, + label: 'Reset', + onClick: function () { + dijit.byId('searchbox_zuw').reset() + LOCALSCOPE.filter_zuweisung_status = 0 + LOCALSCOPE.filter_zuweisung_bundeslandid = -1 + LOCALSCOPE.filter_zuweisung_year = 0 + filterPunkteZuweisungen() + } + }) + ) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_functions.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_functions.js new file mode 100644 index 0000000..4d7509b --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_functions.js @@ -0,0 +1,698 @@ +define([ + 'dojo/date/locale', + 'dojo/_base/array', + 'dojo/number', + 'dijit/Tooltip', + 'dijit/ConfirmDialog', + 'dojo/domReady!' +], function (locale, arrayUtil, number, Tooltip, ConfirmDialog) { + return { + reload: function () { + location.reload() + }, + + isInt: function (n) { + return n % 1 === 0 + }, + + isFloat: function (n) { + return n === +n && n !== (n | 0) + }, + + isInteger: function (n) { + return n === +n && n === (n | 0) + }, + + unique: function (arr) { + var obj = {} + for (var i = 0, l = arr.length; i < l; i++) { + if (!(arr[i] in obj)) { + obj[arr[i]] = true + } + } + var ret = [] + for (var p in obj) { + ret.push(p) + } + ret.sort() + return ret + }, + + launchIntoFullscreen: function (element) { + if (element.requestFullscreen) { + element.requestFullscreen() + } else if (element.mozRequestFullScreen) { + element.mozRequestFullScreen() + } else if (element.webkitRequestFullscreen) { + element.webkitRequestFullscreen() + } else if (element.msRequestFullscreen) { + element.msRequestFullscreen() + } + }, + + exitFullscreen: function () { + if (document.exitFullscreen) { + document.exitFullscreen() + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen() + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen() + } + }, + + destroy_it: function (element) { + if (dijit.byId(element) != undefined) { + dijit.byId(element).destroyRecursive() + } + }, + + array_add: function (array, item) { + if (arrayUtil.indexOf(array, item) != -1) { + array.push(item) + } + return array + }, + + array_remove: function (array, xitem) { + var r = [] + arrayUtil.forEach(array, function (item) { + if (item != xitem) { + r.push(item) + } + }) + return r + }, + + // css tag for keyboard indicator + ucfirst: function (string) { + string = string.toLowerCase() + return string.charAt(0).toUpperCase() + string.slice(1) + }, + + /** + * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1 + * @param obj1 + * @param obj2 + * @returns obj3 a new object based on obj1 and obj2 + */ + merge_objects: function (obj1, obj2) { + var obj3 = {} + var attrname + for (attrname in obj1) { + obj3[attrname] = obj1[attrname] + } + for (attrname in obj2) { + obj3[attrname] = obj2[attrname] + } + return obj3 + }, + + showAlertDialog: function (data, alertclass) { + /******************************************************* + * Alert Dialog + *******************************************************/ + // console.log("Alert", data); + if (alertclass == undefined) alertclass = 'blank' + if (dijit.byId('alertDialog') == undefined) { + var alertDialog = new ConfirmDialog({ + title: ' Achtung', + style: 'width: 400px; cursor: text; padding:20px auto;', + id: 'alertDialog', + class: alertclass + }) + alertDialog.cancelButton.set('style', { + display: 'none' + }) + } + dijit.byId('alertDialog').set('content', data) + dijit.byId('alertDialog').show() + }, + + confirm: function (text) { + /******************************************************* + * Confirm Dialog + *******************************************************/ + return new ConfirmDialog({ + title: ' Please Confirm', + content: text, + style: + 'width: 300px; cursor: text; padding:20px auto; text-align:center;' + }) + }, + + toType: function (obj) { + return {}.toString + .call(obj) + .match(/\s([a-zA-Z]+)/)[1] + .toLowerCase() + }, + + safeRefesh: function () { + var page = matches_grid._currentPage + matches_grid.refresh({ + keepScrollPosition: true + }) + matches_grid.gotoPage(page) + }, + + showCopy: function (object, data) { + var div = document.createElement('div') + var id = Math.floor(Math.random() * 1000000) + 1 + div.innerHTML = + '" + + data + + '' + return div + }, + + copyStringToClipoard: function (string) { + var copybox = document.createElement('input') + copybox.setAttribute('value', string) + document.body.appendChild(copybox) + copybox.select() + document.execCommand('copy') + document.body.removeChild(copybox) + }, + + formatDate: function (unixtimestamp) { + if (unixtimestamp == undefined || unixtimestamp == '0') return ' ' + var date = new Date(unixtimestamp * 1000) + return locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + }, + + formatDateTime: function (unixtimestamp) { + if (unixtimestamp == undefined || unixtimestamp == '0') return ' ' + var date = new Date(unixtimestamp * 1000) + return locale.format(date, { + selector: 'date', + datePattern: 'dd.MM.yy HH:mm' + }) + }, + + renderDate: function (object, unixtimestamp) { + if (unixtimestamp == undefined || unixtimestamp == '0') return ' ' + var date = new Date(unixtimestamp * 1000) + var div = document.createElement('div') + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'dd.MM.yyyy' + }) + return div + }, + + renderDateTime: function (object, unixtimestamp) { + if (unixtimestamp == undefined || unixtimestamp == '0') return ' ' + var date = new Date(unixtimestamp * 1000) + var div = document.createElement('div') + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'dd.MM.yy HH:mm' + }) + return div + }, + + renderTextNbsp: function (object, data) { + var div = document.createElement('div') + div.className = 'text-nbsp' + div.innerHTML = data + return div + }, + + renderHTML: function (object, text) { + var div = document.createElement('div') + div.innerHTML = text + return div + }, + + renderDecimal: function (value, places, id) { + var div = document.createElement('div') + if (value == 0) return '' + if (places == undefined) { + places = 1 + } + if (id != undefined) { + div.id = id + } + div.innerHTML = number.format(value, { + places: places, + locale: 'us' + }) + return div + }, + + formatZeprimaryoEmpty: function (str) { + str = str.toString() + + if (str == undefined || str == 0) { + return ' ' + } else if (str.indexOf(',') == 1) { + return replace(',', '.') + } else { + return str + } + }, + + renderToolTip: function (title, tooltip, className) { + var div = document.createElement('div') + div.className = 'pointer center' + if (className != undefined) { + div.className += className + } + div.innerHTML = title + new Tooltip({ + position: ['above', 'below'], + connectId: div, + label: tooltip + }) + return div + }, + + renderToolTipMaxLength: function (object, text) { + if (!text) { + return + } + var div = document.createElement('div') + if (text.length > 15) { + div.className = 'pointer' + div.innerHTML = text.substring(0, 15) + '..' + new Tooltip({ + connectId: div, + label: text + }) + } else { + div.innerHTML = text + } + return div + }, + + plainToolTip: function (txt) { + var div = document.createElement('div') + new Tooltip({ + connectId: div, + label: txt + }) + return div + }, + + plainText: function (txt, classname) { + var div = document.createElement('div') + if (classname != undefined) { + div.className = classname + } + div.innerHTML = txt + return div + }, + + checkSessionExpired: function (response) { + arrayUtil.forEach(response, function (item) { + if (item.logout == 1) + document.location.href = + 'index.php?id=1&submit=Logout&logintype=logout&pid=1&tx_felogin_pi1[noredirect]=0' + }) + }, + + isJson: function (string) { + item = typeof item !== 'string' ? JSON.stringify(item) : item + + try { + item = JSON.parse(item) + } catch (e) { + return false + } + + if (typeof item === 'object' && item !== null) { + return true + } + + return false + }, + + renderIcon: function (iconclass, tooltip) { + var div = document.createElement('span') + div.className = iconclass + if (tooltip) { + new Tooltip({ + connectId: div, + label: tooltip, + position: ['above', 'below'] + }) + } + return div + }, + + renderTextIcon: function (string, iconclass, tooltip) { + var div = document.createElement('div') + div.innerHTML = string + div.innerHTML += ' ' + if (tooltip) { + new Tooltip({ + connectId: div, + label: tooltip, + position: ['above', 'below'] + }) + } + return div + }, + + renderIconText: function (iconclass, string, tooltip) { + var div = document.createElement('div') + div.innerHTML = ' ' + div.innerHTML += string + if (tooltip) { + new Tooltip({ + connectId: div, + label: tooltip, + position: ['above', 'below'] + }) + } + return div + }, + + htmlTooltip: function (object, data) { + var div = document.createElement('div') + div.className += ' pointer' + data = data.replace(/_/g, ' ') + div.innerHTML = data + div.title = data + return div + }, + + formatPunkte: function (object, data) { + var div = document.createElement('div') + if (object.type == 'verschiebung_gegeben') { + div.className = 'gesperrt' + } + if (data == '' || data == 0) return '' + div.innerHTML = number.format(data, { + places: 2 + }) + return div + }, + formatSperre: function (object, data, td, options) { + if (data == undefined || data == '' || data == 0) return false + var div = document.createElement('div') + div.className = 'gesperrt' + var date = new Date(data * 1000) + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + return div + }, + + renderColorStatus: function (object, data, td, options) { + var div = document.createElement('div') + div.innerHTML = data + switch (object.status) { + case 1: + div.className = 'tertiary' + break + case 2: + div.className = 'secondary' + break + case 3: + div.className = 'primary' + break + } + return div + }, + + renderColorStatusTimestamp: function (object, data, td, options) { + var div = document.createElement('div') + var date = new Date(data * 1e3) + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + switch (object.status) { + case 1: + div.className = 'tertiary' + break + case 2: + div.className = 'secondary' + break + case 3: + div.className = 'primary' + break + } + return div + }, + + renderPosition: function (object, value) { + var div = document.createElement('div') + if (object.hasChildren == 0 || value == 0) div.innerHTML = ' ' + else div.innerHTML = value + return div + }, + + renderStatus: function (object, data, td, options) { + var div = document.createElement('div') + if (object.hasChildren == 0) div.innerHTML = ' ' + else if (object.punkte == 0) div.innerHTML = '-' + else if (data == 0) + div.innerHTML = 'Gesperrt' + else div.innerHTML = 'Frei' + return div + }, + + renderCompany: function (object, data, td, options) { + var div = document.createElement('div') + if (object.hasChildren == 1) + div.innerHTML = + '' + + data + + '
Ansprechpartner ' + + object.name + + '
' + else { + div.innerHTML = data + } + return div + }, + renderInfoIcon: function (object, data, td, options) { + var div = document.createElement('div') + if (data == '') return div + if (object.hasChildren == 0 && object.type == 'wettbewerb') { + div.innerHTML = '' + var tp = new Tooltip({ + connectId: [div], + showDelay: 0, + label: data + }) + } + return div + }, + + renderPopupText: function (object, data, td, options) { + var div = document.createElement('div') + if (data == '') return div + div.innerHTML = data.substr(0, 35) + '...' + new Tooltip({ + connectId: [div], + showDelay: 0, + label: data + }) + return div + }, + + renderBeschreibung: function (object, data, td, options) { + var div = document.createElement('div') + if (data == '') return div + div.innerHTML = data.substring(0, 25) + '...' + var tp = new Tooltip({ + connectId: [div], + showDelay: 0, + label: data + }) + return div + }, + + renderToggleIcon: function (object, data, td, obj) { + var div = document.createElement('div') + + if (object.tstamp_aktivierung != '') { + div.innerHTML = '' + } else if (data == 2) { + div.innerHTML = '' + } else if (data == 1) { + div.innerHTML = '' + } else { + div.innerHTML = '' + } + return div + }, + + renderButton: function (object, data, td, options) { + var div = document.createElement('div') + if (data != 0) { + var date = new Date(data * 1e3) + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + } else { + div.innerHTML = + 'OK' + } + return div + }, + + renderButtonRed: function (object, data, td, options) { + var div = document.createElement('div') + if (data != 0) { + var date = new Date(data * 1e3) + div.className = 'tertiary' + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + } else { + div.innerHTML = + 'OK' + } + return div + }, + + renderButtonGreen: function (object, data, td, options) { + var div = document.createElement('div') + if (data != 0) { + var date = new Date(data * 1e3) + div.className = 'secondary' + div.innerHTML = locale.format(date, { + selector: 'date', + datePattern: 'yyyy-MM-dd' + }) + } else { + div.innerHTML = + 'OK' + } + return div + }, + + /******************************************************* + * PRINT EINREISCHNUGEN + *******************************************************/ + print_einreichungen: function () { + var html = + '' + html += '

Einreichungen



' + if (LOCALSCOPE.print_ein != '') { + html += '

Filter:' + LOCALSCOPE.print_ein + '

' + } + html += + '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + + var filtered = LOCALSCOPE.filter_f.track() + arrayUtil.forEach(filtered.data, function (item) { + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + }) + html += '' + html += '
BüroAnsprechpartnerProjektVerfahrensortBundeslandEntscheidung
' + item.company + '' + item.name + '' + item.wettbewerb + '' + item.verfahrensort + '' + item.bundesland + '' + item.entscheidungstermin + '
' + + html += '' + html += '' + + var iframe = document.createElement('iframe') + iframe.style = 'position: absolute; width:0; height:0; border:0;' + document.body.appendChild(iframe) + iframe.contentWindow.document.open() + iframe.contentWindow.document.write(html) + iframe.contentWindow.document.close() + + // iframe document.createElement('iframe'); + // iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html); + // iframe.focus(); + // var node = dom.byId("printable"); + // node.innerHTML = html; + // setTimeout(function () { + // window.print(); + // }, 100); + + // console.log("data", header, LOCALSCOPE.filter_f.track()); + // return; + }, + + renderPositionMenu: function (object, data) { + var div = document.createElement('div') + if (object.type == 'year') { + div.innerHTML = '' + data + '' + } else { + div.innerHTML = '' + data + '' + } + return div + }, + + /******************************************************* + * PRINT FREISCHALTUNGEN + *******************************************************/ + print_freischaltungen: function () { + var html = + '' + html += '

Freischaltungen



' + if (LOCALSCOPE.filter_frei != '') { + html += '

Filter:' + LOCALSCOPE.filter_frei + '

' + } + html += + '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + + var filtered = LOCALSCOPE.filter_f.track() + arrayUtil.forEach(filtered.data, function (item) { + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + html += '' + }) + + html += '' + html += '
BüroAnsprechpartnerWettbewerbJahrBundeslandPreisPunkte
' + item.company + '' + item.name + '' + item.wettbewerb + '' + item.jahr + '' + item.bundesland + '' + item.bezeichnung_punkte + '' + item.punkte + '
' + + html += '' + html += '' + + var iframe = document.createElement('iframe') + iframe.style = 'position: absolute; width:0; height:0; border:0;' + document.body.appendChild(iframe) + iframe.contentWindow.document.open() + iframe.contentWindow.document.write(html) + iframe.contentWindow.document.close() + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js new file mode 100644 index 0000000..b626c26 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_modul_loader.js @@ -0,0 +1,39 @@ +dojoConfig = { + locale: 'de', + has: { + 'dojo-firebug': true, + 'dojo-debug-messages': true + }, + parseOnLoad: true, + waitSeconds: 10, + cacheBust: true, + async: true, + isDebug: true, + packages: [ + { + name: 'dgrid', + location: + '/typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dgrid' + }, + { + name: 'dijit', + location: + '/typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dijit' + }, + { + name: 'dojox', + location: + '/typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dojox' + }, + { + name: 'dstore', + location: + '/typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/node_modules/dojo-dstore' + }, + { + name: 'zuladungsliste', + location: + '/typo3conf/ext/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste' + } + ] +} diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi1.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi1.js new file mode 100644 index 0000000..1c243b4 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi1.js @@ -0,0 +1,92 @@ +require([ + 'dojo/ready', + 'dojo/_base/array', + 'dijit/layout/BorderContainer', + 'dijit/layout/TabContainer', + 'zuladungsliste/zuladungsliste_topmenu', + 'zuladungsliste/zuladungsliste_xhr', + 'zuladungsliste/administrator/auswertung_alle', + 'zuladungsliste/administrator/punkte_freischalten', + 'zuladungsliste/administrator/einreichungen', + 'zuladungsliste/administrator/zuteilungen' +], function ( + ready, + arrayUtil, + BorderContainer, + TabContainer, + zuladungsliste_topmenu, + zuladungsliste_xhr, + auswertung_alle, + punkte_freischalten, + einreichungen, + zuteilungen +) { + ready(function () { + // on(window, "resize", function() { + // document.location.reload(); + // }); + + var maincontainer = new BorderContainer( + { + design: 'headline', + id: 'maincontainer' + }, + 'base' + ) + + var callback = function (response) { + arrayUtil.forEach(response, function (item) { + LOCALSCOPE[item.key] = item.value + }) + + /******************************************************* + * Topmenu + *******************************************************/ + zuladungsliste_topmenu.create(maincontainer, 'administration') + + /******************************************************* + * Tabcontainer + *******************************************************/ + var tab_container = new TabContainer({ + region: 'center', + tabPosition: 'left', + id: 'tab_container' + }) + maincontainer.addChild(tab_container) + + /******************************************************* + * Tab Auswertung Alle + *******************************************************/ + auswertung_alle.init(tab_container) + + /******************************************************* + * Tab Punkte Freischalten + *******************************************************/ + setTimeout(function () { + punkte_freischalten.init(tab_container) + + /******************************************************* + * Tab Einreichungen + *******************************************************/ + einreichungen.init(tab_container) + + /******************************************************* + * Tab Zuteilungen + *******************************************************/ + zuteilungen.init(tab_container) + + /******************************************************* + * Startup App + *******************************************************/ + }, 100) + + maincontainer.startup() + } + + zuladungsliste_xhr.call_function( + callback, + 'bootstrap_controller', + 'administrator' + ) + }) +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi2.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi2.js new file mode 100644 index 0000000..bcad5af --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_pi2.js @@ -0,0 +1,89 @@ +require([ + 'dojo/ready', + 'dojo/_base/array', + 'dijit/layout/BorderContainer', + 'dijit/layout/TabContainer', + 'zuladungsliste/zuladungsliste_topmenu', + 'zuladungsliste/zuladungsliste_xhr', + + 'zuladungsliste/architekt/position', + 'zuladungsliste/architekt/zuweisung', + 'zuladungsliste/architekt/einreichung', + 'zuladungsliste/architekt/konto' +], function ( + ready, + arrayUtil, + BorderContainer, + TabContainer, + zuladungsliste_topmenu, + zuladungsliste_xhr, + position, + zuweisung, + einreichung, + konto +) { + ready(function () { + // on(window, "resize", function() { + // document.location.reload(); + // }); + + var maincontainer = new BorderContainer( + { + design: 'headline', + id: 'maincontainer' + }, + 'base' + ) + + if (LOCALSCOPE.length == 0) { + var callback = function (response) { + arrayUtil.forEach(response, function (item) { + LOCALSCOPE[item.key] = item.value + }) + + /******************************************************* + * Topmenu + *******************************************************/ + zuladungsliste_topmenu.create(maincontainer, 'zuladungsliste') + + /******************************************************* + * Tabcontainer + *******************************************************/ + var tab_container_achitekten = new TabContainer({ + region: 'center', + tabPosition: 'left', + id: 'tab_container_achitekten' + }) + maincontainer.addChild(tab_container_achitekten) + + /******************************************************* + * Tab Position + *******************************************************/ + position.init(tab_container_achitekten) + + /******************************************************* + * Tab Zuweisung + *******************************************************/ + zuweisung.init(tab_container_achitekten) + + /******************************************************* + * Tab Einreichung + *******************************************************/ + einreichung.init(tab_container_achitekten) + + /******************************************************* + * Tab Konto + *******************************************************/ + konto.init(tab_container_achitekten) + + maincontainer.startup() + } + + zuladungsliste_xhr.call_function( + callback, + 'bootstrap_controller', + 'start_liste' + ) + } + }) +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_topmenu.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_topmenu.js new file mode 100644 index 0000000..3a9887c --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_topmenu.js @@ -0,0 +1,92 @@ +define([ + 'dijit/MenuBar', + 'dijit/MenuBarItem', + 'dijit/ToolbarSeparator', + 'dojo/domReady!' +], function (MenuBar, MenuBarItem, ToolbarSeparator) { + return { + create: function (maincontainer, loaction) { + var topmenu = new MenuBar({ + id: 'topmenu', + region: 'top', + splitter: false + }) + maincontainer.addChild(topmenu) + + topmenu.addChild( + new MenuBarItem({ + style: 'margin-right: 20rem;', + label: ' Anleitung', + onClick: function () { + window.open('/fileadmin/Anleitung_Zuladungsliste.pdf', '_blank') + } + }) + ) + + topmenu.addChild( + new MenuBarItem({ + label: ' Home', + onClick: function () { + document.location = window.location.origin + } + }) + ) + + if (LOCALSCOPE.isadmin) { + topmenu.addChild(new ToolbarSeparator()) + + if (loaction == 'administration') { + topmenu.addChild( + new MenuBarItem({ + label: ' Zuladungsliste', + onClick: function () { + document.location = window.location.origin + '/app/liste' + } + }) + ) + } else { + topmenu.addChild( + new MenuBarItem({ + label: ' Administration', + onClick: function () { + document.location = + window.location.origin + '/app/administration' + } + }) + ) + } + + topmenu.addChild(new ToolbarSeparator()) + + topmenu.addChild( + new MenuBarItem({ + label: ' Backend', + onClick: function () { + document.location = window.location.origin + '/typo3' + } + }) + ) + } + + topmenu.addChild(new ToolbarSeparator()) + + topmenu.addChild( + new MenuBarItem({ + label: ' Logout', + onClick: function () { + document.location = window.location.origin + '?logintype=logout' + } + }) + ) + + topmenu.addChild(new ToolbarSeparator()) + + topmenu.addChild( + new MenuBarItem({ + id: 'topmenu_user', + label: ' ' + LOCALSCOPE.fullname + }) + ) + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_xhr.js b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_xhr.js new file mode 100644 index 0000000..b829c02 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/Zuladungsliste/zuladungsliste_xhr.js @@ -0,0 +1,126 @@ +define([ + 'dojo/dom', + 'zuladungsliste/zuladungsliste_functions', + 'dojo/domReady!' +], function (dom, zuladungsliste_functions) { + return { + /******************************************************* + * CALL FUNCTION + *******************************************************/ + + call_function: function ( + callback, + controller, + xaction, + additional_parameters + ) { + var url = '?zlcontroller=' + controller + '&xaction=' + xaction + if (additional_parameters != undefined) { + url = url + additional_parameters + } + var xhrArgs = { + url: url, + handleAs: 'json', + preventCache: true, + error: function (error) { + // console.log('error',error); + // location.reload(); + } + } + deferred = dojo.xhrGet(xhrArgs) + deferred.then(function (response) { + zuladungsliste_functions.checkSessionExpired(response) + if (typeof callback === 'function') { + callback(response) + } + }) + }, + + call_function_text: function ( + callback, + controller, + xaction, + additional_parameters + ) { + var url = '?zlcontroller=' + controller + '&xaction=' + xaction + if (additional_parameters != undefined) { + url = url + additional_parameters + } + xhrArgs = { + url: url, + handleAs: 'text', + preventCache: true + } + deferred = dojo.xhrGet(xhrArgs) + deferred.then(function (response) { + zuladungsliste_functions.checkSessionExpired(response) + + if (typeof callback === 'function') { + callback(response) + } + }) + }, + + /******************************************************* + * POST DOWNLOAD + *******************************************************/ + + post_function: function ( + callback, + controller, + xaction, + value_array, + additional_parameters + ) { + var url = '?zlcontroller=' + controller + '&xaction=' + xaction + if (additional_parameters != undefined) { + url = url + additional_parameters + } + xhrArgs = { + url: url, + handleAs: 'json', + postData: { + data: JSON.stringify(value_array) + }, + preventCache: true, + error: function (error) { + // location.reload(); + } + } + deferred = dojo.xhrPost(xhrArgs) + deferred.then(function (response) { + zuladungsliste_functions.checkSessionExpired(response) + + if (typeof callback === 'function') { + callback(response) + } + }) + }, + + /******************************************************* + * CALL DOWNLOAD + *******************************************************/ + + call_download: function (controller, xaction, additional_parameters) { + var url = '?zlcontroller=' + controller + '&xaction=' + xaction + if (additional_parameters) { + url += additional_parameters + } + + window.open(url, '_blank') + }, + + /******************************************************* + * CALL DOWNLOAD + *******************************************************/ + + call_print: function (controller, xaction, additional_parameters) { + var url = + '../index.php?zlcontroller=' + controller + '&xaction=' + xaction + if (additional_parameters) { + url += additional_parameters + } + dom.byId('printIFrame1').src = url + } + } +}) diff --git a/packages/zuladungsliste/Resources/Public/JavaScript/package.json b/packages/zuladungsliste/Resources/Public/JavaScript/package.json new file mode 100644 index 0000000..c5ec1b1 --- /dev/null +++ b/packages/zuladungsliste/Resources/Public/JavaScript/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "dgrid": "^1.3.3", + "dijit": "^1.17.3", + "dojo-dstore": "^1.2.1", + "dojox": "^1.17.3" + } +} diff --git a/packages/zuladungsliste/composer.json b/packages/zuladungsliste/composer.json new file mode 100644 index 0000000..8ee550d --- /dev/null +++ b/packages/zuladungsliste/composer.json @@ -0,0 +1,38 @@ +{ + "name": "hermanntelser/zuladungsliste", + "type": "typo3-cms-extension", + "description": "Programm zur Verwaltung Zuladungsliste für die Architektenkammer in Österrreich", + "license": ["GPL-2.0-or-later"], + "authors": [{ + "name": "Hermann Telser", + "email": "hermann.telser@gmail.com", + "role": "Developer" + }], + "autoload": { + "psr-4": { + "HermannTelser\\Zuladungsliste\\": "Classes" + } + }, + "require": { + "typo3/cms-core": "^11.5" + }, + "replace": { + "typo3-ter/zuladungsliste": "self.version" + }, + "config": { + "vendor-dir": ".Build/vendor", + "bin-dir": ".Build/bin" + }, + "scripts": { + "post-autoload-dump": [ + "TYPO3\\TestingFramework\\Composer\\ExtensionTestEnvironment::prepare" + ] + }, + "extra": { + "typo3/cms": { + "cms-package-dir": "{$vendor-dir}/typo3/cms", + "web-dir": ".Build/public", + "extension-key": "zuladungsliste" + } + } +} diff --git a/packages/zuladungsliste/ext_emconf.php b/packages/zuladungsliste/ext_emconf.php new file mode 100644 index 0000000..a55ce55 --- /dev/null +++ b/packages/zuladungsliste/ext_emconf.php @@ -0,0 +1,34 @@ + 'Zuladungsliste ZT Kammer', + 'description' => 'Verwaltung der Wettbewerbszuladungsliste für ZT Kammern in Österrreich', + 'category' => 'services', + 'author' => 'Hermann Telser', + 'author_email' => 'hermann.telser@gmail.com', + 'author_company' => 'Hermann Telser', + 'internal' => '', + 'uploadfolder' => '1', + 'state' => 'stable', + 'clearCacheOnLoad' => 0, + 'version' => '10.0.0', + 'createDirs' => '', + 'constraints' => [ + 'depends' => ['typo3' => '10.0.0-11.99.99',] + ], + 'autoload' => [ + 'psr-4' => [ + 'HermannTelser\\Zuladungsliste\\' => 'Classes' + ] + ], +]; diff --git a/packages/zuladungsliste/ext_localconf.php b/packages/zuladungsliste/ext_localconf.php new file mode 100644 index 0000000..5a04760 --- /dev/null +++ b/packages/zuladungsliste/ext_localconf.php @@ -0,0 +1,94 @@ + 'list,detail'], + [\HermannTelser\Zuladungsliste\Controller\ArchitektenController::class => 'detail'] +); + +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\HermannTelser\Zuladungsliste\Scheduler\CronTask::class] = array( + 'extension' => 'zuladungsliste', + 'title' => 'Zuladungsliste erstellen', + 'description' => 'Mit diesem Aufruf kann mit Hilfe eines Cron Jobs eine neue Version der Zuladungsliste erstellt werden.' +); + + +$extbaseObjectContainer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class); +$extbaseObjectContainer->registerImplementation( + \In2code\Femanager\Controller\NewController::class, + \HermannTelser\Zuladungsliste\Controller\NewController::class +); +$extbaseObjectContainer->registerImplementation( + \In2code\Femanager\Controller\EditController::class, + \HermannTelser\Zuladungsliste\Controller\EditController::class +); + + +$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\In2code\Femanager\Domain\Model\User::class] = [ + 'className' => \HermannTelser\Zuladungsliste\Domain\Model\User::class, +]; +\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class) +->registerImplementation( + \In2code\Femanager\Domain\Model\User::class, + \HermannTelser\Zuladungsliste\Domain\Model\User::class +); + +if (TYPO3_MODE === 'BE') { + $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); + + $iconRegistry->registerIcon( + 'web_list', + \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class, + ['source' => 'EXT:zuladungsliste/Resources/Public/Icons/ExtensionBgWhite.png'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kammern-1', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'university'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kammern-2', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'university'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-sperrung', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'lock'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kriterium', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'trophy'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kriterium-1', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'trophy'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kriterium-2', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'trophy'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kriterium-3', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'trophy'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kriterium-4', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'trophy'] + ); + $iconRegistry->registerIcon( + 'zuladungsliste-kontoclosed', + \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class, + ['name' => 'share'] + ); +} diff --git a/packages/zuladungsliste/ext_tables.php b/packages/zuladungsliste/ext_tables.php new file mode 100644 index 0000000..c16e240 --- /dev/null +++ b/packages/zuladungsliste/ext_tables.php @@ -0,0 +1,60 @@ + 'EXT:zuladungsliste/Resources/Public/Css/Backend/', +); + +/** + * Add new fields to fe_users table + */ +$GLOBALS['TCA']['fe_users']['ctrl']['type'] = 'tx_extbase_type'; +$tmpFeUsersColumns = [ + 'kammermitgliedsnummer' => [ + 'exclude' => 0, + 'label' => 'Kammermitgliedsnummer', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'frauenfoerderpunkt' => array( + 'exclude' => 0, + 'label' => 'Frauenförderpunkt', + 'config' => array( + 'type' => 'check', + 'default' => 0 + ) + ), + 'vereidigung' => array( + 'exclude' => 0, + 'label' => 'Vereidigung', + 'config' => [ + 'renderType' => 'inputDateTime', + 'dbType' => 'date', + 'type' => 'input', + 'size' => 7, + 'format' => 'date', + 'eval' => 'date', + 'checkbox' => 1, + 'disableAgeDisplay' => 1, + 'default' => '0000-00-00' + ], + ), +]; + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tmpFeUsersColumns, true); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'kammermitgliedsnummer,frauenfoerderpunkt,vereidigung'); + +/** + * Add page TSConfig for the two new fields + */ +$tsConfig = 'tx_femanager.flexForm.new.addFieldOptions.kammermitgliedsnummer = Kammermitgliedsnummer' . PHP_EOL; +$tsConfig .= 'tx_femanager.flexForm.new.addFieldOptions.frauenfoerderpunkt = Frauenförderpunkt' . PHP_EOL; +$tsConfig .= 'tx_femanager.flexForm.new.addFieldOptions.vereidigung = Vereidigung' . PHP_EOL; +$tsConfig .= 'tx_femanager.flexForm.edit < tx_femanager.flexForm.new'; +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig($tsConfig); diff --git a/packages/zuladungsliste/ext_tables.sql b/packages/zuladungsliste/ext_tables.sql new file mode 100644 index 0000000..fa01608 --- /dev/null +++ b/packages/zuladungsliste/ext_tables.sql @@ -0,0 +1,333 @@ +CREATE TABLE fe_users ( + kammermitgliedsnummer varchar(20) DEFAULT '0', + inliste int(11) DEFAULT '0' NOT NULL, + vereidigung date DEFAULT NULL, + frauenfoerderpunkt tinyint(1) DEFAULT '0' NOT NULL, + solidaritaetserklaerung int(11) DEFAULT '0', + extrasperrung int(11) DEFAULT '0', + kontoaufloesung int(11) DEFAULT '0', + kontoaufloesung_begruendung varchar(255) DEFAULT '' NOT NULL, + kontoaufloesung_active date DEFAULT NULL, + wettbewerbe int(11) DEFAULT '0', + kammernid int(11) DEFAULT '0', + punkteverschiebung varchar(255) NOT NULL DEFAULT '', +); + +CREATE TABLE tx_zuladungsliste_archive_admin ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + tstamp int(11) NOT NULL DEFAULT '0', + crdate int(11) NOT NULL DEFAULT '0', + hidden tinyint(4) NOT NULL DEFAULT '0', + liste longtext, + PRIMARY KEY (uid) +) ENGINE=InnoDB DEFAULT; + + +CREATE TABLE tx_zuladungsliste_archive_user ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + user_id int(11) DEFAULT NULL, + archive_admin_uid int(11) unsigned NOT NULL DEFAULT '0', + tstamp int(11) unsigned NOT NULL DEFAULT '0', + crdate int(11) unsigned NOT NULL DEFAULT '0', + hidden tinyint(4) unsigned NOT NULL DEFAULT '0', + company varchar(120) NOT NULL DEFAULT '', + name varchar(120) NOT NULL DEFAULT '', + punkte varchar(20) NOT NULL DEFAULT '', + nominiert int(11) unsigned NOT NULL DEFAULT '0', + rang int(11) unsigned NOT NULL DEFAULT '0', + pos int(11) unsigned NOT NULL DEFAULT '0', + gesperrt_bis varchar(20) NOT NULL DEFAULT '', + auswertung longtext, + PRIMARY KEY (uid) +) ENGINE=InnoDB DEFAULT; + + +CREATE TABLE tx_zuladungsliste_domain_model_extrasperrung ( + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + begruendung varchar(255) NOT NULL DEFAULT '', + sperrzeitbis date DEFAULT NULL, + extrasperrung_user int(11) unsigned DEFAULT '0' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_domain_model_kammern ( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + bezeichnung varchar(255) DEFAULT '' NOT NULL, + einsichtstag int(11) unsigned DEFAULT '0' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_punkte_kriterien_mm ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + uid_punkte int(11) unsigned NOT NULL DEFAULT '0', + uid_kriterien int(11) unsigned NOT NULL DEFAULT '0', + sorting int(11) unsigned NOT NULL DEFAULT '0', + punkte varchar(10) NOT NULL DEFAULT '0', + + PRIMARY KEY (uid), + KEY parent (pid) +) ENGINE=InnoDB; + +CREATE TABLE tx_zuladungsliste_domain_model_wettbewerbe ( + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + wettbewerb varchar(255) DEFAULT '' NOT NULL, + beschreibung text NOT NULL, + registrierung varchar(255) DEFAULT '' NOT NULL, + verfahrensid int(11) NOT NULL DEFAULT '0', + verfahrensort varchar(255) DEFAULT '' NOT NULL, + bundesland varchar(255) DEFAULT '' NOT NULL, + abgabetermin date DEFAULT NULL, + kammerbeschluss date DEFAULT NULL, + entscheidungstermin date DEFAULT NULL, + sperrung tinyint(1) unsigned DEFAULT '0' NOT NULL, + aufgabenstellung text NOT NULL, + wettbewerb_user int(11) unsigned DEFAULT '0' NOT NULL, + kriteriumid int(11) unsigned NOT NULL DEFAULT '0', + sperre_deaktiviert tinyint(4) NOT NULL DEFAULT '0', + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_domain_model_kriterien ( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + bezeichnung varchar(255) NOT NULL DEFAULT '', + punkteid int(11) unsigned DEFAULT '0', + preisartid int(11) unsigned DEFAULT '0', + sektinstagid int(11) unsigned DEFAULT '0', + kriterien_punkte int(11) unsigned DEFAULT '0', + kriterien_preisart int(11) unsigned DEFAULT '0', + kammernid int(11) unsigned DEFAULT '0', + sperrung int(11) unsigned DEFAULT '0', + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + sorting int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_domain_model_punkte ( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + bezeichnung varchar(255) DEFAULT '' NOT NULL, + kriterienid int(11) NOT NULL DEFAULT '0', + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + sorting int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) + +); + +CREATE TABLE tx_zuladungsliste_domain_model_preisart ( + + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + + preisart varchar(255) DEFAULT '' NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_domain_model_sektionstage ( + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + rwcode varchar(10) DEFAULT '' NOT NULL, + bezeichnung varchar(255) DEFAULT '' NOT NULL, + stichtag date DEFAULT NULL, + sperrzeit int(11) DEFAULT '0' NOT NULL, + sperrzeitstart date DEFAULT NULL, + punktezeit int(11) DEFAULT '0' NOT NULL, + punktezeitstart date DEFAULT NULL, + neueinsteiger int(11) DEFAULT '0' NOT NULL, + neueinsteigerstart date DEFAULT NULL, + frauenfoerderung int(11) DEFAULT '0' NOT NULL, + frauenfoerderungstart date DEFAULT NULL, + frauenfoerderungsonderstart date DEFAULT NULL, + kammernid int(11) unsigned DEFAULT '0', + sektionstage_notizen text NOT NULL, + + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_wettbewerbe_architekten_mm ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + tstamp_zuordnung int(11) unsigned DEFAULT '0' NOT NULL, + tstamp_aktivierung int(11) unsigned DEFAULT '0' NOT NULL, + tstamp_ablehnen int(11) unsigned DEFAULT '0' NOT NULL, + uid_wettbewerbe int(11) unsigned NOT NULL DEFAULT '0', + uid_user int(11) unsigned NOT NULL DEFAULT '0', + uid_punkte int(11) unsigned NOT NULL DEFAULT '0', + ladung_durch_auslober int(11) unsigned NOT NULL DEFAULT '0', + notizen varchar(155) DEFAULT NULL, + sorting int(11) unsigned NOT NULL DEFAULT '0', + ist_befangen int(11) unsigned DEFAULT '0' NOT NULL, + bemerkungen text NOT NULL, + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_extrasperrung_user_mm ( + + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + uid_extrasperrung int(11) unsigned NOT NULL DEFAULT '0', + uid_user int(11) unsigned NOT NULL DEFAULT '0', + sorting int(11) unsigned NOT NULL DEFAULT '0', + + PRIMARY KEY (uid), + KEY parent (pid) +); + +CREATE TABLE tx_zuladungsliste_konto_aufloesung_mm ( + + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + uid_geber int(11) unsigned NOT NULL DEFAULT '0', + uid_empfaenger int(11) unsigned NOT NULL DEFAULT '0', + prozente double(5,2) DEFAULT '0.00', + + PRIMARY KEY (uid), + KEY parent (pid) +) ENGINE=InnoDB; + +CREATE TABLE tx_zuladungsliste_domain_model_wettbewerbe_einreichungen ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + tstamp int(11) unsigned NOT NULL DEFAULT '0', + crdate int(11) unsigned NOT NULL DEFAULT '0', + deleted tinyint(4) unsigned NOT NULL DEFAULT '0', + hidden tinyint(4) unsigned NOT NULL DEFAULT '0', + cruser_id int(11) unsigned NOT NULL DEFAULT '0', + wettbewerb varchar(255) NOT NULL DEFAULT '', + beschreibung text NOT NULL, + entscheidungstermin date DEFAULT NULL, + verfahrensort varchar(255) NOT NULL DEFAULT '', + bundesland varchar(255) NOT NULL DEFAULT '', + dokument_name varchar(20) DEFAULT NULL, + dokument_orig_name varchar(220) DEFAULT NULL, + dokument_size varchar(10) DEFAULT NULL, + dokument_type varchar(20) DEFAULT NULL, + aufgenommen int(11) unsigned NOT NULL DEFAULT '0', + abgelehnt int(11) unsigned NOT NULL DEFAULT '0', + begruendung varchar(255) NOT NULL DEFAULT '', + + PRIMARY KEY (uid) +) ENGINE=InnoDB; + +CREATE TABLE tx_zuladungsliste_zuteilungen ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + tstamp int(11) unsigned NOT NULL DEFAULT '0', + crdate int(11) unsigned NOT NULL DEFAULT '0', + hidden tinyint(4) unsigned NOT NULL DEFAULT '0', + uid_user int(11) DEFAULT '0', + uid_wettbewerbe int(11) unsigned NOT NULL DEFAULT '0', + anzahl_architekten int(11) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (uid) +) ENGINE=InnoDB; + +CREATE TABLE tx_zuladungsliste_zuteilungen_user ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + tstamp int(11) unsigned NOT NULL DEFAULT '0', + crdate int(11) unsigned NOT NULL DEFAULT '0', + hidden tinyint(4) unsigned NOT NULL DEFAULT '0', + uid_zuteilungen_user int(11) unsigned NOT NULL DEFAULT '0', + user_id int(11) DEFAULT NULL, + position int(11) DEFAULT NULL, + ersatz tinyint(4) unsigned DEFAULT '0' NOT NULL, + PRIMARY KEY (uid) +) ENGINE=InnoDB; + + +CREATE TABLE tx_zuladungsliste_punkte_verschiebung_mm ( + uid int(11) NOT NULL auto_increment, + pid int(11) NOT NULL DEFAULT '0', + uid_geber int(11) unsigned NOT NULL DEFAULT '0', + uid_empfaenger int(11) unsigned NOT NULL DEFAULT '0', + verschiebung_ab date DEFAULT NULL, + verschiebung_stichtag date DEFAULT NULL, + prozente double(5,2) DEFAULT '0.00', + wettbewerbe varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (uid) +) ENGINE=InnoDB; diff --git a/packages/zuladungsliste/fix-table-datetime.sql b/packages/zuladungsliste/fix-table-datetime.sql new file mode 100644 index 0000000..5fe3296 --- /dev/null +++ b/packages/zuladungsliste/fix-table-datetime.sql @@ -0,0 +1,35 @@ +vereidigung date DEFAULT '0000-00-00' NOT NULL, +kontoaufloesung_active date DEFAULT '0000-00-00' NOT NULL, + +sperrzeitbis date DEFAULT '0000-00-00' NOT NULL, + +abgabetermin date DEFAULT '0000-00-00' NOT NULL, +kammerbeschluss date DEFAULT '0000-00-00' NOT NULL, +entscheidungstermin date DEFAULT '0000-00-00' NOT NULL, + +stichtag date DEFAULT '0000-00-00' NOT NULL, +sperrzeitstart date DEFAULT '0000-00-00' NOT NULL, +punktezeitstart date DEFAULT '0000-00-00' NOT NULL, +neueinsteigerstart date DEFAULT '0000-00-00' NOT NULL, +frauenfoerderungstart date DEFAULT '0000-00-00' NOT NULL, +frauenfoerderungsonderstart date DEFAULT '0000-00-00' NOT NULL, +entscheidungstermin date DEFAULT '0000-00-00' NOT NULL, + + +update fe_users set vereidigung = NULL where vereidigung = '0000-00-00'; +update fe_users set kontoaufloesung_active = NULL where kontoaufloesung_active = '0000-00-00'; + +update tx_zuladungsliste_domain_model_extrasperrung set sperrzeitbis = NULL where sperrzeitbis = '0000-00-00'; + +update tx_zuladungsliste_domain_model_wettbewerbe set abgabetermin = NULL where abgabetermin = '0000-00-00'; +update tx_zuladungsliste_domain_model_wettbewerbe set kammerbeschluss = NULL where kammerbeschluss = '0000-00-00'; +update tx_zuladungsliste_domain_model_wettbewerbe set entscheidungstermin = NULL where entscheidungstermin = '0000-00-00'; + +update tx_zuladungsliste_domain_model_sektionstage set stichtag = NULL where stichtag = '0000-00-00'; +update tx_zuladungsliste_domain_model_sektionstage set sperrzeitstart = NULL where sperrzeitstart = '0000-00-00'; +update tx_zuladungsliste_domain_model_sektionstage set punktezeitstart = NULL where punktezeitstart = '0000-00-00'; +update tx_zuladungsliste_domain_model_sektionstage set neueinsteigerstart = NULL where neueinsteigerstart = '0000-00-00'; +update tx_zuladungsliste_domain_model_sektionstage set frauenfoerderungstart = NULL where frauenfoerderungstart = '0000-00-00'; +update tx_zuladungsliste_domain_model_sektionstage set frauenfoerderungsonderstart = NULL where frauenfoerderungsonderstart = '0000-00-00'; + +update tx_zuladungsliste_domain_model_wettbewerbe_einreichungen set entscheidungstermin = NULL where entscheidungstermin = '0000-00-00'; diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..d39e2af --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,395 @@ +##### +# +# Example .htaccess file for TYPO3 CMS - for use with Apache Webserver +# +# This file includes settings for the following configuration options: +# +# - Compression +# - Caching +# - MIME types +# - Cross Origin requests +# - Rewriting and Access +# - Miscellaneous +# - PHP optimisation +# +# If you want to use it, you have to copy it to the root folder of your TYPO3 installation (if its +# not there already) and rename it to '.htaccess'. To make .htaccess files work, you might need to +# adjust the 'AllowOverride' directive in your Apache configuration file. +# +# IMPORTANT: You may need to change this file depending on your TYPO3 installation! +# Consider adding this file's content to your webserver's configuration directly for speed improvement +# +# Lots of the options are taken from https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess +# +#### + + +### Begin: Compression ### + +# Compressing resource files will save bandwidth and so improve loading speed especially for users +# with slower internet connections. TYPO3 can compress the .js and .css files for you. +# *) Uncomment the following lines and +# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend +# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties +# config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files. + +# +# AddType "text/javascript" .gz +# +# +# AddType "text/css" .gz +# +#AddEncoding x-gzip .gz + + + # Force compression for mangled `Accept-Encoding` request headers + + + SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding + RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding + + + + # Compress all output labeled with one of the following media types. + # + # (!) For Apache versions below version 2.3.7 you don't need to + # enable `mod_filter` and can remove the `` + # and `` lines as `AddOutputFilterByType` is still in + # the core directives. + # + # https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype + + + AddOutputFilterByType DEFLATE application/atom+xml \ + application/javascript \ + application/json \ + application/ld+json \ + application/manifest+json \ + application/rdf+xml \ + application/rss+xml \ + application/schema+json \ + application/vnd.geo+json \ + application/geo+json \ + application/vnd.ms-fontobject \ + application/x-font-ttf \ + application/x-javascript \ + application/x-web-app-manifest+json \ + application/xhtml+xml \ + application/xml \ + font/eot \ + font/opentype \ + font/otf \ + font/ttf \ + image/bmp \ + image/svg+xml \ + image/vnd.microsoft.icon \ + image/x-icon \ + text/cache-manifest \ + text/css \ + text/html \ + text/javascript \ + text/plain \ + text/vcard \ + text/vnd.rim.location.xloc \ + text/vtt \ + text/x-component \ + text/x-cross-domain-policy \ + text/xml + + + + AddEncoding gzip svgz + + + +### End: Compression ### + + + +### Begin: Browser caching of resource files ### + +# This affects Frontend and Backend and increases performance. + + + ExpiresActive On + ExpiresDefault "access plus 1 month" + + ExpiresByType text/css "access plus 1 year" + + ExpiresByType application/json "access plus 0 seconds" + ExpiresByType application/ld+json "access plus 0 seconds" + ExpiresByType application/schema+json "access plus 0 seconds" + ExpiresByType application/vnd.geo+json "access plus 0 seconds" + ExpiresByType application/geo+json "access plus 0 seconds" + ExpiresByType application/xml "access plus 0 seconds" + ExpiresByType text/xml "access plus 0 seconds" + + ExpiresByType image/vnd.microsoft.icon "access plus 1 week" + ExpiresByType image/x-icon "access plus 1 week" + + ExpiresByType text/x-component "access plus 1 month" + + ExpiresByType text/html "access plus 0 seconds" + + ExpiresByType application/javascript "access plus 1 year" + ExpiresByType application/x-javascript "access plus 1 year" + ExpiresByType text/javascript "access plus 1 year" + + ExpiresByType application/manifest+json "access plus 1 week" + ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" + ExpiresByType text/cache-manifest "access plus 0 seconds" + + ExpiresByType audio/ogg "access plus 1 month" + ExpiresByType image/apng "access plus 1 month" + ExpiresByType image/avif "access plus 1 month" + ExpiresByType image/avif-sequence "access plus 1 month" + ExpiresByType image/bmp "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/jxl "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType image/webp "access plus 1 month" + ExpiresByType video/mp4 "access plus 1 month" + ExpiresByType video/ogg "access plus 1 month" + ExpiresByType video/webm "access plus 1 month" + + ExpiresByType application/atom+xml "access plus 1 hour" + ExpiresByType application/rdf+xml "access plus 1 hour" + ExpiresByType application/rss+xml "access plus 1 hour" + + ExpiresByType font/collection "access plus 1 month" + ExpiresByType application/vnd.ms-fontobject "access plus 1 month" + ExpiresByType font/eot "access plus 1 month" + ExpiresByType font/opentype "access plus 1 month" + ExpiresByType font/otf "access plus 1 month" + ExpiresByType application/x-font-ttf "access plus 1 month" + ExpiresByType font/ttf "access plus 1 month" + ExpiresByType application/font-woff "access plus 1 month" + ExpiresByType application/x-font-woff "access plus 1 month" + ExpiresByType font/woff "access plus 1 month" + ExpiresByType application/font-woff2 "access plus 1 month" + ExpiresByType font/woff2 "access plus 1 month" + + ExpiresByType text/x-cross-domain-policy "access plus 1 week" + + + +### End: Browser caching of resource files ### + + +### Begin: MIME types ### + +# Proper MIME types for all files + + # Security configuration + RemoveType .html .htm + + AddType text/html .html .htm + + + RemoveType .svg .svgz + + AddType image/svg+xml .svg .svgz + + + # Data interchange + AddType application/atom+xml atom + AddType application/json json map topojson + AddType application/ld+json jsonld + AddType application/rss+xml rss + AddType application/vnd.geo+json geojson + AddType application/xml rdf xml + + # JavaScript + AddType application/javascript js + + # Manifest files + AddType application/manifest+json webmanifest + AddType application/x-web-app-manifest+json webapp + AddType text/cache-manifest appcache + + # Media files + + AddType audio/mp4 f4a f4b m4a + AddType audio/ogg oga ogg opus + AddType image/avif avif + AddType image/avif-sequence avifs + AddType image/bmp bmp + AddType image/jxl jxl + AddType image/webp webp + AddType video/mp4 f4v f4p m4v mp4 + AddType video/ogg ogv + AddType video/webm webm + AddType video/x-flv flv + AddType image/x-icon cur ico + + # Web fonts + AddType font/woff woff + AddType font/woff2 woff2 + AddType application/vnd.ms-fontobject eot + AddType font/ttf ttc ttf + AddType font/otf otf + + # Other + AddType application/octet-stream safariextz + AddType application/x-bb-appworld bbaw + AddType application/x-chrome-extension crx + AddType application/x-opera-extension oex + AddType application/x-xpinstall xpi + AddType text/vcard vcard vcf + AddType text/vnd.rim.location.xloc xloc + AddType text/vtt vtt + AddType text/x-component htc + + + +# UTF-8 encoding +AddDefaultCharset utf-8 + + AddCharset utf-8 .atom .css .js .json .manifest .rdf .rss .vtt .webapp .webmanifest .xml + + +### End: MIME types ### + + + +### Begin: Cross Origin ### + +# Send the CORS header for images when browsers request it. + + + + SetEnvIf Origin ":" IS_CORS + Header set Access-Control-Allow-Origin "*" env=IS_CORS + + + + +# Allow cross-origin access to web fonts. + + + Header set Access-Control-Allow-Origin "*" + + + +### End: Cross Origin ### + + + +### Begin: Rewriting and Access ### + + + + # Enable URL rewriting + RewriteEngine On + + # Store the current location in an environment variable CWD to use + # mod_rewrite in .htaccess files without knowing the RewriteBase + RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$ + RewriteRule ^.*$ - [E=CWD:%2] + + # Rules to set ApplicationContext based on hostname + #RewriteCond %{HTTP_HOST} ^dev\.example\.com$ + #RewriteRule .? - [E=TYPO3_CONTEXT:Development] + #RewriteCond %{HTTP_HOST} ^staging\.example\.com$ + #RewriteRule .? - [E=TYPO3_CONTEXT:Production/Staging] + #RewriteCond %{HTTP_HOST} ^www\.example\.com$ + #RewriteRule .? - [E=TYPO3_CONTEXT:Production] + + # Rule for versioned static files, configured through: + # - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename'] + # - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename'] + # IMPORTANT: This rule has to be the very first RewriteCond in order to work! + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gz)$ %{ENV:CWD}$1.$3 [L] + + # Access block for folders + RewriteRule _(?:recycler|temp)_/ - [F] + RewriteRule fileadmin/templates/.*\.(?:txt|ts)$ - [F] + RewriteRule ^(?:vendor|typo3_src|typo3temp/var) - [F] + RewriteRule (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ - [F] + + # Block access to all hidden files and directories with the exception of + # the visible content from within the `/.well-known/` hidden directory (RFC 5785). + RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC] + RewriteCond %{SCRIPT_FILENAME} -d [OR] + RewriteCond %{SCRIPT_FILENAME} -f + RewriteRule (?:^|/)\. - [F] + + # Stop rewrite processing, if we are in any other known directory + # NOTE: Add your additional local storages here + RewriteRule ^(?:fileadmin/|typo3conf/|typo3temp/|uploads/) - [L] + + # If the file/symlink/directory does not exist but is below /typo3/, redirect to the TYPO3 Backend entry point. + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-l + RewriteRule ^typo3/(.*)$ %{ENV:CWD}typo3/index.php [QSA,L] + + # If the file/symlink/directory does not exist => Redirect to index.php. + # For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'. + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-l + RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L] + + + +# Access block for files +# Apache < 2.3 + + + Order allow,deny + Deny from all + Satisfy All + + +# Apache ≥ 2.3 + + + Require all denied + + + +# Block access to vcs directories + + RedirectMatch 404 /\.(?:git|svn|hg)/ + + +### End: Rewriting and Access ### + + + +### Begin: Miscellaneous ### + +# 404 error prevention for non-existing redirected folders +Options -MultiViews + +# Make sure that directory listings are disabled. + + Options -Indexes + + + + # Force IE to render pages in the highest available mode + Header set X-UA-Compatible "IE=edge" + + Header unset X-UA-Compatible + + + # Reducing MIME type security risks + Header set X-Content-Type-Options "nosniff" + + +# ETag removal + + Header unset ETag + +FileETag None + +### End: Miscellaneous ### + + +# Add your own rules here. diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..49affc5ef32e426ee44e3777a739a83aa89fc76d GIT binary patch literal 1150 zcmZQzU}Ruq5D;KsU}R8W$Y5b$5My9q&|qL-5MW?nP+)+Fg8>VKLI%Ho|6|67|NsBb zfQ&!9`z?Iu`ghGYuYQUC{rivE*ZkUbPvfh%apC7re#(IK|NZ-qp|k2qpQ-G{PrAbA z{~AeN_|{ePq}M?F!Vevx^Z#+-Cl7zfgY=&`_{mX6==@(~b)_lymnHh%-VYN4xuH7y z;d~^#;N6?wA|ULO@@b<31fB!Ke%Y)c3{UHB>!VX#f_wRqK z$o^Qp@J$M`JR$ucd8j`=!Tj;;@lSBL!OX#DKTHj>Khi_*Yy+hWm>e$s$Z6-t_rIL+ z-nR}w!{RT>z`*bTiXSsD^gm}{I1a^+pEEFggkl(IU}RwU{~UnTh literal 0 HcmV?d00001 diff --git a/public/typo3conf/.LocalConfiguration.php.swp b/public/typo3conf/.LocalConfiguration.php.swp new file mode 100644 index 0000000000000000000000000000000000000000..ee23b6976698b06f85bf97e78c8a1c08fe84db51 GIT binary patch literal 16384 zcmeHOTWlj&8UC7!?KpN^wMdASKxtVqq9V3qdvn=R+QhN5VV!K6INk0x#X6ojwx^ky zGdpJ{-Yhp2UO@Dz5-LUTgm|l{1TR!T#Z%S3mP*ivs-l3z6BV=|aVbJ)W}J*Cc9K>F zRb{>x`<(gD|NrMdm;d5%Gyl-q`t(9J4*<6V$>*MFy|R4|-Z*y-7Gt*PJ`J*_Qp4t1 z!|5lB$ z0N+mlPbL5>0aO#f`2_H>1b_tadK~y!9C#uQJQxS6abPA6B;vpuG2quR;1@CAn=v34 z1J1{QkH>&a4EXCf@TYO$^>N^rv0eKu)90xu!4!k)Ayf6klJqA2E27Gx8Fvfsu zW5Dtl@QE?t%~9Z`QQ+}WV0{$Gjska%0&kB1&x`=w5#Zqw;Jy*yQzO8gBf!`Q@b}w* zzue}n-*0=xnm$ZVPftthOKUZ0`o7OiKjO9@{fzq|5coQvIi%}^?o%F};jw_EsGKx4 zs<=wGh{oxW%7Y-)uWeo_?v~fLcgxJ8yEWF{y=tj8wRWqjM!l~A3k<@ABLfXW$WmdP z@>rmMR<`B*4<;oU%vNQ3!qla%Yp1?9ZHACb3Nq|9%clt&Q*iterCR5It)i8Rhw3vgMfb4tG{|I*av7bfr+fL{}^K(5_W7ii`JE9};lkXE+>`@jByKfY7Ns&V1DXpQ zQ@O*s+e9}tS{Fw5n9c@Rx#D$lv!=GFt?J&nk!DM!o;6(pE_bNnXf%AIgvGIaYFVm6 zt8|A`tIQn3whpQ))s(BM-PxuZm3<2a*}EdVZRs9LOLq_4Iujy?sO;aDXQ8PvZ^`@S zEw!jl4AMS*O0AZr8bXk-$}!D}V>6+#yk>BlXqv11akV9S)20SjnQ=D3{tP!so7Q=~ zTv=aQ+wiy^(;!S*y|T4_HqxaP+9HnTpY&5WZ`Hknatc|Q88$WSibi$un&ep&Stjxx zHIy1TV9seHRvBw+w8{*-OyrL0Um`;i^lsjPETtx6Hn%NeHcTS# zk#^X_gpY#8+Nx1wZMM|AG{UFukixT2<>C6pTaHE)$7pj+ORHk&c1lQoU@K(3e6c1Kg&9lI>9XpjFu!YX67!EAqP48_?e-j@??&o27cnJvs`^Vxhh>^KD^#Zvcsw$cyy4Qt8q7-*o`ZLq9|9k>UqFAW7=k)k6p&5fYk}$`~>iF0(dq7d@%ti3E;s5Fze^>KaT_7hyyp`z!&1cl{l~x z2RtV zC_i>kXk(?4-Kke+f}T&}s_pux_rT*KE_QE-dA*0Ru74Bmz9--Hrc$@t&GrZFSrUwv zBzjY(ZnQ$Qie)j&^U0ERYgum5Rk? zb5Ut7%rCSQlAkRovx?HXAk&4pd{e$ql8f^f@&%>XQd-SYYgV3JSS-zv(tLr?QmNIH zoAZT2Uo}Bdxv7zZfPVR-s7X@j{@SKa_?|c8fa?uJ5dxv+kggND1tgj2rbW33Nj!m# z#?Hoer5=zQgmiK&=(6;)43C{xH+2iAUgdOGq>*%Y*Uv$B-TJBD7$DS*hebueW#@(8 zK@6~hz>sc%5B`)*k%D+J<^S8PKTPx8Rz)FD1o$UxZ&j3Axq9nZ&e_9|o%}wZvJT;1 zIs1J%VTxDf>ML>v?zkY%aG?ybfPnAE2HYF&Q&C4ThwUksqGh?&v(qlCs!z7N`w+2I zkrVfNhKYWcmtbA|EqR65q)GTm+lAh=1x153AM4e2`&Ueo#r4|vV@ucoE=jNI<`*=! zuMH`vNVY``E>ipk*KM;Q3Kd8BYQHaj;Fi5dbe&qlDIdA;5C=}J!vtQioY9G@Wtn4Z zjO~d(cVE1)Fdr~$czl03p{C9jR<3RbOZ?#hezo7dTEahmgmhDwPE_9!1}78n&xa#i ze(nr{kNvH`PE>7+n%Y5~Eh&m{upapd1`EhI&Sc}TnsME)S-K_5>Ff2G%dW|%w-5jC QK7>=%V*2~U=Im4Y51ksSqW}N^ literal 0 HcmV?d00001 diff --git a/public/typo3conf/PackageStates.php b/public/typo3conf/PackageStates.php new file mode 100644 index 0000000..27bf280 --- /dev/null +++ b/public/typo3conf/PackageStates.php @@ -0,0 +1,109 @@ + [ + 'core' => [ + 'packagePath' => 'typo3/sysext/core/', + ], + 'scheduler' => [ + 'packagePath' => 'typo3/sysext/scheduler/', + ], + 'extbase' => [ + 'packagePath' => 'typo3/sysext/extbase/', + ], + 'fluid' => [ + 'packagePath' => 'typo3/sysext/fluid/', + ], + 'frontend' => [ + 'packagePath' => 'typo3/sysext/frontend/', + ], + 'fluid_styled_content' => [ + 'packagePath' => 'typo3/sysext/fluid_styled_content/', + ], + 'filelist' => [ + 'packagePath' => 'typo3/sysext/filelist/', + ], + 'impexp' => [ + 'packagePath' => 'typo3/sysext/impexp/', + ], + 'form' => [ + 'packagePath' => 'typo3/sysext/form/', + ], + 'install' => [ + 'packagePath' => 'typo3/sysext/install/', + ], + 'reports' => [ + 'packagePath' => 'typo3/sysext/reports/', + ], + 'redirects' => [ + 'packagePath' => 'typo3/sysext/redirects/', + ], + 'recordlist' => [ + 'packagePath' => 'typo3/sysext/recordlist/', + ], + 'backend' => [ + 'packagePath' => 'typo3/sysext/backend/', + ], + 'setup' => [ + 'packagePath' => 'typo3/sysext/setup/', + ], + 'rte_ckeditor' => [ + 'packagePath' => 'typo3/sysext/rte_ckeditor/', + ], + 'adminpanel' => [ + 'packagePath' => 'typo3/sysext/adminpanel/', + ], + 'belog' => [ + 'packagePath' => 'typo3/sysext/belog/', + ], + 'beuser' => [ + 'packagePath' => 'typo3/sysext/beuser/', + ], + 'extensionmanager' => [ + 'packagePath' => 'typo3/sysext/extensionmanager/', + ], + 'felogin' => [ + 'packagePath' => 'typo3/sysext/felogin/', + ], + 'info' => [ + 'packagePath' => 'typo3/sysext/info/', + ], + 'seo' => [ + 'packagePath' => 'typo3/sysext/seo/', + ], + 'sys_note' => [ + 'packagePath' => 'typo3/sysext/sys_note/', + ], + 't3editor' => [ + 'packagePath' => 'typo3/sysext/t3editor/', + ], + 'tstemplate' => [ + 'packagePath' => 'typo3/sysext/tstemplate/', + ], + 'viewpage' => [ + 'packagePath' => 'typo3/sysext/viewpage/', + ], + 'workspaces' => [ + 'packagePath' => 'typo3/sysext/workspaces/', + ], + 'sr_freecap' => [ + 'packagePath' => 'typo3conf/ext/sr_freecap/', + ], + 'femanager' => [ + 'packagePath' => 'typo3conf/ext/femanager/', + ], + 'bootstrap_package' => [ + 'packagePath' => 'typo3conf/ext/bootstrap_package/', + ], + 'zuladungsliste' => [ + 'packagePath' => 'typo3conf/ext/zuladungsliste/', + ], + ], + 'version' => 5, +]; diff --git a/public/typo3conf/autoload/autoload_classaliasmap.php b/public/typo3conf/autoload/autoload_classaliasmap.php new file mode 100644 index 0000000..13b6277 --- /dev/null +++ b/public/typo3conf/autoload/autoload_classaliasmap.php @@ -0,0 +1,9 @@ + + array ( + ), + 'classNameToAliasMapping' => + array ( + ), +); diff --git a/public/typo3conf/autoload/autoload_classmap.php b/public/typo3conf/autoload/autoload_classmap.php new file mode 100644 index 0000000..141a58d --- /dev/null +++ b/public/typo3conf/autoload/autoload_classmap.php @@ -0,0 +1,167 @@ + $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Composer/ChangelogScript.php', + 'BK2K\\BootstrapPackage\\Composer\\VersionScript' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Composer/VersionScript.php', + 'BK2K\\BootstrapPackage\\DataProcessing\\FlexFormProcessor' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/DataProcessing/FlexFormProcessor.php', + 'BK2K\\BootstrapPackage\\DataProcessing\\MenuProcessor' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/DataProcessing/MenuProcessor.php', + 'BK2K\\BootstrapPackage\\Hooks\\PageRenderer\\PreProcessHook' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/PreProcessHook.php', + 'BK2K\\BootstrapPackage\\Hooks\\TceMain\\ClearCacheHook' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Hooks/TceMain/ClearCacheHook.php', + 'BK2K\\BootstrapPackage\\Service\\BrandingService' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Service/BrandingService.php', + 'BK2K\\BootstrapPackage\\Service\\CompileService' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Service/CompileService.php', + 'BK2K\\BootstrapPackage\\Service\\InstallService' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Service/InstallService.php', + 'BK2K\\BootstrapPackage\\Updates\\AccordionContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/AccordionContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\BulletContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/BulletContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\CarouselContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/CarouselContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\ExternalMediaContentElement' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/ExternalMediaContentElement.php', + 'BK2K\\BootstrapPackage\\Updates\\ListGroupContentElement' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/ListGroupContentElement.php', + 'BK2K\\BootstrapPackage\\Updates\\PanelContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/PanelContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\SectionFrameToFrameClassUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/SectionFrameToFrameClassUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\TabContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/TabContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\TableContentElementUpdate' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/TableContentElementUpdate.php', + 'BK2K\\BootstrapPackage\\Updates\\TexticonContentElement' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Updates/TexticonContentElement.php', + 'BK2K\\BootstrapPackage\\Utility\\ExternalMediaUtility' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Utility/ExternalMediaUtility.php', + 'BK2K\\BootstrapPackage\\Utility\\TextIconUtility' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/Utility/TextIconUtility.php', + 'BK2K\\BootstrapPackage\\ViewHelpers\\DataRelationViewHelper' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/ViewHelpers/DataRelationViewHelper.php', + 'BK2K\\BootstrapPackage\\ViewHelpers\\ExplodeViewHelper' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExplodeViewHelper.php', + 'BK2K\\BootstrapPackage\\ViewHelpers\\ExternalMediaViewHelper' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExternalMediaViewHelper.php', + 'BK2K\\BootstrapPackage\\ViewHelpers\\FalViewHelper' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/ViewHelpers/FalViewHelper.php', + 'BK2K\\BootstrapPackage\\ViewHelpers\\LastImageInfoViewHelper' => $typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes/ViewHelpers/LastImageInfoViewHelper.php', + 'DieMedialen\\DmDeveloperlog\\Controller\\Devlog62Controller' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Controller/Devlog62Controller.php', + 'DieMedialen\\DmDeveloperlog\\Controller\\DevlogController' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Controller/DevlogController.php', + 'DieMedialen\\DmDeveloperlog\\Domain\\Model\\Constraint' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Domain/Model/Constraint.php', + 'DieMedialen\\DmDeveloperlog\\Domain\\Model\\Logentry' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Domain/Model/Logentry.php', + 'DieMedialen\\DmDeveloperlog\\Domain\\Repository\\LogentryRepository' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Domain/Repository/LogentryRepository.php', + 'DieMedialen\\DmDeveloperlog\\Utility\\Developerlog' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/Utility/Developerlog.php', + 'DieMedialen\\DmDeveloperlog\\ViewHelpers\\BitMaskViewHelper' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/ViewHelpers/BitMaskViewHelper.php', + 'DieMedialen\\DmDeveloperlog\\ViewHelpers\\MapToHelperClassViewHelper' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/ViewHelpers/MapToHelperClassViewHelper.php', + 'DieMedialen\\DmDeveloperlog\\ViewHelpers\\UsernameViewHelper' => $typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes/ViewHelpers/UsernameViewHelper.php', + 'HermannTelser\\Zuladungsliste\\Controller\\ArchitektenController' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Controller/ArchitektenController.php', + 'HermannTelser\\Zuladungsliste\\Controller\\ExtrasperrungController' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Controller/ExtrasperrungController.php', + 'HermannTelser\\Zuladungsliste\\Controller\\KriterienController' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Controller/KriterienController.php', + 'HermannTelser\\Zuladungsliste\\Controller\\WettbewerbeController' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Controller/WettbewerbeController.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Architekten' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Architekten.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Extrasperrung' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Extrasperrung.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Kammern' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Kammern.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Kriterien' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Kriterien.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Preisart' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Preisart.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Punkte' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Punkte.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Sektionstage' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Sektionstage.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Model\\Wettbewerbe' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Model/Wettbewerbe.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Repository\\ArchitektenRepository' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Repository/ArchitektenRepository.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Repository\\KriterienRepository' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Repository/KriterienRepository.php', + 'HermannTelser\\Zuladungsliste\\Domain\\Repository\\WettbewerbeRepository' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Domain/Repository/WettbewerbeRepository.php', + 'HermannTelser\\Zuladungsliste\\Utility\\Labels' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Utility/Labels.php', + 'HermannTelser\\Zuladungsliste\\Utility\\ListToPdf' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Utility/ListToPdf.php', + 'HermannTelser\\Zuladungsliste\\Utility\\Select' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Utility/Select.php', + 'MYPDF' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Utility/eIDDispatcher.php', + 'SJBR\\SrFeuserRegister\\Captcha\\Captcha' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Captcha/Captcha.php', + 'SJBR\\SrFeuserRegister\\Captcha\\CaptchaInterface' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Captcha/CaptchaInterface.php', + 'SJBR\\SrFeuserRegister\\Captcha\\CaptchaManager' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Captcha/CaptchaManager.php', + 'SJBR\\SrFeuserRegister\\Captcha\\Freecap' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Captcha/Freecap.php', + 'SJBR\\SrFeuserRegister\\Configuration\\ConfigurationCheck' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Configuration/ConfigurationCheck.php', + 'SJBR\\SrFeuserRegister\\Configuration\\Reports\\StatusProvider' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Configuration/Reports/StatusProvider.php', + 'SJBR\\SrFeuserRegister\\Controller\\AbstractActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/AbstractActionController.php', + 'SJBR\\SrFeuserRegister\\Controller\\CreateActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/CreateActionController.php', + 'SJBR\\SrFeuserRegister\\Controller\\DeleteActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/DeleteActionController.php', + 'SJBR\\SrFeuserRegister\\Controller\\EditActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/EditActionController.php', + 'SJBR\\SrFeuserRegister\\Controller\\InfomailActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/InfomailActionController.php', + 'SJBR\\SrFeuserRegister\\Controller\\RegisterPluginController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/RegisterPluginController.php', + 'SJBR\\SrFeuserRegister\\Controller\\SetfixedActionController' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Controller/SetfixedActionController.php', + 'SJBR\\SrFeuserRegister\\Domain\\Data' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Domain/Data.php', + 'SJBR\\SrFeuserRegister\\Exception' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Exception.php', + 'SJBR\\SrFeuserRegister\\Hooks\\FileUploadHooks' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Hooks/FileUploadHooks.php', + 'SJBR\\SrFeuserRegister\\Hooks\\RegistrationProcessHooks' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Hooks/RegistrationProcessHooks.php', + 'SJBR\\SrFeuserRegister\\Hooks\\UsergroupHooks' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Hooks/UsergroupHooks.php', + 'SJBR\\SrFeuserRegister\\Mail\\Message' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Mail/Message.php', + 'SJBR\\SrFeuserRegister\\Request\\Parameters' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Request/Parameters.php', + 'SJBR\\SrFeuserRegister\\Security\\Authentication' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Security/Authentication.php', + 'SJBR\\SrFeuserRegister\\Security\\SecuredData' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Security/SecuredData.php', + 'SJBR\\SrFeuserRegister\\Security\\SessionData' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Security/SessionData.php', + 'SJBR\\SrFeuserRegister\\Security\\StorageSecurity' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Security/StorageSecurity.php', + 'SJBR\\SrFeuserRegister\\Security\\TransmissionSecurity' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Security/TransmissionSecurity.php', + 'SJBR\\SrFeuserRegister\\Setfixed\\SetfixedUrls' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Setfixed/SetfixedUrls.php', + 'SJBR\\SrFeuserRegister\\Utility\\CssUtility' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Utility/CssUtility.php', + 'SJBR\\SrFeuserRegister\\Utility\\HashUtility' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Utility/HashUtility.php', + 'SJBR\\SrFeuserRegister\\Utility\\HtmlUtility' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Utility/HtmlUtility.php', + 'SJBR\\SrFeuserRegister\\Utility\\LocalizationUtility' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Utility/LocalizationUtility.php', + 'SJBR\\SrFeuserRegister\\Utility\\UrlUtility' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/Utility/UrlUtility.php', + 'SJBR\\SrFeuserRegister\\View\\AbstractView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/AbstractView.php', + 'SJBR\\SrFeuserRegister\\View\\AfterSaveView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/AfterSaveView.php', + 'SJBR\\SrFeuserRegister\\View\\CreateView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/CreateView.php', + 'SJBR\\SrFeuserRegister\\View\\DeleteView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/DeleteView.php', + 'SJBR\\SrFeuserRegister\\View\\EditView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/EditView.php', + 'SJBR\\SrFeuserRegister\\View\\Email' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/Email.php', + 'SJBR\\SrFeuserRegister\\View\\Marker' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/Marker.php', + 'SJBR\\SrFeuserRegister\\View\\PlainView' => $typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes/View/PlainView.php', + 'SJBR\\SrFreecap\\Configuration\\ConfigurationHelper' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Configuration/ConfigurationHelper.php', + 'SJBR\\SrFreecap\\Controller\\AudioPlayerController' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Controller/AudioPlayerController.php', + 'SJBR\\SrFreecap\\Controller\\FontMakerController' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Controller/FontMakerController.php', + 'SJBR\\SrFreecap\\Controller\\ImageGeneratorController' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Controller/ImageGeneratorController.php', + 'SJBR\\SrFreecap\\Domain\\Model\\Font' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Domain/Model/Font.php', + 'SJBR\\SrFreecap\\Domain\\Model\\Word' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Domain/Model/Word.php', + 'SJBR\\SrFreecap\\Domain\\Repository\\FontRepository' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Domain/Repository/FontRepository.php', + 'SJBR\\SrFreecap\\Domain\\Repository\\WordRepository' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Domain/Repository/WordRepository.php', + 'SJBR\\SrFreecap\\Domain\\Session\\SessionStorage' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Domain/Session/SessionStorage.php', + 'SJBR\\SrFreecap\\PiBaseApi' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/PiBaseApi.php', + 'SJBR\\SrFreecap\\Utility\\AudioContentUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/AudioContentUtility.php', + 'SJBR\\SrFreecap\\Utility\\EidUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/EidUtility.php', + 'SJBR\\SrFreecap\\Utility\\EncryptionUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/EncryptionUtility.php', + 'SJBR\\SrFreecap\\Utility\\FontMakingUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/FontMakingUtility.php', + 'SJBR\\SrFreecap\\Utility\\GifBuilderUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/GifBuilderUtility.php', + 'SJBR\\SrFreecap\\Utility\\ImageContentUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/ImageContentUtility.php', + 'SJBR\\SrFreecap\\Utility\\LocalizationUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/LocalizationUtility.php', + 'SJBR\\SrFreecap\\Utility\\Mp3ContentUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/Mp3ContentUtility.php', + 'SJBR\\SrFreecap\\Utility\\RandomContentUtility' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Utility/RandomContentUtility.php', + 'SJBR\\SrFreecap\\Validation\\Validator\\CaptchaValidator' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Validation/Validator/CaptchaValidator.php', + 'SJBR\\SrFreecap\\Validation\\Validator\\TtfFileValidator' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/Validation/Validator/TtfFileValidator.php', + 'SJBR\\SrFreecap\\ViewHelpers\\AudioViewHelper' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/ViewHelpers/AudioViewHelper.php', + 'SJBR\\SrFreecap\\ViewHelpers\\ImageViewHelper' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/ViewHelpers/ImageViewHelper.php', + 'SJBR\\SrFreecap\\ViewHelpers\\TranslateViewHelper' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/ViewHelpers/TranslateViewHelper.php', + 'SJBR\\SrFreecap\\View\\AudioPlayer\\AbstractPlayFormat' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/View/AudioPlayer/AbstractPlayFormat.php', + 'SJBR\\SrFreecap\\View\\AudioPlayer\\PlayMp3' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/View/AudioPlayer/PlayMp3.php', + 'SJBR\\SrFreecap\\View\\AudioPlayer\\PlayWav' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/View/AudioPlayer/PlayWav.php', + 'SJBR\\SrFreecap\\View\\ImageGenerator\\ShowPng' => $typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes/View/ImageGenerator/ShowPng.php', + 'SJBR\\StaticInfoTables\\Cache\\CachedClassLoader' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Cache/CachedClassLoader.php', + 'SJBR\\StaticInfoTables\\Cache\\ClassCacheManager' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Cache/ClassCacheManager.php', + 'SJBR\\StaticInfoTables\\Configuration\\TypoScript\\ConfigurationHelper' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Configuration/TypoScript/ConfigurationHelper.php', + 'SJBR\\StaticInfoTables\\Controller\\ManagerController' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Controller/ManagerController.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\AbstractEntity' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Model/AbstractEntity.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\Country' => $typo3InstallDir . 'typo3conf/ext/static_info_tables_de/Classes/Domain/Model/Country.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\CountryZone' => $typo3InstallDir . 'typo3conf/ext/static_info_tables_de/Classes/Domain/Model/CountryZone.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\Currency' => $typo3InstallDir . 'typo3conf/ext/static_info_tables_de/Classes/Domain/Model/Currency.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\Language' => $typo3InstallDir . 'typo3conf/ext/static_info_tables_de/Classes/Domain/Model/Language.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\LanguagePack' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Model/LanguagePack.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\SystemLanguage' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Model/SystemLanguage.php', + 'SJBR\\StaticInfoTables\\Domain\\Model\\Territory' => $typo3InstallDir . 'typo3conf/ext/static_info_tables_de/Classes/Domain/Model/Territory.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\AbstractEntityRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/AbstractEntityRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\CountryRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/CountryRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\CountryZoneRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/CountryZoneRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\CurrencyRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/CurrencyRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\LanguagePackRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/LanguagePackRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\LanguageRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/LanguageRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\SystemLanguageRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/SystemLanguageRepository.php', + 'SJBR\\StaticInfoTables\\Domain\\Repository\\TerritoryRepository' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Domain/Repository/TerritoryRepository.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Form\\FormDataProvider\\SuggestLabelProcessor' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Form/FormDataProvider/SuggestLabelProcessor.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Form\\FormDataProvider\\TcaLabelProcessor' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Form/FormDataProvider/TcaLabelProcessor.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Form\\FormDataProvider\\TcaSelectItemsProcessor' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Form/FormDataProvider/TcaSelectItemsProcessor.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Form\\Wizard\\SuggestReceiver' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Form/Wizard/SuggestReceiver.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Recordlist\\BuildQueryParameters' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Recordlist/BuildQueryParameters.php', + 'SJBR\\StaticInfoTables\\Hook\\Backend\\Recordlist\\ModifyQuery' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Backend/Recordlist/ModifyQuery.php', + 'SJBR\\StaticInfoTables\\Hook\\Core\\DataHandling\\ProcessDataMap' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Hook/Core/DataHandling/ProcessDataMap.php', + 'SJBR\\StaticInfoTables\\PiBaseApi' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/PiBaseApi.php', + 'SJBR\\StaticInfoTables\\Service\\SqlSchemaMigrationService' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Service/SqlSchemaMigrationService.php', + 'SJBR\\StaticInfoTables\\Slot\\Extensionmanager\\AfterExtensionInstall' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Slot/Extensionmanager/AfterExtensionInstall.php', + 'SJBR\\StaticInfoTables\\Utility\\DatabaseUpdateUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/DatabaseUpdateUtility.php', + 'SJBR\\StaticInfoTables\\Utility\\DatabaseUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/DatabaseUtility.php', + 'SJBR\\StaticInfoTables\\Utility\\HtmlElementUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/HtmlElementUtility.php', + 'SJBR\\StaticInfoTables\\Utility\\LocaleUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/LocaleUtility.php', + 'SJBR\\StaticInfoTables\\Utility\\LocalizationUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/LocalizationUtility.php', + 'SJBR\\StaticInfoTables\\Utility\\ModelUtility' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/Utility/ModelUtility.php', + 'SJBR\\StaticInfoTables\\ViewHelpers\\Form\\SelectViewHelper' => $typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes/ViewHelpers/Form/SelectViewHelper.php', + 'medoo' => $typo3InstallDir . 'typo3conf/ext/zuladungsliste/Classes/Utility/medoo.min.php', +); diff --git a/public/typo3conf/autoload/autoload_psr4.php b/public/typo3conf/autoload/autoload_psr4.php new file mode 100644 index 0000000..af4d245 --- /dev/null +++ b/public/typo3conf/autoload/autoload_psr4.php @@ -0,0 +1,13 @@ + array($typo3InstallDir . 'typo3conf/ext/bootstrap_package/Classes'), + 'DieMedialen\\DmDeveloperlog\\' => array($typo3InstallDir . 'typo3conf/ext/dm_developerlog/Classes'), + 'SJBR\\SrFeuserRegister\\' => array($typo3InstallDir . 'typo3conf/ext/sr_feuser_register/Classes'), + 'SJBR\\SrFreecap\\' => array($typo3InstallDir . 'typo3conf/ext/sr_freecap/Classes'), + 'SJBR\\StaticInfoTables\\' => array($typo3InstallDir . 'typo3conf/ext/static_info_tables/Classes'), +); diff --git a/public/typo3conf/ext/bootstrap_package/.php-cs-fixer.dist.php b/public/typo3conf/ext/bootstrap_package/.php-cs-fixer.dist.php new file mode 100644 index 0000000..959c38f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/.php-cs-fixer.dist.php @@ -0,0 +1,74 @@ +setRiskyAllowed(true) + ->setRules([ + '@PSR2' => true, + 'header_comment' => [ + 'header' => $header + ], + 'general_phpdoc_annotation_remove' => [ + 'annotations' => [ + 'author' + ] + ], + 'no_leading_import_slash' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_unused_imports' => true, + 'concat_space' => ['spacing' => 'one'], + 'no_whitespace_in_blank_line' => true, + 'ordered_imports' => true, + 'single_quote' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'phpdoc_no_package' => true, + 'phpdoc_scalar' => true, + 'no_blank_lines_after_phpdoc' => true, + 'array_syntax' => ['syntax' => 'short'], + 'whitespace_after_comma_in_array' => true, + 'function_typehint_space' => true, + 'single_line_comment_style' => true, + 'no_alias_functions' => true, + 'lowercase_cast' => true, + 'no_leading_namespace_whitespace' => true, + 'native_function_casing' => true, + 'self_accessor' => true, + 'no_short_bool_cast' => true, + 'no_unneeded_control_parentheses' => true + ]) + ->setFinder( + PhpCsFixer\Finder::create() + ->exclude('.build') + ->exclude('Build/node_modules') + ->exclude('Contrib') + ->exclude('var') + ->in(__DIR__) + ); diff --git a/public/typo3conf/ext/bootstrap_package/.phplint.yml b/public/typo3conf/ext/bootstrap_package/.phplint.yml new file mode 100644 index 0000000..cc3c4fe --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/.phplint.yml @@ -0,0 +1,7 @@ +path: ./ +jobs: 10 +cache: .phplint.cache +extensions: + - php +exclude: + - .build diff --git a/public/typo3conf/ext/bootstrap_package/CHANGELOG.md b/public/typo3conf/ext/bootstrap_package/CHANGELOG.md new file mode 100644 index 0000000..65e4fdb --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/CHANGELOG.md @@ -0,0 +1,2477 @@ +# 12.0.10 + +## BUGFIX + +- 55483400 [BUGFIX] Make IconWizard compatible with v11 + +## Contributors + +- Benjamin Kott + +# 12.0.9 + +## TASK + +- a3e541d1 [TASK] Improve icon selector performance in backend (#1392) + +## BUGFIX + +- fdab10e2 [BUGFIX] Correct docs for overrideParserVariables + +## Contributors + +- Benjamin Kott + +# 12.0.8 + +## TASK + +- 2d078989 [TASK] Add tests for update scripts (#1388) + +## BUGFIX + +- d43358be [BUGFIX] Only call fetchAllAssociative if its available + +## Contributors + +- Benjamin Kott + +# 12.0.7 + +## BUGFIX + +- 9ea9f265 [BUGFIX] Correct image scaling in thumbnail menus +- c261a730 [BUGFIX] Correct image scaling in card menus +- 87f0457e [BUGFIX] Correct image scaling in card groups +- 5cdfd76b [BUGFIX] Correct image scaling in accordions +- bf98657a [BUGFIX] Correct image scaling in tabs + +## Contributors + +- Benjamin Kott + +# 12.0.6 + +## TASK + +- 7f16644f [TASK] Update actions to v3 +- 22a3a4f6 [TASK] Replace deprecated set-output command (#1213) +- 59d1c325 [TASK] Streamline upgrade wizards (#1210) +- ec4476b6 [TASK] Use public directory for setup instead of web +- ab2d4d8c [TASK] Adapt ddev config for BP_12 +- d2deb08e [TASK] Fix indention + +## BUGFIX + +- c500ed01 [BUGFIX] Add figure tag to external blocks in rte parsing +- e22a400c [BUGFIX] Prevent PHP Warning: Undefined array key (#1208) +- aee78298 [BUGFIX] PHPStan return types (#1199) +- 8e519af9 [BUGFIX] Properly check return type (#1182) +- 7342e2a6 [BUGFIX] Swap caption and title in photoswipe if no title is given (#1181) +- 061a6d84 [BUGFIX] Replace deprecated PHP 8.1 filter FILTER_SANITIZE_STRING + +## Contributors + +- Andreas Fernandez +- Benjamin Kott +- Florian +- Frank Nägler +- Simon Gilli + +# 12.0.5 + +## BREAKING + +- 2532ccc9 [!!!][TASK] Adapt useragent to fetch woff2 - fixes #840 + +## FEATURE + +- 390d91a4 [FEATURE] Use translatable labels for container names and columns (#1110) + +## TASK + +- b03a87eb [TASK] Update frontend dependencies +- 76ced494 [TASK] Remove obsolete labeler config +- a8e72b97 [TASK] Update bootstrap versions to 4.6.1 and 5.1.3 +- 6ff185a7 [TASK] Allow composer plugins +- 32625b2f [TASK] Drop commit message check and labeler to avoid unnessesary long ci runs +- 2532ccc9 [!!!][TASK] Adapt useragent to fetch woff2 - fixes #840 +- eb8826f5 [TASK] Update scssphp to v1.8.1 (#1114) + +## BUGFIX + +- 70ce1396 [BUGFIX] Respect target and add rel in all page template menus +- 57c4987d [BUGFIX] PHPStan issues (#1133) +- 5fbef46e [BUGFIX] Add missing xlarge crop variant - fixes #1088 + +## Contributors + +- Benjamin Kott +- Gilbertsoft +- Sven Jürgens + +# 12.0.4 + +## TASK + +- fa4aa4a1 [TASK] Use @import syntax for TS includes (#1090) +- 33135fc1 [TASK] Require at least v11.5 LTS on the 11 cycle + +## BUGFIX + +- 940986b4 [BUGFIX] Do not call "libxml_disable_entity_loader" in PHP 8 (#1105) +- 84dff11e [BUGFIX] Respect and adjust responsive image configuration for carousel background_image +- d2a44582 [BUGFIX] Get frontend controller from request if available +- 0d8e0f1b [BUGFIX] Use bootstrap 5 styles in RTE (#1091) +- 28dda974 [BUGFIX] Do not pass absolute path to resource factory + +## Contributors + +- Benjamin Kott +- Gilbertsoft +- Patrick Lenk + +# 12.0.3 + +## TASK + +- 13707e54 [TASK] Migrate form definition (#1095) + +## BUGFIX + +- 41718f62 [BUGFIX] BrandingService conditions (#1094) +- add3aeac [BUGFIX] Remove pollution of global scss variables +- c2ea116b [BUGFIX] Ensure accordion elements collapse as intended with bootstrap 5 +- 05ef945f [BUGFIX] Avoid overrides of global scss variables within card-panel comonent +- 576014e7 [BUGFIX] Fix breadcrumb when "breadcrumbExtendedValue" is used + +## Contributors + +- Benjamin Kott +- Gilbertsoft + +# 12.0.2 + +## TASK + +- 151f4877 [TASK] Update frontend dependencies +- 168b6c90 [TASK] Update scssphp to v1.7.0 +- 95ba43c4 [TASK] Update Bug Report template (#1069) +- 6c56d7ba [TASK] Provide frontend build custom commands (#1068) +- 1c4b80a2 [TASK] Exclude submenues from indexing (#1061) +- 3a6f50cd [TASK] correct Photoswipe opening animation (#941) + +## BUGFIX + +- e56f5ec4 [BUGFIX] Add automatic contrast calculations again for backgrounds - fixes #1057 +- 98faa9ad [BUGFIX] Hide header for container elements - fixes #1079 +- 48ec125d [BUGFIX] Ensure spacing for frames is applied when set to none +- 85867a1b [BUGFIX] Missing theme colors (#1067) +- 1511a449 [BUGFIX] Array access warnings in PHP 8 (#1063) +- 7dafab16 [BUGFIX] CGL in CI workflow (#1064) +- 2122e791 [BUGFIX] Docs rendering (#1062) +- 9bc37078 [BUGFIX] Mark menu items correctly as closed - fixes #1052 +- f9fccd09 [BUGFIX] Include correct popper.js version for bootstrap 5 +- faaa75c7 [BUGFIX] Wrong table classes and add missing ones (#927) +- 63667857 [BUGFIX] Preserve custom layout values (#1055) +- 10b2eced [BUGFIX] Add Bootstrap v5 options to Fullscreen and Small carousel (#1053) +- 07bdd774 [BUGFIX] Remove deprecated softref `images` (#1046) +- 42395176 [BUGFIX] Make embedded layouts more strict and reset backgrounds properly + +## Contributors + +- Benjamin Kott +- Gilbertsoft +- Stephan Sellner +- Sven Burkert +- Sven Jürgens + +# 12.0.1 + +## BUGFIX + +- e763705f [BUGFIX] Let image service resolve svgicon - fixes #1042 +- 1e8864b4 [REVERT][BUGFIX] Update doctrine usages (#1037) (#1044) +- c6addb4b [BUGFIX] Add missing embed css to bootstrap 5 (#1043) +- 7345b209 [BUGFIX] Remove external softref to ext:rtehtmlarea (#1039) + +## Contributors + +- Benjamin Kott +- Gilbertsoft + +# 12.0.0 + +## SECURITY + +- de3a568f [SECURITY] Ensure content element subheader is HTML encoded + +## BREAKING + +- 8c63fd58 [!!!][TASK] Add support for Bootstrap v5 (#1016) +- f5657558 [!!!][TASK] Replace fluid pagination widget (#1012) +- e4c07088 [!!!][TASK] Drop webfontloader (#1011) +- 8323a17b [!!!][FEATURE] Introduce embedded frames and improve rendering +- 34a9680b [!!!][TASK] Replace deprecated lastImageInfo access (#1005) +- 82b21786 [!!!][TASK] Remove TYPO3 9.5 support (#979) +- c0ba1c96 [!!!][TASK] Remove InstallService (#977) +- 35fdfd78 [!!!][TASK] Remove bootstrap3 (#826) + +## FEATURE + +- 0e55bdc0 [FEATURE] Improve icon registry (#1038) +- bd1e172d [FEATURE] Add container support (#1035) +- 35fd14b1 [FEATURE] Add tca defaults for imagecol +- ef50a0cb [FEATURE] Make theme colors selectable for carousel items (#1032) +- 1801887d [FEATURE] Extend RTE config for links and lists (#1031) +- dde661e1 [FEATURE] Extend color palette (#1030) +- 5207c194 [FEATURE] Add new DropIns to page before and after +- 8323a17b [!!!][FEATURE] Introduce embedded frames and improve rendering +- 3a809980 [FEATURE] Set font display to swap by default +- cd08510a [FEATURE] Add gallery content block (#765) +- 561c9298 [FEATURE] Add header position for carousel items + +## TASK + +- 317595f4 [TASK] Raise version constraints to support released v11 +- b65e3044 [TASK] Remove workaround for v11 (#1036) +- 2ff1b43a [TASK] Upgrade bootstrap to 5.1 +- 74ba9040 [TASK] Streamline bp icons +- f6d8de81 [TASK] Reduce default size of gallery-gap +- 86b596d0 [TASK] Use fantasticon to build icon font (#1028) +- 0c6d842f [TASK] Allow REVERT key word in commit messages (#1026) +- 8c63fd58 [!!!][TASK] Add support for Bootstrap v5 (#1016) +- 5188f94f [TASK] Upgrade bundled and minimum required version of scssphp/scssphp to ^1.6.0 +- 04efddec [TASK] Remove all showRemovedLocalizationRecords occurrences (#1019) +- f31359d3 [TASK] Use SiteConfiguration for website title +- 357bc410 [TASK] Remove obsolete hammer.js polyfill for swipe gestures on carousel +- 49af9a0f [TASK] Reduce jquery usage on navbar +- 52c99601 [TASK] Remove jquery from lightbox (#1014) +- 4560df58 [TASK] Drop yarn as dependency manager (#1013) +- 48d98cc5 [TASK] Remove jquery from form custom file input +- f5657558 [!!!][TASK] Replace fluid pagination widget (#1012) +- e4c07088 [!!!][TASK] Drop webfontloader (#1011) +- 203668a9 [TASK] Drop feedit +- ae3aced3 [TASK] Disable deployment and publish workflows for forks (#1010) +- fdeaf209 [TASK] Don´t continue on PHPStan errors +- 34a9680b [!!!][TASK] Replace deprecated lastImageInfo access (#1005) +- 4ccae72b [TASK] PHPStan clean ups (#1004) +- 48ae9da1 [TASK] Allow tests to pass for phpstan and build result for now (#1003) +- 1f753fb2 [TASK] Add phpstan +- 966b8f9d [TASK] Update scssphp/scssphp +- b442b35b [TASK] Update phplint +- 247cddab [TASK] Update php-cs-fixer +- 3df72439 [TASK] Upgrade frontend dependencies +- 36f60ba0 [TASK] Setup mysql server in docker container +- d2bfa0a9 [TASK] Update ddev config +- 31b8a64f [TASK] Upgrade dependencies +- 511db515 [TASK] Upgrade ddev config +- 76cec4ec [TASK] Remove yarn ddev wrapper +- f1c86d8f [TASK] Add extension-key to demo package +- f4f6ad21 [TASK] Enable deployment again (#985) +- c703ad7b [TASK] Replace TYPO3_MODE and TYPO3_REQUESTTYPE (#984) +- 3f8e38a6 [TASK] Migrate signals to PSR-14 events (#983) +- b0e10f5e [TASK] Update branch-alias and package sorting (#982) +- dbabe541 [TASK] Remove TYPO3 9 from CI (#981) +- 82b21786 [!!!][TASK] Remove TYPO3 9.5 support (#979) +- c0ba1c96 [!!!][TASK] Remove InstallService (#977) +- 35fdfd78 [!!!][TASK] Remove bootstrap3 (#826) +- 6d4fd9dd [TASK] Allow installation with testing framework ^6.4 +- db0ad783 [TASK] Update bundled scssphp to 1.4.1 +- db8fc926 [TASK] Let all actions run +- c2da8dcf [TASK] Remove travis and scrutinizer from readme +- a38ad36c [TASK] drop scrutinizer +- f9201716 [TASK] Drop travis ci +- 4c546808 [TASK] Update actions +- ab622fe4 [TASK] Update dependencies +- ed1f28e9 [TASK] Remove tempfs for dev environment +- f77265bb [TASK] Add publishing TER workflow +- 77488690 [TASK] Allow installation on TYPO3 v11 for development purposes +- d5e9632b [TASK] Update DDEV configuration (#962) +- 8a1beef2 [TASK] WSL2 support (#961) +- 209753a8 [TASK] Reintroduce prefer-stable (#960) +- 34fc1bd9 [TASK] Bump labeler to v3 and enable sync-labels (#952) +- f7b08da6 [TASK] Update Pull Request template (#950) +- 26d5ae30 [TASK] Update pull request types for Check PR workflow (#949) +- 240e2dfb [TASK] Replace GeneralUtility::getUrl by RequestFactory (#910) +- c2b2918b [TASK] Migrate to afterExtensionInstall signal (#909) +- d5af9cfd [TASK] Update README.rst (#900) +- 000bc1bc [TASK] Add workspaces as dev dependency +- bf94f47b [TASK] Bump actions/checkout to v2 +- f13a42dd [TASK] Move path repository for testing to Tests (#882) +- 4527808a [TASK] Downgrade to labeler v2 (#881) +- 85b0dcae [TASK] Use v3-preview labeler (#880) +- c3dfcf41 [TASK] Add functional test setup (#879) +- 4651154e [TASK] Add typo3fluid/fluid to composer dependencies (#876) +- ecdb0252 [TASK] Update frontend build dependencies +- 9175ab4a [TASK] Update ddev to 1.14.0 +- becff742 [TASK] Add missing extension key (#874) +- aca79603 [TASK] Bump DDEV to 1.13.1 (#863) +- 47b2a3da [TASK] Add PHP 7.4 to workflow (#855) +- 477c7c4e [TASK] Ignore false positives in extension scanner (#854) +- 051f3f0c [TASK] Update DDEV to 1.13.0 (#853) +- 2deb9684 [TASK] Slim down documentation configuration +- b5a591b2 [TASK] Remove path in ExtensionConfiguration::set call (#836) +- 7f5ffb1f [TASK] Update bootstrap 4.1 constants (#831) +- 8dc2ab29 [TASK] Remove scssphp/scssphp conflict (#832) +- 5e2881c2 [TASK] Add check commit message workflow for pull requests (#828) +- 6f30d904 [TASK] Add Github workflow badge (#824) +- 255407cb [TASK] Update bootstrap.stickyheader.min.js (#823) +- c0a3d485 [TASK] Rename DDEV build command to yarn (#821) +- f41102e0 [TASK] Bump modernizr to version 3.8.0 (#820) +- 689784dc [TASK] Bump grunt-stylelint to version 0.11.1 (#819) +- 41475573 [TASK] Bump grunt-sass to version 3.1.0 (#818) +- 8bce4872 [TASK] Bump bootstrap 4 to version 4.4.1 (#817) +- 861b43bc [TASK] Bump popperjs to version 1.16.0 (#816) +- be48491d [TASK] Add lowlevel module as dev dependency for debugging (#810) +- be12760a [TASK] Configure markdown lint (#811) +- 2473a78e [TASK] Add info module as dev dependency for debugging (#809) +- 00f77921 [TASK] Update labeler to version 2.1.0 (#812) +- 2d49db12 [TASK] Introduce DDEV build script (#808) +- 69843d4f [TASK] Update ddev to 1.12.0 (#783) +- b18d7755 [TASK] Change build order (#793) +- 76061f01 [TASK] Automatic label dependency changes (#796) +- d863cc7d [TASK] Remove deprecated translateToHidden option (#800) +- b9b6ba3c [TASK] Update issue and pull request templates (#795) +- 9d444b13 [TASK] Remove double inclusion of content elements (#792) +- 71c4da3f [TASK] Update build dependencies (#790) +- c6c7ea69 [TASK] Add DDEV custom command description (#782) +- 8d9143e4 [TASK] Fix typo in image variants view helper (#769) +- d8799321 [TASK] Update bundled scssphp/scssphp version to 1.0.4 +- d9a9ac48 [TASK] Add width, height and intrinsicsize to images +- 770fc438 [TASK] Remove update build script +- 88ca8d91 [TASK] Extend CI to 10.x and master (#755) +- 7114b00f [TASK] Make typo3/cms-* requirements less strict +- 6e8ddee7 [TASK] Update ddev to 1.11.1 +- 87222fc7 [TASK] Use github actions for ci (#741) +- 2a294542 [TASK] Disable xdebug by default for dev environment +- 5a82470b [TASK] Update ddev to 1.10.2 +- 2847fd3e [TASK] Streamline database field types +- ac916e7b [TASK] Enable tmpfs for dev environment + +## BUGFIX + +- 0398bebb [BUGFIX] Add space between gallery and navigaiton +- de2c69c2 [BUGFIX] Update doctrine usages (#1037) +- 8c4e4cab [BUGFIX] Correct image calculation +- 34fb30af [BUGFIX] Streamline card paddings +- a6aa8244 [BUGFIX] Ignore phpstan error for dom_import_simplexml (#1033) +- f3959528 [BUGFIX] Update icon css (#1034) +- 0ecbeb8c [BUGFIX] Ensure correct correct scaling of special links +- df42070f [BUGFIX] Remove obsolete margin from gallery +- 4c514238 [BUGFIX] SassError: compound selectors may no longer be extended. #1023 (#1029) +- 18af0848 [REVERT][BUGFIX] SassError: compound selectors may no longer be extended. Consider `@extend .form-control, .is-invalid` instead. https://sass-lang.com/documentation/breaking-changes/extend-compound (#1023) (#1025) +- 834a1576 [BUGFIX] Remove wrong !default from monospace (#1024) +- d8350fef [BUGFIX] SassError: compound selectors may no longer be extended. Consider `@extend .form-control, .is-invalid` instead. https://sass-lang.com/documentation/breaking-changes/extend-compound (#1023) +- fcbcbe5e [BUGFIX] Workaround core issue #94422 in ci (#1020) +- b14e4adf [BUGFIX] Migrate phpunit functional test configuration +- 7174037b [BUGFIX] Correct default image height calculation +- 28446c5a [BUGFIX] Correct frame collapsing for no backgrounds +- 7b522d97 [BUGFIX] Restore grouping in ctype selector +- 238f48e0 [BUGFIX] Only call getIcons if value is not null +- bd81170d [BUGFIX] Correct label for processing css files +- b5107f2a [BUGFIX] Adapt to changes in fluid contexts between v10 and v11 +- abc20109 [BUGFIX] Add missing spacers for frames aagain +- b73c95c1 [BUGFIX] Minor fixes to frame layout +- 78a2bd94 [BUGFIX] Revert unintended revert of TYPO3 constant (#1008) +- 34ef3de5 [BUGFIX] Respect gallery size settings instead of beeing smart +- e4623ce3 [BUGFIX] Correct extension manager dependencies to match composer requirements +- 1a951398 [BUGFIX] Update form definition (#980) +- 1238613b [BUGFIX] Apply latest scssphp changes to import behavior (#948) +- 4543ad16 [BUGFIX] Remove minimum stability dev from composer.json (#936) +- 1c590d82 Revert "[BUGFIX] Use image vh for image types to enable thumbnails for non images like PDF files (#913)" (#914) +- 826f6beb [BUGFIX] Use image vh for image types to enable thumbnails for non images like PDF files (#913) +- d5af3aac [BUGFIX] Introduce table-condensed class again for compatibility (#908) +- 6c1e3da1 [BUGFIX] Missing body class for current language (#906) +- 41879dba [BUGFIX] Fix paths in url() statements (#868) +- 063af998 [BUGFIX] Do not force a specific RTE configuration for content elements +- b5c83cfc [BUGFIX] Change controllerActionName in extbase configuration of gallery (#890) +- 6cded416 [BUGFIX] Adapt server ip address for deployment +- 245c8f89 [BUGFIX] Correct path to temp directory in compile service (#884) +- 1e4d71ed [BUGFIX] Resolve SCSS files correctly when using symlinked paths (#866) +- cb712010 [BUGFIX] Correct test location +- 6b3237af [BUGFIX] Add missing extension dependencies (#871) +- 5b40d7ab [BUGFIX] Add missing filter extension dependency (#870) +- 50f45603 [BUGFIX] Change TCA escaping for database compatibility (#865) +- b9124c3b [BUGFIX] Ensure correct field casing and escaping in TCA for database compatibility (#862) +- b9ac3bb0 [BUGFIX] Update dependencies and rebuild assets +- 453f56e1 [BUGFIX] Add compiled css +- 5da26ce3 [BUGFIX] Restrict fixed menu overflows to mobile resolutions - fixes #837 +- 7d6597ab [BUGFIX] Hide link text for carousel bg image +- 631161b7 [BUGFIX] Ensure elements exist before accessing +- ed586c88 [BUGFIX] Conflict scssphp/scssphp 1.0.4 and 1.0.5 for composer installs (#764) +- 9c26f626 [BUGFIX] Escape special chars in bootstrap.smoothscroll.js (#786) +- da4d4436 [BUGFIX] Use correct category for texticon constants (#781) +- 4c0bff4d [BUGFIX] Resolve plain bootstrap 4 accordion conflicts (#775) +- 4850c2db [BUGFIX] Ensure frame collapsing for node-sass compilations on theme +- b00bda82 [BUGFIX] Add missing compiled and minified assets for for gallery +- 124b4fad [BUGFIX] Include autoloader for parser class check (#776) +- db2c2487 [BUGFIX] Correct pseudo controller for pagination +- b448c076 [BUGFIX] Force node version during build (#771) +- cc8d51fe [BUGFIX] Disable RTE for carousel type html - fixes #770 +- 740d9fe2 [BUGFIX] Correct feature flag evaluation +- 50110eee [BUGFIX] Respect sorting in section menus +- 94a14e8b [BUGFIX] Set default header position for carousel items +- bbe6f235 [BUGFIX] Add check for cached file in GoogleFont Service again +- 2ace8816 [BUGFIX] Switch GoogleFont Cache to woff for broader support - fixes #751 +- b4e04b0c [BUGFIX] Keep viewbox attribute for photoswipe skin +- a4b9e1bb [BUGFIX] Restore missing viewBox attribute for glyphicon icons +- 089ff319 [BUGFIX] Use correct constant for texticon width (#736) +- a4e0276f [BUGFIX] Remove invalid date default value for timeline item +- 42386ff2 [BUGFIX] Ensure timeline item can be translated +- 96aaa454 [BUGFIX] Remove default alignment of carousel header item +- ab6a7d74 [BUGFIX] Correct wrapping for icongroup with less + +## MISC + +- 3c501e44 [DOCS] Fix some typos (#1001) +- bd79929d [DOCS] Fix bullet lists (#1000) +- bc68d846 [DOCS] Fix typo (#998) +- 6d0a6581 [DOCS] Add render-docs helpers (#901) +- 4bca8502 [DOCS] Fix code blocks (#825) +- 279c9761 [DOCS] Add documentation hints to README (#802) +- 016bf027 Fix Header on PageLoad if scrolled (#784) +- 2058d12a [DOCS] Add Image Rendering (#767) +- cde513ac [DOCS] Fix duplicated label (#772) +- fae0ae81 [REVERT] "Update _texticon.scss" +- 8015f856 Update _texticon.scss + +## Contributors + +- Andrea Moroni +- Andreas Fernandez +- Benjamin Kott +- Daniel Haupt +- David Zach +- Franz Holzinger +- Gilbertsoft +- Helmut Hummel +- MartinH0 +- Nikita Hovratov +- Oliver Hader +- Son Tung Ngo +- Tomas Norre Mikkelsen +- jonaseberle + +# 11.0.0 + +## BREAKING + +- 1dc73ff4 [!!!][TASK] Drop seo related meta tag settings +- b47e8480 [!!!][TASK] Section Menu hides single page header and empty entries (#707) +- e4a6434d [!!!][FEATURE] Make timeline more flexible +- 0f449765 [!!!][FEATURE] Enable time settings for timeline +- 207de1cf [!!!][TASK] Drop jquery dependency from cookie consent wrapper +- a18c46d4 [!!!][TASK] Drop data relation viewhelper +- d3fcd7d3 [!!!][TASK] Remove fallback for extension configuration +- 6989ed65 [!!!][TASK] Drop automatic language menu polyfill + +## FEATURE + +- 2a7e5299 [FEATURE] Introduce text carousel item +- 3049b345 [FEATURE] Enable rich text editor for call to action carousel item +- 76d883a4 [FEATURE] Make media renderer options configurable +- 04225dc1 [FEATURE] Make header display date format configurable +- d05ca34f [FEATURE] Add make icon position in icongroup configurable +- 77549d30 [FEATURE] Allow processing of configured file types (#709) +- e4a6434d [!!!][FEATURE] Make timeline more flexible +- 57c71ddc [FEATURE] Make icon spacing configurable in timeline +- 0039dc64 [FEATURE] Add variables to configure timeline headline and date size +- 0f449765 [!!!][FEATURE] Enable time settings for timeline +- b8f7d912 [FEATURE] Add support for highres images (#678) +- 13f70718 [FEATURE] Support class attribute in inline svg viewhelper +- eb1508d1 [FEATURE] Add rss social media icon - fixes #629 +- 9fcf8dec [FEATURE] Add vk social media icon - fixes #651 +- 159dda4d [FEATURE] Allow content slide configuration for all layouts and colPos +- f7672c3c [FEATURE] Make icongroup more usable by allowing to change visual behaviour +- a530ee95 [FEATURE] Enable links in icon group +- 4a128363 [FEATURE] Collapsible in accordion should scroll to the top of its contents (#589) + +## TASK + +- ff143de6 [TASK] Add linter configuration for less files +- 1dc73ff4 [!!!][TASK] Drop seo related meta tag settings +- a7da4e2f [TASK] Remove obsolete useCacheHash option for pagebrowser +- 14b7e8da [TASK] Add stylelint for scss linting (#711) +- ab93487c [TASK] Mark TYPO3 v10.0.0 as compatible +- 7fb656dc [TASK] Add dependency to scssphp/scssphp and update bundled code +- e7a0b2bc [TASK] Configure app-dir +- 4d196f02 [TASK] Set loading attribute to lazy for images +- 6c69d817 [TASK] Optimize cardgroup and menus +- 1a51d24e [TASK] Bump stringstream from 0.0.5 to 0.0.6 (#713) +- d786efcc [TASK] Bump lodash.mergewith from 4.6.1 to 4.6.2 (#730) +- 41dc8da7 [TASK] Add FUNDING.yml +- 48b881ae [TASK] Bumb bootstrap3 to 3.4.1 +- cefce3a3 [TASK] Bumb popperjs to 1.15.0 +- eb3ce179 [TASK] Update slack register link (#722) +- e1ec2e40 [TASK] Bumb cookieconsent to 3.1.1 +- 8b073ba2 [TASK] Bumb jQuery to 3.4.1 +- f84b1a3d [TASK] Update ddev to 1.9.1 +- b47e8480 [!!!][TASK] Section Menu hides single page header and empty entries (#707) +- 08a4487f [TASK] Update ddev to 1.8.0 +- 5c4ed238 [TASK] Bump tar from 2.2.1 to 2.2.2 (#694) +- c063b54e [TASK] Bump fstream from 1.0.11 to 1.0.12 (#700) +- 97d9da82 [TASK] Bump sshpk from 1.13.1 to 1.16.1 (#702) +- 1b81159b [TASK] Update ddev to 1.7.1 +- aa76461f [TASK] Disable deploy stage on forks +- 292a489b [TASK] Extract cookie consent from main setup and constants +- f4f6815f [TASK] Add watch task to package.json +- 207de1cf [!!!][TASK] Drop jquery dependency from cookie consent wrapper +- 5c881c96 [TASK] Use file objects for logo +- 386ca145 [TASK] Cleanup svg viewhelper +- e632786c [TASK] Add cgl command to composer.json +- e46a2ba2 [TASK] Change build order +- 75941808 [TASK] Optimize all SVGs +- d252cb09 [TASK] Update build dependencies +- df9f64f2 [TASK] Remove unused image lazyload css +- 8c0b16d7 [TASK] Expose grunt build tasks to yarn +- 625902bf [TASK] Remove changelog from documentation and refer to release notes on github +- 9fe82881 [TASK] Use bk2k/extension-helper for release support +- 991f2d40 [TASK] Enable xdebug for development setup +- a8f15484 [TASK] Require seo extension +- 0e4f4438 [TASK] Update modernizr to 3.7.0 +- 292ef67a [TASK] Update photoswipe to 4.1.3 +- 7ab26105 [TASK] Require supported core extensions in development mode +- 849b941b [TASK] Update to bootstrap 4.3.1 +- 15957604 [TASK] Update scssphp and use fork to apply patches. +- c1f4cb89 [TASK] Ensure scss and lf files are checked out with lf +- c382b4fe [TASK] Add ddev development configuration +- fbc40d09 [TASK] Strip pagets_ from pagelayout variable and set default if empty +- 95a30c73 [TASK] Remove typolinkEnableLinksAcrossDomains since its obsolete with siteconfiguration +- 14115584 [TASK] Enable css und js compression by default +- c1a5d22f [TASK] Remove obsolete realurl setting +- a18c46d4 [!!!][TASK] Drop data relation viewhelper +- f980445e [TASK] Cleanup extension configuration +- 3267945d [TASK] Include seo extension by default if installed +- fd28722d [TASK] Use symfony expression language for typoscript conditions +- 962a84c6 [TASK] Remove legacy config settings from documentation +- a788f76a [TASK] Remove deprecated TCA options - fixes #543 +- 68d7bb12 [TASK] Use UpgradeWizardInterface in upgrade wizards +- b33103f2 [TASK] Drop usage of PATH_site +- d3fcd7d3 [!!!][TASK] Remove fallback for extension configuration +- 6989ed65 [!!!][TASK] Drop automatic language menu polyfill +- 6c8395e5 [TASK] Adjust to use Core's FlexFormService directly +- 9ea0cb13 [TASK] Adjust to use Fluid's AbstractViewHelper directly +- ba8dbc33 [TASK] Adjust for removed code in TemplateService +- 9f55be45 [TASK] Remove PHP 7.3 from travis until php-cs-fixer is compatible +- 9abfd3b5 [TASK] Update travis configuration +- 6ee8af67 [TASK] Adjust version constraints for TYPO3 v10 +- 94b5e1be [TASK] Add config directory to demo site deployment +- ac6541ab [TASK] Update bootstrap to 4.2.1 - fixes #627 +- e50ea553 [TASK] Add vscode to gitignore +- 3ed67ceb [TASK] Update npm dependencies +- 030e972d [TASK] Update Bootstrap 3.x to 3.4.0 +- 270616e7 [TASK] Update leafo/scssphp to v0.7.7 - fixes #612 +- 17072560 [TASK] Name hooks and always register them, regardless of context +- b3bfa57a [TASK] Add option to disable the web font loader +- a9890dca [TASK] Mention site introduction repository in readme +- 88492bc5 [TASK] Cleanup issue templates +- 6983c7aa [TASK] Update issue template (#599) +- 93731a7c [TASK] Include TYPO3 v9.5 in pull request template +- 579da24b [TASK] Include TYPO3 v9.5 in issue template +- 078950ef [TASK] Add minimum scale to viewport configuration +- f69e9644 [TASK] Use ip instead of url for deployment travis ssh known hosts +- 67ab683d [TASK] Remove install notification for unsupported webservers - fixes #562 +- 7f0ba945 [TASK] Add forgotten textpic and textmedia alignment + +## BUGFIX + +- bcf69eb5 [BUGFIX] Make UpgradeWizards repeatable (#720) +- f348098c [BUGFIX] Add missing aria-label translations for breadcrumb and nav toggle +- 76e8add0 [BUGFIX] Add missing space correction for icongroup in scss +- c37061e1 [BUGFIX] Correct false typoscript default for 'custom-select-indicator' (#724) +- ba633faf [BUGFIX] Avoid spooky random fluid compilation errors +- 867b2927 [BUGFIX] Avoid card-header link color inheritance +- c9d4862f [BUGFIX] Remove travis deploy stage for pull requests (#710) +- 538d3a7d [BUGFIX] Add remove obsolete comma +- 0fffbbd1 [BUGFIX] Add missing default parameter for icongroup +- d0efeeb0 [BUGFIX] Add fontloader css and js only to header if content exists - fixes #703 +- 24da8939 [BUGFIX] Make cookieconsent variables overwriteable - fixes #704 +- 9280a6df [BUGFIX] Add missing description field to timeline images +- eaf0c40f [BUGFIX] Correct icon placement in navbar +- 201969b7 [BUGFIX] Correct variable spelling error and set variables of timeline to default +- 961ebcc6 [BUGFIX] Use full datetime format for timeline items +- e4b9f5ba [BUGFIX] $_EXTKEY is not available anymore in v10 +- 7f2225c9 [BUGFIX] Respect target option for title link in card-group +- 132a5d32 [BUGFIX] Respect target option for links in card-group +- 95d45cf5 [BUGFIX] Restore IE11 compatibility for cookie consent +- 82e8fd19 [BUGFIX] Prevent collapsing of frames - fixes #618 +- 571dbf88 [BUGFIX] Add missing crop variants to carousel image - fixes #665 +- 55a6eb9d [BUGFIX] Disable rendering of footer-section-meta if all containing elements are disabled - fixes #657 +- 716f8074 [BUGFIX] Remove obsolete/invalid replacements in composer.json +- 0f4a2633 [BUGFIX] Correct comment formatting +- 24e38e18 [BUGFIX] Use lf instead of crlf in tab svg +- 25af394a [BUGFIX] htaccess does not allow pages that end with "rc" - fixes #652 +- 26b2fa91 [BUGFIX] Use error object in form field template (#641) +- 15b6626a [BUGFIX] Ensure type safety for ViewHelper calling ImageService (#640) +- 409ddd4d [BUGFIX] Ensure type safety for ViewHelper calling ImageService (#639) +- ab754c69 [BUGFIX] Render data-interval only on carousel if value exists +- bd8169c5 [BUGFIX] Do not process svg file if it does not contain content +- fcd180a0 [BUGFIX] Add table context to typoscriptObjectPath for tt_content rendering +- e04fd7c7 [BUGFIX] ce uploads accepts sorting direction (#630) +- a459c577 [BUGFIX] Correct spelling error in install service +- 39f19fcb [BUGFIX] Remove empty line to match cgl +- de164cea [BUGFIX] Enable basic tests again (#628) +- 10295654 [BUGFIX] Correct dependencies in composer.json +- 2bd79cdd [BUGFIX] Show caption in lightbox when title is empty - fixes #626 +- ed1c0fb0 [BUGFIX] Minimize word breaks in figure captions (#621) +- 9b7c43f0 [BUGFIX] Typo: 'boostrap' should be 'bootstrap' (#625) +- 1cf21edc [BUGFIX] Do not overwrite button stylings in footer sections +- 4e532573 [BUGFIX] Make Less Parser PHP 7.3 compatible (#617) +- e912374b [BUGFIX] Ensure parallax effect works across all desktop browsers - fixes #610 +- 8f8c0c80 [BUGFIX] Keep page accessible on early javascript errors +- 021a9a5f [BUGFIX] Catch exception in TYPO3 8.7 backend on database configuration missmatch +- a2d31480 [BUGFIX] Minor fixes to wording - fixes #606 +- 465f5e1e [BUGFIX] Avoid update problems and always include sql adjustments for sys_language +- bb7f3a8d [BUGFIX] Move parsefunc and dynamic content to content rendering definition +- 6cf28f73 [BUGFIX] Use typolink instead of page viewhelper for wizard fields +- dcbc912b [BUGFIX] Do not use rem in bootstrap 3 context - part 2 +- 4ebffc55 [BUGFIX] Do not use rem in bootstrap 3 context +- f21b759b [BUGFIX] Make standalone element configuration availabe as rendering template +- 91a1b681 [BUGFIX] Remove obsolete unsetting of the list content element for plugins +- 4c9fd781 [BUGFIX] Correct path in comment to bootstrap resource files - fixes #590 +- c0ed7e59 [BUGFIX] Respect title configuration in menu card and menu thumbnail elements - fixes #591 +- 1325f3e1 [BUGFIX] Streamline file property access to also lead sys_file data - #578 +- 535596db [BUGFIX] Add fallback handling for unsupported pointer events in safari - #571 +- 6ed0e904 [BUGFIX] Correct styling of accordion - fixes #579 +- a301039c [BUGFIX] Ensure element browser links working in carousel - fixes #575 +- f0df62c3 [BUGFIX] Adjust comment in ext_tables.php +- 166a63d1 [BUGFIX] Fix typo in comment (#580) +- 4837b063 [BUGFIX] Ensure photoswipe scss vars can be adjusted +- ced0fd77 [BUGFIX] Adapt navigation documentation for TypoScript changes since v9 (#567) +- 72427d02 [BUGFIX] Correct placement of main navigation dropdowns on small viewports - fixes #561, #565 +- 2d6754fc [BUGFIX] Respect overrides for enable-rounded scss variable - #558 +- 6c8a631a [BUGFIX] Correct TCA for carousel small (#557) +- d378b0ab [BUGFIX] use correct default value for texticon icon type (#559) +- 4d23a561 [BUGFIX] Correct link color bubbling for sections in bootstrap 4 +- 8ab40f07 [BUGFIX] Prevent color bubbling for cards +- ee8a02b3 [BUGFIX] Correct primary label in bs4 typoscript constants (#554) + +## MISC + +- 63029706 Update issue templates + +## Contributors + +- Anja +- Benjamin Kott +- Charles Coleman +- Christian Kuhn +- Dennis Metz +- Gilbertsoft +- Jacob Dreesen +- Oliver Hader +- Patrick Lenk +- Ralf Merz +- Seb Red +- Stephan Großberndt +- Susi +- Sven Burkert +- cristianbuja +- dependabot[bot] +- dependabot[bot] +- eckard gehrke +- florian-nolte +- jazzica +- jokumer +- wow-solution + +# 10.0.0 + +## BREAKING + +- 6dee2d12 [!!!][FEATURE] Use bootstrap 4 the default frontend framework +- 3f837892 [!!!][TASK] Use dedicated thumbnail field for card menu thumbnails +- c3ad7208 [!!!][TASK] Drop signal to modify less settings +- 5331a4c9 [!!!][FEATURE] Provide new design for thumbnail menu content element +- ea583f11 [!!!][TASK] Use dedicated thumbnail field for thumbnail menu content element +- c9e9a12f [!!!][FEATURE] Allow multiple icon sources for text and icon - fixes #504 +- c49ff60f [!!!][TASK] Ensure classes and ids on template areas are unique +- 14584e13 [!!!][TASK] Use .form.yaml instead of .yaml +- a8381110 [!!!][TASK] Add google webfont support for bs4 and add option to disable them +- 2a69a265 [!!!][TASK] Move navigation constants to dedicated namespace +- 67a16bfb [!!!][TASK] Enable css und js concatenation by default +- 0d35fdcb [!!!][FEATURE] Improve responsive image rendering (#517) +- 7adb559a [!!!][TASK] Move footer column rendering to page templates +- 0a67f114 [!!!][TASK] Drop clean backendlayout in favor of simple +- 8b36dea0 [!!!][TASK] Move border column rendering to new section above breadcrumb +- 92ad8d7c [!!!][TASK] Migrate frame classes well and jumbotron to background color classes +- 0603d551 [!!!][TASK] Make mainnavigation compatible with bs3 and bs4 +- 6495106d [!!!][TASK] Use theme constants instead of settings +- 367bce19 [!!!][TASK] Drop show footer option + +## FEATURE + +- 6dee2d12 [!!!][FEATURE] Use bootstrap 4 the default frontend framework +- 72e7d85a [FEATURE] Enable responsive images for carousel item text and image - #552 +- 73610170 [FEATURE] Enable responsive images for carousel item image - #552 +- bca28395 [FEATURE] Enable responsive images for carousel backgrounds - #552 +- 01c43298 [FEATURE] Enable responsive images for content element background images - #552 +- 13ce83b6 [FEATURE] Enable responsive images for timeline - #552 +- a477eab3 [FEATURE] Enable responsive images for card menu +- d4a8579f [FEATURE] Make columns and alignment of card menu configurable +- 76306b15 [FEATURE] Enable responsive images for tab items +- e2c66719 [FEATURE] Enable crop variants for tab items +- ec36d86d [FEATURE] Enable columns and image zoom for tab items +- 00bb80da [FEATURE] Allow multiple assets rendered in tab item +- bf3712aa [FEATURE] Add additional media positions to tab content element +- 26d4df87 [FEATURE] Enable crop variants for carousel items +- 269cf956 [FEATURE] Enable responsive images for accordion items #552 +- 0dcfc49d [FEATURE] Enable columns and image zoom for accordion items +- 2f068bfb [FEATURE] Allow multiple assets rendered in accordion item +- 2b516cbd [FEATURE] Enable more image positions for accordion content element +- 5b2a6e52 [FEATURE] Add gutter support for image variants utility +- 5331a4c9 [!!!][FEATURE] Provide new design for thumbnail menu content element +- 66bb5d91 [FEATURE] Add dedicated thumbnail fied to pages +- 7dad8771 [FEATURE] Add card group content element +- b56137c6 [FEATURE] Add trim viewhelper +- c9e9a12f [!!!][FEATURE] Allow multiple icon sources for text and icon - fixes #504 +- 1b00a01e [FEATURE] Add more content positions to existing layouts +- 0cf36666 [FEATURE] Add static file processor +- 2f322aec [FEATURE] Add DropIn locations to page footer +- b43d641f [FEATURE] Make frame inner and outer spacing configurable +- f089fcac [FEATURE] Add secondary colors and introduce outline buttons +- 1eb026fd [FEATURE] Add folder support for textpic content element +- 394cfce7 [FEATURE] Add text indention plugin to ckeditor +- 426fb781 [FEATURE] Add options to disable icon rendering in main and subnavigation +- 1a85bb06 [FEATURE] Add optional nav icon rendering to card menu +- 57b7af70 [FEATURE] Add css columns to ckeditor - fixes #386 #387 +- f5c34ea2 [FEATURE] Add background image effects to content elements and carousel +- 6bd31e52 [FEATURE] Add src support for inline svg viewhelper +- 043e18c1 [FEATURE] Add content element to render csv files +- 42ac9416 [FEATURE] Add navigation icon support in dropdown +- 0d35fdcb [!!!][FEATURE] Improve responsive image rendering (#517) +- 873cfd19 [FEATURE] Add automatic local google font cache (#522) +- f5d2b862 [FEATURE] Add typoscript condition to check typo3 core version +- c00e337b [FEATURE] Add popup close and open events to cookieconsent - fixes (#526) +- 4c0eb29b [FEATURE] Add support for folders in image and media element +- 5333b3bb [FEATURE] Add data processor to filter files by extension +- 5acd6904 [FEATURE] Make lightbox max image dimensions configurable +- cf9df4d1 [FEATURE] Automatic language menus and configuration for TYPO3 8.7 and >= 9.3 (#511) +- 9d72dbde [FEATURE] Add placeholder for google analytics opt-out / opt-in +- 408d9aef [FEATURE] Introduce template blocks +- fcebc2ac [FEATURE] Add cookieconsent +- b4780c2d [FEATURE] Add additional header and subheader classes for carousel items +- 49566185 [FEATURE] Make timeline sorting direction adjustable +- b211afc1 [FEATURE] Add timeline content element +- 6a59f738 [FEATURE] Add drop-in support for main navigation +- c9d9b25f [FEATURE] Add border column to all simple layouts - fixes #235 +- bd4ef154 [FEATURE] Allow navigation icons in breadcrumb +- b26225c9 [FEATURE] Add call to action carousel item +- eb0b5ddc [FEATURE] Add ckeditor plugin to insert address +- a01e493d [FEATURE] Add social links content element +- 983f1692 [FEATURE] Add simple backendlayout without container +- 4ceaa7b1 [FEATURE] Provide form styling for bs3 and bs4 and add basic contact form +- f3cfc372 [FEATURE] Add typoscript constant viewhelper +- 03c1bde0 [FEATURE] Add lowercase dashed formatting viewhelper +- b673ffbb [FEATURE] Allow to set width and height to inline svgs +- 567ac5f6 [FEATURE] Add anchor classes to linkbrowser +- e1a612ff [FEATURE] Add icon group content element +- 44d2562b [FEATURE] Add viewhelper to render inline svgs +- b9425dde [FEATURE] Add card menu +- cb2d6cae [FEATURE] Add social media channels to page footer +- c5ce95f8 [FEATURE] Add processor to make typoscript constants available in templates +- 744d2066 [FEATURE] Add bootstrap 4 sources +- 50a88494 [FEATURE] Load webfonts via fontloader to avoid blocking rendering - fixes #491 +- b725c3b9 [FEATURE] Enable scss and less processing for includeCSSLibs +- e0e487da [FEATURE] Introduce new parser for scss css files + +## TASK + +- c8e036f6 [TASK] Enable ckeditor autolink plugin per default +- 3871e4df [TASK] Add rel noopener to links in default copyright text +- 3a3699ee [TASK] Update webserver configs to mach typo3 v9 defaults +- b0b29c01 [TASK] Optimize modernizr footprint +- 6e9fcbfd [TASK] Update frontend build chain to latest versions +- 2cb81a65 [TASK] Update grunt-webfont to 1.7.2 and rebuild assets +- 2efd4f31 [TASK] Update popper.js to 1.14.4 +- a6cf9707 [TASK] Update cookieconsent to 3.1.0 +- 4b3c8fb4 [TASK] Optimize backgroundimages to avoid frame overflows +- 5a00518c [TASK] Add TypoScript variables for Bootstrap 4 (#500) +- 89239ace [TASK] Streamline database definition with TYPO3 v9 +- 210ecacb [TASK] Use rel noopener for social links +- 11c38ed3 [TASK] Streamline placement of background image templates +- 3e189728 [TASK] Add tests for ExternalMediaUtility +- 3f837892 [!!!][TASK] Use dedicated thumbnail field for card menu thumbnails +- 24cb62c1 [TASK] Code cleanups +- 541e6aaf [TASK] Streamline less and scss caching +- c3ad7208 [!!!][TASK] Drop signal to modify less settings +- a3dbc22f [TASK] Prefer wording gutters over gutter to show that this are multiple +- 0260c4b4 [TASK] Optimize CSS compiler code and caches (#550) +- 4d19411a [TASK] Harden image variants utility +- c4281da8 [TASK] Add first unit tests for image variants utility +- 2066dd13 [TASK] Optimize responsive image rendering of thumbnail menu +- ea583f11 [!!!][TASK] Use dedicated thumbnail field for thumbnail menu content element +- 31271643 [TASK] Improve config scoping of textpic and textmedia responsive image settings +- 892055b8 [TASK] Streamline card link classes with rte buttons +- d75bbcaf [TASK] Remove misleading doccomments in viewhelpers +- 3cf162e0 [TASK] Slightly improve gallery image handling +- c9abe8ec [TASK] Simplify Icon Group handling +- 4a6b07e5 [TASK] Cleanup install service +- 21d424bf [TASK] Make list-inline compatible +- fd09a19c [TASK] Use typo3 v9 minimal distribution for scrutinizer +- c9d1507f [TASK] Correct CGL +- ace965d5 [TASK] Add svgo config +- f1624c9a [TASK] Cleanup glyphicons and ensure all icons are correctly rendered +- 4c1b1c37 [TASK] Cleanup ionicons and ensure all icons are correctly rendered +- 6a306ddc [TASK] Add fill currentColor to all svg icons +- 3ccac18e [TASK] Optimize svg images +- c20e6285 [TASK] Use svgs as backend icons for ionicons +- 7b62c2c1 [TASK] Use svgs as backend icons for glyphicons +- 1c4ce066 [TASK] Migrate text and icon types to string classes +- 1d24a7b6 [TASK] Migrate text and icon sizes to string classes +- 099e4597 [TASK] Migrate textteaser +- 4b225eac [TASK] Prefix region classes to avoid conflics with bootstrap 3 +- c49ff60f [!!!][TASK] Ensure classes and ids on template areas are unique +- 1c9acdb1 [TASK] Add missing html tags to page layout +- 23bef5a1 [TASK] Make page footer more easy to identify +- 147a0170 [TASK] Streamline navbar fixed behaviour +- d8704eb8 [TASK] Enhance placement of carousel content for overlays +- d708838c [TASK] Add border column to simple layout +- 9708334b [TASK] Migrate well styling to bs4 +- 44ec77c0 [TASK] Update bootstrap 4 to 4.1.3 +- cacbfd67 [TASK] Use .tsconfig fileending and official structure for page tsconfig +- 67a7e7d7 [TASK] Seperate the configuration of content elements +- 679d40f5 [TASK] Change primary default color +- 672c495d [TASK] Make translations more easy and hide layout fields in irre records +- e59e818d [TASK] Add NetBeans IDE configuration to gitignore - fixes #539 (#540) +- 34960362 [TASK] Sort typoscript constants to make them more accessible +- d388cbc7 [TASK] Add sudo command again +- f0e058c3 [TASK] Use sudo for deployment stage +- cc7f1b42 [TASK] Split deploy scripts +- 14584e13 [!!!][TASK] Use .form.yaml instead of .yaml +- 3660b3a8 [TASK] Simplify icon registration +- c0b131fd [TASK] Optimize content element header spacing +- a8381110 [!!!][TASK] Add google webfont support for bs4 and add option to disable them +- 9801de64 [TASK] Make subnavigation compatible with bs 4 and 3 +- 2a69a265 [!!!][TASK] Move navigation constants to dedicated namespace +- 44d55a70 [TASK] Remove copyright from custom js files +- 50face99 [TASK] Only keep minified contrib libs and remove sourcemaps +- 618aec9d [TASK] Update grunt-modules and recompile sources +- 9d88f30d [TASK] Update bootstrap to 4.1.1 +- 6bf0e920 [TASK] Improve quality of PHP code (#534) +- 6572d347 [TASK] Use travis build stages - fixes #531 (#533) +- 68ba47cb [TASK] Add AdditionalConfiguration.php as shared file to deployment script +- 67a16bfb [!!!][TASK] Enable css und js concatenation by default +- ae0176df [TASK] Remove deployer configuration from scrutinizer analysis +- f2e0fd17 [TASK] Remove unused code in DataRelationViewHelper +- fb832331 [TASK] Use local webfontloader library +- 736a403d [TASK] Add php version and TYPO3 dev-master prerequisites to pull request template (#527) +- d33a2449 [TASK] Use youtube-nocookie url in external media utility +- c9579ed6 [TASK] Migrate headline styling scaling to bs4 +- ee1504d3 [TASK] Streamline container width between bootstrap 3 and 4 +- dab69c2c [TASK] Simplify image gallery column rendering +- c558c631 [TASK] Extract setup and constants for content elements +- 85e2edf8 [TASK] Drop obsolete constant +- 0b094476 [TASK] Add picture support for figures +- 94b98fc3 [TASK] Use local ratio labels for image croppings +- b19b234e [TASK] Remove unused $rootPage +- c6df2ccf [TASK] Trigger plain js cookie consent events +- 37d58a43 [TASK] Optimize typoscript constants for cookie consent +- eb322f14 [TASK] Update node dependencies +- 2e68b65f [TASK] Reduce webfont loader timeout to one second +- 3cc31760 [TASK] Remove role from carousel-inner +- 56eb6fdd [TASK] Mention bootstrap-package.com in default header comment +- 4eb0562e [TASK] Remove whitespace from header layouts +- 7f9ebc6b [TASK] Always anonymize ip if google analytics is used +- 10a00ca1 [TASK] Update bootstrap 4 branch to 4.1.0 +- d47ba6d4 [TASK] Add date to timeline label +- e2538f36 [TASK] Make textpic and textmedia positions compatible with bs3 and bs4 +- 86d80760 [TASK] Optimize space usage of frame indentions +- 160c5223 [TASK] Add additional stylings for file and mail links +- f438e726 [TASK] Add card menu styling for bs4 +- 5a8036cf [TASK] Remove obsolete container wrappings for single columns +- 7adb559a [!!!][TASK] Move footer column rendering to page templates +- 0e44a772 [TASK] Add robots.txt symlink in deployment +- daa5e2c6 [TASK] Change default copyright text +- 0a67f114 [!!!][TASK] Drop clean backendlayout in favor of simple +- 8b36dea0 [!!!][TASK] Move border column rendering to new section above breadcrumb +- 6942d61a [TASK] Drop hardcoded template column sizes from templates - fixes #391 +- 6527c8a1 [TASK] Migrate panel element to bs4 +- 97343a06 [TASK] Add additional css classes to teaser elements +- ef345269 [TASK] Add additional css classes to footer columns +- e9568713 [TASK] Split footer sections into dedicated partials +- 973aa54f [TASK] Migrate frames and sections to bs4 +- 80d7233b [TASK] Map button default to secondary in bs4 +- 5bd887fc [TASK] Add migration wizard for frame classes +- 92ad8d7c [!!!][TASK] Migrate frame classes well and jumbotron to background color classes +- 6136dfc4 [TASK] Split sections in special feature template +- 4302fb9a [TASK] Migrate uploads to bs4 +- db2591cf [TASK] Rename socialmedia icons to bootstrappackageicon +- b6dd3687 [TASK] Migrate quote to bs4 +- 3796c740 [TASK] Migrate text in columns to bs4 +- 6ef8f486 [TASK] Adjust default variables in bs4 +- 2bb85568 [TASK] Adjust indentions of scss variables +- 0feccd00 [TASK] Migrate thumbnail menu to bs4 +- 652775d1 [TASK] Update modernizr to 3.6.0 and add css/focuswithin test +- 99d001b5 [TASK] Add more meaningful defaults for contactform +- 47ccec07 [TASK] Move form configuration file +- ab7f64e3 [TASK] Disable obsolete share element in lightbox +- 52f3aabf [TASK] Migrate photoswipe lightbox to bs4 +- 8bb2325e [TASK] Make gallery compatible with bs3 and bs4 +- 9dfbca1a [TASK] Make accordion compatible with bs3 and bs4 +- 0603d551 [!!!][TASK] Make mainnavigation compatible with bs3 and bs4 +- dc75c4a9 [TASK] Move active bar styling of mainnavigation to pseudo element +- c969834b [TASK] Streamline behaviour of icongroup +- 7d949b24 [TASK] Finetune styling of icongroup content element +- 05d6a80e [TASK] Migrate navbar toggle to bs4 +- 02714085 [TASK] Reduce timeout for font loading +- 7ce6b005 [TASK] Migrate texticon styling to bs4 +- 6495106d [!!!][TASK] Use theme constants instead of settings +- 367bce19 [!!!][TASK] Drop show footer option +- ff157633 [TASK] Streamline usages of frames +- f69ee8f6 [TASK] Migrate figure styling to bs4 +- b2c1244e [TASK] Migrate carousel base styling to bs4 +- 67d0551a [TASK] Adjust audio styling in bs4 +- d0d872c1 [TASK] Migrate scroll-top styling to bs4 +- 6ebf8668 [TASK] Streamline rendering of breadcrump in bs3 and bs4 +- 93ab4137 [TASK] Include framework name and version in generated css files +- 390bb387 [TASK] Load bootstrap 3 with a different package name to avoid later conflicts +- 3aa8a39e [TASK] Move ionicons to contrib folder +- be3dc438 [TASK] Move all bootstrap 3 resources to contrib +- 617911fc [TASK] Move bootstrap 3 includes to dedicated folders +- 9959417a [TASK] Move bootstrap 3.x specific constants +- 6fea42d1 [TASK] Drop empty line in minified js files +- 3ea9aa5c [TASK] Move javascript assets to contrib avoid naming conflicts +- 02665eac [TASK] Update jquery to 3.3.1 +- d8f151a2 [TASK] Replace npm with yarn to ensure correct versions are always loaded +- 68039777 [TASK] Cleanup gitignore +- 07e55d58 [TASK] Remove TYPO3-9.x from testing until new testing setup available + +## BUGFIX + +- 667ca02a [BUGFIX] Ensure popper.js is loaded before bootstrap.js +- 8154ef41 [BUGFIX] Get rid of warning for count() thrown in less compiler with PHP 7.2 +- 30a93524 [BUGFIX] Ensure condition matching assigns correct matches +- 3d212b9b [BUGFIX] Correct loading order of content elements in type select +- 71e4b681 [BUGFIX] Google font hook must modify setup after caching font files +- bc9442fa [BUGFIX] Fix issue in ChangeLogScript after cleanup +- 836dbb6a [BUGFIX] Ensure ensure typoscript language hook is working correctly +- 78a33947 [BUGFIX] Do not override function param +- 8ed59cc0 [BUGFIX] Correct CGL +- 53cf8ac4 [BUGFIX] Remove unsupported rendertype checkboxtoggle in accordion item +- 479963b6 [BUGFIX] Correct defaults for accordion item +- 4c4a221b [BUGFIX] Correct relative urls +- d744e1c8 [BUGFIX] Respect backendlayout gutter in image generation +- b91bc79c [BUGFIX] Correct phpunit call in composer json +- 12890b8a [BUGFIX] Correct cgl in unit test +- 94a4038b [BUGFIX] Use full command to run unit tests +- bb610941 [BUGFIX] Correct travis config +- 1a417fae [BUGFIX] Correct menu thumbnail constant assignments +- cc12bc3f [BUGFIX] Use correct storage for media assets crop configuration +- df6de77d [BUGFIX] Use correct interface in data relation viewhelper +- a2c5588c [BUGFIX] Remove unused code in texticon utility +- acf91f2c [BUGFIX] Add missing namespace declaration in google font service +- f1268e8b [BUGFIX] Adapt icon type checks in text icon partials +- 019fa878 [BUGFIX] Add missing frame layout class +- 95f0940d [BUGFIX] Correct typo in docheader of file filter processor (#545) +- 4103992f [BUGFIX] Add missing color information for navbar toggler in bs3 +- 9348605b [BUGFIX] Correct position of above and below rendering in textpic and textmedia +- dd195c60 [BUGFIX] Correct grouping of icon enable toggle for subnavigation +- 85958995 [BUGFIX] Make complete background transparent if navigation is in transition mode +- 337728e4 [BUGFIX] Remove obsolete console.log from box plugin +- 04efa9ec [BUGFIX] Use TsConfig instead of TSconfig +- 4db1d7f8 [BUGFIX] Correct CGL +- bc894830 [BUGFIX] Ensure correct positioning of preloader +- a9595535 [BUGFIX] Process fieldName correctly in flexform data processor +- 67e6d65d [BUGFIX] Enable translations of timeline content element +- e4c992fa [BUGFIX] Add missing sorting field for timeline item +- d5691ecd [BUGFIX] Add missing system information icon +- 84ae0e8e [BUGFIX] Respect conditions in webfont includes +- 75d222be [BUGFIX] Use correct namespace for navigation constants in layout +- 21984c17 [BUGFIX] Override width and height attributes correctly in InlineSvgViewHelper +- 70de407e [BUGFIX] Correct docheader of CoreVersionCondition +- b0fe904d [BUGFIX] Load extension configuration only when extensions are installed +- a6b972b8 [BUGFIX] Correct return type in GoogleFontService +- 4bc84b4b [BUGFIX] Correct typo in AdditionalFieldInformation +- 92673368 [BUGFIX] Correct parsefunc to allow address tags outside p tags +- d2483f32 [BUGFIX] Correct ckeditor address plugin to allow links for mail and www +- 53ecaaf6 [BUGFIX] Resolve deprecation for EXT:lang in TYPO3 v9.x +- f4281b22 [BUGFIX] Correct return types in GoogleFontHook and PreProcessHook +- cf067eab [BUGFIX] Correct doc comments in LanguageMenuProcessor +- 82704b5e [BUGFIX] Correct return type in ConstantsProcessor +- d68a3cbc [BUGFIX] Update scrutinizer configuration (#532) +- 34a276fe [BUGFIX] Correct CGL +- aba2db81 [BUGFIX] Use .typoscript fileeindng for configuratio files in TYPO3 >= 9.3 for external includes +- fdd59ef5 [BUGFIX] Remove double BackendLayouts in comment (#528) +- 04c8039b [BUGFIX] Remove unavailable return type void to support php < 7.2.x +- 6d00567f [BUGFIX] Correct several typos - fixes #525 +- ac3e4be9 [BUGFIX] Add missing height and width attributes to backend layout icons +- f7876d99 [BUGFIX] Ensure links have adjustable colors for frame backgrounds +- cdc5b127 [BUGFIX] Strip new lines before and after pre tag +- 3e297f68 [BUGFIX] Correct spacings +- 34fc0d95 [BUGFIX] Caption alignment should follow image alignment - fixes #515 +- 4f315c39 [BUGFIX] Rename folder to macht includes +- 9a423a06 [BUGFIX] Ensure language typoscript is added correctly +- 38b17767 [BUGFIX] Check if array is empty in language utility +- 0dce3aaf [BUGFIX] Use twoLetterIsoCode instead of language field +- a32f777e [BUGFIX] Ensure language configuration is not overwritten +- 0d447094 [BUGFIX] Correct syntax error in php 7.0 in LanguageMenuProcessor +- 1800e07a [BUGFIX] Correct comment +- bbb2069d [BUGFIX] Make datefield required again +- 617e5227 [BUGFIX] Use datefield to save date values in timeline +- c0715ca1 [BUGFIX] Correct php-cs-fixer command in github issue template - fixes #512 +- 92953da0 [BUGFIX] Properly close html tag in navigation partial +- 10554117 [BUGFIX] Add missing compiled css files +- 18faa42a [BUGFIX] Ensure that em is used instead of rem in bs3 card layouts +- ae4eb8c4 [BUGFIX] Ensure section index menu is also available for hidden pages if directly assigned +- df258c96 [BUGFIX] Correct calculations for border radius +- e08f1c3b [BUGFIX] Correct language label +- 2eea1879 [BUGFIX] Correct identifier for button text in call to action item +- 86f03457 [BUGFIX] Properly close html tag in content element dropins +- 89709cd7 [BUGFIX] Correct cgl violations +- f409290e [BUGFIX] Remove obsolete class from footer section meta frame +- 4989d842 [BUGFIX] Ensure that selected pages are shown in menu content elements +- 836ad213 [BUGFIX] Adjust form override key to avoid conflicts with introduction +- a0240a95 [BUGFIX] Add active state to meta menu +- dd6ba018 [BUGFIX] Add default if background color class is not set +- 68f5f5a7 [BUGFIX] Remove debug message +- 272052f4 [BUGFIX] Use english in contact form subject +- b672ac93 [BUGFIX] Correct icongroup css +- b052c855 [BUGFIX] Use href instead of data attribute to avoid messing of urls +- 4c63f0ac [BUGFIX] Remove testing console.log calls +- 0e1d92b2 [BUGFIX] Correct toggle selector for main navigation hover +- b6720e5b [BUGFIX] Use correct accordion_item language label in Backend.xlf (#490) +- 42e1fd94 [BUGFIX] Show navigation toggler only above grid float breakpoint +- d02ed354 [BUGFIX] Remove wrong placed closing html tag in copyright partial +- 1307dd7d [BUGFIX] Remove wrong placed space +- a8b11121 [BUGFIX] Attributes on breadcrumb list item should be separated by whitespace +- 08a45ed7 [BUGFIX] Remove false condition for abstracts in card menus +- b45b3bd5 [BUGFIX] Unset file array in css processing hook +- 0ae48e6d [BUGFIX] Correct CGL +- fdd2b8ed Revert "[BUGFIX] Set correct type for svg files in apache configuration" +- 2d90873f [BUGFIX] Set correct type for svg files in apache configuration +- e950b85b [BUGFIX] Set correct type for javascript files in apache configuration + +## MISC + +- d900028c [CLEANUP] Move additional field information node to language compat +- d6462e4b [CLEANUP] Move extension icon +- a7f5f09c [CLEANUP] Correct text and icon migration leftovers +- edd29832 [CLEANUP] Correct class comment in abstract parser +- 6f0d9786 [CLEANUP] Minor cleanups +- f2d0be5c [CLEANUP] Remove obsolete background image width settings + +## Contributors + +- Ben Abbott +- Benjamin Kott +- Benjamin Kott +- Dennis +- Dennis Pfahlbusch +- Frank Naegler +- Frank Nägler +- Frans Saris +- Georg Ringer +- Gilbertsoft +- Jacob Dreesen +- buechlerpro +- netbrothers-tr +- ute-arbeit + +# 9.1.0 + +## BREAKING + +- c00049b0 [!!!][BUGFIX] Make DataRelationViewHelper compatible with doctrine. +- 7b1fbdfe [!!!][FEATURE] Add auto lookup for page templates + +## FEATURE + +- 7b1fbdfe [!!!][FEATURE] Add auto lookup for page templates +- 2505133a [FEATURE] Add auto lookup for page templates + +## TASK + +- ec395387 [TASK] Raise allowed TYPO3 version to 9.5.99 +- c489860b [TASK] Add travis tests for php 7.2 on typo3 master +- c677ad9f [TASK] Move CMS9 backend branding to service that is only called on installation +- c7d0fc17 [TASK] Only write backend configuration if it has changes +- b8f92490 [TASK] Remove correct addStaticFile function from extension scanner +- edf09e63 [TASK] Move icon registration to localconf +- da16625d [TASK] Exclude php less libary from extension scanner + +## BUGFIX + +- c00049b0 [!!!][BUGFIX] Make DataRelationViewHelper compatible with doctrine. +- 98680104 [BUGFIX] Set default backend configuration for CMS9 +- 00a28673 [REVERT][BUGFIX] Install php extension intl on travis ci +- 33330645 [BUGFIX] Install php extension intl on travis ci +- 80121cd8 [BUGFIX] Adapt travisci build configuration to documentation +- 2fc802bd [BUGFIX] Ensure page layout class is never empty + +## Contributors + +- Benjamin Kott + +# 9.0.0 + +## BREAKING + +- 20124b9a [!!!][TASK] Remove obsolete pagetype popup - fixes #476 +- a500b6d6 [!!!][FEATURE] Make css classes of footer columns directly addressable +- 625af26f [!!!][TASK] Remove fallback menu processor since it was merged into TYPO3 core +- da1db9d8 [!!!][TASK] Remove mod_filter check by default +- 4036bd30 [!!!][FEATURE] Load bootstrap rte configuration for all records by default +- 4b8baeec [!!!][FEATURE] Enable links on dropdown menus in main navigation +- 25b731d4 [!!!][FEATURE] Split menus instead of adding text when adding a spacer on main level +- 9583970b [!!!][TASK] Use .typoscript instead of .txt for configuration files +- 3123bd22 [!!!][BUGFIX] Streamline grunt less and less.php rendering +- a2f9deaf [!!!][TASK] Drop obsolete windows phone fix +- 835b16b3 [!!!][TASK] Drop equalheight script + +## FEATURE + +- 450e4651 [FEATURE] Pass current element on trigger loaded.bk2k.responsiveimage - fixes #471 +- 33e6ffeb [FEATURE] Allow links on carousel type background image - fixes #455 +- 48ef140a [FEATURE] Enable frontend editing for pages +- 8d064573 [FEATURE] Enable frontend editing for content elements +- dca76d18 [FEATURE] Make open accordion item configurable +- e5d9cade [FEATURE] Make gallery item column sizes configurable - fixes #465 +- 6fbd0f29 [FEATURE] Add table class in ckeditor by default +- a54478ba [FEATURE] Add ckeditor plugin to insert boxes +- e85c213f [FEATURE] Add carousel item type image +- e13a417f [FEATURE] Add configurable header and subheader css classes +- 5a60918f [FEATURE] Add additional inline text style classes to editor config +- a9bd8c59 [FEATURE] Add background image and base coloring support for content elements +- 34e00390 [FEATURE] Introduce frame-container and frame-inner for more detailed control options +- 42a676db [FEATURE] Add auto lookup for carousel item templates and move wrapping links to partials +- 7b0f4067 [FEATURE] Add UpperCamelCaseViewHelper +- 88e86ecf [FEATURE] Add option to show navigation title in carousel navigation +- 642eaff7 [FEATURE] Add navigation icons for main navigation +- aad4bf53 [FEATURE] Add current version to system information toolbar +- 4be3c373 [FEATURE] Make scaling options for headlines configurable +- a500b6d6 [!!!][FEATURE] Make css classes of footer columns directly addressable +- 0d6c2ebe [FEATURE] Make footer meta section colors configurable +- 57ca0055 [FEATURE] Make breadcrumb extendable to show title of single records +- 33d85248 [FEATURE] Add example configuration for Microsoft-IIS +- 7a19e6e2 [FEATURE] Add support for google-site-verification meta tag +- 4f93616d [FEATURE] add element wrap in lib.dynamicContent +- 4036bd30 [!!!][FEATURE] Load bootstrap rte configuration for all records by default +- 4b8baeec [!!!][FEATURE] Enable links on dropdown menus in main navigation +- 25b731d4 [!!!][FEATURE] Split menus instead of adding text when adding a spacer on main level +- cd475449 [FEATURE] Make config.typolinkEnableLinksAcrossDomains available through constant +- 770c96ae [FEATURE] Enable cropping of carousel background image +- 42558aec [FEATURE] Enable cropping for image in carousel + +## TASK + +- 20124b9a [!!!][TASK] Remove obsolete pagetype popup - fixes #476 +- cf4cefc1 [TASK] Push notifications to slack +- ba56d072 [TASK] Register bk2k as global namespace for viewhelpers +- 849d9dd4 [TASK] Check for explicit for null value in version toolbar item +- 6da63b5c [TASK] Adjust scrutinizer build +- b9c14b20 [TASK] Remove obsolete divider to tabs option +- 22077d2b [TASK] Rename ckeditor box plugin to avoid naming conflicts +- 4245a426 [TASK] Reduce form css to minimum and adapt to new form elements +- 8299c8c2 [TASK] Update package-lock +- ff4d2f7e [TASK] Remove obsolete watch task for viewportfix +- a5628c4e [TASK] Add small option to ckeditor +- fff4b2c3 [TASK] Add default css class to unordered lists from rte +- 2104e7ba [TASK] Reduce default fields of carousel item +- 3d2c4b00 [TASK] Streamline element quote TCA +- 014fb170 [TASK] Hide relation tables to avoid problems when managed without proper context +- 7d66f2ee [TASK] Remove authors from phpdoc +- ddd4880b [TASK] Streamline php header comments and add fixer rule +- c991413d [TASK] Remove obsolete margin bottom from breadcrumb +- b13a1bd2 [TASK] Enhance positioning of scroll to top button +- b839cb20 [TASK] Avoid ambiguous "uid" error (#480) +- 430fb3a3 [TASK] Use initialize arguments instead of render arguments in FalViewHelper +- 769928f4 [TASK] Use initialize arguments instead of render arguments in DataRelationViewHelper +- 60eb7600 [TASK] Use initialize arguments instead of render arguments in ExplodeViewHelper +- 092eb3a8 [TASK] Add mini section styling +- e9394bb1 [TASK] Use initialize arguments instead of render arguments in ExternalMediaViewHelper +- 228aeb8c [TASK] Use initialize arguments instead of render arguments in LastImageInfoViewHelper +- cc8328e1 [TASK] Remove obsolete tt_content palettes +- 625af26f [!!!][TASK] Remove fallback menu processor since it was merged into TYPO3 core +- d70b031b [TASK] Update readme and include frontend screenshot +- d0bf8348 [TASK] Add .rst and .typoscript to editorconfig +- 1d36a5bf [TASK] Add deployment for www.bootstrap-package.com +- da1db9d8 [!!!][TASK] Remove mod_filter check by default +- 9e13ae1f [TASK] Ensure link target attribute is only rendered if target is set - fixes #468 +- 9583970b [!!!][TASK] Use .typoscript instead of .txt for configuration files +- a702b26a [TASK] Update npm dependencies +- a2f9deaf [!!!][TASK] Drop obsolete windows phone fix +- 835b16b3 [!!!][TASK] Drop equalheight script +- 528b8510 [TASK] Remove release commit from changelog +- 61ce04b2 [TASK] Replace unwanted characters in commit messages +- bdef9ab9 [TASK] Add composer changelog script +- 9e1456f9 [TASK] Drop development affix for version numbers +- cb2480b2 [TASK] Add composer version script +- 2c224fd3 [TASK] Cleanup code formatting for palette configuration +- c22ff319 [TASK] Use php-cs-fixer instead of php-codesniffer +- 6773db49 [TASK] Adjust composer keywords +- c1007227 [TASK] Raise php dependency to 7.x +- 05c42f69 [TASK] Remove not working ter upload +- 88fa5d67 [TASK] Add typo3 8.7 to travis + +## BUGFIX + +- c105a130 [BUGFIX] Correct css selector for carousel item type text and image +- bb499d76 [BUGFIX] Correct indentions +- 54dc3d26 [BUGFIX] Show correct translations in language menu (#487) +- 6b0551a6 [BUGFIX] Ensure aria-expanded is correctly set for accordion items +- e0b8ceff [BUGFIX] Ensure selected tab item is shown in the backend +- a5925b1c [BUGFIX] Only support hover for on navbar toggle if hover is completely supported - fixes #459 +- 5e4a16dd [BUGFIX] Add missing namespaces to carousel small and fullscreen templates +- 6cd74910 [BUGFIX] Use self instead of static in DataRelationViewHelper +- 617e8981 [BUGFIX] Add css to precompiled css files +- 3fd55f64 [BUGFIX] Correct jumbotron button styling +- 47bfded3 [BUGFIX] Add missing list styles to rte configuration +- c8ae888b [BUGFIX] Correct bootstraps calculation of container widths +- 537fe9d6 [BUGFIX] Ensure correct link colors are loaded for footer meta section +- 84a6674e [BUGFIX] Ensure footer list are actually centered +- b441bc8c [BUGFIX] Correct preview template assignments for listgroup and external_media +- 1f8fb5c4 [BUGFIX] Set default value for tt_content reference fields in *_item tables (#482) +- 34834d8f [BUGFIX] Add parseFunc handling to pre tags +- 7e3565d2 [BUGFIX] Correct rendering method of LastImageInfoVIewHelper +- 7267a2e3 [BUGFIX] Correct indention in generic template +- c9cd0a0e [BUGFIX] Limit media element to youtube and vimeo +- 49f894f5 [BUGFIX] Display cropping variants for textmedia - fixes #438 +- 8411a1d5 [BUGFIX] Ensure link is displayed correctly in readme +- e842ce9c [BUGFIX] Correct image link in readme +- fa32c509 [BUGFIX] Add boostrap-package.com as known host +- c0826c4d [BUGFIX] Specify Deployer file +- 5a91e6fe [BUGFIX] Fix sys_language_uid when adding item to translated tt_content (#458) +- 7f7b7888 [BUGFIX] Only show content in MenuSectionPages that is marked for section index - fixes #466 +- 191395dc [BUGFIX] Close tags in meta menu properly - fixes #469 +- 024c5325 [BUGFIX] Remove unused constant assignments - fixes #477 +- 9bf16d50 [BUGFIX] Remove padding of navbar-collapse on desktop +- 3123bd22 [!!!][BUGFIX] Streamline grunt less and less.php rendering +- afead779 [BUGFIX] Remove wrong placed comma in navbar less file - fixes #460 +- 498f9700 [BUGFIX] Prepare colPos field for proper quoting (#452) +- d9a56f4b [BUGFIX] Correct texticon preview paths on windows +- 439c38eb [BUGFIX] Remove .php_cs.dist from export +- 13edd339 [BUGFIX] Correct less variable: @icon-font-path (#450) +- a740752d [BUGFIX] Correct sys_file_referece palettes for tab items +- ef33c3e1 [BUGFIX] Correct sys_file_referece palettes for accordion items +- e6871525 [BUGFIX] Use override child tca for carousel background image +- dc47cc99 [BUGFIX] Correct value type of data-wrap for bootstrap carousels - fixes #437 +- ce256fe3 [BUGFIX] Remove conflicting btn stylings for legacy rtehtmlarea - fixes #447 +- 9ce70d27 [BUGFIX] Correct dependencies for typo3 cms 9.x + +## MISC + +- 448d684d [CLEANUP] Fix typo by adding missing c to "seletor" +- 8ae85ef1 Use correct closing tag + +## Contributors + +- Anja +- Benjamin Kott +- Benjamin Kott +- Cedric Ziel +- Mathias Brodala +- Oliver Hader +- Pat +- Sascha Egerer +- Tymoteusz Motylewski +- mickenorlen + +# 8.0.0 + +## BREAKING + +- e33f0ed8 [!!!][TASK] Drop obsolete var viewhelper - use f:variable instead + +## FEATURE + +- 4b39a415 [FEATURE] Enable compression of generated css files +- caac09a6 [FEATURE] Add bootstrap responsive wrapper to table ce - fixes #385 +- efde1cb1 [FEATURE] Add art direction for image, media, textpic and textmedia + +## TASK + +- d1594b66 [TASK] Force captions to break +- a122f485 [TASK] Make thumbnail menu more flexible +- 7fd49b6f [TASK] Apply more flexible style on thumbnail menus +- 0fd71212 [TASK] Remove cropping from text an image carousel item +- 7431a082 [TASK] Add missing rte configuration for content element panel +- 4c3209f3 [TASK] Optimize brand placement +- 2dd177b7 [TASK] Use SVGs files instead of png for logos in frontend +- c751d36d [TASK] Raise TYPO3 dependency in scrutinizer config +- 13837b08 [TASK] Remove obsolete adjustments for indexed search +- 54b46e5c [TASK] Update missleading informations +- 7ff8f0dc [TASK] Raise TYPO3 Version requirement to 8.7 LTS +- 65315cdb [TASK] Migrate foreign selector to override child tca +- 215fb15e [TASK] Remove default rendering fallback, core provides information already +- d761f7d2 [TASK] Remove deprecated localizationMode from TCA +- d0d5ef42 [TASK] Use new form framework instead of old mailform element +- 2d28eee0 [TASK] Change seperator of page title +- 760f7ebd [TASK] Remove obsolete typoscript configuration +- 960d40fe [TASK] Adapt generic fluid template to match requirements for plugins +- 17071d44 [TASK] Remove obsolete assignment for felogin +- f50b57f1 [TASK] Adapt childtca override config for cropping variants +- c9ce1dd2 [TASK] Adapt indexed search to CMS8 +- 0ed67059 [TASK] Remove obsolete login template +- 75ea29eb [TASK] Adapt frontend login to CMS8 +- d55863b0 [TASK] Add generic template for general usage +- c3b01a98 [TASK] Remove obsolete tt_content typoscript configuration +- b84a29dc [TASK] Add rte configuration for tabs and accordions +- 5b5fca09 [TASK] Restore typical content elements panel +- 7672bfd4 [TASK] Add textpic and textmedia to content element wizard media and text +- ad73b38e [TASK] Add ckeditor as dependency - fixes #431 +- 47410a83 [TASK] Adapt php-cs-fixer configuration +- 6547a491 [TASK] Remove obsolete canNotCollapse attribute +- d83b10e6 [TASK] Resolve deprecation for general language file +- 743782cf [TASK] Optimize gallery rendering to use flexbox for better performance +- 0fc62dac [TASK] Enhance gallery template +- 3e08b28f [TASK] Honor CMS8 cache convention for processed less files - fixes #371 +- 2c635f0c [TASK] Resolve deprecation and use f:defaultCase for default in f:switch +- 60dd67fd [TASK] Remove deprecated TypoScript property config.noScaleUp +- 18e4d890 [TASK] Enable accessibility options to bypass navigation content elements +- b76d3550 [TASK] Streamline blockquote RTE rendering +- 69fa8326 [TASK] Enable RTE h4 and h5 format tags +- 043ef722 [TASK] Add table RTE configuration +- aae55947 [TASK] Add basic RTE styling +- e33f0ed8 [!!!][TASK] Drop obsolete var viewhelper - use f:variable instead +- 09d97efd [TASK] Add html tag with namespace definitions to fluid tempaltes +- 85d2dbff [TASK] Streamline carousel content element +- 3b310f45 [TASK] Streamline accordion content element +- 0ea92635 [TASK] Remove type from content element configuration comment +- 33dc2fff [TASK] Streamline tab content element +- a4686fe6 [TASK] Move bullets content element in wizard to text +- a0b94c45 [TASK] Streamline bullet content element with fsc +- 53a574ef [TASK] Move table content element to text tab in wizard +- d2394149 [TASK] Streamline external media element key +- ed8c8e79 [TASK] Streamline listgroup rendering +- 3a73d617 [TASK] Move image content element in wizard to media tab +- 4c086721 [TASK] Move default content elements in wizard to dedicated tabs +- dd81e21e [TASK] Remove header palette override +- 9e9b6c8d [TASK] Streamline uploads content element with fluid_styled_content +- caec788e [TASK] Use more simple ctype for text and icon content element +- d0ce21ae [TASK] Adapt panel element for CMS8 +- d277dea7 [TASK] Move texticon to text palette in content element wizard +- e75c292d [TASK] Streamline default, div, header, and html templates +- ab971f69 [TASK] Streamline quote definition and rendering +- 5d5cdddb [TASK] Remove obsolete thumbnail icon since its now available in core iconset +- 11fb8efa [TASK] Remove obsolete textmedia icon +- 105c6901 [TASK] Remove obsolete textteaser icon since its now available in core iconset +- f2dedfad [TASK] Streamline tabecolumn rendering +- 6eea9543 [TASK] Streamline textteaser definition and rendering +- 079f7bb2 [TASK] Add html tag with fluid namespace to text template +- 7b307864 [TASK] Add html tag with fluid namespace to shortcut template +- c79fed5c [TASK] Convert new lines to break for captions +- 80901d17 [TASK] Adapt media gallery from fluid_styled_content +- 6952b1eb [TASK] Adapt media element for CMS8 +- 1fb86cf3 [TASK] Move external media content element to media group +- 7a6e6034 [TASK] Move audio content element to new media group +- 1c8eb6a0 [TASK] Set default header to h2 +- ec2a31d2 [TASK] Enforce linux lf for xml files +- 5445e4bb [TASK] Update default .htaccess +- e0d1f40b [TASK] Remove RTE HtmlArea config +- 7dfee8fa [TASK] Minor cleanups +- 0de50f80 [TASK] Streamline table rendering with fluid_styled_content +- 1d92fe4d [TASK] Remove indexed search from new content element wizard +- 12a9269a [TASK] Cleanup new content element wizard configuration +- c36fb42e [TASK] Move thumbnail menus to menu tab in content element wizard +- 58effa99 [TASK] Migrate pages and subpages menus to dedicated content elements +- 4b602622 [TASK] Migrate abstract menu to dedicated content element +- f1ea58a7 [TASK] Migrate recently updated pages menu to dedicated content element +- e0399886 [TASK] Migrate related pages menu to dedicated content element +- 1e6844ab [TASK] Migrate section menus to dedicated content elements +- 0eae5023 [TASK] Migrate sitemap menus to dedicated content elements +- 043e07e9 [TASK] Migrate categorized content and pages menus to dedicated menus +- fefdc5b9 [TASK] Migrate thumbnail menus to dedicated menus +- 3f6571e0 [TASK] Remove obsolete fields from sql file +- 26d12f4f [TASK] Remove obsolete tt_content categorizable call +- c53d6cb0 [TASK] Remove obsolete bullets content element definition +- 20206b23 [TASK] Remove obsolete menu content element definition +- 708f6d2e [TASK] Remove obsolete table content element definition +- ecebab1f [TASK] Remove obsolete uploads content element definition +- 02e0101e [TASK] Remove obsolete textmedia content element definition +- 68f62f5b [TASK] Remove admin panel pagets configuration +- 5f9a4f18 [TASK] Remove obsolete mailform content element definition +- b0742436 [TASK] Remove obsolete shortcut content element definition +- e655ea37 [TASK] Remove obsolete html content element definition +- 7e4ae2f9 [TASK] Remove obsolete list content element definition +- 9d536a3e [TASK] Remove obsolete div content element definition +- a5a3eb0f [TASK] Remove obsolete tceform corrections +- 2efd5fd3 [TASK] Remove obsolete image content element definition +- c0bd8fc7 [TASK] Remove obsolete imageorient definition +- 792f857b [TASK] Remove obsolete textpic content element definition +- aa884691 [TASK] Remove obsolete text content element definition +- bf467eb9 [TASK] Remove obsolete header content element definition +- 355afcdd [TASK] Remove obsolete header_position +- 97cba7d7 [TASK] Adapt texticon element for CMS 8 +- 1fd6e966 [TASK] Adapt tab element for CMS 8 +- a11094b1 [TASK] Adapt panel element for CMS 8 +- e2b86797 [TASK] Adapt carousel element for CMS 8 +- 9cc5d981 [TASK] Adapt accordion element for CMS 8 +- 4eb7fa6f [TASK] Adapt audio element for CMS 8 +- dfcd4d26 [TASK] Adapt externalmedia element for CMS 8 +- b3d49090 [TASK] Adapt listgroup element for CMS 8 +- 2443f84f [TASK] Streamline content element definitions and apply new header +- e383d975 [TASK] Add fallback to header section and remove overrides +- d7d72d08 [TASK] Update loginscreen and extension configuration experience +- 872afa4e [TASK] Enable appearanceLinks palette for all content elements and add footer +- 2299ebe6 [TASK] Mark default content element layout sections as optional +- 682c36f9 [TASK] Adapt DropIn's from Fluid Styled Content +- 1b0d8527 [TASK] Migrate sectionframe to frame class, enable spacebefore and after +- 607de8f0 [TASK] Hide accordion-, carousel- and tabitems after copy +- 12dd0438 [TASK] Migrate requestUpdate to onChange +- 5055e31d [TASK] Migrate showIconTable to selectIcons configuration +- 0584b7fe [TASK] Migrate colorChoice wizard to render type colorpicker +- 92cd67d7 [TASK] Migrate TCA field quote_link and link inputLink +- 5d0d01f0 [TASK] Set versioningWS to true +- 2f8cafba [TASK] Remove unused TCA control setting versioning_followPages +- c1438159 [TASK] Migrate TCA field bodytext to match new wizards +- 35135f5f [TASK] Migrate TCA fields starttime and endtime to inputDateTime + +## BUGFIX + +- 85429004 [BUGFIX] Adapt thumbnail list template +- 12946cd2 [BUGFIX] Remove all typolinks from backend preview of quote element +- 2306885d [BUGFIX] Remove typolink from backend preview of quote element +- 179e73fa [BUGFIX] Add missing data prefix for lightbox caption +- 6a8037d9 [BUGFIX] Set lightbox caption +- c59d57d0 [BUGFIX] Add missing compiled css +- 14150c00 [BUGFIX] Correct font size for text and image carousel item +- 50256dab [BUGFIX] Add missing support for subheader on carousel text and image +- c25bfe94 [BUGFIX] Exclude buttons from section link styling +- d6237f37 [BUGFIX] Add missing link colors to sections +- e339b4c7 [BUGFIX] Use correct external media palette +- ee95762c [BUGFIX] Correct spacing between carousel indicators +- 7e909ea0 [BUGFIX] Correct sorting in content element type select +- 49318ceb [BUGFIX] Correct resolving of less sourcemaps - fixes #413 +- 571192e5 [BUGFIX] Set default language value for custom records +- 99fbf8ff [BUGFIX] Add hammer.js mapping files for debugging - fixes #396 +- 5d7521c6 [BUGFIX] Resolve deprecation for language file usage +- f9b5e59f [BUGFIX] Remove focus after clicking on scroll-top link - fixes #432 +- eaa579fc [BUGFIX] Add missing html tags and streamline selfclosing tags +- e890dc88 [BUGFIX] Correct hook to clear less caches +- 324e83ff [BUGFIX] Correct relative path for less processing +- a4f0a2a3 [BUGFIX] Ensure correct preformatted text rendering +- b3ca827a [BUGFIX] Correct TCA for parent record in accordion and tab item +- f05fc557 [BUGFIX] Correct spelling of temp folder +- 0f0e61b4 [BUGFIX] Add type to linkVars language parameter +- a49c3995 [REVERT][BUGFIX] Remove tools from scrutinizer config but disable analyzer +- b74c7d0e [BUGFIX] Remove tools from scrutinizer config +- 4d0453f3 [BUGFIX] Set TYPO3 version for scrutinizer build +- fa4c2787 [BUGFIX] Require typo3/cms for scrutinizer build +- a65475ec [BUGFIX] Restore location of well and jumbotron in frame class + +## Contributors + +- Andrea Moroni +- Benjamin Kott + +# 7.1.0 + +## BREAKING + +- d2b23d1f [!!!][FEATURE] Use explicit templates instead of conditions in carousel templates - relates #356 +- f2b06d7d [!!!][TASK] Reintroduce "no frame" option - fixes #319 +- eedb60dc [!!!][FEATURE] Add sections to visually group elements +- 9001189d [!!!][FEATURE] Adjust make footer color configurable +- 7d58ac63 [!!!][FEATURE] Add support for google webfonts - fixes #115 +- 5d0a76cd [!!!][FEATURE] Add support for spacer in menu processor - fixes #335 + +## FEATURE + +- d07e219a [FEATURE] Make language uids for menu configurable +- c7ac13dd [FEATURE] Add audio content element - fixes #399 +- add8bc0d [FEATURE] Add preview for quote content element +- 3c2ddf2c [FEATURE] rearrange settings for images and media assets (#395) +- 2b0e5772 [FEATURE] Add signal to compile service - fixes #371 +- 1b528c48 [FEATURE] Add quotation content element +- 0f206e87 [FEATURE] Provide generated link and target from hmenu in menu resultset - fixes #380 +- d5218b19 [FEATURE] Add smothscrolling and back to top link +- 477a83e1 [FEATURE] Add content element text with teaser +- 41f2413a [FEATURE] Add constant for absolute favicon path +- 9d54f211 [FEATURE] Add subheader to carousel item header +- ceaa9695 [FEATURE] Add stickyheader to overlay carousel +- b6518150 [FEATURE] Add fullscreen variant of carousel +- c5c6f615 [FEATURE] Add support for additional iconsets and ionicons - fixes #357 +- b34960fa [FEATURE] Add header_link to the icon of text widh icon content element - fixes #154 +- 66c76500 [FEATURE] Add meta navigation support +- 8f23e439 [FEATURE] Add marker for frontendurl +- ef7bcf09 [FEATURE] Add content element to display regular text in columns +- f043d601 [FEATURE] Allow html entities in carousel header +- 9430c1e9 [FEATURE] Colorize text selection in primary color +- 37658b84 [FEATURE] Make imported font weights of google webfonts editable +- 7da14da1 [FEATURE] Add transition option to switch from fade to slide - #356 #347 +- d2b23d1f [!!!][FEATURE] Use explicit templates instead of conditions in carousel templates - relates #356 +- eedb60dc [!!!][FEATURE] Add sections to visually group elements +- 9001189d [!!!][FEATURE] Adjust make footer color configurable +- 7d58ac63 [!!!][FEATURE] Add support for google webfonts - fixes #115 +- 5d0a76cd [!!!][FEATURE] Add support for spacer in menu processor - fixes #335 +- d36a8b22 [FEATURE] Add content element for vimeo and youtube videos +- ad695e01 [FEATURE] Clear less cache when all caches are cleared + +## TASK + +- 63fa499f [TASK] Optimize html output +- bcfd9ef1 [TASK] Update dependencies +- 5cd45254 [TASK] Add instruction to clear initial TypoScript (#420) +- 93e55e84 [TASK] Use typo3/cms classname for menu processor and provide alias as fallback for versions below 8.5 +- 82be428f [TASK] Update changelog schema +- ad98cd53 [TASK] Optimize travis and composer configuration for automatic ter uploading +- 6deb2785 [TASK] Add TYPO3 8 dev-master to issue template +- 0bb032e0 [TASK] Add GitHub pull request template +- 722b4426 [TASK] Add GitHub issue template +- 7e79b774 [TASK] remove uniqueLinkVars (#407) +- 4921d82a [REVERT][TASK] Use typo3/cms classname for menu processor and provide alias as fallback for versions below 8.5 +- 7537983c [TASK] Use typo3/cms classname for menu processor and provide alias as fallback for versions below 8.5 +- fb6467b2 [TASK] Streamline php_cs fixer configuration with TYPO3 core +- 60beeb92 [TASK] Add checks for TYPO3_MODE to all tca override files configuration files +- 8979cb4c [TASK] Throw exception if invalid arguments are passed to menu processor +- 53ea6d26 [TASK] Drop IE8 and IE9 support for background images in carousel +- 62e88701 [TASK] Always trim assigned variables in var viewhelper +- af899668 [TASK] Streamline position of columns for images and media to match textpic and textmedia +- b74db027 [TASK] Use shorthand array syntax in custom record tca +- 25797b05 [TASK] Do not set links bold in navigation bar +- 82e3c2a0 [TASK] Remove obsolete use statement +- 9cfb3659 [TASK] Update menu templates to use the generated links and targets from menuDataProcessor +- 1ce0019d [TASK] Replace f:link.page with static link (#370) +- eae382e0 [TASK] Exclude fixed navbar from scrolling to anchor +- 0946712d [TASK] Add border between same sections +- f9920241 [TASK] Allow html entities for content element header +- b7b67d5a [TASK] Remove obsolete constants +- 15a6926d [TASK] Update modernizr to 3.3.1 +- 1fa43ee8 [TASK] Adjust section size +- 19d15904 [TASK] Move icon selector to new tab to have enough space for large icon sets - relates #357 +- c43ab1ea [TASK] Move icon registration for text with icon to itemsProcFunc - relates #357 +- 1cb56ab9 [TASK] Remove unnessesary margin for last element in texticon content +- 8b1ae0a3 [TASK] Remove dependency to glyphicons in carousel control - relates #356 +- 9a573c1e [TASK] Move carousel controls to partials - relates #356 +- 145e1645 [TASK] Adjust indentions +- 83baee48 [TASK] Enable default and rename current to normal to ensure it can be overridden without removing the normal template +- f2b06d7d [!!!][TASK] Reintroduce "no frame" option - fixes #319 +- 89cb1f8f [TASK] Correct indention according to PSR2 +- 7827744b [TASK] Do not exclude composer.json from export +- 86306a43 [TASK] Add CType as class to outer content element frame +- 8f982e48 [TASK] Add scaling for text-icon +- 2fff83a0 [TASK] Scale headlines on smaller devices +- 468c5ad3 [TASK] Use dataprocessors instead of viewhelpers for carousel rendering +- 148b159a [TASK] Scale margin of frames +- 1740c475 [TASK] Move page class and id from section to bodytag +- b714e05c [TASK] Remove override for hover link decoration and use bootstrap variables instead - fixes #321 +- cde7cf04 [TASK] Split tt_content overrides +- 9ae55e7a [TASK] Optimize images +- 10c8ce0c [TASK] Use correct icons for tt_content imageorient palette - fixes #352 +- eb7036dd [TASK] Remove bower from travis tests +- 96c2a40a [TASK] Include photoswipe via npm instead of bower +- 283fce82 [TASK] Include hammerjs via npm instead of bower +- 9f8820d2 [TASK] Include bootstrap via npm instead of bower +- 389afc83 [TASK] Update jquery to 2.2.4 +- cda5f1ee [TASK] Update hammer.js to 2.0.8 +- 6af9bbaa [TASK] Update grunt +- 9a43942a [TASK] Correct composer requirements for TYPO3 +- d5c20452 [TASK] Remove unit tests from travis +- 374250e8 [TASK] Fix Travis 2 +- 000d0d83 [TASK] Add color option to phpunit for travis +- ad0828b1 [TASK] Add typo3 unit tests to travis +- dfe05c93 [TASK] Remove version from composer.json to prefer git tags +- b58e6299 [TASK] Adjust editorconfig +- b8fe3c75 [TASK] Add changelog for release 7.0.0 +- 3ceaaf1e [TASK] Add missing changelog entries for 7.1.0 +- 00d42a06 [TASK] Enable basic frontend editing +- c49042da [TASK] Add missing css fixes for #325 +- c733ffdd [TASK] Accessibility - fix of landmark error added role and aria- labelledby attribute +- bef517e2 [TASK] Accessabiliy - added role navigation to breadcrumb +- 9a5a6a8c [TASK] Accessibility - delete role contentinfo because you cant nest the same landmark in itself +- a2810cb2 [TASK] Accessibility - correction of landmark +- 2c9ee0e2 [TASK] Accessibility - Add link title attributes to logo constants, setup and html +- bf80fe37 [BUGFIX][REVERT][TASK] Remove unneeded rte_transform options + +## BUGFIX + +- ec643241 [BUGFIX] Add missing icon for text & media missing - fixes #417 +- 46697bdc [BUGFIX] Adapt link tag parsing for RTE fields +- a04a6c7f [BUGFIX] Move class alias for menu processor to localconf to ensure correct loading +- cdd2005d [BUGFIX] Ensure that variables are not converted to strings by variable viewhelper +- 72bb577c [BUGFIX] Use correct layout (#408) +- c0c3cc55 [BUGFIX] Correct position of carousel with fixed transparent header +- b698328f [BUGFIX] Ensure that navbar-collapse has a maxheight if menu is fixed +- 6886bc8e [BUGFIX] Enforce checkout with linux lf consistent over all plattforms +- 0dff0700 [BUGFIX] Respect show in section menus option for pages in section index menu +- a91373e8 [BUGFIX] Use smooth scroll only on elements that have an hash... (#398) +- dd66961d [BUGFIX] Move temp folder back to root of typo3 temp +- 485ab966 [BUGFIX] Remove double imagecols field in showitem configuration +- b27d0173 [BUGFIX] Workaround variable name cut off in CMS8 - fixes #388 +- ed63827f [BUGFIX] Use string to identify bootstrap_package for adding static template +- f46a6317 [BUGFIX] Allow non ID values for language fields to avoid errors on mysql strict mode +- 4b855079 [BUGFIX] Correct sql definitions for bodytextfields for carousel, accordion and tab content element item +- 0645bb31 [BUGFIX] Correct indention of sql definition +- f1b42b47 [BUGFIX] Correct teaser sql field definition +- e0892160 [BUGFIX] Move TCA change in ext_tables.php to Configuration/TCA/Overrides (#389) +- c0ba7863 [BUGFIX] Avoid specific DBMS literals in database queries (#384) +- 64f98070 [BUGFIX] Fix inline documentation of MenuProcessor (#369) +- bcddcaf5 [BUGFIX] Correct dependency for namelesscoder/typo3-repository-client +- cc39afcc [BUGFIX] Correct positioning of carousel when header is fixed +- 8ac31002 [BUGFIX] Correct case error in ionicons template +- 9553484d [BUGFIX] Use correct less variable in font-family-base +- 566d1352 [BUGFIX] Correct position of carousels on sticky header +- 90fb0b24 [BUGFIX] Add missing active state to stickyheader +- e6cc5ab5 [BUGFIX] Correct navbar z-index in combination with fullscreen carousel in border column +- 446435fe [BUGFIX] Ensure color for headlines is correclty inherited in footer sections +- aa388a27 [BUGFIX] Correct output of texticon if no icon is selected +- eb894e19 [BUGFIX] Ensure carousel headline color is inherited +- c2db0763 [BUGFIX] Remove duplicate case in content element layout +- c04e2b02 [BUGFIX] Correct paragraph rte classes +- ac12a519 [BUGFIX] Fix tab elements missing on slided content +- a994f777 [BUGFIX] Fix carousel elements missing on slided content +- ddaab8b8 [BUGFIX] Fix accordion elements missing on slided content +- 5fb24e9d [BUGFIX] Correct texticon content element rendering with default layout - fixes #336 +- 08f69947 [BUGFIX] Correct PSR-2 issues +- a39c6bb5 [BUGFIX] Tabs, Accordion, and Carousel Items not referencing files on sys_file_reference and sys_refindex - fixes #349 +- 9413d781 [BUGFIX] Bugfix/menuprocessor (#354) +- 58824f97 [BUGFIX] Prevent double escaping of menu titles +- 63909ec4 [BUGFIX] Remove vendor dir from php lint tests +- e39df3fc [BUGFIX] Load form configuration only if ext:form is installed +- a8bb806f [BUGFIX] Respect padding in equalheight script +- 9b16ef3f [BUGFIX] Correct overlapping of content elements with indention - fixes #325 +- 17bf663e [BUGFIX] Corrected label for attribute +- bf80fe37 [BUGFIX][REVERT][TASK] Remove unneeded rte_transform options + +## MISC + +- 0459bd33 "usind" is wrong +- 0a22336a Correct php-cs-fixer command + +## Contributors + +- Andrea Moroni +- Benjamin Kott +- Benjamin Kott +- Cedric Ziel +- Christian Kuhn +- Christian Toffolo +- Frans Saris +- Franz Holzinger +- Georg Ringer +- Martin Bless +- Nicole Cordes +- Oliver Hader +- s-leger + +# 7.0.0 + +## BREAKING + +- 9b9f9452 [!!!][TASK] Send cache headers per default +- 5ecadef4 [!!!][TASK] Conflict css_styled_content and fluid_styled_content due inconsistencies and incompatability to each other +- 22d60c8b [!!!][TASK] Replace FlexFormViewHelper with FlexFormProcessor +- bd62ef80 [!!!][TASK] Disable link to top +- 1761622a [!!!][TASK] Use more strict template names and flatten folder structure for templates to avoid conflicts +- fe5b5b88 [!!!][TASK] Disable compressing and concatenation of CSS and JS files by default +- c9a9ffb5 [!!!][TASK] Drop IE8 support +- e9caa18c [!!!][FEATURE] Register optional PageTS config files +- 8ade18a3 [!!!][TASK] Remove some 6.2 specific fallbacks +- 569df457 [!!!][TASK] Drop TypoScript fallbacks for 6.2, 7.4 +- d70ee66d [!!!][TASK] Drop TemplateFileResolver fallback for 6.2 +- dd81e0c1 [!!!][TASK] Drop BackendLayoutDataProvider since its part of the core now +- 0bc14990 [!!!][TASK] Dropping TYPO3 6.2 support and raise version to 7.0.0-dev + +## FEATURE + +- 7806d37a [FEATURE] Remaining PageTS templates are configurable +- 561cb0ed [FEATURE] Allow to disable footer-section with Typoscript constant. +- 317032be [FEATURE] Allow photoswipe to be opened by url params +- a00e0117 [FEATURE] Add PhotoSwipe as lightbox +- b6bdc425 [FEATURE] Thumbnail Menu +- 9ffce33a [FEATURE] Include records without default translation in content select +- a16b6255 [FEATURE] Allow media content in accordion +- 9ccf082c [FEATURE] Allow media content in tabs +- e9caa18c [!!!][FEATURE] Register optional PageTS config files + +## TASK + +- 42001a96 [TASK] Set defaults for backend configuration +- bdd51ada [TASK] Remove backend_layout upgrade wizard +- a2f2e591 [TASK] Update hammerjs to 2.0.6 +- 977a9977 [TASK] Update jQuery to 2.2.1 +- fa1f19f3 [TASK] Update bootstrap to 3.3.6 +- 4a28bad3 [TASK] Update oyejorge/less.php to 1.7.0.10 +- 070ad6cf [TASK] Remove unneeded rte_transform options +- b7012da5 [TASK] Optimize export +- 444df863 [TASK] Correct accordion rendering +- f3a4be1d [TASK] Correct tab rendering when no media is selected +- b44a7983 [TASK] Remove realurl autoconfiguration in preparation for realurl 2 +- 34640fd5 [TASK] Add TYPO3 branch for 7.6 and exclude php versions < 7 on master +- 9f51a7e1 [TASK] Add php7 to travis +- 89906d1a [TASK] Fix typo +- 55c4a1e6 [TASK] RTE: Classes for links, see benjaminkott#281 +- 5ddf090a [TASK] Add note to vagrant box +- 9b9f9452 [!!!][TASK] Send cache headers per default +- bee69553 [TASK] Update jQuery to 2.2.0 +- 91496d3d [TASK] Test asset pipe on travis +- 9a20304c [TASK] Fix Code according to CGL +- a334f7fb [TASK] Add php cs fixer config +- ccbbd11d [TASK] Add TYPO3 CMS 8 as compatible version +- 291e83bc [TASK] Split source and distribution javascript files and use static paths +- 4182473c [TASK] Adjust frontend login configuration +- 9bb70a91 [TASK] Add basic configuration and template overrides for indexed_search +- 1a479e19 [TASK] Add notice about content rendering extensions +- 7d4cb61a [TASK] Add header palette to cType list +- fc228b00 [TASK] Use default layout as identifier when not backend_layout is selected +- 36b9428f [TASK] Use use titlefield instead of raw data in menus - fixes #273 +- 0217d687 [TASK] Add escaped class to example in lib.dynamicContent +- 35c2cedc [TASK] Use fluidtemplate for languagemenu rendering +- 51b40492 [TASK] Use fluidtemplate for breadcrumb rendering +- f3998640 [TASK] Use fluidtemplate for mainnavigation rendering +- a6b62f1d [TASK] Use fluidtemplate for subnavigation rendering +- 57e2acc7 [TASK] Add configuration for felogin +- b772f398 [TASK] Remove unneeded typo3_mode check +- aa91cb09 [TASK] Add textmedia content element +- 7cb7fa1f [TASK] Add typoscript parse functions +- abae4dc9 [TASK] Add basic FluidTemplate for mailform and set paths +- 540e7df8 [TASK] Add FluidTemplate for list +- 9b06797e [TASK] Add typoscript setup as content rendering template +- bade03ab [TASK] Add FluidTemplate for shortcut +- d417401f [TASK] Add description to menu processor +- 37676d76 [TASK] Add FluidTemplate for menus +- 0e4fe0b2 [TASK] Move uploads to typical page content tab +- 34483ee8 [TASK] Remove unnessesary adjustment of the header palette +- cc096ca1 [TASK] Remove leftover mention of css_styled_content +- 06f96ad3 [TASK] Add FluidTemplate for uploads content element +- 40ceba9c [TASK] Add TCA and wizard for content element div +- 5e20f7f4 [TASK] Add TCA and wizard for content element html +- a2a3a120 [TASK] Add content element wizard items for table +- eee3c634 [TASK] Add FluidTemplate for table content element +- 47396322 [TASK] Add TCA for content element bullet list +- 1257178d [TASK] Enable header position again +- feaf2e3b [TASK] Enable section frame again +- fb6ba2aa [TASK] Add TCA for content element header +- dc99388d [TASK] Add TCA for content element image +- 455cbdbe [TASK] Add content element wizard items for header, text, textpic +- bd201a54 [TASK] Add TCA for content element textpic +- 863c9fd9 [TASK] Add TCA for content element text +- 5ecadef4 [!!!][TASK] Conflict css_styled_content and fluid_styled_content due inconsistencies and incompatability to each other +- 2f6db377 [TASK] Add case for tt_content rendering +- 22d60c8b [!!!][TASK] Replace FlexFormViewHelper with FlexFormProcessor +- b8281971 [TASK] Drop experimental OnePage setup +- a110a615 [TASK] Flatten content element setup and add layouts and sections +- ce1abd1b [TASK] Several adjustments +- b9f023bb [TASK] Make css adjustments +- a7f894e5 [TASK] Remove unnessesary column classes +- d5c1071d [TASK] Move section frames to fluid +- bd62ef80 [!!!][TASK] Disable link to top +- ba7d160c [TASK] Add FluidTemplate for image content element +- b418c7fc [TASK] Flatten content element rendering +- 6e0a8823 [TASK] Steamline header usage templates +- bc5183e9 [TASK] Add FluidTemplate for image content element +- df93601d [TASK] Add FluidTemplate for textpic content element +- c032f2c0 [TASK] Add FluidTemplate for text content element +- a43eb908 [TASK] Add FluidTemplate for header content element +- c39d30bb [TASK] Add FluidTemplate for bullets content element +- 5bbc988b [TASK] Add FluidTemplate for html content element +- 8aa6302a [TASK] Remove dependency to styles.content.get definition +- c13ffdd2 [TASK] Add FluidTemplate for divider content element +- 7f11f4d6 [TASK] Migrate reference to "wizard_element_browser" to new "wizard_link" - fixes #258 +- 3db17119 [TASK] Harden template names for page module previews +- 1761622a [!!!][TASK] Use more strict template names and flatten folder structure for templates to avoid conflicts +- 4fcbcbf1 [TASK] Use dataprocessing in listgroup content element +- 737797d3 [TASK] Use fluid template name for panel content element +- f5c02601 [TASK] Use fluid template name for list group content element +- 3fd77ae9 [TASK] Use fluid template name for external media content element +- 64142fc8 [TASK] Use fluid template name for default content element +- d370a037 [TASK] Use fluid template name for tab content element +- f3e9c385 [TASK] Use fluid template name for carousel content element +- 5e2836f0 [TASK] Use fluid template name for accordion content element +- 2c6bde2d [TASK] Move css_styled_content typoscript configuration +- 174fa1be [TASK] Extract lib.dynamicContent from Base.ts +- 4c39c52e [TASK] Remove iconInOptionTags and noIconsBelowSelect - fixes #243 +- 50242215 [TASK] Add preview for content element list-group +- 729d4a8f [TASK] Reduce size of external media preview +- 4adf3956 [TASK] Update less.php to 1.7.0.9 +- f93cb034 [TASK] Update jQuery to 2.1.4 +- e42c4e60 [TASK] Add recommended apache modules +- 823460f9 [TASK] Enable async loading for modernizr and windowsphone-fix +- fe5b5b88 [!!!][TASK] Disable compressing and concatenation of CSS and JS files by default +- c9a9ffb5 [!!!][TASK] Drop IE8 support +- 2f0d6693 [TASK] Harden expression in PreProcessHook +- f7954151 [TASK] Register content element listgroup icon +- 72c29292 [TASK] Register content element external-media icon +- 500bf8e6 [TASK] Register icon for element accordion-item +- 73145e59 [TASK] Adjust icons for element carousel-item types +- 13eb28dd [TASK] Register icons for element carousel-item types +- 37c46b2b [TASK] Register content element carousel icon +- f66d935d [TASK] Register content element accordion +- 3db5c2a4 [TASK] Register content element panel +- b4734d93 [TASK] Register content element texticon +- 92e017a3 [TASK] Register content element tab-item icon +- 286d4418 [TASK] Register content element tab icon +- bffb89b6 [TASK] Harden expression in ExternalMediaUtility +- 8ade18a3 [!!!][TASK] Remove some 6.2 specific fallbacks +- 569df457 [!!!][TASK] Drop TypoScript fallbacks for 6.2, 7.4 +- d70ee66d [!!!][TASK] Drop TemplateFileResolver fallback for 6.2 +- dd81e0c1 [!!!][TASK] Drop BackendLayoutDataProvider since its part of the core now +- 0bc14990 [!!!][TASK] Dropping TYPO3 6.2 support and raise version to 7.0.0-dev +- e4bbd6ce [TASK] Add preview for external media content element in page module - CMS7 only +- 8c96100a [TASK] Keep additional params for youtube urls +- 2a4aa973 [TASK] Add psr-4 autoload config to ext_emconf +- 8ef1ecdd [TASK] add classes to containers useful to better select them with CSS and Javascript +- 1a007489 [TASK] fix tag closure for HTML5 head meta and link +- b7511944 [TASK] breadcrumb: include the homepage link at the beginning of the breadcrumb. +- 4e01a9e4 [TASK] breadcrumb: for the content of the links use alternative navigation title if it is set, else use page title. + +## BUGFIX + +- 3a6d10a6 [BUGFIX] Remove skin setting from RTE configuration to ensure correct file is loaded in cms 8 +- c8b881a0 [BUGFIX] Disable output escaping for viewhelpers +- cd18e0ee [BUGFIX] Remove spaceless viewhelper +- be974578 [BUGFIX] gallery in 2 cols also for devices >= 768px and < 992px +- 3a5c5a79 [BUGFIX] use the correct Typoscript constant in setup +- 49abd2e5 [BUGFIX] Correct grunt watch tasks +- 5c64e395 [BUGFIX] Add header to cType List +- 2f4d942f [BUGFIX] Respect sorting for tab items +- 4e1895c3 [BUGFIX] Respect sorting for accordion items +- d2f3858f [BUGFIX] Correct PSR2 issue +- 0e750f0f [BUGFIX] Add missing column overrides for text and textpic content elements +- f59acadd [BUGFIX] Check if content element type exists before merging +- fef0fc6e [BUGFIX] Merge type configuration in TCA instead of overriding +- 9a6506c1 [BUGFIX] Add missing comma in uploads field selection +- 3e87fca5 [BUGFIX] Correct accordion content element markup +- 142a0400 [BUGFIX] Add missing showIconTable setting for field icon +- 003489f6 [BUGFIX] Adjust imagepath and wizard settings for carousel links +- b44bcf36 [BUGFIX] Adapt moved language file +- 2bd94955 [BUGFIX] Add missing renderTypes to tt_content fields +- f460fa78 [BUGFIX] Add missing renderTypes to tab item +- 553f48f7 [BUGFIX] Add missing renderTypes to accordion item +- 39ec0279 [BUGFIX] Add missing renderTypes to carousel item +- 534fa91e [BUGFIX] Correct typoscript paths +- 3ddad628 [BUGFIX] Add missing link for media type image in tabs +- a9bf6dff [BUGFIX] Add missing link for media type image in accordion +- 353e3b50 [BUGFIX] Correct composer branch-alias +- 9bf49a18 [BUGFIX] Make links visible in jumbotron - fixes #248 +- 3bef8e04 [BUGFIX] Fix behaviour of strictly allowed RTE classes +- 46f24a1c [BUGFIX] Add the table colspan and rowspan attributes to allowed attributes in RTE configuration +- 0da305fc [BUGFIX] Correct height operator for opengraph image - fixes #227 + +## MISC + +- ce3f8df6 Fix more typos / grammar issues +- 3b25d805 Fix typos found by codespell +- a50ed6e4 Followup: Use spaces instead of tabs +- 62ade32e Fix grammar +- 2edeebce Removed duplicate "List Group" entry +- b917eaef add static to getVariablesFromConstants() because of deprecation notice +- fbbe0cf9 Add crop to carousel background image +- f0966b5a Use settings instead of variables for configuration in FLUIDTEMPLATE +- c596fd73 [WIP] Image rendering +- 663af6aa [WIP] Adjust Tab Rendering +- 01a006c8 [CLEANUP] Bootstrap Package external media item +- 66e3090d [CLEANUP] Bootstrap Package list group item +- ea5db05c [CLEANUP] Rendering definition for default content element +- bec55b68 [CLEANUP] Remove unused header partial +- 1c2db8b7 Add namespace to ext_update class +- 6c19cf4b Update constants.txt +- 57a6a177 Update CssStyledContent.txt +- fddd5e23 Add data-preload to force image preload +- 3205507e Merge remote-tracking branch 'upstream/master' +- 12e6e6e6 [CLEANUP] Remove unused file +- 09711654 [CLEANUP] Correct email in bower setup +- e1df0753 Merge remote-tracking branch 'upstream/master' into disable-meta-section +- 7998c5bd Add mod_filter to apache recommendations +- 7cc4feee [CLEANUP] Correct Readme +- f8475694 [CLEANUP] PSR-2 stuff +- 1cb8469e [CLEANUP] Remove unused use statements in install service +- fba18057 [TROLL] Update copyright text +- 020bf697 [CLEANUP] Initialize fieldsToUpdate in ext_update +- b91e71d1 Merge remote-tracking branch 'upstream/master' into disable-meta-section +- 7f2b9d7a [CLEANUP] Remove unused Hooks and Xclass +- 7897a86e [CLEANUP] Remove TYPO3 6.2 and PHP5.3 and PHP5.4 from Travis CI +- a75a0278 [CLEANUP] Remove unused use statements in realurl autoconfig +- 83088bba bring metaSection enable setting to constants +- fb68e002 Update setup.txt with default meta section enabled +- 100a1084 change Footer.html to disable meta output +- 2cf4e9ba Fixed typos +- aa88fbbc Fixed typos +- db95d9ab Correction of minor typo +- 1b5581d8 Force preload images to allow print +- fbb6fa12 Add useful RTE buttons + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Benjamin Kott +- Cedric Ziel +- Ian Excedo +- Markus Dreyer +- Peter Kühn +- Stefan Weil +- Stephan Großberndt +- Steven Strehl +- Sven Burkert +- buffcode +- metaxos +- phvt +- s-leger +- sebastianseidelmann + +# 6.2.15 + +## TASK + +- 3e5f00f2 [TASK] Add travis-ci build status image +- f0ef2c5f [TASK] Remove unused coverage from travis +- 50d372c3 [TASK] Add phpcs as dev dependency to composer.json +- 3dc0c1df [TASK] Remove TYPO3 dependencies and conflicts from composer.json +- b103871a [TASK] Add travis-ci support +- 1737339c [TASK] Unify license comment +- aaad7a4f [TASK] Static declaration should come after the visibility declaration +- a8a589e4 [TASK] Apply PSR-2 +- 023b9859 [TASK] Add scrutinizer code style fixer for psr-2 +- 42381a08 [TASK] Convert tabs to spaces 2 +- 82ee78a6 [TASK] Convert tabs to spaces +- 4dac59ff [TASK] Add scrutinizer psr-2 settings +- ab4dcafe [TASK] Add braces in condition +- e4e3e9b0 [TASK] Add code quality section to readme +- 82bae492 [TASK] Add YML to editorconfig +- 756f96ab [TASK] Add scrutinizer configuration +- 6c9570f0 [TASK] Change TYPO3 composer dependency to typo3-cms +- d359261c [TASK] Update less.php to 1.7.0.5 + +## BUGFIX + +- aa587827 [BUGFIX] Ignore PSR-2 check for legacy core classes +- d176687a [BUGFIX] Use camel caps format for functions in external media utility +- f15a896f [BUGFIX] PSR-2 Violations +- 914a4254 [BUGFIX] Add composer self-update to travis +- da8c97d0 [BUGFIX] Correct indention +- 1e798736 [BUGFIX] Use correct assignment for TypoScript value +- b8d89b14 [BUGFIX] Make class.ext_update.php work on PHP +- 1cf9b927 [BUGFIX] There is no boostrap package + +## MISC + +- ffe5e3e4 Scrutinizer Auto-Fixes +- 3d6b3427 Scrutinizer Auto-Fixes +- 6bd65dd0 Scrutinizer Auto-Fixes + +## Contributors + +- Benjamin Kott +- Cedric Ziel +- Scrutinizer Auto-Fixer +- Stefan Neufeind + +# 6.2.14 + +## FEATURE + +- 2734c162 [FEATURE] Add advanced Open Graph support, support new meta notation for 7.4 + +## TASK + +- ad9f9282 [TASK] Add migration information for backend layout prefix change +- fc482ca9 [TASK] Add missing changelog for 6.2.12 and 6.2.13 +- 5162b178 [TASK] Update TypoScript template mapping for backend layouts +- fe57d19c [TASK] Add update script to migrate old backend layout prefix to new prefix in table pages +- d467590b [TASK] Disable BackendLayoutDataProvider for TYPO3 versions below 7.4 and adapt registration to core provider prefix for PageTS +- b90c08db [TASK] Move column labels for border, normal, left, right to bootstrap_package, files moved in CMS 7 +- 99c82668 [TASK] fix whitespaces +- eb23a66f [TASK] Add 'active' class for shortcuts in sub navigation + +## BUGFIX + +- f0f8c620 [BUGFIX] Use always $GLOBALS[TCA] +- b0bde8ab [BUGFIX] fix missing TYPO3SEARCH_end marker + +## MISC + +- 04d164d9 Update Index.rst +- 63473434 Rename index.rst to Index.rst +- 9826f5ab Update Index.rst +- bf873ff4 Create index.rst + +## Contributors + +- Anja Leichsenring +- Benjamin Kott +- Benjamin Kott +- Ian Excedo +- Philipp Roski +- s-leger + +# 6.2.13 + +## TASK + +- 4f031d5d [TASK] Include css_styled_content and form in static template + +## BUGFIX + +- 92c7c219 [BUGFIX] Remove leading slash from classnames in typoscript setup +- 287e8df7 [BUGFIX] Restrict options for default tab to currently assigned items - fixes #197 + +## MISC + +- 76a411b0 Fix 'overridden' typos +- e27b03e4 Multiple fixes to composer.json +- e141e230 Fix whitespace in ext_emconf.php + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Florian Fida +- Helmut Hummel + +# 6.2.12 + +## BUGFIX + +- 9347264e [BUGFIX] Add missing static template for bootstrap package + +## Contributors + +- Benjamin Kott + +# 6.2.11 + +## BREAKING + +- 987c2032 [!!!][TASK] Remove compatibility to ext:themes through lack of resources +- 4b16e85f [!!!][TASK] Cleanup deprecated template fallbacks +- 20ec25cf [!!!][FEATURE] Add template fallback support +- 729e9667 [!!!][BUGFIX] Wrong path to font files - fixes #139 +- c43a35e4 [!!!][TASK] Make less files public available +- 305139fc [!!!][TASK] Move lightbox implemantation to a own file and remove main.js +- f0bee946 [!!!][TASK] Make navbar toggle button compatible with bootstrap default markup +- 3f8f04c6 [!!!][TASK] Use version number independent filename for jQuery and update to v1.11.3 +- 1f861227 [!!!][FEATURE] Support multilevel tree in subnavigation - fixes #186 + +## FEATURE + +- 20ec25cf [!!!][FEATURE] Add template fallback support +- 45ffc2c6 [FEATURE] Make DynamicContent wrappable +- 94b74d51 [FEATURE] Add swipe support for carousels - fixes #161 +- 1c50ebcf [FEATURE] Add new page type for popup usage without header and footer typeNum 1000 - fixes #70 +- 8975391d [FEATURE] Enable support in lib.dynamicContent to support content from pid - fixes #185 +- 78c19a7b [FEATURE] Make breadcrumb enable treelevel configurable - fixes #191 +- aa242026 [FEATURE] Add TypoScript TYPO3 version condition +- 13d4410a [FEATURE] Add selectivizr to add CSS3 pseudo selector support to IE8 +- 1f861227 [!!!][FEATURE] Support multilevel tree in subnavigation - fixes #186 +- 8a1f1837 [FEATURE] Add carousel type backgroundimage - #188 +- 224287ab [FEATURE] Make carousel header layout configurable - #188 +- 7d2c7c9c [FEATURE] Add CSS status classes to content wrappers - #fixes 85 +- 993eb4f6 [FEATURE] Add tab content element +- 02ec26fb [FEATURE] Add external media content element for youtube and vimeo videos +- 77639ab9 [FEATURE] New advanced constant to enable/disable CSS source mapping + +## TASK + +- ed01b96e [TASK] Update Documentation for TypoScript constants +- 0eeeac64 [TASK] Update Documentation +- 987c2032 [!!!][TASK] Remove compatibility to ext:themes through lack of resources +- 13ac5ee6 [TASK] Use TCA renderTypes - fixes #192 +- 4b16e85f [!!!][TASK] Cleanup deprecated template fallbacks +- 2f207e70 [TASK] Copy Bootstrap font files during build process +- 27d47b7a [TASK] Update Bootstrap to 3.3.5 +- c43a35e4 [!!!][TASK] Make less files public available +- 0e48e798 [TASK] Use absRefPrefix = auto instead of baseURL in TYPO3 CMS 7 +- 0d727e22 [TASK] Add application context examples to .htaccess file +- 305139fc [!!!][TASK] Move lightbox implemantation to a own file and remove main.js +- 882bfb50 [TASK] Add hires extension icon +- f0bee946 [!!!][TASK] Make navbar toggle button compatible with bootstrap default markup +- a8aed629 [TASK] Add grunt watcher for JavaScript files +- ad3b9928 [TASK] Add RespondJs to Bower +- 3f8f04c6 [!!!][TASK] Use version number independent filename for jQuery and update to v1.11.3 +- 40e41071 [TASK] Include bootstrap with Bower and Grunt +- a761175d [TASK] Add Grunt uglify for JavaScripts +- d8881b36 [TASK] Add initial Grunt setup for RTE and precompiled theme +- db6a5c30 [TASK] Add less variables file to bootstrap theme +- 3c4cec5e [TASK] Unify namespace name in templates +- 328e3596 [TASK] Make ContextualClassViewHelper compilable +- a233f389 [TASK] Make FalViewHelper compilable +- fb7f968a [TASK] Make ExternalMediaViewHelper compilable +- 95d83e96 [TASK] Make VarViewHelper compilable +- 92eafd19 [TASK] Make ExplodeViewHelper compilable +- 9e2c3f1e [TASK] Make DataRelationViewHelper compilable +- fc62a800 [TASK] Remove leftover FormEngineViewHelper +- bd5d285f [TASK] Make FlexFormViewHelper compilable +- b15ee411 [TASK] Update jquery.responsiveimages.js +- 09434679 [TASK] Reintroduce css class for first headline in column rendering +- 9ba2483b [TASK] Move custom content element renderings to typoscript folder +- 848ec4ef [TASK] Cleanup extension declaration file to match documentation +- 6767c334 [TASK] Add individual icons for content elements in wizard +- 35a6156f [TASK] Added missing description to Bootstrap elements +- 7d6e5fc7 [TASK] Add field subheader to header palette of tt_content +- ea2a5296 [TASK] Remove csc-firstHeader CSS class in lib.stdHeader +- 473ccd24 [TASK] Use references instead of hard copies in lib.stdheader +- c2367fdc [TASK] Use ExtensionManagementUtility in autoload.php - fixes #172 +- 791356db [TASK] Update bootstrap to 3.3.4 + +## BUGFIX + +- e84055e3 [BUGFIX] Add disablePageTsRTE option to extension configuration again +- 729e9667 [!!!][BUGFIX] Wrong path to font files - fixes #139 +- 10a0d604 [BUGFIX] Correct overflow problem +- 9273d3e8 [BUGFIX] Deprecation of page.includeJSlibs in TYPO3 CMS 7 +- 566968ec [BUGFIX] Ensure column CSS class is also set for imagecols set to 1 - fixes #138 +- 9be58651 [BUGFIX] Set BackendLayouts columns correctly if PageTs is set via page record +- 61a3fc85 [BUGFIX] Section Index content item produces incorrect links - fixes #150 +- bf4b1815 [BUGFIX] Correct OnePage Markup +- c6f65941 [BUGFIX] Add missing restore register in text with icon - fixes #174 + +## MISC + +- 825d4b26 slightly smarter TypoScript +- 193983b8 FLUIDTEMPLATE.templateName and templateRootPaths +- a066650a Update jquery.responsiveimages.js +- 10f0fbcb Collision with jQuery width and height methods +- 7ee19d4b Update jquery.responsiveimages.js +- 8fddd3b1 Update jquery.responsiveimages.js +- 496e017d Update jquery.responsiveimages.js +- a2bf2d30 Update jquery.responsiveimages.js +- b0a54d66 Event optimisation +- cdefdf81 Fine tune jquery.responsiveimage.js +- 36b97037 Update jquery.responsiveimages.js +- fe803ca5 Update jquery.responsiveimages.js +- 3ab416b1 Update jquery.responsiveimages.js +- fcef312b Fix indents in tab feature + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Harry Glatz +- Ian Excedo +- Konstantin Krauter +- s-leger +- till busch + +# 6.2.10 + +## FEATURE + +- e01b136d [FEATURE] New advanced constant to enable/disable the use of Typoscript constants as Less variables +- a7544c25 [FEATURE] new constant $page.logo.alt used to overwrite the default alt attribute of the logo image +- 5e1d06f6 [FEATURE] make site logo alt attribute configurable +- 1eef6627 [FEATURE] Disable automatic less compiling - fixes #162 + +## TASK + +- 2d3dc52c [TASK] Add changelog +- 0f90334b [TASK] Refactor jquery.responsiveimages.js +- 604ea24e [TASK] HTML5 markup for sub navigation - fixes #171 +- 20333053 [TASK] Make RealUrl autoconfig compatible with the version from Helmut Hummel for 7.x +- c3e76016 [TASK] Protect configuration of extensions in default .htaccess +- a598a4df [TASK] Remove migration of realurl in favor of Helmut Hummels release for TYPO3 CMS 7.2 +- 39d46854 [TASK] Carousel: allow to set the max width of background images +- c29b6227 [TASK] Update oyejorge/less.php to 1.7.0.3 +- 35b81ccf [TASK] Remove automatic cache clearing - fixes #126 +- 7e746fd6 [TASK] Add slack to contact and communication +- 29b666b5 [TASK] replaced with +- 761bd5c7 [TASK] Add admin panel config to typoscript constants +- 88139537 [TASK] Update changelog in documentation + +## BUGFIX + +- 4cce784c [BUGFIX] Correct overlapping elements on centered image - fixes #113, #159 +- 0af8bc02 [BUGFIX] Correct media display for file links content element - fixes #164 +- b5776a1c [BUGFIX] fix for HTML5 markup validation +- e6c0cf9f [BUGFIX] Missing container in default clean layout +- 863615c6 [BUGFIX] Adjust language uids to match introduction database - fixes #135 + +## MISC + +- 9aef5248 Stop using deprecated XHTML cleaning +- 653bd30a Allow "target" attribute inside tags. +- a44d88f1 added "br" to "allowedTags" +- a7a74f0c [CLEANUP] Correct indention to CGL +- 4aa5c42a Modified footer and header +- e57bc95e [Bugfix] fixes sorting on localized relations +- fe208bdc Update FalViewHelper.php +- 7769afed [Bugfix] FalViewHelper.php +- 697bedc4 Update Base.ts + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Carla +- Christopher +- Ian Excedo +- Marco Ziesing +- R B +- Thomas Löffler + +# 6.2.9 + +## TASK + +- e8822fce [TASK] Update jquery to 1.11.2 +- 559ff0c8 [TASK] Update modernizr to 2.8.3 +- d065a0be [TASK] Update less.php to current master +- 70249bf3 [TASK] Throw exception on less compile error +- c056ffd9 [TASK] Rise dependency of TYPO3 and css_styled_content version to 7.99.99 +- 4d78373c [TASK] Add backend skin changes to the documentation +- 7d9fb372 [TASK] Use realurl autoconfig hook instead of overriding every config + +## BUGFIX + +- c7d64280 [BUGFIX] Remove problematic whitespace +- 115a9d58 [BUGFIX] Remove superfluous slash in font definition - fixes #132 +- 095c2a17 [BUGFIX] Classname must not start with a backslash in ext_conf_template.txt + +## MISC + +- 4660037b Update Index.rst +- ca4d0322 Use array_merge_recursive() instead +- 18f1ca82 Don't overwrite existing configuration completely + +## Contributors + +- Aimeos +- Benjamin Kott +- Benjamin Kott +- Cedric Ziel +- buxit + +# 6.2.8 + +## TASK + +- 6f92339a [TASK] Make realurl optional +- b162f602 [TASK] Remove e-mail from contact +- f8ad4af7 [TASK] Minify responsiveimages.js and and cleanup +- c1956cf1 [TASK] Cleanup CGL +- aebd1fcd [TASK] Make removeDefaultJs configurable. fixes #105 + +## BUGFIX + +- 21735bde [BUGFIX] Use correct rte transform in accordion textfield - fixes #67 +- 146a8659 [BUGFIX] Wrong calculation in news pagination - fixes #106 +- f0508a9d [BUGFIX] Flashmessage queue throws error while installing - fixes #116 + +## MISC + +- 94a1a165 Update newContentElement.txt +- c7e27ab8 Update newContentElement.txt +- e40750d9 Update jquery.responsiveimages.js + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Oliver Meckel +- s-leger + +# 6.2.7 + +## TASK + +- 66ce0a66 [TASK] Include respond.js with conditional comment to work with static cache - fixes #101 +- b5cd79d2 [TASK] Cleanup CGL +- 7a86c368 [TASK] Reformat all project-specific content to TYPO3.CMS CGL +- 6541519a [TASK] Make getCompiledFile a static method - fixes #103 #104 +- 279601a6 [TASK] Deprecate backend skin for CMS7 and provide new logos +- c000a5bf [TASK] Carousel needs to have background-image and background-color at the same time available +- cf164b64 [TASK] Add .editorconfig file + +## BUGFIX + +- 5e0d2741 [BUGFIX] Wrong colpos was used in layout "Default, Subnavigation Left and 2 Columns" fixes #98 + +## MISC + +- 14d4eb34 Fix for columns in backend layout +- 7b676ed6 Add 25/75 backend layout +- cd232393 Add missing migrations for realurl +- 880b198b Add migrations for realurl to be compatible with CMS 7.0 +- 614a1eb9 Remove unused template variable - fixes #93 +- df58daa6 typo +- 884dc404 Updated RTE configuration. Implemented a workaround to get enableWordClean work again. +- 7aebd4e1 Finish Hotfix-lead-text +- c0f69b38 Fixes Lead text in RTE that is not saved cause not in allowedClasses + +## Contributors + +- Aimeos +- Benjamin Kott +- Benjamin Kott +- Cedric Ziel +- Dennis Rheinfelder +- Exapoint Solutions AG +- Ian Excedo +- Stefan Froemken + +# 6.2.6 + +## FEATURE + +- 2c668813 [FEATURE] add composer.json + +## MISC + +- 26b6ed91 Release 6.2.6 +- 51f177e3 Correct colPos for left column on Layout: Default, Subnavigation Left and 2 Columns - fixes #62 +- f8ff29b3 Add Google Analytics tracking code anonymization - fixes #84 +- 1b9b1c5e Adjust processing rules for rte +- be860ade Add missing styling for rte table contextual classes +- 7540ed6a Enhance accessibility for the accordion +- 1217a36e Describe and enhance rte config, tables are now responsive by default, css classes have translations now +- 23bec274 Fix role="main" position in 2 columns layout. +- 2784053b Add backend layout with 2 columns 50/50% +- 9b2c649d Use DIR option instead of FILE to include backend layouts. +- 8e5cfe13 Remove superfluous text "Bootstrap Package: " from layouts names. +- e4529ffd Exclude page also from search engine index if no_search is set to the page - fixes #69 +- 0db789b2 Enhance accessibility for the carousel +- f32ea4ae Adjustments to skip to content - resolves #63 +- 71163c16 Add marker for current year. Move replacements directly to the fluidtempalte - fixes #72 +- 706df22c Add missing alt and title attributes on noscript fallback for image rendering - fixes #77 +- e8214f8e TASK: Skip to content Resolves https://github.com/benjaminkott/bootstrap_package/issues/63 +- e3c8ba0c Update bootstrap css file for the backend to 3.3.0 +- 6e317ce4 Adjust gitignore +- de9f8ca0 Remove the automatic appending icons for content links +- f20efcf0 Fix navbar-brand-image position +- 9938953f Fix Carousel fading in chrome +- 5091bd83 Update Bootstrap to version 3.3.0 +- 618350db Display Problems in IE8 for "width: 100% \9;" +- 84a357f1 Move css files for the backend to avoid missunderstandings and add plain default bootstrap.min.css - fixes #61 +- 7dbb159a Adjust language menu for smaller viewports - #65 +- bd77e0a0 Adjust font-size and line-height for better readability +- 1d697bc3 We are always stable ;) +- eb9a85e0 Backendskin is not disabled correctly if option is set +- 5474be4b Add backend layouts for left navigation - fixes #62 +- 1f1ac900 Adjust carousel - fixes #51 +- 3886f279 Add missing space in news date format - fixes #59 +- bb491586 Add caption alignment - fixes #58 +- e7a23a26 Fix small typo +- 13498efd Cleanup configuration for indention frames - fixes #57 +- a5720c9c Cleanup RTE config +- b77c4ce6 Cleanup Tabs #52 +- 9035ae18 Remove forgotten typoscript code for searchbar and login - #50 +- 17695a1c Set cache period to 24h - fixes #55 +- 242d37f0 Correct linkToTop rendering - fixes #54 +- b44573a1 Correct composer.json +- b3196163 Move PARAMS before SOURCECOLLECTION for better HTML code readability. +- 8b2704cd Move img class to params for easier customization. +- aa7d6de8 Add basic google analytics settings +- ddd18ee7 Provide open graph image for social networks +- 672bd9cf Cleanup flip ahead browsing for IE +- 5b12351b Correct dependency to TYPO3 version to ensure that the correct forms are loaded +- e3c3bb94 Update composer.json +- 31a8d99b Fix dynamic rewrite base +- e0cd37b4 Implement a dynamic rewrite base solution reduce problems with some hosters +- 0375b126 Remove some image orient fields to avoid distraction +- b6f1da7c Remove unused link for the image in text with image - fixes #49 +- e8e33893 Avoid error if data for lib.dynamicContent is not provided as array +- e8cd26a3 The title attribute remains empty in mainmenu of onepage variant - fixes #44 +- 7631b768 Allow link tag usage in html content element +- fbe94f93 Split theme less file +- d64540c6 Add new clean backend layout +- 354bd9d2 Add styling constants for ext:themes +- c02611bf Provide options to disable parts of the auto included PageTs settings +- 291515cd Cleanup +- 676034fd Make Bootstrap Package run as a OnePage Website +- c17e975f fix 'Boostrap' typos + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Chris Rebert +- Felix Oertel +- Ian Excedo +- SventB + +# 6.2.5 + +## FEATURE + +- 187c8581 [FEATURE] use SymLinksIfOwnerMatch in .htaccess + +## MISC + +- c86a3480 Release 6.2.5 +- 966bd586 Update Documentation +- 858253eb Add support for link "Edit me on Github" +- d2484b99 Fix workspace problem for related records #37 +- 45db7c4e Make main navbar position configurable +- 9aec7779 Combine less files to avoid dublicate css definitions +- 3d72ea3d Allow Backend Layouts to be configured via PageTsConfig +- 1f50d81f Cleanup less.php integration - fixes #32 +- 60f71fc3 Correct display of tx_form - hopefully +- dc732035 Correct type of baseURL typoscript constant +- bd33fa10 Correct default icon-font-path to avoid problems if page is deployed in a folder - fixes #31 +- 1f78758f Update jQuery version to 1.11.1 +- e2e19f65 Disable imageheight and imagewidth for textpic and image content elements to avoid wrong rendering +- 16a6f996 Avoid problems with hardcoded resource links in login template, remove overriding - fixes #28 +- d9b5c101 Correct label definitions for content elements, $_EXTKEY is not available here - fixes #27 +- 605db345 Add conflict to dyncss to ensure correct less rendering +- 53251485 Cleanup spaces +- 4cbf85f7 Images displayed in one column have no restriction to current layout column - fixes #19 +- adef7ece Update Bootstrap to 3.2.0 +- 58180a16 Correct file locations +- 25fce394 Fix bootstrap less compiler if flattensetup is not available - fixes #20 +- e55d0f17 Cleanup bootstrap file locations +- f016b287 Move bootstrap js to separate folder +- 538ef39c Removing symlink option due problems on windows apache with symlinks - affects #25 +- 46147ae2 Add missing default variables file for bootstrap +- 2f0b0cea Remove backend style module - introduce typoscript constants instead to provide a more flexible less configuration - fixes #5 #20 +- 4160b7aa Update less.php +- c6cfb0ed Move TCA +- 18e5cb33 Text and image - center top was not centered - fixes #21 +- 80993edb Add missing bodytext field to carousel "text and image" and enable rte for accordion - fixes #23 +- a164e5a1 Allow table in RTE +- ed55a6fc Adjust LogoView to make it a bit more secure +- e8a32c06 added fluidpages to conflicts fixes #18 +- 2967c55a Add link to the complete teaser item and fix the relations +- dfa694ca Fix typo +- 2ef1c553 Make it possible to enable backend skin if themes is loaded. +- fdfa43af Make bootstrap_package compatible with themes (part 2) +- 661886df Correct version number +- 1e422c8b Cleanup formatting +- 77414e69 Make bootstrap_package compatible with themes (part 1) +- a8879cda Correct types in constants +- 55b24006 Add TYPO3 version to sitename in backend header +- d97a9d43 Correct wizard registration +- 55e18f4a Add links for carousel images in FE, optimize fal fields. fixes #15 +- 342917cb Update Accordion.html +- 971cc247 add missing text_color field to carousel textwithimage #10 +- 5e1bb9c6 carousel interval and wrap needs to be configurable #10 +- daff0c1c wrong label for header in carousel textwithimage #10 +- 331e51fa cleanup wrong committed stuff before +- fc3b6b8d - cleanup wrong formatting in base.ts - add chash for pagination to prevent cashing issues described in #9 + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Benjamin Kott +- Felix Oertel +- Gökhan Sirin + +# 6.2.4 + +## MISC + +- 52370906 ter does not allow long version numbers ... +- a4608ef1 ter ist fucking up ;( +- c7aaf3c8 set version to 6.2.2.2 +- a3fb4c45 Add Basic Documentation +- 54518d62 correct version to 6.2.2.1 and adjust description +- 84c7b738 Hide navigation toggle if no subpages exist. +- a57cbc3f Fix the height of the header if no subpages available +- da841fe4 Provide an example .htaccess file after installation - fixes #3 +- 72dbbaec tabs and spaces ... +- d3bf38b1 Remove absRefPrefix und add automatic baseURL determination instead. This will ensure that the links and pages are correct if you are running TYPO3 in a subfolder. +- 3bbfa467 Change README to .rst format. Change spelling and wording. +- b79952aa Change README to .rst format. Change spelling and wording. +- 4e6ccbc2 image fix IE +- 4f906769 set version to 6.2.3 for further development +- c407babd cleanup main.js +- 66d905d6 remove rootpage id from realurl due complication with import +- 95e1772c Make absRefPrefix configurable, this is needed when typo3 is running in a subfolder +- 65aac304 set version to 6.2.2 for further development +- 174e9fb7 Remove generated variables from repository +- 93f4c39f Add RealUrl Config +- 27e6edcb Update description +- 1667b223 Update README.md +- 536466a9 set version to 6.2.1 for further development +- 31783df8 set version to 6.2.0 - initial release in ter +- eecd180a RC 6.2 +- 8a43508f Initial commit + +## Contributors + +- Benjamin Kott +- Benjamin Kott +- Martin Bless + diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Backend/ToolbarItem/VersionToolbarItem.php b/public/typo3conf/ext/bootstrap_package/Classes/Backend/ToolbarItem/VersionToolbarItem.php new file mode 100644 index 0000000..de5a570 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Backend/ToolbarItem/VersionToolbarItem.php @@ -0,0 +1,67 @@ +addVersionInformation($event->getToolbarItem()); + } + + /** + * Called by the system information toolbar signal/slot dispatch. + * + * @param SystemInformationToolbarItem $systemInformation + */ + public function addVersionInformation(SystemInformationToolbarItem $systemInformation): void + { + $value = null; + $extensionDirectory = ExtensionManagementUtility::extPath('bootstrap_package'); + + // Try to get current version from git + if (file_exists($extensionDirectory . '.git')) { + CommandUtility::exec('git --version', $_, $returnCode); + if ((int)$returnCode === 0) { + $currentDir = (string) getcwd(); + chdir($extensionDirectory); + $tag = trim(CommandUtility::exec('git tag -l --points-at HEAD')); + if ($tag !== '') { + $value = $tag; + } else { + $branch = trim(CommandUtility::exec('git rev-parse --abbrev-ref HEAD')); + $revision = trim(CommandUtility::exec('git rev-parse --short HEAD')); + $value = $branch . ', ' . $revision; + } + chdir($currentDir); + } + } + + // Fallback to version from extension manager + if ($value === null) { + $value = ExtensionManagementUtility::getExtensionVersion('bootstrap_package'); + } + + // Set system information entry + $systemInformation->addSystemInformation( + 'Bootstrap Package', + htmlspecialchars($value, ENT_QUOTES | ENT_HTML5), + 'systeminformation-bootstrappackage' + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php new file mode 100644 index 0000000..b10c862 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php @@ -0,0 +1,90 @@ +stdWrapValue('key', $processorConfiguration); + if ($key === '') { + $key = 'page'; + } + + // Collect variables + $flatConstants = $this->getFlatConstants($key); + $typoScriptParser = GeneralUtility::makeInstance(TypoScriptParser::class); + $typoScriptParser->parse($flatConstants); + $typoScriptArray = $typoScriptParser->setup; + $typoScriptService = GeneralUtility::makeInstance(TypoScriptService::class); + $constants = $typoScriptService->convertTypoScriptArrayToPlainArray($typoScriptArray); + + // Set the target variable + $targetVariableName = (string) $cObj->stdWrapValue('as', $processorConfiguration); + if ($targetVariableName !== '') { + $processedData[$targetVariableName] = $constants; + } else { + $processedData['constants'] = $constants; + } + + return $processedData; + } + + /** + * @param string $key + * @return string + */ + protected function getFlatConstants($key): string + { + $flatvariables = ''; + $prefix = $key . '.'; + if ($GLOBALS['TSFE']->tmpl->flatSetup === null + || !is_array($GLOBALS['TSFE']->tmpl->flatSetup) + || count($GLOBALS['TSFE']->tmpl->flatSetup) === 0) { + $GLOBALS['TSFE']->tmpl->generateConfig(); + } + foreach ($GLOBALS['TSFE']->tmpl->flatSetup as $constant => $value) { + if (strpos($constant, $prefix) === 0) { + $flatvariables .= substr($constant, strlen($prefix)) . ' = ' . $value . PHP_EOL; + } + } + return $flatvariables; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ContainerContextProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ContainerContextProcessor.php new file mode 100644 index 0000000..01e67c7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/ContainerContextProcessor.php @@ -0,0 +1,79 @@ +getContainerContext( + $this->getPageRecords($cObj, $processedData['data']['pid']), + $processedData['data'] + ); + $processedData['containerContext'] = array_reverse($processedData['containerContext']); + + return $processedData; + } + + public function getContainerContext(array $pageRecords, array $data, int $level = 1): array + { + $containerContext = []; + if (isset($data['tx_container_parent']) && isset($pageRecords[$data['tx_container_parent']])) { + $parent = $pageRecords[$data['tx_container_parent']]; + $containerContext[] = $parent; + $containerContext = array_merge( + $containerContext, + $this->getContainerContext($pageRecords, $parent, $level++) + ); + } + + return $containerContext; + } + + public function getPageRecords(ContentObjectRenderer $cObj, int $pid): array + { + $runtimeCache = GeneralUtility::makeInstance(CacheManager::class)->getCache('runtime'); + $cache = \is_array($runtimeCache->get('containerContext')) ? $runtimeCache->get('containerContext') : []; + $cacheIdentifier = 'containerContext:' . $pid; + + if (!isset($cache[$cacheIdentifier])) { + $records = $cObj->getRecords('tt_content', ['pidInList' => $pid]); + $dataset = []; + foreach ($records as $record) { + $dataset[$record['uid']] = $record; + } + + $cache[$cacheIdentifier] = $dataset; + $runtimeCache->set('containerContext', $cache); + } + + return $cache[$cacheIdentifier]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/CsvFileProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/CsvFileProcessor.php new file mode 100644 index 0000000..01ee5c5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/CsvFileProcessor.php @@ -0,0 +1,74 @@ +stdWrapValue('maximumColumns', $processorConfiguration, '0'); + + // Set the field delimiter which is "," by default + $fieldDelimiter = (string) $cObj->stdWrapValue('fieldDelimiter', $processorConfiguration, ','); + + // Set the field enclosure which is " by default + $fieldEnclosure = (string) $cObj->stdWrapValue('fieldEnclosure', $processorConfiguration, '"'); + + // Get processed files + $processedData = parent::process($cObj, $contentObjectConfiguration, $processorConfiguration, $processedData); + $targetVariableName = (string) $cObj->stdWrapValue('as', $processorConfiguration, 'files'); + $files = $processedData[$targetVariableName]; + unset($processedData[$targetVariableName]); + + foreach ($files as $key => $value) { + if (is_object($value) && ($value instanceof FileReference || $value instanceof File)) { + /** @var ProcessedFile $value */ + if ($value->getExtension() !== 'csv') { + unset($files[$key]); + } else { + $originalFile = $value->getOriginalFile(); + $content = $originalFile->getContents(); + $files[$key] = [ + 'file' => $value, + 'bodytext' => $content, + 'table' => CsvUtility::csvToArray( + $content, + $fieldDelimiter, + $fieldEnclosure, + $maximumColumns + ) + ]; + } + } + } + $files = array_values(array_filter($files)); + $processedData[$targetVariableName] = $files; + + return $processedData; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FileFilterProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FileFilterProcessor.php new file mode 100644 index 0000000..185b503 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FileFilterProcessor.php @@ -0,0 +1,102 @@ + isset($confVars['GFX']['imagefile_ext']) ? $confVars['GFX']['imagefile_ext'] : 'gif,jpg,jpeg,tif,tiff,bmp,pcx,tga,png,pdf,ai,svg', + 'media' => isset($confVars['SYS']['mediafile_ext']) ? $confVars['SYS']['mediafile_ext'] : 'gif,jpg,jpeg,bmp,png,pdf,svg,ai,mp3,wav,mp4,ogg,flac,opus,webm,youtube,vimeo', + 'text' => isset($confVars['SYS']['textfile_ext']) ? $confVars['SYS']['textfile_ext'] : 'txt,ts,typoscript,html,htm,css,tmpl,js,sql,xml,csv,xlf,yaml,yml', + ]; + $predefinedList = (string) $cObj->stdWrapValue('predefinedList', $processorConfiguration, 'image'); + $allowedFileExtensions = isset($predefinedLists[$predefinedList]) ? $predefinedLists[$predefinedList] : ''; + $allowedFileExtensions = GeneralUtility::trimExplode(',', (string) $cObj->stdWrapValue('allowedFileExtensions', $processorConfiguration, $allowedFileExtensions)); + if (count($allowedFileExtensions) === 0) { + return $processedData; + } + + $variableName = (string) $cObj->stdWrapValue('variableName', $processorConfiguration, 'files'); + if (!isset($processedData[$variableName]) || count($processedData[$variableName]) === 0) { + return $processedData; + } + + foreach ($processedData[$variableName] as $key => $value) { + if (is_object($value) + && ($value instanceof FileReference || $value instanceof File) + && !in_array($value->getExtension(), $allowedFileExtensions, true) + ) { + unset($processedData[$variableName][$key]); + } + } + + return $processedData; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FlexFormProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FlexFormProcessor.php new file mode 100644 index 0000000..e2a25d0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/FlexFormProcessor.php @@ -0,0 +1,84 @@ +flexFormService = GeneralUtility::makeInstance(FlexFormService::class); + } + + /** + * @param ContentObjectRenderer $cObj The data of the content element or page + * @param array $contentObjectConfiguration The configuration of Content Object + * @param array $processorConfiguration The configuration of this processor + * @param array $processedData Key/value store of processed data (e.g. to be passed to a Fluid View) + * @return array the processed data as key/value store + */ + public function process(ContentObjectRenderer $cObj, array $contentObjectConfiguration, array $processorConfiguration, array $processedData) + { + // The field name to process + $fieldName = (string) $cObj->stdWrapValue('fieldName', $processorConfiguration); + if ($fieldName === '') { + $fieldName = 'pi_flexform'; + } + if (!isset($processedData['data'][$fieldName])) { + return $processedData; + } + + // Process Flexform + $originalValue = $processedData['data'][$fieldName]; + if (!is_string($originalValue)) { + return $processedData; + } + $flexformData = $this->flexFormService->convertFlexFormContentToArray($originalValue); + + // Set the target variable + $targetVariableName = (string) $cObj->stdWrapValue('as', $processorConfiguration); + if ($targetVariableName !== '') { + $processedData[$targetVariableName] = $flexformData; + } else { + $processedData['data'][$fieldName] = $flexformData; + } + + return $processedData; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/IconsDataProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/IconsDataProcessor.php new file mode 100644 index 0000000..ab8f70f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/IconsDataProcessor.php @@ -0,0 +1,91 @@ +iconService = GeneralUtility::makeInstance(IconService::class); + } + + /** + * @param ContentObjectRenderer $cObj The data of the content element or page + * @param array $contentObjectConfiguration The configuration of Content Object + * @param array $processorConfiguration The configuration of this processor + * @param array $processedData Key/value store of processed data (e.g. to be passed to a Fluid View) + * @return array the processed data as key/value store + */ + public function process(ContentObjectRenderer $cObj, array $contentObjectConfiguration, array $processorConfiguration, array $processedData) + { + $icon = null; + $config = [ + 'iconSet' => (string) $cObj->stdWrapValue('iconSet', $processorConfiguration, ''), + 'iconIdentifier' => (string) $cObj->stdWrapValue('iconIdentifier', $processorConfiguration, ''), + 'iconFileFieldName' => (string) $cObj->stdWrapValue('iconFileFieldName', $processorConfiguration, ''), + ]; + + if ($config['iconSet'] !== '' && $config['iconIdentifier'] !== '') { + $iconProvider = $this->iconService->getIconProviderForIdentifier($config['iconSet']); + if ($iconProvider !== null) { + $icon = $iconProvider->getIconList()->getIcon($config['iconIdentifier']); + } + } elseif ($config['iconFileFieldName'] !== '') { + $filesProcessor = GeneralUtility::makeInstance(FilesProcessor::class); + $filesData = $filesProcessor->process( + $cObj, + $contentObjectConfiguration, + ['references.' => ['fieldName' => $config['iconFileFieldName']]], + ['data' => $processedData['data']] + ); + if (isset($filesData['files'][0])) { + $file = $filesData['files'][0]; + $icon = (new FileIcon()) + ->setFile($file) + ->setIdentifier($file->getIdentifier()) + ->setName($file->getName()) + ->setPreviewImage($file->getPublicUrl()) + ; + } + } + + $targetVariableName = (string) $cObj->stdWrapValue('as', $processorConfiguration, 'icon'); + $processedData[$targetVariableName] = $icon; + + return $processedData; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/StaticFilesProcessor.php b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/StaticFilesProcessor.php new file mode 100644 index 0000000..a05e446 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/DataProcessing/StaticFilesProcessor.php @@ -0,0 +1,81 @@ +checkIf($processorConfiguration['if.'])) { + return $processedData; + } + + // Collect possible files + $files = []; + if (count($processorConfiguration['files.']) > 0) { + $filesConfiguration = $processorConfiguration['files.']; + foreach ($filesConfiguration as $key => $file) { + $key = substr($key, -1) === '.' ? substr_replace($key, '', -1) : $key; + $value = (string) $cObj->stdWrapValue($key, $filesConfiguration); + if ($value !== '') { + $files[$key] = $value; + } + } + } + + // Get file objects + $images = []; + if (count($files) !== 0) { + $resourceFactory = GeneralUtility::makeInstance(ResourceFactory::class); + foreach ($files as $key => $file) { + $absFilename = GeneralUtility::getFileAbsFileName($file); + if (file_exists($absFilename)) { + // Do not use absolute file name to ensure correct path resolution from ResourceFactory. + $images[$key] = $resourceFactory->retrieveFileOrFolderObject($file); + } + } + } + + // Set the target variable + $targetVariableName = (string) $cObj->stdWrapValue('as', $processorConfiguration); + if ($targetVariableName !== '') { + $processedData[$targetVariableName] = $images; + } else { + $processedData['staticFiles'] = $images; + } + + return $processedData; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ConditionProvider.php b/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ConditionProvider.php new file mode 100644 index 0000000..597ec9a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ConditionProvider.php @@ -0,0 +1,27 @@ +expressionLanguageVariables = [ + 'extension' => GeneralUtility::makeInstance(ExtensionWrapper::class) + ]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ExtensionWrapper.php b/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ExtensionWrapper.php new file mode 100644 index 0000000..805987b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ExpressionLanguage/ExtensionWrapper.php @@ -0,0 +1,28 @@ +initializeResultArray(); + $parameterArray = $this->data['parameterArray']; + + $iconSetField = $parameterArray['fieldConf']['config']['itemsProcConfig']['iconSetField'] ?? 'icon_set'; + $iconProviderIdentifier = $this->data['databaseRow'][$iconSetField][0] ?? ''; + $iconProvider = GeneralUtility::makeInstance(IconService::class)->getIconProviderForIdentifier($iconProviderIdentifier); + $iconList = $iconProvider !== null ? $iconProvider->getIconList() : null; + + $selectItems = $parameterArray['fieldConf']['config']['items']; + $selectItemCounter = 0; + foreach ($selectItems as $item) { + if ((new Typo3Version())->getMajorVersion() < 12) { + $item = [ + 'label' => $item[0] ?? '', + 'value' => $item[1] ?? '', + 'icon' => $item[2] ?? '', + ]; + } + + if ($item['value'] === '--div--') { + continue; + } + + $icon = null; + if ($iconList !== null) { + $iconSetIcon = $iconList->getIcon((string) $item['value']); + if ($iconSetIcon !== null) { + $iconSetIcon->setHeight(32); + $iconSetIcon->setWidth(32); + $icon = $iconSetIcon->render(); + } + } + + if ($icon === null) { + $icon = isset($item['icon']) && trim($item['icon']) !== '' ? FormEngineUtility::getIconHtml($item['icon'], $item['label'], $item['label']) : ''; + } + + if ($icon !== '') { + $fieldValue = $this->data['databaseRow'][$this->data['fieldName']]; + $selectIcons[] = [ + 'title' => $item['label'], + 'active' => ($fieldValue[0] ?? false) === (string)($item['value'] ?? ''), + 'icon' => $icon, + 'index' => $selectItemCounter, + ]; + } + $selectItemCounter++; + } + + $html = []; + if (count($selectIcons) > 0) { + if ((new Typo3Version())->getMajorVersion() < 12) { + $html[] = '
'; + $html[] = '
'; + foreach ($selectIcons as $selectIcon) { + $active = $selectIcon['active'] ? ' active' : ''; + $html[] = ''; + } + $html[] = '
'; + $html[] = '
'; + } else { + $html[] = '
'; + foreach ($selectIcons as $selectIcon) { + $active = $selectIcon['active'] ? ' active' : ''; + $html[] = ''; + } + $html[] = '
'; + } + } + + $result['html'] = implode(LF, $html); + return $result; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/GoogleFontHook.php b/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/GoogleFontHook.php new file mode 100644 index 0000000..34cef74 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/GoogleFontHook.php @@ -0,0 +1,110 @@ + 'cssLibs', + 'includeCSS' => 'cssFiles' + ]; + + /** + * @var \BK2K\BootstrapPackage\Service\GoogleFontService + */ + protected $googleFontService; + + /** + * @param array $params + * @param \TYPO3\CMS\Core\Page\PageRenderer $pagerenderer + */ + public function execute(&$params, &$pagerenderer): void + { + if (!($GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface || + !ApplicationType::fromRequest($GLOBALS['TYPO3_REQUEST'])->isFrontend() || + (!is_array($params['cssFiles']) && !is_array($params['cssLibs'])) + ) { + return; + } + + foreach ($this->includeMapping as $include => $section) { + if (is_array($params[$section])) { + $files = []; + foreach ($params[$section] as $file => $settings) { + $cachedFile = $this->getGoogleFontService()->getCachedFile($file); + if ($cachedFile !== null) { + $this->adjustTypoScriptCssConfiguration($include, $file, $cachedFile); + $settings['file'] = $cachedFile; + $files[$cachedFile] = $settings; + } else { + $files[$file] = $settings; + } + $params[$section] = $files; + } + } + } + } + + /** + * @param string $include + * @param string $file + * @param string $cachedFile + */ + protected function adjustTypoScriptCssConfiguration($include, $file, $cachedFile): void + { + $includeFilesConfiguration = $this->getTemplateService()->setup['page.'][$include . '.']; + if (is_array($includeFilesConfiguration) && count($includeFilesConfiguration) > 0) { + foreach ($includeFilesConfiguration as $includeKey => $includeFilename) { + if (substr($includeKey, -1) === '.') { + continue; + } + if ($file === $includeFilename) { + $this->getTemplateService()->setup['page.'][$include . '.'][$includeKey] = $cachedFile; + break; + } + } + } + } + + /** + * Get the google font service + * + * @return GoogleFontService + */ + protected function getGoogleFontService(): GoogleFontService + { + if ($this->googleFontService === null) { + $this->googleFontService = GeneralUtility::makeInstance(GoogleFontService::class); + } + return $this->googleFontService; + } + + /** + * @return TemplateService + */ + private function getTemplateService(): TemplateService + { + $frontendController = $GLOBALS['TYPO3_REQUEST']->getAttribute('frontend.controller', $GLOBALS['TSFE']); + return $frontendController->tmpl; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/PreProcessHook.php b/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/PreProcessHook.php new file mode 100644 index 0000000..0fea7fe --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Hooks/PageRenderer/PreProcessHook.php @@ -0,0 +1,67 @@ +isFrontend()) { + return; + } + + foreach (['cssLibs', 'cssFiles'] as $key) { + $files = []; + if (is_array($params[$key])) { + foreach ($params[$key] as $file => $settings) { + $compiledFile = $this->getCompileService()->getCompiledFile($file); + if ($compiledFile !== null) { + $settings['file'] = $compiledFile; + $files[$compiledFile] = $settings; + } else { + $files[$file] = $settings; + } + } + $params[$key] = $files; + } + } + } + + /** + * Get the compile service + * + * @return CompileService + */ + protected function getCompileService(): CompileService + { + if ($this->compileService === null) { + $this->compileService = GeneralUtility::makeInstance(CompileService::class); + } + return $this->compileService; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/AbstractIcon.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/AbstractIcon.php new file mode 100644 index 0000000..2ce0e06 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/AbstractIcon.php @@ -0,0 +1,140 @@ +identifier = $identifier; + return $this; + } + + /** + * @return string + */ + public function getIdentifier(): string + { + return $this->identifier; + } + + /** + * @param string $name + * @return self + */ + public function setName(string $name) + { + $this->name = $name; + return $this; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @param string $previewImage + * @return self + */ + public function setPreviewImage(string $previewImage) + { + $this->previewImage = $previewImage; + return $this; + } + + /** + * @return string + */ + public function getPreviewImage(): string + { + return $this->previewImage; + } + + /** + * @param int $height + * @return self + */ + public function setHeight(int $height) + { + $this->height = $height; + return $this; + } + + /** + * @return int + */ + public function getHeight(): int + { + return $this->height; + } + + /** + * @param int $width + * @return self + */ + public function setWidth(int $width) + { + $this->width = $width; + return $this; + } + + /** + * @return int + */ + public function getWidth(): int + { + return $this->width; + } + + /** + * @return string + */ + public function render(): string + { + return ''; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/FileIcon.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/FileIcon.php new file mode 100644 index 0000000..f8473c5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/FileIcon.php @@ -0,0 +1,84 @@ +file = $file; + return $this; + } + + /** + * @return FileInterface + */ + public function getFile(): FileInterface + { + return $this->file; + } + + /** + * @return string + */ + public function render(): string + { + try { + $imageService = GeneralUtility::makeInstance(ImageService::class); + $image = $imageService->getImage('', $this->file, false); + $height = $this->getHeight(); + $width = $this->getWidth(); + + if ($image->getExtension() === 'svg') { + return SvgUtility::getInlineSvg('', $image, $width, $height); + } + + $processingInstructions = [ + 'width' => $width . 'c', + 'height' => $height . 'c' + ]; + $processedImage = $imageService->applyProcessingInstructions($image, $processingInstructions); + $imageUri = $imageService->getImageUri($processedImage); + + return ''; + } catch (ResourceDoesNotExistException $e) { + // thrown if file does not exist + throw new \Exception($e->getMessage(), 1628773040, $e); + } catch (\UnexpectedValueException $e) { + // thrown if a file has been replaced with a folder + throw new \Exception($e->getMessage(), 1628773041, $e); + } catch (\RuntimeException $e) { + // RuntimeException thrown if a file is outside of a storage + throw new \Exception($e->getMessage(), 1628773042, $e); + } catch (\InvalidArgumentException $e) { + // thrown if file storage does not exist + throw new \Exception($e->getMessage(), 1628773043, $e); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/GlyphiconsProvider.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/GlyphiconsProvider.php new file mode 100644 index 0000000..b0f7cca --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/GlyphiconsProvider.php @@ -0,0 +1,74 @@ + $fileinfo) { + if ($fileinfo instanceof \SplFileInfo + && $fileinfo->isFile() + && strtolower($fileinfo->getExtension()) === 'svg' + ) { + $icons->addIcon( + (new SvgIcon()) + ->setSrc($directory . $fileinfo->getFilename()) + ->setIdentifier($directory . $fileinfo->getFilename()) + ->setName($fileinfo->getBasename('.' . $fileinfo->getExtension())) + ->setPreviewImage($directory . $fileinfo->getFilename()) + ); + } + } + + return $icons; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconInterface.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconInterface.php new file mode 100644 index 0000000..1293b01 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconInterface.php @@ -0,0 +1,76 @@ +icons; + } + + /** + * @param IconInterface $icon + * @return self + */ + public function addIcon(IconInterface $icon): self + { + $this->icons[$icon->getIdentifier()] = $icon; + return $this; + } + + /** + * @param IconInterface $icon + * @return self + */ + public function removeIcon(IconInterface $icon): self + { + if (isset($this->icons[$icon->getIdentifier()])) { + unset($this->icons[$icon->getIdentifier()]); + } + return $this; + } + + /** + * @param string $identifier + * @return IconInterface|null + */ + public function getIcon(string $identifier): ?IconInterface + { + return $this->icons[$identifier] ?? null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconProviderInterface.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconProviderInterface.php new file mode 100644 index 0000000..282a38c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/IconProviderInterface.php @@ -0,0 +1,37 @@ + $fileinfo) { + if ($fileinfo instanceof \SplFileInfo + && $fileinfo->isFile() + && strtolower($fileinfo->getExtension()) === 'svg' + ) { + $icons->addIcon( + (new SvgIcon()) + ->setSrc($directory . $fileinfo->getFilename()) + ->setIdentifier($directory . $fileinfo->getFilename()) + ->setName($fileinfo->getBasename('.' . $fileinfo->getExtension())) + ->setPreviewImage($directory . $fileinfo->getFilename()) + ); + } + } + + return $icons; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Icons/SvgIcon.php b/public/typo3conf/ext/bootstrap_package/Classes/Icons/SvgIcon.php new file mode 100644 index 0000000..385f396 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Icons/SvgIcon.php @@ -0,0 +1,54 @@ +src = $src; + return $this; + } + + /** + * @return string + */ + public function getSrc(): string + { + return $this->src; + } + + /** + * @return string + */ + public function render(): string + { + $src = $this->getSrc(); + $height = $this->getHeight(); + $width = $this->getWidth(); + + return SvgUtility::getInlineSvg($src, null, $width, $height); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Parser/AbstractParser.php b/public/typo3conf/ext/bootstrap_package/Classes/Parser/AbstractParser.php new file mode 100644 index 0000000..79898fd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Parser/AbstractParser.php @@ -0,0 +1,133 @@ +getCacheIdentifier($file, $settings); + $cacheFile = $this->getCacheFile($cacheIdentifier, $settings['cache']['tempDirectory']); + $cacheFileMeta = $this->getCacheFileMeta($cacheFile); + + return file_exists($cacheFile) && file_exists($cacheFileMeta); + } + + /** + * @param string $cacheFile + * @param string $cacheFileMeta + * @param array $settings + * @return bool + */ + protected function needsCompile(string $cacheFile, string $cacheFileMeta, array $settings): bool + { + $needCompilation = false; + $fileModificationTime = filemtime($cacheFile); + $metadata = unserialize((string) file_get_contents($cacheFileMeta), ['allowed_classes' => false]); + + foreach ($metadata['files'] as $file) { + if (filemtime($file) > $fileModificationTime) { + $needCompilation = true; + break; + } + } + + if (!$needCompilation && $settings['variables'] !== $metadata['variables']) { + $needCompilation = true; + } + + if (!$needCompilation && $settings['options']['sourceMap'] !== $metadata['sourceMap']) { + $needCompilation = true; + } + + return $needCompilation; + } + + /** + * @param string $cacheIdentifier + * @param string $tempDirectory + * @return string + */ + protected function getCacheFile(string $cacheIdentifier, string $tempDirectory): string + { + return $tempDirectory . $cacheIdentifier . '.css'; + } + + /** + * @param string $filename + * @return string + */ + protected function getCacheFileMeta(string $filename) + { + return $filename . '.meta'; + } + + /** + * @param string $file + * @param array $settings + * @return string + */ + protected function getCacheIdentifier(string $file, array $settings): string + { + $filehash = md5($file); + $hash = hash('sha256', $filehash . serialize($settings)); + $extension = pathinfo($file, PATHINFO_EXTENSION); + + return basename($file, '.' . $extension) . '-' . $hash; + } + + /** + * @return string + */ + protected function getPathSite(): string + { + return Environment::getPublicPath() . '/'; + } + + /** + * Clear all page caches + * @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheGroupException + */ + protected function clearPageCaches(): void + { + GeneralUtility::makeInstance(CacheManager::class)->flushCachesInGroup('pages'); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Parser/ParserInterface.php b/public/typo3conf/ext/bootstrap_package/Classes/Parser/ParserInterface.php new file mode 100644 index 0000000..0054c9b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Parser/ParserInterface.php @@ -0,0 +1,29 @@ +getCacheIdentifier($file, $settings); + $cacheFile = $this->getCacheFile($cacheIdentifier, $settings['cache']['tempDirectory']); + $cacheFileMeta = $this->getCacheFileMeta($cacheFile); + $compile = false; + + if (!$this->isCached($file, $settings) + || $this->needsCompile($cacheFile, $cacheFileMeta, $settings)) { + $compile = true; + } + + if ($compile) { + $result = $this->parseFile($file, $settings); + GeneralUtility::writeFile(GeneralUtility::getFileAbsFileName($cacheFile), $result['css']); + GeneralUtility::writeFile(GeneralUtility::getFileAbsFileName($cacheFileMeta), serialize($result['cache'])); + $this->clearPageCaches(); + } + + return $cacheFile; + } + + /** + * @param string $file + * @param array $settings + * @return array + */ + protected function parseFile(string $file, array $settings): array + { + $scss = new Compiler(); + $scss->setOutputStyle(OutputStyle::COMPRESSED); + $scss->addVariables($settings['variables']); + if ($settings['options']['sourceMap']) { + $scss->setSourceMap(Compiler::SOURCE_MAP_INLINE); + $scss->setSourceMapOptions([ + 'sourceMapRootpath' => $settings['cache']['tempDirectoryRelativeToRoot'], + 'sourceMapBasepath' => '' + ]); + } + $absoluteFilename = $settings['file']['absolute']; + // Adds visual directory path of the initial file as import path + // This scenarios happens, when e.g. developing packages using the `path` + // repository feature of Composer - having one package in `public/typo3conf/ext/` + // and the other one symlinked in e.g. `packages/`. + // Since the PHP SCSS parser works on resolved real paths, the symlinked context is lost. + $visualImportPath = dirname($absoluteFilename); + $scss->addImportPath(function ($url) use ($visualImportPath): ?string { + // Resolve potential back paths manually using PathUtility::getCanonicalPath, + // but make sure we do not break out of TYPO3 application path using GeneralUtility::getFileAbsFileName + // Also resolve EXT: paths if given + $isTypo3Absolute = (strpos($url, 'EXT:') === 0) || PathUtility::isAbsolutePath($url); + $fileName = $isTypo3Absolute ? $url : $visualImportPath . '/' . $url; + $full = GeneralUtility::getFileAbsFileName(PathUtility::getCanonicalPath($fileName)); + // The API forces us to check the existence of files paths, with or without url. + // We must only return a string if the file to be imported actually exists. + $hasExtension = (bool) preg_match('/[.]s?css$/', $url); + if ( + is_file($file = $full . '.scss') || + ($hasExtension && is_file($file = $full)) + ) { + // We could trigger a deprecation message here at some point + return $file; + } + + return null; + }); + // Add extensions path to import paths, so that we can use paths relative to this directory to resolve imports + $scss->addImportPath(Environment::getExtensionsPath()); + + // Make paths in url() statements relative to site root + $absoluteFilePath = dirname($absoluteFilename); + $relativeFilePath = PathUtility::getAbsoluteWebPath($absoluteFilePath); + $absoluteBootstrapPackageThemePath = + ExtensionManagementUtility::extPath('bootstrap_package') . 'Resources/Public/Scss/Theme'; + $relativeBootstrapPackageThemePath = PathUtility::getAbsoluteWebPath($absoluteBootstrapPackageThemePath); + $scss->registerFunction( + 'url', + function ($args) use ( + $scss, + $absoluteFilePath, + $relativeFilePath, + $absoluteBootstrapPackageThemePath, + $relativeBootstrapPackageThemePath + ) : string { + $marker = $args[0][1]; + $args[0][1] = ''; + $result = $scss->compileValue($args[0]); + if (substr_compare($result, 'data:', 0, 5, true) !== 0) { + if (is_file(PathUtility::getCanonicalPath($absoluteFilePath . '/' . $result))) { + $result = PathUtility::getCanonicalPath($relativeFilePath . '/' . $result); + } elseif (is_file(PathUtility::getCanonicalPath($absoluteBootstrapPackageThemePath . '/' . $result))) { + $result = PathUtility::getCanonicalPath($relativeBootstrapPackageThemePath . '/' . $result); + } + $result = substr($result, 0, 1) === '/' ? substr($result, 1) : $result; + } + return 'url(' . $marker . $result . $marker . ')'; + } + ); + + // Compile file + $compilationResult = $scss->compileString('@import "' . $absoluteFilename . '"'); + $css = $compilationResult->getCss(); + + // Fix paths in url() statements to be relative to temp directory + $relativeTempPath = $settings['cache']['tempDirectoryRelativeToRoot']; + $search = '%url\s*\(\s*[\\\'"]?(?!(((?:https?:)?\/\/)|(?:data:?:)))([^\\\'")]+)[\\\'"]?\s*\)%'; + $replace = 'url("' . $relativeTempPath . '$3")'; + $css = (string) preg_replace($search, $replace, $css); + + return [ + 'css' => $css, + 'cache' => [ + 'version' => Version::VERSION, + 'date' => date('r'), + 'css' => $css, + 'etag' => md5($css), + 'files' => $compilationResult->getIncludedFiles(), + 'variables' => $settings['variables'], + 'sourceMap' => $settings['options']['sourceMap'] + ] + ]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Service/BrandingService.php b/public/typo3conf/ext/bootstrap_package/Classes/Service/BrandingService.php new file mode 100644 index 0000000..d7a67f0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Service/BrandingService.php @@ -0,0 +1,60 @@ +getPackageKey() === 'bootstrap_package') { + $this->setBackendStyling(); + } + } + + public function setBackendStyling(): void + { + if (class_exists(ExtensionConfiguration::class)) { + $extensionConfiguration = GeneralUtility::makeInstance( + ExtensionConfiguration::class + ); + $backendConfiguration = $extensionConfiguration->get('backend'); + + if (!isset($backendConfiguration['loginLogo']) || trim($backendConfiguration['loginLogo']) === '') { + $backendConfiguration['loginLogo'] = 'EXT:bootstrap_package/Resources/Public/Images/Backend/login-logo.svg'; + } + if (!isset($backendConfiguration['loginBackgroundImage']) || trim($backendConfiguration['loginBackgroundImage']) === '') { + $backendConfiguration['loginBackgroundImage'] = 'EXT:bootstrap_package/Resources/Public/Images/Backend/login-background-image.jpg'; + } + if (!isset($backendConfiguration['backendLogo']) || trim($backendConfiguration['backendLogo']) === '') { + $backendConfiguration['backendLogo'] = 'EXT:bootstrap_package/Resources/Public/Images/Backend/backend-logo.svg'; + } + + // Workaround for + // https://review.typo3.org/c/Packages/TYPO3.CMS/+/62650 + $reflection = new \ReflectionClass(ExtensionConfiguration::class); + $parameters = $reflection->getMethod('set')->getParameters(); + $arguments = []; + $arguments[] = 'backend'; + if (count($parameters) === 3) { + $arguments[] = ''; + } + $arguments[] = $backendConfiguration; + + $extensionConfiguration->set(...$arguments); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Service/CompileService.php b/public/typo3conf/ext/bootstrap_package/Classes/Service/CompileService.php new file mode 100644 index 0000000..3c028e2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Service/CompileService.php @@ -0,0 +1,142 @@ +tmpl->setup['plugin.']['tx_bootstrappackage.']['settings.'] ?? []; + + // Ensure cache directory exists + if (!file_exists(Environment::getPublicPath() . '/' . $this->tempDirectory)) { + GeneralUtility::mkdir_deep(Environment::getPublicPath() . '/' . $this->tempDirectory); + } + + // Settings + $settings = [ + 'file' => [ + 'absolute' => $absoluteFile, + 'relative' => $file, + 'info' => pathinfo($absoluteFile) + ], + 'cache' => [ + 'tempDirectory' => $this->tempDirectory, + 'tempDirectoryRelativeToRoot' => $this->tempDirectoryRelativeToRoot, + ], + 'options' => [ + 'override' => $configuration['overrideParserVariables'] ? true: false, + 'sourceMap' => $configuration['cssSourceMapping'] ? true : false, + 'compress' => true + ], + 'variables' => [] + ]; + + // Parser + if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/css']['parser']) + && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/css']['parser']) + ) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/css']['parser'] as $className) { + $parser = GeneralUtility::makeInstance($className); + if ($parser instanceof ParserInterface + && isset($settings['file']['info']['extension']) + && $parser->supports($settings['file']['info']['extension']) + ) { + if ($configuration['overrideParserVariables']) { + $settings['variables'] = $this->getVariablesFromConstants($settings['file']['info']['extension']); + } + try { + return $parser->compile($file, $settings); + } catch (\Exception $e) { + $this->clearCompilerCaches(); + throw $e; + } + } + } + } + + return null; + } + + /** + * @param string $extension + * @return array + */ + protected function getVariablesFromConstants(string $extension): array + { + $constants = $this->getConstants(); + $extension = strtolower($extension); + $variables = []; + + // Fetch Google Font + $variables['google-webfont'] = 'sans-serif'; + if (isset($constants['page.theme.googleFont.enable']) + && (bool) $constants['page.theme.googleFont.enable'] + && isset($constants['page.theme.googleFont.font']) + && $constants['page.theme.googleFont.font'] !== '' + ) { + $variables['google-webfont'] = $constants['page.theme.googleFont.font']; + } + + // Fetch settings + $prefix = 'plugin.bootstrap_package.settings.' . $extension . '.'; + foreach ($constants as $constant => $value) { + if (strpos($constant, $prefix) === 0) { + $variables[substr($constant, strlen($prefix))] = $value; + } + } + + return $variables; + } + + /** + * @return array + */ + protected function getConstants(): array + { + if ($GLOBALS['TSFE']->tmpl->flatSetup === null + || !is_array($GLOBALS['TSFE']->tmpl->flatSetup) + || count($GLOBALS['TSFE']->tmpl->flatSetup) === 0) { + $GLOBALS['TSFE']->tmpl->generateConfig(); + } + return $GLOBALS['TSFE']->tmpl->flatSetup; + } + + /** + * Clear all caches for the compiler. + */ + protected function clearCompilerCaches(): void + { + GeneralUtility::rmdir(Environment::getPublicPath() . '/' . $this->tempDirectory, true); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Service/GoogleFontService.php b/public/typo3conf/ext/bootstrap_package/Classes/Service/GoogleFontService.php new file mode 100644 index 0000000..986e6f5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Service/GoogleFontService.php @@ -0,0 +1,157 @@ +supports($file)) { + return null; + } + if ($this->isCached($file)) { + return $this->getCssFileCacheName($file); + } + return $this->cacheFile($file) ? $this->getCssFileCacheName($file) : null; + } + + /** + * @param string $file + * @return bool + */ + protected function cacheFile(string $file): bool + { + /** @var RequestFactory */ + $requestFactory = GeneralUtility::makeInstance(RequestFactory::class); + + /** @var ResponseInterface */ + $response = $requestFactory->request($file, 'GET', [ + 'headers' => ['User-Agent' => 'Mozilla/5.0 Gecko/20100101 Firefox/94.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55'] + ]); + + if ($response->getStatusCode() >= 300) { + return false; + } else { + $content = $response->getBody()->getContents(); + } + + // Ensure cache directory exists + GeneralUtility::mkdir_deep($this->tempDirectory . '/' . $this->getCacheIdentifier($file)); + + // Find and Download font files + $pattern = '%url\((.*?)\)%'; + preg_match_all($pattern, $content, $matches, PREG_SET_ORDER); + $fontFiles = []; + foreach ($matches as $match) { + $fontFiles[$match[1]] = $match[1]; + } + foreach ($fontFiles as $fontFile) { + $localFontFile = $this->getCacheDirectory($file) . '/' . basename($fontFile); + /** @var ResponseInterface */ + $response = $requestFactory->request($fontFile); + if ($response->getStatusCode() >= 300) { + continue; + } else { + $fontFileContent = $response->getBody()->getContents(); + } + file_put_contents($localFontFile, $fontFileContent); + GeneralUtility::fixPermissions($localFontFile); + $content = str_replace($fontFile, basename($fontFile), $content); + } + + // Save CSS File + $cacheFile = $this->getCacheDirectory($file) . '/' . 'webfont.css'; + file_put_contents(GeneralUtility::getFileAbsFileName($cacheFile), $content); + GeneralUtility::fixPermissions($cacheFile); + + return true; + } + + /** + * @param string $file + * @return bool + */ + protected function supports(string $file): bool + { + return (bool) strpos($file, $this->googleFontApiUrl); + } + + /** + * @param string $file + * @return bool + */ + protected function isCached(string $file): bool + { + $cacheFile = $this->getCssFileCacheName($file); + $absoluteFile = GeneralUtility::getFileAbsFileName($cacheFile); + + if (!file_exists($absoluteFile)) { + return false; + } + + // Discard cache after 24 hours + if ((time() - (int) filemtime($absoluteFile)) > 86400) { + GeneralUtility::rmdir($this->getCacheDirectory($file)); + return false; + } + + return true; + } + + /** + * @param string $file + * @return string + */ + protected function getCssFileCacheName(string $file): string + { + return $this->getCacheDirectory($file) . '/' . 'webfont.css'; + } + + /** + * @param string $file + * @return string + */ + protected function getCacheDirectory(string $file): string + { + return $this->tempDirectory . '/' . $this->getCacheIdentifier($file); + } + + /** + * @param string $file + * @return string + */ + protected function getCacheIdentifier(string $file): string + { + return hash('sha256', $file); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Service/IconService.php b/public/typo3conf/ext/bootstrap_package/Classes/Service/IconService.php new file mode 100644 index 0000000..50f49de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Service/IconService.php @@ -0,0 +1,88 @@ +getIconProviders(); + foreach ($iconProviders as $iconProvider) { + $iconSets[] = [ + $iconProvider->getName(), + $iconProvider->getIdentifier() + ]; + } + + $configuration['items'] = $iconSets; + } + + public function getIconItems(array &$configuration): void + { + $iconItems = []; + $iconItems[] = [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.none', + 0, + 'EXT:bootstrap_package/Resources/Public/Images/Icons/none.svg' + ]; + + $iconSetField = $configuration['config']['itemsProcConfig']['iconSetField'] ?? 'icon_set'; + $iconProviderIdentifier = $configuration['row'][$iconSetField][0] ?? ''; + $iconProvider = $this->getIconProviderForIdentifier($iconProviderIdentifier); + if ($iconProvider !== null) { + $icons = $iconProvider->getIconList()->getIcons(); + foreach ($icons as $icon) { + $iconItems[] = [ + $icon->getName(), + $icon->getIdentifier(), + $icon->getPreviewImage() + ]; + } + } + + $configuration['items'] = $iconItems; + } + + public function getIconProviderForIdentifier(string $identifier): ?IconProviderInterface + { + $iconProviders = $this->getIconProviders(); + foreach ($iconProviders as $iconProvider) { + if ($iconProvider->supports($identifier)) { + return $iconProvider; + } + } + return null; + } + + public function getIconProviders(): array + { + $iconProviders = []; + + if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/icons']['provider']) + && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/icons']['provider']) + ) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/bootstrap-package/icons']['provider'] as $className) { + $iconProviders[] = GeneralUtility::makeInstance($className); + } + } + + return $iconProviders; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/AbstractUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AbstractUpdate.php new file mode 100644 index 0000000..c3f1b5c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AbstractUpdate.php @@ -0,0 +1,173 @@ +title; + } + + public function getDescription(): string + { + return $this->description; + } + + public function getPrerequisites(): array + { + return [ + DatabaseUpdatedPrerequisite::class + ]; + } + + protected function getConnection(): Connection + { + if ($this->connection === null) { + $this->connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($this->table); + } + + return $this->connection; + } + + protected function createQueryBuilder(): QueryBuilder + { + $queryBuilder = $this->getConnection()->createQueryBuilder(); + $queryBuilder->getRestrictions()->removeAll(); + + return $queryBuilder; + } + + protected function tableHasColumn(string $column): bool + { + /** @phpstan-ignore-next-line */ + if (method_exists($this->getConnection(), 'createSchemaManager')) { + $schemaManager = $this->getConnection()->createSchemaManager(); + } else { + $schemaManager = $this->getConnection()->getSchemaManager(); + } + $tableColumns = $schemaManager->listTableColumns($this->table); + + if (array_key_exists($column, $tableColumns)) { + return true; + } + + return false; + } + + protected function createCreaterThanCriteria(QueryBuilder $queryBuilder, string $field, int $value): CreaterThanCriteria + { + return (new CreaterThanCriteria($queryBuilder, $field)) + ->setValue($value); + } + + protected function createEqualStringCriteria(QueryBuilder $queryBuilder, string $field, string $value): EqualStringCriteria + { + return (new EqualStringCriteria($queryBuilder, $field)) + ->setValue($value); + } + + protected function createInCriteria(QueryBuilder $queryBuilder, string $field, array $values): InCriteria + { + return (new InCriteria($queryBuilder, $field)) + ->setValues($values); + } + + protected function createLikeCriteria(QueryBuilder $queryBuilder, string $field, string $value): LikeCriteria + { + return (new LikeCriteria($queryBuilder, $field)) + ->setValue($value); + } + + protected function getRecordsByCriteria(QueryBuilder $queryBuilder, array $criteria, string $condition = self::CONDITION_AND): array + { + $queryBuilder->select('*'); + $queryBuilder->from($this->table); + if ($condition === self::CONDITION_AND) { + $queryBuilder->where(...$criteria); + } else { + $queryBuilder->orWhere(...$criteria); + } + + /** @phpstan-ignore-next-line */ + if (method_exists($queryBuilder, 'executeQuery')) { + $result = $queryBuilder->executeQuery(); + } else { + /** @var Result $result */ + /** @phpstan-ignore-next-line */ + $result = $queryBuilder->execute(); + } + + /** @phpstan-ignore-next-line */ + if (method_exists($result, 'fetchAllAssociative')) { + return $result->fetchAllAssociative(); /** @phpstan-ignore-line */ + } + + return $result->fetchAll(\PDO::FETCH_ASSOC); /** @phpstan-ignore-line */ + } + + protected function updateRecord(int $uid, array $values): void + { + $queryBuilder = $this->createQueryBuilder(); + $queryBuilder->update($this->table) + ->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT))); + + foreach ($values as $field => $value) { + $queryBuilder->set($field, $value); + } + + /** @phpstan-ignore-next-line */ + if (method_exists($queryBuilder, 'executeStatement')) { + $queryBuilder->executeStatement(); + } else { + $queryBuilder->execute(); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionContentElementUpdate.php new file mode 100644 index 0000000..e98f1ed --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionContentElementUpdate.php @@ -0,0 +1,60 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_accordion')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_accordion')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => 'accordion'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionMediaOrientUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionMediaOrientUpdate.php new file mode 100644 index 0000000..342f6d7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/AccordionMediaOrientUpdate.php @@ -0,0 +1,78 @@ + 'left', + 1 => 'right' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + if (null !== $newValue = $this->mapValues(intval($record[$this->field]))) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => $newValue] + ); + } + } + + return true; + } + + protected function mapValues(int $value): ?string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/BackendLayoutUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/BackendLayoutUpdate.php new file mode 100644 index 0000000..8594682 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/BackendLayoutUpdate.php @@ -0,0 +1,89 @@ + 'pagets__simple', + 'pagets__default_clean' => 'pagets__simple', + 'pagets__default_2_columns' => 'pagets__2_columns', + 'pagets__default_2_columns_25_75' => 'pagets__2_columns_25_75', + 'pagets__default_2_columns_50_50' => 'pagets__2_columns_50_50', + 'pagets__default_2_columns_offset_right' => 'pagets__2_columns_offset_right', + 'pagets__default_3_columns' => 'pagets__3_columns', + 'pagets__default_subnavigation_right' => 'pagets__subnavigation_right', + 'pagets__default_subnavigation_right_2_columns' => 'pagets__subnavigation_right_2_columns', + 'pagets__default_subnavigation_left' => 'pagets__subnavigation_left', + 'pagets__default_subnavigation_left_2_columns' => 'pagets__subnavigation_left_2_columns' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [ + $this->createInCriteria($queryBuilder, 'backend_layout', array_keys($this->mapping)), + $this->createInCriteria($queryBuilder, 'backend_layout_next_level', array_keys($this->mapping)), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria, AbstractUpdate::CONDITION_OR); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [ + $this->createInCriteria($queryBuilder, 'backend_layout', array_keys($this->mapping)), + $this->createInCriteria($queryBuilder, 'backend_layout_next_level', array_keys($this->mapping)), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria, AbstractUpdate::CONDITION_OR); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'backend_layout' => $this->mapValues(strval($record['backend_layout'])), + 'backend_layout_next_level' => $this->mapValues(strval($record['backend_layout_next_level'])) + ] + ); + } + + return true; + } + + protected function mapValues(string $value): string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return $value; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/BulletContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/BulletContentElementUpdate.php new file mode 100644 index 0000000..52f2735 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/BulletContentElementUpdate.php @@ -0,0 +1,75 @@ +createQueryBuilder(); + $criteria = [ + $this->createEqualStringCriteria($queryBuilder, 'CType', 'bullets'), + $this->createInCriteria($queryBuilder, 'layout', [100, 110, 120, 130]), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [ + $this->createEqualStringCriteria($queryBuilder, 'CType', 'bullets'), + $this->createInCriteria($queryBuilder, 'layout', [100, 110, 120, 130]), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'layout' => (string) 0, + 'bullets_type' => (string) $this->mapValues(intval($record['layout'])) + ] + ); + } + + return true; + } + + protected function mapValues(int $layout): int + { + $mapping = [ + 110 => 1 + ]; + if (array_key_exists($layout, $mapping)) { + return $mapping[$layout]; + } + return 0; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselContentElementUpdate.php new file mode 100644 index 0000000..6d48781 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselContentElementUpdate.php @@ -0,0 +1,78 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'CType', 'bootstrap_package_carousel')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'CType', 'bootstrap_package_carousel')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'layout' => $this->resetLayout(intval($record['layout'])), + 'CType' => $this->mapValues(intval($record['layout'])) + ] + ); + } + + return true; + } + + protected function resetLayout(int $layout): string + { + if (in_array($layout, [100, 110, 120], true)) { + return '0'; + } + return (string)$layout; + } + + protected function mapValues(int $layout): string + { + $mapping = [ + 110 => 'carousel_small', + 120 => 'carousel_fullscreen' + ]; + if (array_key_exists($layout, $mapping)) { + return $mapping[$layout]; + } + return 'carousel'; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemLayoutUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemLayoutUpdate.php new file mode 100644 index 0000000..2c73911 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemLayoutUpdate.php @@ -0,0 +1,55 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'layout', '')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'layout', '')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + ['layout' => 'custom'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemTypeUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemTypeUpdate.php new file mode 100644 index 0000000..d4893aa --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/CarouselItemTypeUpdate.php @@ -0,0 +1,67 @@ +createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, 'item_type', ['textandimage', 'backgroundimage'])]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, 'item_type', ['textandimage', 'backgroundimage'])]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + ['item_type' => $this->mapValues(strval($record['item_type']))] + ); + } + + return true; + } + + protected function mapValues(string $type): string + { + $mapping = [ + 'textandimage' => 'text_and_image', + 'backgroundimage' => 'background_image' + ]; + if (array_key_exists($type, $mapping)) { + return $mapping[$type]; + } + return 'header'; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/AbstractCriteria.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/AbstractCriteria.php new file mode 100644 index 0000000..c83e33e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/AbstractCriteria.php @@ -0,0 +1,37 @@ +queryBuilder = $queryBuilder; + $this->field = $field; + } + + public function getField(): string + { + return $this->field; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CreaterThanCriteria.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CreaterThanCriteria.php new file mode 100644 index 0000000..69c40d8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CreaterThanCriteria.php @@ -0,0 +1,38 @@ +value = $value; + return $this; + } + + public function getValue(): int + { + return $this->value; + } + + public function __toString(): string + { + return $this->queryBuilder->expr()->gt( + $this->getField(), + $this->getValue() + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CriteriaInterface.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CriteriaInterface.php new file mode 100644 index 0000000..5691cbb --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/CriteriaInterface.php @@ -0,0 +1,16 @@ +value = $value; + return $this; + } + + public function getValue(): string + { + return $this->value; + } + + public function __toString(): string + { + return $this->queryBuilder->expr()->eq( + $this->getField(), + $this->queryBuilder->createNamedParameter( + $this->getValue(), + Connection::PARAM_STR + ) + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/InCriteria.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/InCriteria.php new file mode 100644 index 0000000..edd3b89 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/InCriteria.php @@ -0,0 +1,43 @@ +values = $values; + return $this; + } + + public function getValues(): array + { + return $this->values; + } + + public function __toString(): string + { + return $this->queryBuilder->expr()->in( + $this->getField(), + $this->queryBuilder->createNamedParameter( + $this->getValues(), + Connection::PARAM_STR_ARRAY + ) + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/LikeCriteria.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/LikeCriteria.php new file mode 100644 index 0000000..ba44def --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/Criteria/LikeCriteria.php @@ -0,0 +1,38 @@ +value = $value; + return $this; + } + + public function getValue(): string + { + return $this->value; + } + + public function __toString(): string + { + return $this->queryBuilder->expr()->like( + $this->getField(), + $this->queryBuilder->expr()->literal($this->getValue()) + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/ExternalMediaContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/ExternalMediaContentElementUpdate.php new file mode 100644 index 0000000..be850d8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/ExternalMediaContentElementUpdate.php @@ -0,0 +1,60 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_external_media')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_external_media')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => 'external_media'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassToBackgroundUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassToBackgroundUpdate.php new file mode 100644 index 0000000..2b9b184 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassToBackgroundUpdate.php @@ -0,0 +1,81 @@ + 'light', + 'jumbotron' => 'primary' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + if (null !== $newValue = $this->mapValues(strval($record[$this->field]))) { + $this->updateRecord( + (int) $record['uid'], + [ + $this->field => 'default', + 'background_color_class' => $newValue + ] + ); + } + } + + return true; + } + + protected function mapValues(string $value): ?string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassUpdate.php new file mode 100644 index 0000000..ba5bd03 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/FrameClassUpdate.php @@ -0,0 +1,81 @@ +tableHasColumn('section_frame')) { + return false; + } + + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createCreaterThanCriteria($queryBuilder, 'section_frame', 0)]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createCreaterThanCriteria($queryBuilder, 'section_frame', 0)]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'section_frame' => '0', + 'frame_class' => $this->mapSectionFrame(intval($record['section_frame'])) + ] + ); + } + + return true; + } + + protected function mapSectionFrame(int $sectionFrame): string + { + $mapping = [ + 0 => 'default', + 5 => 'ruler-before', + 6 => 'ruler-after', + 10 => 'indent', + 11 => 'indent-left', + 12 => 'indent-right', + 20 => 'well', + 21 => 'jumbotron', + 66 => 'none' + ]; + if (array_key_exists($sectionFrame, $mapping)) { + return $mapping[$sectionFrame]; + } + return 'custom-' . $sectionFrame; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/ListGroupContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/ListGroupContentElementUpdate.php new file mode 100644 index 0000000..f80f4ec --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/ListGroupContentElementUpdate.php @@ -0,0 +1,60 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_listgroup')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_listgroup')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => 'listgroup'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/PanelContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/PanelContentElementUpdate.php new file mode 100644 index 0000000..491838a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/PanelContentElementUpdate.php @@ -0,0 +1,74 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'CType', 'bootstrap_package_panel')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, 'CType', 'bootstrap_package_panel')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'CType' => 'panel', + 'layout' => '0', + 'panel_class' => $this->mapValues(intval($record['layout'])) + ] + ); + } + + return true; + } + + protected function mapValues(int $layout): string + { + $mapping = [ + 110 => 'primary', + 120 => 'success', + 130 => 'info', + 140 => 'warning', + 150 => 'danger', + ]; + if (array_key_exists($layout, $mapping)) { + return $mapping[$layout]; + } + return 'default'; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabContentElementUpdate.php new file mode 100644 index 0000000..76b7638 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabContentElementUpdate.php @@ -0,0 +1,60 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_tab')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_tab')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => 'tab'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabMediaOrientUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabMediaOrientUpdate.php new file mode 100644 index 0000000..8cec8a8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TabMediaOrientUpdate.php @@ -0,0 +1,78 @@ + 'left', + 1 => 'right' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + if (null !== $newValue = $this->mapValues(intval($record[$this->field]))) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => $newValue] + ); + } + } + + return true; + } + + protected function mapValues(int $value): ?string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TableContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TableContentElementUpdate.php new file mode 100644 index 0000000..52d696b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TableContentElementUpdate.php @@ -0,0 +1,77 @@ +createQueryBuilder(); + $criteria = [ + $this->createEqualStringCriteria($queryBuilder, 'CType', 'table'), + $this->createInCriteria($queryBuilder, 'layout', [100, 110, 120, 130, 140, 150]), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [ + $this->createEqualStringCriteria($queryBuilder, 'CType', 'table'), + $this->createInCriteria($queryBuilder, 'layout', [100, 110, 120, 130, 140, 150]), + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [ + 'layout' => '0', + 'table_class' => $this->mapValues(intval($record['layout'])) + ] + ); + } + + return true; + } + + protected function mapValues(int $layout): string + { + $mapping = [ + 100 => '', + 110 => '', + 120 => 'striped', + 130 => 'bordered', + 140 => 'hover', + 150 => 'condensed', + ]; + return $mapping[$layout]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonContentElementUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonContentElementUpdate.php new file mode 100644 index 0000000..eb37718 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonContentElementUpdate.php @@ -0,0 +1,60 @@ +createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_texticon')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createEqualStringCriteria($queryBuilder, $this->field, 'bootstrap_package_texticon')]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => 'texticon'] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonIconUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonIconUpdate.php new file mode 100644 index 0000000..de3b77b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonIconUpdate.php @@ -0,0 +1,65 @@ +createQueryBuilder(); + $criteria = [ + $this->createLikeCriteria($queryBuilder, 'icon', 'Glyphicons%'), + $this->createLikeCriteria($queryBuilder, 'icon', 'Ionicons%') + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria, AbstractUpdate::CONDITION_OR); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [ + $this->createLikeCriteria($queryBuilder, 'icon', 'Glyphicons%'), + $this->createLikeCriteria($queryBuilder, 'icon', 'Ionicons%') + ]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria, AbstractUpdate::CONDITION_OR); + + foreach ($records as $record) { + $icon = explode('__', strval($record['icon'])); + $this->updateRecord( + (int) $record['uid'], + [ + 'icon' => 'EXT:bootstrap_package/Resources/Public/Images/Icons/' . $icon[0] . '/' . $icon[1] . '.svg', + 'icon_set' => 'EXT:bootstrap_package/Resources/Public/Images/Icons/' . $icon[0] . '/', + ] + ); + } + + return true; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonSizeUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonSizeUpdate.php new file mode 100644 index 0000000..e55219c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonSizeUpdate.php @@ -0,0 +1,80 @@ + 'default', + 1 => 'medium', + 2 => 'large', + 3 => 'awesome' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + if (null !== $newValue = $this->mapValues(intval($record[$this->field]))) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => $newValue] + ); + } + } + + return true; + } + + protected function mapValues(int $value): ?string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonTypeUpdate.php b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonTypeUpdate.php new file mode 100644 index 0000000..7bdcbc1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Updates/TexticonTypeUpdate.php @@ -0,0 +1,79 @@ + 'default', + 1 => 'square', + 2 => 'circle' + ]; + + public function updateNecessary(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + return (bool) count($records); + } + + public function executeUpdate(): bool + { + $queryBuilder = $this->createQueryBuilder(); + $criteria = [$this->createInCriteria($queryBuilder, $this->field, array_keys($this->mapping))]; + $records = $this->getRecordsByCriteria($queryBuilder, $criteria); + + foreach ($records as $record) { + if (null !== $newValue = $this->mapValues(intval($record[$this->field]))) { + $this->updateRecord( + (int) $record['uid'], + [$this->field => $newValue] + ); + } + } + + return true; + } + + protected function mapValues(int $value): ?string + { + if (array_key_exists($value, $this->mapping)) { + return $this->mapping[$value]; + } + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Userfuncs/Tca.php b/public/typo3conf/ext/bootstrap_package/Classes/Userfuncs/Tca.php new file mode 100644 index 0000000..b352b2b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Userfuncs/Tca.php @@ -0,0 +1,21 @@ +setProtocolToHttps($url); + // Get method + $method = $this->getMethod($url); + if ($method !== null) { + $embedUrl = $this->{$method}($url); + if ($embedUrl !== null) { + return ''; + } + } + return null; + } + + /** + * Resolves if possible a method name to process the url + * + * @param string $url + * @return string|null + */ + protected function getMethod(string $url): ?string + { + $urlInformation = @parse_url($url); + if (is_array($urlInformation) && isset($urlInformation['host'])) { + $hostName = GeneralUtility::trimExplode('.', $urlInformation['host'], true); + foreach ($this->mediaProvider as $provider) { + $functionName = 'process' . ucfirst($provider); + if (in_array($provider, $hostName, true) && is_callable([$this, $functionName])) { + return $functionName; + } + } + } + return null; + } + + /** + * Processes YouTube url + * + * @param string $url + * @return string|null + */ + protected function processYoutube(string $url): ?string + { + $firstMatches = []; + $pattern = '%^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=))([^"&?/ ]{11})(?:.+)?$%xs'; + if ((bool) preg_match($pattern, $url, $firstMatches)) { + $toEmbed = $firstMatches[1]; + $patternForAdditionalParams = '%^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=))(?:[^"&?\/ ]{11})(.+)?(?:.+)?$%xs'; + $secondMatches = []; + if (preg_match($patternForAdditionalParams, $url, $secondMatches) > 1) { + $toEmbed .= '?' . substr($secondMatches[1], 1); + } + return 'https://www.youtube-nocookie.com/embed/' . $toEmbed; + } + return null; + } + + /** + * Process YouTube short url + * + * @param string $url + * @return string|null + */ + protected function processYoutu(string $url): ?string + { + return $this->processYoutube($url); + } + + /** + * Processes Vimeo url + * + * @param string $url + * @return string + */ + protected function processVimeo(string $url): ?string + { + $matches = []; + if ((bool) preg_match('/[\\/#](\\d+)$/', $url, $matches)) { + return 'https://player.vimeo.com/video/' . $matches[1]; + } + return null; + } + + /** + * Change every protocol to https and add it if missing + * + * @param string $url URL + * @return string + */ + protected function setProtocolToHttps(string $url): string + { + $processUrl = trim($url); + if (strpos($url, 'http://') === 0) { + $processUrl = substr($processUrl, 7); + } elseif (strpos($processUrl, 'https://') === 0) { + $processUrl = substr($processUrl, 8); + } elseif (strpos($processUrl, '//') === 0) { + $processUrl = substr($processUrl, 2); + } + return 'https://' . $processUrl; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Utility/ImageVariantsUtility.php b/public/typo3conf/ext/bootstrap_package/Classes/Utility/ImageVariantsUtility.php new file mode 100644 index 0000000..15c3008 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Utility/ImageVariantsUtility.php @@ -0,0 +1,246 @@ + [ + 'breakpoint' => 1400, + 'width' => 1280 + ], + 'xlarge' => [ + 'breakpoint' => 1200, + 'width' => 1100 + ], + 'large' => [ + 'breakpoint' => 992, + 'width' => 920 + ], + 'medium' => [ + 'breakpoint' => 768, + 'width' => 680 + ], + 'small' => [ + 'breakpoint' => 576, + 'width' => 500 + ], + 'extrasmall' => [ + 'width' => 374 + ] + ]; + + /** + * @param array|null $variants + * @param array|null $multiplier + * @param array|null $gutters + * @param array|null $corrections + * @param float|null $aspectRatio + * @return array + */ + public static function getImageVariants(?array $variants = null, ?array $multiplier = null, ?array $gutters = null, ?array $corrections = null, ?float $aspectRatio = null): array + { + $variants = $variants !== null ? $variants : []; + $variants = self::processVariants($variants); + $variants = self::processResolutions($variants); + if ($gutters !== null) { + $variants = self::removeGutters($variants, $gutters); + } + if ($multiplier !== null) { + $variants = self::processMultiplier($variants, $multiplier); + } + if ($corrections !== null) { + $variants = self::processCorrections($variants, $corrections); + } + if ($aspectRatio !== null) { + $variants = self::processAspectRatio($variants, $aspectRatio); + } + return $variants; + } + + /** + * @param array $variants + * @return array + */ + protected static function processResolutions(array $variants): array + { + foreach ($variants as $variant => $properties) { + if (!array_key_exists('sizes', $properties)) { + $properties['sizes'] = []; + } + $properties['sizes'] = self::processSizes($properties['sizes']); + $variants[$variant] = $properties; + } + return $variants; + } + + /** + * @param array $sizes + * @return array + */ + protected static function processSizes(array $sizes): array + { + $resultSizes = []; + $workingSizes = []; + foreach ($sizes as $key => $settings) { + if (!array_key_exists('multiplier', $settings) || + !is_numeric($settings['multiplier']) || + $settings['multiplier'] < 1 || + !self::isValidSizeKey($key) + ) { + continue; + } + $settings['multiplier'] = gettype($settings['multiplier']) === 'double' ? $settings['multiplier'] : (int) $settings['multiplier']; + $workingSizes[substr($key, 0, -1) . ''] = [ + 'multiplier' => 1 * $settings['multiplier'], + ]; + } + + if (!isset($workingSizes['1'])) { + $workingSizes['1'] = ['multiplier' => 1]; + } + ksort($workingSizes); + foreach ($workingSizes as $workingKey => $workingSettings) { + $resultSizes[$workingKey . 'x'] = $workingSettings; + } + + return $resultSizes; + } + + /** + * @param array $variants + * @return array + */ + protected static function processVariants(array $variants): array + { + $variants = count($variants) > 0 ? $variants : self::$defaultVariants; + foreach ($variants as $variant => $properties) { + if (!is_array($properties)) { + unset($variants[$variant]); + continue; + } + foreach ($properties as $key => $value) { + if (!in_array($key, self::$allowedVariantProperties, true)) { + unset($variants[$variant][$key]); + continue; + } + if ($key === 'sizes') { + continue; + } elseif ($key === 'aspectRatio') { + if (is_numeric($value) && $value > 0) { + $variants[$variant][$key] = (float) $value; + } else { + unset($variants[$variant][$key]); + } + } elseif (is_numeric($value) && $value > 0) { + $variants[$variant][$key] = (int) $value; + } else { + unset($variants[$variant][$key]); + } + } + if (count($variants[$variant]) === 0 || !isset($variants[$variant]['width'])) { + unset($variants[$variant]); + } + } + return $variants; + } + + /** + * @param array $variants + * @param array $gutters + * @return array + */ + protected static function removeGutters(array $variants, array $gutters): array + { + foreach ($gutters as $variant => $value) { + if (is_numeric($value) && $value > 0 && isset($variants[$variant]['width'])) { + $variants[$variant]['width'] = (int) ceil($variants[$variant]['width'] - (float) $value); + } + } + return $variants; + } + + /** + * @param array $variants + * @param array $multiplier + * @return array + */ + protected static function processMultiplier(array $variants, array $multiplier): array + { + foreach ($multiplier as $variant => $value) { + if (is_numeric($value) && $value > 0 && isset($variants[$variant]['width'])) { + $variants[$variant]['width'] = (int) ceil($variants[$variant]['width'] * (float) $value); + } + } + return $variants; + } + + /** + * @param array $variants + * @param array $corrections + * @return array + */ + protected static function processCorrections(array $variants, array $corrections): array + { + foreach ($corrections as $variant => $value) { + if (is_numeric($value) && $value > 0 && isset($variants[$variant]['width'])) { + $variants[$variant]['width'] -= $value; + } + } + return $variants; + } + + /** + * @param array $variants + * @param float $aspectRatio + * @return array + */ + protected static function processAspectRatio(array $variants, float $aspectRatio): array + { + if ($aspectRatio > 0) { + foreach ($variants as $variant => $value) { + $variants[$variant]['aspectRatio'] = $aspectRatio; + } + } + return $variants; + } + + /** + * @param mixed $key + * @return bool + */ + public static function isValidSizeKey($key): bool + { + return !( + !is_string($key) || + substr($key, -1, 1) !== 'x' || + !is_numeric(substr($key, 0, -1)) || + (float) substr($key, 0, -1) < 1 || + (float) substr($key, 0, -1) !== round((float) substr($key, 0, -1), 1) + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/Utility/SvgUtility.php b/public/typo3conf/ext/bootstrap_package/Classes/Utility/SvgUtility.php new file mode 100644 index 0000000..5b53373 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/Utility/SvgUtility.php @@ -0,0 +1,128 @@ +getImage($src, $image, false); + if ($image->getProperty('extension') !== 'svg') { + return ''; + } + + $svgContent = $image->getContents(); + $svgContent = trim((string) preg_replace('/[\s\S]*?<\/script>/i', '', $svgContent)); + + // Exit if file does not contain content + if ($svgContent === '') { + return ''; + } + + // Disables the functionality to allow external entities to be loaded when parsing the XML, must be kept + $previousValueOfEntityLoader = false; + if (PHP_MAJOR_VERSION < 8) { + $previousValueOfEntityLoader = libxml_disable_entity_loader(true); + } + $svgElement = simplexml_load_string($svgContent); + if (PHP_MAJOR_VERSION < 8) { + libxml_disable_entity_loader($previousValueOfEntityLoader); + } + if (!$svgElement instanceof \SimpleXMLElement) { + return ''; + } + + // Override attributes + $class = htmlspecialchars($class ?? ''); + $svgElement = self::setAttribute($svgElement, 'class', $class); + $width = intval($width) > 0 ? (string) intval($width) : null; + $svgElement = self::setAttribute($svgElement, 'width', $width); + $height = intval($height) > 0 ? (string) intval($height) : null; + $svgElement = self::setAttribute($svgElement, 'height', $height); + + // remove xml version tag + $domXml = dom_import_simplexml($svgElement); + /** @phpstan-ignore-next-line */ + if (!$domXml instanceof \DOMElement || !$domXml->ownerDocument instanceof \DOMDocument) { + return ''; + } + + return (string) $domXml->ownerDocument->saveXML($domXml->ownerDocument->documentElement); + } catch (ResourceDoesNotExistException $e) { + // thrown if file does not exist + throw new \Exception($e->getMessage(), 1530601100, $e); + } catch (\UnexpectedValueException $e) { + // thrown if a file has been replaced with a folder + throw new \Exception($e->getMessage(), 1530601101, $e); + } catch (\RuntimeException $e) { + // RuntimeException thrown if a file is outside of a storage + throw new \Exception($e->getMessage(), 1530601102, $e); + } catch (\InvalidArgumentException $e) { + // thrown if file storage does not exist + throw new \Exception($e->getMessage(), 1530601103, $e); + } + } + + /** + * @param \SimpleXMLElement $element + * @param string $attribute + * @param string $value + */ + protected static function setAttribute(\SimpleXMLElement $element, string $attribute, ?string $value): \SimpleXMLElement + { + if ($value !== null) { + if (isset($element->attributes()->$attribute)) { + $element->attributes()->$attribute = $value; + } else { + $element->addAttribute($attribute, $value); + } + } + + return $element; + } + + /** + * Return an instance of ImageService using object manager + * + * @return ImageService + */ + protected static function getImageService(): ImageService + { + return GeneralUtility::makeInstance(ImageService::class); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageInfoViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageInfoViewHelper.php new file mode 100644 index 0000000..8bc2544 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageInfoViewHelper.php @@ -0,0 +1,82 @@ + + */ + protected static $supportedProperties = [ + 'width' => 0, + 'height' => 1, + 'type' => 3, + 'origFile' => 'origFile', + 'origFile_mtime' => 'origFile_mtime', + ]; + + /** + * Initialize arguments. + * + * @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception + * @return void + */ + public function initializeArguments() + { + $this->registerArgument('src', 'string', 'Path to a file'); + $this->registerArgument('property', 'string', 'Possible values: width, height, type, origFile, origFile_mtime'); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) + { + $src = $arguments['src']; + $property = $arguments['property']; + + if (!array_key_exists($property, self::$supportedProperties)) { + throw new \InvalidArgumentException('The value of property is invalid. Valid properties are: width, height, type, origFile or origFile_mtime'); + } + + $assetCollector = self::getAssetCollector(); + $mediaOnPage = $assetCollector->getMedia(); + + foreach ($mediaOnPage as $mediaName => $mediaData) { + if (strpos($src, $mediaName) !== false) { + return (string) $mediaData[self::$supportedProperties[$property]]; + } + } + + return ''; + } + + /** + * @return AssetCollector + */ + protected static function getAssetCollector(): AssetCollector + { + return GeneralUtility::makeInstance(AssetCollector::class); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageVariantsViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageVariantsViewHelper.php new file mode 100644 index 0000000..1685077 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/ImageVariantsViewHelper.php @@ -0,0 +1,53 @@ +registerArgument('as', 'string', 'Name of variable to create.', true); + $this->registerArgument('variants', 'array', 'Variants for responsive images.', false); + $this->registerArgument('multiplier', 'array', 'Multiplier to calculate responsive image widths.', false); + $this->registerArgument('gutters', 'array', 'Gutter that needs to be respected when calculating responsive image widths.', false); + $this->registerArgument('corrections', 'array', 'Corrections to be applied after calculation of image widths.', false); + $this->registerArgument('aspectRatio', 'float', 'Set aspect ratio for all variants.', false); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $variants = ImageVariantsUtility::getImageVariants($arguments['variants'], $arguments['multiplier'], $arguments['gutters'], $arguments['corrections'], $arguments['aspectRatio']); + $renderingContext->getVariableProvider()->add($arguments['as'], $variants); + return ''; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/PaginateViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/PaginateViewHelper.php new file mode 100644 index 0000000..7ba4b33 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Data/PaginateViewHelper.php @@ -0,0 +1,123 @@ +registerArgument('id', 'string', 'Identifier of the pagination', true); + $this->registerArgument('objects', 'mixed', 'Object', true); + $this->registerArgument('configuration', 'array', 'configuration', false, ['itemsPerPage' => 10, 'insertAbove' => false, 'insertBelow' => true]); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + * @throws \Exception + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $objects = $arguments['objects']; + if (!($objects instanceof QueryResultInterface || is_array($objects))) { + throw new \UnexpectedValueException('Supplied file object type ' . get_class($objects) . ' must be QueryResultInterface or be an array.', 1623322979); + } + + $configuration = [ + 'itemsPerPage' => 10, + 'insertAbove' => false, + 'insertBelow' => true, + 'section' => '' + ]; + ArrayUtility::mergeRecursiveWithOverrule($configuration, $arguments['configuration'], false); + $id = $arguments['id']; + $itemsPerPage = (int) $configuration['itemsPerPage']; + $currentPage = (int) (self::getRequest()->getQueryParams()['paginate'][$id]['page'] ?? 1); + + if ($objects instanceof QueryResultInterface) { + $paginator = new QueryResultPaginator($objects, $currentPage, $itemsPerPage); + } else { + $paginator = new ArrayPaginator($objects, $currentPage, $itemsPerPage); + } + $pagination = new SimplePagination($paginator); + + $paginationView = self::getPaginationTemplateObject(); + $paginationView->assignMultiple( + [ + 'id' => $id, + 'paginator' => $paginator, + 'pagination' => $pagination, + 'configuration' => $configuration + ] + ); + $paginationRendered = $paginationView->render(); + + $variableProvider = $renderingContext->getVariableProvider(); + $variableProvider->add('paginator', $paginator); + + $contents = []; + $contents[] = $configuration['insertAbove'] === true ? $paginationRendered : ''; + $contents[] = $renderChildrenClosure(); + $contents[] = $configuration['insertBelow'] === true ? $paginationRendered : ''; + + $variableProvider->remove('paginator'); + + return implode('', $contents); + } + + protected static function getPaginationTemplateObject(): StandaloneView + { + /** @var StandaloneView $view */ + $view = GeneralUtility::makeInstance(StandaloneView::class); + $view->setLayoutRootPaths([GeneralUtility::getFileAbsFileName('EXT:bootstrap_package/Resources/Private/Layouts')]); + $view->setPartialRootPaths([GeneralUtility::getFileAbsFileName('EXT:bootstrap_package/Resources/Private/Partials')]); + $view->setTemplateRootPaths([GeneralUtility::getFileAbsFileName('EXT:bootstrap_package/Resources/Private/Templates')]); + $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName('EXT:bootstrap_package/Resources/Private/Templates/ViewHelpers/Paginate/Index.html')); + + return $view; + } + + protected static function getRequest(): ServerRequestInterface + { + return $GLOBALS['TYPO3_REQUEST']; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExplodeViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExplodeViewHelper.php new file mode 100644 index 0000000..a1a66ba --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExplodeViewHelper.php @@ -0,0 +1,64 @@ +registerArgument('data', 'string', 'The input string', true); + $this->registerArgument('as', 'string', 'Name of variable to create', false, 'items'); + $this->registerArgument('delimiter', 'string', 'The boundary string', false, "\n"); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $content = ''; + if (isset($arguments['data'])) { + $variableProvider = $renderingContext->getVariableProvider(); + $items = GeneralUtility::trimExplode($arguments['delimiter'], $arguments['data']); + $variableProvider->add($arguments['as'], $items); + $content = $renderChildrenClosure(); + $variableProvider->remove($arguments['as']); + } + return $content; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExternalMediaViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExternalMediaViewHelper.php new file mode 100644 index 0000000..cc7d1b4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/ExternalMediaViewHelper.php @@ -0,0 +1,66 @@ +registerArgument('url', 'string', 'External media url'); + $this->registerArgument('class', 'string', 'CSS class rendered on the generated iframe code'); + } + + /** + * Checks if the URL is a valid YouTube/Vimeo Link is. If the video id can + * be extracted the embed code will be returned, else the content of the + * ViewHelper will be displayed. + * + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $variableProvider = $renderingContext->getVariableProvider(); + $externalMediaUtility = GeneralUtility::makeInstance(ExternalMediaUtility::class); + $externalMedia = $externalMediaUtility->getEmbedCode($arguments['url'], $arguments['class']); + $variableProvider->add('externalMedia', $externalMedia); + $content = $renderChildrenClosure(); + $variableProvider->remove('externalMedia'); + return $content; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/FalViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/FalViewHelper.php new file mode 100644 index 0000000..82e0d8d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/FalViewHelper.php @@ -0,0 +1,87 @@ +registerArgument('data', 'array', 'Data of current record', true); + $this->registerArgument('table', 'string', 'table', false, 'tt_content'); + $this->registerArgument('field', 'string', 'field', false, 'image'); + $this->registerArgument('as', 'string', 'Name of variable to create', false, 'items'); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $variableProvider = $renderingContext->getVariableProvider(); + if (is_array($arguments['data']) && $arguments['data']['uid'] && $arguments['data'][$arguments['field']]) { + $fileRepository = GeneralUtility::makeInstance(FileRepository::class); + $items = $fileRepository->findByRelation( + $arguments['table'], + $arguments['field'], + $arguments['data']['uid'] + ); + $localizedId = null; + if (isset($arguments['data']['_LOCALIZED_UID'])) { + $localizedId = $arguments['data']['_LOCALIZED_UID']; + } elseif (isset($arguments['data']['_PAGES_OVERLAY_UID'])) { + $localizedId = $arguments['data']['_PAGES_OVERLAY_UID']; + } + $isTableLocalizable = ( + isset($GLOBALS['TCA'][$arguments['table']]['ctrl']['languageField']) + && $GLOBALS['TCA'][$arguments['table']]['ctrl']['languageField'] !== '' + && isset($GLOBALS['TCA'][$arguments['table']]['ctrl']['transOrigPointerField']) + && $GLOBALS['TCA'][$arguments['table']]['ctrl']['transOrigPointerField'] !== '' + ); + if ($isTableLocalizable && $localizedId !== null) { + $items = $fileRepository->findByRelation($arguments['table'], $arguments['field'], $localizedId); + } + } else { + $items = null; + } + $variableProvider->add($arguments['as'], $items); + $content = $renderChildrenClosure(); + $variableProvider->remove($arguments['as']); + return $content; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsAudioViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsAudioViewHelper.php new file mode 100644 index 0000000..3e0d73f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsAudioViewHelper.php @@ -0,0 +1,50 @@ +getExtension(), $allowedFileExtensions, true) + || $file->getType() === File::FILETYPE_AUDIO + ) + ) { + return true; + } + + return false; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsImageViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsImageViewHelper.php new file mode 100644 index 0000000..7a2e436 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsImageViewHelper.php @@ -0,0 +1,50 @@ +getExtension(), $allowedFileExtensions, true) + || $file->getType() === File::FILETYPE_IMAGE + ) + ) { + return true; + } + + return false; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsMediaViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsMediaViewHelper.php new file mode 100644 index 0000000..196d0ce --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/File/IsMediaViewHelper.php @@ -0,0 +1,50 @@ +getExtension(), $allowedFileExtensions, true) + || $file->getType() === File::FILETYPE_VIDEO + ) + ) { + return true; + } + + return false; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/LowercaseDashedViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/LowercaseDashedViewHelper.php new file mode 100644 index 0000000..4bb8386 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Format/LowercaseDashedViewHelper.php @@ -0,0 +1,43 @@ +registerArgument('icon', 'object', 'Icon to render', true); + $this->registerArgument('height', 'int', 'Height'); + $this->registerArgument('width', 'int', 'Width'); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + * @throws \Exception + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $icon = $arguments['icon']; + + if (isset($arguments['width'])) { + $icon->setWidth((int) $arguments['width']); + } + if (isset($arguments['height'])) { + $icon->setHeight((int) $arguments['height']); + } + + return $icon->render(); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/InlineSvgViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/InlineSvgViewHelper.php new file mode 100644 index 0000000..53e845b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/InlineSvgViewHelper.php @@ -0,0 +1,65 @@ +registerArgument('image', 'object', 'a FAL object'); + $this->registerArgument('src', 'string', 'a path to a file'); + $this->registerArgument('class', 'string', 'Css class for the svg'); + $this->registerArgument('width', 'string', 'Width of the svg.', false); + $this->registerArgument('height', 'string', 'Height of the svg.', false); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + * @throws \Exception + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $src = (string)$arguments['src']; + $image = $arguments['image']; + $width = $arguments['width'] ? (int) $arguments['width'] : null; + $height = $arguments['height'] ? (int) $arguments['height'] : null; + $class = $arguments['class'] ? (string) $arguments['class'] : null; + + return SvgUtility::getInlineSvg($src, $image, $width, $height, $class); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/LightboxViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/LightboxViewHelper.php new file mode 100644 index 0000000..069ac49 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/LightboxViewHelper.php @@ -0,0 +1,106 @@ +registerUniversalTagAttributes(); + $this->registerTagAttribute('rel', 'string', 'Specifies the relationship between the current document and the linked document', false); + + $this->registerArgument('caption', 'string', 'Specifies an caption text', false); + + $this->registerArgument('image', 'object', 'image', true); + $this->registerArgument('crop', 'string|bool', 'overrule cropping of image (setting to FALSE disables the cropping set in FileReference)'); + $this->registerArgument('cropVariant', 'string', 'select a cropping variant, in case multiple croppings have been specified or stored in FileReference', false, 'default'); + $this->registerArgument('width', 'string', 'width of the image. This can be a numeric value representing the fixed width of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.'); + $this->registerArgument('height', 'string', 'height of the image. This can be a numeric value representing the fixed height of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.'); + $this->registerArgument('minWidth', 'int', 'minimum width of the image'); + $this->registerArgument('minHeight', 'int', 'minimum height of the image'); + $this->registerArgument('maxWidth', 'int', 'maximum width of the image'); + $this->registerArgument('maxHeight', 'int', 'maximum height of the image'); + $this->registerArgument('absolute', 'bool', 'Force absolute URL', false, false); + } + + public function render(): string + { + try { + $imageService = $this->getImageService(); + $image = $imageService->getImage('', $this->arguments['image'], false); + + $cropString = $this->arguments['crop']; + if ($cropString === null && $image->hasProperty('crop') && $image->getProperty('crop') !== '') { + $cropString = $image->getProperty('crop'); + } + + $cropVariantCollection = CropVariantCollection::create((string)$cropString); + $cropVariant = $this->arguments['cropVariant'] ?? 'default'; + $cropArea = $cropVariantCollection->getCropArea($cropVariant); + $processingInstructions = [ + 'width' => $this->arguments['width'], + 'height' => $this->arguments['height'], + 'minWidth' => $this->arguments['minWidth'], + 'minHeight' => $this->arguments['minHeight'], + 'maxWidth' => $this->arguments['maxWidth'], + 'maxHeight' => $this->arguments['maxHeight'], + 'crop' => $cropArea->isEmpty() ? null : $cropArea->makeAbsoluteBasedOnFile($image), + ]; + + $processedImage = $imageService->applyProcessingInstructions($image, $processingInstructions); + $imageUri = $imageService->getImageUri($processedImage, isset($this->arguments['absolute']) ? $this->arguments['absolute'] : false); + + $this->tag->addAttribute('href', $imageUri); + $this->tag->addAttribute('data-lightbox-width', $processedImage->getProperty('width')); + $this->tag->addAttribute('data-lightbox-height', $processedImage->getProperty('height')); + $this->tag->addAttribute('data-lightbox-caption', isset($this->arguments['caption']) ? $this->arguments['caption'] : null); + $this->tag->setContent($this->renderChildren()); + $this->tag->forceClosingTag(true); + } catch (ResourceDoesNotExistException $e) { + // thrown if file does not exist + throw new Exception($e->getMessage(), 1622197950, $e); + } catch (\UnexpectedValueException $e) { + // thrown if a file has been replaced with a folder + throw new Exception($e->getMessage(), 1622197951, $e); + } catch (\RuntimeException $e) { + // RuntimeException thrown if a file is outside of a storage + throw new Exception($e->getMessage(), 1622197952, $e); + } catch (\InvalidArgumentException $e) { + // thrown if file storage does not exist + throw new Exception($e->getMessage(), 1622197953, $e); + } + + return $this->tag->render(); + } + + /** + * @return ImageService + */ + protected function getImageService(): ImageService + { + return GeneralUtility::makeInstance(ImageService::class); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/PaginateViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/PaginateViewHelper.php new file mode 100644 index 0000000..812e469 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/Link/PaginateViewHelper.php @@ -0,0 +1,71 @@ +registerUniversalTagAttributes(); + + $this->registerArgument('paginationId', 'string', 'id', true); + $this->registerArgument('paginationPage', 'int', 'page', true); + } + + public function render(): string + { + $paginationId = (string) $this->arguments['paginationId']; + $paginationPage = (int) $this->arguments['paginationPage']; + $section = isset($this->arguments['section']) ? (string)$this->arguments['section'] : ''; + + $arguments = []; + if ($paginationPage > 1) { + $arguments['paginate'][$paginationId]['page'] = $paginationPage; + } + + if (method_exists($this->renderingContext, 'getUriBuilder')) { + /** @var UriBuilder $uriBuilder */ + $uriBuilder = $this->renderingContext->getUriBuilder(); + } elseif (method_exists($this->renderingContext, 'getControllerContext')) { + /** @var UriBuilder $uriBuilder */ + $uriBuilder = $this->renderingContext->getControllerContext()->getUriBuilder(); + } else { + return $this->renderChildren(); + } + + $uriBuilder->reset()->setArguments($arguments); + + $uri = $uriBuilder->build(); + if ($uri !== '') { + $this->tag->addAttribute('href', $uri); + $this->tag->setContent($this->renderChildren()); + $this->tag->forceClosingTag(true); + $result = $this->tag->render(); + } else { + $result = $this->renderChildren(); + } + + return $result; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/TypoScript/ConstantViewHelper.php b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/TypoScript/ConstantViewHelper.php new file mode 100644 index 0000000..c45e772 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Classes/ViewHelpers/TypoScript/ConstantViewHelper.php @@ -0,0 +1,64 @@ +registerArgument('constant', 'string', 'TypoScript constant'); + } + + /** + * @param array $arguments + * @param \Closure $renderChildrenClosure + * @param RenderingContextInterface $renderingContext + * @return string + */ + public static function renderStatic( + array $arguments, + \Closure $renderChildrenClosure, + RenderingContextInterface $renderingContext + ) { + $constant = trim($arguments['constant']); + if ($GLOBALS['TSFE']->tmpl->flatSetup === null + || !is_array($GLOBALS['TSFE']->tmpl->flatSetup) + || count($GLOBALS['TSFE']->tmpl->flatSetup) === 0) { + $GLOBALS['TSFE']->tmpl->generateConfig(); + } + if (!array_key_exists($constant, $GLOBALS['TSFE']->tmpl->flatSetup)) { + return ''; + } + + return $GLOBALS['TSFE']->tmpl->flatSetup[$constant]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/.htaccess b/public/typo3conf/ext/bootstrap_package/Configuration/.htaccess new file mode 100644 index 0000000..896fbc5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Deny from all \ No newline at end of file diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/ExpressionLanguage.php b/public/typo3conf/ext/bootstrap_package/Configuration/ExpressionLanguage.php new file mode 100644 index 0000000..a48a053 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/ExpressionLanguage.php @@ -0,0 +1,14 @@ + [ + \BK2K\BootstrapPackage\ExpressionLanguage\ConditionProvider::class, + ] +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Accordion.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Accordion.xml new file mode 100644 index 0000000..bcaea3f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Accordion.xml @@ -0,0 +1,36 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + tx_bootstrappackage_accordion_item + AND tx_bootstrappackage_accordion_item.tt_content = ###THIS_UID### + + + None + 0 + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/BackgroundImage.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/BackgroundImage.xml new file mode 100644 index 0000000..8f21500 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/BackgroundImage.xml @@ -0,0 +1,74 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + check + 0 + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.parallax.description + + + + + + + + + + check + 0 + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.fade.description + + + + + + + + + + select + selectSingle + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.filter.none + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.filter.blur + blur + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.filter.grayscale + grayscale + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.background_image.filter.sepia + sepia + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/CardGroup.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/CardGroup.xml new file mode 100644 index 0000000..045d043 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/CardGroup.xml @@ -0,0 +1,70 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.align.left + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.align.center + center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.align.right + right + + + + + + + + + + select + selectSingle + 2 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Carousel.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Carousel.xml new file mode 100644 index 0000000..f9347d1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Carousel.xml @@ -0,0 +1,79 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + input + 8 + 5000 + required,int + + + + + + + + select + selectSingle + fade + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.transition.fade + fade + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.transition.slide + slide + + + + + + + + + + check + 1 + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.wrap.description + + + + + + + + + + check + 0 + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.show_nav_title.description + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/IconGroup.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/IconGroup.xml new file mode 100644 index 0000000..3bef206 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/IconGroup.xml @@ -0,0 +1,110 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.align.left + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.align.center + center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.align.right + right + + + + + + + + + + select + selectSingle + auto + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.columns.auto + auto + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + + + + + + + + select + selectSingle + left-center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.left-top + left-top + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.left-center + left-center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.right-top + right-top + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.right-center + right-center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.above + above + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.icon_position.below + below + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuCard.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuCard.xml new file mode 100644 index 0000000..eb118e2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuCard.xml @@ -0,0 +1,70 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card.align.left + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card.align.center + center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card.align.right + right + + + + + + + + + + select + selectSingle + 2 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml new file mode 100644 index 0000000..02a86bf --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml @@ -0,0 +1,70 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail.align.left + left + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail.align.center + center + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail.align.right + right + + + + + + + + + + select + selectSingle + 2 + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Tab.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Tab.xml new file mode 100644 index 0000000..0f50ae4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Tab.xml @@ -0,0 +1,36 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + tx_bootstrappackage_tab_item + AND tx_bootstrappackage_tab_item.tt_content = ###THIS_UID### + + + + 0 + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Timeline.xml b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Timeline.xml new file mode 100644 index 0000000..21aca5b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/FlexForms/Timeline.xml @@ -0,0 +1,38 @@ + + + + 1 + + + + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:settings + + array + + + + + + select + selectSingle + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline.sorting.desc + date desc + + + LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline.sorting.asc + date asc + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/Form/Setup.yaml b/public/typo3conf/ext/bootstrap_package/Configuration/Form/Setup.yaml new file mode 100644 index 0000000..f2c5643 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/Form/Setup.yaml @@ -0,0 +1,25 @@ +TYPO3: + CMS: + Form: + persistenceManager: + allowedExtensionPaths: + 110: EXT:bootstrap_package/Resources/Private/Forms/ + prototypes: + standard: + formElementsDefinition: + Form: + renderingOptions: + translation: + translationFiles: + 110: 'EXT:bootstrap_package/Resources/Private/Language/locallang.xlf' + layoutRootPaths: + 20: 'EXT:bootstrap_package/Resources/Private/Layouts/Form/' + templateRootPaths: + 20: 'EXT:bootstrap_package/Resources/Private/Templates/Form/' + partialRootPaths: + 20: 'EXT:bootstrap_package/Resources/Private/Partials/Form/' + ImageUpload: + properties: + imageLinkMaxWidth: 1200 + imageMaxWidth: 200 + imageMaxHeight: 200 diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/RTE/Default.yaml b/public/typo3conf/ext/bootstrap_package/Configuration/RTE/Default.yaml new file mode 100644 index 0000000..4e5fb8b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/RTE/Default.yaml @@ -0,0 +1,151 @@ +imports: + - { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" } + - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" } + - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" } + +editor: + externalPlugins: + bootstrappackage_address: + resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js" + bootstrappackage_box: + resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js" + bootstrappackage_columns: + resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js" + bootstrappackage_indent: + resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js" + bootstrappackage_table: + resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Table/plugin.min.js" + + config: + contentsCss: "EXT:bootstrap_package/Resources/Public/Css/bootstrap5-rte.min.css" + + stylesSet: + - { name: "Lead", element: "p", attributes: { 'class': 'lead' } } + - { name: "Small", element: "small" } + + - { name: "Table", element: "table", attributes: { 'class': 'table' } } + - { name: "Table Striped", element: "table", attributes: { 'class': 'table table-striped' } } + - { name: "Table Bordered", element: "table", attributes: { 'class': 'table table-bordered' } } + - { name: "Table Condensed", element: "table", attributes: { 'class': 'table table-condensed' } } + + - { name: "Row Active", element: "tr", attributes: { 'class': 'table-active' } } + - { name: "Row Success", element: "tr", attributes: { 'class': 'table-success' } } + - { name: "Row Info", element: "tr", attributes: { 'class': 'table-info' } } + - { name: "Row Warning", element: "tr", attributes: { 'class': 'table-warning' } } + - { name: "Row Danger", element: "tr", attributes: { 'class': 'table-danger' } } + + - { name: "Cell Active", element: "td", attributes: { 'class': 'table-active' } } + - { name: "Cell Success", element: "td", attributes: { 'class': 'table-success' } } + - { name: "Cell Info", element: "td", attributes: { 'class': 'table-info' } } + - { name: "Cell Warning", element: "td", attributes: { 'class': 'table-warning' } } + - { name: "Cell Danger", element: "td", attributes: { 'class': 'table-danger' } } + + - { name: "Button Default", element: "a", attributes: { 'class': 'btn btn-default' } } + - { name: "Button Primary", element: "a", attributes: { 'class': 'btn btn-primary' } } + - { name: "Button Secondary", element: "a", attributes: { 'class': 'btn btn-secondary' } } + - { name: "Button Tertiary", element: "a", attributes: { 'class': 'btn btn-tertiary' } } + - { name: "Button Quaternary", element: "a", attributes: { 'class': 'btn btn-quaternary' } } + - { name: "Button Success", element: "a", attributes: { 'class': 'btn btn-success' } } + - { name: "Button Info", element: "a", attributes: { 'class': 'btn btn-info' } } + - { name: "Button Warning", element: "a", attributes: { 'class': 'btn btn-warning' } } + - { name: "Button Danger", element: "a", attributes: { 'class': 'btn btn-danger' } } + + - { name: "Button Outline Default", element: "a", attributes: { 'class': 'btn btn-outline-default' } } + - { name: "Button Outline Primary", element: "a", attributes: { 'class': 'btn btn-outline-primary' } } + - { name: "Button Outline Secondary", element: "a", attributes: { 'class': 'btn btn-outline-secondary' } } + - { name: "Button Outline Tertiary", element: "a", attributes: { 'class': 'btn btn-outline-tertiary' } } + - { name: "Button Outline Quaternary", element: "a", attributes: { 'class': 'btn btn-outline-quaternary' } } + - { name: "Button Outline Success", element: "a", attributes: { 'class': 'btn btn-outline-success' } } + - { name: "Button Outline Info", element: "a", attributes: { 'class': 'btn btn-outline-info' } } + - { name: "Button Outline Warning", element: "a", attributes: { 'class': 'btn btn-outline-warning' } } + - { name: "Button Outline Danger", element: "a", attributes: { 'class': 'btn btn-outline-danger' } } + + - { name: "Link Arrow", element: "a", attributes: { 'class': 'link-arrow' } } + - { name: "Link Chevron", element: "a", attributes: { 'class': 'link-chevron' } } + - { name: "Link Page", element: "a", attributes: { 'class': 'link-page' } } + - { name: "Link Folder", element: "a", attributes: { 'class': 'link-folder' } } + - { name: "Link File", element: "a", attributes: { 'class': 'link-file' } } + - { name: "Link External", element: "a", attributes: { 'class': 'link-external' } } + - { name: "Link Mail", element: "a", attributes: { 'class': 'link-mail' } } + - { name: "Link Globe", element: "a", attributes: { 'class': 'link-globe' } } + + - { name: "List Unstyled", element: "ul", attributes: { 'class': 'list-unstyled' } } + - { name: "List Inline", element: "ul", attributes: { 'class': 'list-inline' } } + - { name: "List Check", element: "ul", attributes: { 'class': 'list-check' } } + - { name: "List Info", element: "ul", attributes: { 'class': 'list-info' } } + - { name: "List Warning", element: "ul", attributes: { 'class': 'list-warning' } } + - { name: "List Ban", element: "ul", attributes: { 'class': 'list-ban' } } + - { name: "List Chevron", element: "ul", attributes: { 'class': 'list-chevron' } } + + - { name: "Lowercased text", element: "span", attributes: { 'class': 'text-lowercase' } } + - { name: "Uppercased text", element: "span", attributes: { 'class': 'text-uppercase' } } + - { name: "Capitalized text", element: "span", attributes: { 'class': 'text-capitalize' } } + - { name: "Muted", element: "span", attributes: { 'class': 'text-muted' } } + - { name: "Primary", element: "span", attributes: { 'class': 'text-primary' } } + - { name: "Secondary", element: "span", attributes: { 'class': 'text-secondary' } } + - { name: "Tertiary", element: "span", attributes: { 'class': 'text-tertiary' } } + - { name: "Quaternary", element: "span", attributes: { 'class': 'text-quaternary' } } + - { name: "Success", element: "span", attributes: { 'class': 'text-success' } } + - { name: "Info", element: "span", attributes: { 'class': 'text-info' } } + - { name: "Warning", element: "span", attributes: { 'class': 'text-warning' } } + - { name: "Danger", element: "span", attributes: { 'class': 'text-danger' } } + + toolbarGroups: + - { name: styles, groups: [ format, styles ] } + - { name: basicstyles, groups: [ basicstyles ] } + - { name: paragraph, groups: [ list, indent, blocks, align ] } + - "/" + - { name: links, groups: [ links ] } + - { name: clipboard, groups: [ clipboard, cleanup, undo ] } + - { name: editing, groups: [ spellchecker ] } + - { name: insert, groups: [ insert ] } + - { name: tools, groups: [ table, specialchar ] } + - { name: document, groups: [ mode ] } + + format_tags: "p;h1;h2;h3;h4;h5;pre" + + justifyClasses: + - text-left + - text-center + - text-right + - text-justify + + extraPlugins: + - justify + - autolink + - bootstrappackage_address + - bootstrappackage_box + - bootstrappackage_columns + - bootstrappackage_indent + - bootstrappackage_table + + removePlugins: + - image + + removeButtons: + - Anchor + - Underline + - Strike + +classesAnchor: + page: + class: 'link-page' + type: 'page' + folder: + class: 'link-folder' + type: 'folder' + file: + class: 'link-file' + type: 'file' + external: + class: 'link-external' + type: 'url' + mail: + class: 'link-mail' + type: 'mail' + +buttons: + link: + properties: + class: + allowedClasses: 'link-arrow, link-page, link-folder, link-file, link-external, link-mail' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/Services.yaml b/public/typo3conf/ext/bootstrap_package/Configuration/Services.yaml new file mode 100644 index 0000000..4902651 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/Services.yaml @@ -0,0 +1,11 @@ +services: + BK2K\BootstrapPackage\Service\BrandingService: + tags: + - name: event.listener + identifier: 'bk2k/bootstrap-package/set-backend-styling' + event: TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent + BK2K\BootstrapPackage\Backend\ToolbarItem\VersionToolbarItem: + tags: + - name: event.listener + identifier: 'bk2k/bootstrap-package/add-version-information' + event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/100_pages.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/100_pages.php new file mode 100644 index 0000000..5128f55 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/100_pages.php @@ -0,0 +1,186 @@ + [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_set', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconSetItems', + ], + ], + 'nav_icon_identifier' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon', + 'displayCond' => 'FIELD:nav_icon_set:REQ:true', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconItems', + 'itemsProcConfig' => [ + 'iconSetField' => 'nav_icon_set' + ], + 'fieldWizard' => [ + 'selectIcons' => [ + 'renderType' => 'iconWizard', + 'disabled' => false, + ], + ], + ], + ], + 'nav_icon' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:pages.nav_icon', + 'displayCond' => 'FIELD:nav_icon_set:REQ:false', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'nav_icon', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'maxitems' => 1, + ], + 'gif,png,svg' + ), + ], + 'thumbnail' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:pages.thumbnail', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'thumbnail', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + title, + alternative, + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + 'l10n_mode' => 'exclude', + ], + ] +); + +// Assign position to fields +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', 'nav_icon_set', '1,3,4', 'after:nav_title'); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', 'nav_icon_identifier', '1,3,4', 'after:nav_icon_set'); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', 'nav_icon', '1,3,4', 'after:nav_icon_set'); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', 'thumbnail', '1,3,4', 'after:backend_layout_next_level'); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/101_sys_template.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/101_sys_template.php new file mode 100644 index 0000000..a012e35 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/101_sys_template.php @@ -0,0 +1,50 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_accordion_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'tx_bootstrappackage_accordion_item' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_accordion_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] + ] + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Accordion.xml', + 'accordion' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/201_content_element_audio.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/201_content_element_audio.php new file mode 100644 index 0000000..a94f801 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/201_content_element_audio.php @@ -0,0 +1,90 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media, + assets, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'assets' => [ + 'config' => [ + 'filter' => [ + 0 => [ + 'parameters' => [ + 'allowedFileExtensions' => 'mp3' + ] + ] + ], + 'overrideChildTca' => [ + 'columns' => [ + 'uid_local' => [ + 'config' => [ + 'appearance' => [ + 'elementBrowserAllowed' => 'mp3' + ] + ] + ] + ] + ] + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/202_content_element_bullets.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/202_content_element_bullets.php new file mode 100644 index 0000000..56e8ff2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/202_content_element_bullets.php @@ -0,0 +1,17 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_card_group_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'tx_bootstrappackage_card_group_item' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_card_group_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] + ] + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/CardGroup.xml', + 'card_group' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/204_content_element_carousel.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/204_content_element_carousel.php new file mode 100644 index 0000000..81aff5a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/204_content_element_carousel.php @@ -0,0 +1,74 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_carousel_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Carousel.xml', + 'carousel' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/205_content_element_carousel_small.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/205_content_element_carousel_small.php new file mode 100644 index 0000000..b4e2adc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/205_content_element_carousel_small.php @@ -0,0 +1,74 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_carousel_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Carousel.xml', + 'carousel_small' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/206_content_element_carousel_fullscreen.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/206_content_element_carousel_fullscreen.php new file mode 100644 index 0000000..dacacb9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/206_content_element_carousel_fullscreen.php @@ -0,0 +1,74 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_carousel_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Carousel.xml', + 'carousel_fullscreen' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/207_content_element_csv.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/207_content_element_csv.php new file mode 100644 index 0000000..86f830a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/207_content_element_csv.php @@ -0,0 +1,93 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + media;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media.ALT.uploads_formlabel, + --palette--;;tableconfiguration, + --palette--;;tablelayout, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'media' => [ + 'config' => [ + 'filter' => [ + 0 => [ + 'parameters' => [ + 'allowedFileExtensions' => 'csv' + ] + ] + ], + 'minitems' => 0, + 'maxitems' => 1, + 'overrideChildTca' => [ + 'columns' => [ + 'uid_local' => [ + 'config' => [ + 'appearance' => [ + 'elementBrowserAllowed' => 'csv' + ] + ] + ] + ] + ] + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/208_content_element_externalmedia.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/208_content_element_externalmedia.php new file mode 100644 index 0000000..5d493fe --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/208_content_element_externalmedia.php @@ -0,0 +1,100 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.palette.external_media;external_media, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'external_media_source' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.external_media_source', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim', + 'max' => 1024, + ] + ], + 'external_media_ratio' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.external_media_ratio', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['16:9', '16by9'], + ['4:3', '4by3'], + ] + ] + ] + ] +); + +// Register palettes +$GLOBALS['TCA']['tt_content']['palettes']['external_media'] = [ + 'showitem' => ' + external_media_source, --linebreak--, + external_media_ratio + ' +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/209_content_element_header.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/209_content_element_header.php new file mode 100644 index 0000000..009ddea --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/209_content_element_header.php @@ -0,0 +1,17 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_icon_group_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'tx_bootstrappackage_icon_group_item' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_icon_group_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] + ] + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/IconGroup.xml', + 'icon_group' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/211_content_element_image.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/211_content_element_image.php new file mode 100644 index 0000000..7e615b9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/211_content_element_image.php @@ -0,0 +1,25 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + bodytext, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext.ALT.bulletlist_formlabel', + 'config' => [ + 'wrap' => 'off', + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/213_content_element_media.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/213_content_element_media.php new file mode 100644 index 0000000..95b46c5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/213_content_element_media.php @@ -0,0 +1,95 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media, + assets, + file_folder, + filelink_sorting, + --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.mediaAdjustments;mediaAdjustments, + --palette--;LLL:EXT:frontend/Resources/Private/Language/Database.xlf:tt_content.palette.gallerySettings;gallerySettings, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.imagelinks;imagelinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'assets' => [ + 'config' => [ + 'filter' => [ + 0 => [ + 'parameters' => [ + 'allowedFileExtensions' => 'youtube, vimeo' + ] + ] + ], + 'overrideChildTca' => [ + 'columns' => [ + 'uid_local' => [ + 'config' => [ + 'appearance' => [ + 'elementBrowserAllowed' => 'youtube, vimeo' + ] + ] + ] + ] + ] + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/214_content_element_menu_card_list.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/214_content_element_menu_card_list.php new file mode 100644 index 0000000..1339651 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/214_content_element_menu_card_list.php @@ -0,0 +1,77 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.menu_formlabel, + readmore_label, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.accessibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.menu_accessibility;menu_accessibility, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/MenuCard.xml', + 'menu_card_list' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/215_content_element_menu_card_dir.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/215_content_element_menu_card_dir.php new file mode 100644 index 0000000..5b3e0ba --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/215_content_element_menu_card_dir.php @@ -0,0 +1,77 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.menu_formlabel, + readmore_label, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.accessibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.menu_accessibility;menu_accessibility, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/MenuCard.xml', + 'menu_card_dir' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/216_content_element_menu_thumbnail_list.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/216_content_element_menu_thumbnail_list.php new file mode 100644 index 0000000..85d274e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/216_content_element_menu_thumbnail_list.php @@ -0,0 +1,76 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.menu_formlabel, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.accessibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.menu_accessibility;menu_accessibility, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml', + 'menu_thumbnail_list' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/217_content_element_menu_thumbnail_dir.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/217_content_element_menu_thumbnail_dir.php new file mode 100644 index 0000000..c5dd69c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/217_content_element_menu_thumbnail_dir.php @@ -0,0 +1,76 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.menu_formlabel, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.accessibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.menu_accessibility;menu_accessibility, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/MenuThumbnail.xml', + 'menu_thumbnail_dir' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/218_content_element_panel.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/218_content_element_panel.php new file mode 100644 index 0000000..05282c9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/218_content_element_panel.php @@ -0,0 +1,103 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.header;header_minimal, + bodytext, + panel_class, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel', + 'config' => [ + 'enableRichtext' => true + ] + ] + ] + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'panel_class' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.panel_class', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.default', 'default'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.primary', 'primary'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.secondary', 'secondary'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.tertiary', 'tertiary'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.quaternary', 'quaternary'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.success', 'success'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.info', 'info'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.warning', 'warning'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.danger', 'danger'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.lighter', 'lighter'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.light', 'light'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.dark', 'dark'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.darker', 'darker'], + ], + ], + ], + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/219_content_element_quote.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/219_content_element_quote.php new file mode 100644 index 0000000..a49986b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/219_content_element_quote.php @@ -0,0 +1,101 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header.ALT.div_formlabel, + quote_link;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.link, + quote_source;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.source, + bodytext;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.text, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'quote_source' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.source', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'max' => 255 + ] + ], + 'quote_link' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.link', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputLink', + 'size' => 50, + 'max' => 1024, + 'eval' => 'trim', + 'fieldControl' => [ + 'linkPopup' => [ + 'options' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:quote.link', + ], + ], + ], + 'softref' => 'typolink' + ] + ], + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/220_content_element_social_links.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/220_content_element_social_links.php new file mode 100644 index 0000000..212ed80 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/220_content_element_social_links.php @@ -0,0 +1,72 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel', + 'config' => [ + 'enableRichtext' => true + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/221_content_element_tab.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/221_content_element_tab.php new file mode 100644 index 0000000..56cbe54 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/221_content_element_tab.php @@ -0,0 +1,102 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_tab_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'tx_bootstrappackage_tab_item' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_tab_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] + ] + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Tab.xml', + 'tab' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/222_content_element_table.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/222_content_element_table.php new file mode 100644 index 0000000..25221de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/222_content_element_table.php @@ -0,0 +1,17 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + bodytext, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel', + 'config' => [ + 'enableRichtext' => true + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/225_content_element_texticon.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/225_content_element_texticon.php new file mode 100644 index 0000000..0c91ebf --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/225_content_element_texticon.php @@ -0,0 +1,222 @@ + ' + icon_position, icon_type, icon_size, --linebreak--, + icon_color, icon_background, --linebreak--, + icon_set, --linebreak--, + icon, icon_file + ' +]; + +// Configure element type +$GLOBALS['TCA']['tt_content']['types']['texticon'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['types']['texticon'], + [ + 'showitem' => ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + bodytext, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.icon, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon;bootstrap_package_icons, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel', + 'config' => [ + 'enableRichtext' => true + ] + ] + ] + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'icon_set' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_set', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconSetItems', + ], + ], + 'icon' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon', + 'displayCond' => 'FIELD:icon_set:REQ:true', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconItems', + 'fieldWizard' => [ + 'selectIcons' => [ + 'renderType' => 'iconWizard', + 'disabled' => false, + ], + ], + ], + ], + 'icon_file' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_file', + 'displayCond' => 'FIELD:icon_set:REQ:false', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'icon_file', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 1, + 'maxitems' => 1, + ], + 'gif,png,svg' + ), + ], + 'icon_position' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_position', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.left', 'left'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.right', 'right'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.top', 'top'], + ], + ], + ], + 'icon_type' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_type', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'default' => 'default', + 'items' => [ + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.default', 'default'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.square', 'square'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.circle', 'circle'], + ], + ], + ], + 'icon_size' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_size', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.default', 'default'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.medium', 'medium'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.large', 'large'], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.awesome', 'awesome'], + ], + ], + ], + 'icon_color' => [ + 'displayCond' => 'FIELD:icon_type:!=:default', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_color', + 'config' => [ + 'type' => 'input', + 'renderType' => 'colorpicker', + 'default' => '#FFFFFF', + ], + ], + 'icon_background' => [ + 'displayCond' => 'FIELD:icon_type:!=:default', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.icon_background', + 'config' => [ + 'type' => 'input', + 'renderType' => 'colorpicker', + 'default' => '#333333', + ], + ], + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/226_content_element_textmedia.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/226_content_element_textmedia.php new file mode 100644 index 0000000..c361932 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/226_content_element_textmedia.php @@ -0,0 +1,17 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + teaser, + bodytext, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel', + 'config' => [ + 'enableRichtext' => true + ] + ] + ] + ] +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/229_content_element_timeline.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/229_content_element_timeline.php new file mode 100644 index 0000000..b2820af --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/229_content_element_timeline.php @@ -0,0 +1,102 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers, + tx_bootstrappackage_timeline_item, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline.options, + pi_flexform;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:advanced, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended, + ' + ] +); + +// Register fields +$GLOBALS['TCA']['tt_content']['columns'] = array_replace_recursive( + $GLOBALS['TCA']['tt_content']['columns'], + [ + 'tx_bootstrappackage_timeline_item' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_timeline_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] + ] + ] +); + +// Add flexForms for content element configuration +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:bootstrap_package/Configuration/FlexForms/Timeline.xml', + 'timeline' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/230_content_element_uploads.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/230_content_element_uploads.php new file mode 100644 index 0000000..403b01f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/230_content_element_uploads.php @@ -0,0 +1,17 @@ + ' + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, + --palette--;;general, + --palette--;;headers, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.images, + image, + file_folder, + filelink_sorting, + --palette--;;mediaAdjustments, + --palette--;;gallerySettings, + --palette--;;imagelinks, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance, + --palette--;;frames, + --palette--;;appearanceLinks, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, + --palette--;;language, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, + --palette--;;hidden, + --palette--;;access, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, + categories, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes, + rowDescription, + --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended + ' + ] +); + +// Add additional fields +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + 'aspect_ratio, items_per_page', + 'gallery', + 'after:imagecols' +); diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/300_content_general_columns.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/300_content_general_columns.php new file mode 100644 index 0000000..9457dd3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/300_content_general_columns.php @@ -0,0 +1,221 @@ + true, + 'displayCond' => 'FIELD:frame_class:!=:none', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.frame_layout', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['default', 'default'], + ['embedded', 'embedded'] + ] + ], + 'l10n_mode' => 'exclude', +]; +$GLOBALS['TCA']['tt_content']['columns']['background_color_class'] = [ + 'exclude' => true, + 'displayCond' => 'FIELD:frame_class:!=:none', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.background_color_class', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['none', 'none'], + ['primary', 'primary'], + ['secondary', 'secondary'], + ['tertiary', 'tertiary'], + ['quaternary', 'quaternary'], + ['light', 'light'], + ['dark', 'dark'] + ] + ], + 'l10n_mode' => 'exclude', +]; +$GLOBALS['TCA']['tt_content']['columns']['background_image'] = [ + 'exclude' => true, + 'displayCond' => 'FIELD:frame_class:!=:none', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.background_image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'background_image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + 'l10n_mode' => 'exclude', +]; +$GLOBALS['TCA']['tt_content']['columns']['background_image_options'] = [ + 'exclude' => true, + 'displayCond' => 'FIELD:frame_class:!=:none', + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.background_image_options', + 'config' => [ + 'type' => 'flex', + 'ds' => [ + 'default' => 'FILE:EXT:bootstrap_package/Configuration/FlexForms/BackgroundImage.xml', + ], + ], + 'l10n_mode' => 'exclude', +]; +$GLOBALS['TCA']['tt_content']['columns']['readmore_label'] = [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.readmore_label', + 'config' => [ + 'type' => 'input', + 'eval' => 'trim', + 'size' => 50, + 'max' => 255 + ] +]; +$GLOBALS['TCA']['tt_content']['columns']['teaser'] = [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.teaser', + 'exclude' => true, + 'config' => [ + 'type' => 'text', + 'softref' => 'typolink_tag', + 'cols' => '40', + 'rows' => '3' + ] +]; +$GLOBALS['TCA']['tt_content']['columns']['tx_bootstrappackage_carousel_item'] = [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_bootstrappackage_carousel_item', + 'foreign_field' => 'tt_content', + 'appearance' => [ + 'useSortable' => true, + 'showSynchronizationLink' => true, + 'showAllLocalizationLink' => true, + 'showPossibleLocalizationRecords' => true, + 'expandSingle' => true, + 'enabledControls' => [ + 'localize' => true, + ] + ], + 'behaviour' => [ + 'mode' => 'select', + ] + ] +]; +$GLOBALS['TCA']['tt_content']['columns']['file_folder'] = [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.file_folder', + 'config' => [ + 'type' => 'group', + 'internal_type' => 'folder', + ] +]; +$GLOBALS['TCA']['tt_content']['columns']['aspect_ratio'] = [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.aspect_ratio', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.4_3', (string) (4/3)], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.16_9', (string) (16/9)], + ['LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.1_1', (string) (1/1)], + ] + ], + 'l10n_mode' => 'exclude', +]; +$GLOBALS['TCA']['tt_content']['columns']['items_per_page'] = [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.items_per_page', + 'config' => [ + 'type' => 'input', + 'size' => 2, + 'eval' => 'trim,int', + 'range' => [ + 'lower' => 1, + 'upper' => 50, + ], + 'default' => 10, + ], + 'l10n_mode' => 'exclude', +]; + +// Adjust default fields +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'imageorient', + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.imageorient.125', + (string) 125, + 'content-bootstrappackage-beside-text-img-centered-right' + ], + (string) 125, + 'after' +); +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem( + 'tt_content', + 'imageorient', + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.imageorient.126', + (string) 126, + 'content-bootstrappackage-beside-text-img-centered-left' + ], + (string) 126, + 'after' +); +$GLOBALS['TCA']['tt_content']['columns']['frame_class']['onChange'] = 'reload'; + +// Add fields to default palettes +$GLOBALS['TCA']['tt_content']['palettes']['frames']['showitem'] .= ' + --linebreak--, + frame_layout, + --linebreak--, + background_color_class, + --linebreak--, + background_image, + background_image_options, +'; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/301_content_general_palettes.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/301_content_general_palettes.php new file mode 100644 index 0000000..f85268a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/301_content_general_palettes.php @@ -0,0 +1,19 @@ + ' + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_formlabel, + --linebreak--, + header_layout;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_layout_formlabel, + ' +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/400_bootstrappackage_carousel_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/400_bootstrappackage_carousel_item.php new file mode 100644 index 0000000..2dc37e6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/400_bootstrappackage_carousel_item.php @@ -0,0 +1,23 @@ + [ + 'config' => [ + 'renderType' => 't3editor', + 'wrap' => 'off', + 'format' => 'html' + ] + ] + ]; +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/500_cropping.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/500_cropping.php new file mode 100644 index 0000000..55eaec2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/500_cropping.php @@ -0,0 +1,148 @@ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.default', + 'allowedAspectRatios' => [ + '16:9' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.16_9', + 'value' => 16 / 9 + ], + '4:3' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.4_3', + 'value' => 4 / 3 + ], + '1:1' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.1_1', + 'value' => 1.0 + ], + 'NaN' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.free', + 'value' => 0.0 + ], + ], + 'selectedRatio' => 'NaN', + 'cropArea' => [ + 'x' => 0.0, + 'y' => 0.0, + 'width' => 1.0, + 'height' => 1.0, + ] +]; +$xlargeCropSettings = $defaultCropSettings; +$xlargeCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.xlarge'; +$largeCropSettings = $defaultCropSettings; +$largeCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.large'; +$mediumCropSettings = $defaultCropSettings; +$mediumCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.medium'; +$smallCropSettings = $defaultCropSettings; +$smallCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.small'; +$extrasmallCropSettings = $defaultCropSettings; +$extrasmallCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.extrasmall'; + +// Content Element Background Image +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tt_content']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Image content element +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tt_content']['types']['image']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Textpic content element +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Media content element +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tt_content']['types']['media']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Textmedia content element +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tt_content']['types']['textmedia']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Card Group +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_card_group_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Accordion +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_accordion_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Carousel Background Image +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['background_image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Carousel Image +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_carousel_item']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Tab +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_tab_item']['types']['1']['columnsOverrides']['media']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Timeline +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; +$GLOBALS['TCA']['tx_bootstrappackage_timeline_item']['types']['1']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; + +// Pages +foreach ([1, 3, 4] as $type) { + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings; + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['xlarge'] = $xlargeCropSettings; + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings; + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings; + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings; + $GLOBALS['TCA']['pages']['types'][$type]['columnsOverrides']['thumbnail']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings; +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/600_ext_container.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/600_ext_container.php new file mode 100644 index 0000000..74da5b3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/Overrides/600_ext_container.php @@ -0,0 +1,152 @@ +configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_1_columns', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_1_columns.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.middle', + 'colPos' => 201 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-1.svg') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_2_columns', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_2_columns.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.left', + 'colPos' => 201 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.right', + 'colPos' => 202 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2.svg') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_2_columns_right', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_2_columns_right.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.left', + 'colspan' => 1, + 'colPos' => 201 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.right', + 'colspan' => 3, + 'colPos' => 202 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2-right.svg') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_2_columns_left', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_2_columns_left.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.left', + 'colspan' => 3, + 'colPos' => 201 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.right', + 'colspan' => 2, + 'colPos' => 202 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-2-left.svg') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_3_columns', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_3_columns.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.left', + 'colPos' => 201 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.middle', + 'colPos' => 203 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.right', + 'colPos' => 202 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-3.svg') + ); + \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\B13\Container\Tca\Registry::class)->configureContainer( + ( + new \B13\Container\Tca\ContainerConfiguration( + 'container_4_columns', + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.container_4_columns.name', + '', + [ + [ + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.left', + 'colPos' => 201 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.middle_left', + 'colPos' => 203 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.middle_right', + 'colPos' => 204 + ], + [ + 'name' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:container.column.right', + 'colPos' => 202 + ] + ] + ] + ) + )->setIcon('EXT:bootstrap_package/Resources/Public/Icons/ContentElements/container-columns-4.svg') + ); +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_accordion_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_accordion_item.php new file mode 100644 index 0000000..86a69bb --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_accordion_item.php @@ -0,0 +1,341 @@ + [ + 'label' => 'header', + 'label_alt' => 'bodytext', + 'sortby' => 'sorting', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-accordion-item', + ] + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header, + bodytext + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header, + bodytext, + media, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaposition;mediaposition, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'general' => [ + 'showitem' => ' + tt_content + ' + ], + 'mediaposition' => [ + 'showitem' => ' + mediaorient, + imagecols, + image_zoom, + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType}=\'accordion\'', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_accordion_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_accordion_item.pid=###CURRENT_PID### AND tx_bootstrappackage_accordion_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'header' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.bodytext', + 'l10n_mode' => 'prefixLangTitle', + 'l10n_cat' => 'text', + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '15', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'media' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.media', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'media', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.audioOverlayPalette;audioOverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.videoOverlayPalette;videoOverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ] + ] + ] + ], + $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'] + ), + ], + 'mediaorient' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaorient', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaorient.left', + 'left' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaorient.top', + 'top' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaorient.right', + 'right' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.mediaorient.bottom', + 'bottom' + ], + ], + 'default' => 'left', + ], + 'l10n_mode' => 'exclude' + ], + 'imagecols' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.imagecols', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '1', + 1 + ], + [ + '2', + 2 + ], + [ + '3', + 3 + ], + [ + '4', + 4 + ], + [ + '5', + 5 + ], + [ + '6', + 6 + ] + ], + 'default' => 2 + ], + 'l10n_mode' => 'exclude' + ], + 'image_zoom' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:accordion_item.image_zoom', + 'config' => [ + 'type' => 'check', + 'items' => [ + [ + 0 => '', + 1 => '', + ] + ], + ] + ] + ] +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_card_group_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_card_group_item.php new file mode 100644 index 0000000..af9b200 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_card_group_item.php @@ -0,0 +1,420 @@ + [ + 'label' => 'header', + 'sortby' => 'sorting', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-card-group-item' + ], + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.header;header, + image, + bodytext, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link;link, + icon_file, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'header' => [ + 'showitem' => ' + header, + --linebreak--, + subheader, + ' + ], + 'link' => [ + 'showitem' => ' + link, + link_title, + --linebreak--, + link_class, + --linebreak--, + link_icon_set, + --linebreak--, + link_icon_identifier, + link_icon, + ' + ], + 'general' => [ + 'showitem' => ' + tt_content + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType}=\'card_group\'', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_card_group_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_card_group_item.pid=###CURRENT_PID### AND tx_bootstrappackage_card_group_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'header' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'subheader' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.subheader', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim' + ], + ], + 'image' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + title, + alternative, + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.bodytext', + 'exclude' => true, + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '15', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'link' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputLink', + 'size' => 50, + 'max' => 1024, + 'eval' => 'trim', + 'fieldControl' => [ + 'linkPopup' => [ + 'options' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link', + ], + ], + ], + 'softref' => 'typolink' + ], + ], + 'link_title' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link_title', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim' + ], + ], + 'link_icon_set' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link_icon_set', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconSetItems', + ], + ], + 'link_icon_identifier' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link_icon_identifier', + 'displayCond' => 'FIELD:link_icon_set:REQ:true', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconItems', + 'itemsProcConfig' => [ + 'iconSetField' => 'link_icon_set' + ], + 'fieldWizard' => [ + 'selectIcons' => [ + 'renderType' => 'iconWizard', + 'disabled' => false, + ], + ], + ], + ], + 'link_icon' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link_icon', + 'displayCond' => 'FIELD:link_icon_set:REQ:false', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'link_icon', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'maxitems' => 1, + ], + 'gif,png,svg' + ), + ], + 'link_class' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:card_group_item.link_class', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['default', 'default'], + ['primary', 'primary'], + ['secondary', 'secondary'], + ['tertiary', 'tertiary'], + ['quaternary', 'quaternary'], + ['success', 'success'], + ['info', 'info'], + ['warning', 'warning'], + ['danger', 'danger'], + ['outline-default', 'outline-default'], + ['outline-primary', 'outline-primary'], + ['outline-secondary', 'outline-secondary'], + ['outline-tertiary', 'outline-tertiary'], + ['outline-quaternary', 'outline-quaternary'], + ['outline-success', 'outline-success'], + ['outline-info', 'outline-info'], + ['outline-warning', 'outline-warning'], + ['outline-danger', 'outline-danger'], + ] + ] + ], + ], +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_carousel_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_carousel_item.php new file mode 100644 index 0000000..922a90f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_carousel_item.php @@ -0,0 +1,728 @@ + [ + 'label' => 'header', + 'sortby' => 'sorting', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item', + 'type' => 'item_type', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_column' => 'item_type', + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-carousel-item', + 'header' => 'content-bootstrappackage-carousel-item-header', + 'call_to_action' => 'content-bootstrappackage-carousel-item-calltoaction', + 'image' => 'content-bootstrappackage-carousel-item-image', + 'text' => 'content-bootstrappackage-carousel-item-text', + 'text_and_image' => 'content-bootstrappackage-carousel-item-textandimage', + 'background_image' => 'content-bootstrappackage-carousel-item-backgroundimage', + 'html' => 'content-bootstrappackage-carousel-item-html' + ] + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header, + header_layout, + header_class, + subheader, + subheader_layout, + subheader_class + bodytext, + image, + text_color, + background_color, + background_image + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header.ALT.html_formlabel, + nav_title, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'header' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header;header, + nav_title, + text_color, + link, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'text' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header;header, + nav_title, + bodytext, + text_color, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'call_to_action' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header;header, + nav_title, + bodytext, + button_text, + link, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'image' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header.ALT.html_formlabel, + nav_title, + image, + link, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'text_and_image' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header;header, + nav_title, + bodytext, + text_color, + image, + link, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'background_image' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header.ALT.html_formlabel, + nav_title, + background_color, + background_image, + background_image_options, + link, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + 'html' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header.ALT.html_formlabel, + nav_title, + bodytext;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext.ALT.html_formlabel, + --div--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tabs.background, + background_color, + background_image, + background_image_options, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ', + 'columnsOverrides' => [ + 'bodytext' => [ + 'config' => [ + 'enableRichtext' => false + ] + ] + ] + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'header' => [ + 'showitem' => ' + header, + header_layout, + header_class, + --linebreak--, + subheader, + subheader_layout, + subheader_class, + --linebreak--, + header_position, + ' + ], + 'general' => [ + 'showitem' => ' + tt_content, + item_type;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:CType_formlabel, + --linebreak--, + layout, + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType} IN (\'carousel\',\'carousel_small\',\'carousel_fullscreen\')', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'item_type' => [ + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.type', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.header', + 'header', + 'content-bootstrappackage-carousel-item-header' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.text', + 'text', + 'content-bootstrappackage-carousel-item-text' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.calltoaction', + 'call_to_action', + 'content-bootstrappackage-carousel-item-calltoaction' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.image', + 'image', + 'content-bootstrappackage-carousel-item-image' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.textandimage', + 'text_and_image', + 'content-bootstrappackage-carousel-item-textandimage' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.backgroundimage', + 'background_image', + 'content-bootstrappackage-carousel-item-backgroundimage' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.item_type.html', + 'html', + 'content-bootstrappackage-carousel-item-html' + ], + ], + 'default' => 'header', + 'authMode' => $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode'], + 'authMode_enforce' => 'strict' + ], + 'l10n_mode' => 'exclude', + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_carousel_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_carousel_item.pid=###CURRENT_PID### AND tx_bootstrappackage_carousel_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'layout' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.layout', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['custom', 'custom'], + ['primary', 'primary'], + ['secondary', 'secondary'], + ['tertiary', 'tertiary'], + ['quaternary', 'quaternary'], + ['light', 'light'], + ['dark', 'dark'] + ], + 'default' => 'secondary' + ], + 'l10n_mode' => 'exclude', + ], + 'link' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.link', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputLink', + 'size' => 50, + 'max' => 1024, + 'eval' => 'trim', + 'fieldControl' => [ + 'linkPopup' => [ + 'options' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.link', + ], + ], + ], + 'softref' => 'typolink' + ], + ], + 'header' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'header_layout' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_layout', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'H1', + '1' + ], + [ + 'H2', + '2' + ], + [ + 'H3', + '3' + ], + [ + 'H4', + '4' + ], + ], + 'default' => '1' + ], + 'l10n_mode' => 'exclude', + ], + 'header_position' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_position', + 'exclude' => true, + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_position.default', + '' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_position.center', + 'center' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_position.right', + 'right' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_position.left', + 'left' + ] + ], + 'default' => '' + ] + ], + 'header_class' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.header_class', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['', 'none'], + ['h1', 'h1'], + ['h2', 'h2'], + ['h3', 'h3'], + ['h4', 'h4'], + ['h5', 'h5'] + ] + ], + 'l10n_mode' => 'exclude', + ], + 'subheader' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.subheader', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim' + ], + ], + 'subheader_layout' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.subheader_layout', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'H2', + '2' + ], + [ + 'H3', + '3' + ], + [ + 'H4', + '4' + ], + ], + 'default' => '2' + ], + 'l10n_mode' => 'exclude', + ], + 'subheader_class' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.subheader_class', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['', 'none'], + ['h1', 'h1'], + ['h2', 'h2'], + ['h3', 'h3'], + ['h4', 'h4'], + ['h5', 'h5'] + ] + ], + 'l10n_mode' => 'exclude', + ], + 'nav_title' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.nav_title', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim' + ], + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.bodytext', + 'l10n_mode' => 'prefixLangTitle', + 'l10n_cat' => 'text', + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '5', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'button_text' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.button_text', + 'config' => [ + 'type' => 'input', + 'size' => 20, + 'max' => 255 + ] + ], + 'image' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + title, + alternative, + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'text_color' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.text_color', + 'displayCond' => 'FIELD:layout:=:custom', + 'config' => [ + 'type' => 'input', + 'renderType' => 'colorpicker', + 'default' => '#FFFFFF', + ], + 'l10n_mode' => 'exclude', + ], + 'background_color' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.background_color', + 'displayCond' => 'FIELD:layout:=:custom', + 'config' => [ + 'type' => 'input', + 'renderType' => 'colorpicker', + 'default' => '#333333', + ], + 'l10n_mode' => 'exclude', + ], + 'background_image' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:carousel_item.background_image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'background_image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1 + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + 'l10n_mode' => 'exclude', + ], + 'background_image_options' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:field.background_image_options', + 'config' => [ + 'type' => 'flex', + 'ds' => [ + 'default' => 'FILE:EXT:bootstrap_package/Configuration/FlexForms/BackgroundImage.xml', + ], + ], + 'l10n_mode' => 'exclude', + ] + ], +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_icon_group_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_icon_group_item.php new file mode 100644 index 0000000..ab6ccec --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_icon_group_item.php @@ -0,0 +1,315 @@ + [ + 'label' => 'header', + 'sortby' => 'sorting', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-icon-group-item' + ], + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header, + subheader, + bodytext, + icon_file, + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header, + subheader, + bodytext, + link, + icon_set, + icon_identifier, + icon_file, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'general' => [ + 'showitem' => ' + tt_content + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType}=\'icon_group\'', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_icon_group_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_icon_group_item.pid=###CURRENT_PID### AND tx_bootstrappackage_icon_group_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'header' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'subheader' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.subheader', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim' + ], + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.bodytext', + 'l10n_mode' => 'prefixLangTitle', + 'l10n_cat' => 'text', + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '15', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'link' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.link', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputLink', + 'size' => 50, + 'max' => 1024, + 'eval' => 'trim', + 'fieldControl' => [ + 'linkPopup' => [ + 'options' => [ + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.link', + ], + ], + ], + 'softref' => 'typolink' + ], + 'l10n_mode' => 'exclude', + ], + 'icon_set' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.icon_set', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconSetItems', + ], + ], + 'icon_identifier' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.icon_identifier', + 'displayCond' => 'FIELD:icon_set:REQ:true', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconItems', + 'itemsProcConfig' => [ + 'iconSetField' => 'icon_set' + ], + 'fieldWizard' => [ + 'selectIcons' => [ + 'renderType' => 'iconWizard', + 'disabled' => false, + ], + ], + ], + ], + 'icon_file' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:icon_group_item.icon_file', + 'displayCond' => 'FIELD:icon_set:REQ:false', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'icon_file', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'maxitems' => 1, + ], + 'gif,png,svg' + ), + ], + ], +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_tab_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_tab_item.php new file mode 100644 index 0000000..a391229 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_tab_item.php @@ -0,0 +1,341 @@ + [ + 'label' => 'header', + 'label_alt' => 'bodytext', + 'sortby' => 'sorting', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-tab-item' + ], + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header, + bodytext + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + header, + bodytext, + media, + --palette--;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaposition;mediaposition, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'general' => [ + 'showitem' => ' + tt_content + ' + ], + 'mediaposition' => [ + 'showitem' => ' + mediaorient, + imagecols, + image_zoom, + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType}=\'tab\'', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_tab_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_tab_item.pid=###CURRENT_PID### AND tx_bootstrappackage_tab_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'header' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.bodytext', + 'l10n_mode' => 'prefixLangTitle', + 'l10n_cat' => 'text', + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '15', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'media' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.media', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'media', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.audioOverlayPalette;audioOverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.videoOverlayPalette;videoOverlayPalette, + --palette--;;filePalette' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ] + ], + ], + ], + $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'] + ), + ], + 'mediaorient' => [ + 'exclude' => 1, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaorient', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaorient.left', + 'left' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaorient.top', + 'top' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaorient.right', + 'right' + ], + [ + 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.mediaorient.bottom', + 'bottom' + ], + ], + 'default' => 'left', + ], + 'l10n_mode' => 'exclude' + ], + 'imagecols' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.imagecols', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '1', + 1 + ], + [ + '2', + 2 + ], + [ + '3', + 3 + ], + [ + '4', + 4 + ], + [ + '5', + 5 + ], + [ + '6', + 6 + ] + ], + 'default' => 2 + ], + 'l10n_mode' => 'exclude' + ], + 'image_zoom' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tab_item.image_zoom', + 'config' => [ + 'type' => 'check', + 'items' => [ + [ + 0 => '', + 1 => '', + ] + ], + ] + ] + ], +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_timeline_item.php b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_timeline_item.php new file mode 100644 index 0000000..de501ad --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TCA/tx_bootstrappackage_timeline_item.php @@ -0,0 +1,351 @@ + [ + 'label' => 'header', + 'label_userFunc' => BK2K\BootstrapPackage\Userfuncs\Tca::class . '->timelineItemLabel', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'cruser_id' => 'cruser_id', + 'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item', + 'delete' => 'deleted', + 'versioningWS' => true, + 'origUid' => 't3_origuid', + 'hideTable' => true, + 'hideAtCopy' => true, + 'prependAtCopy' => 'LLL:' . $generalLanguageFile . ':LGL.prependAtCopy', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'languageField' => 'sys_language_uid', + 'default_sortby' => 'date', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'typeicon_classes' => [ + 'default' => 'content-bootstrappackage-timeline-item' + ], + ], + 'interface' => [ + 'showRecordFieldList' => ' + hidden, + tt_content, + header + ', + ], + 'types' => [ + '1' => [ + 'showitem' => ' + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general, + date, + header, + bodytext, + icon_set, + icon_identifier, + icon_file, + image, + --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility, + --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access, + --palette--;;hiddenLanguagePalette, + ' + ], + ], + 'palettes' => [ + '1' => [ + 'showitem' => '' + ], + 'access' => [ + 'showitem' => ' + starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel, + endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel + ' + ], + 'general' => [ + 'showitem' => ' + tt_content + ' + ], + 'visibility' => [ + 'showitem' => ' + hidden;LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item + ' + ], + // hidden but needs to be included all the time, so sys_language_uid is set correctly + 'hiddenLanguagePalette' => [ + 'showitem' => 'sys_language_uid, l10n_parent', + 'isHiddenPalette' => true, + ], + ], + 'columns' => [ + 'tt_content' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.tt_content', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'foreign_table_where' => 'AND tt_content.pid=###CURRENT_PID### AND tt_content.{#CType}=\'timeline\'', + 'maxitems' => 1, + 'default' => 0, + ], + ], + 'hidden' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.hidden', + 'config' => [ + 'type' => 'check', + 'items' => [ + '1' => [ + '0' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:hidden.I.0' + ] + ] + ] + ], + 'starttime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.starttime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0 + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'endtime' => [ + 'exclude' => true, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.endtime', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'eval' => 'datetime', + 'default' => 0, + 'range' => [ + 'upper' => mktime(0, 0, 0, 1, 1, 2038) + ] + ], + 'l10n_mode' => 'exclude', + 'l10n_display' => 'defaultAsReadonly' + ], + 'sys_language_uid' => [ + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.language', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'sys_language', + 'foreign_table_where' => 'ORDER BY sys_language.title', + 'items' => [ + [ + 'LLL:' . $generalLanguageFile . ':LGL.allLanguages', + -1 + ], + [ + 'LLL:' . $generalLanguageFile . ':LGL.default_value', + 0 + ] + ], + 'allowNonIdValues' => true, + ] + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'exclude' => 1, + 'label' => 'LLL:' . $generalLanguageFile . ':LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + [ + '', + 0 + ] + ], + 'foreign_table' => 'tx_bootstrappackage_timeline_item', + 'foreign_table_where' => 'AND tx_bootstrappackage_timeline_item.pid=###CURRENT_PID### AND tx_bootstrappackage_timeline_item.sys_language_uid IN (-1,0)', + 'default' => 0 + ] + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough' + ] + ], + 'date' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.date', + 'config' => [ + 'type' => 'input', + 'renderType' => 'inputDateTime', + 'dbType' => 'datetime', + 'eval' => 'datetime,required' + ], + 'l10n_mode' => 'exclude', + ], + 'header' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.header', + 'config' => [ + 'type' => 'input', + 'size' => 50, + 'eval' => 'trim,required' + ], + ], + 'bodytext' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.bodytext', + 'l10n_mode' => 'prefixLangTitle', + 'l10n_cat' => 'text', + 'config' => [ + 'type' => 'text', + 'cols' => '80', + 'rows' => '15', + 'softref' => 'typolink_tag,email[subst],url', + 'enableRichtext' => true + ], + ], + 'icon_set' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.icon_set', + 'onChange' => 'reload', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconSetItems', + ], + ], + 'icon_identifier' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.icon_identifier', + 'displayCond' => 'FIELD:icon_set:REQ:true', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'itemsProcFunc' => 'BK2K\BootstrapPackage\Service\IconService->getIconItems', + 'itemsProcConfig' => [ + 'iconSetField' => 'icon_set' + ], + 'fieldWizard' => [ + 'selectIcons' => [ + 'renderType' => 'iconWizard', + 'disabled' => false, + ], + ], + ], + ], + 'icon_file' => [ + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.icon_file', + 'displayCond' => 'FIELD:icon_set:REQ:false', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'icon_file', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'maxitems' => 1, + ], + 'gif,png,svg' + ), + ], + 'image' => [ + 'exclude' => true, + 'label' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:timeline_item.image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'image', + [ + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' + ], + 'overrideChildTca' => [ + 'types' => [ + \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' + title, + alternative, + description, + crop, + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' + --palette--;;filePalette + ' + ], + ], + ], + 'minitems' => 0, + 'maxitems' => 1, + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + ], +]; diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/All.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/All.tsconfig new file mode 100644 index 0000000..2f24d85 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/All.tsconfig @@ -0,0 +1,5 @@ +########################## +#### CONTENT ELEMENTS #### +########################## +@import 'EXT:bootstrap_package/Configuration/TsConfig/Page/ContentElement/Categories.tsconfig' +@import 'EXT:bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/*.tsconfig' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Categories.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Categories.tsconfig new file mode 100644 index 0000000..07ea309 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Categories.tsconfig @@ -0,0 +1,10 @@ +#################### +#### CATEGORIES #### +#################### +mod.wizards.newContentElement.wizardItems { + interactive.header = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_group.interactive + media.header = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_group.media + text.header = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_group.text + social.header = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_group.social_media + data.header = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_group.data +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Accordion.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Accordion.tsconfig new file mode 100644 index 0000000..942b6c3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Accordion.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.interactive { + elements { + accordion { + iconIdentifier = content-bootstrappackage-accordion + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.accordion + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.accordion.description + tt_content_defValues { + CType = accordion + } + } + } + show := addToList(accordion) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Audio.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Audio.tsconfig new file mode 100644 index 0000000..c44d89c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Audio.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + audio { + iconIdentifier = content-audio + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.audio + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.audio.description + tt_content_defValues { + CType = audio + } + } + } + show := addToList(audio) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Bullets.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Bullets.tsconfig new file mode 100644 index 0000000..3eb1ba9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Bullets.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + bullets { + iconIdentifier = content-bullets + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_bulletList_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_bulletList_description + tt_content_defValues { + CType = bullets + } + } + } + show := addToList(bullets) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CardGroup.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CardGroup.tsconfig new file mode 100644 index 0000000..949a777 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CardGroup.tsconfig @@ -0,0 +1,29 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + card_group { + iconIdentifier = content-bootstrappackage-card-group + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.description + tt_content_defValues { + CType = card_group + } + } + } + show := addToList(card_group) +} +mod.wizards.newContentElement.wizardItems.text { + elements { + card_group { + iconIdentifier = content-bootstrappackage-card-group + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.card_group.description + tt_content_defValues { + CType = card_group + } + } + } + show := addToList(card_group) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Carousel.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Carousel.tsconfig new file mode 100644 index 0000000..e336333 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Carousel.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.interactive { + elements { + carousel { + iconIdentifier = content-bootstrappackage-carousel + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel.description + tt_content_defValues { + CType = carousel + } + } + } + show := addToList(carousel) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselFullscreen.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselFullscreen.tsconfig new file mode 100644 index 0000000..cc2b6b9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselFullscreen.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.interactive { + elements { + carousel_fullscreen { + iconIdentifier = content-bootstrappackage-carousel + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel_fullscreen + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel_fullscreen.description + tt_content_defValues { + CType = carousel_fullscreen + } + } + } + show := addToList(carousel_fullscreen) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselSmall.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselSmall.tsconfig new file mode 100644 index 0000000..15626e0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/CarouselSmall.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.interactive { + elements { + carousel_small { + iconIdentifier = content-bootstrappackage-carousel + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel_small + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.carousel_small.description + tt_content_defValues { + CType = carousel_small + } + } + } + show := addToList(carousel_small) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Csv.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Csv.tsconfig new file mode 100644 index 0000000..6f3e9c8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Csv.tsconfig @@ -0,0 +1,25 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.data { + elements { + csv { + iconIdentifier = content-bootstrappackage-csv + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.csv + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.csv.description + tt_content_defValues { + CType = csv + } + } + } + show := addToList(csv) +} + +################# +#### PREVIEW #### +################# +mod.web_layout.tt_content { + preview { + csv = EXT:bootstrap_package/Resources/Private/Templates/Preview/Csv.html + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ExternalMedia.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ExternalMedia.tsconfig new file mode 100644 index 0000000..fdc9090 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ExternalMedia.tsconfig @@ -0,0 +1,25 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + external_media { + iconIdentifier = content-bootstrappackage-externalmedia + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.external_media + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.external_media.description + tt_content_defValues { + CType = external_media + } + } + } + show := addToList(external_media) +} + +################# +#### PREVIEW #### +################# +mod.web_layout.tt_content { + preview { + external_media = EXT:bootstrap_package/Resources/Private/Templates/Preview/ExternalMedia.html + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Gallery.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Gallery.tsconfig new file mode 100644 index 0000000..ab77f84 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Gallery.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + gallery { + iconIdentifier = content-bootstrappackage-gallery + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.gallery + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.gallery.description + tt_content_defValues { + CType = gallery + } + } + } + show := addToList(gallery) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Header.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Header.tsconfig new file mode 100644 index 0000000..4a81729 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Header.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + header { + iconIdentifier = content-header + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_headerOnly_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_headerOnly_description + tt_content_defValues { + CType = header + } + } + } + show := addToList(header) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/IconGroup.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/IconGroup.tsconfig new file mode 100644 index 0000000..3987d09 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/IconGroup.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + icon_group { + iconIdentifier = content-bootstrappackage-icon-group + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.icon_group.description + tt_content_defValues { + CType = icon_group + } + } + } + show := addToList(icon_group) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Image.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Image.tsconfig new file mode 100644 index 0000000..345a9e3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Image.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + image { + iconIdentifier = content-image + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_imagesOnly_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_imagesOnly_description + tt_content_defValues { + CType = image + } + } + } + show := addToList(image) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ListGroup.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ListGroup.tsconfig new file mode 100644 index 0000000..e81c181 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/ListGroup.tsconfig @@ -0,0 +1,25 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + listgroup { + iconIdentifier = content-bootstrappackage-listgroup + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.listgroup + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.listgroup.description + tt_content_defValues { + CType = listgroup + } + } + } + show := addToList(listgroup) +} + +################# +#### PREVIEW #### +################# +mod.web_layout.tt_content { + preview { + listgroup = EXT:bootstrap_package/Resources/Private/Templates/Preview/ListGroup.html + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Media.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Media.tsconfig new file mode 100644 index 0000000..9d950a6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Media.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + media { + iconIdentifier = mimetypes-x-content-multimedia + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.media + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.media.description + tt_content_defValues { + CType = media + } + } + } + show := addToList(media) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardDir.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardDir.tsconfig new file mode 100644 index 0000000..0943a15 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardDir.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.menu { + elements { + menu_card_dir { + iconIdentifier = content-bootstrappackage-menu-card + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card_dir + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card_dir.description + tt_content_defValues { + CType = menu_card_dir + } + } + } + show := addToList(menu_card_dir) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardList.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardList.tsconfig new file mode 100644 index 0000000..6294cf5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuCardList.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.menu { + elements { + menu_card_list { + iconIdentifier = content-bootstrappackage-menu-card + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card_list + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.card_list.description + tt_content_defValues { + CType = menu_card_list + } + } + } + show := addToList(menu_card_list) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailDir.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailDir.tsconfig new file mode 100644 index 0000000..95f7c3f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailDir.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.menu { + elements { + menu_thumbnail_dir { + iconIdentifier = content-menu-thumbnail + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail_dir + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail_dir.description + tt_content_defValues { + CType = menu_thumbnail_dir + } + } + } + show := addToList(menu_thumbnail_dir) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailList.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailList.tsconfig new file mode 100644 index 0000000..cee7e74 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/MenuThumbnailList.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.menu { + elements { + menu_thumbnail_list { + iconIdentifier = content-menu-thumbnail + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail_list + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:menu.thumbnail_list.description + tt_content_defValues { + CType = menu_thumbnail_list + } + } + } + show := addToList(menu_thumbnail_list) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Panel.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Panel.tsconfig new file mode 100644 index 0000000..6d06ed2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Panel.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + panel { + iconIdentifier = content-panel + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.panel + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.panel.description + tt_content_defValues { + CType = panel + } + } + } + show := addToList(panel) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Quote.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Quote.tsconfig new file mode 100644 index 0000000..fcc85d6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Quote.tsconfig @@ -0,0 +1,25 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + quote { + iconIdentifier = content-quote + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.quote + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.quote.description + tt_content_defValues { + CType = quote + } + } + } + show := addToList(quote) +} + +################# +#### PREVIEW #### +################# +mod.web_layout.tt_content { + preview { + quote = EXT:bootstrap_package/Resources/Private/Templates/Preview/Quote.html + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/SocialLinks.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/SocialLinks.tsconfig new file mode 100644 index 0000000..f21ece1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/SocialLinks.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.social { + elements { + social_links { + iconIdentifier = content-bootstrappackage-social-links + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.social_links + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.social_links.description + tt_content_defValues { + CType = social_links + } + } + } + show := addToList(social_links) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Tab.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Tab.tsconfig new file mode 100644 index 0000000..fe8d69f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Tab.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + tab { + iconIdentifier = content-bootstrappackage-tab + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.tab + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.tab.description + tt_content_defValues { + CType = tab + } + } + } + show := addToList(tab) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Table.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Table.tsconfig new file mode 100644 index 0000000..8c38188 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Table.tsconfig @@ -0,0 +1,29 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.data { + elements { + table { + iconIdentifier = content-table + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_table_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_table_description + tt_content_defValues { + CType = table + } + } + } + show := addToList(table) +} +mod.wizards.newContentElement.wizardItems.text { + elements { + table { + iconIdentifier = content-table + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_table_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_table_description + tt_content_defValues { + CType = table + } + } + } + show := addToList(table) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Text.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Text.tsconfig new file mode 100644 index 0000000..ef0cf18 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Text.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + text { + iconIdentifier = content-text + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_regularText_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_regularText_description + tt_content_defValues { + CType = text + } + } + } + show := addToList(text) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textcolumn.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textcolumn.tsconfig new file mode 100644 index 0000000..8eb1549 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textcolumn.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + textcolumn { + iconIdentifier = content-text-columns + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.textcolumn + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.textcolumn.description + tt_content_defValues { + CType = textcolumn + } + } + } + show := addToList(textcolumn) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Texticon.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Texticon.tsconfig new file mode 100644 index 0000000..fe16a2f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Texticon.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + texticon { + iconIdentifier = content-bootstrappackage-texticon + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.texticon + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.texticon.description + tt_content_defValues { + CType = texticon + } + } + } + show := addToList(texticon) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textmedia.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textmedia.tsconfig new file mode 100644 index 0000000..4fce3ca --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textmedia.tsconfig @@ -0,0 +1,29 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + textmedia { + iconIdentifier = content-textmedia + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textMedia_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textMedia_description + tt_content_defValues { + CType = textmedia + } + } + } + show := addToList(textmedia) +} +mod.wizards.newContentElement.wizardItems.text { + elements { + textmedia { + iconIdentifier = content-textmedia + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textMedia_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textMedia_description + tt_content_defValues { + CType = textmedia + } + } + } + show := addToList(textmedia) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textpic.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textpic.tsconfig new file mode 100644 index 0000000..c227358 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textpic.tsconfig @@ -0,0 +1,29 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + textpic { + iconIdentifier = content-textpic + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textImage_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textImage_description + tt_content_defValues { + CType = textpic + } + } + } + show := addToList(textpic) +} +mod.wizards.newContentElement.wizardItems.text { + elements { + textpic { + iconIdentifier = content-textpic + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textImage_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:common_textImage_description + tt_content_defValues { + CType = textpic + } + } + } + show := addToList(textpic) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textteaser.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textteaser.tsconfig new file mode 100644 index 0000000..9e07d51 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Textteaser.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.text { + elements { + textteaser { + iconIdentifier = content-text-teaser + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.textteaser + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.textteaser.description + tt_content_defValues { + CType = textteaser + } + } + } + show := addToList(textteaser) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Timeline.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Timeline.tsconfig new file mode 100644 index 0000000..b55242d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Timeline.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.interactive { + elements { + timeline { + iconIdentifier = content-bootstrappackage-timeline + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.timeline + description = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:content_element.timeline.description + tt_content_defValues { + CType = timeline + } + } + } + show := addToList(timeline) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Uploads.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Uploads.tsconfig new file mode 100644 index 0000000..9ec7618 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/ContentElement/Element/Uploads.tsconfig @@ -0,0 +1,16 @@ +#################################### +#### NEW CONTENT ELEMENT WIZARD #### +#################################### +mod.wizards.newContentElement.wizardItems.media { + elements { + uploads { + iconIdentifier = content-special-uploads + title = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:special_filelinks_title + description = LLL:EXT:backend/Resources/Private/Language/locallang_db_new_content_el.xlf:special_filelinks_description + tt_content_defValues { + CType = uploads + } + } + } + show := addToList(uploads) +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig new file mode 100644 index 0000000..6c6fb6a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig @@ -0,0 +1,4 @@ +######################## +#### BACKENDLAYOUTS #### +######################## +@import 'EXT:bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/*.tsconfig' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns.tsconfig new file mode 100644 index 0000000..363be4e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns.tsconfig @@ -0,0 +1,81 @@ +################################## +#### BACKENDLAYOUT: 2 COLUMNS #### +################################## +mod { + web_layout { + BackendLayouts { + 2_columns { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.2_columns + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 8 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.right + colPos = 2 + colspan = 4 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_25_75.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_25_75.tsconfig new file mode 100644 index 0000000..6fad19b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_25_75.tsconfig @@ -0,0 +1,81 @@ +######################################## +#### BACKENDLAYOUT: 2 COLUMNS 25/75 #### +######################################## +mod { + web_layout { + BackendLayouts { + 2_columns_25_75 { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.2_columns_25_75 + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.left + colPos = 1 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 8 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_25_75.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_50_50.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_50_50.tsconfig new file mode 100644 index 0000000..5de9f6a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_50_50.tsconfig @@ -0,0 +1,81 @@ +######################################## +#### BACKENDLAYOUT: 2 COLUMNS 50/50 #### +######################################## +mod { + web_layout { + BackendLayouts { + 2_columns_50_50 { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.2_columns_50_50 + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.right + colPos = 2 + colspan = 6 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_50_50.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_offset_right.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_offset_right.tsconfig new file mode 100644 index 0000000..c675a04 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/2_columns_offset_right.tsconfig @@ -0,0 +1,81 @@ +############################################### +#### BACKENDLAYOUT: 2 COLUMNS OFFSET RIGHT #### +############################################### +mod { + web_layout { + BackendLayouts { + 2_columns_offset_right { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.2_columns_offset_right + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 8 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.right + colPos = 2 + colspan = 4 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/2_columns_offset_right.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/3_columns.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/3_columns.tsconfig new file mode 100644 index 0000000..17104e6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/3_columns.tsconfig @@ -0,0 +1,86 @@ +################################## +#### BACKENDLAYOUT: 3 COLUMNS #### +################################## +mod { + web_layout { + BackendLayouts { + 3_columns { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.3_columns + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.left + colPos = 1 + colspan = 3 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 6 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.right + colPos = 2 + colspan = 3 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/3_columns.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/default.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/default.tsconfig new file mode 100644 index 0000000..59eab70 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/default.tsconfig @@ -0,0 +1,76 @@ +################################ +#### BACKENDLAYOUT: DEFAULT #### +################################ +mod { + web_layout { + BackendLayouts { + default { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.default + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 12 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/default.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/simple.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/simple.tsconfig new file mode 100644 index 0000000..c96a9d1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/simple.tsconfig @@ -0,0 +1,57 @@ +############################### +#### BACKENDLAYOUT: SIMPLE #### +############################### +mod { + web_layout { + BackendLayouts { + simple { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.simple + config { + backend_layout { + colCount = 12 + rowCount = 4 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 12 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/simple.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_feature.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_feature.tsconfig new file mode 100644 index 0000000..9458bb5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_feature.tsconfig @@ -0,0 +1,141 @@ +######################################## +#### BACKENDLAYOUT: SPECIAL FEATURE #### +######################################## +mod { + web_layout { + BackendLayouts { + special_feature { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.special_feature + config { + backend_layout { + colCount = 12 + rowCount = 10 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 12 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special1 + colPos = 30 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special2 + colPos = 31 + colspan = 6 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special3 + colPos = 32 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special4 + colPos = 33 + colspan = 6 + } + } + } + 6 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.main2 + colPos = 4 + colspan = 12 + } + } + } + 7 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special5 + colPos = 34 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special6 + colPos = 35 + colspan = 6 + } + } + } + 8 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special7 + colPos = 36 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.special8 + colPos = 37 + colspan = 6 + } + } + } + 9 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 10 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/special_feature.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_start.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_start.tsconfig new file mode 100644 index 0000000..d83557d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/special_start.tsconfig @@ -0,0 +1,95 @@ +###################################### +#### BACKENDLAYOUT: SPECIAL START #### +###################################### +mod { + web_layout { + BackendLayouts { + special_start { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.special_start + config { + backend_layout { + colCount = 12 + rowCount = 6 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.middle1 + colPos = 20 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.middle2 + colPos = 21 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.middle3 + colPos = 22 + colspan = 4 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 6 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/special_start.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left.tsconfig new file mode 100644 index 0000000..a302170 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left.tsconfig @@ -0,0 +1,80 @@ +########################################### +#### BACKENDLAYOUT: SUBNAVIGATION LEFT #### +########################################### +mod { + web_layout { + BackendLayouts { + subnavigation_left { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.subnavigation_left + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.subnav + colspan = 3 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 9 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_left.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left_2_columns.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left_2_columns.tsconfig new file mode 100644 index 0000000..deb513c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_left_2_columns.tsconfig @@ -0,0 +1,85 @@ +##################################################### +#### BACKENDLAYOUT: SUBNAVIGATION LEFT 2 COLUMNS #### +##################################################### +mod { + web_layout { + BackendLayouts { + subnavigation_left_2_columns { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.subnavigation_left_2_columns + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.subnav + colspan = 3 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.left + colPos = 1 + colspan = 3 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 6 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_left_2_columns.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right.tsconfig new file mode 100644 index 0000000..0a235ef --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right.tsconfig @@ -0,0 +1,80 @@ +############################################ +#### BACKENDLAYOUT: SUBNAVIGATION RIGHT #### +############################################ +mod { + web_layout { + BackendLayouts { + subnavigation_right { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.subnavigation_right + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 9 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.subnav + colspan = 3 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_right.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right_2_columns.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right_2_columns.tsconfig new file mode 100644 index 0000000..6154bd7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts/subnavigation_right_2_columns.tsconfig @@ -0,0 +1,85 @@ +###################################################### +#### BACKENDLAYOUT: SUBNAVIGATION RIGHT 2 COLUMNS #### +###################################################### +mod { + web_layout { + BackendLayouts { + subnavigation_right_2_columns { + title = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.subnavigation_right_2_columns + config { + backend_layout { + colCount = 12 + rowCount = 5 + rows { + 1 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.border + colPos = 3 + colspan = 12 + } + } + } + 2 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentbefore + colPos = 8 + colspan = 12 + } + } + } + 3 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.normal + colPos = 0 + colspan = 6 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.right + colPos = 2 + colspan = 3 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.subnav + colspan = 3 + } + } + } + 4 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.contentafter + colPos = 9 + colspan = 12 + } + } + } + 5 { + columns { + 1 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer1 + colPos = 10 + colspan = 4 + } + 2 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer2 + colPos = 11 + colspan = 4 + } + 3 { + name = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:backend_layout.column.footer3 + colPos = 12 + colspan = 4 + } + } + } + } + } + } + icon = EXT:bootstrap_package/Resources/Public/Icons/BackendLayouts/subnavigation_right_2_columns.svg + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/RTE.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/RTE.tsconfig new file mode 100644 index 0000000..cd256e1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/RTE.tsconfig @@ -0,0 +1,8 @@ +############# +#### RTE #### +############# +RTE { + default { + preset = bootstrap + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCADefaults.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCADefaults.tsconfig new file mode 100644 index 0000000..218df5c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCADefaults.tsconfig @@ -0,0 +1,8 @@ +##################### +#### TCAdefaults #### +##################### +TCAdefaults { + tt_content { + imagecols = 1 + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEFORM.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEFORM.tsconfig new file mode 100644 index 0000000..9173b9f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEFORM.tsconfig @@ -0,0 +1,72 @@ +################# +#### TCEFORM #### +################# +TCEFORM { + pages { + layout { + removeItems = 1,2,3 + } + } + tt_content { + header_layout { + altLabels { + 1 = H1 + 2 = H2 + 3 = H3 + 4 = H4 + 5 = H5 + } + } + layout { + removeItems = 1,2,3 + disableNoMatchingValueElement = 1 + types { + uploads { + removeItems = 3 + altLabels { + 0 = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:uploadslayout.default + 1 = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:uploadslayout.icons + 2 = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:uploadslayout.iconsandpreview + } + } + } + } + table_class { + addItems { + hover = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tablelayout.hover + condensed = LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:tablelayout.condensed + } + } + imageborder { + disabled = 1 + } + imagecols { + removeItems = 7,8 + } + image_zoom { + types { + media { + disabled = 1 + } + } + } + imageorient { + removeItems = 1,2,9,10,17,18 + types { + image { + disabled = 1 + } + media { + disabled = 1 + } + } + } + accessibility_title { + disabled = 1 + } + // Disable imageheight and imagewidth for textpic and image + // to avoid incorrect rendering in frontend + imageheight.disabled = 1 + imagewidth.disabled = 1 + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEMAIN.tsconfig b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEMAIN.tsconfig new file mode 100644 index 0000000..eb6aded --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TsConfig/Page/TCEMAIN.tsconfig @@ -0,0 +1,11 @@ +################# +#### TCEMAIN #### +################# +TCEMAIN { + permissions { + groupid = 1 + user = show, editcontent, edit, new, delete + group = show, editcontent, edit, new, delete + everybody = + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/constants.typoscript new file mode 100644 index 0000000..442b70f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/constants.typoscript @@ -0,0 +1,105 @@ +##################### +### BOOTSTRAP 4.x ### +##################### +plugin.bootstrap_package.settings.scss > + +############################ +### CUSTOM SUBCATEGORIES ### +############################ +# customsubcategory=bp4_001=Grayscale +# customsubcategory=bp4_002=Colors +# customsubcategory=bp4_003=Contrast +# customsubcategory=bp4_004=Body +# customsubcategory=bp4_005=Links +# customsubcategory=bp4_006=Fonts +# customsubcategory=bp4_010=Options + +plugin.bootstrap_package { + settings { + scss { + + # cat=bootstrap 4.x: styling/bp4_001/001; type=string; label=$white: + white = #ffffff + # cat=bootstrap 4.x: styling/bp4_001/002; type=string; label=$gray-100: + gray-100 = #f8f8f8 + # cat=bootstrap 4.x: styling/bp4_001/003; type=string; label=$gray-200: + gray-200 = #e9e9e9 + # cat=bootstrap 4.x: styling/bp4_001/004; type=string; label=$gray-300: + gray-300 = #dedede + # cat=bootstrap 4.x: styling/bp4_001/005; type=string; label=$gray-400: + gray-400 = #cecece + # cat=bootstrap 4.x: styling/bp4_001/006; type=string; label=$gray-500: + gray-500 = #ababab + # cat=bootstrap 4.x: styling/bp4_001/007; type=string; label=$gray-600: + gray-600 = #6c6c6c + # cat=bootstrap 4.x: styling/bp4_001/008; type=string; label=$gray-700: + gray-700 = #494949 + # cat=bootstrap 4.x: styling/bp4_001/009; type=string; label=$gray-800: + gray-800 = #313131 + # cat=bootstrap 4.x: styling/bp4_001/010; type=string; label=$gray-900: + gray-900 = #212121 + # cat=bootstrap 4.x: styling/bp4_001/011; type=string; label=$black: + black = #000000 + + # cat=bootstrap 4.x: styling/bp4_002/001; type=string; label=$primary: + primary = #2a9d8f + # cat=bootstrap 4.x: styling/bp4_002/002; type=string; label=$secondary: + secondary = #e76f51 + # cat=bootstrap 4.x: styling/bp4_002/003; type=string; label=$tertiary: + tertiary = #f4a261 + # cat=bootstrap 4.x: styling/bp4_002/004; type=string; label=$quaternary: + quaternary = #e9c46a + + # cat=bootstrap 4.x: styling/bp4_002/005; type=string; label=$default: + default = #eaebec + # cat=bootstrap 4.x: styling/bp4_002/006; type=string; label=$success: + success = #5cb85c + # cat=bootstrap 4.x: styling/bp4_002/007; type=string; label=$info: + info = #319fc0 + # cat=bootstrap 4.x: styling/bp4_002/008; type=string; label=$warning: + warning = #f0ad4e + # cat=bootstrap 4.x: styling/bp4_002/009; type=string; label=$danger: + danger = #d9534f + # cat=bootstrap 4.x: styling/bp4_002/010; type=string; label=$lighter: + lighter = $gray-100 + # cat=bootstrap 4.x: styling/bp4_002/011; type=string; label=$light: + light = $gray-200 + # cat=bootstrap 4.x: styling/bp4_002/012; type=string; label=$dark: + dark = $gray-800 + # cat=bootstrap 4.x: styling/bp4_002/013; type=string; label=$darker: + darker = $gray-900 + + # cat=bootstrap 4.x: styling/bp4_003/001; type=string; label=$yiq-contrasted-threshold: + yiq-contrasted-threshold = 160 + + # cat=bootstrap 4.x: styling/bp4_004/001; type=string; label=$body-bg: + body-bg = $white + # cat=bootstrap 4.x: styling/bp4_004/002; type=string; label=$body-color: + body-color = $gray-900 + + # cat=bootstrap 4.x: styling/bp4_005/001; type=string; label=$link-color: + link-color = theme-color("primary") + # cat=bootstrap 4.x: styling/bp4_005/002; type=string; label=$link-decoration: + link-decoration = none + # cat=bootstrap 4.x: styling/bp4_005/003; type=string; label=$link-hover-color: + link-hover-color = darken($link-color, 15%) + # cat=bootstrap 4.x: styling/bp4_005/004; type=string; label=$link-hover-decoration: + link-hover-decoration = underline + + # cat=bootstrap 4.x: styling/bp4_006/001; type=string; label=$font-family-sans-serif: + font-family-sans-serif = "#{$google-webfont}", sans-serif + # cat=bootstrap 4.x: styling/bp4_006/002; type=string; label=$font-family-monospace: + font-family-monospace = SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace + + # cat=bootstrap 4.x: styling/bp4_010/001; type=options[Enabled=true, Disabled=false]; label=$enable-rounded: + enable-rounded = true + # cat=bootstrap 4.x: styling/bp4_010/002; type=options[Enabled=true, Disabled=false]; label=$enable-shadows: + enable-shadows = true + # cat=bootstrap 4.x: styling/bp4_010/003; type=options[Enabled=true, Disabled=false]; label=$enable-gradients: + enable-gradients = false + # cat=bootstrap 4.x: styling/bp4_010/004; type=options[Enabled=true, Disabled=false]; label=$enable-transitions: + enable-transitions = true + + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/setup.typoscript new file mode 100644 index 0000000..dcb8fa1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap4/setup.typoscript @@ -0,0 +1,15 @@ +############## +#### PAGE #### +############## +page { + includeCSS { + # bootstrap 4.x will be included in the themes.scss file + # for standalone usage just uncomment the following line + # bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/bootstrap.scss + theme = EXT:bootstrap_package/Resources/Public/Scss/bootstrap4/theme.scss + } + includeJSFooterlibs { + popper = EXT:bootstrap_package/Resources/Public/Contrib/popper/popper.min.js + bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap4/js/bootstrap.min.js + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript new file mode 100644 index 0000000..f41b6b8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript @@ -0,0 +1,107 @@ +##################### +### BOOTSTRAP 5.x ### +##################### +plugin.bootstrap_package.settings.scss > + +############################ +### CUSTOM SUBCATEGORIES ### +############################ +# customsubcategory=bp5_001=Grayscale +# customsubcategory=bp5_002=Colors +# customsubcategory=bp5_003=Contrast +# customsubcategory=bp5_004=Body +# customsubcategory=bp5_005=Links +# customsubcategory=bp5_006=Fonts +# customsubcategory=bp5_010=Options + +plugin.bootstrap_package { + settings { + scss { + + # cat=bootstrap 5.x: styling/bp5_001/001; type=string; label=$white: + white = #ffffff + # cat=bootstrap 5.x: styling/bp5_001/002; type=string; label=$gray-100: + gray-100 = #f8f8f8 + # cat=bootstrap 5.x: styling/bp5_001/003; type=string; label=$gray-200: + gray-200 = #e9e9e9 + # cat=bootstrap 5.x: styling/bp5_001/004; type=string; label=$gray-300: + gray-300 = #dedede + # cat=bootstrap 5.x: styling/bp5_001/005; type=string; label=$gray-400: + gray-400 = #cecece + # cat=bootstrap 5.x: styling/bp5_001/006; type=string; label=$gray-500: + gray-500 = #ababab + # cat=bootstrap 5.x: styling/bp5_001/007; type=string; label=$gray-600: + gray-600 = #6c6c6c + # cat=bootstrap 5.x: styling/bp5_001/008; type=string; label=$gray-700: + gray-700 = #494949 + # cat=bootstrap 5.x: styling/bp5_001/009; type=string; label=$gray-800: + gray-800 = #313131 + # cat=bootstrap 5.x: styling/bp5_001/010; type=string; label=$gray-900: + gray-900 = #212121 + # cat=bootstrap 5.x: styling/bp5_001/011; type=string; label=$black: + black = #000000 + + # cat=bootstrap 5.x: styling/bp5_002/001; type=string; label=$primary: + primary = #2a9d8f + # cat=bootstrap 5.x: styling/bp5_002/002; type=string; label=$secondary: + secondary = #e76f51 + # cat=bootstrap 5.x: styling/bp5_002/003; type=string; label=$tertiary: + tertiary = #f4a261 + # cat=bootstrap 5.x: styling/bp5_002/004; type=string; label=$quaternary: + quaternary = #e9c46a + + # cat=bootstrap 5.x: styling/bp5_002/005; type=string; label=$default: + default = #eaebec + # cat=bootstrap 5.x: styling/bp5_002/006; type=string; label=$success: + success = #5cb85c + # cat=bootstrap 5.x: styling/bp5_002/007; type=string; label=$info: + info = #319fc0 + # cat=bootstrap 5.x: styling/bp5_002/008; type=string; label=$warning: + warning = #f0ad4e + # cat=bootstrap 5.x: styling/bp5_002/009; type=string; label=$danger: + danger = #d9534f + # cat=bootstrap 5.x: styling/bp5_002/010; type=string; label=$lighter: + lighter = $gray-100 + # cat=bootstrap 5.x: styling/bp5_002/011; type=string; label=$light: + light = $gray-200 + # cat=bootstrap 5.x: styling/bp5_002/012; type=string; label=$dark: + dark = $gray-800 + # cat=bootstrap 5.x: styling/bp5_002/013; type=string; label=$darker: + darker = $gray-900 + + # cat=bootstrap 5.x: styling/bp5_003/001; type=string; label=$min-contrast-ratio: + min-contrast-ratio = 2.4 + + # cat=bootstrap 5.x: styling/bp5_004/001; type=string; label=$body-bg: + body-bg = $white + # cat=bootstrap 5.x: styling/bp5_004/002; type=string; label=$body-color: + body-color = $gray-900 + + # cat=bootstrap 5.x: styling/bp5_005/001; type=string; label=$link-color: + link-color = $primary + # cat=bootstrap 5.x: styling/bp5_005/002; type=string; label=$link-decoration: + link-decoration = none + # cat=bootstrap 5.x: styling/bp5_005/003; type=string; label=$link-shade-percentage: + link-shade-percentage = 20% + # cat=bootstrap 5.x: styling/bp5_005/004; type=string; label=$link-hover-color: + link-hover-color = shift-color($link-color, $link-shade-percentage) + # cat=bootstrap 5.x: styling/bp5_005/005; type=string; label=$link-hover-decoration: + link-hover-decoration = underline + + # cat=bootstrap 5.x: styling/bp5_006/001; type=string; label=$font-family-sans-serif: + font-family-sans-serif = "#{$google-webfont}", sans-serif + # cat=bootstrap 5.x: styling/bp5_006/002; type=string; label=$font-family-monospace: + font-family-monospace = SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + + # cat=bootstrap 5.x: styling/bp5_010/001; type=options[Enabled=true, Disabled=false]; label=$enable-rounded: + enable-rounded = true + # cat=bootstrap 5.x: styling/bp5_010/002; type=options[Enabled=true, Disabled=false]; label=$enable-shadows: + enable-shadows = true + # cat=bootstrap 5.x: styling/bp5_010/003; type=options[Enabled=true, Disabled=false]; label=$enable-gradients: + enable-gradients = false + # cat=bootstrap 5.x: styling/bp5_010/004; type=options[Enabled=true, Disabled=false]; label=$enable-transitions: + enable-transitions = true + + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript new file mode 100644 index 0000000..d890bb4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript @@ -0,0 +1,15 @@ +############## +#### PAGE #### +############## +page { + includeCSS { + # bootstrap 5.x will be included in the themes.scss file + # for standalone usage just uncomment the following line + # bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap5/scss/bootstrap.scss + theme = EXT:bootstrap_package/Resources/Public/Scss/bootstrap5/theme.scss + } + includeJSFooterlibs { + popper = EXT:bootstrap_package/Resources/Public/Contrib/popper-core/popper.min.js + bootstrap = EXT:bootstrap_package/Resources/Public/Contrib/bootstrap5/js/bootstrap.min.js + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript new file mode 100644 index 0000000..b3b755c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript @@ -0,0 +1,111 @@ +############################################ +#### CTYPE: BOOTSTRAP PACKAGE ACCORDION #### +############################################ + +tt_content.accordion > +tt_content.accordion =< lib.contentElement +tt_content.accordion { + + ################ + ### TEMPLATE ### + ################ + templateName = Accordion + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_accordion_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + accordion { + left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + } + corrections { + default = 21 + xlarge = 21 + large = 21 + medium = 21 + small = 42 + extrasmall = 42 + } + } + top { + corrections { + default = 42 + xlarge = 42 + large = 42 + medium = 42 + small = 42 + extrasmall = 42 + } + } + right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + } + corrections { + default = 21 + xlarge = 21 + large = 21 + medium = 21 + small = 42 + extrasmall = 42 + } + } + bottom { + corrections { + default = 42 + xlarge = 42 + large = 42 + medium = 42 + small = 42 + extrasmall = 42 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript new file mode 100644 index 0000000..3e601ef --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript @@ -0,0 +1,24 @@ +###################### +#### CTYPE: AUDIO #### +###################### + +tt_content.audio > +tt_content.audio =< lib.contentElement +tt_content.audio { + + ################ + ### TEMPLATE ### + ################ + templateName = Audio + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = assets + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript new file mode 100644 index 0000000..2793ec3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript @@ -0,0 +1,40 @@ +######################## +#### CTYPE: BULLETS #### +######################## + +tt_content.bullets > +tt_content.bullets =< lib.contentElement +tt_content.bullets { + + ################ + ### TEMPLATE ### + ################ + templateName = Bullets + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\SplitProcessor + 10 { + if { + value = 2 + isLessThan.field = bullets_type + } + fieldName = bodytext + removeEmptyEntries = 1 + as = bullets + } + 20 = TYPO3\CMS\Frontend\DataProcessing\CommaSeparatedValueProcessor + 20 { + fieldName = bodytext + if { + value = 2 + equals.field = bullets_type + } + fieldDelimiter = | + as = bullets + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript new file mode 100644 index 0000000..f310635 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript @@ -0,0 +1,135 @@ +########################## +#### CTYPE: CARDGROUP #### +########################## + +tt_content.card_group > +tt_content.card_group =< lib.contentElement +tt_content.card_group { + + ################ + ### TEMPLATE ### + ################ + templateName = CardGroup + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_card_group_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + as = image + } + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = link_icon_set + iconIdentifier.field = link_icon_identifier + iconFileFieldName = link_icon + as = linkIcon + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + card_group { + 1 { + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 3 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 32 + xlarge = 32 + large = 32 + medium = 32 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 4 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 48 + xlarge = 48 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript new file mode 100644 index 0000000..013dd59 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript @@ -0,0 +1,73 @@ +########################################### +#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL #### +########################################### + +tt_content.carousel > +tt_content.carousel =< lib.contentElement +tt_content.carousel { + + ################ + ### TEMPLATE ### + ################ + templateName = Carousel + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_carousel_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = background_image + as = backgroundImage + } + 20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 20 { + references.fieldName = image + as = images + } + 1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 1532633187 { + fieldName = background_image_options + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + carousel { + background_image { + multiplier { + default = 1.5 + xlarge = 1.5 + large = 1.5 + } + } + text_and_image { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript new file mode 100644 index 0000000..12774de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript @@ -0,0 +1,73 @@ +###################################################### +#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL FULLSCREEN #### +###################################################### + +tt_content.carousel_fullscreen > +tt_content.carousel_fullscreen =< lib.contentElement +tt_content.carousel_fullscreen { + + ################ + ### TEMPLATE ### + ################ + templateName = CarouselFullscreen + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_carousel_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = background_image + as = backgroundImage + } + 20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 20 { + references.fieldName = image + as = images + } + 1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 1532633187 { + fieldName = background_image_options + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + carousel_fullscreen { + background_image { + multiplier { + default = 1.5 + xlarge = 1.5 + large = 1.5 + } + } + text_and_image { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript new file mode 100644 index 0000000..1ebb0dd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript @@ -0,0 +1,73 @@ +################################################# +#### CTYPE: BOOTSTRAP PACKAGE CAROUSEL SMALL #### +################################################# + +tt_content.carousel_small > +tt_content.carousel_small =< lib.contentElement +tt_content.carousel_small { + + ################ + ### TEMPLATE ### + ################ + templateName = CarouselSmall + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_carousel_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = background_image + as = backgroundImage + } + 20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 20 { + references.fieldName = image + as = images + } + 1532633187 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 1532633187 { + fieldName = background_image_options + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + carousel_small { + background_image { + multiplier { + default = 1.5 + xlarge = 1.5 + large = 1.5 + } + } + text_and_image { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript new file mode 100644 index 0000000..dae81a8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript @@ -0,0 +1,33 @@ +#################### +#### CTYPE: CSV #### +#################### + +tt_content.csv > +tt_content.csv =< lib.contentElement +tt_content.csv { + + ################ + ### TEMPLATE ### + ################ + templateName = Csv + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\CsvFileProcessor + 10 { + references.fieldName = media + fieldDelimiter.char.cObject = TEXT + fieldDelimiter.char.cObject { + field = table_delimiter + } + fieldEnclosure.char.cObject = TEXT + fieldEnclosure.char.cObject { + field = table_enclosure + } + maximumColumns.field = cols + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript new file mode 100644 index 0000000..a041f65 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript @@ -0,0 +1,14 @@ +#################### +#### CTYPE: DIV #### +#################### + +tt_content.div > +tt_content.div =< lib.contentElement +tt_content.div { + + ################ + ### TEMPLATE ### + ################ + templateName = Div + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript new file mode 100644 index 0000000..0e131ef --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript @@ -0,0 +1,14 @@ +################################################# +#### CTYPE: BOOTSTRAP PACKAGE EXTERNAL MEDIA #### +################################################# + +tt_content.external_media > +tt_content.external_media =< lib.contentElement +tt_content.external_media { + + ################ + ### TEMPLATE ### + ################ + templateName = ExternalMedia + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript new file mode 100644 index 0000000..3058068 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript @@ -0,0 +1,29 @@ +######################## +#### CTYPE: GALLERY #### +######################## + +tt_content.gallery > +tt_content.gallery =< lib.contentElement +tt_content.gallery { + + ################ + ### TEMPLATE ### + ################ + templateName = Gallery + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + folders.field = file_folder + sorting.field = filelink_sorting + } + 20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor + 20 { + predefinedList = image + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript new file mode 100644 index 0000000..82cdcf3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript @@ -0,0 +1,14 @@ +####################### +#### CTYPE: HEADER #### +####################### + +tt_content.header > +tt_content.header =< lib.contentElement +tt_content.header { + + ################ + ### TEMPLATE ### + ################ + templateName = Header + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript new file mode 100644 index 0000000..517fdad --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript @@ -0,0 +1,14 @@ +##################### +#### CTYPE: HTML #### +##################### + +tt_content.html > +tt_content.html =< lib.contentElement +tt_content.html { + + ################ + ### TEMPLATE ### + ################ + templateName = Html + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript new file mode 100644 index 0000000..4a72bf5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript @@ -0,0 +1,41 @@ +##################### +#### CTYPE: HTML #### +##################### + +tt_content.icon_group > +tt_content.icon_group =< lib.contentElement +tt_content.icon_group { + + ################ + ### TEMPLATE ### + ################ + templateName = IconGroup + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_icon_group_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = icon_set + iconIdentifier.field = icon_identifier + iconFileFieldName = icon_file + as = icon + } + } + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript new file mode 100644 index 0000000..992b2aa --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript @@ -0,0 +1,30 @@ +###################### +#### CTYPE: IMAGE #### +###################### + +tt_content.image > +tt_content.image =< lib.contentElement +tt_content.image { + + ################ + ### TEMPLATE ### + ################ + templateName = Image + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + folders.field = file_folder + sorting.field = filelink_sorting + } + 20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor + 20 { + predefinedList = image + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript new file mode 100644 index 0000000..4ad0bf8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript @@ -0,0 +1,13 @@ +##################### +#### CTYPE: LIST #### +##################### + +tt_content.list =< lib.contentElement +tt_content.list { + + ################ + ### TEMPLATE ### + ################ + templateName = List + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript new file mode 100644 index 0000000..4c7617f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript @@ -0,0 +1,26 @@ +############################################ +#### CTYPE: BOOTSTRAP PACKAGE LISTGROUP #### +############################################ + +tt_content.listgroup > +tt_content.listgroup =< lib.contentElement +tt_content.listgroup { + + ################ + ### TEMPLATE ### + ################ + templateName = ListGroup + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\SplitProcessor + 10 { + fieldName = bodytext + removeEmptyEntries = 1 + as = items + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript new file mode 100644 index 0000000..16b57d9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript @@ -0,0 +1,30 @@ +###################### +#### CTYPE: MEDIA #### +###################### + +tt_content.media > +tt_content.media =< lib.contentElement +tt_content.media { + + ################ + ### TEMPLATE ### + ################ + templateName = Media + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = assets + folders.field = file_folder + sorting.field = filelink_sorting + } + 20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor + 20 { + allowedFileExtensions = youtube, vimeo + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript new file mode 100644 index 0000000..42d5751 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript @@ -0,0 +1,45 @@ +############################################################## +#### CTYPE: MENU OF SUBPAGES TO THESE PAGES WITH ABSTRACT #### +############################################################## + +tt_content.menu_abstract > +tt_content.menu_abstract =< lib.contentElement +tt_content.menu_abstract { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuAbstract + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = directory + special.value.field = pages + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript new file mode 100644 index 0000000..5a0f4d8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript @@ -0,0 +1,148 @@ +################################### +#### CTYPE: MENU CARD SUBPAGES #### +################################### + +tt_content.menu_card_dir > +tt_content.menu_card_dir =< lib.contentElement +tt_content.menu_card_dir { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuCardDir + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 20 { + special = directory + special.value.field = pages + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = thumbnail + if { + isTrue = {$plugin.bootstrap_package_contentelements.menu_card.thumbnail.enable} + } + } + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = nav_icon_set + iconIdentifier.field = nav_icon_identifier + iconFileFieldName = nav_icon + as = icon + if { + isTrue = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable} + } + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + menu_card_dir { + 1 { + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 3 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 32 + xlarge = 32 + large = 32 + medium = 32 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 4 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 48 + xlarge = 48 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript new file mode 100644 index 0000000..01ad23d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript @@ -0,0 +1,149 @@ +################################### +#### CTYPE: MENU CARD SUBPAGES #### +################################### + +tt_content.menu_card_list > +tt_content.menu_card_list =< lib.contentElement +tt_content.menu_card_list { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuCardList + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 20 { + special = list + special.value.field = pages + includeNotInMenu = 1 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = thumbnail + if { + isTrue = {$plugin.bootstrap_package_contentelements.menu_card.thumbnail.enable} + } + } + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = nav_icon_set + iconIdentifier.field = nav_icon_identifier + iconFileFieldName = nav_icon + as = icon + if { + isTrue = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable} + } + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + menu_card_list { + 1 { + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 3 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 32 + xlarge = 32 + large = 32 + medium = 32 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + 4 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 48 + xlarge = 48 + large = 16 + medium = 16 + small = 16 + } + corrections { + default = 2 + xlarge = 2 + large = 2 + medium = 2 + small = 2 + extrasmall = 2 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript new file mode 100644 index 0000000..5547960 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript @@ -0,0 +1,54 @@ +############################################ +#### CTYPE: MENU OF CATEGORIZED CONTENT #### +############################################ + +tt_content.menu_categorized_content > +tt_content.menu_categorized_content =< lib.contentElement +tt_content.menu_categorized_content { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuCategorizedContent + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tt_content + selectFields = tt_content.* + groupBy = uid + pidInList.data = leveluid : 0 + recursive = 99 + join.data = field:selected_categories + join.wrap = sys_category_record_mm ON tt_content.uid = sys_category_record_mm.uid_foreign AND sys_category_record_mm.uid_local IN(|) + where.data = field:category_field + where.wrap = tablenames='tt_content' and fieldname='|' + as = content + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} + diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript new file mode 100644 index 0000000..5d305f0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript @@ -0,0 +1,50 @@ +########################################## +#### CTYPE: MENU OF CATEGORIZED PAGES #### +########################################## + +tt_content.menu_categorized_pages > +tt_content.menu_categorized_pages =< lib.contentElement +tt_content.menu_categorized_pages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuCategorizedPages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = categories + special { + value.field = selected_categories + relation.field = category_field + sorting = title + order = asc + } + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript new file mode 100644 index 0000000..b548c62 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript @@ -0,0 +1,46 @@ +##################### +#### CTYPE: MENU #### +##################### + +tt_content.menu_pages > +tt_content.menu_pages =< lib.contentElement +tt_content.menu_pages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuPages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = list + special.value.field = pages + includeNotInMenu = 1 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript new file mode 100644 index 0000000..4f06601 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript @@ -0,0 +1,49 @@ +############################################ +#### CTYPE: MENU RECENTLY UPDATED PAGES #### +############################################ + +tt_content.menu_recently_updated > +tt_content.menu_recently_updated =< lib.contentElement +tt_content.menu_recently_updated { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuRecentlyUpdated + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = updated + special { + value.field = pages + maxAge = 3600*24*7 + excludeNoSearchPages = 1 + } + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript new file mode 100644 index 0000000..b0e60f7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript @@ -0,0 +1,48 @@ +##################################################### +#### CTYPE: MENU RELATED PAGES BASED ON KEYWORDS #### +##################################################### + +tt_content.menu_related_pages > +tt_content.menu_related_pages =< lib.contentElement +tt_content.menu_related_pages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuRelatedPages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = keywords + special { + value.field = pages + excludeNoSearchPages = 1 + } + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript new file mode 100644 index 0000000..e7f0d55 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript @@ -0,0 +1,70 @@ +################################### +#### CTYPE: MENU SECTION INDEX #### +################################### + +tt_content.menu_section > +tt_content.menu_section =< lib.contentElement +tt_content.menu_section { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuSection + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = list + special { + value { + field = pages + override { + data = page:uid + if { + isFalse.field = pages + } + } + } + } + includeNotInMenu = 1 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tt_content + pidInList.field = uid + as = content + where = sectionIndex = 1 + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + } + } + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript new file mode 100644 index 0000000..d9a0a9c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript @@ -0,0 +1,59 @@ +############################################################# +#### CTYPE: MENU OF SUBPAGES TO THESE PAGES AND SECTIONS #### +############################################################# + +tt_content.menu_section_pages > +tt_content.menu_section_pages =< lib.contentElement +tt_content.menu_section_pages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuSectionPages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = directory + special.value.field = pages + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tt_content + pidInList.field = uid + as = content + where = sectionIndex = 1 + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + } + } + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript new file mode 100644 index 0000000..7f89ad5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript @@ -0,0 +1,46 @@ +############################# +#### CTYPE: MENU SITEMAP #### +############################# + +tt_content.menu_sitemap > +tt_content.menu_sitemap =< lib.contentElement +tt_content.menu_sitemap { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuSitemap + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = list + special.value.field = pages + levels = 7 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript new file mode 100644 index 0000000..1e1005e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript @@ -0,0 +1,46 @@ +############################################### +#### CTYPE: MENU SITEMAP OF SELECTED PAGES #### +############################################### + +tt_content.menu_sitemap_pages > +tt_content.menu_sitemap_pages =< lib.contentElement +tt_content.menu_sitemap_pages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuSitemapPages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = directory + special.value.field = pages + levels = 7 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript new file mode 100644 index 0000000..f9437f8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript @@ -0,0 +1,45 @@ +################################################ +#### CTYPE: MENU OF SUBPAGES TO THESE PAGES #### +################################################ + +tt_content.menu_subpages > +tt_content.menu_subpages =< lib.contentElement +tt_content.menu_subpages { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuSubpages + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + special = directory + special.value.field = pages + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript new file mode 100644 index 0000000..61895bf --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript @@ -0,0 +1,103 @@ +######################################## +#### CTYPE: MENU THUMBNAIL SUBPAGES #### +######################################## + +tt_content.menu_thumbnail_dir > +tt_content.menu_thumbnail_dir =< lib.contentElement +tt_content.menu_thumbnail_dir { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuThumbnailDir + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 20 { + special = directory + special.value.field = pages + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = thumbnail + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + menu_thumbnail_dir { + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 8 + xlarge = 8 + large = 8 + medium = 8 + small = 8 + } + } + 3 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + small = 0.3333 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + } + } + 4 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + small = 0.5 + } + gutters { + default = 24 + xlarge = 24 + large = 24 + medium = 16 + small = 16 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript new file mode 100644 index 0000000..7b61c5e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript @@ -0,0 +1,104 @@ +######################################## +#### CTYPE: MENU THUMBNAIL SUBPAGES #### +######################################## + +tt_content.menu_thumbnail_list > +tt_content.menu_thumbnail_list =< lib.contentElement +tt_content.menu_thumbnail_list { + + ################ + ### TEMPLATE ### + ################ + templateName = MenuThumbnailList + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 20 { + special = list + special.value.field = pages + includeNotInMenu = 1 + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = thumbnail + } + } + } + 90 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 90 { + if { + isTrue.field = accessibility_bypass + } + table = tt_content + pidInList = this + orderBy = sorting + max = 1 + where { + dataWrap = colPos = {field:colPos} AND sorting > {field:sorting} + } + as = nextContentElement + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + menu_thumbnail_list { + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 8 + xlarge = 8 + large = 8 + medium = 8 + small = 8 + } + } + 3 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + small = 0.3333 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + } + } + 4 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + small = 0.5 + } + gutters { + default = 24 + xlarge = 24 + large = 24 + medium = 16 + small = 16 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript new file mode 100644 index 0000000..f932a51 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript @@ -0,0 +1,14 @@ +######################################## +#### CTYPE: BOOTSTRAP PACKAGE PANEL #### +######################################## + +tt_content.panel > +tt_content.panel =< lib.contentElement +tt_content.panel { + + ################ + ### TEMPLATE ### + ################ + templateName = Panel + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript new file mode 100644 index 0000000..7775f72 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript @@ -0,0 +1,14 @@ +###################### +#### CTYPE: QUOTE #### +###################### + +tt_content.quote > +tt_content.quote =< lib.contentElement +tt_content.quote { + + ################ + ### TEMPLATE ### + ################ + templateName = Quote + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript new file mode 100644 index 0000000..7f91302 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript @@ -0,0 +1,25 @@ +######################### +#### CTYPE: SHORTCUT #### +######################### + +tt_content.shortcut > +tt_content.shortcut =< lib.contentElement +tt_content.shortcut { + + ################ + ### TEMPLATE ### + ################ + templateName = Shortcut + + ################# + ### VARIABLES ### + ################# + variables { + shortcuts = RECORDS + shortcuts { + source.field = records + tables = tt_content + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript new file mode 100644 index 0000000..706e765 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript @@ -0,0 +1,25 @@ +############################# +#### CTYPE: SOCIAL LINKS #### +############################# + +tt_content.social_links > +tt_content.social_links =< lib.contentElement +tt_content.social_links { + + ################ + ### TEMPLATE ### + ################ + templateName = SocialLinks + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor + 1 { + as = socialmedia + key = page.theme.socialmedia + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript new file mode 100644 index 0000000..2cce802 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript @@ -0,0 +1,75 @@ +###################################### +#### CTYPE: BOOTSTRAP PACKAGE TAB #### +###################################### + +tt_content.tab > +tt_content.tab =< lib.contentElement +tt_content.tab { + + ################ + ### TEMPLATE ### + ################ + templateName = Tab + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_bootstrappackage_tab_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy = sorting + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + tab { + left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + } + } + right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript new file mode 100644 index 0000000..207853a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript @@ -0,0 +1,33 @@ +###################### +#### CTYPE: TABLE #### +###################### + +tt_content.table > +tt_content.table =< lib.contentElement +tt_content.table { + + ################ + ### TEMPLATE ### + ################ + templateName = Table + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\CommaSeparatedValueProcessor + 10 { + fieldName = bodytext + fieldDelimiter.char.cObject = TEXT + fieldDelimiter.char.cObject { + field = table_delimiter + } + fieldEnclosure.char.cObject = TEXT + fieldEnclosure.char.cObject { + field = table_enclosure + } + as = table + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript new file mode 100644 index 0000000..3aec48f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript @@ -0,0 +1,14 @@ +##################### +#### CTYPE: TEXT #### +##################### + +tt_content.text > +tt_content.text =< lib.contentElement +tt_content.text { + + ################ + ### TEMPLATE ### + ################ + templateName = Text + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript new file mode 100644 index 0000000..2a7f68e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript @@ -0,0 +1,14 @@ +########################### +#### CTYPE: TEXTCOLUMN #### +########################### + +tt_content.textcolumn > +tt_content.textcolumn =< lib.contentElement +tt_content.textcolumn { + + ################ + ### TEMPLATE ### + ################ + templateName = Textcolumn + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript new file mode 100644 index 0000000..73d276c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript @@ -0,0 +1,27 @@ +########################################### +#### CTYPE: BOOTSTRAP PACKAGE TEXTICON #### +########################################### + +tt_content.texticon > +tt_content.texticon =< lib.contentElement +tt_content.texticon { + + ################ + ### TEMPLATE ### + ################ + templateName = Texticon + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = icon_set + iconIdentifier.field = icon + iconFileFieldName = icon_file + as = icon + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript new file mode 100644 index 0000000..206fc9c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript @@ -0,0 +1,105 @@ +########################## +#### CTYPE: TEXTMEDIA #### +########################## + +tt_content.textmedia > +tt_content.textmedia =< lib.contentElement +tt_content.textmedia { + + ################ + ### TEMPLATE ### + ################ + templateName = TEXT + templateName.stdWrap.cObject = CASE + templateName.stdWrap.cObject { + key.field = imageorient + 8 = TEXT + 8.value = TextmediaBelow + 25 = TEXT + 25.value = TextmediaRight + 26 = TEXT + 26.value = TextmediaLeft + 125 = TEXT + 125.value = TextmediaCenteredRight + 126 = TEXT + 126.value = TextmediaCenteredLeft + default = TEXT + default.value = TextmediaAbove + } + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = assets + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + textmedia { + centered_left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + centered_right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript new file mode 100644 index 0000000..8c79b9e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript @@ -0,0 +1,111 @@ +######################## +#### CTYPE: TEXTPIC #### +######################## + +tt_content.textpic > +tt_content.textpic =< lib.contentElement +tt_content.textpic { + + ################ + ### TEMPLATE ### + ################ + templateName = TEXT + templateName.stdWrap.cObject = CASE + templateName.stdWrap.cObject { + key.field = imageorient + 8 = TEXT + 8.value = TextpicBelow + 25 = TEXT + 25.value = TextpicRight + 26 = TEXT + 26.value = TextpicLeft + 125 = TEXT + 125.value = TextpicCenteredRight + 126 = TEXT + 126.value = TextpicCenteredLeft + default = TEXT + default.value = TextpicAbove + } + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + folders.field = file_folder + sorting.field = filelink_sorting + } + 20 = BK2K\BootstrapPackage\DataProcessing\FileFilterProcessor + 20 { + predefinedList = image + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + textpic { + centered_left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + centered_right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + left { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + right { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript new file mode 100644 index 0000000..3902e55 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript @@ -0,0 +1,14 @@ +########################### +#### CTYPE: TEXTTEASER #### +########################### + +tt_content.textteaser > +tt_content.textteaser =< lib.contentElement +tt_content.textteaser { + + ################ + ### TEMPLATE ### + ################ + templateName = Textteaser + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript new file mode 100644 index 0000000..f3bacc3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript @@ -0,0 +1,76 @@ +######################### +#### CTYPE: TIMELINE #### +######################### + +tt_content.timeline > +tt_content.timeline =< lib.contentElement +tt_content.timeline { + + ################ + ### TEMPLATE ### + ################ + templateName = Timeline + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tx_bootstrappackage_timeline_item + pidInList.field = pid + where { + data = field:uid + intval = 1 + wrap = tt_content=| + } + orderBy.stdWrap.cObject = TEXT + orderBy.stdWrap.cObject { + data = flexform:pi_flexform:sorting + ifEmpty.cObject = TEXT + ifEmpty.cObject { + value.current = 1 + ifEmpty = date desc + } + } + dataProcessing { + 20 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 20 { + references.fieldName = image + as = image + } + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = icon_set + iconIdentifier.field = icon_identifier + iconFileFieldName = icon_file + as = icon + } + } + } + } + +} + + +######################### +### RESPONSIVE IMAGES ### +######################### +lib.contentElement.settings.responsiveimages.contentelements { + timeline { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + corrections { + default = 49 + xlarge = 49 + large = 49 + medium = 49 + small = 72 + extrasmall = 72 + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript new file mode 100644 index 0000000..044b987 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript @@ -0,0 +1,27 @@ +######################## +#### CTYPE: UPLOADS #### +######################## + +tt_content.uploads > +tt_content.uploads =< lib.contentElement +tt_content.uploads { + + ################ + ### TEMPLATE ### + ################ + templateName = Uploads + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = media + collections.field = file_collections + sorting.field = filelink_sorting + sorting.direction.field = filelink_sorting_direction + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript new file mode 100644 index 0000000..7dac937 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript @@ -0,0 +1,687 @@ +################################################## +### CONTENT ELEMENT SETTINGS ### +### Shared settings for TYPO3 content elements ### +################################################## +lib.contentElement = FLUIDTEMPLATE +lib.contentElement { + + ################ + ### TEMPLATE ### + ################ + templateName = Default + templateRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Templates/ContentElements/ + 10 = {$plugin.bootstrap_package_contentelements.view.templateRootPath} + } + partialRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Partials/ContentElements/ + 10 = {$plugin.bootstrap_package_contentelements.view.partialRootPath} + } + layoutRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Layouts/ContentElements/ + 10 = {$plugin.bootstrap_package_contentelements.view.layoutRootPath} + } + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 1509614342 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 1509614342 { + references.fieldName = background_image + as = backgroundImage + } + 1532626753 = BK2K\BootstrapPackage\DataProcessing\FlexFormProcessor + 1532626753 { + fieldName = background_image_options + } + } + + ################# + ### VARIABLES ### + ################# + variables { + backendlayout = TEXT + backendlayout { + data = pagelayout + replacement.10 { + search = pagets__ + replace = + } + ifEmpty = default + } + } + + ################ + ### SETTINGS ### + ################ + settings { + header { + defaultHeaderType = {$plugin.bootstrap_package_contentelements.header.defaultHeaderType} + class = {$plugin.bootstrap_package_contentelements.header.class} + date { + format = {$plugin.bootstrap_package_contentelements.header.date.format} + } + } + subheader { + class = {$plugin.bootstrap_package_contentelements.subheader.class} + } + lightbox { + cssClass = {$plugin.bootstrap_package_contentelements.lightbox.cssClass} + prefix = {$plugin.bootstrap_package_contentelements.lightbox.prefix} + image { + maxHeight = {$plugin.bootstrap_package_contentelements.lightbox.image.maxHeight} + maxWidth = {$plugin.bootstrap_package_contentelements.lightbox.image.maxWidth} + } + } + media { + additionalConfig { + autoplay = {$plugin.bootstrap_package_contentelements.media.additionalConfig.autoplay} + controls = {$plugin.bootstrap_package_contentelements.media.additionalConfig.controls} + loop = {$plugin.bootstrap_package_contentelements.media.additionalConfig.loop} + enablejsapi = {$plugin.bootstrap_package_contentelements.media.additionalConfig.enablejsapi} + showinfo = {$plugin.bootstrap_package_contentelements.media.additionalConfig.showinfo} + relatedVideos = {$plugin.bootstrap_package_contentelements.media.additionalConfig.relatedVideos} + modestbranding = {$plugin.bootstrap_package_contentelements.media.additionalConfig.modestbranding} + } + } + gallery { + columns { + 1 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.1.class} + } + 2 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.2.class} + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + extrasmall = 0.5 + } + gutters { + default = 8 + xlarge = 8 + large = 8 + medium = 8 + small = 8 + extrasmall = 8 + } + } + 3 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.3.class} + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + small = 0.3333 + extrasmall = 0.3333 + } + gutters { + default = 16 + xlarge = 16 + large = 16 + medium = 16 + small = 16 + extrasmall = 16 + } + } + 4 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.4.class} + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + small = 0.5 + extrasmall = 0.5 + } + gutters { + default = 24 + xlarge = 24 + large = 24 + medium = 8 + small = 8 + extrasmall = 8 + } + } + 5 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.5.class} + multiplier { + default = 0.2 + xlarge = 0.2 + large = 0.2 + medium = 0.3333 + small = 0.3333 + extrasmall = 0.5 + } + gutters { + default = 32 + xlarge = 32 + large = 32 + medium = 16 + small = 16 + extrasmall = 8 + } + } + 6 { + class = {$plugin.bootstrap_package_contentelements.gallery.columns.6.class} + multiplier { + default = 0.1666 + xlarge = 0.16666 + large = 0.16666 + medium = 0.3333 + small = 0.3333 + extrasmall = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 16 + small = 16 + extrasmall = 8 + } + } + } + } + responsiveimages { + variants { + default { + breakpoint = 1400 + width = 1280 + } + xlarge { + breakpoint = 1200 + width = 1100 + } + large { + breakpoint = 992 + width = 920 + } + medium { + breakpoint = 768 + width = 680 + } + small { + breakpoint = 576 + width = 500 + } + extrasmall { + breakpoint = unset + width = 374 + } + } + backendlayout { + 2_columns { + 0 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 2 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + 2_columns_25_75 { + 0 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 1 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + 2_columns_50_50 { + 0 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 2 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + subnavigation_left { + 0 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + 2_columns_offset_right { + 0 { + multiplier { + default = 0.6666 + xlarge = 0.6666 + large = 0.6666 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 2 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + 3_columns { + 0 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 1 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 2 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + special_feature { + 30 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 31 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 32 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 33 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 34 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 35 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 36 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + 37 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + small = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + small = 40 + } + } + } + special_start { + 20 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 80 + xlarge = 80 + large = 80 + medium = 80 + } + } + 21 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 80 + xlarge = 80 + large = 80 + medium = 80 + } + } + 22 { + multiplier { + default = 0.3333 + xlarge = 0.3333 + large = 0.3333 + medium = 0.3333 + } + gutters { + default = 80 + xlarge = 80 + large = 80 + medium = 80 + } + } + } + subnavigation_left { + 0 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + subnavigation_left_2_columns { + 0 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 1 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + subnavigation_right { + 0 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + subnavigation_right_2_columns { + 0 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + 2 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + } + } + } + } + } + menuthumbnail { + title { + crop = {$plugin.bootstrap_package_contentelements.menu_thumbnail.title.crop} + } + subtitle { + crop = {$plugin.bootstrap_package_contentelements.menu_thumbnail.subtitle.crop} + } + } + menucard { + icon { + enable = {$plugin.bootstrap_package_contentelements.menu_card.icon.enable} + height = {$plugin.bootstrap_package_contentelements.menu_card.icon.height} + width = {$plugin.bootstrap_package_contentelements.menu_card.icon.width} + } + title { + crop = {$plugin.bootstrap_package_contentelements.menu_card.title.crop} + } + subtitle { + crop = {$plugin.bootstrap_package_contentelements.menu_card.subtitle.crop} + } + abstract { + crop = {$plugin.bootstrap_package_contentelements.menu_card.abstract.crop} + } + } + texticon { + icon { + default { + height = {$plugin.bootstrap_package_contentelements.texticon.icon.default.height} + width = {$plugin.bootstrap_package_contentelements.texticon.icon.default.width} + } + medium { + height = {$plugin.bootstrap_package_contentelements.texticon.icon.medium.height} + width = {$plugin.bootstrap_package_contentelements.texticon.icon.medium.width} + } + large { + height = {$plugin.bootstrap_package_contentelements.texticon.icon.large.height} + width = {$plugin.bootstrap_package_contentelements.texticon.icon.large.width} + } + awesome { + height = {$plugin.bootstrap_package_contentelements.texticon.icon.awesome.height} + width = {$plugin.bootstrap_package_contentelements.texticon.icon.awesome.width} + } + } + } + timeline { + date { + format = {$plugin.bootstrap_package_contentelements.timeline.date.format} + } + } + uploads { + preview { + height = {$plugin.bootstrap_package_contentelements.uploads.preview.height} + width = {$plugin.bootstrap_package_contentelements.uploads.preview.width} + } + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript new file mode 100644 index 0000000..6f43143 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript @@ -0,0 +1,118 @@ +################################################ +#### DYNAMIC CONTENT LIB FOR USAGE IN FLUID #### +################################################ +# +# EXAMPLE +# --------------- +# |', +# elementWrap: '
|
' +# }" /> +# +# +# COLUMN NUMBERS +# --------------- +# +# 0 = main +# 1 = left +# 2 = right +# 3 = border +# 4 = main2 +# +# 8 = content before +# 9 = content after +# +# 10 = footer1 +# 11 = footer2 +# 12 = footer3 +# +# 20 = middle1 +# 21 = middle2 +# 22 = middle3 +# +# 30 = special1 +# 31 = special2 +# 32 = special3 +# 33 = special4 +# 34 = special5 +# 35 = special6 +# 36 = special7 +# 37 = special8 +# 38 = special9 +# 39 = special10 +# +################# +lib.dynamicContent = COA +lib.dynamicContent { + 5 = LOAD_REGISTER + 5 { + colPos.cObject = TEXT + colPos.cObject { + field = colPos + ifEmpty.cObject = TEXT + ifEmpty.cObject { + value.current = 1 + ifEmpty = 0 + } + } + slide.cObject = TEXT + slide.cObject { + override { + field = slide + if { + isInList.field = slide + value = -1, 0, 1, 2 + } + } + ifEmpty = 0 + } + pageUid.cObject = TEXT + pageUid.cObject { + field = pageUid + ifEmpty.data = TSFE:id + } + contentFromPid.cObject = TEXT + contentFromPid.cObject { + data = DB:pages:{register:pageUid}:content_from_pid + data.insertData = 1 + } + wrap.cObject = TEXT + wrap.cObject { + field = wrap + } + elementWrap.cObject = TEXT + elementWrap.cObject{ + field = elementWrap + } + } + 20 = CONTENT + 20 { + table = tt_content + select { + includeRecordsWithoutDefaultTranslation = 1 + orderBy = sorting + where = {#colPos}={register:colPos} + where.insertData = 1 + pidInList.data = register:pageUid + pidInList.override.data = register:contentFromPid + } + slide = {register:slide} + slide.insertData = 1 + renderObj { + stdWrap{ + dataWrap = {register:elementWrap} + required = 1 + } + } + stdWrap { + dataWrap = {register:wrap} + required = 1 + } + } + 90 = RESTORE_REGISTER +} +lib.dynamicContentSlide =< lib.dynamicContent +lib.dynamicContentSlide.20.slide = -1 diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript new file mode 100644 index 0000000..1cc445a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript @@ -0,0 +1,141 @@ +################### +#### PARSEFUNC #### +################### +lib.parseFunc { + makelinks = 1 + makelinks { + http { + keep = path + extTarget = _blank + } + mailto { + keep = path + } + } + tags { + link = TEXT + link { + current = 1 + typolink { + parameter { + data = parameters : allParams + } + extTarget = _blank + } + parseFunc.constants = 1 + } + a = TEXT + a { + current = 1 + typolink { + parameter.data = parameters:href + title.data = parameters:title + ATagParams.data = parameters:allParams + target.data = parameters:target + extTarget = _blank + extTarget.override.data = parameters:target + } + } + } + allowTags := addToList(a, abbr, acronym, address, article, aside, b, bdo) + allowTags := addToList(big, blockquote, br, caption, center, cite, code, col) + allowTags := addToList(colgroup, dd, del, dfn, dl, div, dt, em, font) + allowTags := addToList(footer, header, h1, h2, h3, h4, h5, h6, hr, i, img) + allowTags := addToList(ins, kbd, label, li, link, meta, nav, ol, p, pre, q) + allowTags := addToList(samp, sdfield, section, small, span, strike, strong) + allowTags := addToList(style, sub, sup, table, thead, tbody, tfoot, td, th) + allowTags := addToList(tr, title, tt, u, ul, var) + denyTags = * + sword = | + constants = 1 + nonTypoTagStdWrap { + HTMLparser = 1 + HTMLparser { + keepNonMatchedTags = 1 + htmlSpecialChars = 2 + } + } +} + + +####################### +#### PARSEFUNC RTE #### +####################### +lib.parseFunc_RTE < lib.parseFunc +lib.parseFunc_RTE { + externalBlocks := addToList(article, address, aside, blockquote, div, dd, dl, footer) + externalBlocks := addToList(header, nav, ol, section, table, ul, pre, figure) + externalBlocks { + ol { + stripNL = 1 + stdWrap { + parseFunc = < lib.parseFunc + } + } + ul { + stripNL = 1 + stdWrap { + parseFunc = < lib.parseFunc + HTMLparser = 1 + HTMLparser { + tags.ul.fixAttrib.class { + default = list-normal + } + keepNonMatchedTags = 1 + } + } + } + table { + stripNL = 1 + stdWrap { + wrap =
|
+ } + HTMLtableCells = 1 + HTMLtableCells { + default.stdWrap { + parseFunc = < lib.parseFunc_RTE + parseFunc { + nonTypoTagStdWrap { + encapsLines { + nonWrappedTag = + } + } + } + } + } + } + pre { + stripNL = 1 + stdWrap.parseFunc < lib.parseFunc + } + div { + stripNL = 1 + callRecursive = 1 + } + article < .div + aside < .div + figure < .div + blockquote < .div + footer < .div + header < .div + nav < .div + section < .div + dl < .div + dd < .div + } + nonTypoTagStdWrap { + encapsLines { + encapsTagList = p, pre, h1, h2, h3, h4, h5, h6, hr, dt + remapTag.DIV = P + nonWrappedTag = P + innerStdWrap_all.ifBlank =   + } + } + nonTypoTagStdWrap { + HTMLparser = 1 + HTMLparser { + keepNonMatchedTags = 1 + htmlSpecialChars = 2 + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript new file mode 100644 index 0000000..d9f7d22 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript @@ -0,0 +1,175 @@ +################## +### CATEGORIES ### +################## +# customsubcategory=100_contentelement=Templates +# customsubcategory=110_contentelement=Header +# customsubcategory=120_contentelement=Subheader +# customsubcategory=130_contentelement=Lightbox +# customsubcategory=131_contentelement=Media +# customsubcategory=140_contentelement=Gallery +# customsubcategory=150_contentelement=Menu Thumbnail +# customsubcategory=160_contentelement=Menu Card +# customsubcategory=170_contentelement=Text and Icon +# customsubcategory=180_contentelement=Timeline +# customsubcategory=190_contentelement=Uploads + + +######################## +### CONTENT ELEMENTS ### +######################## +plugin.bootstrap_package_contentelements { + view { + # cat=bootstrap package: content elements/100_contentelement/001_layoutRootPath; type=string; label=Layout Root Path: Path to layouts + layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/ContentElements/ + # cat=bootstrap package: content elements/100_contentelement/002_partialRootPath; type=string; label=Partial Root Path: Path to partials + partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/ContentElements/ + # cat=bootstrap package: content elements/100_contentelement/003_templateRootPath; type=string; label=Template Root Path: Path to templates + templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/ContentElements/ + } + header { + # cat=bootstrap package: content elements/110_contentelement/001_defaultHeaderType; type=int[1-5]; label=Default Header type: Enter the number of the header layout to be used by default + defaultHeaderType = 2 + # cat=bootstrap package: content elements/110_contentelement/002_class; type=string; label=Default Header class + class = element-header + date { + # cat=bootstrap package: content elements/110_contentelement/003_date_format; type=string; label=Header date format + format = %B %e, %Y + } + } + subheader { + # cat=bootstrap package: content elements/120_contentelement/001_class; type=string; label=Default Subheader class + class = element-subheader + } + lightbox { + # cat=bootstrap package: content elements/130_contentelement/001_cssclass; type=string; label=Css Class + cssClass = lightbox + # cat=bootstrap package: content elements/130_contentelement/002_prefix; type=string; label=Group Prefix + prefix = lightbox-group + image { + # cat=bootstrap package: content elements/130_contentelement/003_image_maxheight; type=int+; label=Max Image Hight + maxHeight = 1200 + # cat=bootstrap package: content elements/130_contentelement/003_image_maxwidth; type=int+; label=Max Image Width + maxWidth = 1200 + } + } + media { + additionalConfig { + # cat=bootstrap package: content elements/131_contentelement/001_autoplay; type=boolean; label=Autoplay + autoplay = 0 + # cat=bootstrap package: content elements/131_contentelement/002_controls; type=boolean; label=Controls + controls = 1 + # cat=bootstrap package: content elements/131_contentelement/003_loop; type=boolean; label=Loop + loop = 0 + # cat=bootstrap package: content elements/131_contentelement/004_enablejsapi; type=boolean; label=Enable JavaScript API + enablejsapi = 1 + # cat=bootstrap package: content elements/131_contentelement/005_showinfo; type=boolean; label=Show Info + showinfo = 0 + # cat=bootstrap package: content elements/131_contentelement/005_relatedVideos; type=boolean; label=Related Videos + relatedVideos = 0 + # cat=bootstrap package: content elements/131_contentelement/005_relatedVideos; type=boolean; label=Modest Branding + modestbranding = 0 + } + } + gallery { + columns { + 1 { + # cat=bootstrap package: content elements/140_contentelement/001_columns_1_class; type=string; label=Item CSS Class for 1 column + class = gallery-item-size-1 + } + 2 { + # cat=bootstrap package: content elements/140_contentelement/002_columns_2_class; type=string; label=Item CSS Class for 2 columns + class = gallery-item-size-2 + } + 3 { + # cat=bootstrap package: content elements/140_contentelement/003_columns_3_class; type=string; label=Item CSS Class for 3 columns + class = gallery-item-size-3 + } + 4 { + # cat=bootstrap package: content elements/140_contentelement/004_columns_4_class; type=string; label=Item CSS Class for 4 Columns + class = gallery-item-size-4 + } + 5 { + # cat=bootstrap package: content elements/140_contentelement/005_columns_5_class; type=string; label=Item CSS Class for 5 Columns + class = gallery-item-size-5 + } + 6 { + # cat=bootstrap package: content elements/140_contentelement/006_columns_6_class; type=string; label=Item CSS Class for 6 Columns + class = gallery-item-size-6 + } + } + } + menu_thumbnail { + title { + # cat=bootstrap package: content elements/150_contentelement/001_title_crop; type=string; label=Crop Title + crop = 100 + } + subtitle { + # cat=bootstrap package: content elements/150_contentelement/002_subtitle_crop; type=string; label=Crop Subtitle + crop = 80 + } + } + menu_card { + icon { + # cat=bootstrap package: content elements/160_contentelement/001_icon_enable; type=boolean; label=Enable Icon + enable = 0 + # cat=bootstrap package: content elements/160_contentelement/002_icon_height; type=string; label=Icon Height + height = 32 + # cat=bootstrap package: content elements/160_contentelement/003_icon_width; type=string; label=Icon Width + width = 32c + } + title { + # cat=bootstrap package: content elements/160_contentelement/004_title_crop; type=string; label=Crop Title + crop = 100 + } + subtitle { + # cat=bootstrap package: content elements/160_contentelement/005_subtitle_crop; type=string; label=Crop Subtitle + crop = 100 + } + abstract { + # cat=bootstrap package: content elements/160_contentelement/006_abstract_crop; type=string; label=Crop Abstract + crop = 250 + } + } + texticon { + icon { + default { + # cat=bootstrap package: content elements/170_contentelement/001_default_icon_height; type=string; label=Default Icon Height + height = 32 + # cat=bootstrap package: content elements/170_contentelement/002_default_icon_width; type=string; label=Default Icon Width + width = 32 + } + medium { + # cat=bootstrap package: content elements/170_contentelement/003_medium_icon_height; type=string; label=Medium Icon Height + height = 48 + # cat=bootstrap package: content elements/170_contentelement/004_medium_icon_width; type=string; label=Medium Icon Width + width = 48 + } + large { + # cat=bootstrap package: content elements/170_contentelement/005_large_icon_height; type=string; label=Large Icon Height + height = 64 + # cat=bootstrap package: content elements/170_contentelement/006_large_icon_width; type=string; label=Large Icon Width + width = 64 + } + awesome { + # cat=bootstrap package: content elements/170_contentelement/007_awesome_icon_height; type=string; label=Awesome Icon Height + height = 80 + # cat=bootstrap package: content elements/170_contentelement/008_awesome_icon_width; type=string; label=Awesome Icon Width + width = 80 + } + } + } + timeline { + date { + # cat=bootstrap package: content elements/180_contentelement/001_date_format; type=string; label=Date Format + format = %B %e, %Y - %H:%M + } + } + uploads { + preview { + # cat=bootstrap package: content elements/190_contentelement/001_preview_height; type=string; label=Preview Height + height = 100c + # cat=bootstrap package: content elements/190_contentelement/001_preview_width; type=string; label=Preview Width + width = 100c + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript new file mode 100644 index 0000000..9f7fab6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript @@ -0,0 +1,59 @@ +################ +#### HELPER #### +################ +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ContentElement.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Helper/ParseFunc.typoscript' + + +############################################################# +#### CONTENT ELEMENT RENDERING #### +#### Manual inclusion to keep control over loading order #### +############################################################# +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Audio.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Bullets.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Csv.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Div.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Header.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Html.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Image.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/List.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Media.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuAbstract.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedContent.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCategorizedPages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuPages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSubpages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRecentlyUpdated.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuRelatedPages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSection.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSectionPages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemap.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuSitemapPages.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Quote.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Shortcut.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/SocialLinks.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Table.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Text.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textcolumn.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textteaser.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textpic.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Textmedia.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Uploads.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Accordion.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CardGroup.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Carousel.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselSmall.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/CarouselFullscreen.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/ExternalMedia.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Gallery.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/IconGroup.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/ListGroup.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Panel.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Tab.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Texticon.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/Timeline.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardDir.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuCardList.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailDir.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/Element/MenuThumbnailList.typoscript' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript new file mode 100644 index 0000000..f03057e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript @@ -0,0 +1,42 @@ +############################ +### CUSTOM SUBCATEGORIES ### +############################ +# customsubcategory=230=Cookie Consent + +############ +### PAGE ### +############ +page { + theme { + cookieconsent { + # cat=bootstrap package: cookie consent/230/01_enable; type=boolean; label=Enable Cookie Consent: For more information about this solution please head over to https://cookieconsent.insites.com/ + enable = 1 + # cat=bootstrap package: cookie consent/230/02_layout; type=options[Basic=basic, Basic Close=basic-close, Basic Header=basic-header]; label=Layout + layout = basic + # cat=bootstrap package: cookie consent/230/03_position; type=options[Banner Top=top, Banner Bottom=bottom, Floating Top Left=top-left, Floating Top Right=top-right, Floating Bottom Left=bottom-left, Floating Bottom Right=bottom-right]; label=Position: Position is used to describe where on the screen your popup should display. We also use 'position' to assume the shape of your popup. If you specify 'top' or 'bottom', we assume that a full width 'banner' is required. If however you specify a horizontal direction, we assume that a corner popup is required (which we call 'floating'). + position = bottom + # cat=bootstrap package: cookie consent/230/04_static; type=boolean; label=Static Position: The popup uses position fixed to stay in one place on the screen despite any scroll bars. This option makes the popup position static so it displays at the top of the page. A height animation has also been added by default so the popup doesn’t make the page jump, but gradually grows and fades in. + static = 0 + content { + # cat=bootstrap package: cookie consent/230/05_content_href; type=string; label=Privacy Police: Insert a full Link to the privacy police page or a page uid from your current TYPO3 System. + href = + } + # cat=bootstrap package: cookie consent/230/06_revokable; type=boolean; label=Revokable: If set true, revoke button is displayed every time. If false, revoke button is only displayed for advanced compliance options (opt-in and opt-out) and in countries that require revokable consent. The latter can be disabled by regionalLaw. + revokable = 0 + # cat=bootstrap package: cookie consent/230/07_location; type=boolean; label=Location Detection: Location is simply a tool for getting the two letter country code that the user is in. + location = 0 + law { + # cat=bootstrap package: cookie consent/230/08_law_countryCode; type=string; label=Country Code: Rather than getting the country code from the location services, you can hard code a particular country into the tool. + countryCode = + # cat=bootstrap package: cookie consent/230/09_law_regionalLaw; type=boolean; label=Regional Law: If false, then we only enable the popup if the country has the cookie law. We ignore all other country specific rules. + regionalLaw = 1 + } + # cat=bootstrap package: cookie consent/230/10_type; type=options[Informal=info, Opt-In=opt-in, Opt-Out=opt-out]; label=Compliance: The informal confirmation does not require any further adjustments to your JavaScript. The Opt-In and Opt-Out options are not out-of-the-box solutions, manual adjustments to your software are necessary. For your support we provide the events bk2k.cookie.enable, bk2k.cookie.disable and bk2k.cookie.revoke. These events allow you to let your application react to them and to set or remove cookies accordingly. The cookie that contains the current status is called cookieconsent_status. + type = info + cookie { + # cat=bootstrap package: cookie consent/230/11_expiryDays; type=int; label=Expiry Days: The cookies expire date, specified in days (specify -1 for no expiry) + expiryDays = 365 + } + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript new file mode 100644 index 0000000..2688d71 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript @@ -0,0 +1,11 @@ +######################## +#### COOKIE CONSENT #### +######################## +[{$page.theme.cookieconsent.enable} == 1] + page { + includeJSFooterlibs { + contrib_cookieconsent = EXT:bootstrap_package/Resources/Public/Contrib/cookieconsent/cookieconsent.min.js + bootstrap_cookieconsent = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.cookieconsent.min.js + } + } +[end] diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Container/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Container/setup.typoscript new file mode 100644 index 0000000..634207c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Container/setup.typoscript @@ -0,0 +1,229 @@ +############################### +### RESPONSIVE IMAGE CONFIG ### +############################### +lib.contentElement { + settings { + responsiveimages { + container { + container_2_columns { + 201 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 202 { + multiplier { + default = 0.5 + xlarge = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } + container_2_columns_right { + 201 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.33 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 202 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + medium = 0.66 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } + container_2_columns_left { + 201 { + multiplier { + default = 0.75 + xlarge = 0.75 + large = 0.75 + medium = 0.66 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 202 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.33 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } + container_3_columns { + 201 { + multiplier { + default = 0.33 + xlarge = 0.33 + large = 0.33 + medium = 0.33 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 202 { + multiplier { + default = 0.33 + xlarge = 0.33 + large = 0.33 + medium = 0.33 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 203 { + multiplier { + default = 0.33 + xlarge = 0.33 + large = 0.33 + medium = 0.33 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } + container_4_columns { + 201 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 202 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 203 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + 204 { + multiplier { + default = 0.25 + xlarge = 0.25 + large = 0.25 + medium = 0.5 + } + gutters { + default = 40 + xlarge = 40 + large = 40 + medium = 40 + } + } + } + } + } + } +} + +############################### +### RESPONSIVE IMAGE CONFIG ### +############################### +lib.contentElement { + dataProcessing { + 1628591788 = BK2K\BootstrapPackage\DataProcessing\ContainerContextProcessor + } +} + +######################## +### CONTAINER CONFIG ### +######################## +lib.contentContainer < lib.contentElement +lib.contentContainer { + templateName = Container + dataProcessing { + 1628519620 = B13\Container\DataProcessing\ContainerProcessor + } +} +tt_content.container_1_columns < lib.contentContainer +tt_content.container_2_columns < lib.contentContainer +tt_content.container_2_columns_right < lib.contentContainer +tt_content.container_2_columns_left < lib.contentContainer +tt_content.container_3_columns < lib.contentContainer +tt_content.container_4_columns < lib.contentContainer diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/constants.typoscript new file mode 100644 index 0000000..1912a5f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/constants.typoscript @@ -0,0 +1,6 @@ +######################## +#### FRONTEND LOGIN #### +######################## +styles.content.loginform { + templateFile = EXT:bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/setup.typoscript new file mode 100644 index 0000000..ffe6797 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Felogin/setup.typoscript @@ -0,0 +1,19 @@ +######################## +#### FRONTEND LOGIN #### +######################## +plugin.tx_felogin_pi1 { + wrapContentInBaseClass = 0 + welcomeMessage_stdWrap.wrap =

|

+ logoutMessage_stdWrap.wrap =

|

+ errorMessage_stdWrap.wrap =

|

+ successMessage_stdWrap.wrap =

|

+ cookieWarning_stdWrap.wrap =

|

+ forgotMessage_stdWrap.wrap =

|

+ forgotErrorMessage_stdWrap.wrap =

|

+ forgotResetMessageEmailSentMessage_stdWrap.wrap =

|

+ changePasswordNotValidMessage_stdWrap.wrap =

|

+ changePasswordTooShortMessage_stdWrap.wrap =

|

+ changePasswordNotEqualMessage_stdWrap.wrap =

|

+ changePasswordMessage_stdWrap.wrap =

|

+ changePasswordDoneMessage_stdWrap.wrap =

|

+} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/constants.typoscript new file mode 100644 index 0000000..0dd38ee --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/constants.typoscript @@ -0,0 +1,3 @@ +######################## +#### FORM FRAMEWORK #### +######################## diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/setup.typoscript new file mode 100644 index 0000000..c5665d9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Form/setup.typoscript @@ -0,0 +1,5 @@ +######################## +#### FORM FRAMEWORK #### +######################## + +@import 'EXT:form/Configuration/TypoScript/setup.typoscript' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/constants.typoscript new file mode 100644 index 0000000..aaced09 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/constants.typoscript @@ -0,0 +1,5 @@ +######################## +#### INDEXED SEARCH #### +######################## + +@import 'EXT:indexed_search/Configuration/TypoScript/constants.typoscript' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/setup.typoscript new file mode 100644 index 0000000..1a004ff --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/IndexedSearch/setup.typoscript @@ -0,0 +1,22 @@ +######################## +#### INDEXED SEARCH #### +######################## + +@import 'EXT:indexed_search/Configuration/TypoScript/setup.typoscript' + +plugin.tx_indexedsearch { + view { + templateRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Templates/IndexedSearch/ + 21 = {$plugin.bootstrap_package.view.templateRootPath}IndexedSearch/ + } + partialRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Partials/IndexedSearch/ + 21 = {$plugin.bootstrap_package.view.partialRootPath}IndexedSearch/ + } + layoutRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Layouts/IndexedSearch/ + 21 = {$plugin.bootstrap_package.view.layoutRootPath}IndexedSearch/ + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/constants.typoscript new file mode 100644 index 0000000..3731f4a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/constants.typoscript @@ -0,0 +1,5 @@ +############# +#### SEO #### +############# + +@import 'EXT:seo/Configuration/TypoScript/XmlSitemap/constants.typoscript' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/setup.typoscript new file mode 100644 index 0000000..4d747f5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Extension/Seo/setup.typoscript @@ -0,0 +1,22 @@ +############# +#### SEO #### +############# + +@import 'EXT:seo/Configuration/TypoScript/XmlSitemap/setup.typoscript' + +plugin.tx_seo { + view { + templateRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Templates/Seo/ + 21 = {$plugin.bootstrap_package.view.templateRootPath}Seo/ + } + partialRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Partials/Seo/ + 21 = {$plugin.bootstrap_package.view.partialRootPath}Seo/ + } + layoutRootPaths { + 20 = EXT:bootstrap_package/Resources/Private/Layouts/Seo/ + 21 = {$plugin.bootstrap_package.view.layoutRootPath}Seo/ + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript new file mode 100644 index 0000000..095cbbe --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript @@ -0,0 +1,54 @@ +###################### +### TEMPLATE BLOCK ### +###################### +# +# TypoScript Example: +# --------------- +# +# 10 < lib.block +# 10.templateName = MyBlock +# +# +# Fluid Example: +# --------------- +# +# +# +###################### +lib.block = FLUIDTEMPLATE +lib.block { + + ################ + ### TEMPLATE ### + ################ + templateName = Default + templateName { + override { + field = template + } + } + templateRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Templates/Blocks/ + 10 = {$plugin.bootstrap_package_blocks.view.templateRootPath} + } + partialRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Partials/Blocks/ + 10 = {$plugin.bootstrap_package_blocks.view.partialRootPath} + } + layoutRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Layouts/Blocks/ + 10 = {$plugin.bootstrap_package_blocks.view.layoutRootPath} + } + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor + 1 { + as = theme + key = page.theme + } + } + +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript new file mode 100644 index 0000000..1f21f67 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript @@ -0,0 +1,42 @@ +#################### +#### PAGE CLASS #### +#################### +lib.page.class = COA +lib.page.class { + // Page alias or id as fallback + 10 = TEXT + 10 { + field = alias // uid + noTrimWrap = |page-|| + } + // Current level of the page within the tree structure + 20 = TEXT + 20 { + data = level:1 + noTrimWrap = | pagelevel-|| + } + // Language + 30 = TEXT + 30 { + data = siteLanguage:languageId + noTrimWrap = | language-|| + } + // Backend layout + 40 = TEXT + 40 { + data = pagelayout + replacement.10 { + search = pagets__ + replace = + } + ifEmpty = default + noTrimWrap = | backendlayout-|| + } + // Layout + 50 = TEXT + 50 { + field = layout + noTrimWrap = | layout-|| + ifEmpty = default + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/constants.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/constants.typoscript new file mode 100644 index 0000000..aa3fd51 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/constants.typoscript @@ -0,0 +1,316 @@ +############################ +### CUSTOM SUBCATEGORIES ### +############################ +# customsubcategory=100=Page Template +# customsubcategory=110=Logo +# customsubcategory=111=Favicon +# customsubcategory=120=Meta Settings +# customsubcategory=150=Config +# customsubcategory=151=Navigation +# customsubcategory=152=Subnavigation +# customsubcategory=160=Theme +# customsubcategory=161=Font +# customsubcategory=162=Breadcrumb +# customsubcategory=165=Social Media +# customsubcategory=167=Meta +# customsubcategory=168=Language +# customsubcategory=169=Copyright +# customsubcategory=180=Tracking +# customsubcategory=190=Bootstrap Package Settings +# customsubcategory=200=Extension Overrides +# customsubcategory=201=Blocks + +###################### +#### DEPENDENCIES #### +###################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/constants.typoscript' + +############ +### PAGE ### +############ +page { + logo { + # cat=bootstrap package: logo/110/100; type=string; label=Logo: Leave blank to use website title from template instead + file = EXT:bootstrap_package/Resources/Public/Images/BootstrapPackage.svg + # cat=bootstrap package: logo/110/110; type=string; label=Logo Inverted: Leave blank to use website title from template instead + fileInverted = EXT:bootstrap_package/Resources/Public/Images/BootstrapPackageInverted.svg + # cat=bootstrap package: logo/110/120; type=int+; label=Height: The image will not be resized! + height = 52 + # cat=bootstrap package: logo/110/130; type=int+; label=Width: The image will not be resized! + width = 180 + # cat=bootstrap package: logo/110/140; type=string; label=Alternative text: Text of the alt attribute of the logo image (default: " logo") + alt = + # cat=bootstrap package: logo/110/150; type=string; label=Link title: Title of the link attribute of the logo image + linktitle = + } + + favicon { + # cat=bootstrap package: logo/111/100; type=string; label=Favicon + file = EXT:bootstrap_package/Resources/Public/Icons/favicon.ico + } + + theme { + googleFont { + # cat=bootstrap package: google font/161/1_enable; type=boolean; label=Enable + enable = 1 + # cat=bootstrap package: google font/161/2_font; type=options[Lora=Lora, Merriweather=Merriweather, Nunito=Nunito, Raleway=Raleway, Roboto=Roboto, Source Sans Pro=Source Sans Pro, Quattrocento=Quattrocento, Ubuntu=Ubuntu]; label=Font + font = Source Sans Pro + # cat=bootstrap package: google font/161/3_weight; type=string; label=Font Weights: Comma separated list of font weights + weight = 300,400,700 + } + + navigation { + # cat=bootstrap package: navigation/151/100; type=options[Default=default, Default Transition=default-transition, Inverse=inverse, Inverse Transition=inverse-transition]; label=Navigation Style + style = default + # cat=bootstrap package: navigation/151/101; type=options[Default=, Fixed Top=top]; label=Navigation Type + type = + icon { + # cat=bootstrap package: navigation/151/102; type=boolean; label=Navigation Icon Enable + enable = 1 + # cat=bootstrap package: navigation/151/103; type=int+; label=Navigation Icon Width + width = 20 + # cat=bootstrap package: navigation/151/104; type=int+; label=Navigation Icon Height + height = 20 + } + dropdown { + icon { + # cat=bootstrap package: navigation/151/105; type=boolean; label=Dropdown Icon Enable + enable = 1 + # cat=bootstrap package: navigation/151/106; type=int+; label=Dropdown Icon Width + width = 16 + # cat=bootstrap package: navigation/151/107; type=int+; label=Dropdown Icon Height + height = 16 + } + } + } + + subnavigation { + icon { + # cat=bootstrap package: navigation/152/108; type=boolean; label=SubNavigation Icon Enable + enable = 1 + # cat=bootstrap package: navigation/152/109; type=int+; label=SubNavigation Icon Width + width = 16 + # cat=bootstrap package: navigation/152/110; type=int+; label=SubNavigation Icon Width + height = 16 + } + } + + breadcrumb { + # cat=bootstrap package: navigation/162/breadcrumb_enable; type=boolean; label=Breadcrumb: Enable to display the breadcrumb + enable = 1 + # cat=bootstrap package: navigation/162/breadcrumb_enableLevel; type=int+; label=Breadcrumb Enable Level: Enable breadcrumb menu is greater or equal this value + enableLevel = 2 + icon { + # cat=bootstrap package: navigation/162/breadcrumb_icon_enable; type=boolean; label=Breadcrumb Icon: Enable navigation icons in the breadcrumb + enable = 0 + # cat=bootstrap package: navigation/162/breadcrumb_icon_width; type=int+; label=Breadcrumb Icon Width + width = 16 + # cat=bootstrap package: navigation/162/breadcrumb_icon_height; type=int+; label=Breadcrumb Icon Height + height = 16 + } + } + + meta { + # cat=bootstrap package: navigation/167/meta_enable; type=boolean; label=MetaSection: Enable to display the MetaSection at bottom + enable = 1 + # cat=bootstrap package: navigation/167/meta_navigationValue; type=string; label=Meta Navigation Values: Comma separated list of page uids + navigationValue = + # cat=bootstrap package: navigation/167/meta_navigationType; type=options[List=list, Directory=directory]; label=Meta Navigation Type + navigationType = list + # cat=bootstrap package: navigation/167/meta_includeNotInMenu; type=boolean; label=Meta Navigation include items not in menu + includeNotInMenu = 1 + } + + language { + # cat=bootstrap package: language/168/language_enable; type=boolean; label=LanguageSection: Enable to display the LanguageSection at bottom + enable = 1 + # cat=bootstrap package: language/168/language_languageValue; type=string; label=Language Navigation Values: Comma separated list of language uids or set to 'auto' to load all enabled system languages + languageValue = auto + } + + socialmedia { + # cat=bootstrap package: social media/165/00_enable; type=boolean; label=Social Media: Enable to display the social media links + enable = 1 + channels { + facebook { + label = Facebook + # cat=bootstrap package: social media/165/01_facebook_url; type=string; label=Facebook: Insert the full account url + url = + } + twitter { + label = Twitter + # cat=bootstrap package: social media/165/02_twitter_url; type=string; label=Twitter: Insert the full account url + url = + } + instagram { + label = Instagram + # cat=bootstrap package: social media/165/03_instagram_url; type=string; label=Instagram: Insert the full account url + url = + } + github { + label = GitHub + # cat=bootstrap package: social media/165/04_googleplus_url; type=string; label=GitHub: Insert the full account url + url = + } + googleplus { + label = Google+ + # cat=bootstrap package: social media/165/04_googleplus_url; type=string; label=Google+: Insert the full account url + url = + } + linkedin { + label = LinkedIn + # cat=bootstrap package: social media/165/05_linkedin_url; type=string; label=LinkedIn: Insert the full account url + url = + } + xing { + label = Xing + # cat=bootstrap package: social media/165/06_xing_url; type=string; label=Xing: Insert the full account url + url = + } + youtube { + label = YouTube + # cat=bootstrap package: social media/165/07_youtube_url; type=string; label=YouTube: Insert the full account url + url = + } + vk { + label = VK + # cat=bootstrap package: social media/165/08_vk_url; type=string; label=VK: Insert the full account url + url = + } + vimeo { + label = Vimeo + # cat=bootstrap package: social media/165/09_vimeo_url; type=string; label=Vimeo: Insert the full account url + url = + } + rss { + label = RSS + # cat=bootstrap package: social media/165/10_rss_url; type=string; label=RSS: Insert the full url + url = + } + } + } + + copyright { + # cat=bootstrap package: copyright/169/120; type=boolean; label=Copyright: Enable to display the copyright + enable = 1 + # cat=bootstrap package: copyright/169/121; type=string; label=Copyright Text + text = Running with TYPO3 and Bootstrap Package. + } + } + + fluidtemplate { + # cat=bootstrap package: templates/100/100; type=string; label=Layout Root Path: Path to layouts + layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/Page/ + # cat=bootstrap package: templates/100/110; type=string; label=Partial Root Path: Path to partials + partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/Page/ + # cat=bootstrap package: templates/100/120; type=string; label=Template Root Path: Path to templates + templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/Page/ + } + + meta { + # cat=bootstrap package: meta data/120/100; type=string; label=viewport + viewport = width=device-width, initial-scale=1, minimum-scale=1 + # cat=bootstrap package: meta data/120/110; type=string; label=robots + robots = index,follow + # cat=bootstrap package: meta data/120/120; type=string; label=apple-mobile-web-app-capable + apple-mobile-web-app-capable = no + # cat=bootstrap package: meta data/120/130; type=string; label=compatible + compatible = IE=edge + # cat=bootstrap package: meta data/120/140; type=string; label=google + google = notranslate + # cat=bootstrap package: meta data/120/150; type=string; label=google-site-verification + google-site-verification = + } + + tracking { + google { + # cat=bootstrap package: tracking/180/100; type=string; label=Google Analytics: Tracking-ID + trackingID = + } + } +} + +############## +### CONFIG ### +############## +config { + # cat=bootstrap package: config/150/110; type=boolean; label=No Cache + no_cache = 0 + # cat=bootstrap package: config/150/120; type=options[Do not remove=0,Remove=1,Move to external file=external]; label=Remove default JavaScript + removeDefaultJS = 0 + # cat=bootstrap package: config/150/130; type=boolean; label=Compress JavaScript + compressJs = 1 + # cat=bootstrap package: config/150/140; type=boolean; label=Compress CSS + compressCss = 1 + # cat=bootstrap package: config/150/150; type=boolean; label=Concatenate JavaScript + concatenateJs = 1 + # cat=bootstrap package: config/150/160; type=boolean; label=Concatenate CSS + concatenateCss = 1 + # cat=bootstrap package: config/150/170; type=boolean; label=Admin Panel + admPanel = 1 + # cat=bootstrap package: config/150/180; type=options[None=,All=all,Cached=cached,Output=output]; label=Prefix local Anchors: See [http://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#prefixlocalanchors] for explanation. + prefixLocalAnchors = all + # cat=bootstrap package: config/150/190; type=string; label=Header Comment + headerComment = Based on the TYPO3 Bootstrap Package by Benjamin Kott - https://www.bootstrap-package.com/ + # cat=bootstrap package: config/150/210; type=boolean; label=Send cache headers: Allow appropriate caching by transparent proxies and browser clients + sendCacheHeaders = 1 +} + +######################### +### BOOTSTRAP PACKAGE ### +######################### +plugin.bootstrap_package { + settings { + # cat=bootstrap package: css parser/190/100; type=boolean; label=Override Parser Variables: If enabled the variables defined in your SCSS files will be overridden with the ones defined as TypoScript Constants. + overrideParserVariables = 1 + # cat=bootstrap package: css parser/190/110; type=boolean; label=CSS source mapping: Create a CSS source map useful to debug CSS in browser developer tools. Note: CSS compression will be disabled. + cssSourceMapping = 0 + } +} + +################################# +### BOOTSTRAP PACKAGE BLOCKS #### +################################# +plugin.bootstrap_package_blocks { + view { + # cat=bootstrap package: blocks/201/layoutRootPath; type=string; label=Layout Root Path: Path to layouts + layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/Blocks/ + # cat=bootstrap package: blocks/201/partialRootPath; type=string; label=Partial Root Path: Path to partials + partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/Blocks/ + # cat=bootstrap package: blocks/201/templateRootPath; type=string; label=Template Root Path: Path to templates + templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/Blocks/ + } +} + +#################################### +### BOOTSTRAP PACKAGE EXTENSIONS ### +#################################### +plugin.bootstrap_package { + view { + # cat=bootstrap package: templates/200/layoutRootPath; type=string; label=Layout Root Path: Path to layouts + layoutRootPath = EXT:bootstrap_package/Resources/Private/Layouts/ + # cat=bootstrap package: templates/200/partialRootPath; type=string; label=Partial Root Path: Path to partials + partialRootPath = EXT:bootstrap_package/Resources/Private/Partials/ + # cat=bootstrap package: templates/200/templateRootPath; type=string; label=Template Root Path: Path to templates + templateRootPath = EXT:bootstrap_package/Resources/Private/Templates/ + } +} + +#################### +#### COMPONENTS #### +#################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/CookieConsent/constants.typoscript' + +############################################################# +#### EXTENSIONS #### +#### Manual inclusion to keep control over loading order #### +############################################################# + + + + + +################### +#### FRAMEWORK #### +################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/Bootstrap5/constants.typoscript' diff --git a/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/setup.typoscript b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/setup.typoscript new file mode 100644 index 0000000..da20be2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Configuration/TypoScript/setup.typoscript @@ -0,0 +1,478 @@ +###################### +#### DEPENDENCIES #### +###################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/ContentElement/setup.typoscript' + + +################ +#### HELPER #### +################ +@import 'EXT:bootstrap_package/Configuration/TypoScript/Helper/Block.typoscript' +@import 'EXT:bootstrap_package/Configuration/TypoScript/Helper/PageClass.typoscript' + + +############################################################# +#### EXTENSIONS #### +#### Manual inclusion to keep control over loading order #### +############################################################# + + + + + + + +################### +#### FRAMEWORK #### +################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/Bootstrap5/setup.typoscript' + + +#################################### +#### BOOTSTRAP PACKAGE SETTINGS #### +#################################### +plugin.tx_bootstrappackage { + settings { + overrideParserVariables = {$plugin.bootstrap_package.settings.overrideParserVariables} + cssSourceMapping = {$plugin.bootstrap_package.settings.cssSourceMapping} + } +} + + +############## +#### PAGE #### +############## +page = PAGE +page { + typeNum = 0 + shortcutIcon = {$page.favicon.file} + + bodyTagCObject = COA + bodyTagCObject { + 10 = TEXT + 10.data = TSFE:id + 10.noTrimWrap = | id="p|"| + 20 =< lib.page.class + 20.stdWrap.noTrimWrap = | class="|"| + wrap = + } + + headerData { + // Flip ahead browsing for IE10/11 + // http://msdn.microsoft.com/en-us/library/ie/jj883726(v=vs.85).aspx + 10 = HMENU + 10 { + special = browse + special { + items = prev|next + } + 1 = TMENU + 1.NO { + allWrap = |*| + doNotLinkIt = 1 + stdWrap { + typolink { + parameter.data = field:uid + returnLast = url + } + } + } + } + } + + 10 = FLUIDTEMPLATE + 10 { + # Template names will be generated automatically by converting the applied + # backend_layout, there is no explicit mapping necessary anymore. + # + # BackendLayout Key + # subnavigation_right_2_columns -> SubnavigationRight2Columns.html + # + # Backend Record + # uid: 1 -> 1.html + # + # Database Entry + # value: -1 -> None.html + # value: pagets__subnavigation_right_2_columns -> SubnavigationRight2Columns.html + templateName = TEXT + templateName { + cObject = TEXT + cObject { + data = pagelayout + required = 1 + case = uppercamelcase + split { + token = pagets__ + cObjNum = 1 + 1.current = 1 + } + } + ifEmpty = Default + } + + templateRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Templates/Page/ + 1 = {$page.fluidtemplate.templateRootPath} + } + partialRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Partials/Page/ + 1 = {$page.fluidtemplate.partialRootPath} + } + layoutRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Layouts/Page/ + 1 = {$page.fluidtemplate.layoutRootPath} + } + + ########################## + ### DATA PREPROCESSING ### + ########################## + dataProcessing { + 1 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor + 1 { + as = theme + key = page.theme + } + 10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 10 { + levels = 2 + includeSpacer = 1 + as = mainnavigation + dataProcessing { + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = nav_icon_set + iconIdentifier.field = nav_icon_identifier + iconFileFieldName = nav_icon + as = icon + if { + isTrue.stdWrap.cObject = COA + isTrue.stdWrap.cObject { + 10 = TEXT + 10.value = 1 + 10.if.isTrue = {$page.theme.navigation.icon.enable} + 20 = TEXT + 20.value = 1 + 20.if.isTrue = {$page.theme.navigation.dropdown.icon.enable} + } + } + } + } + } + 20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 20 { + entryLevel = 1 + levels = 2 + expandAll = 0 + includeSpacer = 1 + as = subnavigation + dataProcessing { + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = nav_icon_set + iconIdentifier.field = nav_icon_identifier + iconFileFieldName = nav_icon + as = icon + if { + isTrue = {$page.theme.subnavigation.icon.enable} + } + } + } + } + 30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 30 { + special = rootline + special.range = 0|-1 + includeNotInMenu = 1 + as = breadcrumb + if { + value = {$page.theme.breadcrumb.enableLevel} + value { + insertData = 1 + prioriCalc = 1 + stdWrap.wrap = |-1 + } + isGreaterThan { + data = level + } + } + dataProcessing { + 1628754217 = BK2K\BootstrapPackage\DataProcessing\IconsDataProcessor + 1628754217 { + iconSet.field = nav_icon_set + iconIdentifier.field = nav_icon_identifier + iconFileFieldName = nav_icon + as = icon + } + } + } + 40 = TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor + 40 { + languages = {$page.theme.language.languageValue} + as = languagenavigation + } + 50 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor + 50 { + special = {$page.theme.meta.navigationType} + special.value = {$page.theme.meta.navigationValue} + includeNotInMenu = {$page.theme.meta.includeNotInMenu} + as = metanavigation + if { + isTrue = {$page.theme.meta.navigationValue} + } + } + 1553883874 = BK2K\BootstrapPackage\DataProcessing\StaticFilesProcessor + 1553883874 { + files { + normal = {$page.logo.file} + inverted = {$page.logo.fileInverted} + } + as = logo + } + } + + ################ + ### SETTINGS ### + ################ + settings { + logo { + height = {$page.logo.height} + width = {$page.logo.width} + linktitle = {$page.logo.linktitle} + } + } + + ################# + ### VARIABLES ### + ################# + variables { + pageTitle = TEXT + pageTitle.data = page:title + siteTitle = TEXT + siteTitle.data = siteLanguage:websiteTitle//site:websiteTitle//site:identifier + rootPage = TEXT + rootPage.data = leveluid:0 + pagelayout = TEXT + pagelayout { + data = pagelayout + replacement.10 { + search = pagets__ + replace = + } + ifEmpty = default + } + logoAlt = COA + logoAlt { + 10 = TEXT + 10 { + data = siteLanguage:websiteTitle//site:websiteTitle//site:identifier + noTrimWrap = || logo| + if.isFalse = {$page.logo.alt} + } + 20 = TEXT + 20 { + value = {$page.logo.alt} + if.isTrue = {$page.logo.alt} + } + } + # BreadcrumbExtendedValue should be used to display the title of a + # single record. For example the title of a news record. + breadcrumbExtendedValue = COA + breadcrumbExtendedValue { + } + } + + stdWrap.replacement { + 1 { + search = http://###BACKEND_URL###/ + replace.typolink { + parameter = typo3/ + returnLast = url + } + } + 2 { + search = ###FRONTEND_URL### + replace.typolink { + parameter.data = leveluid:0 + returnLast = url + } + } + 3 { + search = ###CURRENTYEAR### + replace { + data = date:U + strftime = %Y + } + } + 4 { + search = ###SPACE### + replace { + char = 32 + } + } + } + } + + meta { + viewport = {$page.meta.viewport} + robots = {$page.meta.robots} + apple-mobile-web-app-capable = {$page.meta.apple-mobile-web-app-capable} + + X-UA-Compatible = {$page.meta.compatible} + X-UA-Compatible { + attribute = http-equiv + } + + # Google + google = {$page.meta.google} + google-site-verification = {$page.meta.google-site-verification} + } + + includeCSSLibs { + googlewebfont = https://fonts.googleapis.com/css?display=swap&family={$page.theme.googleFont.font}:{$page.theme.googleFont.weight} + googlewebfont { + external = 1 + disableCompression = 1 + excludeFromConcatenation = 1 + if { + isTrue = {$page.theme.googleFont.enable} + } + } + bootstrappackageicon = EXT:bootstrap_package/Resources/Public/Fonts/bootstrappackageicon.min.css + } + + includeJSLibs { + modernizr = EXT:bootstrap_package/Resources/Public/Contrib/modernizr/modernizr.min.js + modernizr.forceOnTop = 1 + modernizr.async = 1 + } + + includeJSFooterlibs { + #### Contrib + jquery = EXT:bootstrap_package/Resources/Public/Contrib/jquery/jquery.min.js + jquery.forceOnTop = 1 + photoswipe_core = EXT:bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe.min.js + photoswipe_ui = EXT:bootstrap_package/Resources/Public/Contrib/photoswipe/photoswipe-ui-default.min.js + + #### Custom Modules + bootstrap_accordion = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.accordion.min.js + bootstrap_popover = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.popover.min.js + bootstrap_stickyheader = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.stickyheader.min.js + bootstrap_smoothscroll = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.smoothscroll.min.js + bootstrap_lightbox = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.lightbox.min.js + bootstrap_navbar = EXT:bootstrap_package/Resources/Public/JavaScript/Dist/bootstrap.navbar.min.js + } +} + + +########################## +#### GOOGLE ANALYTICS #### +########################## +page { + 10.stdWrap.replacement { + 99 { + search = ###GoogleAnalyticsStatus### + replace { + cObject < lib.block + cObject.templateName = GoogleAnalyticsStatus + } + } + } + jsInline { + 99 = COA + 99 { + if { + isTrue = {$page.tracking.google.trackingID} + } + 10 = TEXT + 10.value ( + var gaProperty = '{$page.tracking.google.trackingID}'; + var disableStr = 'ga-disable-' + gaProperty; + if (document.cookie.indexOf(disableStr + '=true') > -1) { + window[disableStr] = true; + } + function googleAnalyticsToggle(event) { + if (document.cookie.indexOf(disableStr + '=true') > -1) { + event.target.innerHTML = event.target.getAttribute('data-label-disable'); + googleAnalyticsOptIn(); + } else { + event.target.innerHTML = event.target.getAttribute('data-label-enable'); + googleAnalyticsOptOut(); + } + } + function googleAnalyticsOptOut() { + document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; + window[disableStr] = true; + } + function googleAnalyticsOptIn() { + document.cookie = disableStr + '=; expires=Thu, 01 Jan 1970 00:00:01 UTC; path=/'; + window[disableStr] = false; + } + document.addEventListener('DOMContentLoaded', function() { + var matches = document.querySelectorAll('[data-action="googleAnalyticsToggle"]'); + for (i=0; i -1) { + matches[i].innerHTML = matches[i].getAttribute('data-label-enable'); + } else { + matches[i].innerHTML = matches[i].getAttribute('data-label-disable'); + } + matches[i].onclick = function(event) { + event.preventDefault(); + event.stopPropagation(); + googleAnalyticsToggle(event); + } + } + }); + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', '{$page.tracking.google.trackingID}', 'auto'); + ga('set', 'anonymizeIp', true); + ) + 90 = TEXT + 90.value ( + + ga('send', 'pageview'); + ) + } + } +} + + +#################### +#### COMPONENTS #### +#################### +@import 'EXT:bootstrap_package/Configuration/TypoScript/CookieConsent/setup.typoscript' + + +################ +#### CONFIG #### +################ +config { + absRefPrefix = auto + no_cache = {$config.no_cache} + pageTitleFirst = 1 + pageTitleSeparator = - + pageTitleSeparator.noTrimWrap = | | | + linkVars = L(int) + prefixLocalAnchors = {$config.prefixLocalAnchors} + doctype = html5 + removeDefaultJS = {$config.removeDefaultJS} + admPanel = {$config.admPanel} + debug = 0 + sendCacheHeaders = {$config.sendCacheHeaders} + index_enable = 1 + index_externals = 1 + index_metatags = 1 + headerComment = {$config.headerComment} + + // Language Settings + sys_language_overlay = 1 + sys_language_mode = content_fallback + + // Compression and Concatenation of CSS and JS Files + compressJs = {$config.compressJs} + compressCss = {$config.compressCss} + concatenateJs = {$config.concatenateJs} + concatenateCss = {$config.concatenateCss} +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/.htaccess b/public/typo3conf/ext/bootstrap_package/Contrib/.htaccess new file mode 100644 index 0000000..b26e123 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/.htaccess @@ -0,0 +1,6 @@ +# This file restricts access to the fileadmin/_temp_ directory. It is +# meant to protect temporary files which could contain sensible +# information. Please do not touch. + +Order deny,allow +Deny from all diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/LICENSE.md b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/LICENSE.md new file mode 100644 index 0000000..afcfdfb --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/LICENSE.md @@ -0,0 +1,20 @@ +Copyright (c) 2015 Leaf Corcoran, http://scssphp.github.io/scssphp + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/README.md b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/README.md new file mode 100644 index 0000000..65bb93e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/README.md @@ -0,0 +1,71 @@ +# scssphp +### + +![Build](https://github.com/scssphp/scssphp/workflows/CI/badge.svg) +[![License](https://poser.pugx.org/scssphp/scssphp/license)](https://packagist.org/packages/scssphp/scssphp) + +`scssphp` is a compiler for SCSS written in PHP. + +Checkout the homepage, , for directions on how to use. + +## Running Tests + +`scssphp` uses [PHPUnit](https://github.com/sebastianbergmann/phpunit) for testing. + +Run the following command from the root directory to run every test: + + vendor/bin/phpunit tests + +There are several tests in the `tests/` directory: + +* `ApiTest.php` contains various unit tests that test the PHP interface. +* `ExceptionTest.php` contains unit tests that test for exceptions thrown by the parser and compiler. +* `FailingTest.php` contains tests reported in Github issues that demonstrate compatibility bugs. +* `InputTest.php` compiles every `.scss` file in the `tests/inputs` directory + then compares to the respective `.css` file in the `tests/outputs` directory. +* `SassSpecTest.php` extracts tests from the `sass/sass-spec` repository. + +When changing any of the tests in `tests/inputs`, the tests will most likely +fail because the output has changed. Once you verify that the output is correct +you can run the following command to rebuild all the tests: + + BUILD=1 vendor/bin/phpunit tests + +This will compile all the tests, and save results into `tests/outputs`. It also +updates the list of excluded specs from sass-spec. + +To enable the full `sass-spec` compatibility tests: + + TEST_SASS_SPEC=1 vendor/bin/phpunit tests + +## Coding Standard + +`scssphp` source conforms to [PSR12](https://www.php-fig.org/psr/psr-12/). + +Run the following command from the root directory to check the code for "sniffs". + + vendor/bin/phpcs --standard=PSR12 --extensions=php bin src tests *.php + +## Static Analysis + +`scssphp` uses [phpstan](https://phpstan.org/) for static analysis. + +Run the following command from the root directory to analyse the codebase: + + make phpstan + +As most of the codebase is composed of legacy code which cannot be type-checked +fully, the setup contains a baseline file with all errors we want to ignore. In +particular, we ignore all errors related to not specifying the types inside arrays +when these arrays correspond to the representation of Sass values and Sass AST nodes +in the parser and compiler. +When contributing, the proper process to deal with static analysis is the following: + +1. Make your change in the codebase +2. Run `make phpstan` +3. Fix errors reported by phpstan when possible +4. Repeat step 2 and 3 until nothing gets fixed anymore at step 3 +5. Run `make phpstan-baseline` to regenerate the phpstan baseline + +Additions to the baseline will be reviewed to avoid ignoring errors that should have +been fixed. diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/bin/pscss b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/bin/pscss new file mode 100644 index 0000000..e622398 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/bin/pscss @@ -0,0 +1,244 @@ +#!/usr/bin/env php +parse($data)), true)); + + fwrite(STDERR, 'Warning: the --dump-tree option is deprecated. Use proper debugging tools instead.'); + + exit(); +} + +$scss = new Compiler(); + +if ($loadPaths) { + $scss->setImportPaths($loadPaths); +} + +if ($style) { + if ($style === OutputStyle::COMPRESSED || $style === OutputStyle::EXPANDED) { + $scss->setOutputStyle($style); + } else { + fwrite(STDERR, "WARNING: the $style style is deprecated.\n"); + $scss->setFormatter('ScssPhp\\ScssPhp\\Formatter\\' . ucfirst($style)); + } +} + +$outputFile = isset($arguments[1]) ? $arguments[1] : null; +$sourceMapFile = null; + +if ($sourceMap) { + $sourceMapOptions = array( + 'outputSourceFiles' => $embedSources, + ); + if ($embedSourceMap || $outputFile === null) { + $scss->setSourceMap(Compiler::SOURCE_MAP_INLINE); + } else { + $sourceMapFile = $outputFile . '.map'; + $sourceMapOptions['sourceMapWriteTo'] = $sourceMapFile; + $sourceMapOptions['sourceMapURL'] = basename($sourceMapFile); + $sourceMapOptions['sourceMapBasepath'] = getcwd(); + $sourceMapOptions['sourceMapFilename'] = basename($outputFile); + + $scss->setSourceMap(Compiler::SOURCE_MAP_FILE); + } + + $scss->setSourceMapOptions($sourceMapOptions); +} + +if ($encoding) { + $scss->setEncoding($encoding); +} + +try { + $result = $scss->compileString($data, $inputFile); +} catch (SassException $e) { + fwrite(STDERR, 'Error: '.$e->getMessage()."\n"); + exit(1); +} + +if ($outputFile) { + file_put_contents($outputFile, $result->getCss()); + + if ($sourceMapFile !== null && $result->getSourceMap() !== null) { + file_put_contents($sourceMapFile, $result->getSourceMap()); + } +} else { + echo $result->getCss(); +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/composer.json b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/composer.json new file mode 100644 index 0000000..86cd396 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/composer.json @@ -0,0 +1,108 @@ +{ + "name": "scssphp/scssphp", + "type": "library", + "description": "scssphp is a compiler for SCSS written in PHP.", + "keywords": ["css", "stylesheet", "scss", "sass", "less"], + "homepage": "http://scssphp.github.io/scssphp/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "homepage": "https://github.com/robocoder" + }, + { + "name": "Cédric Morin", + "email": "cedric@yterium.com", + "homepage": "https://github.com/Cerdic" + } + ], + "autoload": { + "psr-4": { "ScssPhp\\ScssPhp\\": "src/" } + }, + "autoload-dev": { + "psr-4": { "ScssPhp\\ScssPhp\\Tests\\": "tests/" } + }, + "require": { + "php": ">=5.6.0", + "ext-json": "*", + "ext-ctype": "*" + }, + "suggest": { + "ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv", + "ext-iconv": "Can be used as fallback when ext-mbstring is not available" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4", + "sass/sass-spec": "*", + "squizlabs/php_codesniffer": "~3.5", + "symfony/phpunit-bridge": "^5.1", + "thoughtbot/bourbon": "^7.0", + "twbs/bootstrap": "~5.0", + "twbs/bootstrap4": "4.6.0", + "zurb/foundation": "~6.5" + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "sass/sass-spec", + "version": "2021.09.15", + "source": { + "type": "git", + "url": "https://github.com/sass/sass-spec.git", + "reference": "eb2d7a0865c1faf0b55a39ff962b24aca9b4c955" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sass/sass-spec/zipball/eb2d7a0865c1faf0b55a39ff962b24aca9b4c955", + "reference": "eb2d7a0865c1faf0b55a39ff962b24aca9b4c955", + "shasum": "" + } + } + }, + { + "type": "package", + "package": { + "name": "thoughtbot/bourbon", + "version": "v7.0.0", + "source": { + "type": "git", + "url": "https://github.com/thoughtbot/bourbon.git", + "reference": "fbe338ee6807e7f7aa996d82c8a16f248bb149b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thoughtbot/bourbon/zipball/fbe338ee6807e7f7aa996d82c8a16f248bb149b3", + "reference": "fbe338ee6807e7f7aa996d82c8a16f248bb149b3", + "shasum": "" + } + } + }, + { + "type": "package", + "package": { + "name": "twbs/bootstrap4", + "version": "v4.6.0", + "source": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git", + "reference": "6ffb0b48e455430f8a5359ed689ad64c1143fac2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twbs/bootstrap/zipball/6ffb0b48e455430f8a5359ed689ad64c1143fac2", + "reference": "6ffb0b48e455430f8a5359ed689ad64c1143fac2", + "shasum": "" + } + } + } + ], + "bin": ["bin/pscss"], + "config": { + "sort-packages": true + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/phpcs.xml.dist b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/phpcs.xml.dist new file mode 100644 index 0000000..b162dbd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/phpcs.xml.dist @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/scss.inc.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/scss.inc.php new file mode 100644 index 0000000..4598378 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/scss.inc.php @@ -0,0 +1,21 @@ + + * + * @internal + */ +class Range +{ + /** + * @var float|int + */ + public $first; + + /** + * @var float|int + */ + public $last; + + /** + * Initialize range + * + * @param integer|float $first + * @param integer|float $last + */ + public function __construct($first, $last) + { + $this->first = $first; + $this->last = $last; + } + + /** + * Test for inclusion in range + * + * @param integer|float $value + * + * @return boolean + */ + public function includes($value) + { + return $value >= $this->first && $value <= $this->last; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Block.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Block.php new file mode 100644 index 0000000..3ae49d0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Block.php @@ -0,0 +1,73 @@ + + * + * @internal + */ +class Block +{ + /** + * @var string + */ + public $type; + + /** + * @var \ScssPhp\ScssPhp\Block + */ + public $parent; + + /** + * @var string + */ + public $sourceName; + + /** + * @var integer + */ + public $sourceIndex; + + /** + * @var integer + */ + public $sourceLine; + + /** + * @var integer + */ + public $sourceColumn; + + /** + * @var array|null + */ + public $selectors; + + /** + * @var array + */ + public $comments; + + /** + * @var array + */ + public $children; + + /** + * @var \ScssPhp\ScssPhp\Block|null + */ + public $selfParent; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Cache.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Cache.php new file mode 100644 index 0000000..9731c60 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Cache.php @@ -0,0 +1,272 @@ + + * + * @internal + */ +class Cache +{ + const CACHE_VERSION = 1; + + /** + * directory used for storing data + * + * @var string|false + */ + public static $cacheDir = false; + + /** + * prefix for the storing data + * + * @var string + */ + public static $prefix = 'scssphp_'; + + /** + * force a refresh : 'once' for refreshing the first hit on a cache only, true to never use the cache in this hit + * + * @var bool|string + */ + public static $forceRefresh = false; + + /** + * specifies the number of seconds after which data cached will be seen as 'garbage' and potentially cleaned up + * + * @var int + */ + public static $gcLifetime = 604800; + + /** + * array of already refreshed cache if $forceRefresh==='once' + * + * @var array + */ + protected static $refreshed = []; + + /** + * Constructor + * + * @param array $options + * + * @phpstan-param array{cacheDir?: string, prefix?: string, forceRefresh?: string} $options + */ + public function __construct($options) + { + // check $cacheDir + if (isset($options['cacheDir'])) { + self::$cacheDir = $options['cacheDir']; + } + + if (empty(self::$cacheDir)) { + throw new Exception('cacheDir not set'); + } + + if (isset($options['prefix'])) { + self::$prefix = $options['prefix']; + } + + if (empty(self::$prefix)) { + throw new Exception('prefix not set'); + } + + if (isset($options['forceRefresh'])) { + self::$forceRefresh = $options['forceRefresh']; + } + + self::checkCacheDir(); + } + + /** + * Get the cached result of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation parse, compile... + * @param mixed $what content key (e.g., filename to be treated) + * @param array $options any option that affect the operation result on the content + * @param int|null $lastModified last modified timestamp + * + * @return mixed + * + * @throws \Exception + */ + public function getCache($operation, $what, $options = [], $lastModified = null) + { + $fileCache = self::$cacheDir . self::cacheName($operation, $what, $options); + + if ( + ((self::$forceRefresh === false) || (self::$forceRefresh === 'once' && + isset(self::$refreshed[$fileCache]))) && file_exists($fileCache) + ) { + $cacheTime = filemtime($fileCache); + + if ( + (\is_null($lastModified) || $cacheTime > $lastModified) && + $cacheTime + self::$gcLifetime > time() + ) { + $c = file_get_contents($fileCache); + $c = unserialize($c); + + if (\is_array($c) && isset($c['value'])) { + return $c['value']; + } + } + } + + return null; + } + + /** + * Put in cache the result of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation + * @param mixed $what + * @param mixed $value + * @param array $options + * + * @return void + */ + public function setCache($operation, $what, $value, $options = []) + { + $fileCache = self::$cacheDir . self::cacheName($operation, $what, $options); + + $c = ['value' => $value]; + $c = serialize($c); + + file_put_contents($fileCache, $c); + + if (self::$forceRefresh === 'once') { + self::$refreshed[$fileCache] = true; + } + } + + /** + * Get the cache name for the caching of $operation on $what, + * which is known as dependant from the content of $options + * + * @param string $operation + * @param mixed $what + * @param array $options + * + * @return string + */ + private static function cacheName($operation, $what, $options = []) + { + $t = [ + 'version' => self::CACHE_VERSION, + 'scssphpVersion' => Version::VERSION, + 'operation' => $operation, + 'what' => $what, + 'options' => $options + ]; + + $t = self::$prefix + . sha1(json_encode($t)) + . ".$operation" + . ".scsscache"; + + return $t; + } + + /** + * Check that the cache dir exists and is writeable + * + * @return void + * + * @throws \Exception + */ + public static function checkCacheDir() + { + self::$cacheDir = str_replace('\\', '/', self::$cacheDir); + self::$cacheDir = rtrim(self::$cacheDir, '/') . '/'; + + if (! is_dir(self::$cacheDir)) { + throw new Exception('Cache directory doesn\'t exist: ' . self::$cacheDir); + } + + if (! is_writable(self::$cacheDir)) { + throw new Exception('Cache directory isn\'t writable: ' . self::$cacheDir); + } + } + + /** + * Delete unused cached files + * + * @return void + */ + public static function cleanCache() + { + static $clean = false; + + if ($clean || empty(self::$cacheDir)) { + return; + } + + $clean = true; + + // only remove files with extensions created by SCSSPHP Cache + // css files removed based on the list files + $removeTypes = ['scsscache' => 1]; + + $files = scandir(self::$cacheDir); + + if (! $files) { + return; + } + + $checkTime = time() - self::$gcLifetime; + + foreach ($files as $file) { + // don't delete if the file wasn't created with SCSSPHP Cache + if (strpos($file, self::$prefix) !== 0) { + continue; + } + + $parts = explode('.', $file); + $type = array_pop($parts); + + if (! isset($removeTypes[$type])) { + continue; + } + + $fullPath = self::$cacheDir . $file; + $mtime = filemtime($fullPath); + + // don't delete if it's a relatively new file + if ($mtime > $checkTime) { + continue; + } + + unlink($fullPath); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Colors.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Colors.php new file mode 100644 index 0000000..e836e3f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Colors.php @@ -0,0 +1,247 @@ + + * + * @internal + */ +class Colors +{ + /** + * CSS Colors + * + * @see http://www.w3.org/TR/css3-color + * + * @var array + */ + protected static $cssColors = [ + 'aliceblue' => '240,248,255', + 'antiquewhite' => '250,235,215', + 'aqua' => '0,255,255', + 'cyan' => '0,255,255', + 'aquamarine' => '127,255,212', + 'azure' => '240,255,255', + 'beige' => '245,245,220', + 'bisque' => '255,228,196', + 'black' => '0,0,0', + 'blanchedalmond' => '255,235,205', + 'blue' => '0,0,255', + 'blueviolet' => '138,43,226', + 'brown' => '165,42,42', + 'burlywood' => '222,184,135', + 'cadetblue' => '95,158,160', + 'chartreuse' => '127,255,0', + 'chocolate' => '210,105,30', + 'coral' => '255,127,80', + 'cornflowerblue' => '100,149,237', + 'cornsilk' => '255,248,220', + 'crimson' => '220,20,60', + 'darkblue' => '0,0,139', + 'darkcyan' => '0,139,139', + 'darkgoldenrod' => '184,134,11', + 'darkgray' => '169,169,169', + 'darkgrey' => '169,169,169', + 'darkgreen' => '0,100,0', + 'darkkhaki' => '189,183,107', + 'darkmagenta' => '139,0,139', + 'darkolivegreen' => '85,107,47', + 'darkorange' => '255,140,0', + 'darkorchid' => '153,50,204', + 'darkred' => '139,0,0', + 'darksalmon' => '233,150,122', + 'darkseagreen' => '143,188,143', + 'darkslateblue' => '72,61,139', + 'darkslategray' => '47,79,79', + 'darkslategrey' => '47,79,79', + 'darkturquoise' => '0,206,209', + 'darkviolet' => '148,0,211', + 'deeppink' => '255,20,147', + 'deepskyblue' => '0,191,255', + 'dimgray' => '105,105,105', + 'dimgrey' => '105,105,105', + 'dodgerblue' => '30,144,255', + 'firebrick' => '178,34,34', + 'floralwhite' => '255,250,240', + 'forestgreen' => '34,139,34', + 'fuchsia' => '255,0,255', + 'magenta' => '255,0,255', + 'gainsboro' => '220,220,220', + 'ghostwhite' => '248,248,255', + 'gold' => '255,215,0', + 'goldenrod' => '218,165,32', + 'gray' => '128,128,128', + 'grey' => '128,128,128', + 'green' => '0,128,0', + 'greenyellow' => '173,255,47', + 'honeydew' => '240,255,240', + 'hotpink' => '255,105,180', + 'indianred' => '205,92,92', + 'indigo' => '75,0,130', + 'ivory' => '255,255,240', + 'khaki' => '240,230,140', + 'lavender' => '230,230,250', + 'lavenderblush' => '255,240,245', + 'lawngreen' => '124,252,0', + 'lemonchiffon' => '255,250,205', + 'lightblue' => '173,216,230', + 'lightcoral' => '240,128,128', + 'lightcyan' => '224,255,255', + 'lightgoldenrodyellow' => '250,250,210', + 'lightgray' => '211,211,211', + 'lightgrey' => '211,211,211', + 'lightgreen' => '144,238,144', + 'lightpink' => '255,182,193', + 'lightsalmon' => '255,160,122', + 'lightseagreen' => '32,178,170', + 'lightskyblue' => '135,206,250', + 'lightslategray' => '119,136,153', + 'lightslategrey' => '119,136,153', + 'lightsteelblue' => '176,196,222', + 'lightyellow' => '255,255,224', + 'lime' => '0,255,0', + 'limegreen' => '50,205,50', + 'linen' => '250,240,230', + 'maroon' => '128,0,0', + 'mediumaquamarine' => '102,205,170', + 'mediumblue' => '0,0,205', + 'mediumorchid' => '186,85,211', + 'mediumpurple' => '147,112,219', + 'mediumseagreen' => '60,179,113', + 'mediumslateblue' => '123,104,238', + 'mediumspringgreen' => '0,250,154', + 'mediumturquoise' => '72,209,204', + 'mediumvioletred' => '199,21,133', + 'midnightblue' => '25,25,112', + 'mintcream' => '245,255,250', + 'mistyrose' => '255,228,225', + 'moccasin' => '255,228,181', + 'navajowhite' => '255,222,173', + 'navy' => '0,0,128', + 'oldlace' => '253,245,230', + 'olive' => '128,128,0', + 'olivedrab' => '107,142,35', + 'orange' => '255,165,0', + 'orangered' => '255,69,0', + 'orchid' => '218,112,214', + 'palegoldenrod' => '238,232,170', + 'palegreen' => '152,251,152', + 'paleturquoise' => '175,238,238', + 'palevioletred' => '219,112,147', + 'papayawhip' => '255,239,213', + 'peachpuff' => '255,218,185', + 'peru' => '205,133,63', + 'pink' => '255,192,203', + 'plum' => '221,160,221', + 'powderblue' => '176,224,230', + 'purple' => '128,0,128', + 'red' => '255,0,0', + 'rosybrown' => '188,143,143', + 'royalblue' => '65,105,225', + 'saddlebrown' => '139,69,19', + 'salmon' => '250,128,114', + 'sandybrown' => '244,164,96', + 'seagreen' => '46,139,87', + 'seashell' => '255,245,238', + 'sienna' => '160,82,45', + 'silver' => '192,192,192', + 'skyblue' => '135,206,235', + 'slateblue' => '106,90,205', + 'slategray' => '112,128,144', + 'slategrey' => '112,128,144', + 'snow' => '255,250,250', + 'springgreen' => '0,255,127', + 'steelblue' => '70,130,180', + 'tan' => '210,180,140', + 'teal' => '0,128,128', + 'thistle' => '216,191,216', + 'tomato' => '255,99,71', + 'turquoise' => '64,224,208', + 'violet' => '238,130,238', + 'wheat' => '245,222,179', + 'white' => '255,255,255', + 'whitesmoke' => '245,245,245', + 'yellow' => '255,255,0', + 'yellowgreen' => '154,205,50', + 'rebeccapurple' => '102,51,153', + 'transparent' => '0,0,0,0', + ]; + + /** + * Convert named color in a [r,g,b[,a]] array + * + * @param string $colorName + * + * @return int[]|null + */ + public static function colorNameToRGBa($colorName) + { + if (\is_string($colorName) && isset(static::$cssColors[$colorName])) { + $rgba = explode(',', static::$cssColors[$colorName]); + + // only case with opacity is transparent, with opacity=0, so we can intval on opacity also + $rgba = array_map('intval', $rgba); + + return $rgba; + } + + return null; + } + + /** + * Reverse conversion : from RGBA to a color name if possible + * + * @param integer $r + * @param integer $g + * @param integer $b + * @param integer|float $a + * + * @return string|null + */ + public static function RGBaToColorName($r, $g, $b, $a = 1) + { + static $reverseColorTable = null; + + if (! is_numeric($r) || ! is_numeric($g) || ! is_numeric($b) || ! is_numeric($a)) { + return null; + } + + if ($a < 1) { + return null; + } + + if (\is_null($reverseColorTable)) { + $reverseColorTable = []; + + foreach (static::$cssColors as $name => $rgb_str) { + $rgb_str = explode(',', $rgb_str); + + if ( + \count($rgb_str) == 3 && + ! isset($reverseColorTable[\intval($rgb_str[0])][\intval($rgb_str[1])][\intval($rgb_str[2])]) + ) { + $reverseColorTable[\intval($rgb_str[0])][\intval($rgb_str[1])][\intval($rgb_str[2])] = $name; + } + } + } + + if (isset($reverseColorTable[\intval($r)][\intval($g)][\intval($b)])) { + return $reverseColorTable[\intval($r)][\intval($g)][\intval($b)]; + } + + return null; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/CompilationResult.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/CompilationResult.php new file mode 100644 index 0000000..36adb0d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/CompilationResult.php @@ -0,0 +1,69 @@ +css = $css; + $this->sourceMap = $sourceMap; + $this->includedFiles = $includedFiles; + } + + /** + * @return string + */ + public function getCss() + { + return $this->css; + } + + /** + * @return string[] + */ + public function getIncludedFiles() + { + return $this->includedFiles; + } + + /** + * The sourceMap content, if it was generated + * + * @return null|string + */ + public function getSourceMap() + { + return $this->sourceMap; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler.php new file mode 100644 index 0000000..58ba795 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler.php @@ -0,0 +1,10087 @@ + + * + * @final Extending the Compiler is deprecated + */ +class Compiler +{ + /** + * @deprecated + */ + const LINE_COMMENTS = 1; + /** + * @deprecated + */ + const DEBUG_INFO = 2; + + /** + * @deprecated + */ + const WITH_RULE = 1; + /** + * @deprecated + */ + const WITH_MEDIA = 2; + /** + * @deprecated + */ + const WITH_SUPPORTS = 4; + /** + * @deprecated + */ + const WITH_ALL = 7; + + const SOURCE_MAP_NONE = 0; + const SOURCE_MAP_INLINE = 1; + const SOURCE_MAP_FILE = 2; + + /** + * @var array + */ + protected static $operatorNames = [ + '+' => 'add', + '-' => 'sub', + '*' => 'mul', + '/' => 'div', + '%' => 'mod', + + '==' => 'eq', + '!=' => 'neq', + '<' => 'lt', + '>' => 'gt', + + '<=' => 'lte', + '>=' => 'gte', + ]; + + /** + * @var array + */ + protected static $namespaces = [ + 'special' => '%', + 'mixin' => '@', + 'function' => '^', + ]; + + public static $true = [Type::T_KEYWORD, 'true']; + public static $false = [Type::T_KEYWORD, 'false']; + /** @deprecated */ + public static $NaN = [Type::T_KEYWORD, 'NaN']; + /** @deprecated */ + public static $Infinity = [Type::T_KEYWORD, 'Infinity']; + public static $null = [Type::T_NULL]; + public static $nullString = [Type::T_STRING, '', []]; + public static $defaultValue = [Type::T_KEYWORD, '']; + public static $selfSelector = [Type::T_SELF]; + public static $emptyList = [Type::T_LIST, '', []]; + public static $emptyMap = [Type::T_MAP, [], []]; + public static $emptyString = [Type::T_STRING, '"', []]; + public static $with = [Type::T_KEYWORD, 'with']; + public static $without = [Type::T_KEYWORD, 'without']; + + /** + * @var array + */ + protected $importPaths = []; + /** + * @var array + */ + protected $importCache = []; + + /** + * @var string[] + */ + protected $importedFiles = []; + + /** + * @var array + * @phpstan-var array + */ + protected $userFunctions = []; + /** + * @var array + */ + protected $registeredVars = []; + /** + * @var array + */ + protected $registeredFeatures = [ + 'extend-selector-pseudoclass' => false, + 'at-error' => true, + 'units-level-3' => true, + 'global-variable-shadowing' => false, + ]; + + /** + * @var string|null + */ + protected $encoding = null; + /** + * @var null + * @deprecated + */ + protected $lineNumberStyle = null; + + /** + * @var int|SourceMapGenerator + * @phpstan-var self::SOURCE_MAP_*|SourceMapGenerator + */ + protected $sourceMap = self::SOURCE_MAP_NONE; + + /** + * @var array + * @phpstan-var array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} + */ + protected $sourceMapOptions = []; + + /** + * @var bool + */ + private $charset = true; + + /** + * @var string|\ScssPhp\ScssPhp\Formatter + */ + protected $formatter = Expanded::class; + + /** + * @var Environment + */ + protected $rootEnv; + /** + * @var OutputBlock|null + */ + protected $rootBlock; + + /** + * @var \ScssPhp\ScssPhp\Compiler\Environment + */ + protected $env; + /** + * @var OutputBlock|null + */ + protected $scope; + /** + * @var Environment|null + */ + protected $storeEnv; + /** + * @var bool|null + * + * @deprecated + */ + protected $charsetSeen; + /** + * @var array + */ + protected $sourceNames; + + /** + * @var Cache|null + */ + protected $cache; + + /** + * @var bool + */ + protected $cacheCheckImportResolutions = false; + + /** + * @var int + */ + protected $indentLevel; + /** + * @var array[] + */ + protected $extends; + /** + * @var array + */ + protected $extendsMap; + + /** + * @var array + */ + protected $parsedFiles = []; + + /** + * @var Parser|null + */ + protected $parser; + /** + * @var int|null + */ + protected $sourceIndex; + /** + * @var int|null + */ + protected $sourceLine; + /** + * @var int|null + */ + protected $sourceColumn; + /** + * @var bool|null + */ + protected $shouldEvaluate; + /** + * @var null + * @deprecated + */ + protected $ignoreErrors; + /** + * @var bool + */ + protected $ignoreCallStackMessage = false; + + /** + * @var array[] + */ + protected $callStack = []; + + /** + * @var array + * @phpstan-var list + */ + private $resolvedImports = []; + + /** + * The directory of the currently processed file + * + * @var string|null + */ + private $currentDirectory; + + /** + * The directory of the input file + * + * @var string + */ + private $rootDirectory; + + /** + * @var bool + */ + private $legacyCwdImportPath = true; + + /** + * @var LoggerInterface + */ + private $logger; + + /** + * @var array + */ + private $warnedChildFunctions = []; + + /** + * Constructor + * + * @param array|null $cacheOptions + * @phpstan-param array{cacheDir?: string, prefix?: string, forceRefresh?: string, checkImportResolutions?: bool}|null $cacheOptions + */ + public function __construct($cacheOptions = null) + { + $this->sourceNames = []; + + if ($cacheOptions) { + $this->cache = new Cache($cacheOptions); + if (!empty($cacheOptions['checkImportResolutions'])) { + $this->cacheCheckImportResolutions = true; + } + } + + $this->logger = new StreamLogger(fopen('php://stderr', 'w'), true); + } + + /** + * Get compiler options + * + * @return array + * + * @internal + */ + public function getCompileOptions() + { + $options = [ + 'importPaths' => $this->importPaths, + 'registeredVars' => $this->registeredVars, + 'registeredFeatures' => $this->registeredFeatures, + 'encoding' => $this->encoding, + 'sourceMap' => serialize($this->sourceMap), + 'sourceMapOptions' => $this->sourceMapOptions, + 'formatter' => $this->formatter, + 'legacyImportPath' => $this->legacyCwdImportPath, + ]; + + return $options; + } + + /** + * Sets an alternative logger. + * + * Changing the logger in the middle of the compilation is not + * supported and will result in an undefined behavior. + * + * @param LoggerInterface $logger + * + * @return void + */ + public function setLogger(LoggerInterface $logger) + { + $this->logger = $logger; + } + + /** + * Set an alternative error output stream, for testing purpose only + * + * @param resource $handle + * + * @return void + * + * @deprecated Use {@see setLogger} instead + */ + public function setErrorOuput($handle) + { + @trigger_error('The method "setErrorOuput" is deprecated. Use "setLogger" instead.', E_USER_DEPRECATED); + + $this->logger = new StreamLogger($handle); + } + + /** + * Compile scss + * + * @param string $code + * @param string|null $path + * + * @return string + * + * @throws SassException when the source fails to compile + * + * @deprecated Use {@see compileString} instead. + */ + public function compile($code, $path = null) + { + @trigger_error(sprintf('The "%s" method is deprecated. Use "compileString" instead.', __METHOD__), E_USER_DEPRECATED); + + $result = $this->compileString($code, $path); + + $sourceMap = $result->getSourceMap(); + + if ($sourceMap !== null) { + if ($this->sourceMap instanceof SourceMapGenerator) { + $this->sourceMap->saveMap($sourceMap); + } elseif ($this->sourceMap === self::SOURCE_MAP_FILE) { + $sourceMapGenerator = new SourceMapGenerator($this->sourceMapOptions); + $sourceMapGenerator->saveMap($sourceMap); + } + } + + return $result->getCss(); + } + + /** + * Compile scss + * + * @param string $source + * @param string|null $path + * + * @return CompilationResult + * + * @throws SassException when the source fails to compile + */ + public function compileString($source, $path = null) + { + if ($this->cache) { + $cacheKey = ($path ? $path : '(stdin)') . ':' . md5($source); + $compileOptions = $this->getCompileOptions(); + $cachedResult = $this->cache->getCache('compile', $cacheKey, $compileOptions); + + if ($cachedResult instanceof CachedResult && $this->isFreshCachedResult($cachedResult)) { + return $cachedResult->getResult(); + } + } + + $this->indentLevel = -1; + $this->extends = []; + $this->extendsMap = []; + $this->sourceIndex = null; + $this->sourceLine = null; + $this->sourceColumn = null; + $this->env = null; + $this->scope = null; + $this->storeEnv = null; + $this->shouldEvaluate = null; + $this->ignoreCallStackMessage = false; + $this->parsedFiles = []; + $this->importedFiles = []; + $this->resolvedImports = []; + + if (!\is_null($path) && is_file($path)) { + $path = realpath($path) ?: $path; + $this->currentDirectory = dirname($path); + $this->rootDirectory = $this->currentDirectory; + } else { + $this->currentDirectory = null; + $this->rootDirectory = getcwd(); + } + + try { + $this->parser = $this->parserFactory($path); + $tree = $this->parser->parse($source); + $this->parser = null; + + $this->formatter = new $this->formatter(); + $this->rootBlock = null; + $this->rootEnv = $this->pushEnv($tree); + + $warnCallback = function ($message, $deprecation) { + $this->logger->warn($message, $deprecation); + }; + $previousWarnCallback = Warn::setCallback($warnCallback); + + try { + $this->injectVariables($this->registeredVars); + $this->compileRoot($tree); + $this->popEnv(); + } finally { + Warn::setCallback($previousWarnCallback); + } + + $sourceMapGenerator = null; + + if ($this->sourceMap) { + if (\is_object($this->sourceMap) && $this->sourceMap instanceof SourceMapGenerator) { + $sourceMapGenerator = $this->sourceMap; + $this->sourceMap = self::SOURCE_MAP_FILE; + } elseif ($this->sourceMap !== self::SOURCE_MAP_NONE) { + $sourceMapGenerator = new SourceMapGenerator($this->sourceMapOptions); + } + } + + $out = $this->formatter->format($this->scope, $sourceMapGenerator); + + $prefix = ''; + + if ($this->charset && strlen($out) !== Util::mbStrlen($out)) { + $prefix = '@charset "UTF-8";' . "\n"; + $out = $prefix . $out; + } + + $sourceMap = null; + + if (! empty($out) && $this->sourceMap && $this->sourceMap !== self::SOURCE_MAP_NONE) { + $sourceMap = $sourceMapGenerator->generateJson($prefix); + $sourceMapUrl = null; + + switch ($this->sourceMap) { + case self::SOURCE_MAP_INLINE: + $sourceMapUrl = sprintf('data:application/json,%s', Util::encodeURIComponent($sourceMap)); + break; + + case self::SOURCE_MAP_FILE: + if (isset($this->sourceMapOptions['sourceMapURL'])) { + $sourceMapUrl = $this->sourceMapOptions['sourceMapURL']; + } + break; + } + + if ($sourceMapUrl !== null) { + $out .= sprintf('/*# sourceMappingURL=%s */', $sourceMapUrl); + } + } + } catch (SassScriptException $e) { + throw new CompilerException($this->addLocationToMessage($e->getMessage()), 0, $e); + } + + $includedFiles = []; + + foreach ($this->resolvedImports as $resolvedImport) { + $includedFiles[$resolvedImport['filePath']] = $resolvedImport['filePath']; + } + + $result = new CompilationResult($out, $sourceMap, array_values($includedFiles)); + + if ($this->cache && isset($cacheKey) && isset($compileOptions)) { + $this->cache->setCache('compile', $cacheKey, new CachedResult($result, $this->parsedFiles, $this->resolvedImports), $compileOptions); + } + + // Reset state to free memory + // TODO in 2.0, reset parsedFiles as well when the getter is removed. + $this->resolvedImports = []; + $this->importedFiles = []; + + return $result; + } + + /** + * @param CachedResult $result + * + * @return bool + */ + private function isFreshCachedResult(CachedResult $result) + { + // check if any dependency file changed since the result was compiled + foreach ($result->getParsedFiles() as $file => $mtime) { + if (! is_file($file) || filemtime($file) !== $mtime) { + return false; + } + } + + if ($this->cacheCheckImportResolutions) { + $resolvedImports = []; + + foreach ($result->getResolvedImports() as $import) { + $currentDir = $import['currentDir']; + $path = $import['path']; + // store the check across all the results in memory to avoid multiple findImport() on the same path + // with same context. + // this is happening in a same hit with multiple compilations (especially with big frameworks) + if (empty($resolvedImports[$currentDir][$path])) { + $resolvedImports[$currentDir][$path] = $this->findImport($path, $currentDir); + } + + if ($resolvedImports[$currentDir][$path] !== $import['filePath']) { + return false; + } + } + } + + return true; + } + + /** + * Instantiate parser + * + * @param string|null $path + * + * @return \ScssPhp\ScssPhp\Parser + */ + protected function parserFactory($path) + { + // https://sass-lang.com/documentation/at-rules/import + // CSS files imported by Sass don’t allow any special Sass features. + // In order to make sure authors don’t accidentally write Sass in their CSS, + // all Sass features that aren’t also valid CSS will produce errors. + // Otherwise, the CSS will be rendered as-is. It can even be extended! + $cssOnly = false; + + if ($path !== null && substr($path, -4) === '.css') { + $cssOnly = true; + } + + $parser = new Parser($path, \count($this->sourceNames), $this->encoding, $this->cache, $cssOnly, $this->logger); + + $this->sourceNames[] = $path; + $this->addParsedFile($path); + + return $parser; + } + + /** + * Is self extend? + * + * @param array $target + * @param array $origin + * + * @return boolean + */ + protected function isSelfExtend($target, $origin) + { + foreach ($origin as $sel) { + if (\in_array($target, $sel)) { + return true; + } + } + + return false; + } + + /** + * Push extends + * + * @param array $target + * @param array $origin + * @param array|null $block + * + * @return void + */ + protected function pushExtends($target, $origin, $block) + { + $i = \count($this->extends); + $this->extends[] = [$target, $origin, $block]; + + foreach ($target as $part) { + if (isset($this->extendsMap[$part])) { + $this->extendsMap[$part][] = $i; + } else { + $this->extendsMap[$part] = [$i]; + } + } + } + + /** + * Make output block + * + * @param string|null $type + * @param string[]|null $selectors + * + * @return \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected function makeOutputBlock($type, $selectors = null) + { + $out = new OutputBlock(); + $out->type = $type; + $out->lines = []; + $out->children = []; + $out->parent = $this->scope; + $out->selectors = $selectors; + $out->depth = $this->env->depth; + + if ($this->env->block instanceof Block) { + $out->sourceName = $this->env->block->sourceName; + $out->sourceLine = $this->env->block->sourceLine; + $out->sourceColumn = $this->env->block->sourceColumn; + } else { + $out->sourceName = null; + $out->sourceLine = null; + $out->sourceColumn = null; + } + + return $out; + } + + /** + * Compile root + * + * @param \ScssPhp\ScssPhp\Block $rootBlock + * + * @return void + */ + protected function compileRoot(Block $rootBlock) + { + $this->rootBlock = $this->scope = $this->makeOutputBlock(Type::T_ROOT); + + $this->compileChildrenNoReturn($rootBlock->children, $this->scope); + $this->flattenSelectors($this->scope); + $this->missingSelectors(); + } + + /** + * Report missing selectors + * + * @return void + */ + protected function missingSelectors() + { + foreach ($this->extends as $extend) { + if (isset($extend[3])) { + continue; + } + + list($target, $origin, $block) = $extend; + + // ignore if !optional + if ($block[2]) { + continue; + } + + $target = implode(' ', $target); + $origin = $this->collapseSelectors($origin); + + $this->sourceLine = $block[Parser::SOURCE_LINE]; + throw $this->error("\"$origin\" failed to @extend \"$target\". The selector \"$target\" was not found."); + } + } + + /** + * Flatten selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * @param string $parentKey + * + * @return void + */ + protected function flattenSelectors(OutputBlock $block, $parentKey = null) + { + if ($block->selectors) { + $selectors = []; + + foreach ($block->selectors as $s) { + $selectors[] = $s; + + if (! \is_array($s)) { + continue; + } + + // check extends + if (! empty($this->extendsMap)) { + $this->matchExtends($s, $selectors); + + // remove duplicates + array_walk($selectors, function (&$value) { + $value = serialize($value); + }); + + $selectors = array_unique($selectors); + + array_walk($selectors, function (&$value) { + $value = unserialize($value); + }); + } + } + + $block->selectors = []; + $placeholderSelector = false; + + foreach ($selectors as $selector) { + if ($this->hasSelectorPlaceholder($selector)) { + $placeholderSelector = true; + continue; + } + + $block->selectors[] = $this->compileSelector($selector); + } + + if ($placeholderSelector && 0 === \count($block->selectors) && null !== $parentKey) { + unset($block->parent->children[$parentKey]); + + return; + } + } + + foreach ($block->children as $key => $child) { + $this->flattenSelectors($child, $key); + } + } + + /** + * Glue parts of :not( or :nth-child( ... that are in general split in selectors parts + * + * @param array $parts + * + * @return array + */ + protected function glueFunctionSelectors($parts) + { + $new = []; + + foreach ($parts as $part) { + if (\is_array($part)) { + $part = $this->glueFunctionSelectors($part); + $new[] = $part; + } else { + // a selector part finishing with a ) is the last part of a :not( or :nth-child( + // and need to be joined to this + if ( + \count($new) && \is_string($new[\count($new) - 1]) && + \strlen($part) && substr($part, -1) === ')' && strpos($part, '(') === false + ) { + while (\count($new) > 1 && substr($new[\count($new) - 1], -1) !== '(') { + $part = array_pop($new) . $part; + } + $new[\count($new) - 1] .= $part; + } else { + $new[] = $part; + } + } + } + + return $new; + } + + /** + * Match extends + * + * @param array $selector + * @param array $out + * @param integer $from + * @param boolean $initial + * + * @return void + */ + protected function matchExtends($selector, &$out, $from = 0, $initial = true) + { + static $partsPile = []; + $selector = $this->glueFunctionSelectors($selector); + + if (\count($selector) == 1 && \in_array(reset($selector), $partsPile)) { + return; + } + + $outRecurs = []; + + foreach ($selector as $i => $part) { + if ($i < $from) { + continue; + } + + // check that we are not building an infinite loop of extensions + // if the new part is just including a previous part don't try to extend anymore + if (\count($part) > 1) { + foreach ($partsPile as $previousPart) { + if (! \count(array_diff($previousPart, $part))) { + continue 2; + } + } + } + + $partsPile[] = $part; + + if ($this->matchExtendsSingle($part, $origin, $initial)) { + $after = \array_slice($selector, $i + 1); + $before = \array_slice($selector, 0, $i); + list($before, $nonBreakableBefore) = $this->extractRelationshipFromFragment($before); + + foreach ($origin as $new) { + $k = 0; + + // remove shared parts + if (\count($new) > 1) { + while ($k < $i && isset($new[$k]) && $selector[$k] === $new[$k]) { + $k++; + } + } + + if (\count($nonBreakableBefore) && $k === \count($new)) { + $k--; + } + + $replacement = []; + $tempReplacement = $k > 0 ? \array_slice($new, $k) : $new; + + for ($l = \count($tempReplacement) - 1; $l >= 0; $l--) { + $slice = []; + + foreach ($tempReplacement[$l] as $chunk) { + if (! \in_array($chunk, $slice)) { + $slice[] = $chunk; + } + } + + array_unshift($replacement, $slice); + + if (! $this->isImmediateRelationshipCombinator(end($slice))) { + break; + } + } + + $afterBefore = $l != 0 ? \array_slice($tempReplacement, 0, $l) : []; + + // Merge shared direct relationships. + $mergedBefore = $this->mergeDirectRelationships($afterBefore, $nonBreakableBefore); + + $result = array_merge( + $before, + $mergedBefore, + $replacement, + $after + ); + + if ($result === $selector) { + continue; + } + + $this->pushOrMergeExtentedSelector($out, $result); + + // recursively check for more matches + $startRecurseFrom = \count($before) + min(\count($nonBreakableBefore), \count($mergedBefore)); + + if (\count($origin) > 1) { + $this->matchExtends($result, $out, $startRecurseFrom, false); + } else { + $this->matchExtends($result, $outRecurs, $startRecurseFrom, false); + } + + // selector sequence merging + if (! empty($before) && \count($new) > 1) { + $preSharedParts = $k > 0 ? \array_slice($before, 0, $k) : []; + $postSharedParts = $k > 0 ? \array_slice($before, $k) : $before; + + list($betweenSharedParts, $nonBreakabl2) = $this->extractRelationshipFromFragment($afterBefore); + + $result2 = array_merge( + $preSharedParts, + $betweenSharedParts, + $postSharedParts, + $nonBreakabl2, + $nonBreakableBefore, + $replacement, + $after + ); + + $this->pushOrMergeExtentedSelector($out, $result2); + } + } + } + array_pop($partsPile); + } + + while (\count($outRecurs)) { + $result = array_shift($outRecurs); + $this->pushOrMergeExtentedSelector($out, $result); + } + } + + /** + * Test a part for being a pseudo selector + * + * @param string $part + * @param array $matches + * + * @return boolean + */ + protected function isPseudoSelector($part, &$matches) + { + if ( + strpos($part, ':') === 0 && + preg_match(",^::?([\w-]+)\((.+)\)$,", $part, $matches) + ) { + return true; + } + + return false; + } + + /** + * Push extended selector except if + * - this is a pseudo selector + * - same as previous + * - in a white list + * in this case we merge the pseudo selector content + * + * @param array $out + * @param array $extended + * + * @return void + */ + protected function pushOrMergeExtentedSelector(&$out, $extended) + { + if (\count($out) && \count($extended) === 1 && \count(reset($extended)) === 1) { + $single = reset($extended); + $part = reset($single); + + if ( + $this->isPseudoSelector($part, $matchesExtended) && + \in_array($matchesExtended[1], [ 'slotted' ]) + ) { + $prev = end($out); + $prev = $this->glueFunctionSelectors($prev); + + if (\count($prev) === 1 && \count(reset($prev)) === 1) { + $single = reset($prev); + $part = reset($single); + + if ( + $this->isPseudoSelector($part, $matchesPrev) && + $matchesPrev[1] === $matchesExtended[1] + ) { + $extended = explode($matchesExtended[1] . '(', $matchesExtended[0], 2); + $extended[1] = $matchesPrev[2] . ', ' . $extended[1]; + $extended = implode($matchesExtended[1] . '(', $extended); + $extended = [ [ $extended ]]; + array_pop($out); + } + } + } + } + $out[] = $extended; + } + + /** + * Match extends single + * + * @param array $rawSingle + * @param array $outOrigin + * @param boolean $initial + * + * @return boolean + */ + protected function matchExtendsSingle($rawSingle, &$outOrigin, $initial = true) + { + $counts = []; + $single = []; + + // simple usual cases, no need to do the whole trick + if (\in_array($rawSingle, [['>'],['+'],['~']])) { + return false; + } + + foreach ($rawSingle as $part) { + // matches Number + if (! \is_string($part)) { + return false; + } + + if (! preg_match('/^[\[.:#%]/', $part) && \count($single)) { + $single[\count($single) - 1] .= $part; + } else { + $single[] = $part; + } + } + + $extendingDecoratedTag = false; + + if (\count($single) > 1) { + $matches = null; + $extendingDecoratedTag = preg_match('/^[a-z0-9]+$/i', $single[0], $matches) ? $matches[0] : false; + } + + $outOrigin = []; + $found = false; + + foreach ($single as $k => $part) { + if (isset($this->extendsMap[$part])) { + foreach ($this->extendsMap[$part] as $idx) { + $counts[$idx] = isset($counts[$idx]) ? $counts[$idx] + 1 : 1; + } + } + + if ( + $initial && + $this->isPseudoSelector($part, $matches) && + ! \in_array($matches[1], [ 'not' ]) + ) { + $buffer = $matches[2]; + $parser = $this->parserFactory(__METHOD__); + + if ($parser->parseSelector($buffer, $subSelectors, false)) { + foreach ($subSelectors as $ksub => $subSelector) { + $subExtended = []; + $this->matchExtends($subSelector, $subExtended, 0, false); + + if ($subExtended) { + $subSelectorsExtended = $subSelectors; + $subSelectorsExtended[$ksub] = $subExtended; + + foreach ($subSelectorsExtended as $ksse => $sse) { + $subSelectorsExtended[$ksse] = $this->collapseSelectors($sse); + } + + $subSelectorsExtended = implode(', ', $subSelectorsExtended); + $singleExtended = $single; + $singleExtended[$k] = str_replace('(' . $buffer . ')', "($subSelectorsExtended)", $part); + $outOrigin[] = [ $singleExtended ]; + $found = true; + } + } + } + } + } + + foreach ($counts as $idx => $count) { + list($target, $origin, /* $block */) = $this->extends[$idx]; + + $origin = $this->glueFunctionSelectors($origin); + + // check count + if ($count !== \count($target)) { + continue; + } + + $this->extends[$idx][3] = true; + + $rem = array_diff($single, $target); + + foreach ($origin as $j => $new) { + // prevent infinite loop when target extends itself + if ($this->isSelfExtend($single, $origin) && ! $initial) { + return false; + } + + $replacement = end($new); + + // Extending a decorated tag with another tag is not possible. + if ( + $extendingDecoratedTag && $replacement[0] != $extendingDecoratedTag && + preg_match('/^[a-z0-9]+$/i', $replacement[0]) + ) { + unset($origin[$j]); + continue; + } + + $combined = $this->combineSelectorSingle($replacement, $rem); + + if (\count(array_diff($combined, $origin[$j][\count($origin[$j]) - 1]))) { + $origin[$j][\count($origin[$j]) - 1] = $combined; + } + } + + $outOrigin = array_merge($outOrigin, $origin); + + $found = true; + } + + return $found; + } + + /** + * Extract a relationship from the fragment. + * + * When extracting the last portion of a selector we will be left with a + * fragment which may end with a direction relationship combinator. This + * method will extract the relationship fragment and return it along side + * the rest. + * + * @param array $fragment The selector fragment maybe ending with a direction relationship combinator. + * + * @return array The selector without the relationship fragment if any, the relationship fragment. + */ + protected function extractRelationshipFromFragment(array $fragment) + { + $parents = []; + $children = []; + + $j = $i = \count($fragment); + + for (;;) { + $children = $j != $i ? \array_slice($fragment, $j, $i - $j) : []; + $parents = \array_slice($fragment, 0, $j); + $slice = end($parents); + + if (empty($slice) || ! $this->isImmediateRelationshipCombinator($slice[0])) { + break; + } + + $j -= 2; + } + + return [$parents, $children]; + } + + /** + * Combine selector single + * + * @param array $base + * @param array $other + * + * @return array + */ + protected function combineSelectorSingle($base, $other) + { + $tag = []; + $out = []; + $wasTag = false; + $pseudo = []; + + while (\count($other) && strpos(end($other), ':') === 0) { + array_unshift($pseudo, array_pop($other)); + } + + foreach ([array_reverse($base), array_reverse($other)] as $single) { + $rang = count($single); + + foreach ($single as $part) { + if (preg_match('/^[\[:]/', $part)) { + $out[] = $part; + $wasTag = false; + } elseif (preg_match('/^[\.#]/', $part)) { + array_unshift($out, $part); + $wasTag = false; + } elseif (preg_match('/^[^_-]/', $part) && $rang === 1) { + $tag[] = $part; + $wasTag = true; + } elseif ($wasTag) { + $tag[\count($tag) - 1] .= $part; + } else { + array_unshift($out, $part); + } + $rang--; + } + } + + if (\count($tag)) { + array_unshift($out, $tag[0]); + } + + while (\count($pseudo)) { + $out[] = array_shift($pseudo); + } + + return $out; + } + + /** + * Compile media + * + * @param \ScssPhp\ScssPhp\Block $media + * + * @return void + */ + protected function compileMedia(Block $media) + { + $this->pushEnv($media); + + $mediaQueries = $this->compileMediaQuery($this->multiplyMedia($this->env)); + + if (! empty($mediaQueries)) { + $previousScope = $this->scope; + $parentScope = $this->mediaParent($this->scope); + + foreach ($mediaQueries as $mediaQuery) { + $this->scope = $this->makeOutputBlock(Type::T_MEDIA, [$mediaQuery]); + + $parentScope->children[] = $this->scope; + $parentScope = $this->scope; + } + + // top level properties in a media cause it to be wrapped + $needsWrap = false; + + foreach ($media->children as $child) { + $type = $child[0]; + + if ( + $type !== Type::T_BLOCK && + $type !== Type::T_MEDIA && + $type !== Type::T_DIRECTIVE && + $type !== Type::T_IMPORT + ) { + $needsWrap = true; + break; + } + } + + if ($needsWrap) { + $wrapped = new Block(); + $wrapped->sourceName = $media->sourceName; + $wrapped->sourceIndex = $media->sourceIndex; + $wrapped->sourceLine = $media->sourceLine; + $wrapped->sourceColumn = $media->sourceColumn; + $wrapped->selectors = []; + $wrapped->comments = []; + $wrapped->parent = $media; + $wrapped->children = $media->children; + + $media->children = [[Type::T_BLOCK, $wrapped]]; + } + + $this->compileChildrenNoReturn($media->children, $this->scope); + + $this->scope = $previousScope; + } + + $this->popEnv(); + } + + /** + * Media parent + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * + * @return \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected function mediaParent(OutputBlock $scope) + { + while (! empty($scope->parent)) { + if (! empty($scope->type) && $scope->type !== Type::T_MEDIA) { + break; + } + + $scope = $scope->parent; + } + + return $scope; + } + + /** + * Compile directive + * + * @param \ScssPhp\ScssPhp\Block|array $directive + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function compileDirective($directive, OutputBlock $out) + { + if (\is_array($directive)) { + $directiveName = $this->compileDirectiveName($directive[0]); + $s = '@' . $directiveName; + + if (! empty($directive[1])) { + $s .= ' ' . $this->compileValue($directive[1]); + } + // sass-spec compliance on newline after directives, a bit tricky :/ + $appendNewLine = (! empty($directive[2]) || strpos($s, "\n")) ? "\n" : ""; + if (\is_array($directive[0]) && empty($directive[1])) { + $appendNewLine = "\n"; + } + + if (empty($directive[3])) { + $this->appendRootDirective($s . ';' . $appendNewLine, $out, [Type::T_COMMENT, Type::T_DIRECTIVE]); + } else { + $this->appendOutputLine($out, Type::T_DIRECTIVE, $s . ';'); + } + } else { + $directive->name = $this->compileDirectiveName($directive->name); + $s = '@' . $directive->name; + + if (! empty($directive->value)) { + $s .= ' ' . $this->compileValue($directive->value); + } + + if ($directive->name === 'keyframes' || substr($directive->name, -10) === '-keyframes') { + $this->compileKeyframeBlock($directive, [$s]); + } else { + $this->compileNestedBlock($directive, [$s]); + } + } + } + + /** + * directive names can include some interpolation + * + * @param string|array $directiveName + * @return string + * @throws CompilerException + */ + protected function compileDirectiveName($directiveName) + { + if (is_string($directiveName)) { + return $directiveName; + } + + return $this->compileValue($directiveName); + } + + /** + * Compile at-root + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return void + */ + protected function compileAtRoot(Block $block) + { + $env = $this->pushEnv($block); + $envs = $this->compactEnv($env); + list($with, $without) = $this->compileWith(isset($block->with) ? $block->with : null); + + // wrap inline selector + if ($block->selector) { + $wrapped = new Block(); + $wrapped->sourceName = $block->sourceName; + $wrapped->sourceIndex = $block->sourceIndex; + $wrapped->sourceLine = $block->sourceLine; + $wrapped->sourceColumn = $block->sourceColumn; + $wrapped->selectors = $block->selector; + $wrapped->comments = []; + $wrapped->parent = $block; + $wrapped->children = $block->children; + $wrapped->selfParent = $block->selfParent; + + $block->children = [[Type::T_BLOCK, $wrapped]]; + $block->selector = null; + } + + $selfParent = $block->selfParent; + assert($selfParent !== null, 'at-root blocks must have a selfParent set.'); + + if ( + ! $selfParent->selectors && + isset($block->parent) && $block->parent && + isset($block->parent->selectors) && $block->parent->selectors + ) { + $selfParent = $block->parent; + } + + $this->env = $this->filterWithWithout($envs, $with, $without); + + $saveScope = $this->scope; + $this->scope = $this->filterScopeWithWithout($saveScope, $with, $without); + + // propagate selfParent to the children where they still can be useful + $this->compileChildrenNoReturn($block->children, $this->scope, $selfParent); + + $this->scope = $this->completeScope($this->scope, $saveScope); + $this->scope = $saveScope; + $this->env = $this->extractEnv($envs); + + $this->popEnv(); + } + + /** + * Filter at-root scope depending of with/without option + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param array $with + * @param array $without + * + * @return OutputBlock + */ + protected function filterScopeWithWithout($scope, $with, $without) + { + $filteredScopes = []; + $childStash = []; + + if ($scope->type === Type::T_ROOT) { + return $scope; + } + + // start from the root + while ($scope->parent && $scope->parent->type !== Type::T_ROOT) { + array_unshift($childStash, $scope); + $scope = $scope->parent; + } + + for (;;) { + if (! $scope) { + break; + } + + if ($this->isWith($scope, $with, $without)) { + $s = clone $scope; + $s->children = []; + $s->lines = []; + $s->parent = null; + + if ($s->type !== Type::T_MEDIA && $s->type !== Type::T_DIRECTIVE) { + $s->selectors = []; + } + + $filteredScopes[] = $s; + } + + if (\count($childStash)) { + $scope = array_shift($childStash); + } elseif ($scope->children) { + $scope = end($scope->children); + } else { + $scope = null; + } + } + + if (! \count($filteredScopes)) { + return $this->rootBlock; + } + + $newScope = array_shift($filteredScopes); + $newScope->parent = $this->rootBlock; + + $this->rootBlock->children[] = $newScope; + + $p = &$newScope; + + while (\count($filteredScopes)) { + $s = array_shift($filteredScopes); + $s->parent = $p; + $p->children[] = $s; + $newScope = &$p->children[0]; + $p = &$p->children[0]; + } + + return $newScope; + } + + /** + * found missing selector from a at-root compilation in the previous scope + * (if at-root is just enclosing a property, the selector is in the parent tree) + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $previousScope + * + * @return OutputBlock + */ + protected function completeScope($scope, $previousScope) + { + if (! $scope->type && (! $scope->selectors || ! \count($scope->selectors)) && \count($scope->lines)) { + $scope->selectors = $this->findScopeSelectors($previousScope, $scope->depth); + } + + if ($scope->children) { + foreach ($scope->children as $k => $c) { + $scope->children[$k] = $this->completeScope($c, $previousScope); + } + } + + return $scope; + } + + /** + * Find a selector by the depth node in the scope + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $scope + * @param integer $depth + * + * @return array + */ + protected function findScopeSelectors($scope, $depth) + { + if ($scope->depth === $depth && $scope->selectors) { + return $scope->selectors; + } + + if ($scope->children) { + foreach (array_reverse($scope->children) as $c) { + if ($s = $this->findScopeSelectors($c, $depth)) { + return $s; + } + } + } + + return []; + } + + /** + * Compile @at-root's with: inclusion / without: exclusion into 2 lists uses to filter scope/env later + * + * @param array $withCondition + * + * @return array + */ + protected function compileWith($withCondition) + { + // just compile what we have in 2 lists + $with = []; + $without = ['rule' => true]; + + if ($withCondition) { + if ($withCondition[0] === Type::T_INTERPOLATE) { + $w = $this->compileValue($withCondition); + + $buffer = "($w)"; + $parser = $this->parserFactory(__METHOD__); + + if ($parser->parseValue($buffer, $reParsedWith)) { + $withCondition = $reParsedWith; + } + } + + if ($this->mapHasKey($withCondition, static::$with)) { + $without = []; // cancel the default + $list = $this->coerceList($this->libMapGet([$withCondition, static::$with])); + + foreach ($list[2] as $item) { + $keyword = $this->compileStringContent($this->coerceString($item)); + + $with[$keyword] = true; + } + } + + if ($this->mapHasKey($withCondition, static::$without)) { + $without = []; // cancel the default + $list = $this->coerceList($this->libMapGet([$withCondition, static::$without])); + + foreach ($list[2] as $item) { + $keyword = $this->compileStringContent($this->coerceString($item)); + + $without[$keyword] = true; + } + } + } + + return [$with, $without]; + } + + /** + * Filter env stack + * + * @param Environment[] $envs + * @param array $with + * @param array $without + * + * @return Environment + * + * @phpstan-param non-empty-array $envs + */ + protected function filterWithWithout($envs, $with, $without) + { + $filtered = []; + + foreach ($envs as $e) { + if ($e->block && ! $this->isWith($e->block, $with, $without)) { + $ec = clone $e; + $ec->block = null; + $ec->selectors = []; + + $filtered[] = $ec; + } else { + $filtered[] = $e; + } + } + + return $this->extractEnv($filtered); + } + + /** + * Filter WITH rules + * + * @param \ScssPhp\ScssPhp\Block|\ScssPhp\ScssPhp\Formatter\OutputBlock $block + * @param array $with + * @param array $without + * + * @return boolean + */ + protected function isWith($block, $with, $without) + { + if (isset($block->type)) { + if ($block->type === Type::T_MEDIA) { + return $this->testWithWithout('media', $with, $without); + } + + if ($block->type === Type::T_DIRECTIVE) { + if (isset($block->name)) { + return $this->testWithWithout($this->compileDirectiveName($block->name), $with, $without); + } elseif (isset($block->selectors) && preg_match(',@(\w+),ims', json_encode($block->selectors), $m)) { + return $this->testWithWithout($m[1], $with, $without); + } else { + return $this->testWithWithout('???', $with, $without); + } + } + } elseif (isset($block->selectors)) { + // a selector starting with number is a keyframe rule + if (\count($block->selectors)) { + $s = reset($block->selectors); + + while (\is_array($s)) { + $s = reset($s); + } + + if (\is_object($s) && $s instanceof Number) { + return $this->testWithWithout('keyframes', $with, $without); + } + } + + return $this->testWithWithout('rule', $with, $without); + } + + return true; + } + + /** + * Test a single type of block against with/without lists + * + * @param string $what + * @param array $with + * @param array $without + * + * @return boolean + * true if the block should be kept, false to reject + */ + protected function testWithWithout($what, $with, $without) + { + // if without, reject only if in the list (or 'all' is in the list) + if (\count($without)) { + return (isset($without[$what]) || isset($without['all'])) ? false : true; + } + + // otherwise reject all what is not in the with list + return (isset($with[$what]) || isset($with['all'])) ? true : false; + } + + + /** + * Compile keyframe block + * + * @param \ScssPhp\ScssPhp\Block $block + * @param string[] $selectors + * + * @return void + */ + protected function compileKeyframeBlock(Block $block, $selectors) + { + $env = $this->pushEnv($block); + + $envs = $this->compactEnv($env); + + $this->env = $this->extractEnv(array_filter($envs, function (Environment $e) { + return ! isset($e->block->selectors); + })); + + $this->scope = $this->makeOutputBlock($block->type, $selectors); + $this->scope->depth = 1; + $this->scope->parent->children[] = $this->scope; + + $this->compileChildrenNoReturn($block->children, $this->scope); + + $this->scope = $this->scope->parent; + $this->env = $this->extractEnv($envs); + + $this->popEnv(); + } + + /** + * Compile nested properties lines + * + * @param \ScssPhp\ScssPhp\Block $block + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function compileNestedPropertiesBlock(Block $block, OutputBlock $out) + { + $prefix = $this->compileValue($block->prefix) . '-'; + + $nested = $this->makeOutputBlock($block->type); + $nested->parent = $out; + + if ($block->hasValue) { + $nested->depth = $out->depth + 1; + } + + $out->children[] = $nested; + + foreach ($block->children as $child) { + switch ($child[0]) { + case Type::T_ASSIGN: + array_unshift($child[1][2], $prefix); + break; + + case Type::T_NESTED_PROPERTY: + array_unshift($child[1]->prefix[2], $prefix); + break; + } + + $this->compileChild($child, $nested); + } + } + + /** + * Compile nested block + * + * @param \ScssPhp\ScssPhp\Block $block + * @param string[] $selectors + * + * @return void + */ + protected function compileNestedBlock(Block $block, $selectors) + { + $this->pushEnv($block); + + $this->scope = $this->makeOutputBlock($block->type, $selectors); + $this->scope->parent->children[] = $this->scope; + + // wrap assign children in a block + // except for @font-face + if ($block->type !== Type::T_DIRECTIVE || $this->compileDirectiveName($block->name) !== 'font-face') { + // need wrapping? + $needWrapping = false; + + foreach ($block->children as $child) { + if ($child[0] === Type::T_ASSIGN) { + $needWrapping = true; + break; + } + } + + if ($needWrapping) { + $wrapped = new Block(); + $wrapped->sourceName = $block->sourceName; + $wrapped->sourceIndex = $block->sourceIndex; + $wrapped->sourceLine = $block->sourceLine; + $wrapped->sourceColumn = $block->sourceColumn; + $wrapped->selectors = []; + $wrapped->comments = []; + $wrapped->parent = $block; + $wrapped->children = $block->children; + $wrapped->selfParent = $block->selfParent; + + $block->children = [[Type::T_BLOCK, $wrapped]]; + } + } + + $this->compileChildrenNoReturn($block->children, $this->scope); + + $this->scope = $this->scope->parent; + + $this->popEnv(); + } + + /** + * Recursively compiles a block. + * + * A block is analogous to a CSS block in most cases. A single SCSS document + * is encapsulated in a block when parsed, but it does not have parent tags + * so all of its children appear on the root level when compiled. + * + * Blocks are made up of selectors and children. + * + * The children of a block are just all the blocks that are defined within. + * + * Compiling the block involves pushing a fresh environment on the stack, + * and iterating through the props, compiling each one. + * + * @see Compiler::compileChild() + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return void + */ + protected function compileBlock(Block $block) + { + $env = $this->pushEnv($block); + $env->selectors = $this->evalSelectors($block->selectors); + + $out = $this->makeOutputBlock(null); + + $this->scope->children[] = $out; + + if (\count($block->children)) { + $out->selectors = $this->multiplySelectors($env, $block->selfParent); + + // propagate selfParent to the children where they still can be useful + $selfParentSelectors = null; + + if (isset($block->selfParent->selectors)) { + $selfParentSelectors = $block->selfParent->selectors; + $block->selfParent->selectors = $out->selectors; + } + + $this->compileChildrenNoReturn($block->children, $out, $block->selfParent); + + // and revert for the following children of the same block + if ($selfParentSelectors) { + $block->selfParent->selectors = $selfParentSelectors; + } + } + + $this->popEnv(); + } + + + /** + * Compile the value of a comment that can have interpolation + * + * @param array $value + * @param boolean $pushEnv + * + * @return string + */ + protected function compileCommentValue($value, $pushEnv = false) + { + $c = $value[1]; + + if (isset($value[2])) { + if ($pushEnv) { + $this->pushEnv(); + } + + try { + $c = $this->compileValue($value[2]); + } catch (SassScriptException $e) { + $this->logger->warn('Ignoring interpolation errors in multiline comments is deprecated and will be removed in ScssPhp 2.0. ' . $this->addLocationToMessage($e->getMessage()), true); + // ignore error in comment compilation which are only interpolation + } catch (SassException $e) { + $this->logger->warn('Ignoring interpolation errors in multiline comments is deprecated and will be removed in ScssPhp 2.0. ' . $e->getMessage(), true); + // ignore error in comment compilation which are only interpolation + } + + if ($pushEnv) { + $this->popEnv(); + } + } + + return $c; + } + + /** + * Compile root level comment + * + * @param array $block + * + * @return void + */ + protected function compileComment($block) + { + $out = $this->makeOutputBlock(Type::T_COMMENT); + $out->lines[] = $this->compileCommentValue($block, true); + + $this->scope->children[] = $out; + } + + /** + * Evaluate selectors + * + * @param array $selectors + * + * @return array + */ + protected function evalSelectors($selectors) + { + $this->shouldEvaluate = false; + + $selectors = array_map([$this, 'evalSelector'], $selectors); + + // after evaluating interpolates, we might need a second pass + if ($this->shouldEvaluate) { + $selectors = $this->replaceSelfSelector($selectors, '&'); + $buffer = $this->collapseSelectors($selectors); + $parser = $this->parserFactory(__METHOD__); + + try { + $isValid = $parser->parseSelector($buffer, $newSelectors, true); + } catch (ParserException $e) { + throw $this->error($e->getMessage()); + } + + if ($isValid) { + $selectors = array_map([$this, 'evalSelector'], $newSelectors); + } + } + + return $selectors; + } + + /** + * Evaluate selector + * + * @param array $selector + * + * @return array + */ + protected function evalSelector($selector) + { + return array_map([$this, 'evalSelectorPart'], $selector); + } + + /** + * Evaluate selector part; replaces all the interpolates, stripping quotes + * + * @param array $part + * + * @return array + */ + protected function evalSelectorPart($part) + { + foreach ($part as &$p) { + if (\is_array($p) && ($p[0] === Type::T_INTERPOLATE || $p[0] === Type::T_STRING)) { + $p = $this->compileValue($p); + + // force re-evaluation if self char or non standard char + if (preg_match(',[^\w-],', $p)) { + $this->shouldEvaluate = true; + } + } elseif ( + \is_string($p) && \strlen($p) >= 2 && + ($first = $p[0]) && ($first === '"' || $first === "'") && + substr($p, -1) === $first + ) { + $p = substr($p, 1, -1); + } + } + + return $this->flattenSelectorSingle($part); + } + + /** + * Collapse selectors + * + * @param array $selectors + * + * @return string + */ + protected function collapseSelectors($selectors) + { + $parts = []; + + foreach ($selectors as $selector) { + $output = []; + + foreach ($selector as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + $output[] = $compound; + } + + $parts[] = implode(' ', $output); + } + + return implode(', ', $parts); + } + + /** + * Collapse selectors + * + * @param array $selectors + * + * @return array + */ + private function collapseSelectorsAsList($selectors) + { + $parts = []; + + foreach ($selectors as $selector) { + $output = []; + $glueNext = false; + + foreach ($selector as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + if ($this->isImmediateRelationshipCombinator($compound)) { + if (\count($output)) { + $output[\count($output) - 1] .= ' ' . $compound; + } else { + $output[] = $compound; + } + + $glueNext = true; + } elseif ($glueNext) { + $output[\count($output) - 1] .= ' ' . $compound; + $glueNext = false; + } else { + $output[] = $compound; + } + } + + foreach ($output as &$o) { + $o = [Type::T_STRING, '', [$o]]; + } + + $parts[] = [Type::T_LIST, ' ', $output]; + } + + return [Type::T_LIST, ',', $parts]; + } + + /** + * Parse down the selector and revert [self] to "&" before a reparsing + * + * @param array $selectors + * @param string|null $replace + * + * @return array + */ + protected function replaceSelfSelector($selectors, $replace = null) + { + foreach ($selectors as &$part) { + if (\is_array($part)) { + if ($part === [Type::T_SELF]) { + if (\is_null($replace)) { + $replace = $this->reduce([Type::T_SELF]); + $replace = $this->compileValue($replace); + } + $part = $replace; + } else { + $part = $this->replaceSelfSelector($part, $replace); + } + } + } + + return $selectors; + } + + /** + * Flatten selector single; joins together .classes and #ids + * + * @param array $single + * + * @return array + */ + protected function flattenSelectorSingle($single) + { + $joined = []; + + foreach ($single as $part) { + if ( + empty($joined) || + ! \is_string($part) || + preg_match('/[\[.:#%]/', $part) + ) { + $joined[] = $part; + continue; + } + + if (\is_array(end($joined))) { + $joined[] = $part; + } else { + $joined[\count($joined) - 1] .= $part; + } + } + + return $joined; + } + + /** + * Compile selector to string; self(&) should have been replaced by now + * + * @param string|array $selector + * + * @return string + */ + protected function compileSelector($selector) + { + if (! \is_array($selector)) { + return $selector; // media and the like + } + + return implode( + ' ', + array_map( + [$this, 'compileSelectorPart'], + $selector + ) + ); + } + + /** + * Compile selector part + * + * @param array $piece + * + * @return string + */ + protected function compileSelectorPart($piece) + { + foreach ($piece as &$p) { + if (! \is_array($p)) { + continue; + } + + switch ($p[0]) { + case Type::T_SELF: + $p = '&'; + break; + + default: + $p = $this->compileValue($p); + break; + } + } + + return implode($piece); + } + + /** + * Has selector placeholder? + * + * @param array $selector + * + * @return boolean + */ + protected function hasSelectorPlaceholder($selector) + { + if (! \is_array($selector)) { + return false; + } + + foreach ($selector as $parts) { + foreach ($parts as $part) { + if (\strlen($part) && '%' === $part[0]) { + return true; + } + } + } + + return false; + } + + /** + * @param string $name + * + * @return void + */ + protected function pushCallStack($name = '') + { + $this->callStack[] = [ + 'n' => $name, + Parser::SOURCE_INDEX => $this->sourceIndex, + Parser::SOURCE_LINE => $this->sourceLine, + Parser::SOURCE_COLUMN => $this->sourceColumn + ]; + + // infinite calling loop + if (\count($this->callStack) > 25000) { + // not displayed but you can var_dump it to deep debug + $msg = $this->callStackMessage(true, 100); + $msg = 'Infinite calling loop'; + + throw $this->error($msg); + } + } + + /** + * @return void + */ + protected function popCallStack() + { + array_pop($this->callStack); + } + + /** + * Compile children and return result + * + * @param array $stms + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param string $traceName + * + * @return array|Number|null + */ + protected function compileChildren($stms, OutputBlock $out, $traceName = '') + { + $this->pushCallStack($traceName); + + foreach ($stms as $stm) { + $ret = $this->compileChild($stm, $out); + + if (isset($ret)) { + $this->popCallStack(); + + return $ret; + } + } + + $this->popCallStack(); + + return null; + } + + /** + * Compile children and throw exception if unexpected `@return` + * + * @param array $stms + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param \ScssPhp\ScssPhp\Block $selfParent + * @param string $traceName + * + * @return void + * + * @throws \Exception + */ + protected function compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '') + { + $this->pushCallStack($traceName); + + foreach ($stms as $stm) { + if ($selfParent && isset($stm[1]) && \is_object($stm[1]) && $stm[1] instanceof Block) { + $stm[1]->selfParent = $selfParent; + $ret = $this->compileChild($stm, $out); + $stm[1]->selfParent = null; + } elseif ($selfParent && \in_array($stm[0], [Type::T_INCLUDE, Type::T_EXTEND])) { + $stm['selfParent'] = $selfParent; + $ret = $this->compileChild($stm, $out); + unset($stm['selfParent']); + } else { + $ret = $this->compileChild($stm, $out); + } + + if (isset($ret)) { + throw $this->error('@return may only be used within a function'); + } + } + + $this->popCallStack(); + } + + + /** + * evaluate media query : compile internal value keeping the structure unchanged + * + * @param array $queryList + * + * @return array + */ + protected function evaluateMediaQuery($queryList) + { + static $parser = null; + + $outQueryList = []; + + foreach ($queryList as $kql => $query) { + $shouldReparse = false; + + foreach ($query as $kq => $q) { + for ($i = 1; $i < \count($q); $i++) { + $value = $this->compileValue($q[$i]); + + // the parser had no mean to know if media type or expression if it was an interpolation + // so you need to reparse if the T_MEDIA_TYPE looks like anything else a media type + if ( + $q[0] == Type::T_MEDIA_TYPE && + (strpos($value, '(') !== false || + strpos($value, ')') !== false || + strpos($value, ':') !== false || + strpos($value, ',') !== false) + ) { + $shouldReparse = true; + } + + $queryList[$kql][$kq][$i] = [Type::T_KEYWORD, $value]; + } + } + + if ($shouldReparse) { + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + $queryString = $this->compileMediaQuery([$queryList[$kql]]); + $queryString = reset($queryString); + + if (strpos($queryString, '@media ') === 0) { + $queryString = substr($queryString, 7); + $queries = []; + + if ($parser->parseMediaQueryList($queryString, $queries)) { + $queries = $this->evaluateMediaQuery($queries[2]); + + while (\count($queries)) { + $outQueryList[] = array_shift($queries); + } + + continue; + } + } + } + + $outQueryList[] = $queryList[$kql]; + } + + return $outQueryList; + } + + /** + * Compile media query + * + * @param array $queryList + * + * @return string[] + */ + protected function compileMediaQuery($queryList) + { + $start = '@media '; + $default = trim($start); + $out = []; + $current = ''; + + foreach ($queryList as $query) { + $type = null; + $parts = []; + + $mediaTypeOnly = true; + + foreach ($query as $q) { + if ($q[0] !== Type::T_MEDIA_TYPE) { + $mediaTypeOnly = false; + break; + } + } + + foreach ($query as $q) { + switch ($q[0]) { + case Type::T_MEDIA_TYPE: + $newType = array_map([$this, 'compileValue'], \array_slice($q, 1)); + + // combining not and anything else than media type is too risky and should be avoided + if (! $mediaTypeOnly) { + if (\in_array(Type::T_NOT, $newType) || ($type && \in_array(Type::T_NOT, $type) )) { + if ($type) { + array_unshift($parts, implode(' ', array_filter($type))); + } + + if (! empty($parts)) { + if (\strlen($current)) { + $current .= $this->formatter->tagSeparator; + } + + $current .= implode(' and ', $parts); + } + + if ($current) { + $out[] = $start . $current; + } + + $current = ''; + $type = null; + $parts = []; + } + } + + if ($newType === ['all'] && $default) { + $default = $start . 'all'; + } + + // all can be safely ignored and mixed with whatever else + if ($newType !== ['all']) { + if ($type) { + $type = $this->mergeMediaTypes($type, $newType); + + if (empty($type)) { + // merge failed : ignore this query that is not valid, skip to the next one + $parts = []; + $default = ''; // if everything fail, no @media at all + continue 3; + } + } else { + $type = $newType; + } + } + break; + + case Type::T_MEDIA_EXPRESSION: + if (isset($q[2])) { + $parts[] = '(' + . $this->compileValue($q[1]) + . $this->formatter->assignSeparator + . $this->compileValue($q[2]) + . ')'; + } else { + $parts[] = '(' + . $this->compileValue($q[1]) + . ')'; + } + break; + + case Type::T_MEDIA_VALUE: + $parts[] = $this->compileValue($q[1]); + break; + } + } + + if ($type) { + array_unshift($parts, implode(' ', array_filter($type))); + } + + if (! empty($parts)) { + if (\strlen($current)) { + $current .= $this->formatter->tagSeparator; + } + + $current .= implode(' and ', $parts); + } + } + + if ($current) { + $out[] = $start . $current; + } + + // no @media type except all, and no conflict? + if (! $out && $default) { + $out[] = $default; + } + + return $out; + } + + /** + * Merge direct relationships between selectors + * + * @param array $selectors1 + * @param array $selectors2 + * + * @return array + */ + protected function mergeDirectRelationships($selectors1, $selectors2) + { + if (empty($selectors1) || empty($selectors2)) { + return array_merge($selectors1, $selectors2); + } + + $part1 = end($selectors1); + $part2 = end($selectors2); + + if (! $this->isImmediateRelationshipCombinator($part1[0]) && $part1 !== $part2) { + return array_merge($selectors1, $selectors2); + } + + $merged = []; + + do { + $part1 = array_pop($selectors1); + $part2 = array_pop($selectors2); + + if (! $this->isImmediateRelationshipCombinator($part1[0]) && $part1 !== $part2) { + if ($this->isImmediateRelationshipCombinator(reset($merged)[0])) { + array_unshift($merged, [$part1[0] . $part2[0]]); + $merged = array_merge($selectors1, $selectors2, $merged); + } else { + $merged = array_merge($selectors1, [$part1], $selectors2, [$part2], $merged); + } + + break; + } + + array_unshift($merged, $part1); + } while (! empty($selectors1) && ! empty($selectors2)); + + return $merged; + } + + /** + * Merge media types + * + * @param array $type1 + * @param array $type2 + * + * @return array|null + */ + protected function mergeMediaTypes($type1, $type2) + { + if (empty($type1)) { + return $type2; + } + + if (empty($type2)) { + return $type1; + } + + if (\count($type1) > 1) { + $m1 = strtolower($type1[0]); + $t1 = strtolower($type1[1]); + } else { + $m1 = ''; + $t1 = strtolower($type1[0]); + } + + if (\count($type2) > 1) { + $m2 = strtolower($type2[0]); + $t2 = strtolower($type2[1]); + } else { + $m2 = ''; + $t2 = strtolower($type2[0]); + } + + if (($m1 === Type::T_NOT) ^ ($m2 === Type::T_NOT)) { + if ($t1 === $t2) { + return null; + } + + return [ + $m1 === Type::T_NOT ? $m2 : $m1, + $m1 === Type::T_NOT ? $t2 : $t1, + ]; + } + + if ($m1 === Type::T_NOT && $m2 === Type::T_NOT) { + // CSS has no way of representing "neither screen nor print" + if ($t1 !== $t2) { + return null; + } + + return [Type::T_NOT, $t1]; + } + + if ($t1 !== $t2) { + return null; + } + + // t1 == t2, neither m1 nor m2 are "not" + return [empty($m1) ? $m2 : $m1, $t1]; + } + + /** + * Compile import; returns true if the value was something that could be imported + * + * @param array $rawPath + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param boolean $once + * + * @return boolean + */ + protected function compileImport($rawPath, OutputBlock $out, $once = false) + { + if ($rawPath[0] === Type::T_STRING) { + $path = $this->compileStringContent($rawPath); + + if (strpos($path, 'url(') !== 0 && $filePath = $this->findImport($path, $this->currentDirectory)) { + $this->registerImport($this->currentDirectory, $path, $filePath); + + if (! $once || ! \in_array($filePath, $this->importedFiles)) { + $this->importFile($filePath, $out); + $this->importedFiles[] = $filePath; + } + + return true; + } + + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + + if ($rawPath[0] === Type::T_LIST) { + // handle a list of strings + if (\count($rawPath[2]) === 0) { + return false; + } + + foreach ($rawPath[2] as $path) { + if ($path[0] !== Type::T_STRING) { + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + } + + foreach ($rawPath[2] as $path) { + $this->compileImport($path, $out, $once); + } + + return true; + } + + $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out); + + return false; + } + + /** + * @param array $rawPath + * @return string + * @throws CompilerException + */ + protected function compileImportPath($rawPath) + { + $path = $this->compileValue($rawPath); + + // case url() without quotes : suppress \r \n remaining in the path + // if this is a real string there can not be CR or LF char + if (strpos($path, 'url(') === 0) { + $path = str_replace(array("\r", "\n"), array('', ' '), $path); + } else { + // if this is a file name in a string, spaces should be escaped + $path = $this->reduce($rawPath); + $path = $this->escapeImportPathString($path); + $path = $this->compileValue($path); + } + + return $path; + } + + /** + * @param array $path + * @return array + * @throws CompilerException + */ + protected function escapeImportPathString($path) + { + switch ($path[0]) { + case Type::T_LIST: + foreach ($path[2] as $k => $v) { + $path[2][$k] = $this->escapeImportPathString($v); + } + break; + case Type::T_STRING: + if ($path[1]) { + $path = $this->compileValue($path); + $path = str_replace(' ', '\\ ', $path); + $path = [Type::T_KEYWORD, $path]; + } + break; + } + + return $path; + } + + /** + * Append a root directive like @import or @charset as near as the possible from the source code + * (keeping before comments, @import and @charset coming before in the source code) + * + * @param string $line + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param array $allowed + * + * @return void + */ + protected function appendRootDirective($line, $out, $allowed = [Type::T_COMMENT]) + { + $root = $out; + + while ($root->parent) { + $root = $root->parent; + } + + $i = 0; + + while ($i < \count($root->children)) { + if (! isset($root->children[$i]->type) || ! \in_array($root->children[$i]->type, $allowed)) { + break; + } + + $i++; + } + + // remove incompatible children from the bottom of the list + $saveChildren = []; + + while ($i < \count($root->children)) { + $saveChildren[] = array_pop($root->children); + } + + // insert the directive as a comment + $child = $this->makeOutputBlock(Type::T_COMMENT); + $child->lines[] = $line; + $child->sourceName = $this->sourceNames[$this->sourceIndex]; + $child->sourceLine = $this->sourceLine; + $child->sourceColumn = $this->sourceColumn; + + $root->children[] = $child; + + // repush children + while (\count($saveChildren)) { + $root->children[] = array_pop($saveChildren); + } + } + + /** + * Append lines to the current output block: + * directly to the block or through a child if necessary + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * @param string $type + * @param string $line + * + * @return void + */ + protected function appendOutputLine(OutputBlock $out, $type, $line) + { + $outWrite = &$out; + + // check if it's a flat output or not + if (\count($out->children)) { + $lastChild = &$out->children[\count($out->children) - 1]; + + if ( + $lastChild->depth === $out->depth && + \is_null($lastChild->selectors) && + ! \count($lastChild->children) + ) { + $outWrite = $lastChild; + } else { + $nextLines = $this->makeOutputBlock($type); + $nextLines->parent = $out; + $nextLines->depth = $out->depth; + + $out->children[] = $nextLines; + $outWrite = &$nextLines; + } + } + + $outWrite->lines[] = $line; + } + + /** + * Compile child; returns a value to halt execution + * + * @param array $child + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return array|Number|null + */ + protected function compileChild($child, OutputBlock $out) + { + if (isset($child[Parser::SOURCE_LINE])) { + $this->sourceIndex = isset($child[Parser::SOURCE_INDEX]) ? $child[Parser::SOURCE_INDEX] : null; + $this->sourceLine = isset($child[Parser::SOURCE_LINE]) ? $child[Parser::SOURCE_LINE] : -1; + $this->sourceColumn = isset($child[Parser::SOURCE_COLUMN]) ? $child[Parser::SOURCE_COLUMN] : -1; + } elseif (\is_array($child) && isset($child[1]->sourceLine)) { + $this->sourceIndex = $child[1]->sourceIndex; + $this->sourceLine = $child[1]->sourceLine; + $this->sourceColumn = $child[1]->sourceColumn; + } elseif (! empty($out->sourceLine) && ! empty($out->sourceName)) { + $this->sourceLine = $out->sourceLine; + $sourceIndex = array_search($out->sourceName, $this->sourceNames); + $this->sourceColumn = $out->sourceColumn; + + if ($sourceIndex === false) { + $sourceIndex = null; + } + $this->sourceIndex = $sourceIndex; + } + + switch ($child[0]) { + case Type::T_SCSSPHP_IMPORT_ONCE: + $rawPath = $this->reduce($child[1]); + + $this->compileImport($rawPath, $out, true); + break; + + case Type::T_IMPORT: + $rawPath = $this->reduce($child[1]); + + $this->compileImport($rawPath, $out); + break; + + case Type::T_DIRECTIVE: + $this->compileDirective($child[1], $out); + break; + + case Type::T_AT_ROOT: + $this->compileAtRoot($child[1]); + break; + + case Type::T_MEDIA: + $this->compileMedia($child[1]); + break; + + case Type::T_BLOCK: + $this->compileBlock($child[1]); + break; + + case Type::T_CHARSET: + break; + + case Type::T_CUSTOM_PROPERTY: + list(, $name, $value) = $child; + $compiledName = $this->compileValue($name); + + // if the value reduces to null from something else then + // the property should be discarded + if ($value[0] !== Type::T_NULL) { + $value = $this->reduce($value); + + if ($value[0] === Type::T_NULL || $value === static::$nullString) { + break; + } + } + + $compiledValue = $this->compileValue($value); + + $line = $this->formatter->customProperty( + $compiledName, + $compiledValue + ); + + $this->appendOutputLine($out, Type::T_ASSIGN, $line); + break; + + case Type::T_ASSIGN: + list(, $name, $value) = $child; + + if ($name[0] === Type::T_VARIABLE) { + $flags = isset($child[3]) ? $child[3] : []; + $isDefault = \in_array('!default', $flags); + $isGlobal = \in_array('!global', $flags); + + if ($isGlobal) { + $this->set($name[1], $this->reduce($value), false, $this->rootEnv, $value); + break; + } + + $shouldSet = $isDefault && + (\is_null($result = $this->get($name[1], false)) || + $result === static::$null); + + if (! $isDefault || $shouldSet) { + $this->set($name[1], $this->reduce($value), true, null, $value); + } + break; + } + + $compiledName = $this->compileValue($name); + + // handle shorthand syntaxes : size / line-height... + if (\in_array($compiledName, ['font', 'grid-row', 'grid-column', 'border-radius'])) { + if ($value[0] === Type::T_VARIABLE) { + // if the font value comes from variable, the content is already reduced + // (i.e., formulas were already calculated), so we need the original unreduced value + $value = $this->get($value[1], true, null, true); + } + + $shorthandValue=&$value; + + $shorthandDividerNeedsUnit = false; + $maxListElements = null; + $maxShorthandDividers = 1; + + switch ($compiledName) { + case 'border-radius': + $maxListElements = 4; + $shorthandDividerNeedsUnit = true; + break; + } + + if ($compiledName === 'font' && $value[0] === Type::T_LIST && $value[1] === ',') { + // this is the case if more than one font is given: example: "font: 400 1em/1.3 arial,helvetica" + // we need to handle the first list element + $shorthandValue=&$value[2][0]; + } + + if ($shorthandValue[0] === Type::T_EXPRESSION && $shorthandValue[1] === '/') { + $revert = true; + + if ($shorthandDividerNeedsUnit) { + $divider = $shorthandValue[3]; + + if (\is_array($divider)) { + $divider = $this->reduce($divider, true); + } + + if ($divider instanceof Number && \intval($divider->getDimension()) && $divider->unitless()) { + $revert = false; + } + } + + if ($revert) { + $shorthandValue = $this->expToString($shorthandValue); + } + } elseif ($shorthandValue[0] === Type::T_LIST) { + foreach ($shorthandValue[2] as &$item) { + if ($item[0] === Type::T_EXPRESSION && $item[1] === '/') { + if ($maxShorthandDividers > 0) { + $revert = true; + + // if the list of values is too long, this has to be a shorthand, + // otherwise it could be a real division + if (\is_null($maxListElements) || \count($shorthandValue[2]) <= $maxListElements) { + if ($shorthandDividerNeedsUnit) { + $divider = $item[3]; + + if (\is_array($divider)) { + $divider = $this->reduce($divider, true); + } + + if ($divider instanceof Number && \intval($divider->getDimension()) && $divider->unitless()) { + $revert = false; + } + } + } + + if ($revert) { + $item = $this->expToString($item); + $maxShorthandDividers--; + } + } + } + } + } + } + + // if the value reduces to null from something else then + // the property should be discarded + if ($value[0] !== Type::T_NULL) { + $value = $this->reduce($value); + + if ($value[0] === Type::T_NULL || $value === static::$nullString) { + break; + } + } + + $compiledValue = $this->compileValue($value); + + // ignore empty value + if (\strlen($compiledValue)) { + $line = $this->formatter->property( + $compiledName, + $compiledValue + ); + $this->appendOutputLine($out, Type::T_ASSIGN, $line); + } + break; + + case Type::T_COMMENT: + if ($out->type === Type::T_ROOT) { + $this->compileComment($child); + break; + } + + $line = $this->compileCommentValue($child, true); + $this->appendOutputLine($out, Type::T_COMMENT, $line); + break; + + case Type::T_MIXIN: + case Type::T_FUNCTION: + list(, $block) = $child; + // the block need to be able to go up to it's parent env to resolve vars + $block->parentEnv = $this->getStoreEnv(); + $this->set(static::$namespaces[$block->type] . $block->name, $block, true); + break; + + case Type::T_EXTEND: + foreach ($child[1] as $sel) { + $replacedSel = $this->replaceSelfSelector($sel); + + if ($replacedSel !== $sel) { + throw $this->error('Parent selectors aren\'t allowed here.'); + } + + $results = $this->evalSelectors([$sel]); + + foreach ($results as $result) { + if (\count($result) !== 1) { + throw $this->error('complex selectors may not be extended.'); + } + + // only use the first one + $result = $result[0]; + $selectors = $out->selectors; + + if (! $selectors && isset($child['selfParent'])) { + $selectors = $this->multiplySelectors($this->env, $child['selfParent']); + } + + if (\count($result) > 1) { + $replacement = implode(', ', $result); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + $message = <<logger->warn($message); + } + + $this->pushExtends($result, $selectors, $child); + } + } + break; + + case Type::T_IF: + list(, $if) = $child; + + if ($this->isTruthy($this->reduce($if->cond, true))) { + return $this->compileChildren($if->children, $out); + } + + foreach ($if->cases as $case) { + if ( + $case->type === Type::T_ELSE || + $case->type === Type::T_ELSEIF && $this->isTruthy($this->reduce($case->cond)) + ) { + return $this->compileChildren($case->children, $out); + } + } + break; + + case Type::T_EACH: + list(, $each) = $child; + + $list = $this->coerceList($this->reduce($each->list), ',', true); + + $this->pushEnv(); + + foreach ($list[2] as $item) { + if (\count($each->vars) === 1) { + $this->set($each->vars[0], $item, true); + } else { + list(,, $values) = $this->coerceList($item); + + foreach ($each->vars as $i => $var) { + $this->set($var, isset($values[$i]) ? $values[$i] : static::$null, true); + } + } + + $ret = $this->compileChildren($each->children, $out); + + if ($ret) { + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, $each->vars); + + return $ret; + } + } + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, $each->vars); + + break; + + case Type::T_WHILE: + list(, $while) = $child; + + while ($this->isTruthy($this->reduce($while->cond, true))) { + $ret = $this->compileChildren($while->children, $out); + + if ($ret) { + return $ret; + } + } + break; + + case Type::T_FOR: + list(, $for) = $child; + + $startNumber = $this->assertNumber($this->reduce($for->start, true)); + $endNumber = $this->assertNumber($this->reduce($for->end, true)); + + $start = $this->assertInteger($startNumber); + + $numeratorUnits = $startNumber->getNumeratorUnits(); + $denominatorUnits = $startNumber->getDenominatorUnits(); + + $end = $this->assertInteger($endNumber->coerce($numeratorUnits, $denominatorUnits)); + + $d = $start < $end ? 1 : -1; + + $this->pushEnv(); + + for (;;) { + if ( + (! $for->until && $start - $d == $end) || + ($for->until && $start == $end) + ) { + break; + } + + $this->set($for->var, new Number($start, $numeratorUnits, $denominatorUnits)); + $start += $d; + + $ret = $this->compileChildren($for->children, $out); + + if ($ret) { + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, [$for->var]); + + return $ret; + } + } + + $store = $this->env->store; + $this->popEnv(); + $this->backPropagateEnv($store, [$for->var]); + + break; + + case Type::T_RETURN: + return $this->reduce($child[1], true); + + case Type::T_NESTED_PROPERTY: + $this->compileNestedPropertiesBlock($child[1], $out); + break; + + case Type::T_INCLUDE: + // including a mixin + list(, $name, $argValues, $content, $argUsing) = $child; + + $mixin = $this->get(static::$namespaces['mixin'] . $name, false); + + if (! $mixin) { + throw $this->error("Undefined mixin $name"); + } + + $callingScope = $this->getStoreEnv(); + + // push scope, apply args + $this->pushEnv(); + $this->env->depth--; + + // Find the parent selectors in the env to be able to know what '&' refers to in the mixin + // and assign this fake parent to childs + $selfParent = null; + + if (isset($child['selfParent']) && isset($child['selfParent']->selectors)) { + $selfParent = $child['selfParent']; + } else { + $parentSelectors = $this->multiplySelectors($this->env); + + if ($parentSelectors) { + $parent = new Block(); + $parent->selectors = $parentSelectors; + + foreach ($mixin->children as $k => $child) { + if (isset($child[1]) && \is_object($child[1]) && $child[1] instanceof Block) { + $mixin->children[$k][1]->parent = $parent; + } + } + } + } + + // clone the stored content to not have its scope spoiled by a further call to the same mixin + // i.e., recursive @include of the same mixin + if (isset($content)) { + $copyContent = clone $content; + $copyContent->scope = clone $callingScope; + + $this->setRaw(static::$namespaces['special'] . 'content', $copyContent, $this->env); + } else { + $this->setRaw(static::$namespaces['special'] . 'content', null, $this->env); + } + + // save the "using" argument list for applying it to when "@content" is invoked + if (isset($argUsing)) { + $this->setRaw(static::$namespaces['special'] . 'using', $argUsing, $this->env); + } else { + $this->setRaw(static::$namespaces['special'] . 'using', null, $this->env); + } + + if (isset($mixin->args)) { + $this->applyArguments($mixin->args, $argValues); + } + + $this->env->marker = 'mixin'; + + if (! empty($mixin->parentEnv)) { + $this->env->declarationScopeParent = $mixin->parentEnv; + } else { + throw $this->error("@mixin $name() without parentEnv"); + } + + $this->compileChildrenNoReturn($mixin->children, $out, $selfParent, $this->env->marker . ' ' . $name); + + $this->popEnv(); + break; + + case Type::T_MIXIN_CONTENT: + $env = isset($this->storeEnv) ? $this->storeEnv : $this->env; + $content = $this->get(static::$namespaces['special'] . 'content', false, $env); + $argUsing = $this->get(static::$namespaces['special'] . 'using', false, $env); + $argContent = $child[1]; + + if (! $content) { + break; + } + + $storeEnv = $this->storeEnv; + $varsUsing = []; + + if (isset($argUsing) && isset($argContent)) { + // Get the arguments provided for the content with the names provided in the "using" argument list + $this->storeEnv = null; + $varsUsing = $this->applyArguments($argUsing, $argContent, false); + } + + // restore the scope from the @content + $this->storeEnv = $content->scope; + + // append the vars from using if any + foreach ($varsUsing as $name => $val) { + $this->set($name, $val, true, $this->storeEnv); + } + + $this->compileChildrenNoReturn($content->children, $out); + + $this->storeEnv = $storeEnv; + break; + + case Type::T_DEBUG: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileDebugValue($value); + + $this->logger->debug("$fname:$line DEBUG: $value"); + break; + + case Type::T_WARN: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileDebugValue($value); + + $this->logger->warn("$value\n on line $line of $fname"); + break; + + case Type::T_ERROR: + list(, $value) = $child; + + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + $value = $this->compileValue($this->reduce($value, true)); + + throw $this->error("File $fname on line $line ERROR: $value\n"); + + default: + throw $this->error("unknown child type: $child[0]"); + } + } + + /** + * Reduce expression to string + * + * @param array $exp + * @param bool $keepParens + * + * @return array + */ + protected function expToString($exp, $keepParens = false) + { + list(, $op, $left, $right, $inParens, $whiteLeft, $whiteRight) = $exp; + + $content = []; + + if ($keepParens && $inParens) { + $content[] = '('; + } + + $content[] = $this->reduce($left); + + if ($whiteLeft) { + $content[] = ' '; + } + + $content[] = $op; + + if ($whiteRight) { + $content[] = ' '; + } + + $content[] = $this->reduce($right); + + if ($keepParens && $inParens) { + $content[] = ')'; + } + + return [Type::T_STRING, '', $content]; + } + + /** + * Is truthy? + * + * @param array|Number $value + * + * @return boolean + */ + public function isTruthy($value) + { + return $value !== static::$false && $value !== static::$null; + } + + /** + * Is the value a direct relationship combinator? + * + * @param string $value + * + * @return boolean + */ + protected function isImmediateRelationshipCombinator($value) + { + return $value === '>' || $value === '+' || $value === '~'; + } + + /** + * Should $value cause its operand to eval + * + * @param array $value + * + * @return boolean + */ + protected function shouldEval($value) + { + switch ($value[0]) { + case Type::T_EXPRESSION: + if ($value[1] === '/') { + return $this->shouldEval($value[2]) || $this->shouldEval($value[3]); + } + + // fall-thru + case Type::T_VARIABLE: + case Type::T_FUNCTION_CALL: + return true; + } + + return false; + } + + /** + * Reduce value + * + * @param array|Number $value + * @param boolean $inExp + * + * @return array|Number + */ + protected function reduce($value, $inExp = false) + { + if ($value instanceof Number) { + return $value; + } + + switch ($value[0]) { + case Type::T_EXPRESSION: + list(, $op, $left, $right, $inParens) = $value; + + $opName = isset(static::$operatorNames[$op]) ? static::$operatorNames[$op] : $op; + $inExp = $inExp || $this->shouldEval($left) || $this->shouldEval($right); + + $left = $this->reduce($left, true); + + if ($op !== 'and' && $op !== 'or') { + $right = $this->reduce($right, true); + } + + // special case: looks like css shorthand + if ( + $opName == 'div' && ! $inParens && ! $inExp && + (($right[0] !== Type::T_NUMBER && isset($right[2]) && $right[2] != '') || + ($right[0] === Type::T_NUMBER && ! $right->unitless())) + ) { + return $this->expToString($value); + } + + $left = $this->coerceForExpression($left); + $right = $this->coerceForExpression($right); + $ltype = $left[0]; + $rtype = $right[0]; + + $ucOpName = ucfirst($opName); + $ucLType = ucfirst($ltype); + $ucRType = ucfirst($rtype); + + // this tries: + // 1. op[op name][left type][right type] + // 2. op[left type][right type] (passing the op as first arg + // 3. op[op name] + $fn = "op${ucOpName}${ucLType}${ucRType}"; + + if ( + \is_callable([$this, $fn]) || + (($fn = "op${ucLType}${ucRType}") && + \is_callable([$this, $fn]) && + $passOp = true) || + (($fn = "op${ucOpName}") && + \is_callable([$this, $fn]) && + $genOp = true) + ) { + $shouldEval = $inParens || $inExp; + + if (isset($passOp)) { + $out = $this->$fn($op, $left, $right, $shouldEval); + } else { + $out = $this->$fn($left, $right, $shouldEval); + } + + if (isset($out)) { + return $out; + } + } + + return $this->expToString($value); + + case Type::T_UNARY: + list(, $op, $exp, $inParens) = $value; + + $inExp = $inExp || $this->shouldEval($exp); + $exp = $this->reduce($exp); + + if ($exp instanceof Number) { + switch ($op) { + case '+': + return $exp; + + case '-': + return $exp->unaryMinus(); + } + } + + if ($op === 'not') { + if ($inExp || $inParens) { + if ($exp === static::$false || $exp === static::$null) { + return static::$true; + } + + return static::$false; + } + + $op = $op . ' '; + } + + return [Type::T_STRING, '', [$op, $exp]]; + + case Type::T_VARIABLE: + return $this->reduce($this->get($value[1])); + + case Type::T_LIST: + foreach ($value[2] as &$item) { + $item = $this->reduce($item); + } + unset($item); + + if (isset($value[3]) && \is_array($value[3])) { + foreach ($value[3] as &$item) { + $item = $this->reduce($item); + } + unset($item); + } + + return $value; + + case Type::T_MAP: + foreach ($value[1] as &$item) { + $item = $this->reduce($item); + } + + foreach ($value[2] as &$item) { + $item = $this->reduce($item); + } + + return $value; + + case Type::T_STRING: + foreach ($value[2] as &$item) { + if (\is_array($item) || $item instanceof Number) { + $item = $this->reduce($item); + } + } + + return $value; + + case Type::T_INTERPOLATE: + $value[1] = $this->reduce($value[1]); + + if ($inExp) { + return [Type::T_KEYWORD, $this->compileValue($value, false)]; + } + + return $value; + + case Type::T_FUNCTION_CALL: + return $this->fncall($value[1], $value[2]); + + case Type::T_SELF: + $selfParent = ! empty($this->env->block->selfParent) ? $this->env->block->selfParent : null; + $selfSelector = $this->multiplySelectors($this->env, $selfParent); + $selfSelector = $this->collapseSelectorsAsList($selfSelector); + + return $selfSelector; + + default: + return $value; + } + } + + /** + * Function caller + * + * @param string|array $functionReference + * @param array $argValues + * + * @return array|Number + */ + protected function fncall($functionReference, $argValues) + { + // a string means this is a static hard reference coming from the parsing + if (is_string($functionReference)) { + $name = $functionReference; + + $functionReference = $this->getFunctionReference($name); + if ($functionReference === static::$null || $functionReference[0] !== Type::T_FUNCTION_REFERENCE) { + $functionReference = [Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]]; + } + } + + // a function type means we just want a plain css function call + if ($functionReference[0] === Type::T_FUNCTION) { + // for CSS functions, simply flatten the arguments into a list + $listArgs = []; + + foreach ((array) $argValues as $arg) { + if (empty($arg[0]) || count($argValues) === 1) { + $listArgs[] = $this->reduce($this->stringifyFncallArgs($arg[1])); + } + } + + return [Type::T_FUNCTION, $functionReference[1], [Type::T_LIST, ',', $listArgs]]; + } + + if ($functionReference === static::$null || $functionReference[0] !== Type::T_FUNCTION_REFERENCE) { + return static::$defaultValue; + } + + + switch ($functionReference[1]) { + // SCSS @function + case 'scss': + return $this->callScssFunction($functionReference[3], $argValues); + + // native PHP functions + case 'user': + case 'native': + list(,,$name, $fn, $prototype) = $functionReference; + + // special cases of css valid functions min/max + $name = strtolower($name); + if (\in_array($name, ['min', 'max']) && count($argValues) >= 1) { + $cssFunction = $this->cssValidArg( + [Type::T_FUNCTION_CALL, $name, $argValues], + ['min', 'max', 'calc', 'env', 'var'] + ); + if ($cssFunction !== false) { + return $cssFunction; + } + } + $returnValue = $this->callNativeFunction($name, $fn, $prototype, $argValues); + + if (! isset($returnValue)) { + return $this->fncall([Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]], $argValues); + } + + return $returnValue; + + default: + return static::$defaultValue; + } + } + + /** + * @param array|Number $arg + * @param string[] $allowed_function + * @param bool $inFunction + * + * @return array|Number|false + */ + protected function cssValidArg($arg, $allowed_function = [], $inFunction = false) + { + if ($arg instanceof Number) { + return $this->stringifyFncallArgs($arg); + } + + switch ($arg[0]) { + case Type::T_INTERPOLATE: + return [Type::T_KEYWORD, $this->CompileValue($arg)]; + + case Type::T_FUNCTION: + if (! \in_array($arg[1], $allowed_function)) { + return false; + } + if ($arg[2][0] === Type::T_LIST) { + foreach ($arg[2][2] as $k => $subarg) { + $arg[2][2][$k] = $this->cssValidArg($subarg, $allowed_function, $arg[1]); + if ($arg[2][2][$k] === false) { + return false; + } + } + } + return $arg; + + case Type::T_FUNCTION_CALL: + if (! \in_array($arg[1], $allowed_function)) { + return false; + } + $cssArgs = []; + foreach ($arg[2] as $argValue) { + if ($argValue === static::$null) { + return false; + } + $cssArg = $this->cssValidArg($argValue[1], $allowed_function, $arg[1]); + if (empty($argValue[0]) && $cssArg !== false) { + $cssArgs[] = [$argValue[0], $cssArg]; + } else { + return false; + } + } + + return $this->fncall([Type::T_FUNCTION, $arg[1], [Type::T_LIST, ',', []]], $cssArgs); + + case Type::T_STRING: + case Type::T_KEYWORD: + if (!$inFunction or !\in_array($inFunction, ['calc', 'env', 'var'])) { + return false; + } + return $this->stringifyFncallArgs($arg); + + case Type::T_LIST: + if (!$inFunction) { + return false; + } + if (empty($arg['enclosing']) and $arg[1] === '') { + foreach ($arg[2] as $k => $subarg) { + $arg[2][$k] = $this->cssValidArg($subarg, $allowed_function, $inFunction); + if ($arg[2][$k] === false) { + return false; + } + } + $arg[0] = Type::T_STRING; + return $arg; + } + return false; + + case Type::T_EXPRESSION: + if (! \in_array($arg[1], ['+', '-', '/', '*'])) { + return false; + } + $arg[2] = $this->cssValidArg($arg[2], $allowed_function, $inFunction); + $arg[3] = $this->cssValidArg($arg[3], $allowed_function, $inFunction); + if ($arg[2] === false || $arg[3] === false) { + return false; + } + return $this->expToString($arg, true); + + case Type::T_VARIABLE: + case Type::T_SELF: + default: + return false; + } + } + + + /** + * Reformat fncall arguments to proper css function output + * + * @param array|Number $arg + * + * @return array|Number + */ + protected function stringifyFncallArgs($arg) + { + if ($arg instanceof Number) { + return $arg; + } + + switch ($arg[0]) { + case Type::T_LIST: + foreach ($arg[2] as $k => $v) { + $arg[2][$k] = $this->stringifyFncallArgs($v); + } + break; + + case Type::T_EXPRESSION: + if ($arg[1] === '/') { + $arg[2] = $this->stringifyFncallArgs($arg[2]); + $arg[3] = $this->stringifyFncallArgs($arg[3]); + $arg[5] = $arg[6] = false; // no space around / + $arg = $this->expToString($arg); + } + break; + + case Type::T_FUNCTION_CALL: + $name = strtolower($arg[1]); + + if (in_array($name, ['max', 'min', 'calc'])) { + $args = $arg[2]; + $arg = $this->fncall([Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]], $args); + } + break; + } + + return $arg; + } + + /** + * Find a function reference + * @param string $name + * @param bool $safeCopy + * @return array + */ + protected function getFunctionReference($name, $safeCopy = false) + { + // SCSS @function + if ($func = $this->get(static::$namespaces['function'] . $name, false)) { + if ($safeCopy) { + $func = clone $func; + } + + return [Type::T_FUNCTION_REFERENCE, 'scss', $name, $func]; + } + + // native PHP functions + + // try to find a native lib function + $normalizedName = $this->normalizeName($name); + + if (isset($this->userFunctions[$normalizedName])) { + // see if we can find a user function + list($f, $prototype) = $this->userFunctions[$normalizedName]; + + return [Type::T_FUNCTION_REFERENCE, 'user', $name, $f, $prototype]; + } + + $lowercasedName = strtolower($normalizedName); + + // Special functions overriding a CSS function are case-insensitive. We normalize them as lowercase + // to avoid the deprecation warning about the wrong case being used. + if ($lowercasedName === 'min' || $lowercasedName === 'max') { + $normalizedName = $lowercasedName; + } + + if (($f = $this->getBuiltinFunction($normalizedName)) && \is_callable($f)) { + $libName = $f[1]; + $prototype = isset(static::$$libName) ? static::$$libName : null; + + // All core functions have a prototype defined. Not finding the + // prototype can mean 2 things: + // - the function comes from a child class (deprecated just after) + // - the function was found with a different case, which relates to calling the + // wrong Sass function due to our camelCase usage (`fade-in()` vs `fadein()`), + // because PHP method names are case-insensitive while property names are + // case-sensitive. + if ($prototype === null || strtolower($normalizedName) !== $normalizedName) { + $r = new \ReflectionMethod($this, $libName); + $actualLibName = $r->name; + + if ($actualLibName !== $libName || strtolower($normalizedName) !== $normalizedName) { + $kebabCaseName = preg_replace('~(?<=\\w)([A-Z])~', '-$1', substr($actualLibName, 3)); + assert($kebabCaseName !== null); + $originalName = strtolower($kebabCaseName); + $warning = "Calling built-in functions with a non-standard name is deprecated since Scssphp 1.8.0 and will not work anymore in 2.0 (they will be treated as CSS function calls instead).\nUse \"$originalName\" instead of \"$name\"."; + @trigger_error($warning, E_USER_DEPRECATED); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + Warn::deprecation("$warning\n on line $line of $fname"); + + // Use the actual function definition + $prototype = isset(static::$$actualLibName) ? static::$$actualLibName : null; + $f[1] = $libName = $actualLibName; + } + } + + if (\get_class($this) !== __CLASS__ && !isset($this->warnedChildFunctions[$libName])) { + $r = new \ReflectionMethod($this, $libName); + $declaringClass = $r->getDeclaringClass()->name; + + $needsWarning = $this->warnedChildFunctions[$libName] = $declaringClass !== __CLASS__; + + if ($needsWarning) { + if (method_exists(__CLASS__, $libName)) { + @trigger_error(sprintf('Overriding the "%s" core function by extending the Compiler is deprecated and will be unsupported in 2.0. Remove the "%s::%s" method.', $normalizedName, $declaringClass, $libName), E_USER_DEPRECATED); + } else { + @trigger_error(sprintf('Registering custom functions by extending the Compiler and using the lib* discovery mechanism is deprecated and will be removed in 2.0. Replace the "%s::%s" method with registering the "%s" function through "Compiler::registerFunction".', $declaringClass, $libName, $normalizedName), E_USER_DEPRECATED); + } + } + } + + return [Type::T_FUNCTION_REFERENCE, 'native', $name, $f, $prototype]; + } + + return static::$null; + } + + + /** + * Normalize name + * + * @param string $name + * + * @return string + */ + protected function normalizeName($name) + { + return str_replace('-', '_', $name); + } + + /** + * Normalize value + * + * @internal + * + * @param array|Number $value + * + * @return array|Number + */ + public function normalizeValue($value) + { + $value = $this->coerceForExpression($this->reduce($value)); + + if ($value instanceof Number) { + return $value; + } + + switch ($value[0]) { + case Type::T_LIST: + $value = $this->extractInterpolation($value); + + if ($value[0] !== Type::T_LIST) { + return [Type::T_KEYWORD, $this->compileValue($value)]; + } + + foreach ($value[2] as $key => $item) { + $value[2][$key] = $this->normalizeValue($item); + } + + if (! empty($value['enclosing'])) { + unset($value['enclosing']); + } + + return $value; + + case Type::T_STRING: + return [$value[0], '"', [$this->compileStringContent($value)]]; + + case Type::T_INTERPOLATE: + return [Type::T_KEYWORD, $this->compileValue($value)]; + + default: + return $value; + } + } + + /** + * Add numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opAddNumberNumber(Number $left, Number $right) + { + return $left->plus($right); + } + + /** + * Multiply numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opMulNumberNumber(Number $left, Number $right) + { + return $left->times($right); + } + + /** + * Subtract numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opSubNumberNumber(Number $left, Number $right) + { + return $left->minus($right); + } + + /** + * Divide numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opDivNumberNumber(Number $left, Number $right) + { + return $left->dividedBy($right); + } + + /** + * Mod numbers + * + * @param Number $left + * @param Number $right + * + * @return Number + */ + protected function opModNumberNumber(Number $left, Number $right) + { + return $left->modulo($right); + } + + /** + * Add strings + * + * @param array $left + * @param array $right + * + * @return array|null + */ + protected function opAdd($left, $right) + { + if ($strLeft = $this->coerceString($left)) { + if ($right[0] === Type::T_STRING) { + $right[1] = ''; + } + + $strLeft[2][] = $right; + + return $strLeft; + } + + if ($strRight = $this->coerceString($right)) { + if ($left[0] === Type::T_STRING) { + $left[1] = ''; + } + + array_unshift($strRight[2], $left); + + return $strRight; + } + + return null; + } + + /** + * Boolean and + * + * @param array|Number $left + * @param array|Number $right + * @param boolean $shouldEval + * + * @return array|Number|null + */ + protected function opAnd($left, $right, $shouldEval) + { + $truthy = ($left === static::$null || $right === static::$null) || + ($left === static::$false || $left === static::$true) && + ($right === static::$false || $right === static::$true); + + if (! $shouldEval) { + if (! $truthy) { + return null; + } + } + + if ($left !== static::$false && $left !== static::$null) { + return $this->reduce($right, true); + } + + return $left; + } + + /** + * Boolean or + * + * @param array|Number $left + * @param array|Number $right + * @param boolean $shouldEval + * + * @return array|Number|null + */ + protected function opOr($left, $right, $shouldEval) + { + $truthy = ($left === static::$null || $right === static::$null) || + ($left === static::$false || $left === static::$true) && + ($right === static::$false || $right === static::$true); + + if (! $shouldEval) { + if (! $truthy) { + return null; + } + } + + if ($left !== static::$false && $left !== static::$null) { + return $left; + } + + return $this->reduce($right, true); + } + + /** + * Compare colors + * + * @param string $op + * @param array $left + * @param array $right + * + * @return array + */ + protected function opColorColor($op, $left, $right) + { + if ($op !== '==' && $op !== '!=') { + $warning = "Color arithmetic is deprecated and will be an error in future versions.\n" + . "Consider using Sass's color functions instead."; + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + Warn::deprecation("$warning\n on line $line of $fname"); + } + + $out = [Type::T_COLOR]; + + foreach ([1, 2, 3] as $i) { + $lval = isset($left[$i]) ? $left[$i] : 0; + $rval = isset($right[$i]) ? $right[$i] : 0; + + switch ($op) { + case '+': + $out[] = $lval + $rval; + break; + + case '-': + $out[] = $lval - $rval; + break; + + case '*': + $out[] = $lval * $rval; + break; + + case '%': + if ($rval == 0) { + throw $this->error("color: Can't take modulo by zero"); + } + + $out[] = $lval % $rval; + break; + + case '/': + if ($rval == 0) { + throw $this->error("color: Can't divide by zero"); + } + + $out[] = (int) ($lval / $rval); + break; + + case '==': + return $this->opEq($left, $right); + + case '!=': + return $this->opNeq($left, $right); + + default: + throw $this->error("color: unknown op $op"); + } + } + + if (isset($left[4])) { + $out[4] = $left[4]; + } elseif (isset($right[4])) { + $out[4] = $right[4]; + } + + return $this->fixColor($out); + } + + /** + * Compare color and number + * + * @param string $op + * @param array $left + * @param Number $right + * + * @return array + */ + protected function opColorNumber($op, $left, Number $right) + { + if ($op === '==') { + return static::$false; + } + + if ($op === '!=') { + return static::$true; + } + + $value = $right->getDimension(); + + return $this->opColorColor( + $op, + $left, + [Type::T_COLOR, $value, $value, $value] + ); + } + + /** + * Compare number and color + * + * @param string $op + * @param Number $left + * @param array $right + * + * @return array + */ + protected function opNumberColor($op, Number $left, $right) + { + if ($op === '==') { + return static::$false; + } + + if ($op === '!=') { + return static::$true; + } + + $value = $left->getDimension(); + + return $this->opColorColor( + $op, + [Type::T_COLOR, $value, $value, $value], + $right + ); + } + + /** + * Compare number1 == number2 + * + * @param array|Number $left + * @param array|Number $right + * + * @return array + */ + protected function opEq($left, $right) + { + if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) { + $lStr[1] = ''; + $rStr[1] = ''; + + $left = $this->compileValue($lStr); + $right = $this->compileValue($rStr); + } + + return $this->toBool($left === $right); + } + + /** + * Compare number1 != number2 + * + * @param array|Number $left + * @param array|Number $right + * + * @return array + */ + protected function opNeq($left, $right) + { + if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) { + $lStr[1] = ''; + $rStr[1] = ''; + + $left = $this->compileValue($lStr); + $right = $this->compileValue($rStr); + } + + return $this->toBool($left !== $right); + } + + /** + * Compare number1 == number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opEqNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->equals($right)); + } + + /** + * Compare number1 != number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opNeqNumberNumber(Number $left, Number $right) + { + return $this->toBool(!$left->equals($right)); + } + + /** + * Compare number1 >= number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opGteNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->greaterThanOrEqual($right)); + } + + /** + * Compare number1 > number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opGtNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->greaterThan($right)); + } + + /** + * Compare number1 <= number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opLteNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->lessThanOrEqual($right)); + } + + /** + * Compare number1 < number2 + * + * @param Number $left + * @param Number $right + * + * @return array + */ + protected function opLtNumberNumber(Number $left, Number $right) + { + return $this->toBool($left->lessThan($right)); + } + + /** + * Cast to boolean + * + * @api + * + * @param bool $thing + * + * @return array + */ + public function toBool($thing) + { + return $thing ? static::$true : static::$false; + } + + /** + * Escape non printable chars in strings output as in dart-sass + * + * @internal + * + * @param string $string + * @param bool $inKeyword + * + * @return string + */ + public function escapeNonPrintableChars($string, $inKeyword = false) + { + static $replacement = []; + if (empty($replacement[$inKeyword])) { + for ($i = 0; $i < 32; $i++) { + if ($i !== 9 || $inKeyword) { + $replacement[$inKeyword][chr($i)] = '\\' . dechex($i) . ($inKeyword ? ' ' : chr(0)); + } + } + } + $string = str_replace(array_keys($replacement[$inKeyword]), array_values($replacement[$inKeyword]), $string); + // chr(0) is not a possible char from the input, so any chr(0) comes from our escaping replacement + if (strpos($string, chr(0)) !== false) { + if (substr($string, -1) === chr(0)) { + $string = substr($string, 0, -1); + } + $string = str_replace( + [chr(0) . '\\',chr(0) . ' '], + [ '\\', ' '], + $string + ); + if (strpos($string, chr(0)) !== false) { + $parts = explode(chr(0), $string); + $string = array_shift($parts); + while (count($parts)) { + $next = array_shift($parts); + if (strpos("0123456789abcdefABCDEF" . chr(9), $next[0]) !== false) { + $string .= " "; + } + $string .= $next; + } + } + } + + return $string; + } + + /** + * Compiles a primitive value into a CSS property value. + * + * Values in scssphp are typed by being wrapped in arrays, their format is + * typically: + * + * array(type, contents [, additional_contents]*) + * + * The input is expected to be reduced. This function will not work on + * things like expressions and variables. + * + * @api + * + * @param array|Number $value + * @param bool $quote + * + * @return string + */ + public function compileValue($value, $quote = true) + { + $value = $this->reduce($value); + + if ($value instanceof Number) { + return $value->output($this); + } + + switch ($value[0]) { + case Type::T_KEYWORD: + return $this->escapeNonPrintableChars($value[1], true); + + case Type::T_COLOR: + // [1] - red component (either number for a %) + // [2] - green component + // [3] - blue component + // [4] - optional alpha component + list(, $r, $g, $b) = $value; + + $r = $this->compileRGBAValue($r); + $g = $this->compileRGBAValue($g); + $b = $this->compileRGBAValue($b); + + if (\count($value) === 5) { + $alpha = $this->compileRGBAValue($value[4], true); + + if (! is_numeric($alpha) || $alpha < 1) { + $colorName = Colors::RGBaToColorName($r, $g, $b, $alpha); + + if (! \is_null($colorName)) { + return $colorName; + } + + if (is_numeric($alpha)) { + $a = new Number($alpha, ''); + } else { + $a = $alpha; + } + + return 'rgba(' . $r . ', ' . $g . ', ' . $b . ', ' . $a . ')'; + } + } + + if (! is_numeric($r) || ! is_numeric($g) || ! is_numeric($b)) { + return 'rgb(' . $r . ', ' . $g . ', ' . $b . ')'; + } + + $colorName = Colors::RGBaToColorName($r, $g, $b); + + if (! \is_null($colorName)) { + return $colorName; + } + + $h = sprintf('#%02x%02x%02x', $r, $g, $b); + + // Converting hex color to short notation (e.g. #003399 to #039) + if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) { + $h = '#' . $h[1] . $h[3] . $h[5]; + } + + return $h; + + case Type::T_STRING: + $content = $this->compileStringContent($value, $quote); + + if ($value[1] && $quote) { + $content = str_replace('\\', '\\\\', $content); + + $content = $this->escapeNonPrintableChars($content); + + // force double quote as string quote for the output in certain cases + if ( + $value[1] === "'" && + (strpos($content, '"') === false or strpos($content, "'") !== false) && + strpbrk($content, '{}\\\'') !== false + ) { + $value[1] = '"'; + } elseif ( + $value[1] === '"' && + (strpos($content, '"') !== false and strpos($content, "'") === false) + ) { + $value[1] = "'"; + } + + $content = str_replace($value[1], '\\' . $value[1], $content); + } + + return $value[1] . $content . $value[1]; + + case Type::T_FUNCTION: + $args = ! empty($value[2]) ? $this->compileValue($value[2], $quote) : ''; + + return "$value[1]($args)"; + + case Type::T_FUNCTION_REFERENCE: + $name = ! empty($value[2]) ? $value[2] : ''; + + return "get-function(\"$name\")"; + + case Type::T_LIST: + $value = $this->extractInterpolation($value); + + if ($value[0] !== Type::T_LIST) { + return $this->compileValue($value, $quote); + } + + list(, $delim, $items) = $value; + $pre = $post = ''; + + if (! empty($value['enclosing'])) { + switch ($value['enclosing']) { + case 'parent': + //$pre = '('; + //$post = ')'; + break; + case 'forced_parent': + $pre = '('; + $post = ')'; + break; + case 'bracket': + case 'forced_bracket': + $pre = '['; + $post = ']'; + break; + } + } + + $prefix_value = ''; + + if ($delim !== ' ') { + $prefix_value = ' '; + } + + $filtered = []; + + $same_string_quote = null; + foreach ($items as $item) { + if (\is_null($same_string_quote)) { + $same_string_quote = false; + if ($item[0] === Type::T_STRING) { + $same_string_quote = $item[1]; + foreach ($items as $ii) { + if ($ii[0] !== Type::T_STRING) { + $same_string_quote = false; + break; + } + } + } + } + if ($item[0] === Type::T_NULL) { + continue; + } + if ($same_string_quote === '"' && $item[0] === Type::T_STRING && $item[1]) { + $item[1] = $same_string_quote; + } + + $compiled = $this->compileValue($item, $quote); + + if ($prefix_value && \strlen($compiled)) { + $compiled = $prefix_value . $compiled; + } + + $filtered[] = $compiled; + } + + return $pre . substr(implode("$delim", $filtered), \strlen($prefix_value)) . $post; + + case Type::T_MAP: + $keys = $value[1]; + $values = $value[2]; + $filtered = []; + + for ($i = 0, $s = \count($keys); $i < $s; $i++) { + $filtered[$this->compileValue($keys[$i], $quote)] = $this->compileValue($values[$i], $quote); + } + + array_walk($filtered, function (&$value, $key) { + $value = $key . ': ' . $value; + }); + + return '(' . implode(', ', $filtered) . ')'; + + case Type::T_INTERPOLATED: + // node created by extractInterpolation + list(, $interpolate, $left, $right) = $value; + list(,, $whiteLeft, $whiteRight) = $interpolate; + + $delim = $left[1]; + + if ($delim && $delim !== ' ' && ! $whiteLeft) { + $delim .= ' '; + } + + $left = \count($left[2]) > 0 + ? $this->compileValue($left, $quote) . $delim . $whiteLeft + : ''; + + $delim = $right[1]; + + if ($delim && $delim !== ' ') { + $delim .= ' '; + } + + $right = \count($right[2]) > 0 ? + $whiteRight . $delim . $this->compileValue($right, $quote) : ''; + + return $left . $this->compileValue($interpolate, $quote) . $right; + + case Type::T_INTERPOLATE: + // strip quotes if it's a string + $reduced = $this->reduce($value[1]); + + if ($reduced instanceof Number) { + return $this->compileValue($reduced, $quote); + } + + switch ($reduced[0]) { + case Type::T_LIST: + $reduced = $this->extractInterpolation($reduced); + + if ($reduced[0] !== Type::T_LIST) { + break; + } + + list(, $delim, $items) = $reduced; + + if ($delim !== ' ') { + $delim .= ' '; + } + + $filtered = []; + + foreach ($items as $item) { + if ($item[0] === Type::T_NULL) { + continue; + } + + if ($item[0] === Type::T_STRING) { + $filtered[] = $this->compileStringContent($item, $quote); + } elseif ($item[0] === Type::T_KEYWORD) { + $filtered[] = $item[1]; + } else { + $filtered[] = $this->compileValue($item, $quote); + } + } + + $reduced = [Type::T_KEYWORD, implode("$delim", $filtered)]; + break; + + case Type::T_STRING: + $reduced = [Type::T_STRING, '', [$this->compileStringContent($reduced)]]; + break; + + case Type::T_NULL: + $reduced = [Type::T_KEYWORD, '']; + } + + return $this->compileValue($reduced, $quote); + + case Type::T_NULL: + return 'null'; + + case Type::T_COMMENT: + return $this->compileCommentValue($value); + + default: + throw $this->error('unknown value type: ' . json_encode($value)); + } + } + + /** + * @param array|Number $value + * + * @return string + */ + protected function compileDebugValue($value) + { + $value = $this->reduce($value, true); + + if ($value instanceof Number) { + return $this->compileValue($value); + } + + switch ($value[0]) { + case Type::T_STRING: + return $this->compileStringContent($value); + + default: + return $this->compileValue($value); + } + } + + /** + * Flatten list + * + * @param array $list + * + * @return string + * + * @deprecated + */ + protected function flattenList($list) + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + return $this->compileValue($list); + } + + /** + * Gets the text of a Sass string + * + * Calling this method on anything else than a SassString is unsupported. Use {@see assertString} first + * to ensure that the value is indeed a string. + * + * @param array $value + * + * @return string + */ + public function getStringText(array $value) + { + if ($value[0] !== Type::T_STRING) { + throw new \InvalidArgumentException('The argument is not a sass string. Did you forgot to use "assertString"?'); + } + + return $this->compileStringContent($value); + } + + /** + * Compile string content + * + * @param array $string + * @param bool $quote + * + * @return string + */ + protected function compileStringContent($string, $quote = true) + { + $parts = []; + + foreach ($string[2] as $part) { + if (\is_array($part) || $part instanceof Number) { + $parts[] = $this->compileValue($part, $quote); + } else { + $parts[] = $part; + } + } + + return implode($parts); + } + + /** + * Extract interpolation; it doesn't need to be recursive, compileValue will handle that + * + * @param array $list + * + * @return array + */ + protected function extractInterpolation($list) + { + $items = $list[2]; + + foreach ($items as $i => $item) { + if ($item[0] === Type::T_INTERPOLATE) { + $before = [Type::T_LIST, $list[1], \array_slice($items, 0, $i)]; + $after = [Type::T_LIST, $list[1], \array_slice($items, $i + 1)]; + + return [Type::T_INTERPOLATED, $item, $before, $after]; + } + } + + return $list; + } + + /** + * Find the final set of selectors + * + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param \ScssPhp\ScssPhp\Block $selfParent + * + * @return array + */ + protected function multiplySelectors(Environment $env, $selfParent = null) + { + $envs = $this->compactEnv($env); + $selectors = []; + $parentSelectors = [[]]; + + $selfParentSelectors = null; + + if (! \is_null($selfParent) && $selfParent->selectors) { + $selfParentSelectors = $this->evalSelectors($selfParent->selectors); + } + + while ($env = array_pop($envs)) { + if (empty($env->selectors)) { + continue; + } + + $selectors = $env->selectors; + + do { + $stillHasSelf = false; + $prevSelectors = $selectors; + $selectors = []; + + foreach ($parentSelectors as $parent) { + foreach ($prevSelectors as $selector) { + if ($selfParentSelectors) { + foreach ($selfParentSelectors as $selfParent) { + // if no '&' in the selector, each call will give same result, only add once + $s = $this->joinSelectors($parent, $selector, $stillHasSelf, $selfParent); + $selectors[serialize($s)] = $s; + } + } else { + $s = $this->joinSelectors($parent, $selector, $stillHasSelf); + $selectors[serialize($s)] = $s; + } + } + } + } while ($stillHasSelf); + + $parentSelectors = $selectors; + } + + $selectors = array_values($selectors); + + // case we are just starting a at-root : nothing to multiply but parentSelectors + if (! $selectors && $selfParentSelectors) { + $selectors = $selfParentSelectors; + } + + return $selectors; + } + + /** + * Join selectors; looks for & to replace, or append parent before child + * + * @param array $parent + * @param array $child + * @param boolean $stillHasSelf + * @param array $selfParentSelectors + + * @return array + */ + protected function joinSelectors($parent, $child, &$stillHasSelf, $selfParentSelectors = null) + { + $setSelf = false; + $out = []; + + foreach ($child as $part) { + $newPart = []; + + foreach ($part as $p) { + // only replace & once and should be recalled to be able to make combinations + if ($p === static::$selfSelector && $setSelf) { + $stillHasSelf = true; + } + + if ($p === static::$selfSelector && ! $setSelf) { + $setSelf = true; + + if (\is_null($selfParentSelectors)) { + $selfParentSelectors = $parent; + } + + foreach ($selfParentSelectors as $i => $parentPart) { + if ($i > 0) { + $out[] = $newPart; + $newPart = []; + } + + foreach ($parentPart as $pp) { + if (\is_array($pp)) { + $flatten = []; + + array_walk_recursive($pp, function ($a) use (&$flatten) { + $flatten[] = $a; + }); + + $pp = implode($flatten); + } + + $newPart[] = $pp; + } + } + } else { + $newPart[] = $p; + } + } + + $out[] = $newPart; + } + + return $setSelf ? $out : array_merge($parent, $child); + } + + /** + * Multiply media + * + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param array $childQueries + * + * @return array + */ + protected function multiplyMedia(Environment $env = null, $childQueries = null) + { + if ( + ! isset($env) || + ! empty($env->block->type) && $env->block->type !== Type::T_MEDIA + ) { + return $childQueries; + } + + // plain old block, skip + if (empty($env->block->type)) { + return $this->multiplyMedia($env->parent, $childQueries); + } + + $parentQueries = isset($env->block->queryList) + ? $env->block->queryList + : [[[Type::T_MEDIA_VALUE, $env->block->value]]]; + + $store = [$this->env, $this->storeEnv]; + + $this->env = $env; + $this->storeEnv = null; + $parentQueries = $this->evaluateMediaQuery($parentQueries); + + list($this->env, $this->storeEnv) = $store; + + if (\is_null($childQueries)) { + $childQueries = $parentQueries; + } else { + $originalQueries = $childQueries; + $childQueries = []; + + foreach ($parentQueries as $parentQuery) { + foreach ($originalQueries as $childQuery) { + $childQueries[] = array_merge( + $parentQuery, + [[Type::T_MEDIA_TYPE, [Type::T_KEYWORD, 'all']]], + $childQuery + ); + } + } + } + + return $this->multiplyMedia($env->parent, $childQueries); + } + + /** + * Convert env linked list to stack + * + * @param Environment $env + * + * @return Environment[] + * + * @phpstan-return non-empty-array + */ + protected function compactEnv(Environment $env) + { + for ($envs = []; $env; $env = $env->parent) { + $envs[] = $env; + } + + return $envs; + } + + /** + * Convert env stack to singly linked list + * + * @param Environment[] $envs + * + * @return Environment + * + * @phpstan-param non-empty-array $envs + */ + protected function extractEnv($envs) + { + for ($env = null; $e = array_pop($envs);) { + $e->parent = $env; + $env = $e; + } + + return $env; + } + + /** + * Push environment + * + * @param \ScssPhp\ScssPhp\Block $block + * + * @return \ScssPhp\ScssPhp\Compiler\Environment + */ + protected function pushEnv(Block $block = null) + { + $env = new Environment(); + $env->parent = $this->env; + $env->parentStore = $this->storeEnv; + $env->store = []; + $env->block = $block; + $env->depth = isset($this->env->depth) ? $this->env->depth + 1 : 0; + + $this->env = $env; + $this->storeEnv = null; + + return $env; + } + + /** + * Pop environment + * + * @return void + */ + protected function popEnv() + { + $this->storeEnv = $this->env->parentStore; + $this->env = $this->env->parent; + } + + /** + * Propagate vars from a just poped Env (used in @each and @for) + * + * @param array $store + * @param null|string[] $excludedVars + * + * @return void + */ + protected function backPropagateEnv($store, $excludedVars = null) + { + foreach ($store as $key => $value) { + if (empty($excludedVars) || ! \in_array($key, $excludedVars)) { + $this->set($key, $value, true); + } + } + } + + /** + * Get store environment + * + * @return \ScssPhp\ScssPhp\Compiler\Environment + */ + protected function getStoreEnv() + { + return isset($this->storeEnv) ? $this->storeEnv : $this->env; + } + + /** + * Set variable + * + * @param string $name + * @param mixed $value + * @param boolean $shadow + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function set($name, $value, $shadow = false, Environment $env = null, $valueUnreduced = null) + { + $name = $this->normalizeName($name); + + if (! isset($env)) { + $env = $this->getStoreEnv(); + } + + if ($shadow) { + $this->setRaw($name, $value, $env, $valueUnreduced); + } else { + $this->setExisting($name, $value, $env, $valueUnreduced); + } + } + + /** + * Set existing variable + * + * @param string $name + * @param mixed $value + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function setExisting($name, $value, Environment $env, $valueUnreduced = null) + { + $storeEnv = $env; + $specialContentKey = static::$namespaces['special'] . 'content'; + + $hasNamespace = $name[0] === '^' || $name[0] === '@' || $name[0] === '%'; + + $maxDepth = 10000; + + for (;;) { + if ($maxDepth-- <= 0) { + break; + } + + if (\array_key_exists($name, $env->store)) { + break; + } + + if (! $hasNamespace && isset($env->marker)) { + if (! empty($env->store[$specialContentKey])) { + $env = $env->store[$specialContentKey]->scope; + continue; + } + + if (! empty($env->declarationScopeParent)) { + $env = $env->declarationScopeParent; + continue; + } else { + $env = $storeEnv; + break; + } + } + + if (isset($env->parentStore)) { + $env = $env->parentStore; + } elseif (isset($env->parent)) { + $env = $env->parent; + } else { + $env = $storeEnv; + break; + } + } + + $env->store[$name] = $value; + + if ($valueUnreduced) { + $env->storeUnreduced[$name] = $valueUnreduced; + } + } + + /** + * Set raw variable + * + * @param string $name + * @param mixed $value + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param mixed $valueUnreduced + * + * @return void + */ + protected function setRaw($name, $value, Environment $env, $valueUnreduced = null) + { + $env->store[$name] = $value; + + if ($valueUnreduced) { + $env->storeUnreduced[$name] = $valueUnreduced; + } + } + + /** + * Get variable + * + * @internal + * + * @param string $name + * @param boolean $shouldThrow + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * @param boolean $unreduced + * + * @return mixed|null + */ + public function get($name, $shouldThrow = true, Environment $env = null, $unreduced = false) + { + $normalizedName = $this->normalizeName($name); + $specialContentKey = static::$namespaces['special'] . 'content'; + + if (! isset($env)) { + $env = $this->getStoreEnv(); + } + + $hasNamespace = $normalizedName[0] === '^' || $normalizedName[0] === '@' || $normalizedName[0] === '%'; + + $maxDepth = 10000; + + for (;;) { + if ($maxDepth-- <= 0) { + break; + } + + if (\array_key_exists($normalizedName, $env->store)) { + if ($unreduced && isset($env->storeUnreduced[$normalizedName])) { + return $env->storeUnreduced[$normalizedName]; + } + + return $env->store[$normalizedName]; + } + + if (! $hasNamespace && isset($env->marker)) { + if (! empty($env->store[$specialContentKey])) { + $env = $env->store[$specialContentKey]->scope; + continue; + } + + if (! empty($env->declarationScopeParent)) { + $env = $env->declarationScopeParent; + } else { + $env = $this->rootEnv; + } + continue; + } + + if (isset($env->parentStore)) { + $env = $env->parentStore; + } elseif (isset($env->parent)) { + $env = $env->parent; + } else { + break; + } + } + + if ($shouldThrow) { + throw $this->error("Undefined variable \$$name" . ($maxDepth <= 0 ? ' (infinite recursion)' : '')); + } + + // found nothing + return null; + } + + /** + * Has variable? + * + * @param string $name + * @param \ScssPhp\ScssPhp\Compiler\Environment $env + * + * @return boolean + */ + protected function has($name, Environment $env = null) + { + return ! \is_null($this->get($name, false, $env)); + } + + /** + * Inject variables + * + * @param array $args + * + * @return void + */ + protected function injectVariables(array $args) + { + if (empty($args)) { + return; + } + + $parser = $this->parserFactory(__METHOD__); + + foreach ($args as $name => $strValue) { + if ($name[0] === '$') { + $name = substr($name, 1); + } + + if (!\is_string($strValue) || ! $parser->parseValue($strValue, $value)) { + $value = $this->coerceValue($strValue); + } + + $this->set($name, $value); + } + } + + /** + * Replaces variables. + * + * @param array $variables + * + * @return void + */ + public function replaceVariables(array $variables) + { + $this->registeredVars = []; + $this->addVariables($variables); + } + + /** + * Replaces variables. + * + * @param array $variables + * + * @return void + */ + public function addVariables(array $variables) + { + $triggerWarning = false; + + foreach ($variables as $name => $value) { + if (!$value instanceof Number && !\is_array($value)) { + $triggerWarning = true; + } + + $this->registeredVars[$name] = $value; + } + + if ($triggerWarning) { + @trigger_error('Passing raw values to as custom variables to the Compiler is deprecated. Use "\ScssPhp\ScssPhp\ValueConverter::parseValue" or "\ScssPhp\ScssPhp\ValueConverter::fromPhp" to convert them instead.', E_USER_DEPRECATED); + } + } + + /** + * Set variables + * + * @api + * + * @param array $variables + * + * @return void + * + * @deprecated Use "addVariables" or "replaceVariables" instead. + */ + public function setVariables(array $variables) + { + @trigger_error('The method "setVariables" of the Compiler is deprecated. Use the "addVariables" method for the equivalent behavior or "replaceVariables" if merging with previous variables was not desired.'); + + $this->addVariables($variables); + } + + /** + * Unset variable + * + * @api + * + * @param string $name + * + * @return void + */ + public function unsetVariable($name) + { + unset($this->registeredVars[$name]); + } + + /** + * Returns list of variables + * + * @api + * + * @return array + */ + public function getVariables() + { + return $this->registeredVars; + } + + /** + * Adds to list of parsed files + * + * @internal + * + * @param string|null $path + * + * @return void + */ + public function addParsedFile($path) + { + if (! \is_null($path) && is_file($path)) { + $this->parsedFiles[realpath($path)] = filemtime($path); + } + } + + /** + * Returns list of parsed files + * + * @deprecated + * @return array + */ + public function getParsedFiles() + { + @trigger_error('The method "getParsedFiles" of the Compiler is deprecated. Use the "getIncludedFiles" method on the CompilationResult instance returned by compileString() instead. Be careful that the signature of the method is different.', E_USER_DEPRECATED); + return $this->parsedFiles; + } + + /** + * Add import path + * + * @api + * + * @param string|callable $path + * + * @return void + */ + public function addImportPath($path) + { + if (! \in_array($path, $this->importPaths)) { + $this->importPaths[] = $path; + } + } + + /** + * Set import paths + * + * @api + * + * @param string|array $path + * + * @return void + */ + public function setImportPaths($path) + { + $paths = (array) $path; + $actualImportPaths = array_filter($paths, function ($path) { + return $path !== ''; + }); + + $this->legacyCwdImportPath = \count($actualImportPaths) !== \count($paths); + + if ($this->legacyCwdImportPath) { + @trigger_error('Passing an empty string in the import paths to refer to the current working directory is deprecated. If that\'s the intended behavior, the value of "getcwd()" should be used directly instead. If this was used for resolving relative imports of the input alongside "chdir" with the source directory, the path of the input file should be passed to "compileString()" instead.', E_USER_DEPRECATED); + } + + $this->importPaths = $actualImportPaths; + } + + /** + * Set number precision + * + * @api + * + * @param integer $numberPrecision + * + * @return void + * + * @deprecated The number precision is not configurable anymore. The default is enough for all browsers. + */ + public function setNumberPrecision($numberPrecision) + { + @trigger_error('The number precision is not configurable anymore. ' + . 'The default is enough for all browsers.', E_USER_DEPRECATED); + } + + /** + * Sets the output style. + * + * @api + * + * @param string $style One of the OutputStyle constants + * + * @return void + * + * @phpstan-param OutputStyle::* $style + */ + public function setOutputStyle($style) + { + switch ($style) { + case OutputStyle::EXPANDED: + $this->formatter = Expanded::class; + break; + + case OutputStyle::COMPRESSED: + $this->formatter = Compressed::class; + break; + + default: + throw new \InvalidArgumentException(sprintf('Invalid output style "%s".', $style)); + } + } + + /** + * Set formatter + * + * @api + * + * @param string $formatterName + * + * @return void + * + * @deprecated Use {@see setOutputStyle} instead. + */ + public function setFormatter($formatterName) + { + if (!\in_array($formatterName, [Expanded::class, Compressed::class], true)) { + @trigger_error('Formatters other than Expanded and Compressed are deprecated.', E_USER_DEPRECATED); + } + @trigger_error('The method "setFormatter" is deprecated. Use "setOutputStyle" instead.', E_USER_DEPRECATED); + + $this->formatter = $formatterName; + } + + /** + * Set line number style + * + * @api + * + * @param string $lineNumberStyle + * + * @return void + * + * @deprecated The line number output is not supported anymore. Use source maps instead. + */ + public function setLineNumberStyle($lineNumberStyle) + { + @trigger_error('The line number output is not supported anymore. ' + . 'Use source maps instead.', E_USER_DEPRECATED); + } + + /** + * Configures the handling of non-ASCII outputs. + * + * If $charset is `true`, this will include a `@charset` declaration or a + * UTF-8 [byte-order mark][] if the stylesheet contains any non-ASCII + * characters. Otherwise, it will never include a `@charset` declaration or a + * byte-order mark. + * + * [byte-order mark]: https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 + * + * @param bool $charset + * + * @return void + */ + public function setCharset($charset) + { + $this->charset = $charset; + } + + /** + * Enable/disable source maps + * + * @api + * + * @param integer $sourceMap + * + * @return void + * + * @phpstan-param self::SOURCE_MAP_* $sourceMap + */ + public function setSourceMap($sourceMap) + { + $this->sourceMap = $sourceMap; + } + + /** + * Set source map options + * + * @api + * + * @param array $sourceMapOptions + * + * @phpstan-param array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} $sourceMapOptions + * + * @return void + */ + public function setSourceMapOptions($sourceMapOptions) + { + $this->sourceMapOptions = $sourceMapOptions; + } + + /** + * Register function + * + * @api + * + * @param string $name + * @param callable $callback + * @param string[]|null $argumentDeclaration + * + * @return void + */ + public function registerFunction($name, $callback, $argumentDeclaration = null) + { + if (self::isNativeFunction($name)) { + @trigger_error(sprintf('The "%s" function is a core sass function. Overriding it with a custom implementation through "%s" is deprecated and won\'t be supported in ScssPhp 2.0 anymore.', $name, __METHOD__), E_USER_DEPRECATED); + } + + if ($argumentDeclaration === null) { + @trigger_error('Omitting the argument declaration when registering custom function is deprecated and won\'t be supported in ScssPhp 2.0 anymore.', E_USER_DEPRECATED); + } + + $this->userFunctions[$this->normalizeName($name)] = [$callback, $argumentDeclaration]; + } + + /** + * Unregister function + * + * @api + * + * @param string $name + * + * @return void + */ + public function unregisterFunction($name) + { + unset($this->userFunctions[$this->normalizeName($name)]); + } + + /** + * Add feature + * + * @api + * + * @param string $name + * + * @return void + * + * @deprecated Registering additional features is deprecated. + */ + public function addFeature($name) + { + @trigger_error('Registering additional features is deprecated.', E_USER_DEPRECATED); + + $this->registeredFeatures[$name] = true; + } + + /** + * Import file + * + * @param string $path + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out + * + * @return void + */ + protected function importFile($path, OutputBlock $out) + { + $this->pushCallStack('import ' . $this->getPrettyPath($path)); + // see if tree is cached + $realPath = realpath($path); + + if (substr($path, -5) === '.sass') { + $this->sourceIndex = \count($this->sourceNames); + $this->sourceNames[] = $path; + $this->sourceLine = 1; + $this->sourceColumn = 1; + + throw $this->error('The Sass indented syntax is not implemented.'); + } + + if (isset($this->importCache[$realPath])) { + $this->handleImportLoop($realPath); + + $tree = $this->importCache[$realPath]; + } else { + $code = file_get_contents($path); + $parser = $this->parserFactory($path); + $tree = $parser->parse($code); + + $this->importCache[$realPath] = $tree; + } + + $currentDirectory = $this->currentDirectory; + $this->currentDirectory = dirname($path); + + $this->compileChildrenNoReturn($tree->children, $out); + $this->currentDirectory = $currentDirectory; + $this->popCallStack(); + } + + /** + * Save the imported files with their resolving path context + * + * @param string|null $currentDirectory + * @param string $path + * @param string $filePath + * + * @return void + */ + private function registerImport($currentDirectory, $path, $filePath) + { + $this->resolvedImports[] = ['currentDir' => $currentDirectory, 'path' => $path, 'filePath' => $filePath]; + } + + /** + * Detects whether the import is a CSS import. + * + * For legacy reasons, custom importers are called for those, allowing them + * to replace them with an actual Sass import. However this behavior is + * deprecated. Custom importers are expected to return null when they receive + * a CSS import. + * + * @param string $url + * + * @return bool + */ + public static function isCssImport($url) + { + return 1 === preg_match('~\.css$|^https?://|^//~', $url); + } + + /** + * Return the file path for an import url if it exists + * + * @internal + * + * @param string $url + * @param string|null $currentDir + * + * @return string|null + */ + public function findImport($url, $currentDir = null) + { + // Vanilla css and external requests. These are not meant to be Sass imports. + // Callback importers are still called for BC. + if (self::isCssImport($url)) { + foreach ($this->importPaths as $dir) { + if (\is_string($dir)) { + continue; + } + + if (\is_callable($dir)) { + // check custom callback for import path + $file = \call_user_func($dir, $url); + + if (! \is_null($file)) { + if (\is_array($dir)) { + $callableDescription = (\is_object($dir[0]) ? \get_class($dir[0]) : $dir[0]).'::'.$dir[1]; + } elseif ($dir instanceof \Closure) { + $r = new \ReflectionFunction($dir); + if (false !== strpos($r->name, '{closure}')) { + $callableDescription = sprintf('closure{%s:%s}', $r->getFileName(), $r->getStartLine()); + } elseif ($class = $r->getClosureScopeClass()) { + $callableDescription = $class->name.'::'.$r->name; + } else { + $callableDescription = $r->name; + } + } elseif (\is_object($dir)) { + $callableDescription = \get_class($dir) . '::__invoke'; + } else { + $callableDescription = 'callable'; // Fallback if we don't have a dedicated description + } + @trigger_error(sprintf('Returning a file to import for CSS or external references in custom importer callables is deprecated and will not be supported anymore in ScssPhp 2.0. This behavior is not compliant with the Sass specification. Update your "%s" importer.', $callableDescription), E_USER_DEPRECATED); + + return $file; + } + } + } + return null; + } + + if (!\is_null($currentDir)) { + $relativePath = $this->resolveImportPath($url, $currentDir); + + if (!\is_null($relativePath)) { + return $relativePath; + } + } + + foreach ($this->importPaths as $dir) { + if (\is_string($dir)) { + $path = $this->resolveImportPath($url, $dir); + + if (!\is_null($path)) { + return $path; + } + } elseif (\is_callable($dir)) { + // check custom callback for import path + $file = \call_user_func($dir, $url); + + if (! \is_null($file)) { + return $file; + } + } + } + + if ($this->legacyCwdImportPath) { + $path = $this->resolveImportPath($url, getcwd()); + + if (!\is_null($path)) { + @trigger_error('Resolving imports relatively to the current working directory is deprecated. If that\'s the intended behavior, the value of "getcwd()" should be added as an import path explicitly instead. If this was used for resolving relative imports of the input alongside "chdir" with the source directory, the path of the input file should be passed to "compileString()" instead.', E_USER_DEPRECATED); + + return $path; + } + } + + throw $this->error("`$url` file not found for @import"); + } + + /** + * @param string $url + * @param string $baseDir + * + * @return string|null + */ + private function resolveImportPath($url, $baseDir) + { + $path = Path::join($baseDir, $url); + + $hasExtension = preg_match('/.s[ac]ss$/', $url); + + if ($hasExtension) { + return $this->checkImportPathConflicts($this->tryImportPath($path)); + } + + $result = $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path)); + + if (!\is_null($result)) { + return $result; + } + + return $this->tryImportPathAsDirectory($path); + } + + /** + * @param string[] $paths + * + * @return string|null + */ + private function checkImportPathConflicts(array $paths) + { + if (\count($paths) === 0) { + return null; + } + + if (\count($paths) === 1) { + return $paths[0]; + } + + $formattedPrettyPaths = []; + + foreach ($paths as $path) { + $formattedPrettyPaths[] = ' ' . $this->getPrettyPath($path); + } + + throw $this->error("It's not clear which file to import. Found:\n" . implode("\n", $formattedPrettyPaths)); + } + + /** + * @param string $path + * + * @return string[] + */ + private function tryImportPathWithExtensions($path) + { + $result = array_merge( + $this->tryImportPath($path.'.sass'), + $this->tryImportPath($path.'.scss') + ); + + if ($result) { + return $result; + } + + return $this->tryImportPath($path.'.css'); + } + + /** + * @param string $path + * + * @return string[] + */ + private function tryImportPath($path) + { + $partial = dirname($path).'/_'.basename($path); + + $candidates = []; + + if (is_file($partial)) { + $candidates[] = $partial; + } + + if (is_file($path)) { + $candidates[] = $path; + } + + return $candidates; + } + + /** + * @param string $path + * + * @return string|null + */ + private function tryImportPathAsDirectory($path) + { + if (!is_dir($path)) { + return null; + } + + return $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path.'/index')); + } + + /** + * @param string|null $path + * + * @return string + */ + private function getPrettyPath($path) + { + if ($path === null) { + return '(unknown file)'; + } + + $normalizedPath = $path; + $normalizedRootDirectory = $this->rootDirectory.'/'; + + if (\DIRECTORY_SEPARATOR === '\\') { + $normalizedRootDirectory = str_replace('\\', '/', $normalizedRootDirectory); + $normalizedPath = str_replace('\\', '/', $path); + } + + if (0 === strpos($normalizedPath, $normalizedRootDirectory)) { + return substr($path, \strlen($normalizedRootDirectory)); + } + + return $path; + } + + /** + * Set encoding + * + * @api + * + * @param string|null $encoding + * + * @return void + * + * @deprecated Non-compliant support for other encodings than UTF-8 is deprecated. + */ + public function setEncoding($encoding) + { + if (!$encoding || strtolower($encoding) === 'utf-8') { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + } else { + @trigger_error(sprintf('The "%s" method is deprecated. Parsing will only support UTF-8 in ScssPhp 2.0. The non-UTF-8 parsing of ScssPhp 1.x is not spec compliant.', __METHOD__), E_USER_DEPRECATED); + } + + $this->encoding = $encoding; + } + + /** + * Ignore errors? + * + * @api + * + * @param boolean $ignoreErrors + * + * @return \ScssPhp\ScssPhp\Compiler + * + * @deprecated Ignoring Sass errors is not longer supported. + */ + public function setIgnoreErrors($ignoreErrors) + { + @trigger_error('Ignoring Sass errors is not longer supported.', E_USER_DEPRECATED); + + return $this; + } + + /** + * Get source position + * + * @api + * + * @return array + * + * @deprecated + */ + public function getSourcePosition() + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + $sourceFile = isset($this->sourceNames[$this->sourceIndex]) ? $this->sourceNames[$this->sourceIndex] : ''; + + return [$sourceFile, $this->sourceLine, $this->sourceColumn]; + } + + /** + * Throw error (exception) + * + * @api + * + * @param string $msg Message with optional sprintf()-style vararg parameters + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException + * + * @deprecated use "error" and throw the exception in the caller instead. + */ + public function throwError($msg) + { + @trigger_error( + 'The method "throwError" is deprecated. Use "error" and throw the exception in the caller instead', + E_USER_DEPRECATED + ); + + throw $this->error(...func_get_args()); + } + + /** + * Build an error (exception) + * + * @internal + * + * @param string $msg Message with optional sprintf()-style vararg parameters + * + * @return CompilerException + */ + public function error($msg, ...$args) + { + if ($args) { + $msg = sprintf($msg, ...$args); + } + + if (! $this->ignoreCallStackMessage) { + $msg = $this->addLocationToMessage($msg); + } + + return new CompilerException($msg); + } + + /** + * @param string $msg + * + * @return string + */ + private function addLocationToMessage($msg) + { + $line = $this->sourceLine; + $column = $this->sourceColumn; + + $loc = isset($this->sourceNames[$this->sourceIndex]) + ? $this->getPrettyPath($this->sourceNames[$this->sourceIndex]) . " on line $line, at column $column" + : "line: $line, column: $column"; + + $msg = "$msg: $loc"; + + $callStackMsg = $this->callStackMessage(); + + if ($callStackMsg) { + $msg .= "\nCall Stack:\n" . $callStackMsg; + } + + return $msg; + } + + /** + * @param string $functionName + * @param array $ExpectedArgs + * @param int $nbActual + * @return CompilerException + * + * @deprecated + */ + public function errorArgsNumber($functionName, $ExpectedArgs, $nbActual) + { + @trigger_error(sprintf('The "%s" method is deprecated.', __METHOD__), E_USER_DEPRECATED); + + $nbExpected = \count($ExpectedArgs); + + if ($nbActual > $nbExpected) { + return $this->error( + 'Error: Only %d arguments allowed in %s(), but %d were passed.', + $nbExpected, + $functionName, + $nbActual + ); + } else { + $missing = []; + + while (count($ExpectedArgs) && count($ExpectedArgs) > $nbActual) { + array_unshift($missing, array_pop($ExpectedArgs)); + } + + return $this->error( + 'Error: %s() argument%s %s missing.', + $functionName, + count($missing) > 1 ? 's' : '', + implode(', ', $missing) + ); + } + } + + /** + * Beautify call stack for output + * + * @param boolean $all + * @param int|null $limit + * + * @return string + */ + protected function callStackMessage($all = false, $limit = null) + { + $callStackMsg = []; + $ncall = 0; + + if ($this->callStack) { + foreach (array_reverse($this->callStack) as $call) { + if ($all || (isset($call['n']) && $call['n'])) { + $msg = '#' . $ncall++ . ' ' . $call['n'] . ' '; + $msg .= (isset($this->sourceNames[$call[Parser::SOURCE_INDEX]]) + ? $this->getPrettyPath($this->sourceNames[$call[Parser::SOURCE_INDEX]]) + : '(unknown file)'); + $msg .= ' on line ' . $call[Parser::SOURCE_LINE]; + + $callStackMsg[] = $msg; + + if (! \is_null($limit) && $ncall > $limit) { + break; + } + } + } + } + + return implode("\n", $callStackMsg); + } + + /** + * Handle import loop + * + * @param string $name + * + * @throws \Exception + */ + protected function handleImportLoop($name) + { + for ($env = $this->env; $env; $env = $env->parent) { + if (! $env->block) { + continue; + } + + $file = $this->sourceNames[$env->block->sourceIndex]; + + if ($file === null) { + continue; + } + + if (realpath($file) === $name) { + throw $this->error('An @import loop has been found: %s imports %s', $file, basename($file)); + } + } + } + + /** + * Call SCSS @function + * + * @param Object $func + * @param array $argValues + * + * @return array|Number + */ + protected function callScssFunction($func, $argValues) + { + if (! $func) { + return static::$defaultValue; + } + $name = $func->name; + + $this->pushEnv(); + + // set the args + if (isset($func->args)) { + $this->applyArguments($func->args, $argValues); + } + + // throw away lines and children + $tmp = new OutputBlock(); + $tmp->lines = []; + $tmp->children = []; + + $this->env->marker = 'function'; + + if (! empty($func->parentEnv)) { + $this->env->declarationScopeParent = $func->parentEnv; + } else { + throw $this->error("@function $name() without parentEnv"); + } + + $ret = $this->compileChildren($func->children, $tmp, $this->env->marker . ' ' . $name); + + $this->popEnv(); + + return ! isset($ret) ? static::$defaultValue : $ret; + } + + /** + * Call built-in and registered (PHP) functions + * + * @param string $name + * @param callable $function + * @param array $prototype + * @param array $args + * + * @return array|Number|null + */ + protected function callNativeFunction($name, $function, $prototype, $args) + { + $libName = (is_array($function) ? end($function) : null); + $sorted_kwargs = $this->sortNativeFunctionArgs($libName, $prototype, $args); + + if (\is_null($sorted_kwargs)) { + return null; + } + @list($sorted, $kwargs) = $sorted_kwargs; + + if ($name !== 'if') { + foreach ($sorted as &$val) { + if ($val !== null) { + $val = $this->reduce($val, true); + } + } + } + + $returnValue = \call_user_func($function, $sorted, $kwargs); + + if (! isset($returnValue)) { + return null; + } + + if (\is_array($returnValue) || $returnValue instanceof Number) { + return $returnValue; + } + + @trigger_error(sprintf('Returning a PHP value from the "%s" custom function is deprecated. A sass value must be returned instead.', $name), E_USER_DEPRECATED); + + return $this->coerceValue($returnValue); + } + + /** + * Get built-in function + * + * @param string $name Normalized name + * + * @return array + */ + protected function getBuiltinFunction($name) + { + $libName = self::normalizeNativeFunctionName($name); + return [$this, $libName]; + } + + /** + * Normalize native function name + * + * @internal + * + * @param string $name + * + * @return string + */ + public static function normalizeNativeFunctionName($name) + { + $name = str_replace("-", "_", $name); + $libName = 'lib' . preg_replace_callback( + '/_(.)/', + function ($m) { + return ucfirst($m[1]); + }, + ucfirst($name) + ); + return $libName; + } + + /** + * Check if a function is a native built-in scss function, for css parsing + * + * @internal + * + * @param string $name + * + * @return bool + */ + public static function isNativeFunction($name) + { + return method_exists(Compiler::class, self::normalizeNativeFunctionName($name)); + } + + /** + * Sorts keyword arguments + * + * @param string $functionName + * @param array|null $prototypes + * @param array $args + * + * @return array|null + */ + protected function sortNativeFunctionArgs($functionName, $prototypes, $args) + { + static $parser = null; + + if (! isset($prototypes)) { + $keyArgs = []; + $posArgs = []; + + if (\is_array($args) && \count($args) && \end($args) === static::$null) { + array_pop($args); + } + + // separate positional and keyword arguments + foreach ($args as $arg) { + list($key, $value) = $arg; + + if (empty($key) or empty($key[1])) { + $posArgs[] = empty($arg[2]) ? $value : $arg; + } else { + $keyArgs[$key[1]] = $value; + } + } + + return [$posArgs, $keyArgs]; + } + + // specific cases ? + if (\in_array($functionName, ['libRgb', 'libRgba', 'libHsl', 'libHsla'])) { + // notation 100 127 255 / 0 is in fact a simple list of 4 values + foreach ($args as $k => $arg) { + if ($arg[1][0] === Type::T_LIST && \count($arg[1][2]) === 3) { + $args[$k][1][2] = $this->extractSlashAlphaInColorFunction($arg[1][2]); + } + } + } + + list($positionalArgs, $namedArgs, $names, $separator, $hasSplat) = $this->evaluateArguments($args, false); + + if (! \is_array(reset($prototypes))) { + $prototypes = [$prototypes]; + } + + $parsedPrototypes = array_map([$this, 'parseFunctionPrototype'], $prototypes); + assert(!empty($parsedPrototypes)); + $matchedPrototype = $this->selectFunctionPrototype($parsedPrototypes, \count($positionalArgs), $names); + + $this->verifyPrototype($matchedPrototype, \count($positionalArgs), $names, $hasSplat); + + $vars = $this->applyArgumentsToDeclaration($matchedPrototype, $positionalArgs, $namedArgs, $separator); + + $finalArgs = []; + $keyArgs = []; + + foreach ($matchedPrototype['arguments'] as $argument) { + list($normalizedName, $originalName, $default) = $argument; + + if (isset($vars[$normalizedName])) { + $value = $vars[$normalizedName]; + } else { + $value = $default; + } + + // special null value as default: translate to real null here + if ($value === [Type::T_KEYWORD, 'null']) { + $value = null; + } + + $finalArgs[] = $value; + $keyArgs[$originalName] = $value; + } + + if ($matchedPrototype['rest_argument'] !== null) { + $value = $vars[$matchedPrototype['rest_argument']]; + + $finalArgs[] = $value; + $keyArgs[$matchedPrototype['rest_argument']] = $value; + } + + return [$finalArgs, $keyArgs]; + } + + /** + * Parses a function prototype to the internal representation of arguments. + * + * The input is an array of strings describing each argument, as supported + * in {@see registerFunction}. Argument names don't include the `$`. + * The output contains the list of positional argument, with their normalized + * name (underscores are replaced by dashes), their original name (to be used + * in case of error reporting) and their default value. The output also contains + * the normalized name of the rest argument, or null if the function prototype + * is not variadic. + * + * @param string[] $prototype + * + * @return array + * @phpstan-return array{arguments: list, rest_argument: string|null} + */ + private function parseFunctionPrototype(array $prototype) + { + static $parser = null; + + $arguments = []; + $restArgument = null; + + foreach ($prototype as $p) { + if (null !== $restArgument) { + throw new \InvalidArgumentException('The argument declaration is invalid. The rest argument must be the last one.'); + } + + $default = null; + $p = explode(':', $p, 2); + $name = str_replace('_', '-', $p[0]); + + if (isset($p[1])) { + $defaultSource = trim($p[1]); + + if ($defaultSource === 'null') { + // differentiate this null from the static::$null + $default = [Type::T_KEYWORD, 'null']; + } else { + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + $parser->parseValue($defaultSource, $default); + } + } + + if (substr($name, -3) === '...') { + $restArgument = substr($name, 0, -3); + } else { + $arguments[] = [$name, $p[0], $default]; + } + } + + return [ + 'arguments' => $arguments, + 'rest_argument' => $restArgument, + ]; + } + + /** + * Returns the function prototype for the given positional and named arguments. + * + * If no exact match is found, finds the closest approximation. Note that this + * doesn't guarantee that $positional and $names are valid for the returned + * prototype. + * + * @param array[] $prototypes + * @param int $positional + * @param array $names A set of names, as both keys and values + * + * @return array + * + * @phpstan-param non-empty-list, rest_argument: string|null}> $prototypes + * @phpstan-return array{arguments: list, rest_argument: string|null} + */ + private function selectFunctionPrototype(array $prototypes, $positional, array $names) + { + $fuzzyMatch = null; + $minMismatchDistance = null; + + foreach ($prototypes as $prototype) { + // Ideally, find an exact match. + if ($this->checkPrototypeMatches($prototype, $positional, $names)) { + return $prototype; + } + + $mismatchDistance = \count($prototype['arguments']) - $positional; + + if ($minMismatchDistance !== null) { + if (abs($mismatchDistance) > abs($minMismatchDistance)) { + continue; + } + + // If two overloads have the same mismatch distance, favor the overload + // that has more arguments. + if (abs($mismatchDistance) === abs($minMismatchDistance) && $mismatchDistance < 0) { + continue; + } + } + + $minMismatchDistance = $mismatchDistance; + $fuzzyMatch = $prototype; + } + + return $fuzzyMatch; + } + + /** + * Checks whether the argument invocation matches the callable prototype. + * + * The rules are similar to {@see verifyPrototype}. The boolean return value + * avoids the overhead of building and catching exceptions when the reason of + * not matching the prototype does not need to be known. + * + * @param array $prototype + * @param int $positional + * @param array $names + * + * @return bool + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function checkPrototypeMatches(array $prototype, $positional, array $names) + { + $nameUsed = 0; + + foreach ($prototype['arguments'] as $i => $argument) { + list ($name, $originalName, $default) = $argument; + + if ($i < $positional) { + if (isset($names[$name])) { + return false; + } + } elseif (isset($names[$name])) { + $nameUsed++; + } elseif ($default === null) { + return false; + } + } + + if ($prototype['rest_argument'] !== null) { + return true; + } + + if ($positional > \count($prototype['arguments'])) { + return false; + } + + if ($nameUsed < \count($names)) { + return false; + } + + return true; + } + + /** + * Verifies that the argument invocation is valid for the callable prototype. + * + * @param array $prototype + * @param int $positional + * @param array $names + * @param bool $hasSplat + * + * @return void + * + * @throws SassScriptException + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function verifyPrototype(array $prototype, $positional, array $names, $hasSplat) + { + $nameUsed = 0; + + foreach ($prototype['arguments'] as $i => $argument) { + list ($name, $originalName, $default) = $argument; + + if ($i < $positional) { + if (isset($names[$name])) { + throw new SassScriptException(sprintf('Argument $%s was passed both by position and by name.', $originalName)); + } + } elseif (isset($names[$name])) { + $nameUsed++; + } elseif ($default === null) { + throw new SassScriptException(sprintf('Missing argument $%s', $originalName)); + } + } + + if ($prototype['rest_argument'] !== null) { + return; + } + + if ($positional > \count($prototype['arguments'])) { + $message = sprintf( + 'Only %d %sargument%s allowed, but %d %s passed.', + \count($prototype['arguments']), + empty($names) ? '' : 'positional ', + \count($prototype['arguments']) === 1 ? '' : 's', + $positional, + $positional === 1 ? 'was' : 'were' + ); + if (!$hasSplat) { + throw new SassScriptException($message); + } + + $message = $this->addLocationToMessage($message); + $message .= "\nThis will be an error in future versions of Sass."; + $this->logger->warn($message, true); + } + + if ($nameUsed < \count($names)) { + $unknownNames = array_values(array_diff($names, array_column($prototype['arguments'], 0))); + $lastName = array_pop($unknownNames); + $message = sprintf( + 'No argument%s named $%s%s.', + $unknownNames ? 's' : '', + $unknownNames ? implode(', $', $unknownNames) . ' or $' : '', + $lastName + ); + throw new SassScriptException($message); + } + } + + /** + * Evaluates the argument from the invocation. + * + * This returns several things about this invocation: + * - the list of positional arguments + * - the map of named arguments, indexed by normalized names + * - the set of names used in the arguments (that's an array using the normalized names as keys for O(1) access) + * - the separator used by the list using the splat operator, if any + * - a boolean indicator whether any splat argument (list or map) was used, to support the incomplete error reporting. + * + * @param array[] $args + * @param bool $reduce Whether arguments should be reduced to their value + * + * @return array + * + * @throws SassScriptException + * + * @phpstan-return array{0: list, 1: array, 2: array, 3: string|null, 4: bool} + */ + private function evaluateArguments(array $args, $reduce = true) + { + // this represents trailing commas + if (\count($args) && end($args) === static::$null) { + array_pop($args); + } + + $splatSeparator = null; + $keywordArgs = []; + $names = []; + $positionalArgs = []; + $hasKeywordArgument = false; + $hasSplat = false; + + foreach ($args as $arg) { + if (!empty($arg[0])) { + $hasKeywordArgument = true; + + assert(\is_string($arg[0][1])); + $name = str_replace('_', '-', $arg[0][1]); + + if (isset($keywordArgs[$name])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $arg[0][1])); + } + + $keywordArgs[$name] = $this->maybeReduce($reduce, $arg[1]); + $names[$name] = $name; + } elseif (! empty($arg[2])) { + // $arg[2] means a var followed by ... in the arg ($list... ) + $val = $this->reduce($arg[1], true); + $hasSplat = true; + + if ($val[0] === Type::T_LIST) { + foreach ($val[2] as $item) { + if (\is_null($splatSeparator)) { + $splatSeparator = $val[1]; + } + + $positionalArgs[] = $this->maybeReduce($reduce, $item); + } + + if (isset($val[3]) && \is_array($val[3])) { + foreach ($val[3] as $name => $item) { + assert(\is_string($name)); + + $normalizedName = str_replace('_', '-', $name); + + if (isset($keywordArgs[$normalizedName])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $name)); + } + + $keywordArgs[$normalizedName] = $this->maybeReduce($reduce, $item); + $names[$normalizedName] = $normalizedName; + $hasKeywordArgument = true; + } + } + } elseif ($val[0] === Type::T_MAP) { + foreach ($val[1] as $i => $name) { + $name = $this->compileStringContent($this->coerceString($name)); + $item = $val[2][$i]; + + if (! is_numeric($name)) { + $normalizedName = str_replace('_', '-', $name); + + if (isset($keywordArgs[$normalizedName])) { + throw new SassScriptException(sprintf('Duplicate named argument $%s.', $name)); + } + + $keywordArgs[$normalizedName] = $this->maybeReduce($reduce, $item); + $names[$normalizedName] = $normalizedName; + $hasKeywordArgument = true; + } else { + if (\is_null($splatSeparator)) { + $splatSeparator = $val[1]; + } + + $positionalArgs[] = $this->maybeReduce($reduce, $item); + } + } + } elseif ($val[0] !== Type::T_NULL) { // values other than null are treated a single-element lists, while null is the empty list + $positionalArgs[] = $this->maybeReduce($reduce, $val); + } + } elseif ($hasKeywordArgument) { + throw new SassScriptException('Positional arguments must come before keyword arguments.'); + } else { + $positionalArgs[] = $this->maybeReduce($reduce, $arg[1]); + } + } + + return [$positionalArgs, $keywordArgs, $names, $splatSeparator, $hasSplat]; + } + + /** + * @param bool $reduce + * @param array|Number $value + * + * @return array|Number + */ + private function maybeReduce($reduce, $value) + { + if ($reduce) { + return $this->reduce($value, true); + } + + return $value; + } + + /** + * Apply argument values per definition + * + * @param array[] $argDef + * @param array|null $argValues + * @param boolean $storeInEnv + * @param boolean $reduce + * only used if $storeInEnv = false + * + * @return array + * + * @phpstan-param list $argDef + * + * @throws \Exception + */ + protected function applyArguments($argDef, $argValues, $storeInEnv = true, $reduce = true) + { + $output = []; + + if (\is_null($argValues)) { + $argValues = []; + } + + if ($storeInEnv) { + $storeEnv = $this->getStoreEnv(); + + $env = new Environment(); + $env->store = $storeEnv->store; + } + + $prototype = ['arguments' => [], 'rest_argument' => null]; + $originalRestArgumentName = null; + + foreach ($argDef as $i => $arg) { + list($name, $default, $isVariable) = $arg; + $normalizedName = str_replace('_', '-', $name); + + if ($isVariable) { + $originalRestArgumentName = $name; + $prototype['rest_argument'] = $normalizedName; + } else { + $prototype['arguments'][] = [$normalizedName, $name, !empty($default) ? $default : null]; + } + } + + list($positionalArgs, $namedArgs, $names, $splatSeparator, $hasSplat) = $this->evaluateArguments($argValues, $reduce); + + $this->verifyPrototype($prototype, \count($positionalArgs), $names, $hasSplat); + + $vars = $this->applyArgumentsToDeclaration($prototype, $positionalArgs, $namedArgs, $splatSeparator); + + foreach ($prototype['arguments'] as $argument) { + list($normalizedName, $name) = $argument; + + if (!isset($vars[$normalizedName])) { + continue; + } + + $val = $vars[$normalizedName]; + + if ($storeInEnv) { + $this->set($name, $this->reduce($val, true), true, $env); + } else { + $output[$name] = ($reduce ? $this->reduce($val, true) : $val); + } + } + + if ($prototype['rest_argument'] !== null) { + assert($originalRestArgumentName !== null); + $name = $originalRestArgumentName; + $val = $vars[$prototype['rest_argument']]; + + if ($storeInEnv) { + $this->set($name, $this->reduce($val, true), true, $env); + } else { + $output[$name] = ($reduce ? $this->reduce($val, true) : $val); + } + } + + if ($storeInEnv) { + $storeEnv->store = $env->store; + } + + foreach ($prototype['arguments'] as $argument) { + list($normalizedName, $name, $default) = $argument; + + if (isset($vars[$normalizedName])) { + continue; + } + assert($default !== null); + + if ($storeInEnv) { + $this->set($name, $this->reduce($default, true), true); + } else { + $output[$name] = ($reduce ? $this->reduce($default, true) : $default); + } + } + + return $output; + } + + /** + * Apply argument values per definition. + * + * This method assumes that the arguments are valid for the provided prototype. + * The validation with {@see verifyPrototype} must have been run before calling + * it. + * Arguments are returned as a map from the normalized argument names to the + * value. Additional arguments are collected in a sass argument list available + * under the name of the rest argument in the result. + * + * Defaults are not applied as they are resolved in a different environment. + * + * @param array $prototype + * @param array $positionalArgs + * @param array $namedArgs + * @param string|null $splatSeparator + * + * @return array + * + * @phpstan-param array{arguments: list, rest_argument: string|null} $prototype + */ + private function applyArgumentsToDeclaration(array $prototype, array $positionalArgs, array $namedArgs, $splatSeparator) + { + $output = []; + $minLength = min(\count($positionalArgs), \count($prototype['arguments'])); + + for ($i = 0; $i < $minLength; $i++) { + list($name) = $prototype['arguments'][$i]; + $val = $positionalArgs[$i]; + + $output[$name] = $val; + } + + $restNamed = $namedArgs; + + for ($i = \count($positionalArgs); $i < \count($prototype['arguments']); $i++) { + $argument = $prototype['arguments'][$i]; + list($name) = $argument; + + if (isset($namedArgs[$name])) { + $val = $namedArgs[$name]; + unset($restNamed[$name]); + } else { + continue; + } + + $output[$name] = $val; + } + + if ($prototype['rest_argument'] !== null) { + $name = $prototype['rest_argument']; + $rest = array_values(array_slice($positionalArgs, \count($prototype['arguments']))); + + $val = [Type::T_LIST, \is_null($splatSeparator) ? ',' : $splatSeparator , $rest, $restNamed]; + + $output[$name] = $val; + } + + return $output; + } + + /** + * Coerce a php value into a scss one + * + * @param mixed $value + * + * @return array|Number + */ + protected function coerceValue($value) + { + if (\is_array($value) || $value instanceof Number) { + return $value; + } + + if (\is_bool($value)) { + return $this->toBool($value); + } + + if (\is_null($value)) { + return static::$null; + } + + if (is_numeric($value)) { + return new Number($value, ''); + } + + if ($value === '') { + return static::$emptyString; + } + + $value = [Type::T_KEYWORD, $value]; + $color = $this->coerceColor($value); + + if ($color) { + return $color; + } + + return $value; + } + + /** + * Coerce something to map + * + * @param array|Number $item + * + * @return array|Number + */ + protected function coerceMap($item) + { + if ($item[0] === Type::T_MAP) { + return $item; + } + + if ( + $item[0] === Type::T_LIST && + $item[2] === [] + ) { + return static::$emptyMap; + } + + return $item; + } + + /** + * Coerce something to list + * + * @param array|Number $item + * @param string $delim + * @param boolean $removeTrailingNull + * + * @return array + */ + protected function coerceList($item, $delim = ',', $removeTrailingNull = false) + { + if ($item instanceof Number) { + return [Type::T_LIST, $delim, [$item]]; + } + + if ($item[0] === Type::T_LIST) { + // remove trailing null from the list + if ($removeTrailingNull && end($item[2]) === static::$null) { + array_pop($item[2]); + } + + return $item; + } + + if ($item[0] === Type::T_MAP) { + $keys = $item[1]; + $values = $item[2]; + $list = []; + + for ($i = 0, $s = \count($keys); $i < $s; $i++) { + $key = $keys[$i]; + $value = $values[$i]; + + switch ($key[0]) { + case Type::T_LIST: + case Type::T_MAP: + case Type::T_STRING: + case Type::T_NULL: + break; + + default: + $key = [Type::T_KEYWORD, $this->compileStringContent($this->coerceString($key))]; + break; + } + + $list[] = [ + Type::T_LIST, + '', + [$key, $value] + ]; + } + + return [Type::T_LIST, ',', $list]; + } + + return [Type::T_LIST, $delim, [$item]]; + } + + /** + * Coerce color for expression + * + * @param array|Number $value + * + * @return array|Number + */ + protected function coerceForExpression($value) + { + if ($color = $this->coerceColor($value)) { + return $color; + } + + return $value; + } + + /** + * Coerce value to color + * + * @param array|Number $value + * @param bool $inRGBFunction + * + * @return array|null + */ + protected function coerceColor($value, $inRGBFunction = false) + { + if ($value instanceof Number) { + return null; + } + + switch ($value[0]) { + case Type::T_COLOR: + for ($i = 1; $i <= 3; $i++) { + if (! is_numeric($value[$i])) { + $cv = $this->compileRGBAValue($value[$i]); + + if (! is_numeric($cv)) { + return null; + } + + $value[$i] = $cv; + } + + if (isset($value[4])) { + if (! is_numeric($value[4])) { + $cv = $this->compileRGBAValue($value[4], true); + + if (! is_numeric($cv)) { + return null; + } + + $value[4] = $cv; + } + } + } + + return $value; + + case Type::T_LIST: + if ($inRGBFunction) { + if (\count($value[2]) == 3 || \count($value[2]) == 4) { + $color = $value[2]; + array_unshift($color, Type::T_COLOR); + + return $this->coerceColor($color); + } + } + + return null; + + case Type::T_KEYWORD: + if (! \is_string($value[1])) { + return null; + } + + $name = strtolower($value[1]); + + // hexa color? + if (preg_match('/^#([0-9a-f]+)$/i', $name, $m)) { + $nofValues = \strlen($m[1]); + + if (\in_array($nofValues, [3, 4, 6, 8])) { + $nbChannels = 3; + $color = []; + $num = hexdec($m[1]); + + switch ($nofValues) { + case 4: + $nbChannels = 4; + // then continuing with the case 3: + case 3: + for ($i = 0; $i < $nbChannels; $i++) { + $t = $num & 0xf; + array_unshift($color, $t << 4 | $t); + $num >>= 4; + } + + break; + + case 8: + $nbChannels = 4; + // then continuing with the case 6: + case 6: + for ($i = 0; $i < $nbChannels; $i++) { + array_unshift($color, $num & 0xff); + $num >>= 8; + } + + break; + } + + if ($nbChannels === 4) { + if ($color[3] === 255) { + $color[3] = 1; // fully opaque + } else { + $color[3] = round($color[3] / 255, Number::PRECISION); + } + } + + array_unshift($color, Type::T_COLOR); + + return $color; + } + } + + if ($rgba = Colors::colorNameToRGBa($name)) { + return isset($rgba[3]) + ? [Type::T_COLOR, $rgba[0], $rgba[1], $rgba[2], $rgba[3]] + : [Type::T_COLOR, $rgba[0], $rgba[1], $rgba[2]]; + } + + return null; + } + + return null; + } + + /** + * @param integer|Number $value + * @param boolean $isAlpha + * + * @return integer|mixed + */ + protected function compileRGBAValue($value, $isAlpha = false) + { + if ($isAlpha) { + return $this->compileColorPartValue($value, 0, 1, false); + } + + return $this->compileColorPartValue($value, 0, 255, true); + } + + /** + * @param mixed $value + * @param integer|float $min + * @param integer|float $max + * @param boolean $isInt + * + * @return integer|mixed + */ + protected function compileColorPartValue($value, $min, $max, $isInt = true) + { + if (! is_numeric($value)) { + if (\is_array($value)) { + $reduced = $this->reduce($value); + + if ($reduced instanceof Number) { + $value = $reduced; + } + } + + if ($value instanceof Number) { + if ($value->unitless()) { + $num = $value->getDimension(); + } elseif ($value->hasUnit('%')) { + $num = $max * $value->getDimension() / 100; + } else { + throw $this->error('Expected %s to have no units or "%%".', $value); + } + + $value = $num; + } elseif (\is_array($value)) { + $value = $this->compileValue($value); + } + } + + if (is_numeric($value)) { + if ($isInt) { + $value = round($value); + } + + $value = min($max, max($min, $value)); + + return $value; + } + + return $value; + } + + /** + * Coerce value to string + * + * @param array|Number $value + * + * @return array + */ + protected function coerceString($value) + { + if ($value[0] === Type::T_STRING) { + return $value; + } + + return [Type::T_STRING, '', [$this->compileValue($value)]]; + } + + /** + * Assert value is a string + * + * This method deals with internal implementation details of the value + * representation where unquoted strings can sometimes be stored under + * other types. + * The returned value is always using the T_STRING type. + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertString($value, $varName = null) + { + // case of url(...) parsed a a function + if ($value[0] === Type::T_FUNCTION) { + $value = $this->coerceString($value); + } + + if (! \in_array($value[0], [Type::T_STRING, Type::T_KEYWORD])) { + $value = $this->compileValue($value); + throw SassScriptException::forArgument("$value is not a string.", $varName); + } + + return $this->coerceString($value); + } + + /** + * Coerce value to a percentage + * + * @param array|Number $value + * + * @return integer|float + * + * @deprecated + */ + protected function coercePercent($value) + { + @trigger_error(sprintf('"%s" is deprecated since 1.7.0.', __METHOD__), E_USER_DEPRECATED); + + if ($value instanceof Number) { + if ($value->hasUnit('%')) { + return $value->getDimension() / 100; + } + + return $value->getDimension(); + } + + return 0; + } + + /** + * Assert value is a map + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertMap($value, $varName = null) + { + $value = $this->coerceMap($value); + + if ($value[0] !== Type::T_MAP) { + $value = $this->compileValue($value); + + throw SassScriptException::forArgument("$value is not a map.", $varName); + } + + return $value; + } + + /** + * Assert value is a list + * + * @api + * + * @param array|Number $value + * + * @return array + * + * @throws \Exception + */ + public function assertList($value) + { + if ($value[0] !== Type::T_LIST) { + throw $this->error('expecting list, %s received', $value[0]); + } + + return $value; + } + + /** + * Gets the keywords of an argument list. + * + * Keys in the returned array are normalized names (underscores are replaced with dashes) + * without the leading `$`. + * Calling this helper with anything that an argument list received for a rest argument + * of the function argument declaration is not supported. + * + * @param array|Number $value + * + * @return array + */ + public function getArgumentListKeywords($value) + { + if ($value[0] !== Type::T_LIST || !isset($value[3]) || !\is_array($value[3])) { + throw new \InvalidArgumentException('The argument is not a sass argument list.'); + } + + return $value[3]; + } + + /** + * Assert value is a color + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return array + * + * @throws SassScriptException + */ + public function assertColor($value, $varName = null) + { + if ($color = $this->coerceColor($value)) { + return $color; + } + + $value = $this->compileValue($value); + + throw SassScriptException::forArgument("$value is not a color.", $varName); + } + + /** + * Assert value is a number + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return Number + * + * @throws SassScriptException + */ + public function assertNumber($value, $varName = null) + { + if (!$value instanceof Number) { + $value = $this->compileValue($value); + throw SassScriptException::forArgument("$value is not a number.", $varName); + } + + return $value; + } + + /** + * Assert value is a integer + * + * @api + * + * @param array|Number $value + * @param string|null $varName + * + * @return integer + * + * @throws SassScriptException + */ + public function assertInteger($value, $varName = null) + { + $value = $this->assertNumber($value, $varName)->getDimension(); + if (round($value - \intval($value), Number::PRECISION) > 0) { + throw SassScriptException::forArgument("$value is not an integer.", $varName); + } + + return intval($value); + } + + /** + * Extract the ... / alpha on the last argument of channel arg + * in color functions + * + * @param array $args + * @return array + */ + private function extractSlashAlphaInColorFunction($args) + { + $last = end($args); + if (\count($args) === 3 && $last[0] === Type::T_EXPRESSION && $last[1] === '/') { + array_pop($args); + $args[] = $last[2]; + $args[] = $last[3]; + } + return $args; + } + + + /** + * Make sure a color's components don't go out of bounds + * + * @param array $c + * + * @return array + */ + protected function fixColor($c) + { + foreach ([1, 2, 3] as $i) { + if ($c[$i] < 0) { + $c[$i] = 0; + } + + if ($c[$i] > 255) { + $c[$i] = 255; + } + + if (!\is_int($c[$i])) { + $c[$i] = round($c[$i]); + } + } + + return $c; + } + + /** + * Convert RGB to HSL + * + * @internal + * + * @param integer $red + * @param integer $green + * @param integer $blue + * + * @return array + */ + public function toHSL($red, $green, $blue) + { + $min = min($red, $green, $blue); + $max = max($red, $green, $blue); + + $l = $min + $max; + $d = $max - $min; + + if ((int) $d === 0) { + $h = $s = 0; + } else { + if ($l < 255) { + $s = $d / $l; + } else { + $s = $d / (510 - $l); + } + + if ($red == $max) { + $h = 60 * ($green - $blue) / $d; + } elseif ($green == $max) { + $h = 60 * ($blue - $red) / $d + 120; + } elseif ($blue == $max) { + $h = 60 * ($red - $green) / $d + 240; + } + } + + return [Type::T_HSL, fmod($h + 360, 360), $s * 100, $l / 5.1]; + } + + /** + * Hue to RGB helper + * + * @param float $m1 + * @param float $m2 + * @param float $h + * + * @return float + */ + protected function hueToRGB($m1, $m2, $h) + { + if ($h < 0) { + $h += 1; + } elseif ($h > 1) { + $h -= 1; + } + + if ($h * 6 < 1) { + return $m1 + ($m2 - $m1) * $h * 6; + } + + if ($h * 2 < 1) { + return $m2; + } + + if ($h * 3 < 2) { + return $m1 + ($m2 - $m1) * (2 / 3 - $h) * 6; + } + + return $m1; + } + + /** + * Convert HSL to RGB + * + * @internal + * + * @param int|float $hue H from 0 to 360 + * @param int|float $saturation S from 0 to 100 + * @param int|float $lightness L from 0 to 100 + * + * @return array + */ + public function toRGB($hue, $saturation, $lightness) + { + if ($hue < 0) { + $hue += 360; + } + + $h = $hue / 360; + $s = min(100, max(0, $saturation)) / 100; + $l = min(100, max(0, $lightness)) / 100; + + $m2 = $l <= 0.5 ? $l * ($s + 1) : $l + $s - $l * $s; + $m1 = $l * 2 - $m2; + + $r = $this->hueToRGB($m1, $m2, $h + 1 / 3) * 255; + $g = $this->hueToRGB($m1, $m2, $h) * 255; + $b = $this->hueToRGB($m1, $m2, $h - 1 / 3) * 255; + + $out = [Type::T_COLOR, $r, $g, $b]; + + return $out; + } + + /** + * Convert HWB to RGB + * https://www.w3.org/TR/css-color-4/#hwb-to-rgb + * + * @api + * + * @param integer $hue H from 0 to 360 + * @param integer $whiteness W from 0 to 100 + * @param integer $blackness B from 0 to 100 + * + * @return array + */ + private function HWBtoRGB($hue, $whiteness, $blackness) + { + $w = min(100, max(0, $whiteness)) / 100; + $b = min(100, max(0, $blackness)) / 100; + + $sum = $w + $b; + if ($sum > 1.0) { + $w = $w / $sum; + $b = $b / $sum; + } + $b = min(1.0 - $w, $b); + + $rgb = $this->toRGB($hue, 100, 50); + for($i = 1; $i < 4; $i++) { + $rgb[$i] *= (1.0 - $w - $b); + $rgb[$i] = round($rgb[$i] + 255 * $w + 0.0001); + } + + return $rgb; + } + + /** + * Convert RGB to HWB + * + * @api + * + * @param integer $red + * @param integer $green + * @param integer $blue + * + * @return array + */ + private function RGBtoHWB($red, $green, $blue) + { + $min = min($red, $green, $blue); + $max = max($red, $green, $blue); + + $d = $max - $min; + + if ((int) $d === 0) { + $h = 0; + } else { + + if ($red == $max) { + $h = 60 * ($green - $blue) / $d; + } elseif ($green == $max) { + $h = 60 * ($blue - $red) / $d + 120; + } elseif ($blue == $max) { + $h = 60 * ($red - $green) / $d + 240; + } + } + + return [Type::T_HWB, fmod($h, 360), $min / 255 * 100, 100 - $max / 255 *100]; + } + + + // Built in functions + + protected static $libCall = ['function', 'args...']; + protected function libCall($args) + { + $functionReference = $args[0]; + + if (in_array($functionReference[0], [Type::T_STRING, Type::T_KEYWORD])) { + $name = $this->compileStringContent($this->coerceString($functionReference)); + $warning = "Passing a string to call() is deprecated and will be illegal\n" + . "in Sass 4.0. Use call(function-reference($name)) instead."; + Warn::deprecation($warning); + $functionReference = $this->libGetFunction([$this->assertString($functionReference, 'function')]); + } + + if ($functionReference === static::$null) { + return static::$null; + } + + if (! in_array($functionReference[0], [Type::T_FUNCTION_REFERENCE, Type::T_FUNCTION])) { + throw $this->error('Function reference expected, got ' . $functionReference[0]); + } + + $callArgs = [ + [null, $args[1], true] + ]; + + return $this->reduce([Type::T_FUNCTION_CALL, $functionReference, $callArgs]); + } + + + protected static $libGetFunction = [ + ['name'], + ['name', 'css'] + ]; + protected function libGetFunction($args) + { + $name = $this->compileStringContent($this->assertString(array_shift($args), 'name')); + $isCss = false; + + if (count($args)) { + $isCss = array_shift($args); + $isCss = (($isCss === static::$true) ? true : false); + } + + if ($isCss) { + return [Type::T_FUNCTION, $name, [Type::T_LIST, ',', []]]; + } + + return $this->getFunctionReference($name, true); + } + + protected static $libIf = ['condition', 'if-true', 'if-false:']; + protected function libIf($args) + { + list($cond, $t, $f) = $args; + + if (! $this->isTruthy($this->reduce($cond, true))) { + return $this->reduce($f, true); + } + + return $this->reduce($t, true); + } + + protected static $libIndex = ['list', 'value']; + protected function libIndex($args) + { + list($list, $value) = $args; + + if ( + $list[0] === Type::T_MAP || + $list[0] === Type::T_STRING || + $list[0] === Type::T_KEYWORD || + $list[0] === Type::T_INTERPOLATE + ) { + $list = $this->coerceList($list, ' '); + } + + if ($list[0] !== Type::T_LIST) { + return static::$null; + } + + // Numbers are represented with value objects, for which the PHP equality operator does not + // match the Sass rules (and we cannot overload it). As they are the only type of values + // represented with a value object for now, they require a special case. + if ($value instanceof Number) { + $key = 0; + foreach ($list[2] as $item) { + $key++; + $itemValue = $this->normalizeValue($item); + + if ($itemValue instanceof Number && $value->equals($itemValue)) { + return new Number($key, ''); + } + } + return static::$null; + } + + $values = []; + + + foreach ($list[2] as $item) { + $values[] = $this->normalizeValue($item); + } + + $key = array_search($this->normalizeValue($value), $values); + + return false === $key ? static::$null : new Number($key + 1, ''); + } + + protected static $libRgb = [ + ['color'], + ['color', 'alpha'], + ['channels'], + ['red', 'green', 'blue'], + ['red', 'green', 'blue', 'alpha'] ]; + protected function libRgb($args, $kwargs, $funcName = 'rgb') + { + switch (\count($args)) { + case 1: + if (! $color = $this->coerceColor($args[0], true)) { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ')']]; + } + break; + + case 3: + $color = [Type::T_COLOR, $args[0], $args[1], $args[2]]; + + if (! $color = $this->coerceColor($color)) { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ')']]; + } + + return $color; + + case 2: + if ($color = $this->coerceColor($args[0], true)) { + $alpha = $this->compileRGBAValue($args[1], true); + + if (is_numeric($alpha)) { + $color[4] = $alpha; + } else { + $color = [Type::T_STRING, '', + [$funcName . '(', $color[1], ', ', $color[2], ', ', $color[3], ', ', $alpha, ')']]; + } + } else { + $color = [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ')']]; + } + break; + + case 4: + default: + $color = [Type::T_COLOR, $args[0], $args[1], $args[2], $args[3]]; + + if (! $color = $this->coerceColor($color)) { + $color = [Type::T_STRING, '', + [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ', ', $args[3], ')']]; + } + break; + } + + return $color; + } + + protected static $libRgba = [ + ['color'], + ['color', 'alpha'], + ['channels'], + ['red', 'green', 'blue'], + ['red', 'green', 'blue', 'alpha'] ]; + protected function libRgba($args, $kwargs) + { + return $this->libRgb($args, $kwargs, 'rgba'); + } + + /** + * Helper function for adjust_color, change_color, and scale_color + * + * @param array $args + * @param string $operation + * @param callable $fn + * + * @return array + * + * @phpstan-param callable(float|int, float|int|null, float|int): (float|int) $fn + */ + protected function alterColor(array $args, $operation, $fn) + { + $color = $this->assertColor($args[0], 'color'); + + if ($args[1][2]) { + throw new SassScriptException('Only one positional argument is allowed. All other arguments must be passed by name.'); + } + + $kwargs = $this->getArgumentListKeywords($args[1]); + + $scale = $operation === 'scale'; + $change = $operation === 'change'; + + /** + * @param string $name + * @param float|int $max + * @param bool $checkPercent + * @param bool $assertPercent + * + * @return float|int|null + */ + $getParam = function ($name, $max, $checkPercent = false, $assertPercent = false) use (&$kwargs, $scale, $change) { + if (!isset($kwargs[$name])) { + return null; + } + + $number = $this->assertNumber($kwargs[$name], $name); + unset($kwargs[$name]); + + if (!$scale && $checkPercent) { + if (!$number->hasUnit('%')) { + $warning = $this->error("{$name} Passing a number `$number` without unit % is deprecated."); + $this->logger->warn($warning->getMessage(), true); + } + } + + if ($scale || $assertPercent) { + $number->assertUnit('%', $name); + } + + if ($scale) { + $max = 100; + } + + return $number->valueInRange($change ? 0 : -$max, $max, $name); + }; + + $alpha = $getParam('alpha', 1); + $red = $getParam('red', 255); + $green = $getParam('green', 255); + $blue = $getParam('blue', 255); + + if ($scale || !isset($kwargs['hue'])) { + $hue = null; + } else { + $hueNumber = $this->assertNumber($kwargs['hue'], 'hue'); + unset($kwargs['hue']); + $hue = $hueNumber->getDimension(); + } + $saturation = $getParam('saturation', 100, true); + $lightness = $getParam('lightness', 100, true); + $whiteness = $getParam('whiteness', 100, false, true); + $blackness = $getParam('blackness', 100, false, true); + + if (!empty($kwargs)) { + $unknownNames = array_keys($kwargs); + $lastName = array_pop($unknownNames); + $message = sprintf( + 'No argument%s named $%s%s.', + $unknownNames ? 's' : '', + $unknownNames ? implode(', $', $unknownNames) . ' or $' : '', + $lastName + ); + throw new SassScriptException($message); + } + + $hasRgb = $red !== null || $green !== null || $blue !== null; + $hasSL = $saturation !== null || $lightness !== null; + $hasWB = $whiteness !== null || $blackness !== null; + $found = false; + + if ($hasRgb && ($hasSL || $hasWB || $hue !== null)) { + throw new SassScriptException(sprintf('RGB parameters may not be passed along with %s parameters.', $hasWB ? 'HWB' : 'HSL')); + } + + if ($hasWB && $hasSL) { + throw new SassScriptException('HSL parameters may not be passed along with HWB parameters.'); + } + + if ($hasRgb) { + $color[1] = round($fn($color[1], $red, 255)); + $color[2] = round($fn($color[2], $green, 255)); + $color[3] = round($fn($color[3], $blue, 255)); + } elseif ($hasWB) { + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + if ($hue !== null) { + $hwb[1] = $change ? $hue : $hwb[1] + $hue; + } + $hwb[2] = $fn($hwb[2], $whiteness, 100); + $hwb[3] = $fn($hwb[3], $blackness, 100); + + $rgb = $this->HWBtoRGB($hwb[1], $hwb[2], $hwb[3]); + + if (isset($color[4])) { + $rgb[4] = $color[4]; + } + + $color = $rgb; + } elseif ($hue !== null || $hasSL) { + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + if ($hue !== null) { + $hsl[1] = $change ? $hue : $hsl[1] + $hue; + } + $hsl[2] = $fn($hsl[2], $saturation, 100); + $hsl[3] = $fn($hsl[3], $lightness, 100); + + $rgb = $this->toRGB($hsl[1], $hsl[2], $hsl[3]); + + if (isset($color[4])) { + $rgb[4] = $color[4]; + } + + $color = $rgb; + } + + if ($alpha !== null) { + $existingAlpha = isset($color[4]) ? $color[4] : 1; + $color[4] = $fn($existingAlpha, $alpha, 1); + } + + return $color; + } + + protected static $libAdjustColor = ['color', 'kwargs...']; + protected function libAdjustColor($args) + { + return $this->alterColor($args, 'adjust', function ($base, $alter, $max) { + if ($alter === null) { + return $base; + } + + $new = $base + $alter; + + if ($new < 0) { + return 0; + } + + if ($new > $max) { + return $max; + } + + return $new; + }); + } + + protected static $libChangeColor = ['color', 'kwargs...']; + protected function libChangeColor($args) + { + return $this->alterColor($args,'change', function ($base, $alter, $max) { + if ($alter === null) { + return $base; + } + + return $alter; + }); + } + + protected static $libScaleColor = ['color', 'kwargs...']; + protected function libScaleColor($args) + { + return $this->alterColor($args, 'scale', function ($base, $scale, $max) { + if ($scale === null) { + return $base; + } + + $scale = $scale / 100; + + if ($scale < 0) { + return $base * $scale + $base; + } + + return ($max - $base) * $scale + $base; + }); + } + + protected static $libIeHexStr = ['color']; + protected function libIeHexStr($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `ie-hex-str($color)` must be a color'); + } + + $color[4] = isset($color[4]) ? round(255 * $color[4]) : 255; + + return [Type::T_STRING, '', [sprintf('#%02X%02X%02X%02X', $color[4], $color[1], $color[2], $color[3])]]; + } + + protected static $libRed = ['color']; + protected function libRed($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `red($color)` must be a color'); + } + + return new Number((int) $color[1], ''); + } + + protected static $libGreen = ['color']; + protected function libGreen($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `green($color)` must be a color'); + } + + return new Number((int) $color[2], ''); + } + + protected static $libBlue = ['color']; + protected function libBlue($args) + { + $color = $this->coerceColor($args[0]); + + if (\is_null($color)) { + throw $this->error('Error: argument `$color` of `blue($color)` must be a color'); + } + + return new Number((int) $color[3], ''); + } + + protected static $libAlpha = ['color']; + protected function libAlpha($args) + { + if ($color = $this->coerceColor($args[0])) { + return new Number(isset($color[4]) ? $color[4] : 1, ''); + } + + // this might be the IE function, so return value unchanged + return null; + } + + protected static $libOpacity = ['color']; + protected function libOpacity($args) + { + $value = $args[0]; + + if ($value instanceof Number) { + return null; + } + + return $this->libAlpha($args); + } + + // mix two colors + protected static $libMix = [ + ['color1', 'color2', 'weight:50%'], + ['color-1', 'color-2', 'weight:50%'] + ]; + protected function libMix($args) + { + list($first, $second, $weight) = $args; + + $first = $this->assertColor($first, 'color1'); + $second = $this->assertColor($second, 'color2'); + $weightScale = $this->assertNumber($weight, 'weight')->valueInRange(0, 100, 'weight') / 100; + + $firstAlpha = isset($first[4]) ? $first[4] : 1; + $secondAlpha = isset($second[4]) ? $second[4] : 1; + + $normalizedWeight = $weightScale * 2 - 1; + $alphaDistance = $firstAlpha - $secondAlpha; + + $combinedWeight = $normalizedWeight * $alphaDistance == -1 ? $normalizedWeight : ($normalizedWeight + $alphaDistance) / (1 + $normalizedWeight * $alphaDistance); + $weight1 = ($combinedWeight + 1) / 2.0; + $weight2 = 1.0 - $weight1; + + $new = [Type::T_COLOR, + $weight1 * $first[1] + $weight2 * $second[1], + $weight1 * $first[2] + $weight2 * $second[2], + $weight1 * $first[3] + $weight2 * $second[3], + ]; + + if ($firstAlpha != 1.0 || $secondAlpha != 1.0) { + $new[] = $firstAlpha * $weightScale + $secondAlpha * (1 - $weightScale); + } + + return $this->fixColor($new); + } + + protected static $libHsl = [ + ['channels'], + ['hue', 'saturation'], + ['hue', 'saturation', 'lightness'], + ['hue', 'saturation', 'lightness', 'alpha'] ]; + protected function libHsl($args, $kwargs, $funcName = 'hsl') + { + $args_to_check = $args; + + if (\count($args) == 1) { + if ($args[0][0] !== Type::T_LIST || \count($args[0][2]) < 3 || \count($args[0][2]) > 4) { + return [Type::T_STRING, '', [$funcName . '(', $args[0], ')']]; + } + + $args = $args[0][2]; + $args_to_check = $kwargs['channels'][2]; + } + + if (\count($args) === 2) { + // if var() is used as an argument, return as a css function + foreach ($args as $arg) { + if ($arg[0] === Type::T_FUNCTION && in_array($arg[1], ['var'])) { + return null; + } + } + + throw new SassScriptException('Missing argument $lightness.'); + } + + foreach ($kwargs as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && in_array($arg[1], ['min', 'max'])) { + return null; + } + } + + foreach ($args_to_check as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && in_array($arg[1], ['min', 'max'])) { + if (count($kwargs) > 1 || ($k >= 2 && count($args) === 4)) { + return null; + } + + $args[$k] = $this->stringifyFncallArgs($arg); + } + + if ( + $k >= 2 && count($args) === 4 && + in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && + in_array($arg[1], ['calc','env']) + ) { + return null; + } + } + + $hue = $this->reduce($args[0]); + $saturation = $this->reduce($args[1]); + $lightness = $this->reduce($args[2]); + $alpha = null; + + if (\count($args) === 4) { + $alpha = $this->compileColorPartValue($args[3], 0, 100, false); + + if (!$hue instanceof Number || !$saturation instanceof Number || ! $lightness instanceof Number || ! is_numeric($alpha)) { + return [Type::T_STRING, '', + [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ', ', $args[3], ')']]; + } + } else { + if (!$hue instanceof Number || !$saturation instanceof Number || ! $lightness instanceof Number) { + return [Type::T_STRING, '', [$funcName . '(', $args[0], ', ', $args[1], ', ', $args[2], ')']]; + } + } + + $hueValue = fmod($hue->getDimension(), 360); + + while ($hueValue < 0) { + $hueValue += 360; + } + + $color = $this->toRGB($hueValue, max(0, min($saturation->getDimension(), 100)), max(0, min($lightness->getDimension(), 100))); + + if (! \is_null($alpha)) { + $color[4] = $alpha; + } + + return $color; + } + + protected static $libHsla = [ + ['channels'], + ['hue', 'saturation'], + ['hue', 'saturation', 'lightness'], + ['hue', 'saturation', 'lightness', 'alpha']]; + protected function libHsla($args, $kwargs) + { + return $this->libHsl($args, $kwargs, 'hsla'); + } + + protected static $libHue = ['color']; + protected function libHue($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[1], 'deg'); + } + + protected static $libSaturation = ['color']; + protected function libSaturation($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[2], '%'); + } + + protected static $libLightness = ['color']; + protected function libLightness($args) + { + $color = $this->assertColor($args[0], 'color'); + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + + return new Number($hsl[3], '%'); + } + + /* + * Todo : a integrer dans le futur module color + protected static $libHwb = [ + ['channels'], + ['hue', 'whiteness', 'blackness'], + ['hue', 'whiteness', 'blackness', 'alpha'] ]; + protected function libHwb($args, $kwargs, $funcName = 'hwb') + { + $args_to_check = $args; + + if (\count($args) == 1) { + if ($args[0][0] !== Type::T_LIST) { + throw $this->error("Missing elements \$whiteness and \$blackness"); + } + + if (\trim($args[0][1])) { + throw $this->error("\$channels must be a space-separated list."); + } + + if (! empty($args[0]['enclosing'])) { + throw $this->error("\$channels must be an unbracketed list."); + } + + $args = $args[0][2]; + if (\count($args) > 3) { + throw $this->error("hwb() : Only 3 elements are allowed but ". \count($args) . "were passed"); + } + + $args_to_check = $this->extractSlashAlphaInColorFunction($kwargs['channels'][2]); + if (\count($args_to_check) !== \count($kwargs['channels'][2])) { + $args = $args_to_check; + } + } + + if (\count($args_to_check) < 2) { + throw $this->error("Missing elements \$whiteness and \$blackness"); + } + if (\count($args_to_check) < 3) { + throw $this->error("Missing element \$blackness"); + } + if (\count($args_to_check) > 4) { + throw $this->error("hwb() : Only 4 elements are allowed but ". \count($args) . "were passed"); + } + + foreach ($kwargs as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL]) && in_array($arg[1], ['min', 'max'])) { + return null; + } + } + + foreach ($args_to_check as $k => $arg) { + if (in_array($arg[0], [Type::T_FUNCTION_CALL]) && in_array($arg[1], ['min', 'max'])) { + if (count($kwargs) > 1 || ($k >= 2 && count($args) === 4)) { + return null; + } + + $args[$k] = $this->stringifyFncallArgs($arg); + } + + if ( + $k >= 2 && count($args) === 4 && + in_array($arg[0], [Type::T_FUNCTION_CALL, Type::T_FUNCTION]) && + in_array($arg[1], ['calc','env']) + ) { + return null; + } + } + + $hue = $this->reduce($args[0]); + $whiteness = $this->reduce($args[1]); + $blackness = $this->reduce($args[2]); + $alpha = null; + + if (\count($args) === 4) { + $alpha = $this->compileColorPartValue($args[3], 0, 1, false); + + if (! \is_numeric($alpha)) { + $val = $this->compileValue($args[3]); + throw $this->error("\$alpha: $val is not a number"); + } + } + + $this->assertNumber($hue, 'hue'); + $this->assertUnit($whiteness, ['%'], 'whiteness'); + $this->assertUnit($blackness, ['%'], 'blackness'); + + $this->assertRange($whiteness, 0, 100, "0% and 100%", "whiteness"); + $this->assertRange($blackness, 0, 100, "0% and 100%", "blackness"); + + $w = $whiteness->getDimension(); + $b = $blackness->getDimension(); + + $hueValue = $hue->getDimension() % 360; + + while ($hueValue < 0) { + $hueValue += 360; + } + + $color = $this->HWBtoRGB($hueValue, $w, $b); + + if (! \is_null($alpha)) { + $color[4] = $alpha; + } + + return $color; + } + + protected static $libWhiteness = ['color']; + protected function libWhiteness($args, $kwargs, $funcName = 'whiteness') { + + $color = $this->assertColor($args[0]); + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + + return new Number($hwb[2], '%'); + } + + protected static $libBlackness = ['color']; + protected function libBlackness($args, $kwargs, $funcName = 'blackness') { + + $color = $this->assertColor($args[0]); + $hwb = $this->RGBtoHWB($color[1], $color[2], $color[3]); + + return new Number($hwb[3], '%'); + } + */ + + protected function adjustHsl($color, $idx, $amount) + { + $hsl = $this->toHSL($color[1], $color[2], $color[3]); + $hsl[$idx] += $amount; + + if ($idx !== 1) { + // Clamp the saturation and lightness + $hsl[$idx] = min(max(0, $hsl[$idx]), 100); + } + + $out = $this->toRGB($hsl[1], $hsl[2], $hsl[3]); + + if (isset($color[4])) { + $out[4] = $color[4]; + } + + return $out; + } + + protected static $libAdjustHue = ['color', 'degrees']; + protected function libAdjustHue($args) + { + $color = $this->assertColor($args[0], 'color'); + $degrees = $this->assertNumber($args[1], 'degrees')->getDimension(); + + return $this->adjustHsl($color, 1, $degrees); + } + + protected static $libLighten = ['color', 'amount']; + protected function libLighten($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = Util::checkRange('amount', new Range(0, 100), $args[1], '%'); + + return $this->adjustHsl($color, 3, $amount); + } + + protected static $libDarken = ['color', 'amount']; + protected function libDarken($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = Util::checkRange('amount', new Range(0, 100), $args[1], '%'); + + return $this->adjustHsl($color, 3, -$amount); + } + + protected static $libSaturate = [['color', 'amount'], ['amount']]; + protected function libSaturate($args) + { + $value = $args[0]; + + if (count($args) === 1) { + $this->assertNumber($args[0], 'amount'); + + return null; + } + + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + return $this->adjustHsl($color, 2, $amount->valueInRange(0, 100, 'amount')); + } + + protected static $libDesaturate = ['color', 'amount']; + protected function libDesaturate($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + return $this->adjustHsl($color, 2, -$amount->valueInRange(0, 100, 'amount')); + } + + protected static $libGrayscale = ['color']; + protected function libGrayscale($args) + { + $value = $args[0]; + + if ($value instanceof Number) { + return null; + } + + return $this->adjustHsl($this->assertColor($value, 'color'), 2, -100); + } + + protected static $libComplement = ['color']; + protected function libComplement($args) + { + return $this->adjustHsl($this->assertColor($args[0], 'color'), 1, 180); + } + + protected static $libInvert = ['color', 'weight:100%']; + protected function libInvert($args) + { + $value = $args[0]; + + $weight = $this->assertNumber($args[1], 'weight'); + + if ($value instanceof Number) { + if ($weight->getDimension() != 100 || !$weight->hasUnit('%')) { + throw new SassScriptException('Only one argument may be passed to the plain-CSS invert() function.'); + } + + return null; + } + + $color = $this->assertColor($value, 'color'); + $inverted = $color; + $inverted[1] = 255 - $inverted[1]; + $inverted[2] = 255 - $inverted[2]; + $inverted[3] = 255 - $inverted[3]; + + return $this->libMix([$inverted, $color, $weight]); + } + + // increases opacity by amount + protected static $libOpacify = ['color', 'amount']; + protected function libOpacify($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + $color[4] = (isset($color[4]) ? $color[4] : 1) + $amount->valueInRange(0, 1, 'amount'); + $color[4] = min(1, max(0, $color[4])); + + return $color; + } + + protected static $libFadeIn = ['color', 'amount']; + protected function libFadeIn($args) + { + return $this->libOpacify($args); + } + + // decreases opacity by amount + protected static $libTransparentize = ['color', 'amount']; + protected function libTransparentize($args) + { + $color = $this->assertColor($args[0], 'color'); + $amount = $this->assertNumber($args[1], 'amount'); + + $color[4] = (isset($color[4]) ? $color[4] : 1) - $amount->valueInRange(0, 1, 'amount'); + $color[4] = min(1, max(0, $color[4])); + + return $color; + } + + protected static $libFadeOut = ['color', 'amount']; + protected function libFadeOut($args) + { + return $this->libTransparentize($args); + } + + protected static $libUnquote = ['string']; + protected function libUnquote($args) + { + try { + $str = $this->assertString($args[0], 'string'); + } catch (SassScriptException $e) { + $value = $this->compileValue($args[0]); + $fname = $this->getPrettyPath($this->sourceNames[$this->sourceIndex]); + $line = $this->sourceLine; + + $message = "Passing $value, a non-string value, to unquote() +will be an error in future versions of Sass.\n on line $line of $fname"; + + $this->logger->warn($message, true); + + return $args[0]; + } + + $str[1] = ''; + + return $str; + } + + protected static $libQuote = ['string']; + protected function libQuote($args) + { + $value = $this->assertString($args[0], 'string'); + + $value[1] = '"'; + + return $value; + } + + protected static $libPercentage = ['number']; + protected function libPercentage($args) + { + $num = $this->assertNumber($args[0], 'number'); + $num->assertNoUnits('number'); + + return new Number($num->getDimension() * 100, '%'); + } + + protected static $libRound = ['number']; + protected function libRound($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(round($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libFloor = ['number']; + protected function libFloor($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(floor($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libCeil = ['number']; + protected function libCeil($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(ceil($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libAbs = ['number']; + protected function libAbs($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return new Number(abs($num->getDimension()), $num->getNumeratorUnits(), $num->getDenominatorUnits()); + } + + protected static $libMin = ['numbers...']; + protected function libMin($args) + { + /** + * @var Number|null + */ + $min = null; + + foreach ($args[0][2] as $arg) { + $number = $this->assertNumber($arg); + + if (\is_null($min) || $min->greaterThan($number)) { + $min = $number; + } + } + + if (!\is_null($min)) { + return $min; + } + + throw $this->error('At least one argument must be passed.'); + } + + protected static $libMax = ['numbers...']; + protected function libMax($args) + { + /** + * @var Number|null + */ + $max = null; + + foreach ($args[0][2] as $arg) { + $number = $this->assertNumber($arg); + + if (\is_null($max) || $max->lessThan($number)) { + $max = $number; + } + } + + if (!\is_null($max)) { + return $max; + } + + throw $this->error('At least one argument must be passed.'); + } + + protected static $libLength = ['list']; + protected function libLength($args) + { + $list = $this->coerceList($args[0], ',', true); + + return new Number(\count($list[2]), ''); + } + + protected static $libListSeparator = ['list']; + protected function libListSeparator($args) + { + if (! \in_array($args[0][0], [Type::T_LIST, Type::T_MAP])) { + return [Type::T_KEYWORD, 'space']; + } + + $list = $this->coerceList($args[0]); + + if (\count($list[2]) <= 1 && empty($list['enclosing'])) { + return [Type::T_KEYWORD, 'space']; + } + + if ($list[1] === ',') { + return [Type::T_KEYWORD, 'comma']; + } + + return [Type::T_KEYWORD, 'space']; + } + + protected static $libNth = ['list', 'n']; + protected function libNth($args) + { + $list = $this->coerceList($args[0], ',', false); + $n = $this->assertNumber($args[1])->getDimension(); + + if ($n > 0) { + $n--; + } elseif ($n < 0) { + $n += \count($list[2]); + } + + return isset($list[2][$n]) ? $list[2][$n] : static::$defaultValue; + } + + protected static $libSetNth = ['list', 'n', 'value']; + protected function libSetNth($args) + { + $list = $this->coerceList($args[0]); + $n = $this->assertNumber($args[1])->getDimension(); + + if ($n > 0) { + $n--; + } elseif ($n < 0) { + $n += \count($list[2]); + } + + if (! isset($list[2][$n])) { + throw $this->error('Invalid argument for "n"'); + } + + $list[2][$n] = $args[2]; + + return $list; + } + + protected static $libMapGet = ['map', 'key']; + protected function libMapGet($args) + { + $map = $this->assertMap($args[0], 'map'); + $key = $args[1]; + + if (! \is_null($key)) { + $key = $this->compileStringContent($this->coerceString($key)); + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if ($key === $this->compileStringContent($this->coerceString($map[1][$i]))) { + return $map[2][$i]; + } + } + } + + return static::$null; + } + + protected static $libMapKeys = ['map']; + protected function libMapKeys($args) + { + $map = $this->assertMap($args[0], 'map'); + $keys = $map[1]; + + return [Type::T_LIST, ',', $keys]; + } + + protected static $libMapValues = ['map']; + protected function libMapValues($args) + { + $map = $this->assertMap($args[0], 'map'); + $values = $map[2]; + + return [Type::T_LIST, ',', $values]; + } + + protected static $libMapRemove = [ + ['map'], + ['map', 'key', 'keys...'], + ]; + protected function libMapRemove($args) + { + $map = $this->assertMap($args[0], 'map'); + + if (\count($args) === 1) { + return $map; + } + + $keys = []; + $keys[] = $this->compileStringContent($this->coerceString($args[1])); + + foreach ($args[2][2] as $key) { + $keys[] = $this->compileStringContent($this->coerceString($key)); + } + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if (in_array($this->compileStringContent($this->coerceString($map[1][$i])), $keys)) { + array_splice($map[1], $i, 1); + array_splice($map[2], $i, 1); + } + } + + return $map; + } + + protected static $libMapHasKey = ['map', 'key']; + protected function libMapHasKey($args) + { + $map = $this->assertMap($args[0], 'map'); + + return $this->toBool($this->mapHasKey($map, $args[1])); + } + + /** + * @param array|Number $keyValue + * + * @return bool + */ + private function mapHasKey(array $map, $keyValue) + { + $key = $this->compileStringContent($this->coerceString($keyValue)); + + for ($i = \count($map[1]) - 1; $i >= 0; $i--) { + if ($key === $this->compileStringContent($this->coerceString($map[1][$i]))) { + return true; + } + } + + return false; + } + + protected static $libMapMerge = [ + ['map1', 'map2'], + ['map-1', 'map-2'] + ]; + protected function libMapMerge($args) + { + $map1 = $this->assertMap($args[0], 'map1'); + $map2 = $this->assertMap($args[1], 'map2'); + + foreach ($map2[1] as $i2 => $key2) { + $key = $this->compileStringContent($this->coerceString($key2)); + + foreach ($map1[1] as $i1 => $key1) { + if ($key === $this->compileStringContent($this->coerceString($key1))) { + $map1[2][$i1] = $map2[2][$i2]; + continue 2; + } + } + + $map1[1][] = $map2[1][$i2]; + $map1[2][] = $map2[2][$i2]; + } + + return $map1; + } + + protected static $libKeywords = ['args']; + protected function libKeywords($args) + { + $value = $args[0]; + + if ($value[0] !== Type::T_LIST || !isset($value[3]) || !\is_array($value[3])) { + $compiledValue = $this->compileValue($value); + + throw SassScriptException::forArgument($compiledValue . ' is not an argument list.', 'args'); + } + + $keys = []; + $values = []; + + foreach ($this->getArgumentListKeywords($value) as $name => $arg) { + $keys[] = [Type::T_KEYWORD, $name]; + $values[] = $arg; + } + + return [Type::T_MAP, $keys, $values]; + } + + protected static $libIsBracketed = ['list']; + protected function libIsBracketed($args) + { + $list = $args[0]; + $this->coerceList($list, ' '); + + if (! empty($list['enclosing']) && $list['enclosing'] === 'bracket') { + return self::$true; + } + + return self::$false; + } + + /** + * @param array $list1 + * @param array|Number|null $sep + * + * @return string + * @throws CompilerException + */ + protected function listSeparatorForJoin($list1, $sep) + { + if (! isset($sep)) { + return $list1[1]; + } + + switch ($this->compileValue($sep)) { + case 'comma': + return ','; + + case 'space': + return ' '; + + default: + return $list1[1]; + } + } + + protected static $libJoin = ['list1', 'list2', 'separator:null', 'bracketed:auto']; + protected function libJoin($args) + { + list($list1, $list2, $sep, $bracketed) = $args; + + $list1 = $this->coerceList($list1, ' ', true); + $list2 = $this->coerceList($list2, ' ', true); + $sep = $this->listSeparatorForJoin($list1, $sep); + + if ($bracketed === static::$true) { + $bracketed = true; + } elseif ($bracketed === static::$false) { + $bracketed = false; + } elseif ($bracketed === [Type::T_KEYWORD, 'auto']) { + $bracketed = 'auto'; + } elseif ($bracketed === static::$null) { + $bracketed = false; + } else { + $bracketed = $this->compileValue($bracketed); + $bracketed = ! ! $bracketed; + + if ($bracketed === true) { + $bracketed = true; + } + } + + if ($bracketed === 'auto') { + $bracketed = false; + + if (! empty($list1['enclosing']) && $list1['enclosing'] === 'bracket') { + $bracketed = true; + } + } + + $res = [Type::T_LIST, $sep, array_merge($list1[2], $list2[2])]; + + if (isset($list1['enclosing'])) { + $res['enlcosing'] = $list1['enclosing']; + } + + if ($bracketed) { + $res['enclosing'] = 'bracket'; + } + + return $res; + } + + protected static $libAppend = ['list', 'val', 'separator:null']; + protected function libAppend($args) + { + list($list1, $value, $sep) = $args; + + $list1 = $this->coerceList($list1, ' ', true); + $sep = $this->listSeparatorForJoin($list1, $sep); + $res = [Type::T_LIST, $sep, array_merge($list1[2], [$value])]; + + if (isset($list1['enclosing'])) { + $res['enclosing'] = $list1['enclosing']; + } + + return $res; + } + + protected static $libZip = ['lists...']; + protected function libZip($args) + { + $argLists = []; + foreach ($args[0][2] as $arg) { + $argLists[] = $this->coerceList($arg); + } + + $lists = []; + $firstList = array_shift($argLists); + + $result = [Type::T_LIST, ',', $lists]; + if (! \is_null($firstList)) { + foreach ($firstList[2] as $key => $item) { + $list = [Type::T_LIST, '', [$item]]; + + foreach ($argLists as $arg) { + if (isset($arg[2][$key])) { + $list[2][] = $arg[2][$key]; + } else { + break 2; + } + } + + $lists[] = $list; + } + + $result[2] = $lists; + } else { + $result['enclosing'] = 'parent'; + } + + return $result; + } + + protected static $libTypeOf = ['value']; + protected function libTypeOf($args) + { + $value = $args[0]; + + return [Type::T_KEYWORD, $this->getTypeOf($value)]; + } + + /** + * @param array|Number $value + * + * @return string + */ + private function getTypeOf($value) + { + switch ($value[0]) { + case Type::T_KEYWORD: + if ($value === static::$true || $value === static::$false) { + return 'bool'; + } + + if ($this->coerceColor($value)) { + return 'color'; + } + + // fall-thru + case Type::T_FUNCTION: + return 'string'; + + case Type::T_FUNCTION_REFERENCE: + return 'function'; + + case Type::T_LIST: + if (isset($value[3]) && \is_array($value[3])) { + return 'arglist'; + } + + // fall-thru + default: + return $value[0]; + } + } + + protected static $libUnit = ['number']; + protected function libUnit($args) + { + $num = $this->assertNumber($args[0], 'number'); + + return [Type::T_STRING, '"', [$num->unitStr()]]; + } + + protected static $libUnitless = ['number']; + protected function libUnitless($args) + { + $value = $this->assertNumber($args[0], 'number'); + + return $this->toBool($value->unitless()); + } + + protected static $libComparable = [ + ['number1', 'number2'], + ['number-1', 'number-2'] + ]; + protected function libComparable($args) + { + list($number1, $number2) = $args; + + if ( + ! $number1 instanceof Number || + ! $number2 instanceof Number + ) { + throw $this->error('Invalid argument(s) for "comparable"'); + } + + return $this->toBool($number1->isComparableTo($number2)); + } + + protected static $libStrIndex = ['string', 'substring']; + protected function libStrIndex($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $substring = $this->assertString($args[1], 'substring'); + $substringContent = $this->compileStringContent($substring); + + if (! \strlen($substringContent)) { + $result = 0; + } else { + $result = Util::mbStrpos($stringContent, $substringContent); + } + + return $result === false ? static::$null : new Number($result + 1, ''); + } + + protected static $libStrInsert = ['string', 'insert', 'index']; + protected function libStrInsert($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $insert = $this->assertString($args[1], 'insert'); + $insertContent = $this->compileStringContent($insert); + + $index = $this->assertInteger($args[2], 'index'); + if ($index > 0) { + $index = $index - 1; + } + if ($index < 0) { + $index = Util::mbStrlen($stringContent) + 1 + $index; + } + + $string[2] = [ + Util::mbSubstr($stringContent, 0, $index), + $insertContent, + Util::mbSubstr($stringContent, $index) + ]; + + return $string; + } + + protected static $libStrLength = ['string']; + protected function libStrLength($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + return new Number(Util::mbStrlen($stringContent), ''); + } + + protected static $libStrSlice = ['string', 'start-at', 'end-at:-1']; + protected function libStrSlice($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $start = $this->assertNumber($args[1], 'start-at'); + $start->assertNoUnits('start-at'); + $startInt = $this->assertInteger($start, 'start-at'); + $end = $this->assertNumber($args[2], 'end-at'); + $end->assertNoUnits('end-at'); + $endInt = $this->assertInteger($end, 'end-at'); + + if ($endInt === 0) { + return [Type::T_STRING, $string[1], []]; + } + + if ($startInt > 0) { + $startInt--; + } + + if ($endInt < 0) { + $endInt = Util::mbStrlen($stringContent) + $endInt; + } else { + $endInt--; + } + + if ($endInt < $startInt) { + return [Type::T_STRING, $string[1], []]; + } + + $length = $endInt - $startInt + 1; // The end of the slice is inclusive + + $string[2] = [Util::mbSubstr($stringContent, $startInt, $length)]; + + return $string; + } + + protected static $libToLowerCase = ['string']; + protected function libToLowerCase($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $string[2] = [$this->stringTransformAsciiOnly($stringContent, 'strtolower')]; + + return $string; + } + + protected static $libToUpperCase = ['string']; + protected function libToUpperCase($args) + { + $string = $this->assertString($args[0], 'string'); + $stringContent = $this->compileStringContent($string); + + $string[2] = [$this->stringTransformAsciiOnly($stringContent, 'strtoupper')]; + + return $string; + } + + /** + * Apply a filter on a string content, only on ascii chars + * let extended chars untouched + * + * @param string $stringContent + * @param callable $filter + * @return string + */ + protected function stringTransformAsciiOnly($stringContent, $filter) + { + $mblength = Util::mbStrlen($stringContent); + if ($mblength === strlen($stringContent)) { + return $filter($stringContent); + } + $filteredString = ""; + for ($i = 0; $i < $mblength; $i++) { + $char = Util::mbSubstr($stringContent, $i, 1); + if (strlen($char) > 1) { + $filteredString .= $char; + } else { + $filteredString .= $filter($char); + } + } + + return $filteredString; + } + + protected static $libFeatureExists = ['feature']; + protected function libFeatureExists($args) + { + $string = $this->assertString($args[0], 'feature'); + $name = $this->compileStringContent($string); + + return $this->toBool( + \array_key_exists($name, $this->registeredFeatures) ? $this->registeredFeatures[$name] : false + ); + } + + protected static $libFunctionExists = ['name']; + protected function libFunctionExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + // user defined functions + if ($this->has(static::$namespaces['function'] . $name)) { + return self::$true; + } + + $name = $this->normalizeName($name); + + if (isset($this->userFunctions[$name])) { + return self::$true; + } + + // built-in functions + $f = $this->getBuiltinFunction($name); + + return $this->toBool(\is_callable($f)); + } + + protected static $libGlobalVariableExists = ['name']; + protected function libGlobalVariableExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has($name, $this->rootEnv)); + } + + protected static $libMixinExists = ['name']; + protected function libMixinExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has(static::$namespaces['mixin'] . $name)); + } + + protected static $libVariableExists = ['name']; + protected function libVariableExists($args) + { + $string = $this->assertString($args[0], 'name'); + $name = $this->compileStringContent($string); + + return $this->toBool($this->has($name)); + } + + protected static $libCounter = ['args...']; + /** + * Workaround IE7's content counter bug. + * + * @param array $args + * + * @return array + */ + protected function libCounter($args) + { + $list = array_map([$this, 'compileValue'], $args[0][2]); + + return [Type::T_STRING, '', ['counter(' . implode(',', $list) . ')']]; + } + + protected static $libRandom = ['limit:null']; + protected function libRandom($args) + { + if (isset($args[0]) && $args[0] !== static::$null) { + $n = $this->assertInteger($args[0], 'limit'); + + if ($n < 1) { + throw new SassScriptException("\$limit: Must be greater than 0, was $n."); + } + + return new Number(mt_rand(1, $n), ''); + } + + $max = mt_getrandmax(); + return new Number(mt_rand(0, $max - 1) / $max, ''); + } + + protected static $libUniqueId = []; + protected function libUniqueId() + { + static $id; + + if (! isset($id)) { + $id = PHP_INT_SIZE === 4 + ? mt_rand(0, pow(36, 5)) . str_pad(mt_rand(0, pow(36, 5)) % 10000000, 7, '0', STR_PAD_LEFT) + : mt_rand(0, pow(36, 8)); + } + + $id += mt_rand(0, 10) + 1; + + return [Type::T_STRING, '', ['u' . str_pad(base_convert($id, 10, 36), 8, '0', STR_PAD_LEFT)]]; + } + + /** + * @param array|Number $value + * @param bool $force_enclosing_display + * + * @return array + */ + protected function inspectFormatValue($value, $force_enclosing_display = false) + { + if ($value === static::$null) { + $value = [Type::T_KEYWORD, 'null']; + } + + $stringValue = [$value]; + + if ($value instanceof Number) { + return [Type::T_STRING, '', $stringValue]; + } + + if ($value[0] === Type::T_LIST) { + if (end($value[2]) === static::$null) { + array_pop($value[2]); + $value[2][] = [Type::T_STRING, '', ['']]; + $force_enclosing_display = true; + } + + if ( + ! empty($value['enclosing']) && + ($force_enclosing_display || + ($value['enclosing'] === 'bracket') || + ! \count($value[2])) + ) { + $value['enclosing'] = 'forced_' . $value['enclosing']; + $force_enclosing_display = true; + } + + foreach ($value[2] as $k => $listelement) { + $value[2][$k] = $this->inspectFormatValue($listelement, $force_enclosing_display); + } + + $stringValue = [$value]; + } + + return [Type::T_STRING, '', $stringValue]; + } + + protected static $libInspect = ['value']; + protected function libInspect($args) + { + $value = $args[0]; + + return $this->inspectFormatValue($value); + } + + /** + * Preprocess selector args + * + * @param array $arg + * @param string|null $varname + * @param bool $allowParent + * + * @return array + */ + protected function getSelectorArg($arg, $varname = null, $allowParent = false) + { + static $parser = null; + + if (\is_null($parser)) { + $parser = $this->parserFactory(__METHOD__); + } + + if (! $this->checkSelectorArgType($arg)) { + $var_value = $this->compileValue($arg); + throw SassScriptException::forArgument("$var_value is not a valid selector: it must be a string, a list of strings, or a list of lists of strings", $varname); + } + + + if ($arg[0] === Type::T_STRING) { + $arg[1] = ''; + } + $arg = $this->compileValue($arg); + + $parsedSelector = []; + + if ($parser->parseSelector($arg, $parsedSelector, true)) { + $selector = $this->evalSelectors($parsedSelector); + $gluedSelector = $this->glueFunctionSelectors($selector); + + if (! $allowParent) { + foreach ($gluedSelector as $selector) { + foreach ($selector as $s) { + if (in_array(static::$selfSelector, $s)) { + throw SassScriptException::forArgument("Parent selectors aren't allowed here.", $varname); + } + } + } + } + + return $gluedSelector; + } + + throw SassScriptException::forArgument("expected more input, invalid selector.", $varname); + } + + /** + * Check variable type for getSelectorArg() function + * @param array $arg + * @param int $maxDepth + * @return bool + */ + protected function checkSelectorArgType($arg, $maxDepth = 2) + { + if ($arg[0] === Type::T_LIST && $maxDepth > 0) { + foreach ($arg[2] as $elt) { + if (! $this->checkSelectorArgType($elt, $maxDepth - 1)) { + return false; + } + } + return true; + } + if (!in_array($arg[0], [Type::T_STRING, Type::T_KEYWORD])) { + return false; + } + return true; + } + + /** + * Postprocess selector to output in right format + * + * @param array $selectors + * + * @return array + */ + protected function formatOutputSelector($selectors) + { + $selectors = $this->collapseSelectorsAsList($selectors); + + return $selectors; + } + + protected static $libIsSuperselector = ['super', 'sub']; + protected function libIsSuperselector($args) + { + list($super, $sub) = $args; + + $super = $this->getSelectorArg($super, 'super'); + $sub = $this->getSelectorArg($sub, 'sub'); + + return $this->toBool($this->isSuperSelector($super, $sub)); + } + + /** + * Test a $super selector again $sub + * + * @param array $super + * @param array $sub + * + * @return boolean + */ + protected function isSuperSelector($super, $sub) + { + // one and only one selector for each arg + if (! $super) { + throw $this->error('Invalid super selector for isSuperSelector()'); + } + + if (! $sub) { + throw $this->error('Invalid sub selector for isSuperSelector()'); + } + + if (count($sub) > 1) { + foreach ($sub as $s) { + if (! $this->isSuperSelector($super, [$s])) { + return false; + } + } + return true; + } + + if (count($super) > 1) { + foreach ($super as $s) { + if ($this->isSuperSelector([$s], $sub)) { + return true; + } + } + return false; + } + + $super = reset($super); + $sub = reset($sub); + + $i = 0; + $nextMustMatch = false; + + foreach ($super as $node) { + $compound = ''; + + array_walk_recursive( + $node, + function ($value, $key) use (&$compound) { + $compound .= $value; + } + ); + + if ($this->isImmediateRelationshipCombinator($compound)) { + if ($node !== $sub[$i]) { + return false; + } + + $nextMustMatch = true; + $i++; + } else { + while ($i < \count($sub) && ! $this->isSuperPart($node, $sub[$i])) { + if ($nextMustMatch) { + return false; + } + + $i++; + } + + if ($i >= \count($sub)) { + return false; + } + + $nextMustMatch = false; + $i++; + } + } + + return true; + } + + /** + * Test a part of super selector again a part of sub selector + * + * @param array $superParts + * @param array $subParts + * + * @return boolean + */ + protected function isSuperPart($superParts, $subParts) + { + $i = 0; + + foreach ($superParts as $superPart) { + while ($i < \count($subParts) && $subParts[$i] !== $superPart) { + $i++; + } + + if ($i >= \count($subParts)) { + return false; + } + + $i++; + } + + return true; + } + + protected static $libSelectorAppend = ['selector...']; + protected function libSelectorAppend($args) + { + // get the selector... list + $args = reset($args); + $args = $args[2]; + + if (\count($args) < 1) { + throw $this->error('selector-append() needs at least 1 argument'); + } + + $selectors = []; + foreach ($args as $arg) { + $selectors[] = $this->getSelectorArg($arg, 'selector'); + } + + return $this->formatOutputSelector($this->selectorAppend($selectors)); + } + + /** + * Append parts of the last selector in the list to the previous, recursively + * + * @param array $selectors + * + * @return array + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException + */ + protected function selectorAppend($selectors) + { + $lastSelectors = array_pop($selectors); + + if (! $lastSelectors) { + throw $this->error('Invalid selector list in selector-append()'); + } + + while (\count($selectors)) { + $previousSelectors = array_pop($selectors); + + if (! $previousSelectors) { + throw $this->error('Invalid selector list in selector-append()'); + } + + // do the trick, happening $lastSelector to $previousSelector + $appended = []; + + foreach ($lastSelectors as $lastSelector) { + $previous = $previousSelectors; + + foreach ($lastSelector as $lastSelectorParts) { + foreach ($lastSelectorParts as $lastSelectorPart) { + foreach ($previous as $i => $previousSelector) { + foreach ($previousSelector as $j => $previousSelectorParts) { + $previous[$i][$j][] = $lastSelectorPart; + } + } + } + } + + foreach ($previous as $ps) { + $appended[] = $ps; + } + } + + $lastSelectors = $appended; + } + + return $lastSelectors; + } + + protected static $libSelectorExtend = [ + ['selector', 'extendee', 'extender'], + ['selectors', 'extendee', 'extender'] + ]; + protected function libSelectorExtend($args) + { + list($selectors, $extendee, $extender) = $args; + + $selectors = $this->getSelectorArg($selectors, 'selector'); + $extendee = $this->getSelectorArg($extendee, 'extendee'); + $extender = $this->getSelectorArg($extender, 'extender'); + + if (! $selectors || ! $extendee || ! $extender) { + throw $this->error('selector-extend() invalid arguments'); + } + + $extended = $this->extendOrReplaceSelectors($selectors, $extendee, $extender); + + return $this->formatOutputSelector($extended); + } + + protected static $libSelectorReplace = [ + ['selector', 'original', 'replacement'], + ['selectors', 'original', 'replacement'] + ]; + protected function libSelectorReplace($args) + { + list($selectors, $original, $replacement) = $args; + + $selectors = $this->getSelectorArg($selectors, 'selector'); + $original = $this->getSelectorArg($original, 'original'); + $replacement = $this->getSelectorArg($replacement, 'replacement'); + + if (! $selectors || ! $original || ! $replacement) { + throw $this->error('selector-replace() invalid arguments'); + } + + $replaced = $this->extendOrReplaceSelectors($selectors, $original, $replacement, true); + + return $this->formatOutputSelector($replaced); + } + + /** + * Extend/replace in selectors + * used by selector-extend and selector-replace that use the same logic + * + * @param array $selectors + * @param array $extendee + * @param array $extender + * @param boolean $replace + * + * @return array + */ + protected function extendOrReplaceSelectors($selectors, $extendee, $extender, $replace = false) + { + $saveExtends = $this->extends; + $saveExtendsMap = $this->extendsMap; + + $this->extends = []; + $this->extendsMap = []; + + foreach ($extendee as $es) { + if (\count($es) !== 1) { + throw $this->error('Can\'t extend complex selector.'); + } + + // only use the first one + $this->pushExtends(reset($es), $extender, null); + } + + $extended = []; + + foreach ($selectors as $selector) { + if (! $replace) { + $extended[] = $selector; + } + + $n = \count($extended); + + $this->matchExtends($selector, $extended); + + // if didnt match, keep the original selector if we are in a replace operation + if ($replace && \count($extended) === $n) { + $extended[] = $selector; + } + } + + $this->extends = $saveExtends; + $this->extendsMap = $saveExtendsMap; + + return $extended; + } + + protected static $libSelectorNest = ['selector...']; + protected function libSelectorNest($args) + { + // get the selector... list + $args = reset($args); + $args = $args[2]; + + if (\count($args) < 1) { + throw $this->error('selector-nest() needs at least 1 argument'); + } + + $selectorsMap = []; + foreach ($args as $arg) { + $selectorsMap[] = $this->getSelectorArg($arg, 'selector', true); + } + + $envs = []; + + foreach ($selectorsMap as $selectors) { + $env = new Environment(); + $env->selectors = $selectors; + + $envs[] = $env; + } + + $envs = array_reverse($envs); + $env = $this->extractEnv($envs); + $outputSelectors = $this->multiplySelectors($env); + + return $this->formatOutputSelector($outputSelectors); + } + + protected static $libSelectorParse = [ + ['selector'], + ['selectors'] + ]; + protected function libSelectorParse($args) + { + $selectors = reset($args); + $selectors = $this->getSelectorArg($selectors, 'selector'); + + return $this->formatOutputSelector($selectors); + } + + protected static $libSelectorUnify = ['selectors1', 'selectors2']; + protected function libSelectorUnify($args) + { + list($selectors1, $selectors2) = $args; + + $selectors1 = $this->getSelectorArg($selectors1, 'selectors1'); + $selectors2 = $this->getSelectorArg($selectors2, 'selectors2'); + + if (! $selectors1 || ! $selectors2) { + throw $this->error('selector-unify() invalid arguments'); + } + + // only consider the first compound of each + $compound1 = reset($selectors1); + $compound2 = reset($selectors2); + + // unify them and that's it + $unified = $this->unifyCompoundSelectors($compound1, $compound2); + + return $this->formatOutputSelector($unified); + } + + /** + * The selector-unify magic as its best + * (at least works as expected on test cases) + * + * @param array $compound1 + * @param array $compound2 + * + * @return array + */ + protected function unifyCompoundSelectors($compound1, $compound2) + { + if (! \count($compound1)) { + return $compound2; + } + + if (! \count($compound2)) { + return $compound1; + } + + // check that last part are compatible + $lastPart1 = array_pop($compound1); + $lastPart2 = array_pop($compound2); + $last = $this->mergeParts($lastPart1, $lastPart2); + + if (! $last) { + return [[]]; + } + + $unifiedCompound = [$last]; + $unifiedSelectors = [$unifiedCompound]; + + // do the rest + while (\count($compound1) || \count($compound2)) { + $part1 = end($compound1); + $part2 = end($compound2); + + if ($part1 && ($match2 = $this->matchPartInCompound($part1, $compound2))) { + list($compound2, $part2, $after2) = $match2; + + if ($after2) { + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, $after2); + } + + $c = $this->mergeParts($part1, $part2); + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, [$c]); + + $part1 = $part2 = null; + + array_pop($compound1); + } + + if ($part2 && ($match1 = $this->matchPartInCompound($part2, $compound1))) { + list($compound1, $part1, $after1) = $match1; + + if ($after1) { + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, $after1); + } + + $c = $this->mergeParts($part2, $part1); + $unifiedSelectors = $this->prependSelectors($unifiedSelectors, [$c]); + + $part1 = $part2 = null; + + array_pop($compound2); + } + + $new = []; + + if ($part1 && $part2) { + array_pop($compound1); + array_pop($compound2); + + $s = $this->prependSelectors($unifiedSelectors, [$part2]); + $new = array_merge($new, $this->prependSelectors($s, [$part1])); + $s = $this->prependSelectors($unifiedSelectors, [$part1]); + $new = array_merge($new, $this->prependSelectors($s, [$part2])); + } elseif ($part1) { + array_pop($compound1); + + $new = array_merge($new, $this->prependSelectors($unifiedSelectors, [$part1])); + } elseif ($part2) { + array_pop($compound2); + + $new = array_merge($new, $this->prependSelectors($unifiedSelectors, [$part2])); + } + + if ($new) { + $unifiedSelectors = $new; + } + } + + return $unifiedSelectors; + } + + /** + * Prepend each selector from $selectors with $parts + * + * @param array $selectors + * @param array $parts + * + * @return array + */ + protected function prependSelectors($selectors, $parts) + { + $new = []; + + foreach ($selectors as $compoundSelector) { + array_unshift($compoundSelector, $parts); + + $new[] = $compoundSelector; + } + + return $new; + } + + /** + * Try to find a matching part in a compound: + * - with same html tag name + * - with some class or id or something in common + * + * @param array $part + * @param array $compound + * + * @return array|false + */ + protected function matchPartInCompound($part, $compound) + { + $partTag = $this->findTagName($part); + $before = $compound; + $after = []; + + // try to find a match by tag name first + while (\count($before)) { + $p = array_pop($before); + + if ($partTag && $partTag !== '*' && $partTag == $this->findTagName($p)) { + return [$before, $p, $after]; + } + + $after[] = $p; + } + + // try again matching a non empty intersection and a compatible tagname + $before = $compound; + $after = []; + + while (\count($before)) { + $p = array_pop($before); + + if ($this->checkCompatibleTags($partTag, $this->findTagName($p))) { + if (\count(array_intersect($part, $p))) { + return [$before, $p, $after]; + } + } + + $after[] = $p; + } + + return false; + } + + /** + * Merge two part list taking care that + * - the html tag is coming first - if any + * - the :something are coming last + * + * @param array $parts1 + * @param array $parts2 + * + * @return array + */ + protected function mergeParts($parts1, $parts2) + { + $tag1 = $this->findTagName($parts1); + $tag2 = $this->findTagName($parts2); + $tag = $this->checkCompatibleTags($tag1, $tag2); + + // not compatible tags + if ($tag === false) { + return []; + } + + if ($tag) { + if ($tag1) { + $parts1 = array_diff($parts1, [$tag1]); + } + + if ($tag2) { + $parts2 = array_diff($parts2, [$tag2]); + } + } + + $mergedParts = array_merge($parts1, $parts2); + $mergedOrderedParts = []; + + foreach ($mergedParts as $part) { + if (strpos($part, ':') === 0) { + $mergedOrderedParts[] = $part; + } + } + + $mergedParts = array_diff($mergedParts, $mergedOrderedParts); + $mergedParts = array_merge($mergedParts, $mergedOrderedParts); + + if ($tag) { + array_unshift($mergedParts, $tag); + } + + return $mergedParts; + } + + /** + * Check the compatibility between two tag names: + * if both are defined they should be identical or one has to be '*' + * + * @param string $tag1 + * @param string $tag2 + * + * @return array|false + */ + protected function checkCompatibleTags($tag1, $tag2) + { + $tags = [$tag1, $tag2]; + $tags = array_unique($tags); + $tags = array_filter($tags); + + if (\count($tags) > 1) { + $tags = array_diff($tags, ['*']); + } + + // not compatible nodes + if (\count($tags) > 1) { + return false; + } + + return $tags; + } + + /** + * Find the html tag name in a selector parts list + * + * @param string[] $parts + * + * @return string + */ + protected function findTagName($parts) + { + foreach ($parts as $part) { + if (! preg_match('/^[\[.:#%_-]/', $part)) { + return $part; + } + } + + return ''; + } + + protected static $libSimpleSelectors = ['selector']; + protected function libSimpleSelectors($args) + { + $selector = reset($args); + $selector = $this->getSelectorArg($selector, 'selector'); + + // remove selectors list layer, keeping the first one + $selector = reset($selector); + + // remove parts list layer, keeping the first part + $part = reset($selector); + + $listParts = []; + + foreach ($part as $p) { + $listParts[] = [Type::T_STRING, '', [$p]]; + } + + return [Type::T_LIST, ',', $listParts]; + } + + protected static $libScssphpGlob = ['pattern']; + protected function libScssphpGlob($args) + { + @trigger_error(sprintf('The "scssphp-glob" function is deprecated an will be removed in ScssPhp 2.0. Register your own alternative through "%s::registerFunction', __CLASS__), E_USER_DEPRECATED); + + $this->logger->warn('The "scssphp-glob" function is deprecated an will be removed in ScssPhp 2.0.', true); + + $string = $this->assertString($args[0], 'pattern'); + $pattern = $this->compileStringContent($string); + $matches = glob($pattern); + $listParts = []; + + foreach ($matches as $match) { + if (! is_file($match)) { + continue; + } + + $listParts[] = [Type::T_STRING, '"', [$match]]; + } + + return [Type::T_LIST, ',', $listParts]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/CachedResult.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/CachedResult.php new file mode 100644 index 0000000..a662919 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/CachedResult.php @@ -0,0 +1,77 @@ + + */ + private $parsedFiles; + + /** + * @var array + * @phpstan-var list + */ + private $resolvedImports; + + /** + * @param CompilationResult $result + * @param array $parsedFiles + * @param array $resolvedImports + * + * @phpstan-param list $resolvedImports + */ + public function __construct(CompilationResult $result, array $parsedFiles, array $resolvedImports) + { + $this->result = $result; + $this->parsedFiles = $parsedFiles; + $this->resolvedImports = $resolvedImports; + } + + /** + * @return CompilationResult + */ + public function getResult() + { + return $this->result; + } + + /** + * @return array + */ + public function getParsedFiles() + { + return $this->parsedFiles; + } + + /** + * @return array + * + * @phpstan-return list + */ + public function getResolvedImports() + { + return $this->resolvedImports; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/Environment.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/Environment.php new file mode 100644 index 0000000..306b15a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Compiler/Environment.php @@ -0,0 +1,48 @@ + + * + * @internal + */ +class Environment +{ + /** + * @var \ScssPhp\ScssPhp\Block|null + */ + public $block; + + /** + * @var \ScssPhp\ScssPhp\Compiler\Environment|null + */ + public $parent; + + /** + * @var array + */ + public $store; + + /** + * @var array + */ + public $storeUnreduced; + + /** + * @var integer + */ + public $depth; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/CompilerException.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/CompilerException.php new file mode 100644 index 0000000..0b00cf5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/CompilerException.php @@ -0,0 +1,24 @@ + + * + * @internal + */ +class CompilerException extends \Exception implements SassException +{ +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/ParserException.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/ParserException.php new file mode 100644 index 0000000..00d77ec --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/ParserException.php @@ -0,0 +1,50 @@ + + * + * @internal + */ +class ParserException extends \Exception implements SassException +{ + /** + * @var array + */ + private $sourcePosition; + + /** + * Get source position + * + * @api + */ + public function getSourcePosition() + { + return $this->sourcePosition; + } + + /** + * Set source position + * + * @api + * + * @param array $sourcePosition + */ + public function setSourcePosition($sourcePosition) + { + $this->sourcePosition = $sourcePosition; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/RangeException.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/RangeException.php new file mode 100644 index 0000000..4be4dee --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/RangeException.php @@ -0,0 +1,24 @@ + + * + * @internal + */ +class RangeException extends \Exception implements SassException +{ +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/SassException.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/SassException.php new file mode 100644 index 0000000..9f62b3c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Exception/SassException.php @@ -0,0 +1,7 @@ + + * + * @deprecated The Scssphp server should define its own exception instead. + */ +class ServerException extends \Exception implements SassException +{ +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter.php new file mode 100644 index 0000000..cc42ae8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter.php @@ -0,0 +1,364 @@ + + * + * @internal + */ +abstract class Formatter +{ + /** + * @var integer + */ + public $indentLevel; + + /** + * @var string + */ + public $indentChar; + + /** + * @var string + */ + public $break; + + /** + * @var string + */ + public $open; + + /** + * @var string + */ + public $close; + + /** + * @var string + */ + public $tagSeparator; + + /** + * @var string + */ + public $assignSeparator; + + /** + * @var boolean + */ + public $keepSemicolons; + + /** + * @var \ScssPhp\ScssPhp\Formatter\OutputBlock + */ + protected $currentBlock; + + /** + * @var integer + */ + protected $currentLine; + + /** + * @var integer + */ + protected $currentColumn; + + /** + * @var \ScssPhp\ScssPhp\SourceMap\SourceMapGenerator|null + */ + protected $sourceMapGenerator; + + /** + * @var string + */ + protected $strippedSemicolon; + + /** + * Initialize formatter + * + * @api + */ + abstract public function __construct(); + + /** + * Return indentation (whitespace) + * + * @return string + */ + protected function indentStr() + { + return ''; + } + + /** + * Return property assignment + * + * @api + * + * @param string $name + * @param mixed $value + * + * @return string + */ + public function property($name, $value) + { + return rtrim($name) . $this->assignSeparator . $value . ';'; + } + + /** + * Return custom property assignment + * differs in that you have to keep spaces in the value as is + * + * @api + * + * @param string $name + * @param mixed $value + * + * @return string + */ + public function customProperty($name, $value) + { + return rtrim($name) . trim($this->assignSeparator) . $value . ';'; + } + + /** + * Output lines inside a block + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + $glue = $this->break . $inner; + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write($inner + . implode($this->tagSeparator, $block->selectors) + . $this->open . $this->break); + } + + /** + * Output block children + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function blockChildren(OutputBlock $block) + { + foreach ($block->children as $child) { + $this->block($child); + } + } + + /** + * Output non-empty block + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return void + */ + protected function block(OutputBlock $block) + { + if (empty($block->lines) && empty($block->children)) { + return; + } + + $this->currentBlock = $block; + + $pre = $this->indentStr(); + + if (! empty($block->selectors)) { + $this->blockSelectors($block); + + $this->indentLevel++; + } + + if (! empty($block->lines)) { + $this->blockLines($block); + } + + if (! empty($block->children)) { + $this->blockChildren($block); + } + + if (! empty($block->selectors)) { + $this->indentLevel--; + + if (! $this->keepSemicolons) { + $this->strippedSemicolon = ''; + } + + if (empty($block->children)) { + $this->write($this->break); + } + + $this->write($pre . $this->close . $this->break); + } + } + + /** + * Test and clean safely empty children + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return boolean + */ + protected function testEmptyChildren($block) + { + $isEmpty = empty($block->lines); + + if ($block->children) { + foreach ($block->children as $k => &$child) { + if (! $this->testEmptyChildren($child)) { + $isEmpty = false; + continue; + } + + if ($child->type === Type::T_MEDIA || $child->type === Type::T_DIRECTIVE) { + $child->children = []; + $child->selectors = null; + } + } + } + + return $isEmpty; + } + + /** + * Entry point to formatting a block + * + * @api + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block An abstract syntax tree + * @param \ScssPhp\ScssPhp\SourceMap\SourceMapGenerator|null $sourceMapGenerator Optional source map generator + * + * @return string + */ + public function format(OutputBlock $block, SourceMapGenerator $sourceMapGenerator = null) + { + $this->sourceMapGenerator = null; + + if ($sourceMapGenerator) { + $this->currentLine = 1; + $this->currentColumn = 0; + $this->sourceMapGenerator = $sourceMapGenerator; + } + + $this->testEmptyChildren($block); + + ob_start(); + + $this->block($block); + + $out = ob_get_clean(); + + return $out; + } + + /** + * Output content + * + * @param string $str + * + * @return void + */ + protected function write($str) + { + if (! empty($this->strippedSemicolon)) { + echo $this->strippedSemicolon; + + $this->strippedSemicolon = ''; + } + + /* + * Maybe Strip semi-colon appended by property(); it's a separator, not a terminator + * will be striped for real before a closing, otherwise displayed unchanged starting the next write + */ + if ( + ! $this->keepSemicolons && + $str && + (strpos($str, ';') !== false) && + (substr($str, -1) === ';') + ) { + $str = substr($str, 0, -1); + + $this->strippedSemicolon = ';'; + } + + if ($this->sourceMapGenerator) { + $lines = explode("\n", $str); + $lastLine = array_pop($lines); + + foreach ($lines as $line) { + // If the written line starts is empty, adding a mapping would add it for + // a non-existent column as we are at the end of the line + if ($line !== '') { + $this->sourceMapGenerator->addMapping( + $this->currentLine, + $this->currentColumn, + $this->currentBlock->sourceLine, + //columns from parser are off by one + $this->currentBlock->sourceColumn > 0 ? $this->currentBlock->sourceColumn - 1 : 0, + $this->currentBlock->sourceName + ); + } + + $this->currentLine++; + $this->currentColumn = 0; + } + + if ($lastLine !== '') { + $this->sourceMapGenerator->addMapping( + $this->currentLine, + $this->currentColumn, + $this->currentBlock->sourceLine, + //columns from parser are off by one + $this->currentBlock->sourceColumn > 0 ? $this->currentBlock->sourceColumn - 1 : 0, + $this->currentBlock->sourceName + ); + } + + $this->currentColumn += \strlen($lastLine); + } + + echo $str; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compact.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compact.php new file mode 100644 index 0000000..22f2268 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compact.php @@ -0,0 +1,52 @@ + + * + * @deprecated since 1.4.0. Use the Compressed formatter instead. + * + * @internal + */ +class Compact extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Compact formatter is deprecated since 1.4.0. Use the Compressed formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ''; + $this->break = ''; + $this->open = ' {'; + $this->close = "}\n\n"; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + public function indentStr() + { + return ' '; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compressed.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compressed.php new file mode 100644 index 0000000..de13c18 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Compressed.php @@ -0,0 +1,85 @@ + + * + * @internal + */ +class Compressed extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = ''; + $this->open = '{'; + $this->close = '}'; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = false; + } + + /** + * {@inheritdoc} + */ + public function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*' && substr($line, 2, 1) !== '!') { + unset($block->lines[$index]); + } elseif (substr($line, 0, 3) === '/*!') { + $block->lines[$index] = '/*' . substr($line, 3); + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write( + $inner + . implode( + $this->tagSeparator, + str_replace([' > ', ' + ', ' ~ '], ['>', '+', '~'], $block->selectors) + ) + . $this->open . $this->break + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Crunched.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Crunched.php new file mode 100644 index 0000000..2bc1e92 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Crunched.php @@ -0,0 +1,87 @@ + + * + * @deprecated since 1.4.0. Use the Compressed formatter instead. + * + * @internal + */ +class Crunched extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Crunched formatter is deprecated since 1.4.0. Use the Compressed formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = ''; + $this->open = '{'; + $this->close = '}'; + $this->tagSeparator = ','; + $this->assignSeparator = ':'; + $this->keepSemicolons = false; + } + + /** + * {@inheritdoc} + */ + public function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + unset($block->lines[$index]); + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (! empty($block->children)) { + $this->write($this->break); + } + } + + /** + * Output block selectors + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + */ + protected function blockSelectors(OutputBlock $block) + { + assert(! empty($block->selectors)); + + $inner = $this->indentStr(); + + $this->write( + $inner + . implode( + $this->tagSeparator, + str_replace([' > ', ' + ', ' ~ '], ['>', '+', '~'], $block->selectors) + ) + . $this->open . $this->break + ); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Debug.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Debug.php new file mode 100644 index 0000000..b3f4422 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Debug.php @@ -0,0 +1,127 @@ + + * + * @deprecated since 1.4.0. + * + * @internal + */ +class Debug extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Debug formatter is deprecated since 1.4.0.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ''; + $this->break = "\n"; + $this->open = ' {'; + $this->close = ' }'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + return str_repeat(' ', $this->indentLevel); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->lines)) { + $this->write("{$indent}block->lines: []\n"); + + return; + } + + foreach ($block->lines as $index => $line) { + $this->write("{$indent}block->lines[{$index}]: $line\n"); + } + } + + /** + * {@inheritdoc} + */ + protected function blockSelectors(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->selectors)) { + $this->write("{$indent}block->selectors: []\n"); + + return; + } + + foreach ($block->selectors as $index => $selector) { + $this->write("{$indent}block->selectors[{$index}]: $selector\n"); + } + } + + /** + * {@inheritdoc} + */ + protected function blockChildren(OutputBlock $block) + { + $indent = $this->indentStr(); + + if (empty($block->children)) { + $this->write("{$indent}block->children: []\n"); + + return; + } + + $this->indentLevel++; + + foreach ($block->children as $i => $child) { + $this->block($child); + } + + $this->indentLevel--; + } + + /** + * {@inheritdoc} + */ + protected function block(OutputBlock $block) + { + $indent = $this->indentStr(); + + $this->write("{$indent}block->type: {$block->type}\n" . + "{$indent}block->depth: {$block->depth}\n"); + + $this->currentBlock = $block; + + $this->blockSelectors($block); + $this->blockLines($block); + $this->blockChildren($block); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Expanded.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Expanded.php new file mode 100644 index 0000000..a280416 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Expanded.php @@ -0,0 +1,70 @@ + + * + * @internal + */ +class Expanded extends Formatter +{ + /** + * {@inheritdoc} + */ + public function __construct() + { + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = "\n"; + $this->open = ' {'; + $this->close = '}'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + return str_repeat($this->indentChar, $this->indentLevel); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + $block->lines[$index] = preg_replace('/\r\n?|\n|\f/', $this->break, $line); + } + } + + $this->write($inner . implode($glue, $block->lines)); + + if (empty($block->selectors) || ! empty($block->children)) { + $this->write($this->break); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Nested.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Nested.php new file mode 100644 index 0000000..9e72956 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/Nested.php @@ -0,0 +1,236 @@ + + * + * @deprecated since 1.4.0. Use the Expanded formatter instead. + * + * @internal + */ +class Nested extends Formatter +{ + /** + * @var integer + */ + private $depth; + + /** + * {@inheritdoc} + */ + public function __construct() + { + @trigger_error('The Nested formatter is deprecated since 1.4.0. Use the Expanded formatter instead.', E_USER_DEPRECATED); + + $this->indentLevel = 0; + $this->indentChar = ' '; + $this->break = "\n"; + $this->open = ' {'; + $this->close = ' }'; + $this->tagSeparator = ', '; + $this->assignSeparator = ': '; + $this->keepSemicolons = true; + } + + /** + * {@inheritdoc} + */ + protected function indentStr() + { + $n = $this->depth - 1; + + return str_repeat($this->indentChar, max($this->indentLevel + $n, 0)); + } + + /** + * {@inheritdoc} + */ + protected function blockLines(OutputBlock $block) + { + $inner = $this->indentStr(); + $glue = $this->break . $inner; + + foreach ($block->lines as $index => $line) { + if (substr($line, 0, 2) === '/*') { + $block->lines[$index] = preg_replace('/\r\n?|\n|\f/', $this->break, $line); + } + } + + $this->write($inner . implode($glue, $block->lines)); + } + + /** + * {@inheritdoc} + */ + protected function block(OutputBlock $block) + { + static $depths; + static $downLevel; + static $closeBlock; + static $previousEmpty; + static $previousHasSelector; + + if ($block->type === 'root') { + $depths = [ 0 ]; + $downLevel = ''; + $closeBlock = ''; + $this->depth = 0; + $previousEmpty = false; + $previousHasSelector = false; + } + + $isMediaOrDirective = \in_array($block->type, [Type::T_DIRECTIVE, Type::T_MEDIA]); + $isSupport = ($block->type === Type::T_DIRECTIVE + && $block->selectors && strpos(implode('', $block->selectors), '@supports') !== false); + + while ($block->depth < end($depths) || ($block->depth == 1 && end($depths) == 1)) { + array_pop($depths); + $this->depth--; + + if ( + ! $this->depth && ($block->depth <= 1 || (! $this->indentLevel && $block->type === Type::T_COMMENT)) && + (($block->selectors && ! $isMediaOrDirective) || $previousHasSelector) + ) { + $downLevel = $this->break; + } + + if (empty($block->lines) && empty($block->children)) { + $previousEmpty = true; + } + } + + if (empty($block->lines) && empty($block->children)) { + return; + } + + $this->currentBlock = $block; + + if (! empty($block->lines) || (! empty($block->children) && ($this->depth < 1 || $isSupport))) { + if ($block->depth > end($depths)) { + if (! $previousEmpty || $this->depth < 1) { + $this->depth++; + + $depths[] = $block->depth; + } else { + // keep the current depth unchanged but take the block depth as a new reference for following blocks + array_pop($depths); + + $depths[] = $block->depth; + } + } + } + + $previousEmpty = ($block->type === Type::T_COMMENT); + $previousHasSelector = false; + + if (! empty($block->selectors)) { + if ($closeBlock) { + $this->write($closeBlock); + $closeBlock = ''; + } + + if ($downLevel) { + $this->write($downLevel); + $downLevel = ''; + } + + $this->blockSelectors($block); + + $this->indentLevel++; + } + + if (! empty($block->lines)) { + if ($closeBlock) { + $this->write($closeBlock); + $closeBlock = ''; + } + + if ($downLevel) { + $this->write($downLevel); + $downLevel = ''; + } + + $this->blockLines($block); + + $closeBlock = $this->break; + } + + if (! empty($block->children)) { + if ($this->depth > 0 && ($isMediaOrDirective || ! $this->hasFlatChild($block))) { + array_pop($depths); + + $this->depth--; + $this->blockChildren($block); + $this->depth++; + + $depths[] = $block->depth; + } else { + $this->blockChildren($block); + } + } + + // reclear to not be spoiled by children if T_DIRECTIVE + if ($block->type === Type::T_DIRECTIVE) { + $previousHasSelector = false; + } + + if (! empty($block->selectors)) { + $this->indentLevel--; + + if (! $this->keepSemicolons) { + $this->strippedSemicolon = ''; + } + + $this->write($this->close); + + $closeBlock = $this->break; + + if ($this->depth > 1 && ! empty($block->children)) { + array_pop($depths); + $this->depth--; + } + + if (! $isMediaOrDirective) { + $previousHasSelector = true; + } + } + + if ($block->type === 'root') { + $this->write($this->break); + } + } + + /** + * Block has flat child + * + * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $block + * + * @return boolean + */ + private function hasFlatChild($block) + { + foreach ($block->children as $child) { + if (empty($child->selectors)) { + return true; + } + } + + return false; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/OutputBlock.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/OutputBlock.php new file mode 100644 index 0000000..88deb2d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Formatter/OutputBlock.php @@ -0,0 +1,68 @@ + + * + * @internal + */ +class OutputBlock +{ + /** + * @var string + */ + public $type; + + /** + * @var integer + */ + public $depth; + + /** + * @var array|null + */ + public $selectors; + + /** + * @var string[] + */ + public $lines; + + /** + * @var OutputBlock[] + */ + public $children; + + /** + * @var OutputBlock|null + */ + public $parent; + + /** + * @var string|null + */ + public $sourceName; + + /** + * @var integer|null + */ + public $sourceLine; + + /** + * @var integer|null + */ + public $sourceColumn; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/LoggerInterface.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/LoggerInterface.php new file mode 100644 index 0000000..7c0a2f7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Logger/LoggerInterface.php @@ -0,0 +1,48 @@ +stream = $stream; + $this->closeOnDestruct = $closeOnDestruct; + } + + /** + * @internal + */ + public function __destruct() + { + if ($this->closeOnDestruct) { + fclose($this->stream); + } + } + + /** + * @inheritDoc + */ + public function warn($message, $deprecation = false) + { + $prefix = ($deprecation ? 'DEPRECATION ' : '') . 'WARNING: '; + + fwrite($this->stream, $prefix . $message . "\n\n"); + } + + /** + * @inheritDoc + */ + public function debug($message) + { + fwrite($this->stream, $message . "\n"); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node.php new file mode 100644 index 0000000..5301937 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node.php @@ -0,0 +1,43 @@ + + * + * @internal + */ +abstract class Node +{ + /** + * @var string + */ + public $type; + + /** + * @var integer + */ + public $sourceIndex; + + /** + * @var int|null + */ + public $sourceLine; + + /** + * @var int|null + */ + public $sourceColumn; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node/Number.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node/Number.php new file mode 100644 index 0000000..b326906 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Node/Number.php @@ -0,0 +1,804 @@ + + * + * @template-implements \ArrayAccess + */ +class Number extends Node implements \ArrayAccess +{ + const PRECISION = 10; + + /** + * @var integer + * @deprecated use {Number::PRECISION} instead to read the precision. Configuring it is not supported anymore. + */ + public static $precision = self::PRECISION; + + /** + * @see http://www.w3.org/TR/2012/WD-css3-values-20120308/ + * + * @var array + * @phpstan-var array> + */ + protected static $unitTable = [ + 'in' => [ + 'in' => 1, + 'pc' => 6, + 'pt' => 72, + 'px' => 96, + 'cm' => 2.54, + 'mm' => 25.4, + 'q' => 101.6, + ], + 'turn' => [ + 'deg' => 360, + 'grad' => 400, + 'rad' => 6.28318530717958647692528676, // 2 * M_PI + 'turn' => 1, + ], + 's' => [ + 's' => 1, + 'ms' => 1000, + ], + 'Hz' => [ + 'Hz' => 1, + 'kHz' => 0.001, + ], + 'dpi' => [ + 'dpi' => 1, + 'dpcm' => 1 / 2.54, + 'dppx' => 1 / 96, + ], + ]; + + /** + * @var integer|float + */ + private $dimension; + + /** + * @var string[] + * @phpstan-var list + */ + private $numeratorUnits; + + /** + * @var string[] + * @phpstan-var list + */ + private $denominatorUnits; + + /** + * Initialize number + * + * @param integer|float $dimension + * @param string[]|string $numeratorUnits + * @param string[] $denominatorUnits + * + * @phpstan-param list|string $numeratorUnits + * @phpstan-param list $denominatorUnits + */ + public function __construct($dimension, $numeratorUnits, array $denominatorUnits = []) + { + if (is_string($numeratorUnits)) { + $numeratorUnits = $numeratorUnits ? [$numeratorUnits] : []; + } elseif (isset($numeratorUnits['numerator_units'], $numeratorUnits['denominator_units'])) { + // TODO get rid of this once `$number[2]` is not used anymore + $denominatorUnits = $numeratorUnits['denominator_units']; + $numeratorUnits = $numeratorUnits['numerator_units']; + } + + $this->dimension = $dimension; + $this->numeratorUnits = $numeratorUnits; + $this->denominatorUnits = $denominatorUnits; + } + + /** + * @return float|int + */ + public function getDimension() + { + return $this->dimension; + } + + /** + * @return string[] + */ + public function getNumeratorUnits() + { + return $this->numeratorUnits; + } + + /** + * @return string[] + */ + public function getDenominatorUnits() + { + return $this->denominatorUnits; + } + + /** + * {@inheritdoc} + */ + #[\ReturnTypeWillChange] + public function offsetExists($offset) + { + if ($offset === -3) { + return ! \is_null($this->sourceColumn); + } + + if ($offset === -2) { + return ! \is_null($this->sourceLine); + } + + if ( + $offset === -1 || + $offset === 0 || + $offset === 1 || + $offset === 2 + ) { + return true; + } + + return false; + } + + /** + * {@inheritdoc} + */ + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + switch ($offset) { + case -3: + return $this->sourceColumn; + + case -2: + return $this->sourceLine; + + case -1: + return $this->sourceIndex; + + case 0: + return Type::T_NUMBER; + + case 1: + return $this->dimension; + + case 2: + return array('numerator_units' => $this->numeratorUnits, 'denominator_units' => $this->denominatorUnits); + } + } + + /** + * {@inheritdoc} + */ + #[\ReturnTypeWillChange] + public function offsetSet($offset, $value) + { + throw new \BadMethodCallException('Number is immutable'); + } + + /** + * {@inheritdoc} + */ + #[\ReturnTypeWillChange] + public function offsetUnset($offset) + { + throw new \BadMethodCallException('Number is immutable'); + } + + /** + * Returns true if the number is unitless + * + * @return boolean + */ + public function unitless() + { + return \count($this->numeratorUnits) === 0 && \count($this->denominatorUnits) === 0; + } + + /** + * Checks whether the number has exactly this unit + * + * @param string $unit + * + * @return bool + */ + public function hasUnit($unit) + { + return \count($this->numeratorUnits) === 1 && \count($this->denominatorUnits) === 0 && $this->numeratorUnits[0] === $unit; + } + + /** + * Returns unit(s) as the product of numerator units divided by the product of denominator units + * + * @return string + */ + public function unitStr() + { + if ($this->unitless()) { + return ''; + } + + return self::getUnitString($this->numeratorUnits, $this->denominatorUnits); + } + + /** + * @param float|int $min + * @param float|int $max + * @param string|null $name + * + * @return float|int + * @throws SassScriptException + */ + public function valueInRange($min, $max, $name = null) + { + try { + return Util::checkRange('', new Range($min, $max), $this); + } catch (RangeException $e) { + throw SassScriptException::forArgument(sprintf('Expected %s to be within %s%s and %s%3$s', $this, $min, $this->unitStr(), $max), $name); + } + } + + /** + * @param string|null $varName + * + * @return void + */ + public function assertNoUnits($varName = null) + { + if ($this->unitless()) { + return; + } + + throw SassScriptException::forArgument(sprintf('Expected %s to have no units.', $this), $varName); + } + + /** + * @param string $unit + * @param string|null $varName + * + * @return void + */ + public function assertUnit($unit, $varName = null) + { + if ($this->hasUnit($unit)) { + return; + } + + throw SassScriptException::forArgument(sprintf('Expected %s to have unit "%s".', $this, $unit), $varName); + } + + /** + * @param Number $other + * + * @return void + */ + public function assertSameUnitOrUnitless(Number $other) + { + if ($other->unitless()) { + return; + } + + if ($this->numeratorUnits === $other->numeratorUnits && $this->denominatorUnits === $other->denominatorUnits) { + return; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($other->numeratorUnits, $other->denominatorUnits) + )); + } + + /** + * Returns a copy of this number, converted to the units represented by $newNumeratorUnits and $newDenominatorUnits. + * + * This does not throw an error if this number is unitless and + * $newNumeratorUnits/$newDenominatorUnits are not empty, or vice versa. Instead, + * it treats all unitless numbers as convertible to and from all units without + * changing the value. + * + * @param string[] $newNumeratorUnits + * @param string[] $newDenominatorUnits + * + * @return Number + * + * @phpstan-param list $newNumeratorUnits + * @phpstan-param list $newDenominatorUnits + * + * @throws SassScriptException if this number's units are not compatible with $newNumeratorUnits and $newDenominatorUnits + */ + public function coerce(array $newNumeratorUnits, array $newDenominatorUnits) + { + return new Number($this->valueInUnits($newNumeratorUnits, $newDenominatorUnits), $newNumeratorUnits, $newDenominatorUnits); + } + + /** + * @param Number $other + * + * @return bool + */ + public function isComparableTo(Number $other) + { + if ($this->unitless() || $other->unitless()) { + return true; + } + + try { + $this->greaterThan($other); + return true; + } catch (SassScriptException $e) { + return false; + } + } + + /** + * @param Number $other + * + * @return bool + */ + public function lessThan(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 < $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function lessThanOrEqual(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 <= $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function greaterThan(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 > $num2; + }); + } + + /** + * @param Number $other + * + * @return bool + */ + public function greaterThanOrEqual(Number $other) + { + return $this->coerceUnits($other, function ($num1, $num2) { + return $num1 >= $num2; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function plus(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + return $num1 + $num2; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function minus(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + return $num1 - $num2; + }); + } + + /** + * @return Number + */ + public function unaryMinus() + { + return new Number(-$this->dimension, $this->numeratorUnits, $this->denominatorUnits); + } + + /** + * @param Number $other + * + * @return Number + */ + public function modulo(Number $other) + { + return $this->coerceNumber($other, function ($num1, $num2) { + if ($num2 == 0) { + return NAN; + } + + $result = fmod($num1, $num2); + + if ($result == 0) { + return 0; + } + + if ($num2 < 0 xor $num1 < 0) { + $result += $num2; + } + + return $result; + }); + } + + /** + * @param Number $other + * + * @return Number + */ + public function times(Number $other) + { + return $this->multiplyUnits($this->dimension * $other->dimension, $this->numeratorUnits, $this->denominatorUnits, $other->numeratorUnits, $other->denominatorUnits); + } + + /** + * @param Number $other + * + * @return Number + */ + public function dividedBy(Number $other) + { + if ($other->dimension == 0) { + if ($this->dimension == 0) { + $value = NAN; + } elseif ($this->dimension > 0) { + $value = INF; + } else { + $value = -INF; + } + } else { + $value = $this->dimension / $other->dimension; + } + + return $this->multiplyUnits($value, $this->numeratorUnits, $this->denominatorUnits, $other->denominatorUnits, $other->numeratorUnits); + } + + /** + * @param Number $other + * + * @return bool + */ + public function equals(Number $other) + { + // Unitless numbers are convertable to unit numbers, but not equal, so we special-case unitless here. + if ($this->unitless() !== $other->unitless()) { + return false; + } + + // In Sass, neither NaN nor Infinity are equal to themselves, while PHP defines INF==INF + if (is_nan($this->dimension) || is_nan($other->dimension) || !is_finite($this->dimension) || !is_finite($other->dimension)) { + return false; + } + + if ($this->unitless()) { + return round($this->dimension, self::PRECISION) == round($other->dimension, self::PRECISION); + } + + try { + return $this->coerceUnits($other, function ($num1, $num2) { + return round($num1,self::PRECISION) == round($num2, self::PRECISION); + }); + } catch (SassScriptException $e) { + return false; + } + } + + /** + * Output number + * + * @param \ScssPhp\ScssPhp\Compiler $compiler + * + * @return string + */ + public function output(Compiler $compiler = null) + { + $dimension = round($this->dimension, self::PRECISION); + + if (is_nan($dimension)) { + return 'NaN'; + } + + if ($dimension === INF) { + return 'Infinity'; + } + + if ($dimension === -INF) { + return '-Infinity'; + } + + if ($compiler) { + $unit = $this->unitStr(); + } elseif (isset($this->numeratorUnits[0])) { + $unit = $this->numeratorUnits[0]; + } else { + $unit = ''; + } + + $dimension = number_format($dimension, self::PRECISION, '.', ''); + + return rtrim(rtrim($dimension, '0'), '.') . $unit; + } + + /** + * {@inheritdoc} + */ + public function __toString() + { + return $this->output(); + } + + /** + * @param Number $other + * @param callable $operation + * + * @return Number + * + * @phpstan-param callable(int|float, int|float): (int|float) $operation + */ + private function coerceNumber(Number $other, $operation) + { + $result = $this->coerceUnits($other, $operation); + + if (!$this->unitless()) { + return new Number($result, $this->numeratorUnits, $this->denominatorUnits); + } + + return new Number($result, $other->numeratorUnits, $other->denominatorUnits); + } + + /** + * @param Number $other + * @param callable $operation + * + * @return mixed + * + * @phpstan-template T + * @phpstan-param callable(int|float, int|float): T $operation + * @phpstan-return T + */ + private function coerceUnits(Number $other, $operation) + { + if (!$this->unitless()) { + $num1 = $this->dimension; + $num2 = $other->valueInUnits($this->numeratorUnits, $this->denominatorUnits); + } else { + $num1 = $this->valueInUnits($other->numeratorUnits, $other->denominatorUnits); + $num2 = $other->dimension; + } + + return \call_user_func($operation, $num1, $num2); + } + + /** + * @param string[] $numeratorUnits + * @param string[] $denominatorUnits + * + * @return int|float + * + * @phpstan-param list $numeratorUnits + * @phpstan-param list $denominatorUnits + * + * @throws SassScriptException if this number's units are not compatible with $numeratorUnits and $denominatorUnits + */ + private function valueInUnits(array $numeratorUnits, array $denominatorUnits) + { + if ( + $this->unitless() + || (\count($numeratorUnits) === 0 && \count($denominatorUnits) === 0) + || ($this->numeratorUnits === $numeratorUnits && $this->denominatorUnits === $denominatorUnits) + ) { + return $this->dimension; + } + + $value = $this->dimension; + $oldNumerators = $this->numeratorUnits; + + foreach ($numeratorUnits as $newNumerator) { + foreach ($oldNumerators as $key => $oldNumerator) { + $conversionFactor = self::getConversionFactor($newNumerator, $oldNumerator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value *= $conversionFactor; + unset($oldNumerators[$key]); + continue 2; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + $oldDenominators = $this->denominatorUnits; + + foreach ($denominatorUnits as $newDenominator) { + foreach ($oldDenominators as $key => $oldDenominator) { + $conversionFactor = self::getConversionFactor($newDenominator, $oldDenominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($oldDenominators[$key]); + continue 2; + } + + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + if (\count($oldNumerators) || \count($oldDenominators)) { + throw new SassScriptException(sprintf( + 'Incompatible units %s and %s.', + self::getUnitString($this->numeratorUnits, $this->denominatorUnits), + self::getUnitString($numeratorUnits, $denominatorUnits) + )); + } + + return $value; + } + + /** + * @param int|float $value + * @param string[] $numerators1 + * @param string[] $denominators1 + * @param string[] $numerators2 + * @param string[] $denominators2 + * + * @return Number + * + * @phpstan-param list $numerators1 + * @phpstan-param list $denominators1 + * @phpstan-param list $numerators2 + * @phpstan-param list $denominators2 + */ + private function multiplyUnits($value, array $numerators1, array $denominators1, array $numerators2, array $denominators2) + { + $newNumerators = array(); + + foreach ($numerators1 as $numerator) { + foreach ($denominators2 as $key => $denominator) { + $conversionFactor = self::getConversionFactor($numerator, $denominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($denominators2[$key]); + continue 2; + } + + $newNumerators[] = $numerator; + } + + foreach ($numerators2 as $numerator) { + foreach ($denominators1 as $key => $denominator) { + $conversionFactor = self::getConversionFactor($numerator, $denominator); + + if (\is_null($conversionFactor)) { + continue; + } + + $value /= $conversionFactor; + unset($denominators1[$key]); + continue 2; + } + + $newNumerators[] = $numerator; + } + + $newDenominators = array_values(array_merge($denominators1, $denominators2)); + + return new Number($value, $newNumerators, $newDenominators); + } + + /** + * Returns the number of [unit1]s per [unit2]. + * + * Equivalently, `1unit1 * conversionFactor(unit1, unit2) = 1unit2`. + * + * @param string $unit1 + * @param string $unit2 + * + * @return float|int|null + */ + private static function getConversionFactor($unit1, $unit2) + { + if ($unit1 === $unit2) { + return 1; + } + + foreach (static::$unitTable as $unitVariants) { + if (isset($unitVariants[$unit1]) && isset($unitVariants[$unit2])) { + return $unitVariants[$unit1] / $unitVariants[$unit2]; + } + } + + return null; + } + + /** + * Returns unit(s) as the product of numerator units divided by the product of denominator units + * + * @param string[] $numerators + * @param string[] $denominators + * + * @phpstan-param list $numerators + * @phpstan-param list $denominators + * + * @return string + */ + private static function getUnitString(array $numerators, array $denominators) + { + if (!\count($numerators)) { + if (\count($denominators) === 0) { + return 'no units'; + } + + if (\count($denominators) === 1) { + return $denominators[0] . '^-1'; + } + + return '(' . implode('*', $denominators) . ')^-1'; + } + + return implode('*', $numerators) . (\count($denominators) ? '/' . implode('*', $denominators) : ''); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/OutputStyle.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/OutputStyle.php new file mode 100644 index 0000000..c284639 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/OutputStyle.php @@ -0,0 +1,9 @@ + + * + * @internal + */ +class Parser +{ + const SOURCE_INDEX = -1; + const SOURCE_LINE = -2; + const SOURCE_COLUMN = -3; + + /** + * @var array + */ + protected static $precedence = [ + '=' => 0, + 'or' => 1, + 'and' => 2, + '==' => 3, + '!=' => 3, + '<=' => 4, + '>=' => 4, + '<' => 4, + '>' => 4, + '+' => 5, + '-' => 5, + '*' => 6, + '/' => 6, + '%' => 6, + ]; + + /** + * @var string + */ + protected static $commentPattern; + /** + * @var string + */ + protected static $operatorPattern; + /** + * @var string + */ + protected static $whitePattern; + + /** + * @var Cache|null + */ + protected $cache; + + private $sourceName; + private $sourceIndex; + /** + * @var array + */ + private $sourcePositions; + /** + * @var array|null + */ + private $charset; + /** + * The current offset in the buffer + * + * @var int + */ + private $count; + /** + * @var Block|null + */ + private $env; + /** + * @var bool + */ + private $inParens; + /** + * @var bool + */ + private $eatWhiteDefault; + /** + * @var bool + */ + private $discardComments; + private $allowVars; + /** + * @var string + */ + private $buffer; + private $utf8; + /** + * @var string|null + */ + private $encoding; + private $patternModifiers; + private $commentsSeen; + + private $cssOnly; + + /** + * @var LoggerInterface + */ + private $logger; + + /** + * Constructor + * + * @api + * + * @param string|null $sourceName + * @param integer $sourceIndex + * @param string|null $encoding + * @param Cache|null $cache + * @param bool $cssOnly + * @param LoggerInterface|null $logger + */ + public function __construct($sourceName, $sourceIndex = 0, $encoding = 'utf-8', Cache $cache = null, $cssOnly = false, LoggerInterface $logger = null) + { + $this->sourceName = $sourceName ?: '(stdin)'; + $this->sourceIndex = $sourceIndex; + $this->charset = null; + $this->utf8 = ! $encoding || strtolower($encoding) === 'utf-8'; + $this->patternModifiers = $this->utf8 ? 'Aisu' : 'Ais'; + $this->commentsSeen = []; + $this->commentsSeen = []; + $this->allowVars = true; + $this->cssOnly = $cssOnly; + $this->logger = $logger ?: new QuietLogger(); + + if (empty(static::$operatorPattern)) { + static::$operatorPattern = '([*\/%+-]|[!=]\=|\>\=?|\<\=?|and|or)'; + + $commentSingle = '\/\/'; + $commentMultiLeft = '\/\*'; + $commentMultiRight = '\*\/'; + + static::$commentPattern = $commentMultiLeft . '.*?' . $commentMultiRight; + static::$whitePattern = $this->utf8 + ? '/' . $commentSingle . '[^\n]*\s*|(' . static::$commentPattern . ')\s*|\s+/AisuS' + : '/' . $commentSingle . '[^\n]*\s*|(' . static::$commentPattern . ')\s*|\s+/AisS'; + } + + $this->cache = $cache; + } + + /** + * Get source file name + * + * @api + * + * @return string + */ + public function getSourceName() + { + return $this->sourceName; + } + + /** + * Throw parser error + * + * @api + * + * @param string $msg + * + * @phpstan-return never-return + * + * @throws ParserException + * + * @deprecated use "parseError" and throw the exception in the caller instead. + */ + public function throwParseError($msg = 'parse error') + { + @trigger_error( + 'The method "throwParseError" is deprecated. Use "parseError" and throw the exception in the caller instead', + E_USER_DEPRECATED + ); + + throw $this->parseError($msg); + } + + /** + * Creates a parser error + * + * @api + * + * @param string $msg + * + * @return ParserException + */ + public function parseError($msg = 'parse error') + { + list($line, $column) = $this->getSourcePosition($this->count); + + $loc = empty($this->sourceName) + ? "line: $line, column: $column" + : "$this->sourceName on line $line, at column $column"; + + if ($this->peek('(.*?)(\n|$)', $m, $this->count)) { + $this->restoreEncoding(); + + $e = new ParserException("$msg: failed at `$m[1]` $loc"); + $e->setSourcePosition([$this->sourceName, $line, $column]); + + return $e; + } + + $this->restoreEncoding(); + + $e = new ParserException("$msg: $loc"); + $e->setSourcePosition([$this->sourceName, $line, $column]); + + return $e; + } + + /** + * Parser buffer + * + * @api + * + * @param string $buffer + * + * @return Block + */ + public function parse($buffer) + { + if ($this->cache) { + $cacheKey = $this->sourceName . ':' . md5($buffer); + $parseOptions = [ + 'charset' => $this->charset, + 'utf8' => $this->utf8, + ]; + $v = $this->cache->getCache('parse', $cacheKey, $parseOptions); + + if (! \is_null($v)) { + return $v; + } + } + + // strip BOM (byte order marker) + if (substr($buffer, 0, 3) === "\xef\xbb\xbf") { + $buffer = substr($buffer, 3); + } + + $this->buffer = rtrim($buffer, "\x00..\x1f"); + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + + $this->saveEncoding(); + $this->extractLineNumbers($buffer); + + $this->pushBlock(null); // root block + $this->whitespace(); + $this->pushBlock(null); + $this->popBlock(); + + while ($this->parseChunk()) { + ; + } + + if ($this->count !== \strlen($this->buffer)) { + throw $this->parseError(); + } + + if (! empty($this->env->parent)) { + throw $this->parseError('unclosed block'); + } + + if ($this->charset) { + array_unshift($this->env->children, $this->charset); + } + + $this->restoreEncoding(); + + if ($this->cache) { + $this->cache->setCache('parse', $cacheKey, $this->env, $parseOptions); + } + + return $this->env; + } + + /** + * Parse a value or value list + * + * @api + * + * @param string $buffer + * @param string|array $out + * + * @return boolean + */ + public function parseValue($buffer, &$out) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + $list = $this->valueList($out); + + $this->restoreEncoding(); + + return $list; + } + + /** + * Parse a selector or selector list + * + * @api + * + * @param string $buffer + * @param string|array $out + * @param bool $shouldValidate + * + * @return boolean + */ + public function parseSelector($buffer, &$out, $shouldValidate = true) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + // discard space/comments at the start + $this->discardComments = true; + $this->whitespace(); + $this->discardComments = false; + + $selector = $this->selectors($out); + + $this->restoreEncoding(); + + if ($shouldValidate && $this->count !== strlen($buffer)) { + throw $this->parseError("`" . substr($buffer, $this->count) . "` is not a valid Selector in `$buffer`"); + } + + return $selector; + } + + /** + * Parse a media Query + * + * @api + * + * @param string $buffer + * @param string|array $out + * + * @return boolean + */ + public function parseMediaQueryList($buffer, &$out) + { + $this->count = 0; + $this->env = null; + $this->inParens = false; + $this->eatWhiteDefault = true; + $this->buffer = (string) $buffer; + + $this->saveEncoding(); + $this->extractLineNumbers($this->buffer); + + $isMediaQuery = $this->mediaQueryList($out); + + $this->restoreEncoding(); + + return $isMediaQuery; + } + + /** + * Parse a single chunk off the head of the buffer and append it to the + * current parse environment. + * + * Returns false when the buffer is empty, or when there is an error. + * + * This function is called repeatedly until the entire document is + * parsed. + * + * This parser is most similar to a recursive descent parser. Single + * functions represent discrete grammatical rules for the language, and + * they are able to capture the text that represents those rules. + * + * Consider the function Compiler::keyword(). (All parse functions are + * structured the same.) + * + * The function takes a single reference argument. When calling the + * function it will attempt to match a keyword on the head of the buffer. + * If it is successful, it will place the keyword in the referenced + * argument, advance the position in the buffer, and return true. If it + * fails then it won't advance the buffer and it will return false. + * + * All of these parse functions are powered by Compiler::match(), which behaves + * the same way, but takes a literal regular expression. Sometimes it is + * more convenient to use match instead of creating a new function. + * + * Because of the format of the functions, to parse an entire string of + * grammatical rules, you can chain them together using &&. + * + * But, if some of the rules in the chain succeed before one fails, then + * the buffer position will be left at an invalid state. In order to + * avoid this, Compiler::seek() is used to remember and set buffer positions. + * + * Before parsing a chain, use $s = $this->count to remember the current + * position into $s. Then if a chain fails, use $this->seek($s) to + * go back where we started. + * + * @return boolean + */ + protected function parseChunk() + { + $s = $this->count; + + // the directives + if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] === '@') { + if ( + $this->literal('@at-root', 8) && + ($this->selectors($selector) || true) && + ($this->map($with) || true) && + (($this->matchChar('(') && + $this->interpolation($with) && + $this->matchChar(')')) || true) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $atRoot = $this->pushSpecialBlock(Type::T_AT_ROOT, $s); + $atRoot->selector = $selector; + $atRoot->with = $with; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@media', 6) && + $this->mediaQueryList($mediaQueryList) && + $this->matchChar('{', false) + ) { + $media = $this->pushSpecialBlock(Type::T_MEDIA, $s); + $media->queryList = $mediaQueryList[2]; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@mixin', 6) && + $this->keyword($mixinName) && + ($this->argumentDef($args) || true) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $mixin = $this->pushSpecialBlock(Type::T_MIXIN, $s); + $mixin->name = $mixinName; + $mixin->args = $args; + + return true; + } + + $this->seek($s); + + if ( + ($this->literal('@include', 8) && + $this->keyword($mixinName) && + ($this->matchChar('(') && + ($this->argValues($argValues) || true) && + $this->matchChar(')') || true) && + ($this->end()) || + ($this->literal('using', 5) && + $this->argumentDef($argUsing) && + ($this->end() || $this->matchChar('{') && $hasBlock = true)) || + $this->matchChar('{') && $hasBlock = true) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $child = [ + Type::T_INCLUDE, + $mixinName, + isset($argValues) ? $argValues : null, + null, + isset($argUsing) ? $argUsing : null + ]; + + if (! empty($hasBlock)) { + $include = $this->pushSpecialBlock(Type::T_INCLUDE, $s); + $include->child = $child; + } else { + $this->append($child, $s); + } + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@scssphp-import-once', 20) && + $this->valueList($importPath) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + list($line, $column) = $this->getSourcePosition($s); + $file = $this->sourceName; + $this->logger->warn("The \"@scssphp-import-once\" directive is deprecated and will be removed in ScssPhp 2.0, in \"$file\", line $line, column $column.", true); + + $this->append([Type::T_SCSSPHP_IMPORT_ONCE, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@import', 7) && + $this->valueList($importPath) && + $importPath[0] !== Type::T_FUNCTION_CALL && + $this->end() + ) { + if ($this->cssOnly) { + $this->assertPlainCssValid([Type::T_IMPORT, $importPath], $s); + $this->append([Type::T_COMMENT, rtrim(substr($this->buffer, $s, $this->count - $s))]); + return true; + } + + $this->append([Type::T_IMPORT, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@import', 7) && + $this->url($importPath) && + $this->end() + ) { + if ($this->cssOnly) { + $this->assertPlainCssValid([Type::T_IMPORT, $importPath], $s); + $this->append([Type::T_COMMENT, rtrim(substr($this->buffer, $s, $this->count - $s))]); + return true; + } + + $this->append([Type::T_IMPORT, $importPath], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@extend', 7) && + $this->selectors($selectors) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + // check for '!flag' + $optional = $this->stripOptionalFlag($selectors); + $this->append([Type::T_EXTEND, $selectors, $optional], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@function', 9) && + $this->keyword($fnName) && + $this->argumentDef($args) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $func = $this->pushSpecialBlock(Type::T_FUNCTION, $s); + $func->name = $fnName; + $func->args = $args; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@return', 7) && + ($this->valueList($retVal) || true) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_RETURN, isset($retVal) ? $retVal : [Type::T_NULL]], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@each', 5) && + $this->genericList($varNames, 'variable', ',', false) && + $this->literal('in', 2) && + $this->valueList($list) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $each = $this->pushSpecialBlock(Type::T_EACH, $s); + + foreach ($varNames[2] as $varName) { + $each->vars[] = $varName[1]; + } + + $each->list = $list; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@while', 6) && + $this->expression($cond) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + while ( + $cond[0] === Type::T_LIST && + ! empty($cond['enclosing']) && + $cond['enclosing'] === 'parent' && + \count($cond[2]) == 1 + ) { + $cond = reset($cond[2]); + } + + $while = $this->pushSpecialBlock(Type::T_WHILE, $s); + $while->cond = $cond; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@for', 4) && + $this->variable($varName) && + $this->literal('from', 4) && + $this->expression($start) && + ($this->literal('through', 7) || + ($forUntil = true && $this->literal('to', 2))) && + $this->expression($end) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $for = $this->pushSpecialBlock(Type::T_FOR, $s); + $for->var = $varName[1]; + $for->start = $start; + $for->end = $end; + $for->until = isset($forUntil); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@if', 3) && + $this->functionCallArgumentsList($cond, false, '{', false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $if = $this->pushSpecialBlock(Type::T_IF, $s); + + while ( + $cond[0] === Type::T_LIST && + ! empty($cond['enclosing']) && + $cond['enclosing'] === 'parent' && + \count($cond[2]) == 1 + ) { + $cond = reset($cond[2]); + } + + $if->cond = $cond; + $if->cases = []; + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@debug', 6) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_DEBUG, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@warn', 5) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_WARN, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@error', 6) && + $this->functionCallArgumentsList($value, false) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_ERROR, $value], $s); + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@content', 8) && + ($this->end() || + $this->matchChar('(') && + $this->argValues($argContent) && + $this->matchChar(')') && + $this->end()) + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + $this->append([Type::T_MIXIN_CONTENT, isset($argContent) ? $argContent : null], $s); + + return true; + } + + $this->seek($s); + + $last = $this->last(); + + if (isset($last) && $last[0] === Type::T_IF) { + list(, $if) = $last; + + if ($this->literal('@else', 5)) { + if ($this->matchChar('{', false)) { + $else = $this->pushSpecialBlock(Type::T_ELSE, $s); + } elseif ( + $this->literal('if', 2) && + $this->functionCallArgumentsList($cond, false, '{', false) + ) { + $else = $this->pushSpecialBlock(Type::T_ELSEIF, $s); + $else->cond = $cond; + } + + if (isset($else)) { + $else->dontAppend = true; + $if->cases[] = $else; + + return true; + } + } + + $this->seek($s); + } + + // only retain the first @charset directive encountered + if ( + $this->literal('@charset', 8) && + $this->valueList($charset) && + $this->end() + ) { + if (! isset($this->charset)) { + $statement = [Type::T_CHARSET, $charset]; + + list($line, $column) = $this->getSourcePosition($s); + + $statement[static::SOURCE_LINE] = $line; + $statement[static::SOURCE_COLUMN] = $column; + $statement[static::SOURCE_INDEX] = $this->sourceIndex; + + $this->charset = $statement; + } + + return true; + } + + $this->seek($s); + + if ( + $this->literal('@supports', 9) && + ($t1 = $this->supportsQuery($supportQuery)) && + ($t2 = $this->matchChar('{', false)) + ) { + $directive = $this->pushSpecialBlock(Type::T_DIRECTIVE, $s); + $directive->name = 'supports'; + $directive->value = $supportQuery; + + return true; + } + + $this->seek($s); + + // doesn't match built in directive, do generic one + if ( + $this->matchChar('@', false) && + $this->mixedKeyword($dirName) && + $this->directiveValue($dirValue, '{') + ) { + if (count($dirName) === 1 && is_string(reset($dirName))) { + $dirName = reset($dirName); + } else { + $dirName = [Type::T_STRING, '', $dirName]; + } + if ($dirName === 'media') { + $directive = $this->pushSpecialBlock(Type::T_MEDIA, $s); + } else { + $directive = $this->pushSpecialBlock(Type::T_DIRECTIVE, $s); + $directive->name = $dirName; + } + + if (isset($dirValue)) { + ! $this->cssOnly || ($dirValue = $this->assertPlainCssValid($dirValue)); + $directive->value = $dirValue; + } + + return true; + } + + $this->seek($s); + + // maybe it's a generic blockless directive + if ( + $this->matchChar('@', false) && + $this->mixedKeyword($dirName) && + ! $this->isKnownGenericDirective($dirName) && + ($this->end(false) || ($this->directiveValue($dirValue, '') && $this->end(false))) + ) { + if (\count($dirName) === 1 && \is_string(\reset($dirName))) { + $dirName = \reset($dirName); + } else { + $dirName = [Type::T_STRING, '', $dirName]; + } + if ( + ! empty($this->env->parent) && + $this->env->type && + ! \in_array($this->env->type, [Type::T_DIRECTIVE, Type::T_MEDIA]) + ) { + $plain = \trim(\substr($this->buffer, $s, $this->count - $s)); + throw $this->parseError( + "Unknown directive `{$plain}` not allowed in `" . $this->env->type . "` block" + ); + } + // blockless directives with a blank line after keeps their blank lines after + // sass-spec compliance purpose + $s = $this->count; + $hasBlankLine = false; + if ($this->match('\s*?\n\s*\n', $out, false)) { + $hasBlankLine = true; + $this->seek($s); + } + $isNotRoot = ! empty($this->env->parent); + $this->append([Type::T_DIRECTIVE, [$dirName, $dirValue, $hasBlankLine, $isNotRoot]], $s); + $this->whitespace(); + + return true; + } + + $this->seek($s); + + return false; + } + + $inCssSelector = null; + if ($this->cssOnly) { + $inCssSelector = (! empty($this->env->parent) && + ! in_array($this->env->type, [Type::T_DIRECTIVE, Type::T_MEDIA])); + } + // custom properties : right part is static + if (($this->customProperty($name) ) && $this->matchChar(':', false)) { + $start = $this->count; + + // but can be complex and finish with ; or } + foreach ([';','}'] as $ending) { + if ( + $this->openString($ending, $stringValue, '(', ')', false) && + $this->end() + ) { + $end = $this->count; + $value = $stringValue; + + // check if we have only a partial value due to nested [] or { } to take in account + $nestingPairs = [['[', ']'], ['{', '}']]; + + foreach ($nestingPairs as $nestingPair) { + $p = strpos($this->buffer, $nestingPair[0], $start); + + if ($p && $p < $end) { + $this->seek($start); + + if ( + $this->openString($ending, $stringValue, $nestingPair[0], $nestingPair[1], false) && + $this->end() && + $this->count > $end + ) { + $end = $this->count; + $value = $stringValue; + } + } + } + + $this->seek($end); + $this->append([Type::T_CUSTOM_PROPERTY, $name, $value], $s); + + return true; + } + } + + // TODO: output an error here if nothing found according to sass spec + } + + $this->seek($s); + + // property shortcut + // captures most properties before having to parse a selector + if ( + $this->keyword($name, false) && + $this->literal(': ', 2) && + $this->valueList($value) && + $this->end() + ) { + $name = [Type::T_STRING, '', [$name]]; + $this->append([Type::T_ASSIGN, $name, $value], $s); + + return true; + } + + $this->seek($s); + + // variable assigns + if ( + $this->variable($name) && + $this->matchChar(':') && + $this->valueList($value) && + $this->end() + ) { + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + + // check for '!flag' + $assignmentFlags = $this->stripAssignmentFlags($value); + $this->append([Type::T_ASSIGN, $name, $value, $assignmentFlags], $s); + + return true; + } + + $this->seek($s); + + // opening css block + if ( + $this->selectors($selectors) && + $this->matchChar('{', false) + ) { + ! $this->cssOnly || ! $inCssSelector || $this->assertPlainCssValid(false); + + $this->pushBlock($selectors, $s); + + if ($this->eatWhiteDefault) { + $this->whitespace(); + $this->append(null); // collect comments at the beginning if needed + } + + return true; + } + + $this->seek($s); + + // property assign, or nested assign + if ( + $this->propertyName($name) && + $this->matchChar(':') + ) { + $foundSomething = false; + + if ($this->valueList($value)) { + if (empty($this->env->parent)) { + throw $this->parseError('expected "{"'); + } + + $this->append([Type::T_ASSIGN, $name, $value], $s); + $foundSomething = true; + } + + if ($this->matchChar('{', false)) { + ! $this->cssOnly || $this->assertPlainCssValid(false); + + $propBlock = $this->pushSpecialBlock(Type::T_NESTED_PROPERTY, $s); + $propBlock->prefix = $name; + $propBlock->hasValue = $foundSomething; + + $foundSomething = true; + } elseif ($foundSomething) { + $foundSomething = $this->end(); + } + + if ($foundSomething) { + return true; + } + } + + $this->seek($s); + + // closing a block + if ($this->matchChar('}', false)) { + $block = $this->popBlock(); + + if (! isset($block->type) || $block->type !== Type::T_IF) { + if ($this->env->parent) { + $this->append(null); // collect comments before next statement if needed + } + } + + if (isset($block->type) && $block->type === Type::T_INCLUDE) { + $include = $block->child; + unset($block->child); + $include[3] = $block; + $this->append($include, $s); + } elseif (empty($block->dontAppend)) { + $type = isset($block->type) ? $block->type : Type::T_BLOCK; + $this->append([$type, $block], $s); + } + + // collect comments just after the block closing if needed + if ($this->eatWhiteDefault) { + $this->whitespace(); + + if ($this->env->comments) { + $this->append(null); + } + } + + return true; + } + + // extra stuff + if ($this->matchChar(';')) { + return true; + } + + return false; + } + + /** + * Push block onto parse tree + * + * @param array|null $selectors + * @param integer $pos + * + * @return Block + */ + protected function pushBlock($selectors, $pos = 0) + { + list($line, $column) = $this->getSourcePosition($pos); + + $b = new Block(); + $b->sourceName = $this->sourceName; + $b->sourceLine = $line; + $b->sourceColumn = $column; + $b->sourceIndex = $this->sourceIndex; + $b->selectors = $selectors; + $b->comments = []; + $b->parent = $this->env; + + if (! $this->env) { + $b->children = []; + } elseif (empty($this->env->children)) { + $this->env->children = $this->env->comments; + $b->children = []; + $this->env->comments = []; + } else { + $b->children = $this->env->comments; + $this->env->comments = []; + } + + $this->env = $b; + + // collect comments at the beginning of a block if needed + if ($this->eatWhiteDefault) { + $this->whitespace(); + + if ($this->env->comments) { + $this->append(null); + } + } + + return $b; + } + + /** + * Push special (named) block onto parse tree + * + * @param string $type + * @param integer $pos + * + * @return Block + */ + protected function pushSpecialBlock($type, $pos) + { + $block = $this->pushBlock(null, $pos); + $block->type = $type; + + return $block; + } + + /** + * Pop scope and return last block + * + * @return Block + * + * @throws \Exception + */ + protected function popBlock() + { + + // collect comments ending just before of a block closing + if ($this->env->comments) { + $this->append(null); + } + + // pop the block + $block = $this->env; + + if (empty($block->parent)) { + throw $this->parseError('unexpected }'); + } + + if ($block->type == Type::T_AT_ROOT) { + // keeps the parent in case of self selector & + $block->selfParent = $block->parent; + } + + $this->env = $block->parent; + + unset($block->parent); + + return $block; + } + + /** + * Peek input stream + * + * @param string $regex + * @param array $out + * @param integer $from + * + * @return integer + */ + protected function peek($regex, &$out, $from = null) + { + if (! isset($from)) { + $from = $this->count; + } + + $r = '/' . $regex . '/' . $this->patternModifiers; + $result = preg_match($r, $this->buffer, $out, 0, $from); + + return $result; + } + + /** + * Seek to position in input stream (or return current position in input stream) + * + * @param integer $where + */ + protected function seek($where) + { + $this->count = $where; + } + + /** + * Assert a parsed part is plain CSS Valid + * + * @param array|false $parsed + * @param int $startPos + * @throws ParserException + */ + protected function assertPlainCssValid($parsed, $startPos = null) + { + $type = ''; + if ($parsed) { + $type = $parsed[0]; + $parsed = $this->isPlainCssValidElement($parsed); + } + if (! $parsed) { + if (! \is_null($startPos)) { + $plain = rtrim(substr($this->buffer, $startPos, $this->count - $startPos)); + $message = "Error : `{$plain}` isn't allowed in plain CSS"; + } else { + $message = 'Error: SCSS syntax not allowed in CSS file'; + } + if ($type) { + $message .= " ($type)"; + } + throw $this->parseError($message); + } + + return $parsed; + } + + /** + * Check a parsed element is plain CSS Valid + * @param array $parsed + * @return bool|array + */ + protected function isPlainCssValidElement($parsed, $allowExpression = false) + { + // keep string as is + if (is_string($parsed)) { + return $parsed; + } + + if ( + \in_array($parsed[0], [Type::T_FUNCTION, Type::T_FUNCTION_CALL]) && + !\in_array($parsed[1], [ + 'alpha', + 'attr', + 'calc', + 'cubic-bezier', + 'env', + 'grayscale', + 'hsl', + 'hsla', + 'hwb', + 'invert', + 'linear-gradient', + 'min', + 'max', + 'radial-gradient', + 'repeating-linear-gradient', + 'repeating-radial-gradient', + 'rgb', + 'rgba', + 'rotate', + 'saturate', + 'var', + ]) && + Compiler::isNativeFunction($parsed[1]) + ) { + return false; + } + + switch ($parsed[0]) { + case Type::T_BLOCK: + case Type::T_KEYWORD: + case Type::T_NULL: + case Type::T_NUMBER: + case Type::T_MEDIA: + return $parsed; + + case Type::T_COMMENT: + if (isset($parsed[2])) { + return false; + } + return $parsed; + + case Type::T_DIRECTIVE: + if (\is_array($parsed[1])) { + $parsed[1][1] = $this->isPlainCssValidElement($parsed[1][1]); + if (! $parsed[1][1]) { + return false; + } + } + + return $parsed; + + case Type::T_IMPORT: + if ($parsed[1][0] === Type::T_LIST) { + return false; + } + $parsed[1] = $this->isPlainCssValidElement($parsed[1]); + if ($parsed[1] === false) { + return false; + } + return $parsed; + + case Type::T_STRING: + foreach ($parsed[2] as $k => $substr) { + if (\is_array($substr)) { + $parsed[2][$k] = $this->isPlainCssValidElement($substr); + if (! $parsed[2][$k]) { + return false; + } + } + } + return $parsed; + + case Type::T_LIST: + if (!empty($parsed['enclosing'])) { + return false; + } + foreach ($parsed[2] as $k => $listElement) { + $parsed[2][$k] = $this->isPlainCssValidElement($listElement); + if (! $parsed[2][$k]) { + return false; + } + } + return $parsed; + + case Type::T_ASSIGN: + foreach ([1, 2, 3] as $k) { + if (! empty($parsed[$k])) { + $parsed[$k] = $this->isPlainCssValidElement($parsed[$k]); + if (! $parsed[$k]) { + return false; + } + } + } + return $parsed; + + case Type::T_EXPRESSION: + list( ,$op, $lhs, $rhs, $inParens, $whiteBefore, $whiteAfter) = $parsed; + if (! $allowExpression && ! \in_array($op, ['and', 'or', '/'])) { + return false; + } + $lhs = $this->isPlainCssValidElement($lhs, true); + if (! $lhs) { + return false; + } + $rhs = $this->isPlainCssValidElement($rhs, true); + if (! $rhs) { + return false; + } + + return [ + Type::T_STRING, + '', [ + $this->inParens ? '(' : '', + $lhs, + ($whiteBefore ? ' ' : '') . $op . ($whiteAfter ? ' ' : ''), + $rhs, + $this->inParens ? ')' : '' + ] + ]; + + case Type::T_CUSTOM_PROPERTY: + case Type::T_UNARY: + $parsed[2] = $this->isPlainCssValidElement($parsed[2]); + if (! $parsed[2]) { + return false; + } + return $parsed; + + case Type::T_FUNCTION: + $argsList = $parsed[2]; + foreach ($argsList[2] as $argElement) { + if (! $this->isPlainCssValidElement($argElement)) { + return false; + } + } + return $parsed; + + case Type::T_FUNCTION_CALL: + $parsed[0] = Type::T_FUNCTION; + $argsList = [Type::T_LIST, ',', []]; + foreach ($parsed[2] as $arg) { + if ($arg[0] || ! empty($arg[2])) { + // no named arguments possible in a css function call + // nor ... argument + return false; + } + $arg = $this->isPlainCssValidElement($arg[1], $parsed[1] === 'calc'); + if (! $arg) { + return false; + } + $argsList[2][] = $arg; + } + $parsed[2] = $argsList; + return $parsed; + } + + return false; + } + + /** + * Match string looking for either ending delim, escape, or string interpolation + * + * {@internal This is a workaround for preg_match's 250K string match limit. }} + * + * @param array $m Matches (passed by reference) + * @param string $delim Delimiter + * + * @return boolean True if match; false otherwise + */ + protected function matchString(&$m, $delim) + { + $token = null; + + $end = \strlen($this->buffer); + + // look for either ending delim, escape, or string interpolation + foreach (['#{', '\\', "\r", $delim] as $lookahead) { + $pos = strpos($this->buffer, $lookahead, $this->count); + + if ($pos !== false && $pos < $end) { + $end = $pos; + $token = $lookahead; + } + } + + if (! isset($token)) { + return false; + } + + $match = substr($this->buffer, $this->count, $end - $this->count); + $m = [ + $match . $token, + $match, + $token + ]; + $this->count = $end + \strlen($token); + + return true; + } + + /** + * Try to match something on head of buffer + * + * @param string $regex + * @param array $out + * @param boolean $eatWhitespace + * + * @return boolean + */ + protected function match($regex, &$out, $eatWhitespace = null) + { + $r = '/' . $regex . '/' . $this->patternModifiers; + + if (! preg_match($r, $this->buffer, $out, 0, $this->count)) { + return false; + } + + $this->count += \strlen($out[0]); + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match a single string + * + * @param string $char + * @param boolean $eatWhitespace + * + * @return boolean + */ + protected function matchChar($char, $eatWhitespace = null) + { + if (! isset($this->buffer[$this->count]) || $this->buffer[$this->count] !== $char) { + return false; + } + + $this->count++; + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match literal string + * + * @param string $what + * @param integer $len + * @param boolean $eatWhitespace + * + * @return boolean + */ + protected function literal($what, $len, $eatWhitespace = null) + { + if (strcasecmp(substr($this->buffer, $this->count, $len), $what) !== 0) { + return false; + } + + $this->count += $len; + + if (! isset($eatWhitespace)) { + $eatWhitespace = $this->eatWhiteDefault; + } + + if ($eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + /** + * Match some whitespace + * + * @return boolean + */ + protected function whitespace() + { + $gotWhite = false; + + while (preg_match(static::$whitePattern, $this->buffer, $m, 0, $this->count)) { + if (isset($m[1]) && empty($this->commentsSeen[$this->count])) { + // comment that are kept in the output CSS + $comment = []; + $startCommentCount = $this->count; + $endCommentCount = $this->count + \strlen($m[1]); + + // find interpolations in comment + $p = strpos($this->buffer, '#{', $this->count); + + while ($p !== false && $p < $endCommentCount) { + $c = substr($this->buffer, $this->count, $p - $this->count); + $comment[] = $c; + $this->count = $p; + $out = null; + + if ($this->interpolation($out)) { + // keep right spaces in the following string part + if ($out[3]) { + while ($this->buffer[$this->count - 1] !== '}') { + $this->count--; + } + + $out[3] = ''; + } + + $comment[] = [Type::T_COMMENT, substr($this->buffer, $p, $this->count - $p), $out]; + } else { + list($line, $column) = $this->getSourcePosition($this->count); + $file = $this->sourceName; + if (!$this->discardComments) { + $this->logger->warn("Unterminated interpolations in multiline comments are deprecated and will be removed in ScssPhp 2.0, in \"$file\", line $line, column $column.", true); + } + $comment[] = substr($this->buffer, $this->count, 2); + + $this->count += 2; + } + + $p = strpos($this->buffer, '#{', $this->count); + } + + // remaining part + $c = substr($this->buffer, $this->count, $endCommentCount - $this->count); + + if (! $comment) { + // single part static comment + $this->appendComment([Type::T_COMMENT, $c]); + } else { + $comment[] = $c; + $staticComment = substr($this->buffer, $startCommentCount, $endCommentCount - $startCommentCount); + $commentStatement = [Type::T_COMMENT, $staticComment, [Type::T_STRING, '', $comment]]; + + list($line, $column) = $this->getSourcePosition($startCommentCount); + $commentStatement[self::SOURCE_LINE] = $line; + $commentStatement[self::SOURCE_COLUMN] = $column; + $commentStatement[self::SOURCE_INDEX] = $this->sourceIndex; + + $this->appendComment($commentStatement); + } + + $this->commentsSeen[$startCommentCount] = true; + $this->count = $endCommentCount; + } else { + // comment that are ignored and not kept in the output css + $this->count += \strlen($m[0]); + // silent comments are not allowed in plain CSS files + ! $this->cssOnly + || ! \strlen(trim($m[0])) + || $this->assertPlainCssValid(false, $this->count - \strlen($m[0])); + } + + $gotWhite = true; + } + + return $gotWhite; + } + + /** + * Append comment to current block + * + * @param array $comment + */ + protected function appendComment($comment) + { + if (! $this->discardComments) { + $this->env->comments[] = $comment; + } + } + + /** + * Append statement to current block + * + * @param array|null $statement + * @param integer $pos + */ + protected function append($statement, $pos = null) + { + if (! \is_null($statement)) { + ! $this->cssOnly || ($statement = $this->assertPlainCssValid($statement, $pos)); + + if (! \is_null($pos)) { + list($line, $column) = $this->getSourcePosition($pos); + + $statement[static::SOURCE_LINE] = $line; + $statement[static::SOURCE_COLUMN] = $column; + $statement[static::SOURCE_INDEX] = $this->sourceIndex; + } + + $this->env->children[] = $statement; + } + + $comments = $this->env->comments; + + if ($comments) { + $this->env->children = array_merge($this->env->children, $comments); + $this->env->comments = []; + } + } + + /** + * Returns last child was appended + * + * @return array|null + */ + protected function last() + { + $i = \count($this->env->children) - 1; + + if (isset($this->env->children[$i])) { + return $this->env->children[$i]; + } + } + + /** + * Parse media query list + * + * @param array $out + * + * @return boolean + */ + protected function mediaQueryList(&$out) + { + return $this->genericList($out, 'mediaQuery', ',', false); + } + + /** + * Parse media query + * + * @param array $out + * + * @return boolean + */ + protected function mediaQuery(&$out) + { + $expressions = null; + $parts = []; + + if ( + ($this->literal('only', 4) && ($only = true) || + $this->literal('not', 3) && ($not = true) || true) && + $this->mixedKeyword($mediaType) + ) { + $prop = [Type::T_MEDIA_TYPE]; + + if (isset($only)) { + $prop[] = [Type::T_KEYWORD, 'only']; + } + + if (isset($not)) { + $prop[] = [Type::T_KEYWORD, 'not']; + } + + $media = [Type::T_LIST, '', []]; + + foreach ((array) $mediaType as $type) { + if (\is_array($type)) { + $media[2][] = $type; + } else { + $media[2][] = [Type::T_KEYWORD, $type]; + } + } + + $prop[] = $media; + $parts[] = $prop; + } + + if (empty($parts) || $this->literal('and', 3)) { + $this->genericList($expressions, 'mediaExpression', 'and', false); + + if (\is_array($expressions)) { + $parts = array_merge($parts, $expressions[2]); + } + } + + $out = $parts; + + return true; + } + + /** + * Parse supports query + * + * @param array $out + * + * @return boolean + */ + protected function supportsQuery(&$out) + { + $expressions = null; + $parts = []; + + $s = $this->count; + + $not = false; + + if ( + ($this->literal('not', 3) && ($not = true) || true) && + $this->matchChar('(') && + ($this->expression($property)) && + $this->literal(': ', 2) && + $this->valueList($value) && + $this->matchChar(')') + ) { + $support = [Type::T_STRING, '', [[Type::T_KEYWORD, ($not ? 'not ' : '') . '(']]]; + $support[2][] = $property; + $support[2][] = [Type::T_KEYWORD, ': ']; + $support[2][] = $value; + $support[2][] = [Type::T_KEYWORD, ')']; + + $parts[] = $support; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->matchChar('(') && + $this->supportsQuery($subQuery) && + $this->matchChar(')') + ) { + $parts[] = [Type::T_STRING, '', [[Type::T_KEYWORD, '('], $subQuery, [Type::T_KEYWORD, ')']]]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('not', 3) && + $this->supportsQuery($subQuery) + ) { + $parts[] = [Type::T_STRING, '', [[Type::T_KEYWORD, 'not '], $subQuery]]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('selector(', 9) && + $this->selector($selector) && + $this->matchChar(')') + ) { + $support = [Type::T_STRING, '', [[Type::T_KEYWORD, 'selector(']]]; + + $selectorList = [Type::T_LIST, '', []]; + + foreach ($selector as $sc) { + $compound = [Type::T_STRING, '', []]; + + foreach ($sc as $scp) { + if (\is_array($scp)) { + $compound[2][] = $scp; + } else { + $compound[2][] = [Type::T_KEYWORD, $scp]; + } + } + + $selectorList[2][] = $compound; + } + + $support[2][] = $selectorList; + $support[2][] = [Type::T_KEYWORD, ')']; + $parts[] = $support; + $s = $this->count; + } else { + $this->seek($s); + } + + if ($this->variable($var) or $this->interpolation($var)) { + $parts[] = $var; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('and', 3) && + $this->genericList($expressions, 'supportsQuery', ' and', false) + ) { + array_unshift($expressions[2], [Type::T_STRING, '', $parts]); + + $parts = [$expressions]; + $s = $this->count; + } else { + $this->seek($s); + } + + if ( + $this->literal('or', 2) && + $this->genericList($expressions, 'supportsQuery', ' or', false) + ) { + array_unshift($expressions[2], [Type::T_STRING, '', $parts]); + + $parts = [$expressions]; + $s = $this->count; + } else { + $this->seek($s); + } + + if (\count($parts)) { + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + return false; + } + + + /** + * Parse media expression + * + * @param array $out + * + * @return boolean + */ + protected function mediaExpression(&$out) + { + $s = $this->count; + $value = null; + + if ( + $this->matchChar('(') && + $this->expression($feature) && + ($this->matchChar(':') && + $this->expression($value) || true) && + $this->matchChar(')') + ) { + $out = [Type::T_MEDIA_EXPRESSION, $feature]; + + if ($value) { + $out[] = $value; + } + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse argument values + * + * @param array $out + * + * @return boolean + */ + protected function argValues(&$out) + { + $discardComments = $this->discardComments; + $this->discardComments = true; + + if ($this->genericList($list, 'argValue', ',', false)) { + $out = $list[2]; + + $this->discardComments = $discardComments; + + return true; + } + + $this->discardComments = $discardComments; + + return false; + } + + /** + * Parse argument value + * + * @param array $out + * + * @return boolean + */ + protected function argValue(&$out) + { + $s = $this->count; + + $keyword = null; + + if (! $this->variable($keyword) || ! $this->matchChar(':')) { + $this->seek($s); + + $keyword = null; + } + + if ($this->genericList($value, 'expression', '', true)) { + $out = [$keyword, $value, false]; + $s = $this->count; + + if ($this->literal('...', 3)) { + $out[2] = true; + } else { + $this->seek($s); + } + + return true; + } + + return false; + } + + /** + * Check if a generic directive is known to be able to allow almost any syntax or not + * @param mixed $directiveName + * @return bool + */ + protected function isKnownGenericDirective($directiveName) + { + if (\is_array($directiveName) && \is_string(reset($directiveName))) { + $directiveName = reset($directiveName); + } + if (! \is_string($directiveName)) { + return false; + } + if ( + \in_array($directiveName, [ + 'at-root', + 'media', + 'mixin', + 'include', + 'scssphp-import-once', + 'import', + 'extend', + 'function', + 'break', + 'continue', + 'return', + 'each', + 'while', + 'for', + 'if', + 'debug', + 'warn', + 'error', + 'content', + 'else', + 'charset', + 'supports', + // Todo + 'use', + 'forward', + ]) + ) { + return true; + } + return false; + } + + /** + * Parse directive value list that considers $vars as keyword + * + * @param array $out + * @param boolean|string $endChar + * + * @return boolean + */ + protected function directiveValue(&$out, $endChar = false) + { + $s = $this->count; + + if ($this->variable($out)) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + if (! $endChar && $this->end()) { + return true; + } + } + + $this->seek($s); + + if (\is_string($endChar) && $this->openString($endChar ? $endChar : ';', $out, null, null, true, ";}{")) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + $ss = $this->count; + if (!$endChar && $this->end()) { + $this->seek($ss); + return true; + } + } + + $this->seek($s); + + $allowVars = $this->allowVars; + $this->allowVars = false; + + $res = $this->genericList($out, 'spaceList', ','); + $this->allowVars = $allowVars; + + if ($res) { + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + if (! $endChar && $this->end()) { + return true; + } + } + + $this->seek($s); + + if ($endChar && $this->matchChar($endChar, false)) { + return true; + } + + return false; + } + + /** + * Parse comma separated value list + * + * @param array $out + * + * @return boolean + */ + protected function valueList(&$out) + { + $discardComments = $this->discardComments; + $this->discardComments = true; + $res = $this->genericList($out, 'spaceList', ','); + $this->discardComments = $discardComments; + + return $res; + } + + /** + * Parse a function call, where externals () are part of the call + * and not of the value list + * + * @param $out + * @param bool $mandatoryEnclos + * @param null|string $charAfter + * @param null|bool $eatWhiteSp + * @return bool + */ + protected function functionCallArgumentsList(&$out, $mandatoryEnclos = true, $charAfter = null, $eatWhiteSp = null) + { + $s = $this->count; + + if ( + $this->matchChar('(') && + $this->valueList($out) && + $this->matchChar(')') && + ($charAfter ? $this->matchChar($charAfter, $eatWhiteSp) : $this->end()) + ) { + return true; + } + + if (! $mandatoryEnclos) { + $this->seek($s); + + if ( + $this->valueList($out) && + ($charAfter ? $this->matchChar($charAfter, $eatWhiteSp) : $this->end()) + ) { + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse space separated value list + * + * @param array $out + * + * @return boolean + */ + protected function spaceList(&$out) + { + return $this->genericList($out, 'expression'); + } + + /** + * Parse generic list + * + * @param array $out + * @param string $parseItem The name of the method used to parse items + * @param string $delim + * @param boolean $flatten + * + * @return boolean + */ + protected function genericList(&$out, $parseItem, $delim = '', $flatten = true) + { + $s = $this->count; + $items = []; + $value = null; + + while ($this->$parseItem($value)) { + $trailing_delim = false; + $items[] = $value; + + if ($delim) { + if (! $this->literal($delim, \strlen($delim))) { + break; + } + + $trailing_delim = true; + } else { + // if no delim watch that a keyword didn't eat the single/double quote + // from the following starting string + if ($value[0] === Type::T_KEYWORD) { + $word = $value[1]; + + $last_char = substr($word, -1); + + if ( + strlen($word) > 1 && + in_array($last_char, [ "'", '"']) && + substr($word, -2, 1) !== '\\' + ) { + // if there is a non escaped opening quote in the keyword, this seems unlikely a mistake + $word = str_replace('\\' . $last_char, '\\\\', $word); + if (strpos($word, $last_char) < strlen($word) - 1) { + continue; + } + + $currentCount = $this->count; + + // let's try to rewind to previous char and try a parse + $this->count--; + // in case the keyword also eat spaces + while (substr($this->buffer, $this->count, 1) !== $last_char) { + $this->count--; + } + + $nextValue = null; + if ($this->$parseItem($nextValue)) { + if ($nextValue[0] === Type::T_KEYWORD && $nextValue[1] === $last_char) { + // bad try, forget it + $this->seek($currentCount); + continue; + } + if ($nextValue[0] !== Type::T_STRING) { + // bad try, forget it + $this->seek($currentCount); + continue; + } + + // OK it was a good idea + $value[1] = substr($value[1], 0, -1); + array_pop($items); + $items[] = $value; + $items[] = $nextValue; + } else { + // bad try, forget it + $this->seek($currentCount); + continue; + } + } + } + } + } + + if (! $items) { + $this->seek($s); + + return false; + } + + if ($trailing_delim) { + $items[] = [Type::T_NULL]; + } + + if ($flatten && \count($items) === 1) { + $out = $items[0]; + } else { + $out = [Type::T_LIST, $delim, $items]; + } + + return true; + } + + /** + * Parse expression + * + * @param array $out + * @param boolean $listOnly + * @param boolean $lookForExp + * + * @return boolean + */ + protected function expression(&$out, $listOnly = false, $lookForExp = true) + { + $s = $this->count; + $discard = $this->discardComments; + $this->discardComments = true; + $allowedTypes = ($listOnly ? [Type::T_LIST] : [Type::T_LIST, Type::T_MAP]); + + if ($this->matchChar('(')) { + if ($this->enclosedExpression($lhs, $s, ')', $allowedTypes)) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->seek($s); + } + + if (\in_array(Type::T_LIST, $allowedTypes) && $this->matchChar('[')) { + if ($this->enclosedExpression($lhs, $s, ']', [Type::T_LIST])) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->seek($s); + } + + if (! $listOnly && $this->value($lhs)) { + if ($lookForExp) { + $out = $this->expHelper($lhs, 0); + } else { + $out = $lhs; + } + + $this->discardComments = $discard; + + return true; + } + + $this->discardComments = $discard; + + return false; + } + + /** + * Parse expression specifically checking for lists in parenthesis or brackets + * + * @param array $out + * @param integer $s + * @param string $closingParen + * @param array $allowedTypes + * + * @return boolean + */ + protected function enclosedExpression(&$out, $s, $closingParen = ')', $allowedTypes = [Type::T_LIST, Type::T_MAP]) + { + if ($this->matchChar($closingParen) && \in_array(Type::T_LIST, $allowedTypes)) { + $out = [Type::T_LIST, '', []]; + + switch ($closingParen) { + case ')': + $out['enclosing'] = 'parent'; // parenthesis list + break; + + case ']': + $out['enclosing'] = 'bracket'; // bracketed list + break; + } + + return true; + } + + if ( + $this->valueList($out) && + $this->matchChar($closingParen) && ! ($closingParen === ')' && + \in_array($out[0], [Type::T_EXPRESSION, Type::T_UNARY])) && + \in_array(Type::T_LIST, $allowedTypes) + ) { + if ($out[0] !== Type::T_LIST || ! empty($out['enclosing'])) { + $out = [Type::T_LIST, '', [$out]]; + } + + switch ($closingParen) { + case ')': + $out['enclosing'] = 'parent'; // parenthesis list + break; + + case ']': + $out['enclosing'] = 'bracket'; // bracketed list + break; + } + + return true; + } + + $this->seek($s); + + if (\in_array(Type::T_MAP, $allowedTypes) && $this->map($out)) { + return true; + } + + return false; + } + + /** + * Parse left-hand side of subexpression + * + * @param array $lhs + * @param integer $minP + * + * @return array + */ + protected function expHelper($lhs, $minP) + { + $operators = static::$operatorPattern; + + $ss = $this->count; + $whiteBefore = isset($this->buffer[$this->count - 1]) && + ctype_space($this->buffer[$this->count - 1]); + + while ($this->match($operators, $m, false) && static::$precedence[$m[1]] >= $minP) { + $whiteAfter = isset($this->buffer[$this->count]) && + ctype_space($this->buffer[$this->count]); + $varAfter = isset($this->buffer[$this->count]) && + $this->buffer[$this->count] === '$'; + + $this->whitespace(); + + $op = $m[1]; + + // don't turn negative numbers into expressions + if ($op === '-' && $whiteBefore && ! $whiteAfter && ! $varAfter) { + break; + } + + if (! $this->value($rhs) && ! $this->expression($rhs, true, false)) { + break; + } + + if ($op === '-' && ! $whiteAfter && $rhs[0] === Type::T_KEYWORD) { + break; + } + + // consume higher-precedence operators on the right-hand side + $rhs = $this->expHelper($rhs, static::$precedence[$op] + 1); + + $lhs = [Type::T_EXPRESSION, $op, $lhs, $rhs, $this->inParens, $whiteBefore, $whiteAfter]; + + $ss = $this->count; + $whiteBefore = isset($this->buffer[$this->count - 1]) && + ctype_space($this->buffer[$this->count - 1]); + } + + $this->seek($ss); + + return $lhs; + } + + /** + * Parse value + * + * @param array $out + * + * @return boolean + */ + protected function value(&$out) + { + if (! isset($this->buffer[$this->count])) { + return false; + } + + $s = $this->count; + $char = $this->buffer[$this->count]; + + if ( + $this->literal('url(', 4) && + $this->match('data:([a-z]+)\/([a-z0-9.+-]+);base64,', $m, false) + ) { + $len = strspn( + $this->buffer, + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwyxz0123456789+/=', + $this->count + ); + + $this->count += $len; + + if ($this->matchChar(')')) { + $content = substr($this->buffer, $s, $this->count - $s); + $out = [Type::T_KEYWORD, $content]; + + return true; + } + } + + $this->seek($s); + + if ( + $this->literal('url(', 4, false) && + $this->match('\s*(\/\/[^\s\)]+)\s*', $m) + ) { + $content = 'url(' . $m[1]; + + if ($this->matchChar(')')) { + $content .= ')'; + $out = [Type::T_KEYWORD, $content]; + + return true; + } + } + + $this->seek($s); + + // not + if ($char === 'n' && $this->literal('not', 3, false)) { + if ( + $this->whitespace() && + $this->value($inner) + ) { + $out = [Type::T_UNARY, 'not', $inner, $this->inParens]; + + return true; + } + + $this->seek($s); + + if ($this->parenValue($inner)) { + $out = [Type::T_UNARY, 'not', $inner, $this->inParens]; + + return true; + } + + $this->seek($s); + } + + // addition + if ($char === '+') { + $this->count++; + + $follow_white = $this->whitespace(); + + if ($this->value($inner)) { + $out = [Type::T_UNARY, '+', $inner, $this->inParens]; + + return true; + } + + if ($follow_white) { + $out = [Type::T_KEYWORD, $char]; + return true; + } + + $this->seek($s); + + return false; + } + + // negation + if ($char === '-') { + if ($this->customProperty($out)) { + return true; + } + + $this->count++; + + $follow_white = $this->whitespace(); + + if ($this->variable($inner) || $this->unit($inner) || $this->parenValue($inner)) { + $out = [Type::T_UNARY, '-', $inner, $this->inParens]; + + return true; + } + + if ( + $this->keyword($inner) && + ! $this->func($inner, $out) + ) { + $out = [Type::T_UNARY, '-', $inner, $this->inParens]; + + return true; + } + + if ($follow_white) { + $out = [Type::T_KEYWORD, $char]; + + return true; + } + + $this->seek($s); + } + + // paren + if ($char === '(' && $this->parenValue($out)) { + return true; + } + + if ($char === '#') { + if ($this->interpolation($out) || $this->color($out)) { + return true; + } + + $this->count++; + + if ($this->keyword($keyword)) { + $out = [Type::T_KEYWORD, '#' . $keyword]; + + return true; + } + + $this->count--; + } + + if ($this->matchChar('&', true)) { + $out = [Type::T_SELF]; + + return true; + } + + if ($char === '$' && $this->variable($out)) { + return true; + } + + if ($char === 'p' && $this->progid($out)) { + return true; + } + + if (($char === '"' || $char === "'") && $this->string($out)) { + return true; + } + + if ($this->unit($out)) { + return true; + } + + // unicode range with wildcards + if ( + $this->literal('U+', 2) && + $this->match('\?+|([0-9A-F]+(\?+|(-[0-9A-F]+))?)', $m, false) + ) { + $unicode = explode('-', $m[0]); + if (strlen(reset($unicode)) <= 6 && strlen(end($unicode)) <= 6) { + $out = [Type::T_KEYWORD, 'U+' . $m[0]]; + + return true; + } + $this->count -= strlen($m[0]) + 2; + } + + if ($this->keyword($keyword, false)) { + if ($this->func($keyword, $out)) { + return true; + } + + $this->whitespace(); + + if ($keyword === 'null') { + $out = [Type::T_NULL]; + } else { + $out = [Type::T_KEYWORD, $keyword]; + } + + return true; + } + + return false; + } + + /** + * Parse parenthesized value + * + * @param array $out + * + * @return boolean + */ + protected function parenValue(&$out) + { + $s = $this->count; + + $inParens = $this->inParens; + + if ($this->matchChar('(')) { + if ($this->matchChar(')')) { + $out = [Type::T_LIST, '', []]; + + return true; + } + + $this->inParens = true; + + if ( + $this->expression($exp) && + $this->matchChar(')') + ) { + $out = $exp; + $this->inParens = $inParens; + + return true; + } + } + + $this->inParens = $inParens; + $this->seek($s); + + return false; + } + + /** + * Parse "progid:" + * + * @param array $out + * + * @return boolean + */ + protected function progid(&$out) + { + $s = $this->count; + + if ( + $this->literal('progid:', 7, false) && + $this->openString('(', $fn) && + $this->matchChar('(') + ) { + $this->openString(')', $args, '('); + + if ($this->matchChar(')')) { + $out = [Type::T_STRING, '', [ + 'progid:', $fn, '(', $args, ')' + ]]; + + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse function call + * + * @param string $name + * @param array $func + * + * @return boolean + */ + protected function func($name, &$func) + { + $s = $this->count; + + if ($this->matchChar('(')) { + if ($name === 'alpha' && $this->argumentList($args)) { + $func = [Type::T_FUNCTION, $name, [Type::T_STRING, '', $args]]; + + return true; + } + + if ($name !== 'expression' && ! preg_match('/^(-[a-z]+-)?calc$/', $name)) { + $ss = $this->count; + + if ( + $this->argValues($args) && + $this->matchChar(')') + ) { + $func = [Type::T_FUNCTION_CALL, $name, $args]; + + return true; + } + + $this->seek($ss); + } + + if ( + ($this->openString(')', $str, '(') || true) && + $this->matchChar(')') + ) { + $args = []; + + if (! empty($str)) { + $args[] = [null, [Type::T_STRING, '', [$str]]]; + } + + $func = [Type::T_FUNCTION_CALL, $name, $args]; + + return true; + } + } + + $this->seek($s); + + return false; + } + + /** + * Parse function call argument list + * + * @param array $out + * + * @return boolean + */ + protected function argumentList(&$out) + { + $s = $this->count; + $this->matchChar('('); + + $args = []; + + while ($this->keyword($var)) { + if ( + $this->matchChar('=') && + $this->expression($exp) + ) { + $args[] = [Type::T_STRING, '', [$var . '=']]; + $arg = $exp; + } else { + break; + } + + $args[] = $arg; + + if (! $this->matchChar(',')) { + break; + } + + $args[] = [Type::T_STRING, '', [', ']]; + } + + if (! $this->matchChar(')') || ! $args) { + $this->seek($s); + + return false; + } + + $out = $args; + + return true; + } + + /** + * Parse mixin/function definition argument list + * + * @param array $out + * + * @return boolean + */ + protected function argumentDef(&$out) + { + $s = $this->count; + $this->matchChar('('); + + $args = []; + + while ($this->variable($var)) { + $arg = [$var[1], null, false]; + + $ss = $this->count; + + if ( + $this->matchChar(':') && + $this->genericList($defaultVal, 'expression', '', true) + ) { + $arg[1] = $defaultVal; + } else { + $this->seek($ss); + } + + $ss = $this->count; + + if ($this->literal('...', 3)) { + $sss = $this->count; + + if (! $this->matchChar(')')) { + throw $this->parseError('... has to be after the final argument'); + } + + $arg[2] = true; + + $this->seek($sss); + } else { + $this->seek($ss); + } + + $args[] = $arg; + + if (! $this->matchChar(',')) { + break; + } + } + + if (! $this->matchChar(')')) { + $this->seek($s); + + return false; + } + + $out = $args; + + return true; + } + + /** + * Parse map + * + * @param array $out + * + * @return boolean + */ + protected function map(&$out) + { + $s = $this->count; + + if (! $this->matchChar('(')) { + return false; + } + + $keys = []; + $values = []; + + while ( + $this->genericList($key, 'expression', '', true) && + $this->matchChar(':') && + $this->genericList($value, 'expression', '', true) + ) { + $keys[] = $key; + $values[] = $value; + + if (! $this->matchChar(',')) { + break; + } + } + + if (! $keys || ! $this->matchChar(')')) { + $this->seek($s); + + return false; + } + + $out = [Type::T_MAP, $keys, $values]; + + return true; + } + + /** + * Parse color + * + * @param array $out + * + * @return boolean + */ + protected function color(&$out) + { + $s = $this->count; + + if ($this->match('(#([0-9a-f]+)\b)', $m)) { + if (\in_array(\strlen($m[2]), [3,4,6,8])) { + $out = [Type::T_KEYWORD, $m[0]]; + + return true; + } + + $this->seek($s); + + return false; + } + + return false; + } + + /** + * Parse number with unit + * + * @param array $unit + * + * @return boolean + */ + protected function unit(&$unit) + { + $s = $this->count; + + if ($this->match('([0-9]*(\.)?[0-9]+)([%a-zA-Z]+)?', $m, false)) { + if (\strlen($this->buffer) === $this->count || ! ctype_digit($this->buffer[$this->count])) { + $this->whitespace(); + + $unit = new Node\Number($m[1], empty($m[3]) ? '' : $m[3]); + + return true; + } + + $this->seek($s); + } + + return false; + } + + /** + * Parse string + * + * @param array $out + * + * @return boolean + */ + protected function string(&$out, $keepDelimWithInterpolation = false) + { + $s = $this->count; + + if ($this->matchChar('"', false)) { + $delim = '"'; + } elseif ($this->matchChar("'", false)) { + $delim = "'"; + } else { + return false; + } + + $content = []; + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + $hasInterpolation = false; + + while ($this->matchString($m, $delim)) { + if ($m[1] !== '') { + $content[] = $m[1]; + } + + if ($m[2] === '#{') { + $this->count -= \strlen($m[2]); + + if ($this->interpolation($inter, false)) { + $content[] = $inter; + $hasInterpolation = true; + } else { + $this->count += \strlen($m[2]); + $content[] = '#{'; // ignore it + } + } elseif ($m[2] === "\r") { + $content[] = chr(10); + // TODO : warning + # DEPRECATION WARNING on line x, column y of zzz: + # Unescaped multiline strings are deprecated and will be removed in a future version of Sass. + # To include a newline in a string, use "\a" or "\a " as in CSS. + if ($this->matchChar("\n", false)) { + $content[] = ' '; + } + } elseif ($m[2] === '\\') { + if ( + $this->literal("\r\n", 2, false) || + $this->matchChar("\r", false) || + $this->matchChar("\n", false) || + $this->matchChar("\f", false) + ) { + // this is a continuation escaping, to be ignored + } elseif ($this->matchEscapeCharacter($c)) { + $content[] = $c; + } else { + throw $this->parseError('Unterminated escape sequence'); + } + } else { + $this->count -= \strlen($delim); + break; // delim + } + } + + $this->eatWhiteDefault = $oldWhite; + + if ($this->literal($delim, \strlen($delim))) { + if ($hasInterpolation && ! $keepDelimWithInterpolation) { + $delim = '"'; + } + + $out = [Type::T_STRING, $delim, $content]; + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * @param string $out + * @param bool $inKeywords + * @return bool + */ + protected function matchEscapeCharacter(&$out, $inKeywords = false) + { + $s = $this->count; + if ($this->match('[a-f0-9]', $m, false)) { + $hex = $m[0]; + + for ($i = 5; $i--;) { + if ($this->match('[a-f0-9]', $m, false)) { + $hex .= $m[0]; + } else { + break; + } + } + + // CSS allows Unicode escape sequences to be followed by a delimiter space + // (necessary in some cases for shorter sequences to disambiguate their end) + $this->matchChar(' ', false); + + $value = hexdec($hex); + + if (!$inKeywords && ($value == 0 || ($value >= 0xD800 && $value <= 0xDFFF) || $value >= 0x10FFFF)) { + $out = "\xEF\xBF\xBD"; // "\u{FFFD}" but with a syntax supported on PHP 5 + } elseif ($value < 0x20) { + $out = Util::mbChr($value); + } else { + $out = Util::mbChr($value); + } + + return true; + } + + if ($this->match('.', $m, false)) { + if ($inKeywords && in_array($m[0], ["'",'"','@','&',' ','\\',':','/','%'])) { + $this->seek($s); + return false; + } + $out = $m[0]; + + return true; + } + + return false; + } + + /** + * Parse keyword or interpolation + * + * @param array $out + * @param boolean $restricted + * + * @return boolean + */ + protected function mixedKeyword(&$out, $restricted = false) + { + $parts = []; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($restricted ? $this->restrictedKeyword($key) : $this->keyword($key)) { + $parts[] = $key; + continue; + } + + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + $out = $parts; + + return true; + } + + /** + * Parse an unbounded string stopped by $end + * + * @param string $end + * @param array $out + * @param string $nestOpen + * @param string $nestClose + * @param boolean $rtrim + * @param string $disallow + * + * @return boolean + */ + protected function openString($end, &$out, $nestOpen = null, $nestClose = null, $rtrim = true, $disallow = null) + { + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + if ($nestOpen && ! $nestClose) { + $nestClose = $end; + } + + $patt = ($disallow ? '[^' . $this->pregQuote($disallow) . ']' : '.'); + $patt = '(' . $patt . '*?)([\'"]|#\{|' + . $this->pregQuote($end) . '|' + . (($nestClose && $nestClose !== $end) ? $this->pregQuote($nestClose) . '|' : '') + . static::$commentPattern . ')'; + + $nestingLevel = 0; + + $content = []; + + while ($this->match($patt, $m, false)) { + if (isset($m[1]) && $m[1] !== '') { + $content[] = $m[1]; + + if ($nestOpen) { + $nestingLevel += substr_count($m[1], $nestOpen); + } + } + + $tok = $m[2]; + + $this->count -= \strlen($tok); + + if ($tok === $end && ! $nestingLevel) { + break; + } + + if ($tok === $nestClose) { + $nestingLevel--; + } + + if (($tok === "'" || $tok === '"') && $this->string($str, true)) { + $content[] = $str; + continue; + } + + if ($tok === '#{' && $this->interpolation($inter)) { + $content[] = $inter; + continue; + } + + $content[] = $tok; + $this->count += \strlen($tok); + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $content || $tok !== $end) { + return false; + } + + // trim the end + if ($rtrim && \is_string(end($content))) { + $content[\count($content) - 1] = rtrim(end($content)); + } + + $out = [Type::T_STRING, '', $content]; + + return true; + } + + /** + * Parser interpolation + * + * @param string|array $out + * @param boolean $lookWhite save information about whitespace before and after + * + * @return boolean + */ + protected function interpolation(&$out, $lookWhite = true) + { + $oldWhite = $this->eatWhiteDefault; + $allowVars = $this->allowVars; + $this->allowVars = true; + $this->eatWhiteDefault = true; + + $s = $this->count; + + if ( + $this->literal('#{', 2) && + $this->valueList($value) && + $this->matchChar('}', false) + ) { + if ($value === [Type::T_SELF]) { + $out = $value; + } else { + if ($lookWhite) { + $left = ($s > 0 && preg_match('/\s/', $this->buffer[$s - 1])) ? ' ' : ''; + $right = ( + ! empty($this->buffer[$this->count]) && + preg_match('/\s/', $this->buffer[$this->count]) + ) ? ' ' : ''; + } else { + $left = $right = false; + } + + $out = [Type::T_INTERPOLATE, $value, $left, $right]; + } + + $this->eatWhiteDefault = $oldWhite; + $this->allowVars = $allowVars; + + if ($this->eatWhiteDefault) { + $this->whitespace(); + } + + return true; + } + + $this->seek($s); + + $this->eatWhiteDefault = $oldWhite; + $this->allowVars = $allowVars; + + return false; + } + + /** + * Parse property name (as an array of parts or a string) + * + * @param array $out + * + * @return boolean + */ + protected function propertyName(&$out) + { + $parts = []; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + if ($this->keyword($text)) { + $parts[] = $text; + continue; + } + + if (! $parts && $this->match('[:.#]', $m, false)) { + // css hacks + $parts[] = $m[0]; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + // match comment hack + if (preg_match(static::$whitePattern, $this->buffer, $m, 0, $this->count)) { + if (! empty($m[0])) { + $parts[] = $m[0]; + $this->count += \strlen($m[0]); + } + } + + $this->whitespace(); // get any extra whitespace + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + /** + * Parse custom property name (as an array of parts or a string) + * + * @param array $out + * + * @return boolean + */ + protected function customProperty(&$out) + { + $s = $this->count; + + if (! $this->literal('--', 2, false)) { + return false; + } + + $parts = ['--']; + + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + for (;;) { + if ($this->interpolation($inter)) { + $parts[] = $inter; + continue; + } + + if ($this->matchChar('&', false)) { + $parts[] = [Type::T_SELF]; + continue; + } + + if ($this->variable($var)) { + $parts[] = $var; + continue; + } + + if ($this->keyword($text)) { + $parts[] = $text; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (\count($parts) == 1) { + $this->seek($s); + + return false; + } + + $this->whitespace(); // get any extra whitespace + + $out = [Type::T_STRING, '', $parts]; + + return true; + } + + /** + * Parse comma separated selector list + * + * @param array $out + * @param string|boolean $subSelector + * + * @return boolean + */ + protected function selectors(&$out, $subSelector = false) + { + $s = $this->count; + $selectors = []; + + while ($this->selector($sel, $subSelector)) { + $selectors[] = $sel; + + if (! $this->matchChar(',', true)) { + break; + } + + while ($this->matchChar(',', true)) { + ; // ignore extra + } + } + + if (! $selectors) { + $this->seek($s); + + return false; + } + + $out = $selectors; + + return true; + } + + /** + * Parse whitespace separated selector list + * + * @param array $out + * @param string|boolean $subSelector + * + * @return boolean + */ + protected function selector(&$out, $subSelector = false) + { + $selector = []; + + $discardComments = $this->discardComments; + $this->discardComments = true; + + for (;;) { + $s = $this->count; + + if ($this->match('[>+~]+', $m, true)) { + if ( + $subSelector && \is_string($subSelector) && strpos($subSelector, 'nth-') === 0 && + $m[0] === '+' && $this->match("(\d+|n\b)", $counter) + ) { + $this->seek($s); + } else { + $selector[] = [$m[0]]; + continue; + } + } + + if ($this->selectorSingle($part, $subSelector)) { + $selector[] = $part; + $this->whitespace(); + continue; + } + + break; + } + + $this->discardComments = $discardComments; + + if (! $selector) { + return false; + } + + $out = $selector; + + return true; + } + + /** + * parsing escaped chars in selectors: + * - escaped single chars are kept escaped in the selector but in a normalized form + * (if not in 0-9a-f range as this would be ambigous) + * - other escaped sequences (multibyte chars or 0-9a-f) are kept in their initial escaped form, + * normalized to lowercase + * + * TODO: this is a fallback solution. Ideally escaped chars in selectors should be encoded as the genuine chars, + * and escaping added when printing in the Compiler, where/if it's mandatory + * - but this require a better formal selector representation instead of the array we have now + * + * @param string $out + * @param bool $keepEscapedNumber + * @return bool + */ + protected function matchEscapeCharacterInSelector(&$out, $keepEscapedNumber = false) + { + $s_escape = $this->count; + if ($this->match('\\\\', $m)) { + $out = '\\' . $m[0]; + return true; + } + + if ($this->matchEscapeCharacter($escapedout, true)) { + if (strlen($escapedout) === 1) { + if (!preg_match(",\w,", $escapedout)) { + $out = '\\' . $escapedout; + return true; + } elseif (! $keepEscapedNumber || ! \is_numeric($escapedout)) { + $out = $escapedout; + return true; + } + } + $escape_sequence = rtrim(substr($this->buffer, $s_escape, $this->count - $s_escape)); + if (strlen($escape_sequence) < 6) { + $escape_sequence .= ' '; + } + $out = '\\' . strtolower($escape_sequence); + return true; + } + if ($this->match('\\S', $m)) { + $out = '\\' . $m[0]; + return true; + } + + + return false; + } + + /** + * Parse the parts that make up a selector + * + * {@internal + * div[yes=no]#something.hello.world:nth-child(-2n+1)%placeholder + * }} + * + * @param array $out + * @param string|boolean $subSelector + * + * @return boolean + */ + protected function selectorSingle(&$out, $subSelector = false) + { + $oldWhite = $this->eatWhiteDefault; + $this->eatWhiteDefault = false; + + $parts = []; + + if ($this->matchChar('*', false)) { + $parts[] = '*'; + } + + for (;;) { + if (! isset($this->buffer[$this->count])) { + break; + } + + $s = $this->count; + $char = $this->buffer[$this->count]; + + // see if we can stop early + if ($char === '{' || $char === ',' || $char === ';' || $char === '}' || $char === '@') { + break; + } + + // parsing a sub selector in () stop with the closing ) + if ($subSelector && $char === ')') { + break; + } + + //self + switch ($char) { + case '&': + $parts[] = Compiler::$selfSelector; + $this->count++; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue 2; + + case '.': + $parts[] = '.'; + $this->count++; + continue 2; + + case '|': + $parts[] = '|'; + $this->count++; + continue 2; + } + + // handling of escaping in selectors : get the escaped char + if ($char === '\\') { + $this->count++; + if ($this->matchEscapeCharacterInSelector($escaped, true)) { + $parts[] = $escaped; + continue; + } + $this->count--; + } + + if ($char === '%') { + $this->count++; + + if ($this->placeholder($placeholder)) { + $parts[] = '%'; + $parts[] = $placeholder; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue; + } + + break; + } + + if ($char === '#') { + if ($this->interpolation($inter)) { + $parts[] = $inter; + ! $this->cssOnly || $this->assertPlainCssValid(false, $s); + continue; + } + + $parts[] = '#'; + $this->count++; + continue; + } + + // a pseudo selector + if ($char === ':') { + if ($this->buffer[$this->count + 1] === ':') { + $this->count += 2; + $part = '::'; + } else { + $this->count++; + $part = ':'; + } + + if ($this->mixedKeyword($nameParts, true)) { + $parts[] = $part; + + foreach ($nameParts as $sub) { + $parts[] = $sub; + } + + $ss = $this->count; + + if ( + $nameParts === ['not'] || + $nameParts === ['is'] || + $nameParts === ['has'] || + $nameParts === ['where'] || + $nameParts === ['slotted'] || + $nameParts === ['nth-child'] || + $nameParts === ['nth-last-child'] || + $nameParts === ['nth-of-type'] || + $nameParts === ['nth-last-of-type'] + ) { + if ( + $this->matchChar('(', true) && + ($this->selectors($subs, reset($nameParts)) || true) && + $this->matchChar(')') + ) { + $parts[] = '('; + + while ($sub = array_shift($subs)) { + while ($ps = array_shift($sub)) { + foreach ($ps as &$p) { + $parts[] = $p; + } + + if (\count($sub) && reset($sub)) { + $parts[] = ' '; + } + } + + if (\count($subs) && reset($subs)) { + $parts[] = ', '; + } + } + + $parts[] = ')'; + } else { + $this->seek($ss); + } + } elseif ( + $this->matchChar('(', true) && + ($this->openString(')', $str, '(') || true) && + $this->matchChar(')') + ) { + $parts[] = '('; + + if (! empty($str)) { + $parts[] = $str; + } + + $parts[] = ')'; + } else { + $this->seek($ss); + } + + continue; + } + } + + $this->seek($s); + + // 2n+1 + if ($subSelector && \is_string($subSelector) && strpos($subSelector, 'nth-') === 0) { + if ($this->match("(\s*(\+\s*|\-\s*)?(\d+|n|\d+n))+", $counter)) { + $parts[] = $counter[0]; + //$parts[] = str_replace(' ', '', $counter[0]); + continue; + } + } + + $this->seek($s); + + // attribute selector + if ( + $char === '[' && + $this->matchChar('[') && + ($this->openString(']', $str, '[') || true) && + $this->matchChar(']') + ) { + $parts[] = '['; + + if (! empty($str)) { + $parts[] = $str; + } + + $parts[] = ']'; + continue; + } + + $this->seek($s); + + // for keyframes + if ($this->unit($unit)) { + $parts[] = $unit; + continue; + } + + if ($this->restrictedKeyword($name, false, true)) { + $parts[] = $name; + continue; + } + + break; + } + + $this->eatWhiteDefault = $oldWhite; + + if (! $parts) { + return false; + } + + $out = $parts; + + return true; + } + + /** + * Parse a variable + * + * @param array $out + * + * @return boolean + */ + protected function variable(&$out) + { + $s = $this->count; + + if ( + $this->matchChar('$', false) && + $this->keyword($name) + ) { + if ($this->allowVars) { + $out = [Type::T_VARIABLE, $name]; + } else { + $out = [Type::T_KEYWORD, '$' . $name]; + } + + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse a keyword + * + * @param string $word + * @param boolean $eatWhitespace + * @param boolean $inSelector + * + * @return boolean + */ + protected function keyword(&$word, $eatWhitespace = null, $inSelector = false) + { + $s = $this->count; + $match = $this->match( + $this->utf8 + ? '(([\pL\w\x{00A0}-\x{10FFFF}_\-\*!"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)([\pL\w\x{00A0}-\x{10FFFF}\-_"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)*)' + : '(([\w_\-\*!"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)([\w\-_"\']|\\\\[a-f0-9]{6} ?|\\\\[a-f0-9]{1,5}(?![a-f0-9]) ?|[\\\\].)*)', + $m, + false + ); + + if ($match) { + $word = $m[1]; + + // handling of escaping in keyword : get the escaped char + if (strpos($word, '\\') !== false) { + $send = $this->count; + $escapedWord = []; + $this->seek($s); + $previousEscape = false; + while ($this->count < $send) { + $char = $this->buffer[$this->count]; + $this->count++; + if ( + $this->count < $send + && $char === '\\' + && !$previousEscape + && ( + $inSelector ? + $this->matchEscapeCharacterInSelector($out) + : + $this->matchEscapeCharacter($out, true) + ) + ) { + $escapedWord[] = $out; + } else { + if ($previousEscape) { + $previousEscape = false; + } elseif ($char === '\\') { + $previousEscape = true; + } + $escapedWord[] = $char; + } + } + + $word = implode('', $escapedWord); + } + + if (is_null($eatWhitespace) ? $this->eatWhiteDefault : $eatWhitespace) { + $this->whitespace(); + } + + return true; + } + + return false; + } + + /** + * Parse a keyword that should not start with a number + * + * @param string $word + * @param boolean $eatWhitespace + * @param boolean $inSelector + * + * @return boolean + */ + protected function restrictedKeyword(&$word, $eatWhitespace = null, $inSelector = false) + { + $s = $this->count; + + if ($this->keyword($word, $eatWhitespace, $inSelector) && (\ord($word[0]) > 57 || \ord($word[0]) < 48)) { + return true; + } + + $this->seek($s); + + return false; + } + + /** + * Parse a placeholder + * + * @param string|array $placeholder + * + * @return boolean + */ + protected function placeholder(&$placeholder) + { + $match = $this->match( + $this->utf8 + ? '([\pL\w\-_]+)' + : '([\w\-_]+)', + $m + ); + + if ($match) { + $placeholder = $m[1]; + + return true; + } + + if ($this->interpolation($placeholder)) { + return true; + } + + return false; + } + + /** + * Parse a url + * + * @param array $out + * + * @return boolean + */ + protected function url(&$out) + { + if ($this->literal('url(', 4)) { + $s = $this->count; + + if ( + ($this->string($out) || $this->spaceList($out)) && + $this->matchChar(')') + ) { + $out = [Type::T_STRING, '', ['url(', $out, ')']]; + + return true; + } + + $this->seek($s); + + if ( + $this->openString(')', $out) && + $this->matchChar(')') + ) { + $out = [Type::T_STRING, '', ['url(', $out, ')']]; + + return true; + } + } + + return false; + } + + /** + * Consume an end of statement delimiter + * @param bool $eatWhitespace + * + * @return boolean + */ + protected function end($eatWhitespace = null) + { + if ($this->matchChar(';', $eatWhitespace)) { + return true; + } + + if ($this->count === \strlen($this->buffer) || $this->buffer[$this->count] === '}') { + // if there is end of file or a closing block next then we don't need a ; + return true; + } + + return false; + } + + /** + * Strip assignment flag from the list + * + * @param array $value + * + * @return array + */ + protected function stripAssignmentFlags(&$value) + { + $flags = []; + + for ($token = &$value; $token[0] === Type::T_LIST && ($s = \count($token[2])); $token = &$lastNode) { + $lastNode = &$token[2][$s - 1]; + + while ($lastNode[0] === Type::T_KEYWORD && \in_array($lastNode[1], ['!default', '!global'])) { + array_pop($token[2]); + + $node = end($token[2]); + $token = $this->flattenList($token); + $flags[] = $lastNode[1]; + $lastNode = $node; + } + } + + return $flags; + } + + /** + * Strip optional flag from selector list + * + * @param array $selectors + * + * @return string + */ + protected function stripOptionalFlag(&$selectors) + { + $optional = false; + $selector = end($selectors); + $part = end($selector); + + if ($part === ['!optional']) { + array_pop($selectors[\count($selectors) - 1]); + + $optional = true; + } + + return $optional; + } + + /** + * Turn list of length 1 into value type + * + * @param array $value + * + * @return array + */ + protected function flattenList($value) + { + if ($value[0] === Type::T_LIST && \count($value[2]) === 1) { + return $this->flattenList($value[2][0]); + } + + return $value; + } + + /** + * Quote regular expression + * + * @param string $what + * + * @return string + */ + private function pregQuote($what) + { + return preg_quote($what, '/'); + } + + /** + * Extract line numbers from buffer + * + * @param string $buffer + */ + private function extractLineNumbers($buffer) + { + $this->sourcePositions = [0 => 0]; + $prev = 0; + + while (($pos = strpos($buffer, "\n", $prev)) !== false) { + $this->sourcePositions[] = $pos; + $prev = $pos + 1; + } + + $this->sourcePositions[] = \strlen($buffer); + + if (substr($buffer, -1) !== "\n") { + $this->sourcePositions[] = \strlen($buffer) + 1; + } + } + + /** + * Get source line number and column (given character position in the buffer) + * + * @param integer $pos + * + * @return array + */ + private function getSourcePosition($pos) + { + $low = 0; + $high = \count($this->sourcePositions); + + while ($low < $high) { + $mid = (int) (($high + $low) / 2); + + if ($pos < $this->sourcePositions[$mid]) { + $high = $mid - 1; + continue; + } + + if ($pos >= $this->sourcePositions[$mid + 1]) { + $low = $mid + 1; + continue; + } + + return [$mid + 1, $pos - $this->sourcePositions[$mid]]; + } + + return [$low + 1, $pos - $this->sourcePositions[$low]]; + } + + /** + * Save internal encoding of mbstring + * + * When mbstring.func_overload is used to replace the standard PHP string functions, + * this method configures the internal encoding to a single-byte one so that the + * behavior matches the normal behavior of PHP string functions while using the parser. + * The existing internal encoding is saved and will be restored when calling {@see restoreEncoding}. + * + * If mbstring.func_overload is not used (or does not override string functions), this method is a no-op. + * + * @return void + */ + private function saveEncoding() + { + if (\PHP_VERSION_ID < 80000 && \extension_loaded('mbstring') && (2 & (int) ini_get('mbstring.func_overload')) > 0) { + $this->encoding = mb_internal_encoding(); + + mb_internal_encoding('iso-8859-1'); + } + } + + /** + * Restore internal encoding + * + * @return void + */ + private function restoreEncoding() + { + if (\extension_loaded('mbstring') && $this->encoding) { + mb_internal_encoding($this->encoding); + } + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64.php new file mode 100644 index 0000000..4a5ed8b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64.php @@ -0,0 +1,187 @@ + + * + * @internal + */ +class Base64 +{ + /** + * @var array + */ + private static $encodingMap = [ + 0 => 'A', + 1 => 'B', + 2 => 'C', + 3 => 'D', + 4 => 'E', + 5 => 'F', + 6 => 'G', + 7 => 'H', + 8 => 'I', + 9 => 'J', + 10 => 'K', + 11 => 'L', + 12 => 'M', + 13 => 'N', + 14 => 'O', + 15 => 'P', + 16 => 'Q', + 17 => 'R', + 18 => 'S', + 19 => 'T', + 20 => 'U', + 21 => 'V', + 22 => 'W', + 23 => 'X', + 24 => 'Y', + 25 => 'Z', + 26 => 'a', + 27 => 'b', + 28 => 'c', + 29 => 'd', + 30 => 'e', + 31 => 'f', + 32 => 'g', + 33 => 'h', + 34 => 'i', + 35 => 'j', + 36 => 'k', + 37 => 'l', + 38 => 'm', + 39 => 'n', + 40 => 'o', + 41 => 'p', + 42 => 'q', + 43 => 'r', + 44 => 's', + 45 => 't', + 46 => 'u', + 47 => 'v', + 48 => 'w', + 49 => 'x', + 50 => 'y', + 51 => 'z', + 52 => '0', + 53 => '1', + 54 => '2', + 55 => '3', + 56 => '4', + 57 => '5', + 58 => '6', + 59 => '7', + 60 => '8', + 61 => '9', + 62 => '+', + 63 => '/', + ]; + + /** + * @var array + */ + private static $decodingMap = [ + 'A' => 0, + 'B' => 1, + 'C' => 2, + 'D' => 3, + 'E' => 4, + 'F' => 5, + 'G' => 6, + 'H' => 7, + 'I' => 8, + 'J' => 9, + 'K' => 10, + 'L' => 11, + 'M' => 12, + 'N' => 13, + 'O' => 14, + 'P' => 15, + 'Q' => 16, + 'R' => 17, + 'S' => 18, + 'T' => 19, + 'U' => 20, + 'V' => 21, + 'W' => 22, + 'X' => 23, + 'Y' => 24, + 'Z' => 25, + 'a' => 26, + 'b' => 27, + 'c' => 28, + 'd' => 29, + 'e' => 30, + 'f' => 31, + 'g' => 32, + 'h' => 33, + 'i' => 34, + 'j' => 35, + 'k' => 36, + 'l' => 37, + 'm' => 38, + 'n' => 39, + 'o' => 40, + 'p' => 41, + 'q' => 42, + 'r' => 43, + 's' => 44, + 't' => 45, + 'u' => 46, + 'v' => 47, + 'w' => 48, + 'x' => 49, + 'y' => 50, + 'z' => 51, + 0 => 52, + 1 => 53, + 2 => 54, + 3 => 55, + 4 => 56, + 5 => 57, + 6 => 58, + 7 => 59, + 8 => 60, + 9 => 61, + '+' => 62, + '/' => 63, + ]; + + /** + * Convert to base64 + * + * @param integer $value + * + * @return string + */ + public static function encode($value) + { + return self::$encodingMap[$value]; + } + + /** + * Convert from base64 + * + * @param string $value + * + * @return integer + */ + public static function decode($value) + { + return self::$decodingMap[$value]; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64VLQ.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64VLQ.php new file mode 100644 index 0000000..d47b96a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/Base64VLQ.php @@ -0,0 +1,151 @@ + + * @author Anthon Pang + * + * @internal + */ +class Base64VLQ +{ + // A Base64 VLQ digit can represent 5 bits, so it is base-32. + const VLQ_BASE_SHIFT = 5; + + // A mask of bits for a VLQ digit (11111), 31 decimal. + const VLQ_BASE_MASK = 31; + + // The continuation bit is the 6th bit. + const VLQ_CONTINUATION_BIT = 32; + + /** + * Returns the VLQ encoded value. + * + * @param integer $value + * + * @return string + */ + public static function encode($value) + { + $encoded = ''; + $vlq = self::toVLQSigned($value); + + do { + $digit = $vlq & self::VLQ_BASE_MASK; + + //$vlq >>>= self::VLQ_BASE_SHIFT; // unsigned right shift + $vlq = (($vlq >> 1) & PHP_INT_MAX) >> (self::VLQ_BASE_SHIFT - 1); + + if ($vlq > 0) { + $digit |= self::VLQ_CONTINUATION_BIT; + } + + $encoded .= Base64::encode($digit); + } while ($vlq > 0); + + return $encoded; + } + + /** + * Decodes VLQValue. + * + * @param string $str + * @param integer $index + * + * @return integer + */ + public static function decode($str, &$index) + { + $result = 0; + $shift = 0; + + do { + $c = $str[$index++]; + $digit = Base64::decode($c); + $continuation = ($digit & self::VLQ_CONTINUATION_BIT) != 0; + $digit &= self::VLQ_BASE_MASK; + $result = $result + ($digit << $shift); + $shift = $shift + self::VLQ_BASE_SHIFT; + } while ($continuation); + + return self::fromVLQSigned($result); + } + + /** + * Converts from a two-complement value to a value where the sign bit is + * is placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + * + * @param integer $value + * + * @return integer + */ + private static function toVLQSigned($value) + { + if ($value < 0) { + return ((-$value) << 1) + 1; + } + + return ($value << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * is placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + * + * @param integer $value + * + * @return integer + */ + private static function fromVLQSigned($value) + { + $negate = ($value & 1) === 1; + + //$value >>>= 1; // unsigned right shift + $value = ($value >> 1) & PHP_INT_MAX; + + if (! $negate) { + return $value; + } + + // We need to OR 0x80000000 here to ensure the 32nd bit (the sign bit) is + // always set for negative numbers. If `value` were 1, (meaning `negate` is + // true and all other bits were zeros), `value` would now be 0. -0 is just + // 0, and doesn't flip the 32nd bit as intended. All positive numbers will + // successfully flip the 32nd bit without issue, so it's a noop for them. + return -$value | 0x80000000; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php new file mode 100644 index 0000000..4f14bdc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/SourceMap/SourceMapGenerator.php @@ -0,0 +1,381 @@ + + * @author Nicolas FRANÇOIS + * + * @internal + */ +class SourceMapGenerator +{ + /** + * What version of source map does the generator generate? + */ + const VERSION = 3; + + /** + * Array of default options + * + * @var array + * @phpstan-var array{sourceRoot: string, sourceMapFilename: string|null, sourceMapURL: string|null, sourceMapWriteTo: string|null, outputSourceFiles: bool, sourceMapRootpath: string, sourceMapBasepath: string} + */ + protected $defaultOptions = [ + // an optional source root, useful for relocating source files + // on a server or removing repeated values in the 'sources' entry. + // This value is prepended to the individual entries in the 'source' field. + 'sourceRoot' => '', + + // an optional name of the generated code that this source map is associated with. + 'sourceMapFilename' => null, + + // url of the map + 'sourceMapURL' => null, + + // absolute path to a file to write the map to + 'sourceMapWriteTo' => null, + + // output source contents? + 'outputSourceFiles' => false, + + // base path for filename normalization + 'sourceMapRootpath' => '', + + // base path for filename normalization + 'sourceMapBasepath' => '' + ]; + + /** + * The base64 VLQ encoder + * + * @var \ScssPhp\ScssPhp\SourceMap\Base64VLQ + */ + protected $encoder; + + /** + * Array of mappings + * + * @var array + * @phpstan-var list + */ + protected $mappings = []; + + /** + * Array of contents map + * + * @var array + */ + protected $contentsMap = []; + + /** + * File to content map + * + * @var array + */ + protected $sources = []; + + /** + * @var array + */ + protected $sourceKeys = []; + + /** + * @var array + * @phpstan-var array{sourceRoot: string, sourceMapFilename: string|null, sourceMapURL: string|null, sourceMapWriteTo: string|null, outputSourceFiles: bool, sourceMapRootpath: string, sourceMapBasepath: string} + */ + private $options; + + /** + * @phpstan-param array{sourceRoot?: string, sourceMapFilename?: string|null, sourceMapURL?: string|null, sourceMapWriteTo?: string|null, outputSourceFiles?: bool, sourceMapRootpath?: string, sourceMapBasepath?: string} $options + */ + public function __construct(array $options = []) + { + $this->options = array_merge($this->defaultOptions, $options); + $this->encoder = new Base64VLQ(); + } + + /** + * Adds a mapping + * + * @param integer $generatedLine The line number in generated file + * @param integer $generatedColumn The column number in generated file + * @param integer $originalLine The line number in original file + * @param integer $originalColumn The column number in original file + * @param string $sourceFile The original source file + * + * @return void + */ + public function addMapping($generatedLine, $generatedColumn, $originalLine, $originalColumn, $sourceFile) + { + $this->mappings[] = [ + 'generated_line' => $generatedLine, + 'generated_column' => $generatedColumn, + 'original_line' => $originalLine, + 'original_column' => $originalColumn, + 'source_file' => $sourceFile + ]; + + $this->sources[$sourceFile] = $sourceFile; + } + + /** + * Saves the source map to a file + * + * @param string $content The content to write + * + * @return string + * + * @throws \ScssPhp\ScssPhp\Exception\CompilerException If the file could not be saved + * @deprecated + */ + public function saveMap($content) + { + $file = $this->options['sourceMapWriteTo']; + $dir = \dirname($file); + + // directory does not exist + if (! is_dir($dir)) { + // FIXME: create the dir automatically? + throw new CompilerException( + sprintf('The directory "%s" does not exist. Cannot save the source map.', $dir) + ); + } + + // FIXME: proper saving, with dir write check! + if (file_put_contents($file, $content) === false) { + throw new CompilerException(sprintf('Cannot save the source map to "%s"', $file)); + } + + return $this->options['sourceMapURL']; + } + + /** + * Generates the JSON source map + * + * @param string $prefix A prefix added in the output file, which needs to shift mappings + * + * @return string + * + * @see https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit# + */ + public function generateJson($prefix = '') + { + $sourceMap = []; + $mappings = $this->generateMappings($prefix); + + // File version (always the first entry in the object) and must be a positive integer. + $sourceMap['version'] = self::VERSION; + + // An optional name of the generated code that this source map is associated with. + $file = $this->options['sourceMapFilename']; + + if ($file) { + $sourceMap['file'] = $file; + } + + // An optional source root, useful for relocating source files on a server or removing repeated values in the + // 'sources' entry. This value is prepended to the individual entries in the 'source' field. + $root = $this->options['sourceRoot']; + + if ($root) { + $sourceMap['sourceRoot'] = $root; + } + + // A list of original sources used by the 'mappings' entry. + $sourceMap['sources'] = []; + + foreach ($this->sources as $sourceUri => $sourceFilename) { + $sourceMap['sources'][] = $this->normalizeFilename($sourceFilename); + } + + // A list of symbol names used by the 'mappings' entry. + $sourceMap['names'] = []; + + // A string with the encoded mapping data. + $sourceMap['mappings'] = $mappings; + + if ($this->options['outputSourceFiles']) { + // An optional list of source content, useful when the 'source' can't be hosted. + // The contents are listed in the same order as the sources above. + // 'null' may be used if some original sources should be retrieved by name. + $sourceMap['sourcesContent'] = $this->getSourcesContent(); + } + + // less.js compat fixes + if (\count($sourceMap['sources']) && empty($sourceMap['sourceRoot'])) { + unset($sourceMap['sourceRoot']); + } + + return json_encode($sourceMap, JSON_UNESCAPED_SLASHES); + } + + /** + * Returns the sources contents + * + * @return string[]|null + */ + protected function getSourcesContent() + { + if (empty($this->sources)) { + return null; + } + + $content = []; + + foreach ($this->sources as $sourceFile) { + $content[] = file_get_contents($sourceFile); + } + + return $content; + } + + /** + * Generates the mappings string + * + * @param string $prefix A prefix added in the output file, which needs to shift mappings + * + * @return string + */ + public function generateMappings($prefix = '') + { + if (! \count($this->mappings)) { + return ''; + } + + $prefixLines = substr_count($prefix, "\n"); + $lastPrefixNewLine = strrpos($prefix, "\n"); + $lastPrefixLineStart = false === $lastPrefixNewLine ? 0 : $lastPrefixNewLine + 1; + $prefixColumn = strlen($prefix) - $lastPrefixLineStart; + + $this->sourceKeys = array_flip(array_keys($this->sources)); + + // group mappings by generated line number. + $groupedMap = $groupedMapEncoded = []; + + foreach ($this->mappings as $m) { + $groupedMap[$m['generated_line']][] = $m; + } + + ksort($groupedMap); + + $lastGeneratedLine = $lastOriginalIndex = $lastOriginalLine = $lastOriginalColumn = 0; + + foreach ($groupedMap as $lineNumber => $lineMap) { + if ($lineNumber > 1) { + // The prefix only impacts the column for the first line of the original output + $prefixColumn = 0; + } + $lineNumber += $prefixLines; + + while (++$lastGeneratedLine < $lineNumber) { + $groupedMapEncoded[] = ';'; + } + + $lineMapEncoded = []; + $lastGeneratedColumn = 0; + + foreach ($lineMap as $m) { + $generatedColumn = $m['generated_column'] + $prefixColumn; + + $mapEncoded = $this->encoder->encode($generatedColumn - $lastGeneratedColumn); + $lastGeneratedColumn = $generatedColumn; + + // find the index + if ($m['source_file']) { + $index = $this->findFileIndex($m['source_file']); + + if ($index !== false) { + $mapEncoded .= $this->encoder->encode($index - $lastOriginalIndex); + $lastOriginalIndex = $index; + // lines are stored 0-based in SourceMap spec version 3 + $mapEncoded .= $this->encoder->encode($m['original_line'] - 1 - $lastOriginalLine); + $lastOriginalLine = $m['original_line'] - 1; + $mapEncoded .= $this->encoder->encode($m['original_column'] - $lastOriginalColumn); + $lastOriginalColumn = $m['original_column']; + } + } + + $lineMapEncoded[] = $mapEncoded; + } + + $groupedMapEncoded[] = implode(',', $lineMapEncoded) . ';'; + } + + return rtrim(implode($groupedMapEncoded), ';'); + } + + /** + * Finds the index for the filename + * + * @param string $filename + * + * @return integer|false + */ + protected function findFileIndex($filename) + { + return $this->sourceKeys[$filename]; + } + + /** + * Normalize filename + * + * @param string $filename + * + * @return string + */ + protected function normalizeFilename($filename) + { + $filename = $this->fixWindowsPath($filename); + $rootpath = $this->options['sourceMapRootpath']; + $basePath = $this->options['sourceMapBasepath']; + + // "Trim" the 'sourceMapBasepath' from the output filename. + if (\strlen($basePath) && strpos($filename, $basePath) === 0) { + $filename = substr($filename, \strlen($basePath)); + } + + // Remove extra leading path separators. + if (strpos($filename, '\\') === 0 || strpos($filename, '/') === 0) { + $filename = substr($filename, 1); + } + + return $rootpath . $filename; + } + + /** + * Fix windows paths + * + * @param string $path + * @param boolean $addEndSlash + * + * @return string + */ + public function fixWindowsPath($path, $addEndSlash = false) + { + $slash = ($addEndSlash) ? '/' : ''; + + if (! empty($path)) { + $path = str_replace('\\', '/', $path); + $path = rtrim($path, '/') . $slash; + } + + return $path; + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Type.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Type.php new file mode 100644 index 0000000..fb2a1d7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Type.php @@ -0,0 +1,76 @@ + + */ +class Type +{ + const T_ASSIGN = 'assign'; + const T_AT_ROOT = 'at-root'; + const T_BLOCK = 'block'; + /** @deprecated */ + const T_BREAK = 'break'; + const T_CHARSET = 'charset'; + const T_COLOR = 'color'; + const T_COMMENT = 'comment'; + /** @deprecated */ + const T_CONTINUE = 'continue'; + /** @deprecated */ + const T_CONTROL = 'control'; + const T_CUSTOM_PROPERTY = 'custom'; + const T_DEBUG = 'debug'; + const T_DIRECTIVE = 'directive'; + const T_EACH = 'each'; + const T_ELSE = 'else'; + const T_ELSEIF = 'elseif'; + const T_ERROR = 'error'; + const T_EXPRESSION = 'exp'; + const T_EXTEND = 'extend'; + const T_FOR = 'for'; + const T_FUNCTION = 'function'; + const T_FUNCTION_REFERENCE = 'function-reference'; + const T_FUNCTION_CALL = 'fncall'; + const T_HSL = 'hsl'; + const T_HWB = 'hwb'; + const T_IF = 'if'; + const T_IMPORT = 'import'; + const T_INCLUDE = 'include'; + const T_INTERPOLATE = 'interpolate'; + const T_INTERPOLATED = 'interpolated'; + const T_KEYWORD = 'keyword'; + const T_LIST = 'list'; + const T_MAP = 'map'; + const T_MEDIA = 'media'; + const T_MEDIA_EXPRESSION = 'mediaExp'; + const T_MEDIA_TYPE = 'mediaType'; + const T_MEDIA_VALUE = 'mediaValue'; + const T_MIXIN = 'mixin'; + const T_MIXIN_CONTENT = 'mixin_content'; + const T_NESTED_PROPERTY = 'nestedprop'; + const T_NOT = 'not'; + const T_NULL = 'null'; + const T_NUMBER = 'number'; + const T_RETURN = 'return'; + const T_ROOT = 'root'; + const T_SCSSPHP_IMPORT_ONCE = 'scssphp-import-once'; + const T_SELF = 'self'; + const T_STRING = 'string'; + const T_UNARY = 'unary'; + const T_VARIABLE = 'var'; + const T_WARN = 'warn'; + const T_WHILE = 'while'; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util.php new file mode 100644 index 0000000..62cd2a2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util.php @@ -0,0 +1,184 @@ + + * + * @internal + */ +class Util +{ + /** + * Asserts that `value` falls within `range` (inclusive), leaving + * room for slight floating-point errors. + * + * @param string $name The name of the value. Used in the error message. + * @param Range $range Range of values. + * @param array|Number $value The value to check. + * @param string $unit The unit of the value. Used in error reporting. + * + * @return mixed `value` adjusted to fall within range, if it was outside by a floating-point margin. + * + * @throws \ScssPhp\ScssPhp\Exception\RangeException + */ + public static function checkRange($name, Range $range, $value, $unit = '') + { + $val = $value[1]; + $grace = new Range(-0.00001, 0.00001); + + if (! \is_numeric($val)) { + throw new RangeException("$name {$val} is not a number."); + } + + if ($range->includes($val)) { + return $val; + } + + if ($grace->includes($val - $range->first)) { + return $range->first; + } + + if ($grace->includes($val - $range->last)) { + return $range->last; + } + + throw new RangeException("$name {$val} must be between {$range->first} and {$range->last}$unit"); + } + + /** + * Encode URI component + * + * @param string $string + * + * @return string + */ + public static function encodeURIComponent($string) + { + $revert = ['%21' => '!', '%2A' => '*', '%27' => "'", '%28' => '(', '%29' => ')']; + + return strtr(rawurlencode($string), $revert); + } + + /** + * mb_chr() wrapper + * + * @param integer $code + * + * @return string + */ + public static function mbChr($code) + { + // Use the native implementation if available, but not on PHP 7.2 as mb_chr(0) is buggy there + if (\PHP_VERSION_ID > 70300 && \function_exists('mb_chr')) { + return mb_chr($code, 'UTF-8'); + } + + if (0x80 > $code %= 0x200000) { + $s = \chr($code); + } elseif (0x800 > $code) { + $s = \chr(0xC0 | $code >> 6) . \chr(0x80 | $code & 0x3F); + } elseif (0x10000 > $code) { + $s = \chr(0xE0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3F) . \chr(0x80 | $code & 0x3F); + } else { + $s = \chr(0xF0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3F) + . \chr(0x80 | $code >> 6 & 0x3F) . \chr(0x80 | $code & 0x3F); + } + + return $s; + } + + /** + * mb_strlen() wrapper + * + * @param string $string + * @return int + */ + public static function mbStrlen($string) + { + // Use the native implementation if available. + if (\function_exists('mb_strlen')) { + return mb_strlen($string, 'UTF-8'); + } + + if (\function_exists('iconv_strlen')) { + return (int) @iconv_strlen($string, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } + + /** + * mb_substr() wrapper + * @param string $string + * @param int $start + * @param null|int $length + * @return string + */ + public static function mbSubstr($string, $start, $length = null) + { + // Use the native implementation if available. + if (\function_exists('mb_substr')) { + return mb_substr($string, $start, $length, 'UTF-8'); + } + + if (\function_exists('iconv_substr')) { + if ($start < 0) { + $start = static::mbStrlen($string) + $start; + if ($start < 0) { + $start = 0; + } + } + + if (null === $length) { + $length = 2147483647; + } elseif ($length < 0) { + $length = static::mbStrlen($string) + $length - $start; + if ($length < 0) { + return ''; + } + } + + return (string)iconv_substr($string, $start, $length, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } + + /** + * mb_strpos wrapper + * @param string $haystack + * @param string $needle + * @param int $offset + * + * @return int|false + */ + public static function mbStrpos($haystack, $needle, $offset = 0) + { + if (\function_exists('mb_strpos')) { + return mb_strpos($haystack, $needle, $offset, 'UTF-8'); + } + + if (\function_exists('iconv_strpos')) { + return iconv_strpos($haystack, $needle, $offset, 'UTF-8'); + } + + throw new \LogicException('Either mbstring (recommended) or iconv is necessary to use Scssphp.'); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util/Path.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util/Path.php new file mode 100644 index 0000000..f399e41 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Util/Path.php @@ -0,0 +1,77 @@ +parseValue($source, $value)) { + throw new \InvalidArgumentException(sprintf('Invalid value source "%s".', $source)); + } + + return $value; + } + + /** + * Converts a PHP value to a Sass value + * + * The returned value is guaranteed to be supported by the + * Compiler methods for registering custom variables. No other + * guarantee about it is provided. It should be considered + * opaque values by the caller. + * + * @param mixed $value + * + * @return mixed + */ + public static function fromPhp($value) + { + if ($value instanceof Number) { + return $value; + } + + if (is_array($value) && isset($value[0]) && \in_array($value[0], [Type::T_NULL, Type::T_COLOR, Type::T_KEYWORD, Type::T_LIST, Type::T_MAP, Type::T_STRING])) { + return $value; + } + + if ($value === null) { + return Compiler::$null; + } + + if ($value === true) { + return Compiler::$true; + } + + if ($value === false) { + return Compiler::$false; + } + + if ($value === '') { + return Compiler::$emptyString; + } + + if (\is_int($value) || \is_float($value)) { + return new Number($value, ''); + } + + if (\is_string($value)) { + return [Type::T_STRING, '"', [$value]]; + } + + throw new \InvalidArgumentException(sprintf('Cannot convert the value of type "%s" to a Sass value.', gettype($value))); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Version.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Version.php new file mode 100644 index 0000000..62c8006 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Version.php @@ -0,0 +1,23 @@ + + */ +class Version +{ + const VERSION = '1.8.1'; +} diff --git a/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Warn.php b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Warn.php new file mode 100644 index 0000000..592b44c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Contrib/scssphp/src/Warn.php @@ -0,0 +1,84 @@ +`_. + + +.. toctree:: + :maxdepth: 5 + :titlesonly: + + Migration/6-2-14 + Migration/6-2-11 diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-11.rst b/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-11.rst new file mode 100644 index 0000000..411f5db --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-11.rst @@ -0,0 +1,330 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../../Includes.txt + + +.. _migration_6.2.11: + +============================= +Upgrade from 6.2.10 to 6.2.11 +============================= + +This document will only cover **breaking changes**, that could happen while +overriding the Bootstrap Package. + + + + +Support multilevel tree in subnavigation +======================================== + +Frontend output of the submenu has changed and the 3rd level is now displayed +by default. You will need to adapt this change if you are not using the theme +that comes with the Bootstrap Package. + +Before +------ + +**Markup** + +.. code-block:: html + + + +After +------ + +**Markup** + +.. code-block:: html + + + + + + +Drop version number for jQuery in filename +========================================== + +Previously we appended the version number to the jQuery filename, this has lead +to missing jQuery versions if files were moved outside the bootstrap_package. +We are not removing the version number to prevent jQuery is missing, this makes +it also more easy to maintain in the build process. Check your TypoScript setup +for possible overrides. + +Before +------ + +**TypoScript Setup** + +.. code-block:: typoscript + + page.includeJSFooterLibs { + jquery = {$page.includePath.javascript}Libs/jquery-x.xx.xx.min.js + } + +After +------ + +**TypoScript Setup** + +.. code-block:: typoscript + + page.includeJSFooterLibs { + jquery = {$page.includePath.javascript}Libs/jquery.min.js + } + + + + +Use default Bootstrap markup for navigation toggle +================================================== + +In previous builds Glyphicon icons were used to represent the toggle state of +the main menu for smaller screen sizes. Also the toggle js was always loaded in +within the main.js javascript file from the Bootstrap Package. This has lead to +problems when the icon font was changed or the main javascript file was +externally overriden. + +Instead of adapting the custom markup to your theme the default bootstrap markup +is now in use, so its working now also out of the box also if the custom theme +from the Bootstrap Package is not included. The toggle state is now solved via +a CSS class toggle and a bit of custom css in the Bootstrap Package theme. The +JavaScript toggle functionality has been move into a single file so it can be +easily turned of if you do not need it. + +Before +------ + +**Markup** + +.. code-block:: html + + + +After +------ + +**Markup** + +.. code-block:: html + + + +**TypoScript Setup** + +.. code-block:: typoscript + + page.includeJSFooterlibs { + #### Toggle collapsed CSS class on the navbar toggle button + bootstrap_navbartoggle = {$page.includePath.javascript}Libs/bootstrap.navbartoggle.min.js + } + + + + +Custom Lightbox JavaScript has been moved +========================================= + +In order to make the package more modular we removed the main.js file in favor +of single files for each functionality so it can be added or removed more easily. + +After +------ + +**TypoScript Setup** + +.. code-block:: typoscript + + page.includeJSFooterlibs { + #### Basic lightbox implementation for bootstrap + bootstrap_lightbox = {$page.includePath.javascript}Libs/bootstrap.lightbox.min.js + } + + + + +LESS files have been moved private to public +============================================ + +The resources folder in TYPO3 extensions is protected by default that made it +impossible to make real usage of CSS SourceMaps. The files have been moved to +Resources/Public, please ensure that your update your references to these files. + +Before +------ + +.. code-block:: html + + EXT:bootstrap_package/Resources/Private/Less/ + +After +------ + +.. code-block:: html + + EXT:bootstrap_package/Resources/Public/Less/ + + + + +Corrected calculation of relative paths in build in LESS parser +=============================================================== + +Calculation of relative paths in less should now be resolved correctly. +The wired relative paths you have to set before will no longer be working and +you need to set the constants now relative from the LESS file that is parsed. + +Before +------ + +**TypoScript Constants** + +.. code-block:: typoscript + + plugin.bootstrap_package { + settings.less { + icon-font-path = "../../../../../typo3conf/ext/bootstrap_package/Resources/Public/Fonts/" + } + } + +After +----- + +**TypoScript Constants** + +.. code-block:: typoscript + + plugin.bootstrap_package { + settings.less { + icon-font-path = "../../Fonts/" + } + } + + + + +Template Fallbacks +================== + +We enabled fallbacks for page templates, so you can extend the package without +the need to copy all the templates if you want to change parts of the templates. + +Before +------ + +**TypoScript Setup** + +.. code-block:: typoscript + + page.10 { + file.stdWrap.cObject = CASE + file.stdWrap.cObject { + + key.data = levelfield:-1, backend_layout_next_level, slide + key.override.field = backend_layout + + bootstrap_package__default_clean = TEXT + bootstrap_package__default_clean.value = {$page.fluidtemplate.templateRootPath}DefaultClean.html + bootstrap_package__default_clean.insertData = 1 + + ... + + } + partialRootPath = {$page.fluidtemplate.partialRootPath} + layoutRootPath = {$page.fluidtemplate.layoutRootPath} + } + +After +----- + +**TypoScript Setup** + +.. code-block:: typoscript + + page.10 { + templateName = TEXT + templateName.stdWrap.cObject = CASE + templateName.stdWrap.cObject { + + key.data = levelfield:-1, backend_layout_next_level, slide + key.override.field = backend_layout + + bootstrap_package__default_clean = TEXT + bootstrap_package__default_clean.value = DefaultClean + + ... + + } + templateRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Templates/Page/ + 1 = {$page.fluidtemplate.templateRootPath} + } + partialRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Partials/Page/ + 1 = {$page.fluidtemplate.partialRootPath} + } + layoutRootPaths { + 0 = EXT:bootstrap_package/Resources/Private/Layouts/Page/ + 1 = {$page.fluidtemplate.layoutRootPath} + } + } + + + + +Deprecated fallbacks +==================== + +Fallbacks for deprecated backendlayout keys have been removed, +use the alternatives instead. + +**Removed Templates** + +.. code-block:: bash + + bootstrap_package__default_subnavigation + bootstrap_package__default_subnavigation_2_columns + +**Alternatives Templates** + +.. code-block:: bash + + bootstrap_package__default_subnavigation_right + bootstrap_package__default_subnavigation_right_2_columns + + + + +Support for EXT:THEMES removed +============================== + +Through lack of resources we removed the support for ext:themes. +It is not planned to support ext:themes in the future again. diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-14.rst b/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-14.rst new file mode 100644 index 0000000..8f4e693 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/AdministratorManual/Migration/6-2-14.rst @@ -0,0 +1,94 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../../Includes.txt + + +.. _migration_6.2.14: + +============================= +Upgrade from 6.2.13 to 6.2.14 +============================= + +This document will only cover **breaking changes**, that could happen while +overriding the Bootstrap Package. + + + + +Backend Layout Keys +=================== + +Backend Layout configurations via PageTS have native support in TYPO3 +Versions >= 7.4. To make it more easy to upgrade new installations the prefix +has been changed in the Bootstrap Package to match the new default that´s +available in TYPO3 7.4 and newer versions. + +The Prefix for Backend Layouts has been changed from "bootstrap_package" to +"pagets". If you have been referring to these values before you need to adapt +the new prefix for your own layouts in your TypoScript Configuration. + +Please adapt to the new prefix and use the UpdateScript inside the +Bootstrap Package extension from the extension manager. This will update all +pages in the database and change the prefix from "bootstrap_package" to "pagets". + +Note: +The update script checks if an update is needed. +If there is nothing to do the icon for the Update script will not be shown. + +The new Provider in the TYPO3 Core is a port from the Bootstrap Package. +That means that there is no need to do any further changes. The configuration +stays exactly the same. + +Before +------ + +**Markup** + +.. code-block:: typoscript + + page = PAGE + page { + 10 = FLUIDTEMPLATE + 10 { + templateName = TEXT + templateName.stdWrap.cObject = CASE + templateName.stdWrap.cObject { + ... + + bootstrap_package__default_clean = TEXT + bootstrap_package__default_clean.value = DefaultClean + + ... + } + } + } + + + + +After +------ + +**Markup** + +.. code-block:: typoscript + + page = PAGE + page { + 10 = FLUIDTEMPLATE + 10 { + templateName = TEXT + templateName.stdWrap.cObject = CASE + templateName.stdWrap.cObject { + ... + + pagets__default_clean = TEXT + pagets__default_clean.value = DefaultClean + + ... + } + } + } diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Extension/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Extension/Index.rst new file mode 100644 index 0000000..179dc84 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Extension/Index.rst @@ -0,0 +1,20 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../../Includes.txt + + +======================= +Extension Configuration +======================= + +Use the extension manager to adjust the Bootstrap Package to your needs. + + +PageTsConfig +============ + +The Bootstrap Package has a lot of PageTsConfig defaults. +In some cases it can be useful to deactivate some of them if you do not need them. diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/ImageRendering/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/ImageRendering/Index.rst new file mode 100644 index 0000000..a0031ef --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/ImageRendering/Index.rst @@ -0,0 +1,291 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../../Includes.txt + + +=============== +Image Rendering +=============== + +Bootstrap Package comes with a very flexible responsive image rendering and +supports multiple variants for various device sizes. Each variant defines the +**break point**, **width** and the optional **sizes** for high resolution image +support. + + + +Image Variants +============== + +Image variants are used to represent the breakpoints of the design. These +variants have to be defined according the definitions in the style sheet. +Bootstrap Package defines these variants by default: + +.. code-block:: typoscript + + lib.contentElement.settings.responsiveimages.variants { + default { + breakpoint = 1200 + width = 1100 + } + large { + breakpoint = 992 + width = 920 + } + medium { + breakpoint = 768 + width = 680 + } + small { + breakpoint = 576 + width = 500 + } + extrasmall { + breakpoint = unset + width = 374 + } + } + + +The **breakpoint** defines the minimal device width where the **width** gets +applied. Having a device with a width of 1200 pixels or more uses an image width +of 1100 pixels, devices of 992 up to 1199 pixels width use an image width of +920 pixels and so on. + + +For each of these variants the multiplier of size **1x** is set to 1, see next +section for more about the high-resolution image support: + +* default + + * breakpoint + * width + * sizes + + * 1x + + * multiplier: 1 + + +Example of changing the default configuration for the default variant. + +.. code-block:: typoscript + + lib.contentElement.settings.responsiveimages.variants { + default { + breakpoint = 1200 + width = 1100 + } + + +High Resolution Images +---------------------- + +There is a key called sizes in every variant that should be rendered. This +dataset consists of several entries, each with a default key for a normal +rendering (1x). This key will be added automatically, and it is always available. +It is not possible to store sizes smaller than 1. Each size contains a +multiplier, which is multiplied by the base size. + +Example calculations: + +Base width: 1000px + +* Minimum Device Pixel Ratio = 1 + + * Multiplier = 1 + * Result: 1000px + +* Minimum Device Pixel Ratio = 1.5 + + * Multiplier = 1.25 + * Result: 1250px + +* Minimum Device Pixel Ratio = 2 + + * Multiplier = 1.5 + * Result: 1500px + + +Example configuration to enable high-resolution support for the default variant +for devices with a minimum device pixel ratio from 1.5 and 2. + +.. code-block:: typoscript + + lib.contentElement.settings.responsiveimages.variants { + default { + sizes { + 1\.5x { + multiplier = 1.5 + } + 2x { + multiplier = 2 + } + } + } + } + +The data for image rendering is now extended with a sub-set for high-resolution +variants. If you did not overwrite the default templates, it will just work as +soon as you add the configuration. If you have overwritten the default +templates, it will still work as before, but you need to add the new support for +high-resolution images yourself. + +Please check the new updated templates and adjust your code if you want this +support. + + +Configuration by Variant +------------------------ + +For each **variant** the following configuration options are possible: + +* breakpoint +* width +* aspectRatio +* sizes + + +Configuration by Backend Layout +------------------------------- + +For each **backend layout** the following configuration options are possible +for each defined **column** and **variant**: + +* multiplier +* gutters +* corrections + + +Example configuration for backend layouts. + +.. code-block:: typoscript + + lib.contentElement.settings.responsiveimages.backendlayout { + my_layout { # this is the BE layout + 0 { # this is the column to be modified + multiplier { + default = 0.75 + large = 0.75 + } + gutters { + default = 40 + large = 40 + } + corrections { + default = 25 + large = 25 + } + } + } + } + + +Configuration by Content Element +-------------------------------- + +For each **content element** the following configuration options are possible +for each defined **variant** or **specific property**: + +* multiplier +* gutters +* corrections + + +Example configuration for content elements. + +.. code-block:: typoscript + + lib.contentElement.settings.responsiveimages.contentelements { + my_content_element { # this is the content element + my_custom_property { # this is a content element specific property, depends on the implementation and is optional + multiplier { + default = 0.5 + large = 0.5 + medium = 0.5 + } + gutters { + default = 24 + large = 24 + medium = 24 + } + corrections { + default = 25 + large = 25 + medium = 25 + small = 50 + extrasmall = 50 + } + } + } + } + + +Configuration options explained +------------------------------- + +Options for variants: + ++---------------+-----------+-------------------------------------------------+ +| Property | Data Type | Description | ++===============+===========+=================================================+ +| breakpoint | integer | Defines the minimal width in pixels of the | +| | | device | ++---------------+-----------+-------------------------------------------------+ +| width | integer | Defines the effective width in pixels for | +| | | images for this variant | ++---------------+-----------+-------------------------------------------------+ +| aspectRatio | float | Optional, defines the default aspect ratio | +| | | which will override all previously defined | +| | | ratios on image level | ++---------------+-----------+-------------------------------------------------+ +| sizes | array | Optional, defines the available high resolution | +| | | image multiplier for a minimal device pixel | +| | | ratio per variant | ++---------------+-----------+-------------------------------------------------+ + + +Options for backend layouts and content elements: + ++---------------+-----------+-------------------------------------------------+ +| Property | Data Type | Description | ++===============+===========+=================================================+ +| multiplier | integer | The width is multiplied with this value | ++---------------+-----------+-------------------------------------------------+ +| gutters | integer | This value is added to the width before | +| | | applying the multiplier and substracted | +| | | afterwards | ++---------------+-----------+-------------------------------------------------+ +| corrections | integer | This value is added as last step to the width | +| | | after all other calculations | ++---------------+-----------+-------------------------------------------------+ + + +The options **gutters** and **corrections** are needed if you want to be pixel +perfect. Means if you have a 1 pixel outline for example and want this to be +subtracted from the width you can do this kind of corrections late in the +calculation process. + +* Example `Accordion `__: + Here a correction is added to remove the inner padding of the container. + +* Example `Card Group `__: + The border is substracted here. + + + +Crop Variants +============= + +The Bootstrap Package predefines some cropping variants which can easily be changed +or extended by your sitepackage. + +The following crop variants are defined by default: + +* 16:9, for a fixed ratio +* 4:3, for a fixed ratio +* 1:1, for a fixed ratio +* NaN, for a free ration diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Index.rst new file mode 100644 index 0000000..4bb1c58 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/Index.rst @@ -0,0 +1,20 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../Includes.txt + + +============================== +Configuration +============================== + +.. toctree:: + :maxdepth: 5 + :titlesonly: + :glob: + + Extension/Index + ImageRendering/Index + TypoScript/Index \ No newline at end of file diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/TypoScript/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/TypoScript/Index.rst new file mode 100644 index 0000000..651a7d4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Configuration/TypoScript/Index.rst @@ -0,0 +1,240 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../../Includes.txt + + +========== +TypoScript +========== +Bootstrap Package was built to be as adjustable as possible, so nothing is fixed and everything can be overridden with TypoScript constants. +The constants are grouped in basic and advanced settings. Use the **TYPO3 Constant Editor** in the backend to modify the values. + + +Bootstrap Package: Basic Constants +================================== +The basic settings will provide easy to use and understandable options for that are used mainly for styling and appearance. + + +page.logo +--------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| file | string | EXT:bootstrap_package/Resources/Public/Images/BootstrapPackage.png | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| height | integer | 60 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| width | integer | 210 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| alt | string | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + +**Example:** + +.. code-block:: typoscript + + page { + logo { + file = fileadmin/Theme/Logo.png + height = 50 + width = 150 + alt = + } + } + + +page.meta +--------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| description | string | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| author | string | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| keywords | string | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.theme +---------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| navigation.style | options | **default** | inverse | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| navigation.type | options | **0** | top | bottom | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| breadcrumb | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| breadcrumbEnableLevel | integer+ | **2** | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.theme.copyright +-------------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| enable | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| text | string | Built on a Windows 8.1 Surface Pro. Running with TYPO3. | +| | | Made with <3 by Benjamin Kott | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.theme.news +--------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| list.header_position | options | **left** | center | right | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| list.header_layout | options | 1 | **2** | 3 | 4 | 5 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| list.imageorient | options | 0 | 1 | 2 | 8 | 9 | 10 | 17 | 18 | **25** | 26 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| list.imagecols | options | **1** | 2 | 3 | 4 | 5 | 6 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| list.maxW | integer | 1140 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| list.maxWInText | integer+ | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| pagination.itemsperpage | integer | 5 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.theme.language +------------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| enable | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| languageValue | string | **auto** | 0,1,2 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +Bootstrap Package: Advanced Constants +===================================== +The advanced settings should be used only if you really know what you are doing. + + +page.fluidtemplate +------------------ + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| layoutRootPath | string | EXT:bootstrap_package/Resources/Private/Layouts/Page/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| partialRootPath | string | EXT:bootstrap_package/Resources/Private/Partials/Page/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| templateRootPath | string | EXT:bootstrap_package/Resources/Private/Templates/Page/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.includePath +---------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| css | string | EXT:bootstrap_package/Resources/Public/Css/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| icons | string | EXT:bootstrap_package/Resources/Public/Icons/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| javascript | string | EXT:bootstrap_package/Resources/Public/JavaScript/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.meta +--------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| viewport | string | width=device-width, initial-scale=1 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| robots | string | index,follow | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| apple-mobile-web-app-capable | string | no | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| compatible | string | IE=edge,chrome=1 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| google | string | notranslate | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +page.tracking.google +-------------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| trackingID | string | | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| anonymizeIp | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +config +------ + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| no_cache | boolean | 1 | **0** | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| removeDefaultJS | options | **0** | 1 | external | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| compressJs | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| compressCss | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| concatenateJs | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| concatenateCss | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| admPanel | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| prefixLocalAnchors | options | EMPTY | **all** | cached | output | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| headerComment | string | Based on the TYPO3 Bootstrap Package | +| | | by Benjamin Kott - http://www.bk2k.info | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +plugin.bootstrap_package.settings +--------------------------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| overrideParserVariables | boolean | **1** | 0 | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| cssSourceMapping | boolean | 1 | **0** | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ + + +plugin.bootstrap_package_contentelements.view +--------------------------------------------- + ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| Property | Data Type | | ++===================================+===============+=======================================================================+ +| layoutRootPath | string | EXT:bootstrap_package/Resources/Private/Layouts/ContentElements/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| partialRootPath | string | EXT:bootstrap_package/Resources/Private/Partials/ContentElements/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ +| templateRootPath | string | EXT:bootstrap_package/Resources/Private/Templates/ContentElements/ | ++-----------------------------------+---------------+-----------------------------------------------------------------------+ diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Desktop.jpg b/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Desktop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77ddecc1f7f25de64d880e215c0a6016416933be GIT binary patch literal 133579 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

amfH`PNn>%Q7{kH~ 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

om0jj!tU2Cg9U|NFe6FM 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 RtT<-o>tOu9_>$Y{{Rf;8r&0g_ literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Mobile.jpg b/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Mobile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccb5fe8aa54b8c85180f0b489c044a1b68d6a6d4 GIT binary patch literal 57284 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 VNN@Fqz)SuIcFv!sD71(9{|B__N<9Do literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Tablet.jpg b/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/Tablet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf2c10b1cd0a1b9f8cc781de877a0e5fab33cb62 GIT binary patch literal 92166 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 Iz;6Hl05hK`W&i*H literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/typo3-frontend.png b/public/typo3conf/ext/bootstrap_package/Documentation/Images/Screens/typo3-frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..069e043ab8b3b394aafce4d3b1ca51d1271c85c8 GIT binary patch literal 98027 zcmdqIc{EjD{6D?v2pZ}isU+1i|&uhP5@AvEd-g~XR_8ki|115StdH?{E zk)f^?0RJA*g%}zDz>|sJ%K*TK7UyjA!2iJ@2m%0{IB`NkLV|;XgNccWm6cUjSC>kq zva+%o85!y8>*Miw4Gj%lU0pRbwG$^!=;-LEtE($1DV;la&fnkP*Vk8BSy@0p0Efd# zNl66+1bBOUdw6(wdU^&01(}_Rqobph zm6e^Hos*N3jg1XEJG-l^D-6RfE-t~r!5dWS`uh43l}e?~^!N8usk>C_#;bqtOS@ER z*3iZbmHP1E!>OsM&s3^G_Q#!_osSO;vkdebr>PsmSq6q~1_oIN`}>B5jl-MN`T2S3 z=li2$qtwme#pYXETU(Ur#*|MKD)m!QQ4#fbU0q!rl{&IiA82^1`FEZ7+gk>Ui;GcF z$eTBBTnr6o|5D4#%eB%!PQTIb?d=UUFi1#<_o@3uCBF!6T6(RkJDluoXb?)>`Q2n} zOkHVw_?0q7rBeTnQa1)kBvOi|#@^brL1N!aKXuA-fB!Ni=|r-YR=^o;hZ-`Ky3qda zjzRk`s(13oi!qhyY3bzy^MuTy&MoTZ+{f3WYlG>|*9;9@%g1yH>AN42Zd@>=?!2RX z%S}#Besv?TboB7u_|n&1YSuNQnSrX$^VggDajHYKk5qx$LOsap534XS3~tJIK-Kbr4Hw5?@3>KHUmhrgO!pJ?;+s>?FS zA}{|Xyq^A)dRisvql$`mVDZoiuUgljq&gS9I2XOfG{4ZSFWT0nMh<>ozkT&fZyJ7E zH2sBCni!nyQ+KEQts$X)tMm3)ne*+dwzF@|KNR_zoH;r2#OQJ3;JKoajL^oX!PWsG zjiI5TmOe!{)K3q89DXw}Zmp}M^NO68mp57)^D!f=A@p8-X@Y-LmeU2Iw%si+T@O!( zM;CQZN2XL-TI9qV`Bu2!ed_8xQV|sH8vV-GDaEO{GN!8d+LL?NqE{Fy4FCYFfmUYL zfR+o(a#Tn{UiKcLb2h&(v`e=WKw-&7y4p4&qf2d3{|W^uJbcRY6#hTd%>N4`{3YZ6 z8`evG#b#ssKekv6HP-)d{t&%U|6>$eTQ?SF)IS{L!1bv1{|B6r7@B|m0^q3M^ez79 zI9&gK4Np_{cxM!jzC-t-_9(-pgm|@@a?OfzXFG*kRMn#-AzJpdhkBgfDXm!+`=xbf z^}c)mm)!qHBUOjlbGp6xaR>p%k3Mf0yQbY}0rjej?4n0ksVoN|r1sS+X?%NsQIiH) z)rc#5ZM5HA)Wqy~SoZqu_+tfDZ4{d>>pBhF%J8EI&(X3qH5#N^uHEF^smLwcPtP>W z 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

Pv<1{%!4=h5ZaE1)MkuKD&+;C#Rh;MMkj7$G@^ zF#9s@0Dv8B>14XBH@=_sq0dUDqK%k7Ki}U|CmcMKlRTfmQt`R(&~u&Z*r9=ZhO7FU z{XpOxa|y5HLE0$!+!LLmq`@hK9K+|@8Joy@*=Qf~X9J3Mz~t1&8+IE3Z-DSX@FDjS z0*v2O7k~p>!&=-D7#7Eo1H8mxq+BtlpJ$8Smiae}VjxDXE;R;7d}Ne~8-VZ!D4cIk z8Wb0gU>!zO6}vrZtYanhmR~cmBx%LEwgvrRkvl4QKZ2;b|A-9IKa0T&-aS`ghvP$C zXT)ZN21yFKE5_{4NQq1~p7^QGEdl=(*JN7`Et>f8!lz;il6!c;j^+9g5)~I2)e9$4 z^G`mDWqOvM6+pza)9mnH#@FliOgnW-{7(DH7GVv+Ye*cf6z1vrbO{nyphp@pR#PI5 zDMbH{XE^?$#)R5F1hp;oc&%=-<9-S+FADsvLD|P;u%q?IE=wM0vf@4@7sLj(oNbxE!u{E;M}hI z20ialb^qPhTVHLoIfAkT*39|qSuJm_PWE*xVn z-Cuxpul+E(si!+HeAPg)DdGb7Zm-E55?`?ea%Wd_dwnP6Xmv;$C4+@s&jK>S*a#$b z4-bZmhCq)5Iv(=)k{aZgn znFX%tlm)2%6?R<42HCRmk89B36dzgmJ-MWwbEo~{FmRKc7V7S(U_k?74Q~Pa->}AK zIZ*f>Gg=sVj7YvAY%8(3DDjgY-XF)7n`l#de*_{2q{8xVf>O`^s}{dsLx(aqF4_YN zo8#D`#rKzjT-OxMi0e!^m_qoAD%ZKh!xjap?$D)&k&%v&I78jK9uS4j04&%K-!9F~ za+5r)mj~ytD>0{1+$E3szDW9T$X<%wD2{ClJA412Ppk^u|32_a2*(u!_kuV0qCND} z5I_8y5<^)7#BBa(1b9*6IX|}U(NrYYsPqw2-1gcf;6k1l z{DcZ)wQIV5iydcr27eVOoLkqwB(jT-4QsU2v)sA%>S!=_8wTb-b=1nl3)movSKN1T zJyby#-;*?q-$^|p?tLd^Hqwyo^zv8M__uX{d_iAAae*o5M$NBZpaZ-`@i2hb(|EVUkpq#pfb$j~jmRfL1cmu2 zF{lOuU?=+p8)d=OQ#W?BN@MHzn#=HI`agSv&qNUaQQ=$!>g2K&-s_{)w~WSeKu{oI z{o|zIO+*znyYel{`iZWD0>3@IR)@$49SN8eewvg>mHi5r*1LEzjLWi}-~rf73Ed6` z1En7ijw7gwsJ--_cT(o5694Zl8R!r}4Te&djYb)zwfV+VK@Bvj3I#NU-kHE3=$2}- zD-;J&+mKt|nEsw#ej|^^g3K;O+4@E9aJQq{-MyQjr2d5y*;g^-RDo+fyPvdE@!iAR<7;~mgDP6Z_L@4JG2v^_Axm&?&JBupWS?tKWiK2)6nq8@ z1xQ(o!2?LqU@s_>W=4XekgW-jVW+{MGR5F+nkR@M$>lhhA`1Aj@JrR|1_Lwto~o;u ztFL@vGR4V9^`?bes>WUoz4p(<4b~mRj9UyH~97 zp3fylf`w2;ZLc7EcKwvYLOhs@`1nVF=lJyZ&VNG7bKjazHXMBBCuhV0h;iI4&mWt< zX&`YxgBId=Dqh5E_Q|Ij#q7?^bm$|`@+lmTXxit3v@T(qyhEMh=F8o1XRk9#Yx}bZ z@<#mmWNRpsJp<7%5j-&JGk>`$?L-^6BZ_ETX(DetU#Rok7rYO9A9tw840W@>8FUz2 z=^HH1>-axB2Udzqn0JSzXp>epHX?Ap2~t?3bie|v-(7NQLc@$M6D3lzZ1_rUs2x1( z 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 MV>Q_dX|sU;1DQPwc>n+a literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Includes.txt b/public/typo3conf/ext/bootstrap_package/Documentation/Includes.txt new file mode 100644 index 0000000..8ef89a7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Includes.txt @@ -0,0 +1,21 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. This is 'Includes.txt'. It is included at the very top of each and + every ReST source file in this documentation project (= manual). + + +.. ================================================== +.. DEFINE SOME TEXT ROLES +.. -------------------------------------------------- + +.. role:: typoscript(code) + +.. role:: ts(typoscript) + :class: typoscript + +.. role:: php(code) + +.. highlight:: php diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Index.rst new file mode 100644 index 0000000..d4da518 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Index.rst @@ -0,0 +1,61 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: Includes.txt + + +.. _start: + +============================================================= +Bootstrap Package +============================================================= + +.. only:: html + + :Classification: + bootstrap_package + + :Version: + |release| + + :Language: + en + + :Description: + Bootstrap Package delivers a full configured frontend theme for TYPO3, based on the Bootstrap CSS Framework. + + :Keywords: + Theme, Bootstrap + + :Copyright: + 2014 + + :Author: + Benjamin Kott + + :Email: + info@bk2k.info + + :License: + This document is published under the Open Content License + available from http://www.opencontent.org/opl.shtml + + :Rendered: + |today| + + The content of this document is related to TYPO3, + a GNU/GPL CMS/Framework available from `www.typo3.org `_. + + + **Table of Contents** + +.. toctree:: + :maxdepth: 5 + :titlesonly: + :glob: + + Introduction/Index + Configuration/Index + AdministratorManual/Index \ No newline at end of file diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Introduction/Index.rst b/public/typo3conf/ext/bootstrap_package/Documentation/Introduction/Index.rst new file mode 100644 index 0000000..0767699 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Introduction/Index.rst @@ -0,0 +1,58 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. include:: ../Includes.txt + + +============================== +Introduction +============================== + +Bootstrap Package is a theme for TYPO3 CMS based on the `Bootstrap CSS Framework `_ Version 3.3.7 + +Features +============================== + +* Full configured TypoScript Setup provided as Static Template +* Completely adjustable via TypoScript Constants +* TYPO3 CMS rendering is adjusted to the needs of `Bootstrap CSS Framework `_ + + * Layouts for all Content Elements + * Section Frames + +* Bootstrap specific Content Elements + + * Accordion + * External Media + * Carousel + * List Group + * Tab + * Text and Icon + +* Individual Page Layouts +* Built-in Less Parser + + * All Variables are configurable via Constant Editor + * Less support in page.includeCSS property + +* Backend Layouts via PageTsConfig + + +Screenshots +============================== + +.. figure:: ../Images/Screens/Desktop.jpg + :width: 500px + :alt: Desktop + +.. figure:: ../Images/Screens/Tablet.jpg + :width: 400px + :alt: Tablet + +.. figure:: ../Images/Screens/Mobile.jpg + :width: 180px + :alt: Mobile + + diff --git a/public/typo3conf/ext/bootstrap_package/Documentation/Settings.cfg b/public/typo3conf/ext/bootstrap_package/Documentation/Settings.cfg new file mode 100644 index 0000000..2763840 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Documentation/Settings.cfg @@ -0,0 +1,18 @@ +# coding: utf-8 +[general] +project = Bootstrap Package +version = 12.0.10 +release = 12.0.10 +copyright = since 2014 by Benjamin Kott + +[html_theme_options] +github_branch = BP_12-0 +github_repository = benjaminkott/bootstrap_package +project_contact = info@bk2k.info +project_discussions = https://typo3.slack.com/messages/bootstrap-package +project_home = https://www.bootstrap-package.com +project_issues = https://github.com/benjaminkott/bootstrap_package/issues +project_repository = https://github.com/benjaminkott/bootstrap_package + +[extlinks] +issue = https://github.com/benjaminkott/bootstrap_package/issues/%s | Issue # diff --git a/public/typo3conf/ext/bootstrap_package/LICENSE b/public/typo3conf/ext/bootstrap_package/LICENSE new file mode 100644 index 0000000..6788502 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Benjamin Kott, http://www.bk2k.info + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/public/typo3conf/ext/bootstrap_package/README.rst b/public/typo3conf/ext/bootstrap_package/README.rst new file mode 100644 index 0000000..ff7845b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/README.rst @@ -0,0 +1,157 @@ +================================================== +Bootstrap Package +================================================== + +.. image:: Documentation/Images/Screens/typo3-frontend.png?raw=true + :alt: Bootstrap Package + +Bootstrap Package delivers a fully configured frontend +theme for TYPO3, based on the Bootstrap CSS Framework. + +The goal of this package is also to give an advanced example of how modern templating +in TYPO3 CMS can be handled nicely without depending on third party extensions. +Bootstrap Package comes with a fully configurable Frontend via TypoScript. This +includes the TypoScript Constant Editor. + +Minimal Dependencies +==================== + +* TYPO3 CMS 10.4 or 11.5 for Bootstrap Package 12.x +* TYPO3 CMS 9.5 or 10.4 for Bootstrap Package 11.x +* TYPO3 CMS 8.7 or 9.5 for Bootstrap Package 10.x, 9.x and 8.x +* TYPO3 CMS 7.6 for Bootstrap Package 7.x + +Quick Install Guide +=================== + +Disable default content rendering extensions +-------------------------------------------- + +You do not need to have Fluid Styled Content or CSS Styled Content installed, we +have currently marked both extensions as conflicting to avoid misconfiguration. + +If you really know what you are doing, it is safe to use core content rendering +definitions alongside with the Bootstrap Package. But please be aware that we are +adding more content elements that are not supported from those extensions. + +* css_styled_content +* fluid_styled_content + +Make sure you have a root page +------------------------------ + +Create a new page or edit an existing one and set this as *root page*. +You can find this option in the page-edit-mode filed under behavior/miscellaneous. + +Create a new Template on this Page +---------------------------------- + +General +~~~~~~~ + +* Template Title: You can name this as you like: Example "Bootstrap Package" +* Website Title: This will be your website title visible in the frontend + +Options +~~~~~~~ + +* Clear Constants and Setup by checking the boxes +* Clear the predefined TypoScript setup from the textbox if any +* Use this Template as Root-Level Template by checking the box + +Includes +~~~~~~~~ + +Include static (from extensions) + +* Bootstrap Package (required) + +Static Template Files from TYPO3 Extensions + +* Include before all static templates if root flag is set + + +Recommended Apache Modules +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* mod_autoindex +* mod_alias +* mod_deflate +* mod_expires +* mod_filter +* mod_mime +* mod_headers +* mod_setenvif +* mod_rewrite + + +Usage +===== + +Documentation +------------- + +* `Wiki `_ +* `Documentation `_ + +Contributing +------------ + +Feel free to fork this project and create a pull request when you're happy +with your changes. We check the source code according to the our Coding Guidelines. +To reformat the code automatically, you can use ``php-cs-fixer`` as follows: + +.. code-block:: + + composer cgl + +DDEV Local +---------- + +The extension comes with a ready to use DDEV Local configuration. Type +``ddev start`` in the extension root folder to start the Docker container. + +``ddev launch`` will open the browser and head to the testing website. You can +use ``ddev launch typo3`` to get directly to the backend. + +Bug reporting +------------- + +Please open an `issue here at github`__ and describe your problem. + +__ https://github.com/benjaminkott/bootstrap_package/issues + +License +------- + +This project is released under the terms of the `MIT license `_. + +Test the Bootstrap Package +========================== + +If you are interested in the Bootstrap Package you can test it in our +`Introduction `_ Demo Setup. + +Contact & Communication +======================= + +Slack +----- + +You can connect directly with us on `Slack `_, the +preferred instant communication platform of TYPO3 CMS developers. If you already have access to the +TYPO3 Slack platform join the #bootstrap-package channel. If you don't have access yet, you can +register `here `_. + +Twitter +------- + +If you have any questions about this project or just want to talk: +Send a tweet `@benjaminkott `_. + +Code Quality +============ + +.. image:: https://github.com/benjaminkott/bootstrap_package/workflows/CI/badge.svg + :alt: Continuous Integration Status + :target: https://github.com/benjaminkott/bootstrap_package/actions?query=workflow%3ACI diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/.htaccess b/public/typo3conf/ext/bootstrap_package/Resources/Private/.htaccess new file mode 100644 index 0000000..93169e4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Deny from all diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Forms/Contact.form.yaml b/public/typo3conf/ext/bootstrap_package/Resources/Private/Forms/Contact.form.yaml new file mode 100644 index 0000000..1ba19c9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Forms/Contact.form.yaml @@ -0,0 +1,111 @@ +type: Form +identifier: contactform +label: Contact Form +prototypeName: standard + +finishers: + - + identifier: EmailToReceiver + options: + subject: '{subject}' + senderAddress: '{email}' + senderName: '{fullname}' + replyToRecipients: + '{email}': '' + format: html + attachUploads: true + - + identifier: Redirect + options: + pageUid: '' + additionalParameters: '' + +renderables: + - + type: Page + identifier: form + label: '' + renderables: + - + properties: + text: '* Mandatory fields' + type: StaticText + identifier: mandatory + label: 'Your personal data' + - + type: GridRow + identifier: gridrow + label: '' + renderables: + - + type: Fieldset + identifier: fieldset-left + label: '' + properties: + gridColumnClassAutoConfiguration: + viewPorts: + xs: { numbersOfColumnsToUse: '12' } + sm: { numbersOfColumnsToUse: '6' } + md: { numbersOfColumnsToUse: '6' } + lg: { numbersOfColumnsToUse: '6' } + renderables: + - + type: Text + identifier: fullname + label: 'Full name and surname' + properties: + fluidAdditionalAttributes: + placeholder: 'Full name and surname' + required: required + validators: + - { identifier: NotEmpty } + - + type: Text + identifier: company + label: 'Company' + properties: + fluidAdditionalAttributes: + placeholder: 'Company' + - + type: Text + identifier: email + label: 'Email' + properties: + fluidAdditionalAttributes: + placeholder: 'Email' + required: required + validators: + - { identifier: NotEmpty } + - { identifier: EmailAddress } + - + type: Fieldset + identifier: fieldset-right + label: '' + properties: + gridColumnClassAutoConfiguration: + viewPorts: + xs: { numbersOfColumnsToUse: '12' } + sm: { numbersOfColumnsToUse: '6' } + md: { numbersOfColumnsToUse: '6' } + lg: { numbersOfColumnsToUse: '6' } + renderables: + - + type: Text + identifier: subject + label: 'Subject' + properties: + fluidAdditionalAttributes: + placeholder: 'Subject' + required: required + validators: + - { identifier: NotEmpty } + - + type: Textarea + identifier: message + label: 'Message' + properties: + fluidAdditionalAttributes: + placeholder: 'Message' + required: required + validators: + - { identifier: NotEmpty } diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/Backend.xlf b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/Backend.xlf new file mode 100644 index 0000000..029ae2e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/Backend.xlf @@ -0,0 +1,1048 @@ + + + +

+ + + + Bootstrap Package + + + + Navigation Icon + + + Thumbnail + + + + Default + + + Simple + + + 2 Columns + + + 2 Columns 25/75 + + + 2 Columns 50/50 + + + 2 Columns, Offset Right + + + 3 Columns + + + Subnavigation Right + + + Subnavigation Right and 2 Columns + + + Subnavigation Left + + + Subnavigation Left and 2 Columns + + + Special Startpage + + + Special Feature + + + + Sub Navigation (NOEDIT) + + + + Left + + + Normal + + + Right + + + Border + + + + Middle: Left + + + Middle: Center + + + Middle: Right + + + + Normal 2 + + + + Before Content + + + After Content + + + + Special 1 + + + Special 2 + + + Special 3 + + + Special 4 + + + Special 5 + + + Special 6 + + + Special 7 + + + Special 8 + + + Special 9 + + + Special 10 + + + + Footer: Left + + + Footer: Center + + + Footer: Right + + + + Cards of subpages + + + Insert menu to display subpages as cards + + + Cards + + + Insert menu to display selected pages as cards + + + + Options + + + Columns + + + Alignment + + + Left + + + Center + + + Right + + + + Thumbnails of subpages + + + Insert menu to display subpages as thumbnail + + + Thumbnails + + + Insert menu to display selected pages as thumbnail + + + + Options + + + Columns + + + Alignment + + + Left + + + Center + + + Right + + + + Interactive + + + Media + + + Data + + + Text + + + Social Media + + + + Gallery + + + Display multiple images in a rich gallery. + + + + CSV + + + Render a table from a CSV file. + + + + Media + + + Any number of youtube and vimeo videos in columns and rows with a caption. + + + + Audio + + + Insert Audio files + + + + Panel + + + Insert Panelelement with simple text + + + + Carousel + + + Insert Carouselelement with different contents (header / text with image / pure HTML) + + + + Carousel Small + + + Insert Carouselelement with different contents (header / text with image / pure HTML) + + + + Carousel Fullscreen + + + Insert Carouselelement with different contents (header / text with image / pure HTML) + + + + Text in Columns + + + Insert Text in Columns + + + + Text with Teaser + + + Insert Text with Teaser + + + + Text and Icon + + + Insert Bootstrap Icon with Text + + + + Accordion + + + Insert several Accordionelement(s) with headline and text + + + + Tab + + + Insert several Tabelement(s) with headline and text + + + + Card Group + + + Insert a element with several content cards + + + Options + + + Columns + + + Alignment + + + Left + + + Center + + + Right + + + + Card + + + Card Group + + + Header + + + Subheader + + + Image + + + Text + + + Link + + + Title + + + Icon + + + Icon Set + + + Icon + + + Color + + + + Icon Group + + + Insert a element with several icons + + + Options + + + Columns + + + Automatic + + + Alignment + + + Left + + + Center + + + Right + + + Icon Position + + + Left: Top + + + Left: Center + + + Right: Top + + + Right: Center + + + Above + + + Below + + + + List Group + + + Insert simple Listgroupelement + + + + External Media + + + Insert external media from YouTube or Vimeo + + + + Text & Media + + + + Quote + + + Insert Quotation + + + + Quote Text + + + Quote Link + + + Quote Source + + + + Social Links + + + Insert a element to display configured social media channels + + + + Timeline + + + Insert a element to display a timeline + + + + Carousel Options + + + Interval in ms + + + Transition + + + Slide + + + Fade + + + Wrap + + + Start the Carousel from the beginning once it has arrived at the end. + + + Show Navigation Title + + + Show the navigation title of the records instead of the bubbles. + + + + Carousel Item + + + Carousel + + + Layout + + + Link + + + Header + + + Header Layout + + + Header Class + + + Header Position + + + Default + + + Left + + + Center + + + Right + + + Subheader + + + Subheader Layout + + + Subheader Class + + + Navigation Title + + + Button Text + + + Text + + + Text Color + + + Image + + + Background Color + + + Background Image + + + Background Image Options + + + + Header + + + Text + + + Call to Action + + + Image + + + Text and Image + + + Background Image + + + HTML + + + + Accordion Options + + + Default Element + + + + Accordion Item + + + Accordion + + + Header + + + Text + + + Media + + + Media position + + + Columns + + + Enlarge on Click + + + Orientation + + + Left + + + Top + + + Right + + + Bottom + + + + Tab Options + + + Default Tab + + + + Tab Item + + + Tab + + + Set as default + + + Header + + + Text + + + Media + + + Media position + + + Columns + + + Enlarge on Click + + + Orientation + + + Left + + + Top + + + Right + + + Bottom + + + + Timeline Options + + + Sorting + + + Ascending + + + Descending + + + + Timeline Item + + + Timeline + + + Date + + + Header + + + Text + + + Icon Set + + + Icon + + + Icon File + + + Image + + + + Icon Group Item + + + Icon Group + + + Header + + + Subheader + + + Text + + + Link + + + Icon Set + + + Icon + + + Icon + + + + Panel Class + + + + External Media + + + External Media Source + + + Ratio + + + + Aspect Ratio + + + Items per page + + + + Icon + + + Icon Set + + + Icon File + + + Position + + + Type + + + Size + + + Background + + + Color + + + Background + + + + Frame Layout + + + + Background Color + + + Background Image + + + Background Image Options + + + + Teaser + + + File Folder + + + + Beside Text, Centered Right + + + Beside Text, Centered Left + + + + Parallax + + + Enable Parallax effect + + + Fade + + + Enable Fade effect + + + Filter + + + None + + + Blur + + + Grayscale + + + Sepia + + + + Default + + + None + + + Left + + + Top + + + Right + + + Bottom + + + Default + + + Square + + + Circle + + + Extra Small + + + Small + + + Medium + + + Extra Large + + + Large + + + Awesome + + + Primary + + + Secondary + + + Tertiary + + + Quaternary + + + Success + + + Info + + + Warning + + + Danger + + + Lighter + + + Light + + + Dark + + + Darker + + + + 16:9 + + + 4:3 + + + 1:1 + + + Free + + + + Default + + + Basic + + + Striped rows + + + Bordered table + + + Hover rows + + + Condensed table + + + + Default + + + Display Icons + + + Display Icons and Preview Images + + + + Media elements + + + + Background + + + Icon + + + + Colorpicker + + + + Advanced + + + Settings + + + + Alignment + + + + Read More Label + + + 1 Column + + + 2 Columns 50%/50% + + + 2 Columns 25%/75% + + + 2 Columns 75%/25% + + + 3 Columns + + + 4 Columns + + + Middle + + + Left + + + Right + + + Middle Left + + + Middle Right + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/ExtConfTemplate.xlf b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/ExtConfTemplate.xlf new file mode 100644 index 0000000..e048354 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/ExtConfTemplate.xlf @@ -0,0 +1,35 @@ + + + +
+ + + + Disable RTE: If this option is set the config for RTE will not load automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/RTE.tsconfig" in your PageTsConfig to load the config manually. + + + Disable TCEFORM: If this option is set the config for TCEFORM will not load automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/TCEFORM.tsconfig" in your PageTsConfig to load the config manually. + + + Disable TCEMAIN: If this option is set the config for TCEMAIN will not load automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/TCEMAIN.tsconfig" in your PageTsConfig to load the config manually. + + + Disable TCA Defaults: If this option is set the config for TCAdefaults will not load automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/TCADefaults.tsconfig" in your PageTsConfig to load the config manually. + + + Disable BackendLayouts: If this option is set the included backend layouts will not load automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig" in your PageTsConfig to load the config manually. + + + Disable Content Element PageTS Configuration: If this option is set, the included configuration for content elements will not be loaded automatically. Include "FILE:EXT:bootstrap_package/Configuration/TsConfig/Page/ContentElement/All.tsconfig" in your PageTsConfig to load the config manually. + + + + Disable Processing of CSS files: WARNING: If this option is set there no more automatic processing of Scss files in the frontend. You will need to provide CSS files instead or handle the processing of the Scss files yourself. + + + Disable local Google-Font cache: If this option is set, Google Fonts will not be cached on the server. + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/locallang.xlf b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/locallang.xlf new file mode 100644 index 0000000..245233d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Language/locallang.xlf @@ -0,0 +1,157 @@ + + + +
+ + + + Skip to main content + + + + Skip navigation block + + + + Scroll to top + + + + Toggle navigation + + + + To top + + + + You are here: + + + Breadcrumb + + + + Previous + + + + Next + + + + Read more + + + + The external media source %s is not supported. Please provide a valid YouTube or Vimeo URL. + + + + Browse + + + Select File + + + + Submit + + + Your personal data + + + * Mandatory fields + + + Full name and surname + + + Full name and surname + + + Company + + + Company + + + Email + + + Email + + + Subject + + + Subject + + + Message + + + Message + + + Summary + + + + Cookies used on the website! + + + This website uses cookies to ensure you get the best experience on our website. + + + Got it! + + + Allow cookies + + + Decline + + + Learn more + + + + Google Analytics Status + + + Here you can object to the anonymous collection by Google Analytics on this website for your browser by using an "Opt-Out-Cookie". Please note that if you delete the exclusion cookie or use a different computer or web browser, you will need to re-set the exclusion. + + + Enable Google Analytics (Opt-In) + + + Deactivate Google Analytics (Opt-Out) + + + + Page navigation + + + Next + + + Previous + + + Current page, page %s + + + Go to page %s + + + Go to next page + + + Go to previous page + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/ContentElements/Default.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/ContentElements/Default.html new file mode 100644 index 0000000..630ecdf --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/ContentElements/Default.html @@ -0,0 +1,91 @@ + + + + + {settings.responsiveimages.backendlayout.{backendlayout}} + {backendlayoutConfig.{data.colPos}} + + + + + + + {settings.responsiveimages.container.{context.CType}} + {containerConfig.{data.colPos}} + + + + + + + frame-size-default + frame-{data.frame_class} + frame-type-{data.CType} + frame-layout-{data.frame_layout} + frame-background-{f:if(condition: data.background_color_class, else: 'none', then: data.background_color_class)} + frame-space-before-{f:if(condition: data.space_before_class, else: 'none', then: data.space_before_class)} + frame-space-after-{f:if(condition: data.space_after_class, else: 'none', then: data.space_after_class)} + + + + + {f:if(condition: backgroundImage.0, then: 'frame-has-backgroundimage', else: 'frame-no-backgroundimage')} +
+
+
+ +
+
+ + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+
+ +
+ + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/Page/Default.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/Page/Default.html new file mode 100644 index 0000000..6882765 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Layouts/Page/Default.html @@ -0,0 +1,32 @@ + + +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Control.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Control.html new file mode 100644 index 0000000..cd505d2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Control.html @@ -0,0 +1,12 @@ + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Indicator.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Indicator.html new file mode 100644 index 0000000..be759bc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Control/Indicator.html @@ -0,0 +1,16 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/General/BackgroundImage.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/General/BackgroundImage.html new file mode 100644 index 0000000..048465a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/General/BackgroundImage.html @@ -0,0 +1,41 @@ + + + + + carousel-backgroundimage + {backgroundImageClasses} carousel-backgroundimage-parallax + {backgroundImageClasses} carousel-backgroundimage-fade + {backgroundImageClasses} carousel-backgroundimage-{item.data.background_image_options.filter} + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/BackgroundImage.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/BackgroundImage.html new file mode 100644 index 0000000..718845c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/BackgroundImage.html @@ -0,0 +1,3 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/CallToAction.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/CallToAction.html new file mode 100644 index 0000000..6965335 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/CallToAction.html @@ -0,0 +1,28 @@ + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Header.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Header.html new file mode 100644 index 0000000..5e1fced --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Header.html @@ -0,0 +1,12 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Html.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Html.html new file mode 100644 index 0000000..cf97901 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Html.html @@ -0,0 +1,3 @@ + +{item.data.bodytext->f:format.raw()} + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Image.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Image.html new file mode 100644 index 0000000..1e3417e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Image.html @@ -0,0 +1,11 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Text.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Text.html new file mode 100644 index 0000000..d10208d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/Text.html @@ -0,0 +1,16 @@ + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/TextAndImage.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/TextAndImage.html new file mode 100644 index 0000000..a3c2cf9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Carousel/Item/TextAndImage.html @@ -0,0 +1,21 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container1Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container1Columns.html new file mode 100644 index 0000000..f70edc9 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container1Columns.html @@ -0,0 +1,7 @@ +
+ + {record.renderedContent} + +
+ + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2Columns.html new file mode 100644 index 0000000..7c19a15 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2Columns.html @@ -0,0 +1,11 @@ +
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsLeft.html new file mode 100644 index 0000000..7c19a15 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsLeft.html @@ -0,0 +1,11 @@ +
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsRight.html new file mode 100644 index 0000000..7c19a15 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container2ColumnsRight.html @@ -0,0 +1,11 @@ +
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container3Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container3Columns.html new file mode 100644 index 0000000..b3352fa --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container3Columns.html @@ -0,0 +1,16 @@ +
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container4Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container4Columns.html new file mode 100644 index 0000000..55017b3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Container/Rendering/Container4Columns.html @@ -0,0 +1,21 @@ +
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+
+ + {record.renderedContent} + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/After/All.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/After/All.html new file mode 100644 index 0000000..38ef933 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/After/All.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered after all other output inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/Before/All.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/Before/All.html new file mode 100644 index 0000000..8413eb5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/DropIn/Before/All.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered before any other output inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Footer/All.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Footer/All.html new file mode 100644 index 0000000..60befc3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Footer/All.html @@ -0,0 +1,7 @@ + + +

+ +

+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Frame/General/BackgroundImage.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Frame/General/BackgroundImage.html new file mode 100644 index 0000000..4afd9df --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Frame/General/BackgroundImage.html @@ -0,0 +1,39 @@ + + + + + frame-backgroundimage + {backgroundImageClasses} frame-backgroundimage-parallax + {backgroundImageClasses} frame-backgroundimage-fade + {backgroundImageClasses} frame-backgroundimage-{data.background_image_options.filter} +
+
+ + + {variant.breakpoint as integer} + {variant.width as integer} + + + + {sizeConfig.multiplier as float} + {sizeWidth * width} + {sizeKey as float} + (min-width: {breakpoint}px) + + + {mediaBreakpoint} + + + (-webkit-min-device-pixel-ratio: {sizeDppx}) and {mediaBreakpoint} + {mediaQuery}, (min-resolution: {sizeDppx}dppx) and {mediaBreakpoint} + + {variantStyle} @media {mediaQuery} { #{backgroundImageIdentifier} { background-image: url('{f:uri.image(image: backgroundImageObject, cropVariant: name, maxWidth: sizeWidth)}'); } } + + + + + +
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/All.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/All.html new file mode 100644 index 0000000..5db2c86 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/All.html @@ -0,0 +1,25 @@ + + + +
+ + + +
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Date.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Date.html new file mode 100644 index 0000000..03bfd6f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Date.html @@ -0,0 +1,7 @@ + + +

+ +

+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Header.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Header.html new file mode 100644 index 0000000..98bb6b8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/Header.html @@ -0,0 +1,49 @@ + + + + +

+ {header} +

+
+ +

+ {header} +

+
+ +

+ {header} +

+
+ +

+ {header} +

+
+ +
+ {header} +
+
+ +
+ {header} +
+
+ + -- do not show header -- + + + + + + +
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/SubHeader.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/SubHeader.html new file mode 100644 index 0000000..4e0c3a2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Header/SubHeader.html @@ -0,0 +1,40 @@ + + + + +

+ {subheader} +

+
+ +

+ {subheader} +

+
+ +

+ {subheader} +

+
+ +
+ {subheader} +
+
+ +
+ {subheader} +
+
+ + + + + +
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Gallery.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Gallery.html new file mode 100644 index 0000000..bc4faa3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Gallery.html @@ -0,0 +1,17 @@ + + + + {data.imagecols as integer} + {settings.gallery.columns.{imagecols}} + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Audio.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Audio.html new file mode 100644 index 0000000..4aab9fa --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Audio.html @@ -0,0 +1,3 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Image.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Image.html new file mode 100644 index 0000000..2888960 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Image.html @@ -0,0 +1,55 @@ + + + + {variant.breakpoint as integer} + {variant.width as integer} + + + + {variant.aspectRatio as float} + {width / aspectRatio} + {height as integer} + + {f:if(condition: breakpoint, then: 'media="(min-width: {breakpoint}px)"')} + + + + {sizeConfig.multiplier as float} + {sizeWidth * width} + + + + {sizeConfig.multiplier as float} + {sizeHeight * height} + {f:uri.image(image: file, cropVariant: name, width: '{sizeWidth}c', height: '{sizeHeight}c')} + + + {f:uri.image(image: file, cropVariant: name, maxWidth: sizeWidth)} + + + {srcset}{sizeUrl} {sizeKey}{f:if(condition: iteration.isLast, else: ',')} + + + f:format.raw()} srcset="{srcset}"> + + + + + + {defaultAspectRatio as float} + {defaultWidth / aspectRatio} + {defaultHeight as integer}c + + + + + + + + + + + + {file.properties.alternative} + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Video.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Video.html new file mode 100644 index 0000000..752b2ff --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Rendering/Video.html @@ -0,0 +1,3 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type.html new file mode 100644 index 0000000..21d94d6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Audio.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Audio.html new file mode 100644 index 0000000..82981dc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Audio.html @@ -0,0 +1,10 @@ + +
+
+ +
+ +
{file.properties.description}
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Image.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Image.html new file mode 100644 index 0000000..080a7fb --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Image.html @@ -0,0 +1,34 @@ + +
+ + + + + + + + + + + + + + + + + + + + +
{file.properties.description}
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Video.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Video.html new file mode 100644 index 0000000..45c9edc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Media/Type/Video.html @@ -0,0 +1,10 @@ + +
+
+ +
+ +
{file.properties.description}
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Menu/SkipNavigation.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Menu/SkipNavigation.html new file mode 100644 index 0000000..1938428 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Menu/SkipNavigation.html @@ -0,0 +1,14 @@ + + + + + + {data.accessibility_bypass_text} + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Table/Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Table/Columns.html new file mode 100644 index 0000000..342c7fd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/ContentElements/Table/Columns.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {cell} + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Form.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Form.html new file mode 100644 index 0000000..eefd098 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Form.html @@ -0,0 +1,146 @@ + + +
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + + +
+
+ +

+ + + + + + + + + + + + +

+
+ + + +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+ +
+ + +
+
+ +
+ +
+ + + + + + +
+
+
+
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Rules.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Rules.html new file mode 100644 index 0000000..9ba7bcd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Rules.html @@ -0,0 +1,11 @@ + + + +
+ + + +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Searchresult.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Searchresult.html new file mode 100644 index 0000000..8232068 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/IndexedSearch/Searchresult.html @@ -0,0 +1,25 @@ +
+
+

+ + {row.result_number} + + {row.title} + {row.rating} +

+ +

{row.item_description}

+
    +
  • {row.size}
  • +
  • @{row.created}
  • +
  • @{row.modified}
  • +
  • {row.path}
  • +
+
+ + + + + +
+
diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainAfter.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainAfter.html new file mode 100644 index 0000000..9f18cb3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainAfter.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered after the main menu, inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainBefore.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainBefore.html new file mode 100644 index 0000000..91bc8d1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Navigation/MainBefore.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered before the main menu, inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageAfter.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageAfter.html new file mode 100644 index 0000000..f1c91a8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageAfter.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered after the page template. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageBefore.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageBefore.html new file mode 100644 index 0000000..aba291e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Page/PageBefore.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered before the page template. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterAfter.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterAfter.html new file mode 100644 index 0000000..60fbd72 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterAfter.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered after the footer, inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterBefore.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterBefore.html new file mode 100644 index 0000000..b051dcd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/DropIn/Structure/FooterBefore.html @@ -0,0 +1,3 @@ + +DropIn Placeholder. Will be rendered before the footer, inside the wrapping container. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Breadcrumb.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Breadcrumb.html new file mode 100644 index 0000000..d61520a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Breadcrumb.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + {item.title} + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Language.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Language.html new file mode 100644 index 0000000..c7a19f2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Language.html @@ -0,0 +1,20 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Main.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Main.html new file mode 100644 index 0000000..28ed0fe --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Main.html @@ -0,0 +1,83 @@ + + +bp-page-header navbar navbar-mainnavigation navbar-{theme.navigation.style} +{headerClass}{f:if(condition: logo.normal, then:' navbar-has-image')} +{headerClass}{f:if(condition: theme.navigation.type, else:' navbar-top', then:' navbar-{theme.navigation.type} navbar-fixed-{theme.navigation.type}')} + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Meta.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Meta.html new file mode 100644 index 0000000..c7c3213 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Meta.html @@ -0,0 +1,13 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Subnavigation.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Subnavigation.html new file mode 100644 index 0000000..41c870a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Navigation/Subnavigation.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/CookieConsent.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/CookieConsent.html new file mode 100644 index 0000000..8843a07 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/CookieConsent.html @@ -0,0 +1,22 @@ + + +
+ + + + + + + + + + + + + + + + +
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/Copyright.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/Copyright.html new file mode 100644 index 0000000..7553601 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/Copyright.html @@ -0,0 +1,3 @@ + +{theme.copyright.text} + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterContent.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterContent.html new file mode 100644 index 0000000..ab18776 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterContent.html @@ -0,0 +1,17 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterMeta.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterMeta.html new file mode 100644 index 0000000..d6d042c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/FooterMeta.html @@ -0,0 +1,36 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/ScrollTop.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/ScrollTop.html new file mode 100644 index 0000000..1daed81 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/ScrollTop.html @@ -0,0 +1,5 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/SocialLinks.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/SocialLinks.html new file mode 100644 index 0000000..c61b31b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Partials/Page/Structure/SocialLinks.html @@ -0,0 +1,18 @@ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Ai/BootstrapPackage.ai b/public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Ai/BootstrapPackage.ai new file mode 100644 index 0000000..6150b8b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Ai/BootstrapPackage.ai @@ -0,0 +1,1153 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[7 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + BootstrapPackage + + + + + Adobe Illustrator CS5.1 + 2014-02-07T14:25:29+02:00 + 2014-02-07T14:25:29+01:00 + 2014-02-07T14:25:29+01:00 + + + + 256 + 72 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9Palq2naZB699OsEf7PL qx8FUbk/LKM+px4o8UzQbcWGeQ1EWwvU/wA1Y1JTTLMv4TXBoP8AgF3/AOGzQaj2iA2xx+J/V+12 +HsY/wAZ+TGrzz75ouSf9M9FT+xCqpT6acvxzVZe2NTP+Kvd+Lc+HZuGPS/e9R8srINAsXllknlm hSaSWVi7FpFDndielaDOw0APgRJJJIB3893nNWR4sgBQBr5MZ/NS8uYrGyt43ZIZ3kMwU05cAvEH 2+I5qPaHLIQjEHY3bsex4AykTzFPM85J6FFW2qalakG2u5oSOnpyMv6jl2PUZIfTIj4tc8MJcwCz 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 + + + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:E7312B4FFB8FE3118266B8F1C5D74CE6 + uuid:73abb17e-1034-4a04-9123-60585208be7a + + uuid:72b1533f-9e90-064f-87a5-4345918e86e3 + xmp.did:FD7F11740720681188C6F0AB0253E170 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:E7312B4FFB8FE3118266B8F1C5D74CE6 + 2014-02-07T14:25:27+01:00 + Adobe Illustrator CS5.1 + / + + + + + + Web + Document + + + 1 + False + False + + 216.000000 + 85.000000 + Pixels + + + + + Share-Regular + Share-Regular + Regular + Open Type + Version 1.000;PS 001.000;hotconv 1.0.38 + False + Share-Regular.otf + + + Share-Bold + Share-Bold + Regular + Open Type + Version 1.000;PS 001.000;hotconv 1.0.38 + False + Share-Bold.otf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Standard-Farbfeldgruppe + 0 + + + + Weiß + RGB + PROCESS + 255 + 255 + 255 + + + Schwarz + RGB + PROCESS + 0 + 0 + 0 + + + RGB Rot + RGB + PROCESS + 255 + 0 + 0 + + + RGB Gelb + RGB + PROCESS + 255 + 255 + 0 + + + RGB Grün + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blau + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grautöne + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Webfarbgruppe + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 14 0 R/TrimBox[0.0 0.0 216.0 85.0]/Type/Page>> endobj 10 0 obj <>stream +H‰T“M‹1 †ïþ:¦‡Qd[þ:n¦a%¤Û ”žzH»…B¶ùÿÐWž�Ý%`ç•dù‘¬ÙŸGÚŸF¡Ãç‘Üarûñ"t½“°ˆ~Xé~}qûG¸ÿÜÝ~ò?…|ˆ{\âÖb�¦�“{uB5Qæ€ýßo÷�^œG{S°Êzƒ_QQ¯…’p.¹RLì5'ºÞœ9nn€##‡°Ç*nÅT(&jK‹¸º¡píêKÜj$�×)o2dŽ Bðj¨\rw«€¶q*Èè•SŒ¥R‹5¿â]ì-ËV *Î2bëÉcd+<®�L%”f9tSkÒ–`3àjÅÕ8“Ä€#·â;JÁ<®ÚÈ1DíÍ2$ ,T–Xz7¯îÙ=½ë­¸b œÙ{4cëmá`�‰+TCïmÖM%Ñø6/0%ÿQi +JkÜB¹hÛô x+œC1�‹B‹¤Z³Ä4ToV óT¯ôǾÐ'÷_€Ó§»þ +endstream endobj 14 0 obj <>stream +8;Wjt_%"16#Qra-/+X+cG_B;!EQP+Vo8+c(KQR@S;PgAh9i>+C@L6:WZ(n25POZXD +hpdl>'@B'%N>\;48G.RqDP)4Z!;7&67f~> +endstream endobj 15 0 obj [/Indexed/DeviceRGB 255 16 0 R] endobj 16 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 7 0 obj <> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 5 0 obj <> endobj 6 0 obj <> endobj 20 0 obj <> endobj 21 0 obj <>stream +H‰L‘_LSWÇïm{ï­—^Úq{™:�nÀf6©ÅìO Ð–±–ÚÑÒîJš¹h´0\_JÉIÁ7¢@„€f †nX¶ØKÝ Alj2³·ÍíwàиK}YÎÃIÎùžïç|¿?’P)’$¹wjŒo;’_ë°ˆöB³½µÓe·/ò�–DÏ©PŽš{÷lþ¾™N冑º]P�¶ÝW7{3 %I6ZÚ o@t¶::„ýÍ/ +u§O¨ò´wòn³ûœ­ív›` f‹Ëëj\N¿]l�‚Á"Ч¯@()*:¨»\BÊÅ'ˆvŸ]ôÛmúj�趸^ªª­ xíB‘l×B¤¼ˆ\±— öDA‘ÄË +b—‡È“O‰_É ²”â“&&ô0ø@Ö�ú·yxMÇ +Áº#—JÄ®qÝbëÖÐ:aè›�&oöœ½¦[a"ÞæH›ï=úžÅó‹FÈ»ö×}#:Ö’ ,A@"×ãJTœ-ánù©KÂ.@·„We"ÜÀ�$S ~M‰*‘ŠÃoV&°Hö±»·Cûºcb8yýጠœÖE™>ñx¿S‹K§€·�Pxk.òł޵û7L])š5¿�x0Ã"¥§q ^¢`©4iŠÃ3±Ex…b/%´œâå€<üÃá6·¡¸Ø…6ðŽÞyôh´{ùD˜ƒSM@ãr\Þ„i| +Ÿ»�ÕPå7@ çøíyJ0•¹p,¡„$êâ0ik©å á&šì»}÷«ûøD„ƒŒ¦Ç¸ ì`ªì8 >` ÷û(б'e“ .§LjäïÔ¡�,·¬þO>“``ž¡þ¤qüHÝýú›_þÒ”eV‹o›5ôŒ5b9À³ùϲý”€d³ÝÐÈÁ¾êéü‹ü»ç?½´ª¹?;:7þmðì/1ýíM‘�´˜)oÀyxÇt#(;t·N_ñД¹›«ê­‘~_Éœ›ë¾ª…�÷§ BÇæÊE«î‘pHnZ¿¡âîméÞ}RßPÉ� ÞÔGhl¾ÈðÃG-矪ӥñ�¨wºÂý'À7,ó¾ +endstream endobj 19 0 obj <> endobj 22 0 obj <>stream +H‰$�]L[eÇß·‡ž“vôT¡g ´=çhØÙ@4BÔÈÅsPºÒ6–ÍŽvkgÓ’¶Ô�‘ X1¼€S•v_ñÂŒ-a›šš± ·›ê�f&ÄÅe‹1ÿ·¾5zÐçæIž<ùý?()3Ji…ç goGÿîÞp ªß�·®5ÌI™£Œ¹Ê•]ümWÙWYÌnÒšóÛðšýO/ïT¥áÖøÐH"r2œÒkët8’ÔÛã±”nì`(9 õã#º/ +ë=ÑH:”ЃÃzk ‘ˆG’{ô›ô½Ñ¨þ%©'BÉP" +6<×Þë +é�è1†©! ¤‘> endobj 12 0 obj [/ICCBased 23 0 R] endobj 23 0 obj <>stream +H‰œ–yTSwÇoÉž�•°Ãc [€°�5la‘QIBHØADED„ª•2ÖmtFOE�.®c­Ö}êÒõ0êè8´׎�8G�Ng¦Óïï÷9÷wïïÝß½÷�ó '¥ªµÕ0 �Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^�i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +�V�³)g�B£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±Z�L®Ä„?â_øóyxg)Ë”z¥�ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ß�Þô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ�;ÂA4ˆÉ 䀰ÈA9Ð=¨- t�°lÃ`;»Á~pŒƒ�Á ðGp| ®�[`Lƒ‡`<¯ "A ˆ YA�+äùCb(ЇR¡,¨*�T�2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°Ž�Sàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4z�BgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p�0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"E�ÒI2’�ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷�?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@� æP+¨íÔ!ê~êêmê�æD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒ�Ó¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™�˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…�EŒ…Òb�Å~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X�[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„�Æfm“�Ž;'_9 œr�:œ8Ýq¦:‹�ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%�—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† �ž�kï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»Îå�wW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™�™üšhšÕ›B›¯œœ‰œ÷�d�Òž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª�««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½�¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû +endstream endobj 11 0 obj <> endobj 24 0 obj <> endobj 25 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 15.0 +%%AI8_CreatorVersion: 15.1.0 +%%For: (Benjamin Kott) () +%%Title: (Unbenannt-2) +%%CreationDate: 2/7/2014 2:25 PM +%%Canvassize: 16383 +%%BoundingBox: 17 -69 199 -18 +%%HiResBoundingBox: 17.1084 -68.1177 198.8911 -18.8823 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 11.0 +%AI12_BuildNumber: 39 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -85 216 0 +%AI3_TemplateBox: 400.5 -300.5 400.5 -300.5 +%AI3_TileBox: -298.5601 -328.1602 514.5596 243.1602 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -211.5 155.5 2 2463 1267 18 0 0 48 120 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:0 -600 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 26 0 obj <>stream +%%BoundingBox: 17 -69 199 -18 +%%HiResBoundingBox: 17.1084 -68.1177 198.8911 -18.8823 +%AI7_Thumbnail: 128 36 8 +%%BeginData: 7274 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD0BFFC9C9CFFD04FFCF9FC19FC19EC19FC8C9FD6AFFCAC9A0C19E +%9E9FFD05FF9F9E98C19EC198C1989E98C8CAFD65FFCA9FC19EC198C198C9 +%FD05FFC19EC19EC19FC19EC19FC198C1FD63FFA7C1989E98C1989F98C0A7 +%FD05FF9FC1989F98C1989F98C1989F98CFFD06FF7D7D527D527D525252A8 +%52527DFD04FFA85252A8FF7D7D527D7DA8FD06FFA87D527D7DFD04FFA87D +%7D527DA8FD0DFF7D7D527DA8FFA87D527D52A8FFFF527D527DA8FFFFFF7D +%7D527D7DFFFFA0C19EC19EC19FC19EC19EC9FD05FFC89EC19EC19FC19EC1 +%9FC19EC1CAFD06FF27FD08F8A827F8F8A8FFFFFFF8F8F8FF7DFD06F827A8 +%FFFFFFA827FD05F8A8FFFF27FD04F827A8FD0BFF27FD04F852FFFFFD04F8 +%52FF7DFD04F8FFFFA8FD06F8A8A09E98C19EC198C19EC198C1A0FD05FFA0 +%C09EC198C19EC198C19EC198CFFD06FF27FD08F8FF7DF8F852FFFF7DF8F8 +%7DFF7DF8F8F827F8F8F827FFFFA827F8F82727F8F8F8FFFF27F827F8F8F8 +%52FD0AFF52FD05F827FFA827F8F8F827FF7DFD04F8A8FFF8F8F82727F8F8 +%A8C19FC19EC19FC19EC19FC198C1FD05FFCF98C19FC19EC19FC19EC19EC1 +%CFFD09FF27F8F8FD05FFF8F8F8FFFF52F827FFFF52F8F8A8FFA8F8F8F8A8 +%FF7DF8F852FFFF52F8F87DFFA8FFFFFFF8F8F8FD0AFF27F827A8FFA8A8FF +%FFF8F827F8F8FF52F827F8F8FF7DF8F852FD05FF98C1989F98C1989F98C1 +%989F98CFFD04FFCAC198C1989F98C1989F98C19FFD0AFF52F8F8A8FD04FF +%7DF8F87DFFF8F852FFFF7DF8F87DFFFF52F8F87DFF27F8F8A8FFFF7DF8F8 +%52FD05FF52F8F8A8FD08FFA8F8F827FD05FFA8F8F852F8F87D27F852F8F8 +%A87DF8F87DFD05FFC19FC19EC19FC19EC19FC19EC1C9FD05FFA0C19FC19E +%C19FC19EC19EC9FD0AFF27F8F8FD05FFA827F85252F8F8FFFFFF52F8F8A8 +%FFFF7DF8F8A8FF52F827A8FFFFFFF8F827FD05FF27F8F8FD09FFA8F8F87D +%FD06FFF8F85252F852F85252F8F8FF7DF8F87DFD05FF98C19EC198C19EC1 +%98C19EC198C1FD05FFCA98C19EC198C19EC198C1C9FD0AFF52F8F8A8FD05 +%FF52FD04F852FFFFFF7DF8F8A8FFFF52F8F87DFF27F8F8FFFFFFA827F827 +%FFFFA8A852F8F852FD09FF7DF8F852FD05FFA8F8F87D7DF8F8F8527DF8F8 +%A8A8F8F8F82752A8FFFFC298C19FC19EC19FC19EC19FC198CFFD05FFC298 +%C19FC19EC19FC19FFD0BFF27F8F8FD07FFFD04F8A8FFFFFF52F8F8A8FFA8 +%F8F8F8A8FF27F827FD04FFF8F827FFFF27F8F8F827A8FD09FF7DF8F87DFD +%06FFF8F852FFF8F8F8A87DF8F8FFFF52FD05F87DFFA09E98C1989F98C198 +%9F98C1989EA0FD05FFA79E98C1989F98C198C8FD0BFF52F8F8A8FD06FF52 +%F8F827FD04FF7DFD07F827FFFFF8F8F8FFFFFFA8F8F827FFFF27FD04F87D +%FD09FF7DF8F852FD05FFA8F8F852FF27F8F8A87DF8F8A8FFFF52FD05F8FF +%CA98C19FC19EC19FC19EC19FC19EC1CFFD05FF9FC19FC19EC19FC1CAFD0B +%FF27F8F8FD07FF7DF8F87DFD04FF52FD06F852FFFFFF27F827FD04FFF8F8 +%27FD05FF27F8F8FD09FF7DF8F87DFD06FFF8F852FF27F8F8FF7DF8F8FD05 +%FFA827F8F87DCAC198C19EC198C19EC198C19EC198C9FD05FFCF98C19EC1 +%98C0A0FD0CFF52F827A8FD06FF7DF8F852FD04FF7DF8F8527D7DA8FD04FF +%27F8F8A8FFFFA8F8F852FD05FF7DF8F87DFD08FFA8F8F852FD05FFA827F8 +%52FFA8527DFF7DF8F8A8FD05FF7DF8F87DFF9FC19EC19FC19EC19FC19EC1 +%9FC19FFD06FFC998C19FC19FFD0DFF27F8F8FD07FF52F8F87DFD04FF52F8 +%F8A8FD07FF52F8F8A8FFFFA8F8F852FD05FF7DF8F8A8FD08FFA8F8F852FD +%06FFF8F852FD05FF52F8F8A8FD05FFA8F8F852FFC9989F98C1989F98C198 +%9F98C1989EA0FD06FFC998C098CAFD0DFF52F8F8A8FD06FF7DF8F852FD04 +%FF7DF8F87DFD07FF7DF8F852FFFF27F8F87DFFFFA8FFA827F8F8A8FD09FF +%F8F8F8A8FFA87DFFA8F8F852FD05FF7DF8F8A8FFA8FFFFFF27F8F87DFFCF +%C19EC19FC19EC19FC19EC19FC19EC1FD07FFCFC8CFFD0EFF27F8F8FD07FF +%52F8F87DFD04FF52F8F8A8FD08FFF8F8F82727F8F827FFFFFD0427F8F827 +%FD0AFF7DF8F8F827F852FFFFF8F852FD05FF52F8F8FF7DF82727FD04F8A8 +%FFFF9F9E98C19EC198C19EC198C19EC198C9FD17FF27F8F8A8FD06FF52F8 +%F852FD04FF52F8F87DFD08FFA8FD05F827A8FFFF52FD05F8A8FD0BFF52FD +%04F827FFFFF8F852FD05FF52F8F8A87DFD06F87DFFFFFFCF9EC19EC19FC1 +%9EC19FC19EC19FC198CFFD16FF7D7D7DFD07FFA87D52A8FD04FFA87D52FD +%0BFF7D7D7DA8A8FFFFFFA8A87D7D7DFD0EFFA8527D7DA8FFFF7D7D7DFD05 +%FFA85252FFFFA87D7D7DA8A8FD04FFCAC1989F98C1989F98C1989F98C198 +%9E9FFD1FFFA8FD07FFA8FD33FFA8FFFFFFA8FD10FFC9C19EC19FC19EC19F +%C19EC19FC19FC1C2FD70FF9F9F98C19EC198C19EC198C19EC198C19FCACA +%CFFD6CFFC99EC19EC19FC19EC19FC19EC19FC19EC19EC1C9FD6CFFCAC198 +%9F98C1989F98C1989F98C1989F98C0A0FD11FFA8FD05FFA8FD05FFA8FFFF +%FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FD0BFFA8FD07FFA8FD05FFA8 +%FD05FFA8FD05FFA8FFFFFFA8FD05FFA8FFFFFFA8FFA8FD06FFC9C19EC19F +%C19EC19FC19EC19FC19FC19FFD11FF2727277DFFFF7D27277DFFFF522727 +%7DFF7D27272752FF522752A8522727277D7D272752A8FFFF7DF8FFFFFF52 +%272752FD04FF52272752FFFF7DF8A8FFFFA827277DFF27FF7D27FFFF7DF8 +%A8FFFFFF272727FF7D272727A8FD06FF9F9E98C19EC198C19EC198C19E9F +%98CFFD10FFA8F8A8A8F8FFA827A8A8F8A8A827A8FFF8A8FFFFF8A8FF7DF8 +%FFA8FFFFA8F8FFFF5227FF2752FFFF52F87DFFFF5227FF2752FFFFFF5227 +%FFF87DFF52F87DFFFF2752FFFFA827A8277DFFFF52F87DFFFF2752FFFFFF +%5227FFA8FD08FF9FC19EC19FC19EC19FC19EC19ECAFD12FFF8FFFF27FF7D +%27FFFF527D7D27FFFF5252FFA827A8FF5252FD04FFA827A8FF5252FF7D27 +%FFFF525252FFFF5252FF7D27FFFFFF5252FF5252FF277D52FFFF27A8FFFF +%FF275252FFFFFF277D52FFFF27A8FFFFFF5252FD0AFFC9989F98C1989F98 +%C1989F98C9FD12FFA827522752FF5252FFFF277D5252FFFF2752FFFFF8A8 +%FFA8F8277DFFFFA8F8FFFF5227FF2752FFA827A827FFFF5252FF2752FFFF +%FF5252FFF87DA827A827FFFFF8A8FFFFA8F8F8A8FFFF7D27A827FFFFF8FD +%04FF52F85252FD09FFC998C19FC19EC19FC198C9FD14FFF87D2752FF7D52 +%FFFF52527D52FFFF5252FFA827A8FFFFFF7D277DFFA827A8FF52F8F827FF +%FF5252FF27A8FF52F82752FD04FF52F82752FF7D52FF27FFFF27A8FFFFFF +%F82752FFFF7D52FF27FFFF27FF7DF8A87D27527DFD0AFFC898C19EC198C1 +%98C9FD14FFA827FFFFF8FF7D52FFFF277D7D52FFFF277DFFFFF8FD05FF27 +%52FFFFF8FFFF5252A827FFFF52F827F87DFF5252FD06FF5252FFFFFF27F8 +%27F87DFFF8A8FFFFA8277D27A8FF27F827F87DFFF8A8FF52527D52FD0DFF +%C998C19EC09FCFFD16FFF8FFA827FFA8F8FFA827A8A8F8FFA827A8FFFF27 +%A8FFFFFFA8277DFFA827FFFF5252FF277DFFF8A8FF5252FF2752FD06FF27 +%52FFFFFF27A8FF5252FF5252FFFFFFF8FF5252FF27A8FF5252FF5252FF52 +%7D5252FD0EFFCFA0C8A7FD17FFA827F8277DFFFF7DF82752FFFF7DF82752 +%FFFFFFF8A8FFA8272727FFFFA8F8FFFF5227FF7D27A827FFFF7D27FF5252 +%FD06FF5252FFFFA8F8FFFF7D27FFA827F87DA827FFA827A827FFFF7D27FF +%A827F8277D7DF82727A8FD3FFFA8FD3DFFA8FDFCFFFD85FFFF +%%EndData + +endstream endobj 27 0 obj <>stream +%AI12_CompressedDataxœì½Ù’G’(úN3þîƒÌ¤s»PKn­±k†U£ij1QêÑLßc4’¡ +%‰ú™ûr>cÞúÇ®»‡Ç’ €Ì*PU(fA�ÌÈßÃã³ÿëû—ƒ«ÍëÅ…êG½çÏ>ûl´]Ìv›í_{TÝûzµº½Ùm±êó¾è‰¸áUƒ¯³W|åßÛ›åfýWüM˜_§xÿçÃÅú¿f×Ëuïo›Ýî‹Þç_àO?.w«üøÓúõb=[¯wò ÷Xhf<ÛÁÏò2½”‘Ð=ùW÷¾ÿ†®˜­�ÝÜ,ÿ€ßE¢2…•ÃÍíúj¹~;Üüµiï"É{"Ï{"ßÿuùÃâ¦tM_D™† ³¾i +Wgý,oég™¤fÇ›ùíõb½û~»™/nnF›Õf{ó×ÞèÃlÝûfö~™õþc±Zm~ë W³ù/á=ÓÍz×¾|7Û..†›Õþøó÷ooW³mxý·‹ÅÕâªá]ƒ¯ãWÓåj¾žízÂ|ðµ�¯†·ËÕÕ··×¯|•SµzE]ÿéú ÝÇÏTŸ¾úúª^.v; <—¦í‡¯†á€¡–ÊçÿøྀnY¬ÿ÷¶åíæ=Váݽ‹,îI‘ô"þñÇÅõûL%Á\GQ?î](z ¿Ø‹a@tᅄɈ“&CI˜Ÿ$’½Xè~çIOjE5|“Ÿ¢Å¯ËÅoí}»Y/Bƒíî¥Á �3ÿóO?ܮ۟ÖKvBu¹�Ñ7›«Å +îðMLW3 áÿç+~œmß.v€_›ÕíŽ@æžÓðböa�8#ø!ß½_¬Üü�ºz!aâbX01ü/ad‰ê ™2fô�Á×È=Yøÿ¹}l ›²Iqú¾‡ýn»|»\ÿ&$áΤ¯¾Ú.¯üL§²—™ÿh0ý,xåöÅ}ìv‹µ Ùè›g¢þ7/ñÁ“õÕhs�“qCkr]DZmÞò¯þ ýMܾþìÏŸ©üò¿o7»Å ´¸ZôòäòívöëFŸ]Nn·›žPQpÅëÙÍâò LÖrmj¯^›:XŠË÷7KxüåÕìíÛÅ–ßà÷Ëùr ˜òfµøýòýb»{·¹½™­¯._ÎgÛÍúò-¬j{µx³»ünÈ›¶±Ú£ÏÕw;÷HºÔ~1?½¾…ÚÝåb}5»yw¹¸¦·,ÈÅ%Ï«.hì¦ôPsófqyµ²Ä p"¿ü�«åb #¾é]Þ¼ŸÍ‰¾œßn·‹õü|I._o7°_#IIvi¯¿œoÞà6·Wo@|—k¸=•—ÿå|¶Zov—ï>¼·X_na*n`h‹«ËëÙ»`…Iº|î¼½¹Üý¶¹¹ -7ÛËÝ»íbá¾Íæ·»Ååõ-`¬º¤º«9Ì?µ6_\-W«´+ÒݺžÝÌoWÔ£,Ãÿûv¶…{ðã»Ùê�yWÞe–—Âhj`ž8fs`à;p£à.“ËwárB·_NèfheÜ>q÷}m®úÚ<âëàš¯Ý5“Ý»Ëoé�ÐÌwæ†ïÌ ß7|gúô�»ïúvµ[¾_}¸üîf…8ñ“ÐOææŸ‚›rwý‡ùñÇw›-` ’Þ5 ÚÍåÌzÿ>Û¾oòˆïW³5À•~°OÛí}�„löËnùkïz¶"0¼XWú~`mô _ïœt]S|Ú¡ ‚Ÿ=j¶{2(0ž×ú™)Ìàíúmb4s}“æ_~¸~½Y-o®]ãa�ûܰ§ÖõwkÓåííÍ»Þ�›ÍʵüÍ-²£÷ËõÍbUê5Hcæ¾Gõ wqÝC†@ùÎâ£O@ˆß¿[Îëžò7þýÍrQû°=÷7®9MUÝS_¾_ü±œ­jŸX½í= Áþf¹¾‚[ˆhº‡`³($¿]Ü,vì€T¡Ã7Lƒ|ó1Rû�ž_\¦ô"ï ×á%_mQXï@áþv±Y£@pñ÷åÛ5Èð xFM%*ioxEâyÔOÓ8Í4}Š£(NñSœ«\Ò§<AŽ~�R ú Ó(ÎéS¬sÔÖtï³WC`sÿòüÙ(¥£|4 Gã±Çãd<ÃÇñd"'j¢¡¤“ Êp2 2šŒ¡L§9ÕPâiB…ÞŸ?ƒ÷xšBIøÿkL% þ�ù7ó]Ó'=UÔ®¢tw*àIž‡¯Ÿ=™B™ÐkL¯1ô Ë�^¦§9—ŒF�BI ÄÐqᙢ"¡(Ñ$O©`ƒæo4Òk@%§’QIRXb,ÏŸ�5EERT¢q4šR1�Ìß�Ê �%ƒ9À’P‰Gz3ÿ+(Š€ §P&ñ¹u8¨äP²a +%ôÿšU¼ïâw¸—ZüA­„߯ø Ú@«CúD-Ýÿ´š³†ñPÁK%¼ÔP ¦ð)Lð5AGð5€ÿƒ|�Ñÿé ¦—$ðRA¯_9È‰Ê ¼†ôÊóŒ^IÓKÑKæ¾²)¼&ô!½rz¥Y¯8ә̼ÕáÿPn S=€ŒÒAš§išÁ+IqÙèT¦*iD(9`�á5Hà‘I–$I +/�ÈDÁ+J E@ÇI<‚ Ń8‹ó8�xűŽe¬bGqˆ4ÖC˜²�Ît®S�hüSZèHG€`ˆ#5PZ€Tª y¥•RB 9EätÊXÃ-c©¡()e$…Œì¬æ)A(�÷”Þ“\sAXI‚—ÈE6åbPuÈeP˳  –äk ~ÊÀ/‹z;„Þ ‡ðË.08€BÐÀÔ8Aijçφ$$%I(1.<„# À2�±Í„ ©šžQ„éP€Xå×”à +\‡`;uÐ|*ÇÎÁƒc¼È@XEce\JççÏP0`iü( /@h± #”;…EDD~`I¡ "€c„Ý�& 4þ³³J4 ©RŸ1Ñš è +R¤cXì9ІV.®g\©°"i=Ò +Â4äÕë+ŸÒÊñj¢5kg³ŸÁiZ#XC^1¬ As9¤9Œiž-œ' *0G +0Þâú€fñ\"–Ó,àä€J)A_)É�¨¼SÂnÄks`!Ždr$€(Ä¡+sh– ŽÁ}�©Œ ø�’™y€9H©²!QQT$Q*Gç§ù\VgU¨ È=eß_¥«Ú¥.O÷”Éž2®-ÃŒoT)Ã=e°§äa�ý·lOI÷”¤®@‹ñž¢÷µ§iÂ~r¥Ü%ü°³ +BøM@ÁKÍ¢\E*‘ö"ÍÈ ›‡€ÕˆÛÄr¢ãø§ˆ²Ç°p5dD‹�ò‰:��JÁš�î"ÚHXEHÇbâ)ò(Xg(ŒIx™Â�q±H¢‹Z-‚u™Àê̈ ˆŠŽ`Õ"U�èñ.Äÿ�ŸeÄÛ€€m‘@3� '@$1√¨zBŒ JL(ƈxèù)L¢ÀA FrÏEî‹ìj@üxD¼x:T@`!ïÆ®ÆYBü<#5 ~5Þ…¢ç”J%Ch’â…(3 Pš7"ál’O 1è¡ÆAAWS�I2 ’ø‡² +Šs7«f>…›K3“¹›Å‰›Aåf/£™ÚY£933sàæËÌÖØÍ”4³Ä3dæÇÌÎÔÍŒv³’Û +lfD¸¹HÜ< íð (ýÌAán`n ޼ßÂ{à`=up6PN„G¶ÂÁÕ@5·}þ xш…¾¤íb R˜ÈäÈ!H–c�5§@d ºé6&Ý#cícœn2šÂò =+à(U' Œd0±’ÃA+O�¬ ÖMbà�(Ûç íI3�€f5ÐpP<ÆAÑ®¨ HWOú¦\ŒZ�ãÃxG$ñIê�¼›“ä› HpÐ!ìC å_,ˆ•‚$à)£ Œ™c�ÎØHN¼;e)/¦¢ ÷‘› "®(ÝMHº‘d7 É.#©8¡ÙÕ$ÙÉ‚d‡²Ýˆe»œd»”e#×É‚\7rrÈt@P2PV¢#ɸ(Ï¥�,'Q–%å…‘]gDl'\F´² °s.$X-�‰oâZ”ôɰŠs;C…A’ƒé·ÁEŸ‰™w /H˜':¯€�áûwãùçÓ¢£x'þûè-ŠÒ7üny7òvûM¹¹Vü¿" €ëç7¿YYÁ`Hì>‡u±{·¿éà]±Ü¯éº°eÓF±ØSÛc’C`&";‚.Ô„¼ˆÆˆÐCBó;°&Xh˜Ó]X°ŸÌé.¬ D€Ìé.¬ Èòæt˜5ÙeAžÉ=“C¡,k0¬Â0ËNHÿ%Lj5m2Ê@ÛÀ|ôóg 7c.*hÔ™:ùÛhŸ$ ’ñG£ÔÄ,±$d°Kˆq¦Ä<3b ¦®Ä�aCÓ˜ +[ÇŒ)еc ‚eÁ+c¼Ò\H +dWÊÅØr.Æ$fÃ�163h‘,rlL›².bè¾äbLo$•Nb.€(N)žË>½Çq¸<6•‹:Rt¹@‹Åšø`IŽàÏÐbz dK^W Eÿmp¤ ‹¥,FUÄÔ*-©Áaz(€¥ ªV]°”ÁÐCªê‚¡D'@èZQR ͈™n¤L;r¶†´tŒê€eÊB.)@ŒØ¦Y‘ˆY¬3"žQ)rV+,šeH +F•žE¨RYD½x +­�q÷#³ÚÇÝ¢aý–Íë@Ìc;#¬qbDÆ cô`S‰&ÙD#ÉØ„ŸŒØiDP+�š‰Y¶,òÙ�¡Ó»78y@;Á@²¨ˆ�":¼Aþ—ë|ËöùÅXs‡â>FüÙ~+‹Ã Ì—� [1Š}"Æ’�ž§H›‹Hw³‡"' -!­L‘6‘&6fýËè^ w�V¦­ÆÅÚÖˆ­èFÏŠYÃÎn>bÍ* ´*¯Sc,êT¡FèSemª K‘õ5gû+Z{4ÙÃ…³†[¸±Ä&Îkìàg�ÍÉkìßÊÙ¿'úˆn£À;KlÄÖo³¤rZf ¡¤"ô -Ú‰cêºäi³Þ6ÁÊiàsó^7SŒpbTà}óþ7S/œ^ª~8Á†OöÅ�eýqã’OnÈbTî|sYÉ?—°0f3Ó Eé|u™S§ìµ›�çÎë¿3Þ‹—;ñ‘¸[.’’Ý¢h­l¡�ÂÎD™©jň‚@qX 9$À„Þ`W ÅbÍa1ª"†• +,hñ� wX Ü'<úoGѲàZk�JYùÈyö½j0auÀª¡PüYä¼+ŠûeAß`YÄ/Š÷¡`oWÛ�}ßæÏ‰óN”/ +ñN€'?{ÆV9S E’„†ìŸq �ñÝ?þÔøõÙÇoüý’#l,@Ì€#eà±¥Q‡b5ÿïc ,ža»’ç èÅ ¸§�ÁP.Iti0A:£È#7 Ÿ\X¶€‚ìûh#¶¶ý1‘½)YõQ 7ö|¤ÑRÁA '¾.H×ÚúŽT~@o¶Ü#7@±Ûø¡‘O Ø?�b7ZæŒ÷Z³7;#7ñ á˜,zÞR�œ Åî”-Å)‰ÝÈÁŒÿ…nÉ*¹$‘ÛxÜsöÀÄÈ?1þyöÕ+öÝ?~Æ~ý!ûù‘ËNLG(Ž H·S¦�â>bå_k¬k +ôNq‚‰IHa%°žäµÿãjB|ˆïðmÔx kKâ'\YðYð;¬7²M ó~AÛˆTFpKÙ9 ²<6VK4áo•,h&ì)ÊÙß\ôY ÊCÎÈà�ó‘oèù36è¤dб&kÔ‰ÈSŽÆlØI¯ÐØx…³„QéÈ×›¼B^±›°[N�gÑ8vê�Uð†VÁ#,<EÏx„lAƦ£ä��ùÇ€Œ (&ŒKK>¡!c,«ù +²‰›øå""’B¤ÈtY}*{½­1´'&dàKŽdÎz=$ƒY¶¡Å1[5"ÒUŒñϘÿ¼pÀF‹9Ѝ{�ù�0ðÄšÿŒñ�MløÓlô8Zƒ +>âbÍ=Í9*ó8ÏÃ$ ˜aTß­§ Õõ Ñ È�Á|��6МJ€jö”Ö|Lë|ˆ*2®i³Ša­æ´Zq*àw—6j‹| ¹V“Ž|iL\¹O<©WŠ÷ytËž_Y˜¥B�ýÌUË>¯t­ÛÌ·‹PË>/y¾§¼ïТÿ¶Ïs_õñ�,žU ùBëË>»Û>` §f—ÿöEC�Avì4·�ó¯%ìU³þ´ÈépF‹³z\Æ«ßúÏ€;ÿÙÄitadTÂz�ÕìDÁs6ªz΀ºiÖódY6&amHÖ"£íÙ¸(ÆE±Ögõ>Òü€[í¯àMcÐj�V4š ÆFiŽ�N4ú ð~Ö ­Vè#¤d!Fjlc¤œ†˜¢Ñ\œÌê„#w†.vÇê‹Vc”&’…µÆq4 +Œ»’¶†¥™Qdfld-Ô IsÜeα–1éu¨ÏEM9&� å0€éf1ic’c%M¤ä-€'µ6�»[Ojmw·€ŒXk¸»EäØZ›Àa‹@AÃùáÉŠBUG4�(‹`oQJGÍ MÑ‹b$öí·#˜0\£(`Ÿq¡£ E"LŠ(fàxpšP É9ÌQS�¨,„8š¥<ä0Q  B)¢NåH£ùÙ¥nJæ‚!M8¤–}1$rD– +‹�–~¸ð'……¿Ï0dPÀ €F QPž …LÙT± ú�dà:Ö£… +,ª¬SzMiY+ +?—¤ž†j)*¡ö!ðEã�É̤•3s� ^¹œ8ß‘pê¥`Eßz}´ <LE¯M(“éžoÕïÆ¸Q¾ú°A¤è/ª1~8¯SÕrØÀQ0^ §±+6�ÞHŸaÈ)‘B»Â¦`:!VZd¤± .6$qÊÁÅ#.&F +¤1!âèŒÑ+QX*¬@X‡cZ…R.ÌkDʆ CÃwLSó¢0äÌ©ÀøShwLᦵ«I}1ïšÕü-IÜ& ýY +Žë›™§¤ �Ý:“‚4tÁ0C^óƒ`ͧ$NkZ÷´ö¡EåÂÈ%ª`è[c?!o› * 4&üY“J‚;*y´ÖQ˜Ï9¸<£5Ž¢>…—à +Çõ�ªÀ€‚ps!P2ÔâšBJo ±#2w hý%Œ¬É€„\ÑcDAÉ9™¢b +MV¨ÅÒÆƒ)9ñ/£í1,‡*�(X9sì–6�y`à˜¬e±° �^�«2Â'åBüGlhO8¬_p@ÿ�CùcÄOse(qf÷îaM0EM®Ò…ë›PæÜ±KË,ÃPfK!)<ß±Éýfsk8·�Ë›Ïkƒ•]¨ÊÑ€å Üø�‹>6„DÆ.úØX“' \ô±!d€:Aà¢� ü=Ià¢[|þ¬iàbb\§ TÇêU¯@Û«h±a!,q¡$…Bb´˜rÉJ%/”A¡ Keä 9�Æ…2)•‚E¾¤¿‡G Êú?U(ºPâRI +%õ…„ã¬TòB˜„OÜìXÅW9SNì j!g¡4r¡ã7Z¸•Ǥœ‘9v}´}1æfL>L†6¤Wº +7�ÊÆ|˜¹ðòÉ�#gHœ��¹@sj®Ù¨hÍŠH€a¨��¬‰‘kf”.zÄ 'Ä#�¹Ñ†¡ÉÇ6æÐç ‰DÆôè��Ú¥Û°tkî6†HœÎæH¢2d’yCº¸¤81É&úÄÆŸ�q²ì¼ùH¦Ck´Š +f*Äì36™xÁÄŒh †5 #ÐÐÑ�²)ÇÕÖ›g +[Y*”ÁI™Ûbi·VG¯uñNÜvÊ�Sê­Zo{«ÚƒršßÈm�ÌX½/+øV½/+ø^½q`6(øÏŸñ6Ä:—�ro厔¶MYµ>Pê)†ÑªôV[4ê<(óÎ5”ÒJUD™`Ó–§ É +F£ÊI^H ¢š¨ƒ¤Yˆ€]D47câf>q†3’ršù”¢_•˜1F±KÞÆ +‡]DZð>ÂþÏ1­Qd#L|ŒŒ }ýÔã˜öüÊ«©ú7>RF‡ +´êtûËàH±.]ÀBÿ¹T²£%­+Тÿ–”‹[M'ŒjF~DÚÀÉ¢š‘{U8aT3Ê­@¹H®2á+ +õ¬¬C-awZ3é7Yq_Ü6+ÐóãÊV+/YŽ•TÁf«êv+Ї4„XÖõ¨] uÊ‘Ó> b\ ˆ°á&p†ãŸ,‰�8Ú™‚ÊÜ›eØ�‡íߢi6œL™7Vy&>é—a°mrà¶J†!”JneªMN§Pók‘wzC˜mðzâ N4±›-.ÉòSÂc²íÓ¿,¿×¿Ê‘ùVû"Ý fÚk_^ÿ +50«ƒY-ÌêavÙÀ…³P( Лˆ52é‚Xœ-±áigÄGLVÿ?Á|ìùóüÛFpzéÐlB1TŒ$`¤‚ÜI +� 152 ÂÈFÞH(î5¡¸×L€þB’ɈlSlA÷2Ê1Û�~Æ-¬jÅRËñ‚r�_²t½�ßúrŒ{;>-î“Ê.t«R(|Ê–ÊŸsçÞ)w¿Óíù³»âîwºqÊ�Ö�¸û�nœòc�ÛÍB†CS'.uÈA¨k?œ†SÂÂŒƒ„0&ˆ4 ¶½jìøœ:§zÕ­î몼Qµ²I5t¯;» Æáí©f®ÊTSö ·«xGûQÝ[ðŽ¹”C­Ædi‘LÑЪb¬ {l N–¹ð¼pÛ½ßtŸÕZE¬E$°†@w+ö*ÞÒÒ"B¡¹ó&„Ûóë-"Öb-!Ö +â²@N4›ôm@òwô¢¬Šó€ÆÙÉ(„'§ÙCâƒóŠƒAóȰp‚ðCÓÄ ÛCDBƒF(Ä=äã# ºÀ…¶O¯Št§HCêö çÁs%ØÛU¿[«è+«Û™UÚ§xûíŠþ»Aj±þÞò1æª�7O8žIEï¼Gn¤À²áÞc<¤yy&d‰ YZÒNÀ˜ü° C=2Ú!Ñ êùIòƒäl6 z†¢TÄ�®Hï)3 +N̉"bã@ÉW­(ðÌ„&¦îŠÖá y±'l‚4—üãÒÀÚµb^‰ ˆ5VDës ++hxçÆný˜×C�gÏÐZߟ ¥Uî^´ÞzuàUŒocBœÅù#IºÎ]8¾�¼/Z4ÞÍ1ð'c©NÅ^P:™:ψ±OŽ8x²¬ëÅœÜÁ§ÓÒ6rº]Ç(§§G‚"÷ÏÕ5f¼o™¬Žœ*er`ÿrèŸ +)³ \dýžµ{ÌL]\Œˆö"ÅEJ;$|™55Ò™£—S‹Ž9 šõ¦…¡ž3r�ÏŠôe¯áLœ†cõô� iæPfÒÎ�fØ8âÐFA¼7¦ðäŒ|¢È­§&Ô˜VSL�Ž)é2¨É D‡�4‘”#¡u: Ä|#ŠÆBvΞ4´Št쓆VQ‚ª“†VqÁ C«pÇûiC«ÈÔ0´*°u 8/,eTZ(EÿUÁ·-Æ%ïWÑ3Vþ+šDŠ9“¦h}re]Ñ›7*”²'0ðB‹ƒ’±ìcL ¥èŸ,ú.Éa-zßfÑóy8WÑõX€¶UnÕ$Øò�A:=“P/åx—˜°ÖƼpÔ™ "��÷ÊFŸ \¢B“f/uqhÚñ¨}‘h62eo$E£ÔÄ¢‘h&mp$ +�ÃO5†œO]j)�VLÆÉúpÝØpTEˆH‘iAâ¾±‰OüºàÔÜá¾Ås‹Ïs#—ÒoâppèÂU ¯Ø“m1ÇbˆÅ;ï“�äh šç„Õ=cÖ̉㎣I�ÎaèEv—¹ £~wã”rZ•Òfó>Çït²éÔ(›ö�I?ï{4†Ö”{“ ΰ¯Œ +·ÅÐmí.Ç�SJS +r*)(¨Â¹êLáSE—3É*¡Û"F f£†‰£�‘R¡$v†L-¥—Ù5�Ãû3ûTôBãLCs æÿƵþ“)b¬š5µ9=±Ezǰv€NÙô8vÎÐ1™$M�œÂ­r2W&…}­¼£•uø¼²vÿjqÏjæf-1yd]ОɪHŒ±ð#§šsNPŒµLÖ®Œ]�±ÍÿI銌¶énH’%G“€áÚ°8áŽë×Ä3O™ÜøèvŸõWçÔ…¼ÙlŸ&@KZ9¹Å”eRrðjιs`Mfµ!DnÆ +!D]®Æö ±ŠTV¸ªA¶ãºPGÿKa¶D¡Ðp¢º µÕN­24ÞäÉÖœ3xZÉLÁ¶¬By +çB3%Ÿª“ÍÒl”¦PerJo�z*¨¡z:)í'óêià„`c÷° ¢îSRC5µ^Q…)–eeÕg\t*ë8ÚD©EQzש¨|³ß�*JÂÆHPœW}|ïc{½öD÷î‹íµSWC*ŽG™ ´ÙÐF+‹‘>E€# úá8é½ñ&ýáreòd%îÞ0CÖÐÇ‚ØÌX.Æ^‡ùõ|Tˆ� ±‘!a½‰‹©¦ÌL($ÍÈ\ÄÀÀ%̰¹ñ8YFMÄHÈZ,c1lÅ3ÃRd°½z@¶nÃH !&BѱCÇB V˜DÞRi7Z' Ƹ¦b«A‚ü6Õ˜Œñ‹å¨ó‘»HÙ1¡"c*G€Ôã=˜T1qsßÂu[Å·r|` ¬doGµÑ!áÚ­¬Þ jƒ Mäãj‹ßë""÷ +¹��$ó¾&ݲA–Þ>“î³gQðX+ƒî��ãÏ;`@&´ônçÃ�Ç�È íÀÒ9lH®„ x'¿só‡Žþa­îž¸S…S`œÛf æ-Ì&åOƒqçÁ¸¼Q>kç‹r­}(@à_Îd탬ŒÄ6P#eŽ�[IJ³´3ÇJ†–PØ—(„fn‰cQ^·Û”ÆÖÊä¥*¶Ci¶K%ÌÀSGôSgI3„ôðÀæ5tÌ`ÈìÞfQ²�„%Ûš³¬™OÄBÈÞ6 r‰™oø›µ¥%l×3¾Ä¤ru²«®eR¦gÌ¢J¹œÂèKÇsØ_}Œ¶‡7'ès?ƒ–㨗¥}àlêt.7̽0åð#¼©<§”ñ¤û$“€,Ø2 lÓýyÌ d}ë(ïވ酄U–Hº)Š`�Š>¦æ6^žà°røIhhH¸V`i¦AWîÛÒÝ¡’÷eé{B…9&ùV-³S¢R©åõ7Md”›–søšëä”}®i�ú� ‘dx#Ò7¿$M ±1ü)�Fø Í†ó–‹¾ÌT0ù'lÓÀ6ÊY° ì9ÝE €„PÊa50‰uýL`B@�Þ¹ìK‘†àT_€ }Bì¬kýDý–8ƒ¦aÝW ªŸ²ÛÕÆM¯@‚ͤp“Š™ö� "DTg6�À¬É¼8mºòTˆ«'hì4«>ˆA'\EÜàaf[Iú(xÞ`¥–N'ÉHh$Sl9ÑIéyMë§è·EÈ�Ÿ¬¿ÅV±Ÿh&´—Û³Ç÷œGþÃæfÖﳞD~…†¥;‚Ü›d°gäL/šöflðžøMÈÏyI(%6g¯²¡ïD“ÑÀFy�8E­ à°øÔùÔFÖ§*·÷¥$¼ÇÕš\Æ•`�r¨*V¥�Ô´c©¸—:<®²¼�Ú¦#Ž9¶=u&8qÆùÑllÙ“Vö¦ÕùÑ +ž4 +¬³§ËýiÞ£fOªÊ ~5ëY¶ñpBî�‰3½óÈ +gŠ-žZeÓÖû³«ø+,¥S¬l)ϸª-ó–1`©‚Ùª°'ºk÷#DAjeHâ–( +yÈ»`}.ž±9ý%È4dÌÖ˜r@ÍÐ…ÓL8œf +j¯MÝmƒO$‡Òh6g$ä94É™�!rd÷Ë�éÌìx¼kFÓA¯&xƇ:ù½fC·Ïl»ÌüMÉ�;™„”~J$ÿüù!]æ�Öywìúò9ÚÙbsøM9ºY²‘S’™Â„BÄ. O†¶œÍŸ9ïO3;^0ŒbĦ9Þ/È;§.@\ŸL1Gœ[³©-‰)¼WÆ‹nK^[û‹õÏ sðÆt:™Ž§#:r#§ƒ1ÞÓ…;¹"—÷ðN çØ{þ̹öÊν¢{/tð9_]X ¬jïèÓ…¢ç‚Vv‡Öí å´Ë@ˆ…ãKkv†©—}ðLÍÞP3g07á¦v¨MÅÜ,¦¾U�iË ‘õ>¶ÞE×s«1áú{cÊUns…±úEΰ;u1÷&êÞFÞÛè{�?pqø¹‹Æ·…:ë0uñùa©ûÓû‹;f.V±Ñï ¬b£s3Ó!¹Û;h±1t6×á£w9û0-v:Ó9‰¹s[V1ÒçsÚ—¼„“ÀÕd¿rñ@]¿c¹‚—D'ÜdÌlŽ›EìÔ|0BCƒ�e q´K Où�^�«el>'} cC¬ 0—Y«x<¨ÅéJ)pÿAº<AÅÈ­JôUºµÎûŠ$ÔÑ�^kí :ˈ„fà”yJw�""A%Aa^Åd� +–€öw·”°_Îßý6ÛþñÏÿy½Ø¾�­ßöþ¸íým¶Þ-PÞÞÿ#tD9黟Ê(3fí$UÝ6Ðá DˆŒ~ÍôI�á�>IPsó)¦m¶Þ”~ºÆ‚Îõls=ÛZÏ6Ö³mõlS=n‰ÍÝåy9]“¬¶Ý«9žûøtô-ž¢<ܓï5ªÿ´^Ï®W½·\Õˆã5µ‡ÜÿR{PI) ÛIýaH©r§ +—ûι&Ið9q¤ä.ï0ÑU5±S¥È)·CÄ&U³©ÑÂ�÷tö�cÁÅÄåÓÌèÔ²Òq«‡ãÎÃÈóà ˲`ŸBiPŽ=·ÛŸëÎâI +±à ±|ЪUuÓšP¿I]²07A*H\ó1™>ÅeìRÚt—v»yqBmÚKs2üÀ¥¾4»,ìN‹±OzIŠ pé�ù•KŒ¤Ýþ MÁ ûS¶ÈY“´•÷_�ªèFkzéÓAûôa#—NÌöyÄ^ãð³OŒŸ&t^Pñ÷aéŸDØ\1¡o"&½dðkÐâнù½úœr4zKê”»ÇQßp›9Í[Ôɲؽ\æŽ,Ø/íQ—>ªÝøç޶äc-3—µ°åÏÛ$ÉnùÛã£+Îÿ]—‰Åïn°yXÂ� Êí4«{&Šö´fu1‹BMgí¡ÍkV“s)T³)ó)T2*¸Àõ“eµ£�Á&;Ú‰rÚ…ÁSÔYgõ%4Œ††PÿW4†vx{"ãĺ@ +g3Ú¢‚¢Û€=§1e++ý‹e”qP8 ­ÛŒdK˜S„7¸R]#{Ú¢ƒZ2Ó;X¸Ó¢é^‹‚ðÃ'•ç|8JQô±H”I—û`äÒ”´A¤ÂddšÒnÏæˆvë§´SEÓQ9H Í�(:®&§ÃPï)º=åxʈŽÿÀH>³sB‡Ç¤&‰9íÀÒnzMIÊÇ&)y¸XyŽÃ¬5!„¹qÃãÜ—ã Œè[†A ñ14Ó‡“_ ÅÐî®”0ÏN˜ƒ&8¨ÑætÃ�Xl´e”У5tG ü‹Ù¯}·#Zêw+“[èŽG´ÔïV6Nœ»ÑR¿ 0¤Õ-5ÆCB4` Ú2¢8!i‰LuF�ð{*XúÚßnMŒI ðFñ'RÀ¶ߪm¸]B¾ywg"ú˜Ü¡ðð»µ`Ÿ‹°¥‚6ß›ƒ`$ðS­¨y—›ï-.©¼^^‚úRP�û'ì¿c4KÁ@TÒ'oŸ­¸tðxI?“µHràª{CE«z¨@}ïÛ6~í$ØŠQLƒ&A°›1”“Ýr‚žèbf½;$?(�òW…eìüÆÖglýÅÅ�/ec”K˜A'k„)3&ŽÄ”3Ú'.£}¸ûtì"1 Ù‘Ä”tÅ@åMTåœöÒ‘"KŒ²Â.fÌfow–û|öšw˜—s˜×e²÷šã†¯n#ã}æš¶De´} 7§àÖ”t’—â¤ÃŠ4ˆs¹�:ááÑ>QFîNr)Y'ö1 ýÙqÓÚT,Œ?°ve‡ÂƒÇËYpÃT,6‹g¤bñçY¬*&d±ª#rsœðX±/Ƈð‚¶Ð¤,1Zìpi{ +bqäÈ養Ó$o2×�äÔ>kcè¨S ú°o»¬å#¥äsÙw z]Vؤtн?›Šéšmê£rÒ£dÍ:(2Þ†«Êå<�óÔÉò7Ÿ—ÁDFQ^Nècc Sg»˜R4“¢MŠÇ šì±Ú厓l6df¤ÈRjÊk8K¸iQQ†ƒœòĆ›´ØpE¼!7¼�¶ïJt4‡0™µùDAÊ–�¹°1×t~4d_,È‘ ²ÏŸµO8pØÐ�°/‡l»�sœ§Ô¤y‰ÞÌé`Â'nëp¢Ã‰':œ8ˆG¢·H3îŒÆmù«Œo(’¼7}Ì‹&Ñg“ˆé曎å oŸƒ½¼©T×lß 7•Ú8 ›•½îÀÑI€ûrüÙSNŠgœð¶ÐçÏ\   ”ã¸BgzÔgTÛ‡)OÜYGø81—GÍŸøaqƒR»L¤9ç(U4Ëfå†ë¶¸I¸š¥·”IVwnvk8ÌÙkW²¶W� g°¼%Øn¹´Á¡>“¯v¡Å`БŸM>Å xj £U˜QŸ±1wÇg26Ú³`™Ù¬�ÃJÖF›ñ0r™Ë‹”�fäa›±q/…(Ј¡ËPX¤œM�döÓŠZjáq¢rÊtYo»�¶#·^‡nÓm^Þx -êš-á>þo|øÐàêÖ[мó›o‡&·…×ãøˆˆ îxµ8Àˆ68¡ù05w”Z!;f˜Í3±Ù<=f8~1vù/«˜!él›ér¼‡w(›ÍÒáÆ>²�‡Ôâ�h”$PŽ@)ÂÊ9˱ÉÌÇÌèܤ˜•�‚Ýtþì$ŒˆÅxØ”)Lx~RF*2¢ÓKø +ŽEüH(ú©�9¯ÄÓ\G;¤ØÔžTB3hÎ)ÉhÆü9%–.ûõÊkà=>@‘�sïÊڤܡ‰Ï£ê²†Ú|¡ã`oÕ€W*-xÊûáøä&,¼�NtzQ*­þŽÛ;E�5³h»jqfм{DÁÖÙ¼AŽ»Gl] ¬³qß) +¶þÌžýQ°�]цÐà(àê…ÃLÚe‰�µHL �d•�d—ˆÉ2‘¡ÉMã˜R|:íp¢Ã‰':œh„…M•­�¹Q_Dù½ÜÁÜB]d¸ À�úZå‡ó‘—ÝͱÝc 'ˆGO²zg6Ô—âÑÝ’ò êøQy–'þ¯.¨ò’*o@ñ[PŠËJÐö¶:ÇŸ?›¨˜§¯.uAÁñGj�wý…‡šxç_Áµ\wÂU˜��œ‚ûθ²»9ÇÃñ Ü@µg1!ŽX@ôY3lî ›ŒA>Å…OFðDÄQÚKj“2øì>©�OG0Ú“„! +R0(2\ØÃ/mÊ…”T—bÒ……Kpê¶9�¿¤½«ŠÓû£Hž1³Èù@€gè#ž$gIÙ(ýîX]HHáSR˜q‡É)—uÐ~KÉÌ’.´”3‘äΙ6p½ÿ”pÌ+¿ç…ûõÜÁÜ*ÅOÅßÃRú”¹ì(P¨�¾—©kË»ý»­KIULhÄIà:$øA‹z’ñJ•ÔÆÂ0Ë lË¡� +øåi6æ:Ë2™Ø–CË2¥_¼·m9´8ÁíÔít»”„à ñ‚O¶àòÚp‚‹BŠ‹R’‹ñxó8ri.Љ.ª©.”;Ý:ª¤ºpÉ.øì¦bº‹j‹ÂyYá‰Y•”˜z®|fÖ�S³Jçf'g±U° pÍÛC‹ggNÏrÖ“Wu”Ü¿=6 JRÉ$d‚5'å(&æ¨Mͱ'9Ç8LÎÁ™Ž,f4KÏq0Aùº I:š¦èØ“¤Ĉ±ÿ¹2 +MXUæDž“™Ì‘Ð@ãMæ ‘9£Ìœý­|”C(±Ý½ Îù¥…ÂÌ2Š@¬¡d Rft˜ƒÏÈÚŽIûœÅÒØ� ­ûJ“²>2RR`d(Kî ÇŠj²'×ÊeA°)C°ô ,+•™l#–ƄˮQ ô„ê1$ÔŸ'êBýÌQqöÔP¨HFA�I­9<áà¤Ò‘àGÃÖ†A(Ò´¶f`¤Ã“]K°*'àrP"re#«Ê£�Q1’Â×Ü9¢>çïØ†ì¹ÃÌLh–?KÔËí~ô¥À,aT˜•pV^+ÅÛÑI9L´’Ò{!µ§”¨†f•’K¸ƒ­Ìpypv«ÍmâŒö„M\xQâËh„Õ#�a®ÏRJY¿…%NyÕ�m€Q ¦%=ÀÒûUSf‡•ÇD•…ÐUu€;,=éøè$ßýãkxVqŒ ›4: +«”2” (Ú1S˜§¢=ÀBY³E ò¶k0�]&¨+ ŽòÁZg;­¹ �³6óÉž¡3vgù ¹ap +�ß2ŽŠçþ�ðiGc:ϧxò�À+Ÿ ^Wl»P[:!¨þ¬ ðÔ ƒIüÑ[>.€0ëÄùÇ-Îj×”"ˆÆ4[#Ð䃘lØ’ TòÁIŽ �)­îpµ¬6 M†ah•“–(ˆäžêYKÕÓ–ÄÁ³–†>øŒ|îaðYõ¼%zæƒÏʧ-Ï8&¸6ðÌ…�M*ag9o¦7árÈÅÃÐÑÁ¾ï{âa!üž-Ý—K&µ\2)};.ÙqÉŽKv\²ã’�”K>.Žô¹ö}¸dZË%Ó.’¹‹dî"™»Hæ.’¹‹dî"™»Hæ.’ùÓrivQ«Nt8ÑáģÉO:’¹>;]öÑB%9•$‡ŽÝ9P²Qh  û«†ªÂw›+‹2e•ÃPÀºÀÀÐÐ�Då�ÅúP8› ® +§Ã¶8ŽMΖ¡paþ±j ÜÀ}f£úéC¿ˆúahÅý¨_£P'Ÿ§©êTtšZó$çV*:y£c9Щdî}�О�=Uš¥D¢5Ù¥L)  ¤zc…´‰‰²42i rGy¶�„� ±‡¥hy-EËïLÑBã£WÎꃿ#Êrh³¢éñE œƒA&Ï=ÁßÊ›÷RÁjfJQ¡ƒõt22l1¸*¤“ªðÉÒÃ0¯¥¥hÅL–1e|Œ«tÍ;-…úÓâS´#"ÚAÂvŒ´Uˆ›�ã Ò 6‰ã¬¸#éó:¯V‰ bi¬’È:b9¬MÒW% UBZŸ¾Ï’פ¦8"[% �rÒDJæqn(S?±éh2·GÁ}zå¼O+*Éü÷ÙÍÍb‹d’?Aq@ ³L +¶ˆÃv%å«VäÜŒ)%[ÂÙ&3Ê^mÒ³ k{�Hðɽ<‰36Ï�#pDÞl lg�h-­DBñÏ[Þs¶¼;[«#ŠÞúf­ÃÖ>œºT·#öû‡bK%Oô!õ©¤@ÙnQß(o僥\öbëv™8׋w¾˜Œzš|ÈdæDžd³e‡Ì€Ìn˜òsHžhRë7eƒ¥á€&P5å�MÛC̶�$=çC%Θ$ÙXŽ/±DOÐíd” ŸQ°Ý{)ç¶[O¦¼½ +õüC.k ô)Zœá9&(›é‹«_oê-ò«ÀÐK*Þ5 Ð…ƒ BÆNˆB>D@ŠÓ Îmr[ ³v6‡¶‡2ê5Iû}Ðþï½’dýçÈÆߤ‰0²^$›Üú)Ã]d~Ùˆ=KbÇaRp›æo#ÞÑ6®ýVú-ŽØ8®}ßׂ}/õ�ûècÇBÕú”I«Ñ¤FíŒjGrÒ�g÷0©Õå¬7³º˜'÷äSN›ø'¿óÇÆA œ?0ã’ú4ÔÀ­ü~ ˜¹œMJmâ¤|¬T˜žÚîòiªMä ÇO¹”ÕnïPîH�% –TXâaɉ +vIhQ:¼Ž†5qOåè§r T9ª°“&ˆŠ’¥"J% +KE<“<—÷Ú”wÜTÓ>wß”öà@‹…½8e–ÂÄ©‰þ]wDÍ>ý;tÜûàŸz›¢Í;[ Ï 7_gÄšOS> ¦º{�騄éÊ€|”(¶¥Ú~߬U©}4m⎠ð”Û™ÿ(ZÕǪ#S#8šÖœ‹fäåȾ›¤ü‰ö Ó‰—’ãlMÌ­-:ˆ»�y_²æO1ïPNè“Ý©Lß±|¾uûT+ΚŠ-ah×E{B^Ћ½æ«kv‡ +:J¨´G´Æº0(DpM¨¥C €6IO{ +t¦°o´rxAx|��¤…y‚9«ì!Ýkœ­7Ïl{, 5h±Õ‘{Mµ.–Z<~(@}<ížCèˆáRTmM&ß8OÑz«òHÐîCÄ"Ç$¶ &àÅ0¯m)U}žõ³4Ñaß´fb]›Eœ˜ìºföïK•Ç šãhµk!R¼*¡|ú¾±4íǰ&®�¦A>.@EYBñ¼q.4…ÑFÀ2kÌÉ1Y1íàL1EŠk%–}©Sn ½gKœïhlnlï@Õ¥6užEtA#ϰf6¥Xô�‚„3xß–>ª… +j^}»Y¿]®wËõÛ‹‹ÐrþòüÙ·ïé7e~û~¶Û-¶ë¿ö>ÿav»[¬ûçÿlß,VhÛ*Vô’~ rjOˆ¾JbÙËb@a‘õÒ¼H’`çoÍ�áçæû¿Áçÿ‚Úßzº÷Mïÿ;ê]=ÇúŸÀßKÍ^uÜtïÖ•žW¬´w¿¨i‘êÖuM\·j¢q§ÖfØßqv Ø"ˆ ˆpu!×"ˆfmg¶G^¤@b\xÀÄAÈêý<ÃFtÜφ8é#;3ýV9ô-=øQ%1�– â~©RIX≿ýE]›Tù&üEiÀsèLáiR⺌‹O+TÚ§ÙÛ_Ե韖Ä} ]ô´8‡E¯Ò"üm…JXì ÈbÊmVŸfáSxu.­ë±­´O+€·Ü¦Z>ô4‘9ÐÉq|ª/¤jñ7u3_xVaü¬B?ë8.0„°>KŠ’d€òRÛ(TZ ±·¿¨k³:gÔ†ÒÅ9;ŽÓvÎ +](·éŸfWta­¥Y?ÕQ“yOe_€ÊRìB¹ÍêÓ +kÍ>í8NÛ§–U¹ÍêÓ +ófŸ¶>¶Ò>­0Eå6«iÛ(`dŒ‘…:ÆÈãØô†¹3è}’äªDe$»HR”Ù¾“‚¦åÄ*x7G� Ad×ÙæÝmNd÷wøørµ3לÈî_°Í ‘½2*>§öš*jÎ:šóý¬£9[lNÌ÷³Å�lÚ¡E¥5Ú�Š—šª<£0 ¨DuRïº5UÀ…ÏþRY +«¸9ñ.·yVÑœx7dò«hN¼kIaCaÂNnsâ½_˜h.(Ù+£âsj¯©®áæ,©VrÎE?K´ª¿r?K:În mXÌ·O«½²f ó¨ ¸oaX@§æ °Üæ]Ømm�íØj¯¬Áý@=IK;Š\½!Ÿ-5åŸñÓóg“çFy…“UÇçwÕ@3óÛp{{óεåϨºõ_<�zh‰íýüÛóg·ø!T0ëÕK£\^¤)P™4Ë ¯.Ò05°™ª¥ª8°$©©77ÖT™×ÔêÌw¤Õúå9å­•.Ž�m OínáHåR’ƒl(qD½È^"£ŒT¿$UZ’ñ'KTœ‘2¥tâ“PÐÚe܉‚þy@ŽÞoÏa 2ÇYM°×I?J3s +H êeXÿ¢\ŸõA׌ A;ûê};¯KMe¢¯3™3¸ý-¶¾Ü®å•.í«Úy]¶¦ PkÇU†C¡ñ}�Ù‡z¸Ag`mä½Ï¿èýüïwDxf,`¦„ŸøîðVöáFÔ3òê¾–¹DÀd}•gšë‘Cæ`…újûvƒG$°ü³¸2…\]Ž£\]‡”DZZ®/·¾kÚ¨t¥Ðö>,Û„}@“º�n)D„XšÓë;O2¬ê¾ŽD^žä&GcöçÒ$§°Ü’8KËý…¯})³¸R_mÿØj)õÚ6®”ŽËÀ†ú‘² ¤½�Ù×yÿܤÕôç~ÀÚ Ð:€QˆÖûG]׫ºÖI¬Næõþq¿ XÉýB™ŒéqPì>S c¸Šû±LòÊ +ª¶s¯É¨y~¹_Eò¶oe7è¯ßë=p?²è\}Ti’¨s}oK :Á|Ö<´Üùb'ƒúB'k;_b]¥Ï$¦�hWÒš o=­Ëò›è Þ7“â„•â2 " ‘f·�aÌ~ËR¤0Ž"¹{öÕ‡¢\Ä�²Ì™#iÐB©ØBšJòDõ/Jõ0n\{Qjg_}ÐÎÚÃæ$”ÀƒÏ÷ˆvžËÊh2\i Ä0%�â$èš©ÌàsP9·ãÐÀ KûA͆•Ô‡yBq +ªM¡Y ¶BlåܱÓáðâpB\³8@ o>ΧU�¥=΃8%ºλ{öÕqÞ>*ëç:ÒUl÷K¥ˆí~i±Úµ³¯þOÁvß»"¶‡õ-�$¦±*!pÚÏ"%«Øžõµ²²4ì  ‹ÈW†ØBÈ¡¥k¶ˆÀ܇¶»‡‡âš­Àá#a{vwl¯×ÓÓLõ…ht¡*“ý˜�HnT«Šˆ~ S}¸<½ož RÄ™ ~méY’ [Ÿé˜é™Ì4WbP·­„‡a¥HcOeœ+SŸ -øbè*ÉÑ Žˆˆ*±Be\‰:ÊÜJ·q)®góùíõ›Ý /þ¢÷¼ôKüÏFðs¡“$2NO÷€p1ܺçƒ/™&65C…ú(KÜÄ +‚t ˜v•‰‘cŒ–áÄö“À˜2é&Vqe¬âÄM¬!P©³,˜Ø,µõ‰ˆÝÄꜛå>ÐÔ¦Âô SåÜa©ÜÄJ;`¥ã^->ÎÄ*î +yþ”©•ʰÇ4˜pjc[´Á-ÏŒ+µˆ\e’0ã…WN­ÊYÍMTæ¦Ö{´�XÀF©­Lµ§V3 */ÜÔZ9Èö�¦–ìЇ\! ¦6ɸñÃ$P£rZœ9ºQ„ÃG™\÷Ü{þgL®6OdÂL®dV,qϵ�ܘ+‰¬ÙÉ•©aï@XU8¹¦6Îrm§V¦,ÑäÀÜÔjæZÁ¬ +S…45µ˜fVçä‡Ó¬ZÙ‚hj0«’‡œÅÏjjÇ”)‡YE|œYµÃ&ªü±gÛX1×"qÆ«.iÂL2‰•b™I¦9ó=š«L’ÄTƸ@œ e—¬†)”Vòƒ%›š¤ÐtÁ}ˆ2Í•¹�8‹¹^G PÂË$Wº>@e®mb� »d¡ÃileGK6Òʈ%8œ|rñü\è$öüϘ\ÆØ¸(%ÂÉ•¶ ä&7aÞG2™�\#%'ýT9 †&W°ò/…�Z^3©“_hjc¾ŽÌ?ÁÔJ[¯œœž§¹mÔö§V¤Üƒ4UáÔ*æÊ*Šl ¶q?�¤EŽ>ÊÔJ+7¤Øó?ejSkš^<p&93J¢–vj%Wê,r•IÄ–c’™ýÔêŒÕ­´ŸÜØêvÊ €ñØJ­Ó`rYo€ú8Õnr ™€f Ÿ¤µœe¦Ž¨p0·Âª[2Ñnn-'Ëx->ÎÜÚçæ™‰ ø¸s‹þ?Éd6‰Q1ª,!£y¸g*En±qref”9¸'VN=†úÔP¹R|qG\©e–²rÉ”Åf­…[ø G1cºŽ;’~n¬ýÔõض@Ê•éCž'¾…°‘Ez©¬‚ «† u*Ûl §Ÿ\xD±Œ³S÷£On’3´s•ÇáäJ[œÓM®œU$\e¦XFFü '׊Ã2NÝäj+'±Vnr5Óƒ$Éâpr¥½8Íí¹ e(Ÿ ʬôö–8Žy‘¦ Û'ˆ9óV¢b3LbHîÜ™g”¬ˆŒ˜ŠÍŠÈªPyf[¢Ê•±Ž*kÐî-.Å’I8(Ÿ‰`�Æõ*Smû Ôg‰í0î[1•”_É -×¶²‡ÓO.<‚Çž¸0„�4¹‡¬xw Ì‘ùñåß¿š.WÐÔóg—î3vøòço^|»¹ZÐçâXüôeïó߯Wkøñ:¸]¾¾Ý-nhT’í¬|ÍüÝruµ]˜qËÞå×ë�ÿÿÛ}x¿ ?|ýjðúíâÍj6·[üm¶Þ-¾Yî^Îß! Ö¯õ§õr÷X؆íü:[ÝrCË«þá5hô¤K ƒxÑ_h¤BGŸ5Í»Åòí»ÝáËÃ�Ùëjp²Åà>4ׇ3Òï͇ôû™ ào˫ݻæÃâËÿÒ¬ÿ�� ½^ÝnCf»¸¹]µXœöú‡šö—›Ûí|1X½7kNN×ÍÇ·\?ÜØtãÝì®Æ‹_—Ì�›Ž­xWCìÞ7qh(õÜ+À›ÅW³Û››ål=<Š­ÁÏÌ#Ÿ´«„õê)k‹µà~WÈþ6oÞÜ,vÇ1íŒéb+¢‚ø�¤â;š¾s&+”hQë™oV›í_{·Ü-Zû«#W©<]þPˆxó~1ÿîöÈlu íqIqsd¼Ý¾™Í/ç³V8Y¸ëÁT†æ£$¾]Ͷ£Íúfz|‹‘Vî|°ÑF­‡;ùýýf½¸Ëpý�gª4�† �!öGsýñ€j¿h5¨3±eÄmÆÔÚ˜ñ�‚Î÷›åz÷¢•µì/¯7/ym¿`á地»™ dî-;™ë±Œï\Ä®cý †´y¿ØÎv›æ¦’àŽ¦j£ÍõûÍÍQ�çq�æ²ã/-¨Æ/H4šóÐ_ŽX„ +#Òç ßÿ¢ZŒH�Å|aDâœHù¹0áÕr÷ýlyLy:c.ld¨¯¶³÷ï–ó'Ç‹gÛåîÝõb×bhOn5/��¥ßÁ+pf†óoÛ· „ë9K^­éê§0Iµ3� #ãÕ¸—ãśޗÏÏ < O*,zÂ�`O. ìé�µA¿;�=Œtòú¿óÝps»¾‚n7G&¤B<áÚÝMóÑnjÈ�ÝÝn_ß®ëysߺ¹¹)�Ü£lxOV¹Äóîõìf1Ý.þûæºå-ÝöPC=bÐƹ¾½þn¾›ýºh±�Ã{j„ëÍËÝr7?Bl !.xù�ËU›‘nz`!þdž¤çq«Z­(ÌùXæž¶áªs"uÊé •ÓæÑ¿�rÚ)§�rÚ)§�rÚdo¶3ËWßn–7�zz†êis£íyk§Íù§�vÚé£%0�vÚi§�vz¼g£�ŽïÖ‹õ«#�{wTOÏQ l <£÷¶ë²×wñcŒîj¹šµØýyÆTñ›Íöý»Íjó¶¹ܑŻ‘Ť#‹<¾æ�èÈbG;²ø4Éâd»¹Z.¶�ÀØ ŒgO€Ëaì㉠c'2v"cG;ÂØF"Œ_ÍnÿùÿÝÌß-¶ÿ¾XÎßý�ÿ­Û�sŽd²KOÙ-º?iѥݢãñ5‡D·èºE×hÑýëfõÇõìf±½=–Ó鬂=ã'ìy!ž\¸g«!�IÀgì>ŸxÀg»D±W-TŸÀÙOÕZÒ©ogó¸i�úü ÉHwhBÃ=ŠC¶‹«v™SÏ�ðw‡'ë䳓ô§;hô\\ +Ÿ‚øy—1ž‹ÚyΆ�´8ú±;pôñ�èHò…ˆÔ9¨4çràhkÏÜÙ0ãîÀѳæÅÝ�£gÇ“»CÀ?Oîü<ùn*VÇ— _þ3NäíXòÙ±äs4Óß+ø¬ö�tg�?ÕIú¨�9glyòGî4=×ãŒe�»ùSÎCÜøt޼m;Ð�*t0>¢;UèÄóv=ƒæš§39'ö z—ºO®¦ñØéc dµ×?Ôø¿‚»oŽ–�1w¼ƒpf1í?ý¦Á}ÜTæ“Ø…ù”eµ.{ήº‹§—g梹Êp.‰f¾ûtö© +†ÆóO8s„</Zÿqˆ?>åc›Ûkç"�t‘œgCN•Ö|Së¹-µ;Ñ“sYm¢ßbG['ÿ?¦•÷ó›ÅvºÜ>]ПÂãÎÑ·¿›½n”s2ìÊ^s +Aáï--·…›˜Mo×óΙ +=]<ì§½¨÷iaâW&>JLŸI>†!ÒÏpŸþ�ÛÙúæM‹Óráê¸ëv“s²ø˜1>iyøNBÿ¹(¢�ÙçlÈ …OV«?c¡�£zvGrtfÞ�óŽèýHy¢ëýíŸÿónµnÛ„?þsõôS>W¯ÍàÎä\½¸ùˆÎäX½6'vÇêíS8VOô[øÐfWËÛð±×?:´ˆ38“”jO7”ç);^-W³ÙJÏXÓüf³}ÿn³Ú¼mÎÜ¡ªù”ib‹`‚3¡‰O7ܪ£„%|XJøºùn¦s!m‚ØÏ$â»Å,� ü¨±oIÎ?¬ûɧh]z.Äï ̶aUg"-E-ô�óNhÐ<¸Ëgp8ì¹ËgpÚy;’Ô0œ°–g®<ìa+¯›ì 2·ó‰2j1OÇ~pŽ}$°:ôŽÞÍÖëÅêåbµ˜·2qTï|¨Ñšûzï<Úê�ÌÖÆË›÷«Ù|q½Xï¾™½?gÞö„sõø|<½ÊGQøØxøç–®çusC×ÙpøæC:;fØB;/K×I9ôº¹Žz6Ë©ù�În9µ ~g"[¶8óÏÛ2ýØVé›íbñGssô›å±€òR¼×êáæ¿ùbÝmZˆi›‡ÑlõÛìɪHƒv³m;"dnx0)´ùà^/Þ¶!D|ùã§Eo¶›ë+Œ®~°Ö|º®Zdr0?Ô VËõbÖüðùl5ÿfÓbEpÇC q½Y7'ù³ùüöúöxJ8Äðž‡ävAf‡æã¼ºZî–¿¶¥»ã¡ÆØ\p jûð-�¥ñh‹·=¨’4[/¯Û ä_>VGžN®šùŒ\Êž\äR‹Y:; ô©ÚsºÈ¥óô°ÖïùÓ‹\j1¤s£mXՙت¢î,–š�v±K]ìÒŸ9oÍåÅóŠ]š?½Ø¥6ûlb—ZÌSdzœgw±Kõ£íb—#oû”b—Ä'»4z±K-†tv̰‹]zÜÄrþôb—Z éì–S»Ô÷Ð~fΙèœW¸SÊÇ6=mâY»éùÓ§çÉžg×ep­éÈÍàúýò÷Åêæýr±zÕ2ã1‹žqÔ‹›«Þfnh£}·<Ô»Lš­A¶]\oŽ…Û�ièy¨}¶�Ú-Fv>1Í¢'¾”QOÄðԃחðÞ¿„š tnFÑåújñf¹>zŽCa%¾_Ìvã6ÜòP½y�Aë]Èz²þøCÖŠwŸ|¼úc“Ö^5Î�¡Q¼Õ ÎÍ,þ”3„§�}üüHÈS?ànn� ûîö™8cªÒŽœ 9鎵;"ÒÜ.úK ºñË’�æ¦Ñ_Ž8º #Òhnh>¢#‘0…©³˜£#ƒ/ŒHœ›txެøén™¼“Àq.6†ÓY;«âã³*>Ƀ ùýòív±X ÃâËåújùvóå¯ËÍj±ûr»¸úr³�­�y ;scgnìÌ��¹ñt¸Ú\ÎëlŽ�L~YsçÔì�åõíîHÖäÂ\Ù +5“æƒ[¬à[; VpË›¯ÆKR_àJ|áBÐRË_0e8çró~1&²íöŒœ™õ ÄáOÆT!þt[Åc?šÀ.Ûö&Åê�ç0«ÜéÉïïA¬¾Ëpý��%ª³Du–¨ÎuÐ ƒv'c‰b³¤:KTg‰ê,Q�%ª³Du–¨Ö¬òI[¢VÇM3g–ÓÙ×ƾö’•¶§``{ÚÝ?óá]Æx.VÄ.óÌÙ’9@ºÌ3�Dg’y¦E.�3É<Ó:†ül˜ñj¹û~¶¡ãBEŸ5Í»E« 9wýC îBÄÍ×B˜{@Y®Õ�ZHÜ(p Ý[^µ‰æË;óÍÙy�ùæþÑÃÄ�wæ›ó“ѳ'g¾i1¢Î|óØècg¾éÌ7O`ª;óÍ“ž©Î|sžæ›ÈŽ7ó#Úã9o:õ²5ÈÞlgóÝlõífÙbW„¹½)˜ÜÃd€ó–ÆÉ3Ø™ÜbHç&ðÎ?jäÝÃl÷›§ºz=»YL·‹ÿ¾]¬ç-´±Òm5Ò)ÌÖ·×ßÝùµMZœðž‡âzór·Üµà™7tù�ËU›‘n:SÆò„S–Eýæçí6-åæáÆôôÓ°µ Ão¶›ëÈHW?Ô¸žj¶.YÍ » d5Cì2�ýIÆèæÂé'Ÿ€ìc™Ä~¼Ý¾¾]Á<SêSM‹ÔÆâp&:l—)èÏ^éOÔæü÷Åö·åöõbu»~ûêÈŽûs²<‹è ‡ ¶Úy ¶Й„ ¶A¿.dð‰ûtv …Ä3õèàðž¬$êGŸŠ» ydZç-8µ· ÓO?]ý´ýì4ÔNCýt5Ôæ¬¸ÓP; µÓP; µÓP»¨Ã§¯£6Ï sÞ*jóqv*j§¢v*j§¢v*êÙ«¨Ÿ ¾Ñ«ÉúÊ©ªTcÕ«o7ëï¡:‰ï‚ë‡xkøËógß¾7íhóãËׯ7+T0oßüñÏÿó•Ë›?Ëù»Åº×»èý}³ýíŸÿg Ýó¨7xþ,êýüÛóg·ô/ê}‡ÿ‰^DåçøíßàÓAÝo=õ¾éýãG½+¸õçž?»º'Uï?eý<‘ ~½€—ýJŸuoWà/ðñ…ýh¯/Å ð®çOpyxAx'_ך‡¼0ø×à*ÓË‘ë/\8|�C3eøgÿóŸÖ8AW½·ÛÙÕr¨�|�?÷µŽD¤á£è'R&’ÁcÿÂȤ§™©¹°_.Ò4½4K£~Ǻ70½Á§‡ø¼Áúù³ÿ…0ïÃeY”À“”ÈÓ(5½êG*–9<¶ã;´ÝÏ¢4Óª÷óŒ�#ð0L-„ ¯ðïÂ~§Ï8ÒGöì¯ÁUé€#i~ÂF‚».Ìå4™ÒOfðÔ‹ðÒ îåÈõ.ŸÚ±‹Þ˜ëµA ó‘Ÿ÷cúB/ÿÍ>[÷ì£áýJÿó%RóMkö'{­¹á¢íÜSÜ£¸3#×Ã4w{2Ø®(s~öêó  *Jó$0#‡ mþa³óI^àöðÞÞ巛݋ùf{³óCç@ÿò‡ÅlõÍ ð;^Ûû|4øú+žÓßl¶×æ7~ˆeƒ«ÍëÅ«Á×ù+èõË݇Õ╾½ ÿ ‘)0"Žl‰8Õ•j`樹 ¹Èr¡kÃ%¤åÒ1 ÿ‰]ï&‹/�uªLǹ"&GZg$ ¡€9T—‘–@�„‘b/ì—‹4‹²~’ÃÃÓ<’ýXFq'wñ™ +ÄIc�Ö‹ˆÀU[gâ´FÎd¶_ Öwˆu�@ŒÏ²q\�ˆµN]_ýH‹Ä(N*‘¥Ê Å:EIo¿P ý6ÂE\/¬Ê~ª2UŠpA˜¯Šó~¢ERŠ›>§,xN–=‹UÖP(†û}xAbZjö ú E”›õSÉÔÈÌH7üoöþ#Â2ˆ• mE=#ò¥£ÌHjØ7‘H2d–å^øqÂ¥„G§8ø”ûàÀ‘ <‹€�§M +ý˜BÏ I õ:ÓûîÄ/°ä2”Ç0|Ü;l÷Xä7 +jtÞH6>™h\ìG#×áG'‰Sü'ĉÓÖ�DÜIÄ�DÜIÄm%âø¤1Ö?´…8v=éäáÓËÀ^„1š˜^ ‚ØwiÄã>ÎÍ6>Jä±ê9¹˜(^!s¾&6ïw�Š#”‹±2Iû2Ò(±EyŒ45µÓCÒiFHbaá%W;Ñ”‹"jnÌÀfŽD"¢ƒâ;RÄôʽ�u ŠZK.IÊ4_wyð°Åƒ‘ ¡t 8jîm "«>t¸ß ¬Ç ßIÊç+)‹§.)oów]E'+w²r'+·—•³ÎzÜIËí¤ek>¾pöã k@¾ðï�™¸`A¾(š�/îaC>4Ö†[cˆÍ€`-ÇÁmq?KD¶ÿ¶X÷3@­Òœ4~Ú°ÕÓ>޵¸ ‘uÂá“o׻ΎÚɆ�lØÉ†íeô“ ;Ù°•lˆ‡ˆ€ï‚m¡á'g,�rþæì©B:sªµ¦š+4¿ßÉœêCBuÖÏ2��h«J„Ý.Á¢[5.ö"4L +@¤�øñ3ÅN$ý(G$0—'µ÷åø1OÍmÂ;k¼û,ï…›Ï.Dì>ËÃÍgÁ…Ç%ݽ{ϰP­ŸQ€mqã™Ùþrcí®¼Ÿ¦*/m<3Û¿„•>eíÍ dÅìX•6€ÝõÁæ©ðT«‡ÝyVûG#÷vÛÎ>ÕmgÓÙ¯›írW#âþ/'æí”:E –P"q±&˜z$òž%l³C2±.‰ÄÀ]’ã…É1‹Í–ƒ¸Ÿ úêꈈ °GªP °Å´¼(¥ +dKF¨íg& È„ÄYAÃ,U¨>13¨È‰Gʾ壶*ï+)�aoC:êu”M‚»áx¦î‹\Ú˜¤<}‡»g¤õ¾D +殢fÒÔ5s+Ý=ïPÒ÷u7•¾»4"ªá]иÓâ¸/:©öй ªØð‚ÀœK_3"©CÇ1R"w<9Íunì(�øÁbdW‚ÑY5¸,ÅëíeØò%?cåi±(;¦Æç¦mZúº Äü4‹é±@Òã¾¢‡£À,„"³`Dü�C¦#¸DÉÌ^BjËEZ¨¶™ zíÚPeÈØ)4–¡ùÉ_Lí'X¡±óPzU¨$æ¶¼Ÿ SeÈHr‚G'Ý…ŒiÚ“Ìfô=Èf ;E�hwNÂØMg +ð}²/bb bºL×h¾&Bj ͤ±iF)ª`L7Ï"‰Þ­‡$‰¡ØÐ_áúKBuCñC¢qkQ8G{à ø€]{ðU¦|TƒFgا-ì¥í-ˆuŒãÍz:ÅwÕNœÂ@µÔ2ýØô;úˆôû_—«7‹2õ6¤{üqé7RISMh-'0ûVÁê„å˜åÚPÀˆþŸÓÊôµå[.ÊÍâ*6X†(®pqr…ûno +î± ÛvíS©+¦'AUéêj{¥'–{TÓë7¤QGH*ì;‚H¡ VÒ*%G 'øÐ#,ä®uåë/ÊmRè-.m¸!CfI4‡+.\ ]N42¸Ï6~áZ·�¾ þ\˜a¥¤9¦V¾Å¶6\y|¹ƒ5ƒ`�÷‘ò*«•"%9íGÆ„ L0W@®4(J±1¦�752L(¨ÁÑasTÂè€ø&’ÎLô7�áa š[Â`‘ýH«œ€òº¤J"“‚ùNRa~J²ÔŠ£Èx«4ê2H2`ýidÐÕ£YPÀÛéQG-ÑVi‚!hßʘ%.@k¡èbdufN„»ŒtÔ{$²JékP£">'|è¤@L…LR�ú8�†'ò˜a4i¢Rª"¡€‡v5줙|W‘!›èÀ]®f(N€E(;V ·46��€s ER÷¡+‚:Œ)�òõn ø�¡x#‘ë"ä`ŒÐÁDD"NÈ ¡4jÜD ж—`¦‘8Õ'À«5=Ig +†ø$Ð^P�rʺ‡w!“"†t?U®�ý7 1gD·Øº,Ó©aváS±†¢}@èE¨Œ x@†è[m 0ÇH©yîAú£‰8‘ †Üä Õ9eRÑ*Ž5-?¤1)ùKú:•I‚–�4Ï“@À +€#Zy¦éIˆ²*¢±&i ˜J›Æ"`•¯Èøæ.S‡ÏH@®Cg[,Ø,ÂCe}š¥‹ÂFFBö6‘äæÃ9�Cº:”ÔÒø0zóbXȾ§(Êx¶¸€�ÈåZ�Ū�dŸÅ5HrMU–º* +67â¾úç¸*î‹kÁv¶2$3ÔSˆ#€þÉ9ËÛl_׉âc‹è9ÜVœp ª€hTÍ" éÄ  µƒµ•‘.dµ%[A"7®ÊÈÁ°ÆümÔ.Û.|'ç+?Iq…e°– B‘,_WWìô ¶A½(– { ¤Ì ½]U;B< ®@™™^‚û´éwþ>'é+CˆºKÒRiñ)#²¾Q•Œ ð^U0ÎTÒƒ¨Uè5]bl¿ÏI¡¾¹Kt© ]|ʨ:b Eö1ÂÁUñ à>¡?n æw‡„ã4lURj")=e„·˜ª®Ša[µƒ´à`ûf«T© Uzʨ:b‡‹r¯Ã:Æö(‰üÐ/j`q�}м¹(ô¢Ü…‘a³ex\”G㚶ý¨‰ë¤»¨ ׋2ìG5ãg°n¡b«ìh]Ó(„¯E˜|Í‚kt©]xŽqùQU[eb›uCåG‡à°Ýóפ¥FÒÂsFÕQ{eåÍ„´�~¬µ6îå $Z4} Œ(æý‡ }ÇÆd�‰Ñ× ˆ¹²%ÈÕà¨Tn$5W÷ãE¢k! Í5×AŒ�|8¬Hæl&BWúÃT» +†Y¦ó$¸C@qôÍp…}ÖœC#°N÷�GÃ5#û¬ÆØgÙ +†3uÈ_Ä]öÍ”Æu £ËF£k �l¿ �ÑÝ�!ž*«å uàÑZ`¨Ä`Y +7wU¸¨%H-)Ñ.¶H¡_ÊŒ[“+Èy§R &ru°ŽóL.7TñãŒVè*5ùhz®-Œ³mÖ?ÐV�o—{eëüP¸™òØNç4h¡sgûƒ5a:%<�¶£áãJ¤$5aŧ12$³Js1Wýÿì½Çv#G²úÖsÎü@ XÞÐÂÓ�IÐ{˜‚!,a¤Q/Þ¯¼Í|Ã]ÍN?ö""³ A°Õ-uKTu£ªÒFF†ËˆH“<€4Ñ‘1žcª ¬À vDæ¼ ¨#\d÷ÌTdÑmÆyÁ»bKå¼ÂÃNŸÓŠˆòAò®ìtNÅÇc¿óN‚š�Õ7¢Û€NºbSnþ€ð-M'@=pyGPæE2ɾ¥x~Óô¾D#&ž{â‘¢l +d̙̎ܕΛ"Ù!v‚çñ� …N§)ç�Ý#·C²— :Ê’A ÛÂ3l"FN�öæJÁæsï456ÇoE®‘k6¹fÌ—™ø²nÀ/EÐäéÜRÕY™ñI0™Fe¿CK Ä<¼4Õ¤sVâ7è•E‡$‚Ãtîš`¿-@&ra·á¼p:*RÈ  ô�²ífPW%æ I]9/ŠdØ£á8ïœ9ðVÆæô�pøˆÈù#ÿ�Q� +pcu{SCÛÜéf:ì(aÁü#ù J¢bzɆ‡åä$ ¡Ë„ÉÄò‡� .Ú"ˆQOaGƒ ®÷!žý1³à#вðB·©ˆ�.&Eòge‚ úÉéûªˆÌøÎ\;$LCå× ¡?©¦!#0ŒaÐXñøìcÖM´™SÎEM…Ú3fŒA?¦ªüñˆ­äŸe›d›Š�ïZÅÈoÇCG0<]…`Æ@pÏ2‡gS1˜ë#±<\w4ŽâA„€›NCÇ]²ÄqF‘€N¨5–!ß!ÓÐlÿf�®ðÙdþOøŒŽÇEv:żÁAUÊ­g"8¹Á gŸF¥Ê¬÷Ì“FBù%P~a’O�dp7u0‘ ¶ø‰¾e¨¯KH 4.ß(윗¨¾ÐDæP!‹ì܆(ʘw-¶e*´xR? +¿¯¥%˜¿E3 ÷LS£IЧ (,ú¦-İ7 Ô2l’‚.D$ÆiDÄÉqJ£3S�]L‰Ë­¦Hr+ˆÉ<©*(ø*õ(G0¸H°Çe�;u�$bâAºªó‹¹`*tâÐ6ŒI•'õNäAÅ3EòæB>R示&°ÕЙönbb›øGFÎÕUe¶JŠ_˜1¾ +E—þøõ_³¶?7‘Ñ=D©àI?¹ê™Ü䮢C'S0ßIr>B1€BMDŠF€蜛IÞ +Iˆ¦Hîš;Y‡7t’‹'�LÝÁÈ:‘Œö$Q3³ˆ„æÈ$¤¶Š‹Á¸C$�©Vt¯sgC@Z:ˆE·¢ (‘£k!Ê;(á©£­éI 2dãQZ"õÏp™ØC.–ä[%’˜K+ž #eàÒdœ“Éz!±ª(¹ê*s«‚ß 1ª*0ü“ubp´}0C‘}0{:Çùêtx-ÙÇRª‚ÎE"I­²Èœ0Ù  |"Úi—Â~ÁÓŒ˜x§ˆNVÇL}¼¶K0EIÖ˜æÆÙ!ˆ.ë×|¥ u'ôg®þt« º‹€¼iN¨ˆ�— ve1PÇbg2`/p8tɇÚhÚ3ÔÓÜ�z#ˆQeöÌþ5¨i•)PøBQX-•|¦AJäáŒaN¢A¾|ìèÃÈg^„x + Ÿ·s£,È*²ÁL]Ü΋b6rqè�¼MPùD©‡Ñ/½ˆ¢±\¤b"Et(^Å*²c*DyÜKœb’òC®ûÌlãé,d{š_¯áùËt¡0z#)ö[ÀH%¬Ÿè”E +T�ÙhEÌE�6VŸŠûU…bjK +$¢ö&"m�õaê¦9ÁS<áSLuÆŽã,ÄÏDâ�¡>Y»ÇjâmY@!‰”¨—Âm/³Œ˜ô*CÂC[ƒ¹“ÎvgÆlhÀ¹¾…|òñÕüyI‰ÇsÌ6¹ÎÜóÐI„y¼9ïÐñŒÎêMÛ+NɸìŸüÀän#ô.LÕ§ºûlwÁ5þR·�¼ oÅ39ÁýYdgS‡Å_¹ãæõÇ&2e«ë쬞eý“AsC‹¼Á“¢†!RªÄõ<Õ%Lã`g¤ó¤é#%È c€¼Ù�ÉMÇEŒší&é4U’Ñ‹G™R¶&Eb–Fr~°óø‡;7îš`çëv6èŨ]n’{ïÌò¼�·ÐŸ÷k°‹%áü~ÁȾÃx¶Í¯ ˜ å¾o">Û'Yqü´Íws}UTÑY.7LäIEú½‚ñ)•†w`ˆ�lßýÃß�òÁÑHVdLSd6c£.ì¤ð(”;Ç-£7â<óŽøÁ½£>d1a�à†:²_p}ŒF㲇ë´2:'¶-ß@Áë£ÌÅ~Ð/P¬u‹€ +ÒSзAqcâ|F ƒ«›¤È‰†HÇö;Š0ÙMEãƒÀuéXNqu9…9õ˜Ë´d¢§–“Õc«`n79©þcP&eDCK©H¬MÓ ~òÇß…1 Õà �â%uÔnM•ò÷`.4�’þããð<ãSc� O¼é™0Yèõ¡‚è¬i”ºïúdáÊ�’æ9@¼co0 �¡Ûcg/mÌÉ�Ÿ%ˤ§cžêYU +�6™AgdH‰ñQf¾Y¾\ Ù§ˆ˜dO¤qÑèµÊœý~Ò8Æ\±šoôË�ßÿ[¬ZoÄ3~eÆt�9bŽJ”l¢ßº¥:jì“�ò-ªáö �yµñ§°óÝ®ÆÚvÃø«N�ÌåWœŠJ¬(5$¨nCö êÇ~°?Ú5¡¢Ý&ëÁ;•)ù{YôúáQZ.7é‚¢MÏ–¬`$;s¬‡�Ý–10×�.pƒ1 j©Êpâd¬®“òú^m¼÷õ›ñè£�Ç¿¦sT›Foüõæ…FŽ!Ç”iT"ü¡Jhšeaoè…LO—Tô8�˜,Ùœ»ødR„%$ƒ>¢í†/>³¨Ù/lf?Ú7»î{˦‚†lc²„ŸìFœ¼çÙ…S=Lî­.SqR¯Ôñìñ^ozFv‡ÄÝRqLºÓ¥Mþõ‘Aéö¨¹Sš]Ÿ.¹²g«{w£ÊžrÔ��µa?ÛÐÕè³Ax‡è�Îøž!ý<†ó¬ ‹�ÄWöñ•g¦ì”Êv ÅÝçÌÐskð<� ­˜Æfê{G yæä¼jÈ�Ý‘@Ö¨û˜ñ>Ú𦋝ö�†ÞdÆaõÖ« YñMSvdÎ\n¶ = ø$wò”Bï­aG€&ì$P‚ ƒòîap�î�’Cpv&‹‡5™…Ëݹ:ó7w_`ˆ S2<û]ÔEφÆå¥‰¡«C{š6¥gÏJäwëÙÕÜ]Û³Í :‡¤7ˆB;Yĉ”hƒ…ñÐÆÃÙ‹³ “ga£ rC`Lx6ÂäMà-ò�ÎcA=Àgoò¹kÀÞ: Áü¬ew!8þ9‹ ±äx˜Ët^ç¼`*žþ*¹ƒyà�â§w èytï°·{ÛëAo½kÂZw—€ë²î’ðñ9KâLÁ]{÷ÛëaÁ» NãPN¼±Q MW=ÂZ (…Šì�iúecÑœW*ºÇ™ +ük?Ó퇰ýÕ®¶«Û=8/0pDãoÏ;CdÎäN3ö &ñû£]}´ û91û 3x¾at0¡ê&¿À ´&ò�Ð|€™–Xø ¡B¢¨* +—T@y2¥I‘õ_}ÝŒ A1¢òE°Ø\û�!2ǰÆÓeÚ/ˆtÛöG»º]Û� N�ýÝ~¥™¡kÂ~¦öí§w»vx´‡°§‹ay‹(ö45Ь4Átß©ºÓKud¿`ÃÐí1²�vu»¶Qì1$ òå¯ É†kÂ~f`” ³¯víðhaOcïf“'F‚ìÝ�4½�£#ykªD�Fá1 +/˜T| ØcË165ª7•1¸¹“)¾Éá‡wìM£«d°`Û€ÄI �oø ­3Ã%§(H½¬"Ì2§ÚÎ=ÎE!ÌøŠ¶?’Û }:@3ð*FHÊÉSÌ|§6Pt¦¥Ðéò‡ûŒMŸx¤¢›‘¡k,Æ/ââr†(¤‰ä‰ú¸`ÚxNÈDMÑ�à!c>›†‹§2—]wñrª¶o\å` ˜2fnmò:&@EAÛ“¼Í9%ÇGwß¾®Å9 zK+ÐP¸¥¡áÓF1ÑÈÄåi»�gRjº2ñŸpÇŒ}¿"x<Às®™ù¾æíq)F—bøM1†ak üW†~1Ý0<ô‹ýqoŠù¡,oÒ76½‰<2MqLoxrB2±Ê<–0¡ )£ö nzãOaç»]™®$³æ÷�ѣιéMæ×á�54ÔÏè(ìšèÈÛäWày¦2…³˜,q“¤›²kzÐqêµ½’‰¾ªdŸV™ ê�ùJf& i"õ”¤Ñ+Ë0*Ï`)K¦V—uæÓ1r™ïG{�UïèIMyQÞä5:°mr‘@Æ6yü#fogÙ¦€a^4»‘!ŽÌnž…çf7ºO /ó…WˆÇÙ/˜TÇì�vÍ÷žBŠjd8<ÔHx¨‹ðØœÊqعßqÄäæL‘9+ºÕ‹T9Ö¥Hˆ—¹8oÛ +HOø™|³ìÚd´gªz÷ëÆSn´�¡Æàžw*‰á™}ÐÜæ¬ hšâ±¸ÑùÛñÙ •©êü93ôì‚ϾݨgÙØ›ÄÐ�œ×ÌÚáâ§÷íh£cýŽ tdœ£ó�¸‹Áž޾ÌL„ä”·ã»ÃŸÙu”#ËÅx5¹­„ ÝÆ_þ+C¿8 +ýâ_\†­H ú¢dò˜™ü{¾}Ï»Ûrý|wìæ¶?%¿LÉ‘Ùý ˜BÑ´1(8Ãevï¨ìýEnˌʜÎ"ÝEælŠoe…;• ØI8ò: =Yx(½c×…sâÏ,±÷+A&¦�¼MŒMÃKΈhQ*¥sòIü*NÖ¹û/ϱÍJò_èvNY¥3L'„�®3ÛäÈG§Öµw«»Y?å~QmhÊ*ŸfxèÿúãnÄœ›cÔŒªøT +ö1°Ž.Û"ùBš?õÁ96ö¶ÔþQ‘]@š¯hÎ Ñ ¢/‰Hù™/‰¡„͘SAÖM†©RĤŒb*¦IR¹`‚©LJ9H· 1–Dvg[†®c-0©¡ N—;ðÌŒ9€ÈdŠyŠ–Y]™!X‘m’¼N@ +Ïèf?ðLc¦¨²ka Mÿ–†`Ö—ª–¢õ¨“Û"2‰òhçÀ$?á^(¤cºd“]Š ˜ŒöÑM"‘ �Rû3ØÊ˜SÓò£¯v†¹nJ˜XCT˜á’î &_h…r{ÆpH=ŠL“g«W4Êâ�‹£8‹‚Y#u•Séñáñ†Âº OUxÂàÓ&ž�ð$°…'Á׳c¹@QÌt»„[rByÌtò ¤!±-(½; ›Lò”â)ÃöúØÍ0¨©Ì¹Ÿ¡úÈçáú#­O�g�cO³ ÝÃSyrBOt±¹w8t½­g´xGúè|ÈèäN˜®g/mh®(¶NÒð„‡Ò»šh1ó)‡Ñ‘V`7qÙIÒ(È +½Ž5Òn|¤üV&²`Ѿ M£¬þ˜ÒƒT;™¾@&u…ÝyC¹v(J¥¨óß&c9ÚIœ4Šd cr ƒåíÕ(W­Èòè0Ç:Œ“§kÒ(í� Ù¿oU4XZ†R¸h¥ìñ�Ð$&Г(™§kòÏe#¸c¤Ôc˜vCA+±Éöø(ü¦ØJtæ¦$ÁPÉ +�v}òQ‚®ðÖ¼q +lâù)]©�6ô­R0 B£4�†®2ë6š¾<1%ŒÜ„Eº¦4š˜¿¡LRû䪆¼ý@ùX8+¾¶Ûø¬Ýb|…NîÛ Óâ˜ûödyIpeÁWl7;íA«äëUóË×l—F„¯w]À'!?óéEövtÀÛ¯ÜÌÑ|t �ß‹O°„Á [�BG&lx?i;Àë‰MOÜÜi}tS0ÈŒn‹ °uUê?¾²ŽÉ\ÕÞñÿË¥ÕA±jµ&[—¿ó5á”B·4ºIÌ?ˆÔEtÑÁ Eäbz!ÌQFáéìFlS‘($�Ü¿‹Œe èF­r‰´ÁäP )­0÷Ûà •ªšÊ^†b2-T5‹D•™‹¹·AlD¡¬]¢„wY°»UØ .ï–´L¼uSë¶ÿºÄ¬«”Ì[’è>P ß:»Gø3¥lÂL$èLoÒ5.¾â(5lßå1‚1~0�  œ¿ha)ßìK‹YÞÇ—Œ½ýø¢1±btÙðí×,Q�±¥#ø‹‡ÂÌøòáÛ�/à¨Q[upÁÖ‚-R¯�÷u „‘ã)b†l؆Xr�0r@7L‡¶ÊÜÑÝ—$æ­˜£=x12T7ì¢#ÍNy[f†g"r¨ Žt·ò�©‹‰Ñ¢"aÝîÇò±ŒØö;Qað ÿkRpÆðò›$�ˆD‘S˜HFÀн¿Ì±Â�dBÊæBáïªÈ(F7`Ú¼¢ +(a–=Ì¶Š£Ã\û9AÊ·ªjšóJÁ4k­Ž$ãæbEÊBªóŒ2EVöuÃt×±Hw=‰¦l0G~1^&Ï|Ô\ïE¼rKÀ[ ðÐ^â�A¯ºQèÙ~BI°»c’Œ÷xPFû ÷Åì(Ûe:K×€Ñü.^�Ë*˜�›¥wÒè’Wv¡,s{ÁÜL,û.ÂŒW”ÙŹ˜>—,x} +q*¿³Sßa&4täG/2tKÂ,4”­]ÆT”êB9tž-Ú^û9A©Ðè§ý +ÓÏ`6 +/ÅýŒ7³+�%ÓM$(/ ÷œÆ”ý—ó;D–®A’íÔÁ  j‚h_Wj°;Àvc Kù‰áØ +:)ÜÕ�2k¿i“g�Çw\9úD×ä!aBaI¥"KîÒŒ._b|E3ï_ð ùQ%ó«½2¾Eô "•!¡õPF„‚B¢JwËx·ñOlE<ÏÞ°! +îÀìVD¤+Ì^ÅQÄ,Þþ¨² �˜¥—ÂÊDò+Ê/ʂȼϤ§zʆ½�„½`MÖsÆÂõS%õAé`�Õ‹À«'…h{#M k•%zr‚p)»D|x•ÑØ#B6¾É•4�Û ‹_ÑÓh Ì´ž ]BÿbmÒü`îä\C�ºãC£‰Î '>�ùÿQê|�èèc�®�*_v²¦ò㬅Áº´Ž†ÏmÜYsnŸY_˜. õ4öv@kîé?ßí±Q3ªÁ=4¿Ä»– Lš£:¨¬Ïœ†ü’ÊÊ#+àG‹†DcŠâß >Aá{À~©ð‹Ÿh¦ßOÞÍ–àÝÝ{Þ­G iž†Ü¼;ÚòΈ¼¤÷¯£þáήіY‚yi‘¦5�ôËiì¡«(+"]¡ø˜ƒ|RAY¡òÓ�ÏÒ¨‰®Â(îOÞ¼t ôÎöuÁE» é¾´Ks·ŒµðBc/j¡½Oõ o6É6ò�½uƒ³ñíÊaC(§Ù;zd̬-�•œô΋ŠÞ·ãéR†…©ˆ§‡ðhÝðXëá±Qp*2aÀ£«‘yƒN€Êïõ´¥tá˜#„ ïÌðÐ/þõÇ=éÇüßxÙ«ï»ÕO7²ßò¯ýn69CrK<ÌCbù³CbyÙo(`cISÄv‹±`9¦YÌ„¨¾E#ºdŽRZ�Ò¾AnQ…6FIîû]ÄgîÂ(æ-‰šÒ|q6=DH‘Ö¥ º—9Óâ¸Ì™?ÚÌY·™³—HÑGÖñG¸ñ÷C•°3˜OF< #Ö� ŒXŸÌˆõ1F¬�1b†<£ŒØûÖeÄú(#¶ea‡Û¢ð0#V'0â7ÞM`Ä<ßù(2ºŒ˜!à(#ö¼õ0bOÝðXëá±QxñÈ€GWã]FÌo‰õ’qt�E·a¼¤Ø}£AŸyï(.ŒélV�®Ý ‹ºgêúÈ^ÔmÙ)k)<Ük‚�…:æ?¦kÁ˜lÒäJ0^iŽùt¦*Á²Œ±Hà-±}ÃÊ&¨GäŽIwEc,–�òü“¶4½º‚g=š1ª´÷øWõnð1NØèžEr�(ü‘‘oºµˆ©ÁØúž)ì·ÀŸluè/g­`U©âÀ·‘°Ó¾b:hAÝkÜ3Ä3´°wÌCÓ{׆òaì¡Ó2[¿aث̴¡"ØGm(2»?jr%<#³]9>ÜÓ¨eZO‹I·OMÀŠI":óÈý;ÉéÈ@13žöS ê*>?·['ÝZ«£ ‡ù{’ß½_þý¯ã}3Ø·“ÆþÎ^$ áS¸£/Þôª¾£|+_±º¾l·duƒï}ô±¯‰|£Qƒ=Ô©ÖŠ¼è9ÌrÍ—ý%ßÝAò�ô#kc…a¯A“«¨“«ŒN7Xùbuæ:gè“öÉnaÖÆûUô)í³6ƪˆCcTͶ`Õ«C­Çó­–Õ…2¬ *Yb†ç +³´[â¨3ÞkÃwR¶j�N­Õ³¾Ã®UëYð%Âqðf¾6�MÑ…¦€?˦$DðX’²Pãe-²/¶ÿïÖzý†E53µlê§DŠêOP½ÿo Ø[ý?wFo`‡3/ñ…?U[70mŸnaú€¿²sïc}KøGóá‰:ÞØ`³­ïÙûÈÌEš5*P2ë^üNÝm3Ö?›³(ì�ï/=a#�á�Ý¿çÏ÷ì]w{×áχ{ÿÖ›e¥Ãá1Z‡¿€[úlñ‹•�âk>ûña!®ès‘?1 JC‰ÏÿÜù½Eqfã´÷Íùúe¶·l¾Sjßêk-¤ÌYPçwÓ}³“(ôþý¯µÃVû×=¡¨Æã1׎aà(ù¬Å@�ûÅr¾¯%¸iºÖxS•D5_kùXöšYaÖx™U×.k½HUÔè„Frý|±þ¡Fâù^­èi�áA®ßm×-_¶\îYÀ�ÄiMö�9h´»ë? ®1(Cˆ@à°Ý꺿XÝ^±Z³ +ƒVeÝ—˜„Så²U‡>ÖÎk}Ö D}5²]> +æÔD�ýV¯†n¸Ž7J²Öë4ò¿±G>×Xc| `>g_äûˆšÈ-JkI«ìÛðýû_¾€gAI&7³ Þölàû†�fîÁ šïö'®Y¢Ý* jýÙV|zSøáÏÔ…qœd.zVê«•-•Øb`7îR|8(nj¾ÿ�d}`J¡g�œ�½ þéŒ7,à\ß ‚kÔž ª™¡ä™“ÛÄÔIA�Ô¬âÃ>R“‰›OÓäO÷¸Æ8¾Ià¤O÷W8oÜì$b§Ñð# +^Ž‹ìK¤Ô`“§}’º¯%uÊ'©û$uŸ¤î“ÔýýI�úIê>IÝ'©ûkI�È\Þ EÅ8gŒOð^ Љå‰ùP>iÞ×Ó<í“æ}Ò¼Oš÷IóþA4Oÿ¤yŸ4ï“æ}Ò¼Í3>iÞ'Íû¤yŸ4ïCó(ÙÏ@ó¾ÉHþ±„óõO¢?ïû>Dý»à÷OÆ&qƒ�§ýfð·DÏ¿p†£HþR÷“X2>9Ü'‡ûÑHÈ'‡ûÓ8Ülé«>™Û'só27¼;úg`nŸ|é‡áK Ë“Ài"þ™žú÷Mzüi.úzó“8õ +ÓØÎnÈ +^ñ€¦XÍ®xý’$I,�ަaØšÛíP(]UÍœbnǸç¿ÐàþónÑOqü/;ŠÀAÊ'"*tw:¦v—™o±"ú·:‹ø["ëßu†å˜?IlÈ'Çü{‰ù?ïûäw²ù Ûáf'¼9ì“§ýˆ<퇲:ý$G*ÿXvÄ8](í)†Á‰äeˆx(k"Ýî’­!É*]‘c»M‰š¢ Ú�«Çý-ÌWߌzK2¥mÖ ��³¼Í’¢Ÿq�ß”äáådß™äM¦Vgt—d¢Ýmyù&Ô*U¬[-_¾Ð…†­–—8M_‰%ˆôù½){ö»oN0?Ðćiíwëÿäí�@ì“ÍH�Ló'1Ãÿ³0UñbtàϺ dAWA“}ÌpNÃ@Ó%U1)‡™Ò?sˆýr³ ˦‚—7:Ú³Nž‰Ÿb×7$t?‰õôŸMè¾YHÎ'…û!ÏÁ4R2e¼}“® ÐME`9‚�è~’¼oIò>3ìüØ$ïÇ;ëùçR®IÔj–Û©~2ú$ŽÝEõ—R¨Ÿ$fðK¡>…²¿i{×9‰„2SÔñÂF¼úI™L¦HÊg”ô7£xÝnþ7_µÝ­}�]žoøî:]9rü9‰à§ýg ©�ñÉón¾Õ+·»ÍoÂ#�ÖjV÷#‡N¼úvü +vþä|îZå†Uìߌ¼Í·Jífí …É/*k š‰v§f9Mðc­v?ß·žÎ€¾æyóx— ÿÚ+æÖÞÓ‰Õ-õµ9œçÛåS:_Ll4iUºïPir¸ÚÐt®é­ÂÇÝ©µNÚ5Þ¹îÇ5Û¿àÀú“‡|94d§ú–©µF�€�]:�ýÝ={ffYÀ¤ŠUÎw VËòå ðï¾ê[¾Ã|«oýãφÕ?÷lø;”ɩx�Põ›@ô¤œ/ùÝà#0Õm˜¶Ë=¶{í›_ZýŽMø¶mÔšر�(Œ§b‚A"«aÈKìƒouMÑÉÿHÄ_NP×ßȃoʤ>%¾w$¾O×àÉ&ó-£�/Ÿ(ãåÚxpDÒÕïšÎhpzðåËo¾£|¯þMHð•U+V]N=#ù™èìžö'`Ó'oúÙ6ü +*¿¤ñ{Xcþñ2y65l«ÞA[kµ@ne·¡~šeþŽLú‡ ?€Yf/’õí6Ú¿¾Ç’ÝvÇ—«æKí_#ùZg2 ÛD_¡ón¾Àë¬mÆÐɇC¡Ñú³ò9TŠ�®mj¡¾+ýß:?ŠðƒÏv·¢D¡]±Zåßÿ¯Û¬U|U«ûK»[±ªm& ü„dôGÓ¦ßcýÎ~£ÚÛ›ù�W(×,vó:z\ÛÍ^Î}Ö}#7½ûޛך÷eÀà}dFXG¬Žµ*›¾MéÍ™ÕÈ#º�·‡-“dìjY=&ˆ;t&YƒÙÓÊx SK—ùn-�óï$iu`?õ²ìÓèôÖ.Zµb»d}ðÈ}xE]ÔÉ«×Ô4Õ6nˆ¢¬K*þPÐíwjp•„ÑUâÇ�[…Q€ŒÍ~Œ“¡c×�ýÕ©<üù‡ ªÞö�±¯Ð ¿¦É²Šh%I²ª¨lòIÑýÉ5MÒñmÄÔðˆÿ»`ÝÌ6Þ¿Ÿ +#Ò÷Ó‚?ÇwbÒÉ8¼âï'søö–w!‚!6sø´%Ïà¹$›A& ‰"9¨Éªi`:1)¢K‚1ìO+g²(ý$‰(Ì¿Nùɰd"fˆA-üt`ûŠþyÍ*ÿ¬Úü§Qô¯°YüutäÛZ¿þüÑc9ýVFÖF¾*º®}DÅ�"À ¹lVmw¿¼¹!– ã� E)¹ <Õÿ({c*[ÉN¾ÆÞ¨ŽàXÊwëC×b¯ËÍ¿ž)€žÅÔ$ ˜úlÖcqÔzüy0ö.É¿ÊÛ‚)=xÉ~®Öì4\²ÿæ–#Ó‚)J +³cºF¦+M4 ÝvL]Ñt{–SƒÆæ,ÚØu4ª?4‡Åؾù”j•bÝ> ±G¯T|õtÜn�€Õ*æïãl²“|ÂÅæqRøÀÀw'ù^Ïê6o­ÖC�`pý�7üáßÿ:)N‚:üþÿÙŸg†WžQƒ_ó°—�¦#¦¢Q(†)j’a:XD¥Ïvã¾³vßéI0¡}…cSMº3€ KNñ]«QpÊkŠ®*ºG’òìþþ¿–SRÕ]fÉ DUVù � c…Äoy·¼)+‚A©ÕP4Ÿ $§|¼‘8åÁ4u“2hºæŒÆSü(_)0ïÔ5ÃÔ š©¤ )›$k”ÓJÐ Múª1¢çf°b®d¬Õ-Ñ”}»[²é‹o)ê0Ì5 WÌP%QdðÄPWíÜ ¢‚îhvS¬çî–d@S²æiJ‡žU�¡Ë†ÁÚb–^Pnœa ·ïv·La´-UaŽ” B7í¶`†’þ†“µ…ãáohLð4&kªF8h2ª,a³‰Ìç¦Q¾ d²(ë²Ó˜ŠÑƷTÓE;MÕeZ4 )o ó‡áÿÑ1:�I1™@&;�A�&‹HЦ$Ëo—AÌÐ9ÿiK$èÚ µ¥Jн C0ERó#À‰¡ƒ·ŠÚH¡8IÇ¥¹mé{sØÆ°½è'ZW%Â[-$:Þ˜JЇ�ßÒ§-C¤`8$e0% §Ð£JTþÂڌ›eá-Òà\Í]ØQ¨�$™ºD-ª&ÅrÁä4…EsÁ;7ÆP‹‚NUÝé‚ÞÍtÕm4Ö‚h/¥3]~hÁZ’g¶¢èiKÓD´ ¨*U‡Z:iõ‚×­�Ký qÛBA¢¢,‰4à­rÒÄŒÙÐ’�TÅÀÝ¡ÚM* }q|’¤¹ÐÃñd’LGA‡G±g‹G4êÐÀDf.ÅÓU•‘!SÕÒ +‚` A6‰x˜¸¾îâÚãÒ I…¦ªØÃ"š¯áM/´ª +ÍK �¥äÃùa‹‚½!dÖ´½!h? Áž +tœì2Iµ)PŠKa|Œ¬Ø[BÀ­ +k„t×U•MjL$ÓŽ!tÉ�MÛT~Â`ï.Ý&¹°|NS2ì#–^4‚T\`Ùu™1KM`˜(óüƒ¼)XªÝ-œ£){X n²Q²ªŠ ë%b‚$h&E52¢æ¬CM$z¦—dš²* zÀ¶•tMá ŒìB€Ìâ0[�i!$Ñ%r’`¨loKšB¬ˆÑqAEƒ(Š�4š‰¿ð‡Ë·LBdƒ6‡Šªbh”‹Pšv?02�èð1]¦­�KÂ)‹‚Hä.�ŠÜs˜ãöu·œ¢h²Áf&P® ñÄgeòöˆÃÏl’/ñ3 ÈÏpÍ Ýƒ=ªLtXU$…v²ª8 ö§ˆha“@¾P#Þ¼aLÛYs±RÍ A€(!â0T¡Íb(!§Cú5'–Q$ï²!õP¨m —ÎJ0c�(…&IèB H‚.Ò†ÂHN‚Ý~À›Öp³‹Äª ɳ€ÐÚÈšFÕtMPh e PÃô0.ÙfÓœû 1.â[‚ t\" j‚*2š¨"q§eéhÐÆd^ÕÄ‘D,&¶ï +$@q`Já†"z¥ÀŠÒJêÜzë°X¾‰aËyÀl"(�]ÃþrŒ ÙÄ:U¦eÔô øpE{ó ŒRóf Â2h{Ëq£"¯ÿ_ÁêVò­ŠïËÀvý}Ï´8¥®ÛňuûØj·ðt'|Y«´P™¡›ñ:C3¸" d†vxÁ7ÇvÖîå}h[Í7fhÍ[š58ËúVë×ßÿ×-[¼ »öçÎÓÚƒ¯3VÅæs�Ý.¼ÿýÿZTN*Õ™GFëát°?Mª¦é +i1Ñ¡“¡3�À¾�dô‡Mº‹$DN�¨‚±J¢HG’@›R…%þOx+9ÿÛB Š*’)Õeš$È#ÆD—Uè!Fé:ÙÖèÞªN{åzÝCTUS!R§¨H�Iˆ1T•‘�BjˆÑ³ÿ‡Ø;þ�ÔÎ¥I ɺÁÙ Ém²Á¤] äT?œ+^FØMKDHI/‚¿Ý¦E�s*ѽˆ†�“`Ë ˜œSiCl�1(Ue{’J؈I +„5™¥0VdÆ@tç*š‘vÓ:ã¨$—è‚„–ôRQGåÚG²“°A¸crŠáüocŽ �ü€$þvUV ý<±²Dzì÷ôâú(sÜ.Yo|ÞðþÓl´ @8ßïwk�g˜ëfü'6ó�zñ”+Vk�å` R¶ÇšýÿêÿÖ±øçÀR«÷ôK¾ÛÛð¤ ò–ý%ß8…ñCï�‚xÔÏËñÑô†zPµÚ-k(5ÚźUš LvÑÕb‚…Z«g™$àLÎêÓlf˜¨·ø·DŠ?q:PfE-_hX3íŒYVú/G$ +ÅA¯ßn~G²ðCÌòc¤oý—Ùg‰e?„éßE×{y<F +ûpvLý3öMóôýXãù{må^ùן½ÿۤרÿ>d\1#¨çÛ>7oÎô¹Ju¦-èý!xX3Ð. ¿;ÁßfšÛo?È´D=" +ÆûËöŸÙvê�2+CŒè†ôþbýZ+aìÏ Sã%ŒéÙÎsoΫÐîƒ<•±Êýl·jíLS¯ôÈD+síA·hÅÑGõÇ�)€ÕýãhZý| „­o0óf¾Ä-&3ᜧô0bû¦/ßíÚùnÉWl7xNC( É†ì²­3‰|ë—|/g'g\||aÕN^Hyiô�«ÛëXä³¾Û­•žì0¯t£Ýî^æ[µ^ì&FĆX_c5‘7�4ò-‹Ü;k�Zÿ·¦g|§õôõp[N©¸;ªõû «kùbƒrã÷ÿë Z•‡ñ ²Ø¾(ú›ŸƒŽ/Ý Wb«ë;éZéÑœ§ÜxòJ8ˆKÏbÛƒMtÛ�X×ʳh€IâØ(� Ü2+¡mþLJê…Cðö{1ŽI«œ4úÃ…ØPObgü•®›¢O7Lq Ϋ!2çÆ¥Q˜Ý‘í„ ÔXÔ|aCõ´hsÞ>cÕ9bµ{5œ }–œ&…Ù+‰c[Ôž*Á‘E5ãÍ=â“|wu4U•Õ·ËŠ*Ûu,GŽ>á’½}õV»Xoú¾J·=èØkâzuc«GV¯ê;Ë÷úV·ö…B}gV¯Ý8Ñ�o6_ƒb€î0f‹ìF#œ[§¬®�<³âo0ŠZÉ×s »€s'( CƒÎú˜Ö;Ã~·}ÌÙÚšÚÞÂâ@h‹v±|çÖú¾T©ÖÏ3j`Ëá.DÆwz&ߪ òËwÒî8kä¸éëä;@zµæ ‘÷ÌnlÿÊŽ~'_ÃŒ&e[~×ë´û£ïò�š-Ièö¸K�ZÄž‹íÿßntƒî¶Ø×o; ⬰=¢ÝF»�oœY�A£7„WJFä{„”y>Ÿ·;oŒ“œäýŽ~ ﱚ&É}‡Èì{Pd ++8s°Uz£Ô¹ËµÇ•Åa±-g5öò}ÀhÈêî'{^ŠóVÙL&„äw¨´·Ä9Ú7°ëQD®ÇöOò]þÛ;I¦1ò°m�=©‡‡Šç`Qév«ß;C =´~›Ú<¶ [ƃ6À†Š]U��tÛåZÃjr¼hªY°JcE¢"‚Gè�JéA£aoÁK¨ +ƒ€¯6™‘tMŸ&]ìzˆÀT1$>™ŽO,ë"ŽKš'ÌvòEw9è Ý�íð›i"•#%¬F#õŸ¾+Ü)êÔÓù¢å†ãO+Ž;`¬´ñæ|.kÖ¯°$ÀÙûùVÑ®`ˆ Š2ÃÖíç6í­¬›3TváDe¬‰™úw›`¤g¨M‡VÄ "ÎÄV&ʸ:z§Ï´¸Ž:¶¶o"¨+hí·JÖrV±Ý*}°RºÖí}òÎ`¿ðN ãp×uqF¸3¡yØÕ·1–Öj¾S +c#ûÌЕiú‡—²L#CTØC]Þ-; u¡‚ÃÔEÒ$ñ­ãì¼ãU ¼9îí²žá¾=2r á�áò ~¸PûVY܉öÀYùÍV±¤G]•ÞêópÙóC�ìȵ7d9§ƒÈ¶ï´Þ±åàö/V·ƒ¾îÁš7¨rDü º|ÿ»M¥Ö\ó×ÚK»±´ájàâ¥hlù†½®|0Vsòˆz§Á^½Ö)ÀrՃӇ׵0‘…éÎ8F[±A×ÊG«ÚU¼#ßptŒÌ#oûýÝ+Á¿¤ì�E׳ѾYKÝ1²7ƒjzi7Óùòå‹ß|Núý+Ës~à`š5ÔL*ûÅýºñKÑîé¾?ºøxÓ* ø±x +Í»ñ¨µËF´TÅjôòá5?–—é1õ\Ü?ÀÇ zŒËÆÆ>fYáóÛâ:>é1fœÊø˜ÃÆ7cÆÉK~·ðñºÙ]ŽÄVáaKÍ�í.Ö�eøµzŒÕS‰Zï| i¨j2rîÁ�°H_Ó «ûŠ�øN=o¿ðGþ2Õ¸T-té‘ÍÆ„±ijÓ-�N”¶¾h·Z§š*œ séÍä ‘3;+r|-|;í-¦Sñ àxHÖï’åå½Åäá@~$¨^úÃ÷©¤ú×*µ-¿Ð<9õ‹=ÝòËóý¿<¸ÐüêÒæ�_[�ôëâS×oD�d¿™VöüëþGÿF±ˆËäßZºÒýÛÛYÿÎåVÅm‰!|}%éOÜÍ?ùSKÝúä5êß[ìÜû÷³�yÿaxógò‹Oþã�Pв¤íûO ±š?·¤ø/„ë ÿåàeÎÝ^MùoŸ¶ªØÍýõ…îÏ Gù�9Yy|��ßË éùÌU}kþäþT™?Ù +ÏßÌ—çÌÎÜ|Tøy«’kοH‡/ÐÍ|ë,Q�ï-Å* sÙ�òÂòj¢²zÜ­.‡/ ªÿ¢¹`Þ?½.lvü ‰¤¸¼°'Ç G¡+uálµ·µpYß]¸_»·±´~"Þ-Ek±t³´«].]×[KçK«[K·§»…¥¼PS–*–z·ÔJ^E–áàÕòRï*¼¶Ö®—•ˇÈòÆéÆýrü°­,ïgs¥å“ûí�å«Z ³ü8¨-—µ›Ðr3³ÿ´Ü¯Gw�.ooù‘²yÐLm=°õbô©ôÆuàhd༕[ +Üßç‹�ÒA'hÄ-Ð�ΗãV1¸–�õLf;¸óØ‹w_“½àI¤^ +^$®‚Ïmÿa°¶}ŽÝ_†º²˜| ­D–îæW´‡äëÊΞR_Ù“¬•Ó¥v~å¦m=®€$t¿R¯=Ü­ôÛOw¡`°ò’ŒöShco®J> åÐñj²º:ºî†òs½ÅÐË‘ õçÎtèf5ð4_•ÒûÇ«›áöÝjª—®­f‹½ùÕ›‡yµø,§V›…úUx®u^‡·Ca}= ÇŽ_¯Â‡�r;|©ÞËáçû«£p=rV *·B$¿;ŠhK…F$Zí`7‘ÃËÀUä2³¹É^ìE­ÆÚÜ�¼¹>;+¬¥yu-1Ø{\Ë®÷åµÛ‹ƒÇ5@Guíõä± ±MA¾˜¯ ;j>-ôOæ…ËJòJ(œÊªÐ‚ŽÅÅý@ºÅãàš¸• VÅý¼p$^´uI,ˆ‰¶ØÚ;¹”_k1IÚZIÛíTC:L<ÞH×+‘] ¤;]zÍÌ/ËÁd®%kJðYN¨Ïò‰?�Ì…¨ü’©ÊÜUV€n”µ~"¤lmêKÊÁMhN¹^Yè+ÖÍBOéÉ =5T_髿•>§î&‹êÅZ6¨ÃA}]]ѵ••øŽfˆÏ{Z:¾–ÓÎÏrOZ¡hh¯æÍ’¾r¯hº,¥‘Ãí>^ë—ÛR]/uÛ+z¯„Ìæ({elîíuŒÃD\1n·7Ž�ÚaôÅœÏF%S²OÌøÒeǸùZ¾}Þ +ïÜ$¶¶WJÁ­ã|µ¸õt¹p¸Õ9PåíÕÝÃîöV²ð°}|¸²¿ýt{„(°Ý©u–vÂáD}gû¸û°“ídNvòéÕäN·“7£kÙݵhL——£¹À¢?ZjÖ;1ÿãC=&çïj±T馻ª\•c/Ëùj|y³þ7OÍøaGèÆã»óñN·‚n‘ã9“2Û‰\¿�(v/“ ׃RRÏ÷’ÙH$ùpU�%;ÏG¹ÔÚÒv-7V‚©‹{,U[iÞ¤—¯^zé�µª™>¶êéB¶ßÛõ¯·vÕ°ñ¸»<Ænv‹G»¯¡`wO0{É“n}ﺚÚÞk®4*û«ç‡Ûû±`ðeÿ⮘Ø1w»Á�t|°m͇rçÕ‡ƒê¥µ}ÈÞõ·n/A÷5�xÖú™€Ñ½Él=I~’É-ÇV2ÕË»—£ è¿<Ú®ÅGç5éè%¾á?é•êqLKÝ_©óÇÇÍÍûd6r”ÞÈ&){77X;¦êË'R5?²¿s?8yê?öOýåÁ©‘nÏ�fÍÀ"tsZiÁ³ÀÚ‰p¶#¿èg—ÆÚÎYóøâ ·f-]äv×Î +¹Çl°s�ç;›ç'ë�ìy¥_.\¬/ç/âw‡ë·¹èéE÷|£~©>n‰—GÕí£ËòRêå*Ï)ÐÍU¬R¾¸º5箺åíÔµ¶÷ðr� 6®+õ£âMèyA¿I>\nî$ãÖŸ¯•o׫™�ÛóÕõöm3Ì܉åÞÊÝ¡\y¼+=¶ïƒ[Eÿ}b±v{_èl?ø"KÐÍÃÆñzááâ4—yhŸ7ôG%¯Í?fý·åÇš¾rñ¹¸H=íDý©x] =•ýÁs¢%ÖŸïúÅüÂ~á>¿½¼ÊßFOrùÁþÉiaãìä¤pYº<)tW +gE㸠Ýs=ñ®Ø>ÜÏ—´ÕÊKé´(tKÍË» ¥ªu²u·‰�³²¼÷Z,g¯®åz9*WdIÞ¯dsKO•z¯í¯Ê§­�êÉZó²Ú¨w»5å>¸Q;½X¿«µŽ3(˜¾h'Åý—Ü}¨ùÒ©ìoÕÍ¥F©~™ŒéõÞK'ߨL��›�h5ç®›ÛÍèf®Ù|”ҭ倹ÜJ-‹÷­âš°Õ^Õ#ýöÁž|Õ®¶7;’��ïœäžž;í�ÿºy5ž·Õ׫ýü\×/G¬n4òpÙ}ZÑw{ÁŲùÿn»j­äªñC_’|/˜ÅGT\ã̤²£�è=xkµ]K†¯Ö"à {ø­RmÐôœ<>x¨³ØþÔ³|¯)… +'ÐB“àš³! �×lDeÙiÛÚ%³ŇíEÞS^V|×Θo•ø±ïè‰éÐ1+«…wHúb]V‹8Çj Ÿ†¦NrÓf1^8Ë-L¹!ÖûÀeµ§A× 1Vzv�±ò†«6ÐÞ³p¹!zá+«°vY+Yíµ£v¡Ö˜àBⵡ Ì¢¦‡ñlÌÊÔë7"%æ²A(Þ11a=^Áã84K¥N© Ÿ­ÙÇÕ)ÍÞ< Xp«ˆN*hoÉN§©5ó+Ò°ÊŽES‰(Ó ÷ÛöÙ¼jÈù�¦»ð!éõ�òÌÍoÔì=´ªXø×¶×æýv¹êh¹‰Æ’Õ«UZ^—iš-²À�ü¦¶I%‰ªÎR0ß+ÔúÍ|ç�²¬Pw‚WÊXñb£)¶[˜ˆ�¦ ‹:äT–¢m¼Õ¥‰Å»¥H»‹´ ÿÞ d “Бü &ëpo£©+ŠÃ8ùN¤:kÁ_¦Œ¯SiÖ#V =fÜ]Tƒm/ÏÒÎR –¯�¹0íá`†óI;ËžG>àõê}søh˜¯µÊí÷ÊáÝ0}ÉØÑѧ�ïö¦™JÐåö˜—„ÌPÚ¥!3ö’�ŠQíÍò˜ö°72òJ»#Ÿ¡°wä3ù$~0<ÑAÏŽœ~¦íîr«)5:Ýr»5• +tz‘â˜;Ê�¤âa—sÕçýcEÿÓ‰tǨI“ŠVf"lP�ӵჸ)Ù‘à”6»¥no„ˆ“Ö‹ÊÙÇ|½©4µ±ÛýêÔ3.OÑbó·igÈÑñ™†$Pˆ 6Í5Õ)|ÚKe EŒ˜o– +y $ÝbÕwÞµj9¡ÇZ«FYo§’Bh¦5Á�wœÁÓ¾·Ø»5LÆa‹¥ÈõröCÃáñMä–(¼½Ë€º•¸²9”Ç©l´Ýaï´önÁi<�•ê4Š£ndã…Š­ÞTØB¡~­áº»¾ÉOzNÆß)…ˆ®½Ë™ºý�4nFë†Wgb¡Þ àÌMžLã?…‰û¬â*-ÓIe˪ä=~çoR^[ïjˆEòEW·FÉs5_²º^ˆ‰ÅFH¸>I6":æ~1‘Ò6jÓ„W(Ñî§ )T¢7 T¢4pµâ™b +FZxgs3?hg#T<ßj9ÎÓ(¨Ø»„ø€s‰v¾*p:»{“Mß}`?—õ‰’¦èai]å>øŽú‹|Å«�LRj ꯮ß×°{DÌ.é›ä* U�©ö«qbuË–SòãþÞnˆ 3ºdGh„7­&çãâ€[f´™1sÓdÛ‹ðV1OgïÙ/&­5ì$™~²æc@Ø +ù~&ÿ›Õ�.RÙ5�Ú­v±Úm7AüµÅbÚÇL+ÊL x¼�k­ �ÃÕg :P&ÊyÞîÝ‘ï£ò+´2A½Y9� +Ê”y{ X£cŸ%ÊC’&‘Â7:ºö^ÝÉðž†&£Õ¸/ÝL°Úíæ›ªés®<¾JïT}sÈyÍǜ߫>ÅÃo†ÚozNª(á|Ù¦À …VŸÛÓÑìxÒnÔYëvòNS3 ‚—Þoƒy…{zŸV‘cªKcõ>4j¼ã…,9û%}­\s�©wž{ +ÃÞ›>jÃ�†î'Ì‹rž “i5¸ÝüÜ å´ß¬ç{P¬Ç4Qß®â‰Ð™¾& +–¶µûYf sÈ +ôÎ ÎÞQœ†(O|ÈôfÙ3«‚`Ÿ¥èy·Öô–�FHÞýŽél´í+ë=ÃÑDÎÍb’BàÂc<èý¶3û;�#¹Œug)½‹„ +dÄóê Yhåk�Y€É†S›êŸël ÀWVTfåQ.¯ðp6I}—%žÑò>ÎHq’V¯_cv{u˜ÖÙSzŸýR?6­š3*zѳˆ�{ã÷ØäD¨}Õ�>ÄwÜÙ§/Žtd�¦ͳ8_ÃMΘ½ú7ÏÂ’5«çëˆ|¥JêlU@yA¡�é­–¯`Õš¾\‡¸»-|„¹zO¶LÍ—oô|ÐM8Ù®“Nñ]ZÝ_­0-_‡z–/åmzÕß�¯>ÖN¯óûñ2¥ZËÛ‰&Gï°û&h:¿´A«tóͦïW¨ý%â‹G|û­$=Á¨1Ñh VÆ×üýÿ0Íh‹µ�ÿè*¿ÿ¯Ñ¯�®ÄGI©,µŠu*À†2h¬:(£Ž<éŠÖ7©Ø­uÞljQÖ|§cÍ"°Úz�& ãHä;,&¸öžTõ¦šãÝ$_aáû÷DçåÃ$ämŠÎÂmÒ0& Ó¿¶AΘ~&ðf½³÷ŽÞ¬÷ŒãͪVª>a“O8r– YvAàîx‚Õ&Lé�ºv´ ¾,ûäu:øšÐàL ÀÞ¢'NɶHì·ê>L•:s¬†²“]º m^m-oä¯Wä¥l8íî6«ë•–ÿ í_ ,'jùHoA»ØKióëÑ‹Ýí#eg=s¿|íŠz:%‹¢¢Ì B/ù’¬¬ + Ñ�ÇÈJtsµÓ‹ö¥5è&º‘ñwíRýxeï4ÝT¬\¢¶µ]LF"Ë•±¾2¥èPO¦×õÛÝ~òå!®Ü†WcÍv¦ÛÏõ«¡mm~�N* Wñ—Æòt“, …‰­-èfY¿<½»��'"—o÷ê-·þݬ§¢ë½H3”\]¤»¥2tCðJ?_I–®tt½¿^/Ç«ýDU¿‡ ò¼”,Š™×èæÎòkÝKDc­âr3´u´±¦7ï·jC1ë¢Ód1yлÈéË–~% ¥õZb-‹,m«V¼¡Ÿ4Ùn2‹ÑÄþæüUjÕTÑõ?¹§Íoë‰öchó²t·.æ¨ÝíÖ"Li[[™Çe¹Ó®´Ó‚j;^jaŽ —¥Œ >Ì%×ò›Kiè¶‹Ýhøá‘Z¡"Ð�P˜ÛWè!´�Þä¿6¯R‡¬|b5õÌZ“n¤}Ààk!´½�Z•’;•-ÞÐÕÖæFéåø‘VÓ1´—�«v7P*~à áÁ‚Ø:ÃR–BïT<ùDàÆPE»Õ^бóäK(Y^;|MåóË q­pqjž,^_IJ‰øI²œ«½F_Ö+ÐM\¹9b½ÕJ·©'1tW®cÙtòåê)Q{ÑÖ6ÊÍÅJ:Q^†ÛϺ~Vj»¹×æa,›Y9L'ƒ¥CÖl +ô;‘ÓÐÎeþ•Mi[3òÑ�óþ\ìü ?ŸÜp=�°ãºë·›ÊÁÊ&0–"u[Z¬HÏ›;I!}• 6Ÿ7ÓIÀ‘•ÕP¼m>Ž®×0p½‹k/CŸ�jo@pÂÙxAu�Ù�=ˆ„7›¡ÎÆs:P>ŒÄ„Íó[)¸ð¸ÉF2 mpfZéÀR'˜¨jgõT(I»ø +ûà¦MÄ&—*!¢Faw5—`róÁD¥šêéÅ‹³˜~+]�®ÃÉ^ãr¨ñ¹ÝTxµ`NZ³n& ›ØùQ)ÄfÛLÆ37õI㥢žr»7z6OJ¤]åh}ú'éàIc#�To¥Ðöî3&Ðv§ó*–Ó©¤ªÇµpö’hODÜ»\¥^“kÏ�•øK¿ÔŒ7Z—íØyõzÚ8 9 tR«íc)½Öïbgåê2T{XŠk¡L•“Î Fži0Þv•‘ÄÔåõžMÑ¡‡Ã‡s9­l]#½N”êUìb±Ø.·;;¿k/�ð&Q7—/`7n�ö�°¯:µôæ®ð�úÛ³•¼,À[<¤[ +ƒT`ëõÊå<#_¡}½´rcŒçÐÆ~¯ ô»8¯ÆÅAã.–{>Hð¯fì9º¹—ˆ@‘çK ™¥¸x;xŠåçŠû• +#Mƒ7Íh·¸¾Ä–Ì»Q×n6w²‰–®æç…ƒþ]T8 4SðW).Š¥ûup³e¯ëmx—�z߉•8ÕÀn¼Eó¼æa ’°k¾À¯ yÂ*ñêv¬!ÖZ' åvÎà×K’á…;¼g€XÊÛuÓL޶á¾Sã ^Jòá°1áè¨uÃfJMâ°‚ñ{Ç[£yQ7X}JΠG{Ílrè@{l6w;žêýì&”ºØ�¿îb^hRÿ�Ǩ ÈÍSHo—�íVc.p±›áÕš¼¾]Œ‘•p»‘ü»6¼`¨¼üݶ ª!ˆ°rî#CBìz|oÍf–e¡9°_v“üëÐ#â­Íè17nýï¼\|‡} n&Á‹M—€aCÄ3k,<®„ žYsº@�8Tâ:m dz[لﶇzÅöX¯×Ûl߸K6¼´ |Ø$+À˜´eøÎÄj¸¼¨J}½ðµÁ÷»HCP¿f“ó`š³ún%¶+‰¯BFZ>a4ÚÓØ{PËÚ¿hJ86W ôÊ„+±óËÃV:ºl�ƒP–¼üÃŒµ€{V2é磛õ´%‚lM° +ë†-„@žIÖ£Wó•Díñ)š*Ö_—oóÈjÿämuÇ+‹„®HÝAmmXã¡¡&+áà“ Oöƒ÷.ÓÒÇ„ùèårÀLTg·ÉÃÃ׸wJñ'+vÖJf£¹Çná߲܇» ‘j±~,4ž6ÃÏéöè×µ¹à(ª—�Tqõ|-®­Ja�j)Æ •¤µ’ÚsE. ¦ .�ÝY�vç•,@EØl¤Ûe&¶�5p­@µp{íèì>†C +dyõö�(/3h.$@ýAåeÍÅD ãä˜b=¤!?Ö] ÆhDº{|.ë\lº>ˆ“„ë‚Êmêo§x�¾mk\{÷Éø¶ = ñÓèÝJütñ¡O¢²p°+ê@åUUû·µÃHrÿEÏ»�CÅ�Ç— ÖÚÓ/™óXöâж)ÃQw$oé ¤Ûš¶âìƒÝxC«Ü‘nݸêÁøP­lr·¾hÁ>;ÝDóG~­öw;sÓ m(ÇÃífÞÐa6—9±Ù�åÑT¯¼ŠÅ³�¬½ð›\�=_±^uåã€t[ŸOTïýë0â§'"0áR�xý(ŠÊIYq6Ê:ê �ñº´åw?88/¬—š —ê`H“ÖâéÍÔ}ÄiEO?>¬Ì§S­nOiÑl ¿VÖî ½˜9ˆŸžDO¤àMó˜up³;=Î]¢Jn¸z‘9˜ÛK‚^N„L'ÒØíe­îH×ööéý[w Ý8˜™Žv»Õ eýèj‡zØv6žQLe3±ïi<Û‰ïÅ•A\W/zþ¡u¸{Œ™‡açùò©Å˜¶–Z�vçöÒ+ÁUH×(@«¥°«³tú)è¯â\åèfá±½: -­WC¹pCó…ÐÝC«ÇL{áäAwå™cÚ8ÞøSÛ¬¨³“‡Z›mKZl‰X"ÙlÞÛɲk§œ¾�=#Ám Úb»œ¨õj™Âw T¤^#MÎ` ð´{êfnocYÜM6¨Èºhø�‘ +oNú±Ã±ÄÖrëð¸”,5ÍUs ÎïÉÄÞ ÁÚÂ"ÃÜGTIÖnkÃ’ Ñï;Rñ9 ÏTP€Ò¯Ž:¹a~Ίê›rÊJ=f O ±l í)SÅ�pSæ)�Â+ƒÉ¼y>º¹s±”ÜoÖîâêåu$vºrR‰��‡0ò}wq÷A�×ÅR×+À0³µ–ܿˬ rFE€Voæ& ß8_ZÈ¥Ÿæ—n’eY¼a,¬&Á‰<. ñ¢²XÌ0ç6Ê ¹ê„^`«g½ThE+{ù®Wç)þ½\è÷�®3°Ì¿ÖϤQ)Œ«ç‘ðзe¿°·»ÉÛpX.Ùu�^ÊåõÚòéÈz«±tòfoeÒä†Ê©’¾ñо»ŸVêrE?.ndGŠlX�Á:ÙÝÖ�+µÔjûV2©Š±œš~ØmöW–±Ü‹ClÆpi¾¼å¨ÊÄ›íz7qœ¸ÜA~öÑõß�Hýz+}õˆ�¼)!¾ÂûéüdÂ:D`£jÚVúuo3ÙȨ®€ÌòqÞŸ,çžÛ‰ÚÜ‚ +ø­dc­íýö$D¢µAÜ˶‹ó¨¼&Ʋë©ÃèF¼ãËùØ6ÑnØ …ŽÆô‡Òq²l>¯¥n­þÒHÍ—îò9È�7±v5»‚@FGŠ¢Ç{wø0¬�}ªloiò$,1ë±ÔyL7ÏHž|J–O{ȤÕàãÝ›O'b•t"Z9Û[Ø÷cæZ=6¹Hlå%zy¾ŸOo&ûžá]žŸ‹®_Y•¨Ñé>‘)sB7))¸Bë¸tR�u®Lþnes·qÔ më»{Èo^o7nœÕ’�j¦zhâ?yYŠ^–ϞƷµƒA2rV +S&(�ä�kséV‚Ý8ûö5&áQD¼ üph –kUëñÙ·¥x!²—$÷{½äj!�Ú .,^F޼ƛÙmuiNç€�ÕoI€Ú@ô”E�áÎ×’åó.èƒB¹éÙŠû½‡çÝÅ´ÿ0Ú�ì'ËíndÞšÀG+A<ºN'Ê;²»�lý%Í·LôJ/\¿ÔI­W“»Û‹È¦Æ,·ÅËÛžÓîF:°_ºBô©ÅuÒÚ|DEbruDç˜H^  µ»qÂÒîK,+ÆeÐÆwêÑÍíμwSÚÒü*­y)ôVoµí %SǧH2Ä ÝP)êcZ:ŸÈ¤æÒ™Vª¨¶ ëp$8^Ë1=w”†u¸9‰µcåÀÝô�·Ú€P%TÖ�B2ðÖó%ÿL[vûùÚ¼µ»½Ð‡í|ÞŠ ÒNúPëYHoºj2º×yµ ¯¶QÐÓ6íÞDtüh‹¡­ƒÛ€€ =Äzt�4 ~ ªáÉ„¾2@Òq¶.ov�¹zmG{A!ÞhtžGô|¦yXy!U6—½ò=oRcb�¼…góxØ#ÄÎÚ™~r5ûZ²¨úÀö¿¡n–RÅ9í47�2ÎöF%�×½³ ©ÓåæÒh÷/š+"M� +Ž€~§"´àØÍAcã*Ê.‡†�áiå¶�`?.@×éȤ®¡§÷«èf#ô +裭åÞÞ€¸—_Ç)ó™Lh»wkº„I'Îj+p¼A æx­6¿¾Ée]»Tú©±¦ÁÔQýº’Š»½>¤‡Ó�ƒðeB¼hö6¬õ¥&Ìú,èízûµIâ%Qè�¢5L:1£Ð©x8‘ßÛÓü�ma£<°º£„¸½’\óÔpΘ sÐÊñ*š9Æsét´Èžœ—ÞGc�4c‚j G€CW)›GvÁ•ÖP7„£©â`î‰åôQQA2àO-+®ÔK%íòâáÒÐw{‰ê]iU°¹èæ©ü˜<<ÜœsÎ�G«¡œ–Î/¥¢ ‘ê§!AZ}-Ñ¿­.wbg õjˆ$篣½àõ\òð@ìŸ�w&QWÛ àäV?àõP4±•¬¨ÚÜæêྦm¿®¤@MZyMo¦‹)Zå�)›†7‹@âNîWŽiW±ó ýÜŸY�¾d`òÍ«!3'Búù +xVGèÅ„ÍãŽÇ�JðŠ/ož'WjkÅÍÕ›ÃxÌXÝÇö–j8ÚµŽœôôíâ¢_ +d¬x1–=ÜÃs×Ê BBÓéð +ën#ÕÆü~ɵÔËb:e¶k©ÇëêОðÍ„òÏÚEöî…›LúþÍÆÓÁþF;UÔ‚jü(¬é­ýÓ)ì£fìS�ŽÒË€Õ ·©ð�Q‰+Wr؃µÇÕJì<Ù[Ñ^ó;[ A@ûÚ‡;tZYÁ4‚…õúVò¡v3ïA7§!Rÿ�5ßjC>MT£¥pr¿‘¸éô~>8Œ¸6'·«m†,èšC#j¨£ª©ÂyJuÉäP×·(Lì•ÈÒmSnM2¿�&- ¥aûÌz*ÿü²kíøOÒÏ� 7Å}òÀ_ÜÚ�?=þÿµ}gwê:Ðî÷³ÿ!$„^lÓI(¡H ¤@H`§“Ðî{ß/÷·_Ù–lÈ:kíClÐH#if43�æ uÖ¼LåzÝg0šI]¶Á‚“寱ÄÐþ +¤Ÿ?•Û{äÊZJf‡¡ÚI( v_( öÒõ¢öRh‚¦ºÞ_O¶[»÷d_oáIô­ }úÑÁÑõÛËöRe™¾GÜ¥BäL¦#Jy–«Ñÿ™œ¬¾–ï¿_“#ÃUÍé´þÊ&’"%�â´ `ÁßÑTEã +ÌŽ½ýüOó]…PPrá ÖS¯Mdžjê0Ç—Y‡Ø>å¥ë?”JI>¢'† +ɧt¨xób¡“p¨ø¶ŒÃORâð"W_\¨ŸÐ‹ƒxñzYÆNã³¹w™ÁãJA}+…ò—©7wàýKr‡ +Ÿð*0wè%2pžþEÝ¡UîÊ>éUÝáDbù¾QMº+�‹ÄBZ­š¬~&ŠgO…x9Ï€�ó}‡\vh�ko…æpR™Ï ÀȨIÍT··åþi¬y<¨ÞÕ¯.�ÄÌí• Ÿ©ÜxܳÖ@âͼ;ó]ÂÑ@åœÞeÝá·÷·¿RŽÂ¿§Ç¥vvQÈ4o£õŸ»ÄMmþp'€Áõ¯ëù£ü‹qp•Hðì¤X3‡‡�w²ôžTÈouóùÁâP ·„Xâ +DëÛ"S_ÞHƒŸO¯0öŠˆô™ÖîüQX‚Æ3«P¡áöjC‡'üØ"ÓHdfàIã ü¼_ÕS}˜?ž<\Щ6Òƒd®5ˆR©<§D-haD5õÞnìÓ©ºýó…¸?§S=»R.h ŠD€ðÂ>‰Ð† ¨&ßü#_¿F§š<„¥WúXwëƒÄ^÷÷ �")Ãêåv‰A5µç™ÎyÕþ@¨ÿ;½2P…d0á†ûÐ+¯©TMéšA5Ó�î +×Oˆ*X‘Ï5ý¼ÞÎV4@8`žZ?~ÿ%ÕÄ�iAu„²LõÜç3PM&¿‡¿ªxAcÂÃùãÛôšAµ4J¥ë‘JuP|ºdQmzâþƒ,:)Ã=t?.öÞ&—tª•@aæùîШ†¾rULF^PÁâ]éŒN5Ñï õ¬pJ¥º[M{.¿¥3U¡þøýãŒá¦öö?§'Õ‘Ð?ÝЩ6„#ßÄŸîkTar»Æäå^¸(SíGü&OùLµöðY×Q½;:鈩MT›˜šºE$@8ýknçþnÄ šÚKŽëÕªp|ÌjTqª¾J¸5Ë•>æ§—TªW¾8“j{rTïaƒp5 ìÒ‡ÛnNNïï~*Õßô•IõêíâéY£ +WšŽpC¸iÿÒ©vâûÝzé0O§ú{¼Ë¤ +ÈÜ »KÖpÏ„Ûb»J§zR¨ ��Tª�gŸ-�*œ=á�~r\gP}È�‹¯�êéÇï÷Y6§Q…s3lE¦ÌáÎ÷¯BnÕ~W¨½S©fN#»îÒc¤¨æf€ŒQB­†é¡Lõ90lžÀ]gDT%_ÁßÔ�µ#<sG�jØ@�í~Ì�Ÿ©.~¼y™ê²2ŒÕý0º`ªå¾ØÒ Åð|Ñ-¸!Õ(ZiF ÕŠ(í,Mr±¹›ÂT‹b;bвáßÄ)Öoå˜o3Rðò‰ýöm4ðiL3áHòÞ½0Þ M‹ûíóÙ¿Ã[‚i©½³Ý—ç&ã癦·yØ]à·ÿ|³¬¡ñnè]1[ÿ‰»93ÓºÏÇWSænª¡Ï9óííþsÌÍ~ûPÍåU¦Q¾ð´?H{˜?ÿXžÿ6™o?o¤ò…á­Žiߟõ€õs𽋃$óí±”(ô˜o™—éóU‡õ¯ÛÛz2ßÖŽNž'Ì·ÇRqW´`Ú‘[òrŒŸ'›B-TF�óÞ†®/Eùm%zhÚžÍë§FðˆüB"|©?£U„±ï¾"‹¢§ý/øöW>{ׇI,…Ê?‹SüI/Ó¤¥D+îÈq¶N¡×ðŸ(|Vw‡«—øÏ­văç;,-d‚£Ë²"ç»’/‘¥;8éí´Â^nØão´GàQˆØ±“ÌÔ»½�³»^@ðß¡Jp/öžAµ[›¯ž¢�ì•©*Ç(t"Ä/I5µ�B÷tª‰þ“*Ð)¢ÑN#‡‹ŽBLªP¾°¨ŽIª‰+¢ +È`™Óò1ܱ׻§QEg•jÜÀax6PÇÚøÒQ ôUÍNS+LÎKLªèlÀ  +ŽŒàl00PEÇ(y¸�´á*L^$ØTáÙ€Iž Þ;M?ÜCwÔŠjÇÇ¤Š U¼=eÂÐиÖMí$«ÐGŸäÉTîÆß<߬¾§:)Àøjjo6¨õÎl›L¾É«O–e0ꇣ�ê$Bvm?ù¿!ƒ. —O¡¾šËrÆ{U2ì}¹ kÿ~ýãkùL�üc€¯…ßÀá/q"8ñ£6 +Ù¦çõ£�mÜW�Õ é¸NLAú…Ú¾üOøäG¦€¬c…‚Ö¼oò¿ø[g��åØÛ¤º¯þsIZÓ²�íLýr’i�~:.†dèt÷<ñBÇ*¨0[õï ùWÏCÕE:-'÷÷Ñ?pYÞŽQ´n}f[´nÉ}®|`Ÿ„%_Q ün"âºô¸*·egŠãá?r÷ññ›2BŸÛz„�Œ:Rëisxµk?‡{êƒÚu§5¼´€]Ûµàÿþh«TUkvü²hM –?êÖ¬GRÀvÙ~Dœ¯/mq©£Áë«ñ0[“ûFÖ“çNc=6ës_*ße�9dÜž~!A¤þ(`–Bƒš^ +Å­¥šÖŒÔZs’‡j§u<ôb)Dgß †8LnOs�µ0þGfŸH O\À~º™Bœ¹=‘�:¸þSÔ_¼xs}bÇîFÛ+‡"¨=©†hãRÔš6$arõÊKÀ$Sk€ÌÍ�ó!… XAàÄ×#ø«îGr¹?¼ w½*cªÂ¿âÈãkjŒ!µ§#ÞlÅýöÊ+ˇ\ÐÈDoMtÔš¡)m÷Éa¢ yŽêŽ6 {÷�v{+U +0&tO wÅ0üç>D„8LkˆI­ÍœR,Ó¼Ê?`V5¶yOƒêE¢®µ³ µODÇÀh– º-PKàyÁfI˜,»1“uƘÈæ�ŠÐM˸ag�ñJ¡ÏÌ}G£LšŠÃšÔ¾ lœû¥¥š‚ÎÎIn@¶4×4ªŒR`ÜP¿Åâ×É�¦‹-ú´,³µçÙ¥Ü#[ô Úzô>©Óÿ�KÀn³kkƒc º?Ý·žFþ9lœš"-Ç­]My;¦ì«Öô +f­aâT}ÔZßú�ãd˜&ko#¦ çÛdš^º9æ¯Ág󔞛N·ËÂbËYíNS6©FŠ­KÕÙR¹÷æ¶6½Íú¦oÏeqw{۳ܛyœ§qd×Ì qé¸C˜ƒœ êïzyÏ&w ˜sUSÛúèc“&LûÆ~ª + ŽS ¡'úžÜyÀÕ�Õ)1­N¶ØÃá1DZ6z�õÚ„>ï{G÷ÜÌœ¿¤e I�‹ç(á +ŸZpí×P`¸?€‰è¶²l¨’„±QZv¶èγáéÖÞ&¢@�pï=.÷­55¯(hD�_€=B¯ü6äÙÐo6 ,/ÕÌÇÞÁ� ÞnciU—bíqÑ0È5ÛŽz2bÝÁx‹;ÒwØ¥Êä—³ÍÎ:} /‡ÃÍ®ã—~³Ç=ÙϘ~§£�®,‹Ã¹½/ +,Þ]NgŠ•ÓáØèÈ5vÇÖ‘KhÏïc½}Ï8:Û;rÁà|†Á餧Gåf:œ8r„ c”±3Ç+½¦^ÃIÃLÒ†¤_ކdÔ²VN"¶Zû>†qâþFN"Èï A(0|;�A)¾Mh/è•0XÚʾ-­Œf6X 6þG…Œ½¥Ý6šÙŽÙ‡æ&w±oÝ#^GD¼ØMûhËB>­9R�m£•¼Þ¾É]8Øm¹ÜÛm¨ñ»±ÛFEh9$Ù¸5¯x°‚ôjpQPìî'�vÚš¼rø÷¡J³tÙ 2h>;½d2su(ïò‘I!p\àÏŠ°Þ}ò‚®€E×ð–ëFÝ»bª?-¼ÊÊ­Yzii.Z¶„†­9Ý…¦Ø<(¾Á!¡­–,š9ˆá +v é›ktGNQ l¼q+ú8‡^B;iHïpåV„†ôQµ5] Ñ™ZÕ;ÔÁ>ô†ýò¾ÑŒÑ +ʈÝJx¢‚Ò\Õø�Õ~äP?°5)ê% ¹1œÏËçB7ÀlÎG£ªaù\4èâ:p>k,ŸK¹fS8�ª†å#…›Áù¬±|.º¸)œÏËGú:7‚ó…,±|J°xc8ŸÕ÷ê{;p>k,Í6à|j“T,ŸÉ¸µI€¶à�ûêÌ“1=óž F¢%ÑpôÉä ®ÚçŠù@[uãIzí4ÞªÑ0¦:8Ä÷U½°ÆôÉ�ª1 dmVu‹Ö€^Uõ¾Ÿ”6ù˜Üp°J[Rìó lÍ:Ë‹„"󞕬Ç9Bƒ£‹²oø»[³OFTì–µ£ËªOLð‘e�ßã;5Z~ -QÙƵtž_Â8®én¦{9ÒàlÙã°ëQ°Øv§O¸\ &éÂ7Àlèi†°;˰�vŒ²ƒÝÙb­£²è¬Y¦˜èίv§” %Fæªs´¦OðÍŸgif Ää“_£º]4ß|2fe Mm“ªÉ z히F ½�ð‹G+�ák³ð5~f~ ðÛ.;A×aЫaeŽY€Ñ´¹ÑáÑlÍ1nLáÊ6óÞ¦ðÙ³';ºb¶ÝʲA8f¶>óÞ—Ûcu«DÃŒ²çÐ>óžÛ#;n轞ì9$ö {çv˜Û¡¥ÄÃÖ¶†Y� :´ˆ‡“Ö8>Ó  � ™f \å¦á¶ÇLÓû‹¥r¯Ñ'Q5i؃�Ægæš\Åæm¯îùK†¯ÓºglÃÜÀ§ñÒ— ˆ)=Iþód¹Ï›¼çA%çÖê<øÚä>20fB®Ñ†Ý=.Ê\«.U[ìA½¶³48ô�bèзÛqz#ØgO�³:ç‘«ß­GnO&G¬ì0$»ûYðÜðY˜¹… Bà¯.y�¢6 ú£åÌÄÂ?¹ð…|AlXÖ’©à�Úi-G{_ãÕNûh9ó±¦ä¤µYõÆã’ 3ïÙëÀ¡÷ÆÜ'å|»%9ñ”Xô‰²«­Õš«ŽúÄ6°[޼7º>é½7QÅý óoÅ{s¬yo6HƒV²‡×{ãR¯›b„<¹¨wcï�ì8Þ<9 4à·Jq€‡[Û{C,h0ñ{o Žæ½ÑŒ[~¬`¹÷Æ#8æÙ¢ƒ ZPÙxÖ š/E)ô†tÛ`HÓsÕy éx±Úã]laóÛvî¢/‹Ü…ÏÊgãÈ—óÛeóàá6ÉšWô D²±ïãrc£'C¸ŒÐE;ˆßz ºúC!‚ø9É dAüŒ`VÀlï9m[Þ¯eÜÆ²Õi™xn¾_>s¢ù`„�•ô´EdžuŒ`kÈœ·iàΈÌÓoO¶2Û™§½8R:×Cæ™Nk¬¸ÄÔmøUÞ–Ì Ô%õ’fuò¤^Þüp¥^ÚJ�Åg|SÓ ¢å\Ø&\Ú7æèŽ]°¸b¾åx�îàü´ƒ-ÊL¹V™÷öÒ âüØ4ŽA÷4¦XûfASеof3´ -Õ5Ô»Ùx?"ü“¶eѹÁ~­Ù_ƒc”iÌýØÿu´¦:äùgJãrÛÒUǨ¡5¶‘鈋Ú +.“Ì—°Tk¶ ±‘0¬«ÀX‰ÝæûŽm¯s£x³ _g lvyAœ>„µÞ±Û… Ól”v¢ ûzLÌ„s�ìhwÈkåÉŽvŸ¹} ,âvK هٖ@²°¡ÍA²2nms�,èÎv@²°!¾‹®i0cî Ú(ì«`ç/"ÊÐïÇÞvö£”g–iÊs©,—âf <ÓÜôþ”·ž¯SÏ4Ž#>çÙsSPžìO#pyÊ3¸ìÁ¯ë�òÌþ4¾Ì>ˆ¾b[Œ¦Ûïm•´)çÂéí÷;­µ97ñæ‘Á¦’|NHÇ3lÍæ~>–�é +åµ". •ïsÆ€¬n‚�©1{Ôµâ÷À¼À‡ª+à¡�¢.´� Ké…iåyÀ•ÖÏÞ_7£auo¼ªÕ³žÒ ~]8¯•bK_¥~]L÷Tn½zW›—Žš©ëãJ9úR©”cíhíêWÑOû_úNËþ)="Œ‰~sáj¥÷l\æ"wN.2=ìîàåì„tZT“oÁýC÷ì—è÷¬`w㓪P¿.[‚ýöÏÞOF,ØÝ“ÕF$KP5"Âr¡é¶3Âî½·ŽZ´ÑEÛõ[ÁîÄ(�ªK­SxðÍû¥ööf©Õ vwoUÌîÛì÷s}ͤêíLÞÆ,ª›:…=&“…Úé}ƒA5ÓôLãCÕ ØM-غrÐ'˜3-ú÷˜ßCÉIÚW®&�sü=Y™vRUÙÁõ*#jбV>gŽü^½qBŠ/ ¶À¹÷g;à"ŽdX£Ã“]ÓkÆÛ'9aÑ-»%~+À>ZSÜi×üÀ¾5”ô:À>fw»À>«ÀÊ�}4TGÖ�S`ÍK�ÁV�}æ7�LÛ.°�fò(Yª[öÑP}Z„�èÖfÀ>]ŸdTÝ€ÚØG3[MâÍ�}´94X6ÛöÑP}ª¾Ù 5[;£ð¶ ìãcÚÆÀ>ªoL³µm˜¶°�…qÑ =[Ì1°ÏÜÀ›ÛõŸM�JçÀ>cÕ·ç–�}´` a@m Øg}ÄݰÏ"°²M`Ÿµ¾Ù°�íUß*°�Æ—ZCrkÀ>šyiJinåŒ1œ]J½5GwN±kš1jxºˆª$œè«™Ý¶'ù/{~(&ǦUüÈ>)%ü,|6ëVñ£­RCx•ɪeÈçœU ;‰ÚZœëÀ\°×e†c[vKë“#¼©Ëºäž©\ïš}"sn7e•E™^ª°±è–E�j¦üç%½°)ŠÇ Ñ)îÉþ²s›x]yhߨÖÿÛ¸øŸ ßÑÅéi^»øMؘëÿ­18ýµo. + ŒÓÇ•sa“m¨ÿ·ö|)ž`Mt®áÔâ/þgé„Tëÿ­‰…ÐY6õÿ6.þç²Cáñ…Ÿ~ÛÛ¸£+^ìŠûÖ¢€ãÑÞZúÓoÛ�nÌŒ­Ù .päz¥†‰`Ù>¾ G‹U +}ê›é¼çÂôqgP»Ø×´-3C€sþ;}RßšIj�AÖ Ý1ЧÞXóiÏg„4Á«`­—»Ëp«+`Ô8ÿÞ_¦¦Z�¥e“ƒÎ�jš²ÏOãNµ­ñ$‘Û­´ +„[b†Üë6ľõ·"Ûiö ñ×ÀµH»ÚÆVD­Ðaö.#€Ùi�ZãGû¢¦È\u +Ú÷jjFû^M·x½!lm;uŸaS(‰œ�µMUfLn^3¹išò°i•µ4G‡!(�‘²Í<°³²¶'‹Ïícô7;;7/tMuV\V'„¼8·‰6sI�®óâÞ ææ6nÅ2}ÔACÛ¸Æ7´i…oÜŠn3º —5:K‹íòB(¸ƒÅ�e?ÞðB(l�÷Û©û‡“,,Jÿ9Û�¬| K™ÆÜ�ŽëþQMu²ôß&@Lm3Zƒ/8âƒ4YçÙ ÒxÛ¨ûçÂð¸M÷£]Ý?—Š�âA§¬]÷Oõr±Jé?rÙÖýã¾¾B°6Gû>Ì Æ5 Ží Zã4~÷Óþy˜m‚ö%�˜FèÇZ@Ì6N[‰Fq6´®%½¨¡­LOŒç+ÖiͶ!6>—¤’³†X*XEÐ1úžÔV«PV„Mû1ç·™ N ª…çKEQæúrqêiUVkÜX*u˜6WCSØda©r~.ç�ýé^>ßðlOžÚ_¾ü”z2_çìÙs¤¢%'Ár“ÊיŨS�ÅT!0XŒQŠÅØG£µ?�w[‰²/ECBAÍLá¬Ó缦…�Öß^1Ì>ò:s8!¹p·}ë[µœY6Ï çÅ09·|º îV�‰ùáØö¸[Ð'~8¶•º�ÝEp2:i:AÅ&„Ø»fþºú)VʱãÛêÞäøªZ ]AÑ™ÿy +¥À�s 5ì=ÔÇ’¯°[ÅŠy„ Ÿ³üI‡<-^’TuȼÅÞMÿ\ïå0”¦ËUîû d^€�œ¯žr¢�*fšŠV‚, bjÏ“¾ <²ð€V(Ä߸a¥é�ˆ�½».“ª¯õ}e•¦ 0ròIZaòyR"¨ê1r _Ú«UXŒ@—ñþ‹Uüï�±‚ލ@D™ÃíÃsÕÔÞ~â´ú¤Q…£Ñ1yhAµáI±©6.öîT3ðÒ9ÔÓ ¼´ª°Ø¾aS­Õºu}â ì�_«ŸdTè*˜�é—ã{ñŠ`ý=—Œ÷ž‚¹#Ž&C¹ŸeMSœ`Ôý„ÑUƒ=š2%’úz ÿ²ªù8³3_“-œäRʺq&hÚVËSÁU–Î6,Š‘¸Åì#_t«Â�¯²W-Œ÷§­�¸¥ù�™Y[®ÿxýNUŽÄ-æôéNk€Â•“7+ >k‹êà…ÇÙd‚|Rl«ÖLi`ëe ! àz%(Í}¢ç€‘û†›ñÎrÀ`ŸÈ —¾[i`ÎúÝ:.V¹¹G¦<\ƒèª=‚úHx�æ›&D§ÑU{hq\ïmç¹Ô¶ue?â6 +›õQöniž0Ñ ¶ñ»ØyO¿÷Î)ìÎ"þíâ½»{PÛÄ#­f©"Hâ¦]3ï»sÑpkv§ó}wv$³?MŸŠB ÖŽêÎK<Ð…M}k'éQÝ$lÖ�¡C쟅ñUö»TÏE]€_†§��dšÞ“˜™2>3s¦#ÕÚH1ØÁ¸zì£3@›¹ŽÇ•ê8ÐTªkÈ•utƒ±O„¾7¬|ζ¦º®OF„€ÎNsŠKüôðbKÊ—hWšgq ܰ‡ +q¯Zh“-à 5»BBDS²°±hÍ e6dš-šˆ˜”èL³-)äŒi�Ä£5Š™i6B ½$‘�h�¿á�$òb¨G\^H"/ÑàRu +IT¾l‡Gtý·$‘�WÚ�D^<"é ^’È‹Gtq òmšöxDenÖ„$òâ™õ!‰æ>ÑñˆJÜ÷È<®-+tq©Û¸X¡<šÖ+Ô¹þ®X¡!çö¯ŠZË´­+”c\…mm vŸtæàß+4¦(þQ±B—]}ÏMŠêܰ[)f·äÙ!–)Qo²Ú!ã´àáÙvN +ÚÞjµ�‚‡2’p ·ZY<äÏ�Ú¨à!1ñÛ¸ÕŠUðÐÚ…d>°¯Yðд­oµZ·à¡Å‚–MË\,ô#Ž‚‡Öé&rªÕæ–«Z{ <´žM]î µø³.xh=8bAoVðPZÞѵqÁCë!“a×.x¨Ÿ*cµCZЋ‹7Îл.ãm×ë<4mcþ 'õm¡à¡uµC‹ü4g­½É.Þ˳ì +ZŸ‡Mi×ë<40ܰ×Zi´‚‡Ö­0ÜÎ ²[�:�ÃyÏWðк¼ ·PðÐ:ã"@²<´®v(ŸÖ Ôجà!±)Õ]Æ;SÖ-xÈ6Mdµf“¶ÇYðкڡn{nRðÐ:Å·[(xh]íÐ¥�Ë7+xh+s1Ñ« ²P›qÎÐ7gÁCëV\ˆóÍf­c×ZZ†U†S”MuvÁCÇpìõ +RZá-¿ë¤à¡u+.‹+&Ì ÎJš@²[(x¨xÛèÕ±µ•kVÕ�È4Ë‚‡ÖÆe¥­Wð�ѱgãåÀëmny¡Á–ÞA'­[AÚs­àbe‡¼]”‚‡ëCõ�Õe2›<´®v¨KTv¸u ûÑp�:Ëm§‡±­ ¼¢z 6+xh]í�Æ´µ +®çëÔ3mMàåì¹iÁC!I¯v¸VŠ"­à¡µÅˆçf ­-Fv@ÒaÁC[%½�‚‡ê0©Õuv÷-\”‚‡Ì³ºæUßFÁC¦m£à¡‚T¥€Lˆ•u Zë +jù:-uEL1nõêâÎÊv;ë2of%f¤Ðx#n‡$´'xÌö[çû@”º%¥®4-üSÈÿ’.lÍÉ´ü:>D4Þ±³IJeé©î´ÚYÌçÒâ �q5sìÝŸz„Xï3�¿Q]nÏI¡üSwìåþ7Ÿ¿× _�Ù‹nÐùøÊ³²Ð|==Ú›­Ê)÷ÃhŸžJûÉÌAÓ{r6»LÎ>û÷éd4ñÈdNê½h;:w';�ÄSùò³[_�¤nß®'§ÉÙ�òÏs{HT?v¯/ÛŸ¹¯ÃÞϤèŸÎ†éÙþ¼4M�ºoO‹>OÜßHíÿ»oµ«·½ûÄÏÃ$‡&AMáÁ£{}u㎆%·ô:» Æ}%¡^n—…ú¿—c¡‘ò^ÎçOYÿ|‘¹m-ö©çEòùþ\Å%^‡ò±Èm4ÞÉî*¼�Ø|ñð+ðe÷�,¡9ˆu�׃»Î0{ôrñ W¤Z –Û\=‰ûÁ£Rç˜Æ/Ä0à¥w>�{àí£–Ã}ó�|“ó½›»ë‚g:�Õ½Râuµ÷5v�!¶õX�«ºWáßÄ)Lˆ;™"„¤û¨~}½/x&cðìüÇe¼¸ù×°�ÀàÎ+~OóÒƒ"ŽÆ‰Bj¿²ªÞÕ'ðîTb´òx¼×¬Íï‡\~:¹­”kÒuµZ eÚè«r)Ò½«hèf¦´‹KúÅÐg+ûƒÒAÇ=Gã:úþé,ŽÚ··C¸oj7½&üŒùü+ +¡Äa|ü/$ûst´bK?Ìo.±\Ž%£>å“èG>gÀ“4 ˜LÈžÖ/ø3Fbµv?O*Qå—õX½&�d@»M!T ï¯êþf«%†}oßµ—ÏYVˆÒµ«�b°"TÞG1¼È‡ˆ#O%�^ aS¨D´wRù®[T~ÔR ¶I‚OëMáÍi�ŸO±ÑÙ©ÏBÄ—ƒ(Üžê»ùî7'Àg1ÙlJž +éô-6S�DY†âÅ®ÇóRP›ä®ÏêˆUApFŸ”1‰(ô2€¡g€}çg1ØPpsÐyWD?Š{²ßKðç}LÔFï‚´zÓW•ËYÐÅi5Ik�ŒFq7© ÜQ“�ãÌE6Ó¨—|“ëjkœwËR»ß•y½FJZ�)ð5Ü“×R”PG?d–YyY<ŸEК—Wðs7&¯ùçž >wZðé^”íó@*d[ÒZiÏ£8ú|'Pòü~^¢&#È0öbòÏ?ïåÓ@T»ó ”^§ wçs×^À}3pLJõaà¾-=�ÌöåÑ|~§Ð>�—3ñÌÁdøWyKÕÏÊ_™½ qŒ„¥H‘鋇¤ýƒM4Ÿ¶x/ª~‘—Ìr ˆ ±äŸF¢òi,ißvø%áò#aêNryS +é›ÈîIýéd?kˆ(ºÛ¤¸em_F]¨&Št%”ü˜öå¼?R¢v[žÝ”bË`õ¨™z�é<¡lâ!Rjçšð¸ÜiJ³³[³¬4ÖböA£ÎÖA]±P¶ñù�·¡âj‹¤,Ï õze ÐÿAêýá>±wð�ÖÊpH,D±ÐýÍÅdù)S�H�‹ñBˆ5.µÝ2@›Lo"VÈó˜My¥)vÝÒŸcØu0GCòfâGÁx]hû{Ѹ×lÄÞ÷ñ%Uy Á+ P»b°<®j›G&Š�<†J±÷d©"Ÿ=ìÇ�}GÈ"§%£¡›ü¯Š`D´B£ +Z�žÚ ÖèåÚ¡º›/°mÏ2+l‰z_2mÂ"GÏÜKÿBmàÜÔ@"#ìÑDóè[ïO«óyþ'HZlhÇFN4óQògûqÍÌÆÆÒ~ÙSUxñš(ÇÔœ[Ô†Xï5DmÇËb'ß÷#;%ö^èÖÐŒ½‡s´e•g73åY{?›†âžÃÃ'$(ãśӶ– ‹w7x"ï ɺµêܰæ»[¹ÂØ«¸6úW÷”<Ð ! +‡´zÊK!­Jzé68Â^õP‡]5_æ¡\±€æ!ž>û”Ígi%j–3ªÈ� »°;}ýÝ&ÓzîŸX Û«órÿ^1U�…ûì¹|j8Ñ0Ö&—«>b& H&H¯*à…ç$ 5âQ‰ḂR<¤«ÿ¤0!Ó˜»ói¬¦,h&Š¹Ï©Â‡à¾žÍšÇTe£M‹‰ €Œ™ù¥² Vn�îÄâÞ˳й󥼾Ë�vH+^Ÿl>Fw?º +�`£/9¥32'³}ZŒ„2%ÇŠ”¯’4w�±îÙºþÎé@ Wè!ïÜ&éæb†ѦƒØžÃÙep“¥ ÉU¢¶ÁÉM¨t#Ì� ЂžjmÄï¿Ä ÙÆoE°í„• ‡!tŒ‚m,vÍrH½*(x?�ψ¯m�¿WÿCô+…àr }›®´ÉÇÄ¿ñJë$¢k¶!70( ¯4ß›ã•&L›´!†;¡°õ*Á¢“lÃ4�Az#nŠá×|LYië¶Žéöû6ÁK€ÕF×O„ü�D171ÓÖš‘ÆkÂfïk��õ�¹¿¹Íf¤é)Å4nb¦9H3RgïZ'S?Rq£õÝ,^JöJz^ˆ‰jÍÄ2Ú=$Úx쯡tJZ|~ …l˜aÓ‰_‘ºQ¡èäeÆ‹'ÙPtŠ/‘|ÔnV-õ8KŘ�à�/ÅV‘ü³yV"ÿ¼è¡ƒòIJ很cÁº’:ï�{•¿®¦W¹r\8 eϱìÓUà êsåDìã`õïmþ™Ì“_£Ác(›L‚Oéól`–ê¥ÿõ=¨ê.´ku×´Qü»›;4�ƒ Õôú#§ƒæqÀ£ÙžÓœ¥ ¥ô«xxKÈë)ß™]I…VLõ-DI·0°lªÇ‡?øÊá ÀÆçüF>¨Œð4DD|PNÏdYÊ(2Mû9Aaäù~ÀŽ6_þ*¸‰¹†®p'~ð¡Ê¹ù"»‘>Ò= 4û‹ú#Ò7 ÔõD}ÓóõU}apæÀë}Nƒ:—*T—Ϫ÷;L¾xMŒÕQÙñí) x}½åשˆ]=@ºªþõ‹ú2”@ÞApQ'Ïv—â™/ä&�$�§„ â¯çP + ?%ÜîËݽ(OU¿R�áØ­%R¹1ἿŽb2BÀ“¤¯«ýZ8”„�nûex ^ ¦„K9E´ÓÚƒK`MŠZxFz\ J²®?ˆ£Eƒ—Àu‚ðyW‹iu ÜbÏšT½¨@ qSô-ØñÏ�øIT$Î-ò�ýÀOqõS5·gíà;žÜÉM_ЄީÁŽ;AýD,#x»Ä»Ò�»8ù¢úéQ¼ÙIb4w©u¦EûÇÈÃGBŒÄ½�3“yýíßBáð(âO²©„±ÓïÛF û0¡`ý(íNëp-‹x-k«˜q¹�Ñ,Lò¡SK +ЂŸš6Z¸}Uãu¾27�¿eAdÞK£Ýã +ìhˆ•äÍ ŠŸ(dÒÃ~!¦IyðgzŽÄV ðZN�ŒºJ Æá™~¦¨“R]¼ +ONX„oæJ!}ˆ¯àø}OÍB§¥ãÜÀP°Å(2-Œd�|”§ PAá¿ô¸xþÄS g‚楎o~Ëòiä�Ã'(ip'#bö –Q+P¦À +ÉjX‹1Ö‡ªø=ÿQ$ôÕ¯<£YkåÇÅê]m‹x±»‹Ö‹…³°ó~χ²»‘BÆìV2V Xóvã?¬+4—&ä¦&¦ý$瀂%dбÄ;Å»B®}âEWTeµ^˾æÿ|ÕIɸ'Oœ”$E›‡$E’Ü o€ Uî…™Ö¬ìˇ)#8Œ¬SØäELÖÅœª YÕà +ª‹8mçÊõ†)I@¥s!‡ÅÒ$s‘Å—å¯èkðèüå_§Ún¹¯´¬Â­*zÓhßt'dY +4ë‡ÛiRnïîÊ­Ä6ïaÜS îjëF +¬ÆŸª6“j¢™‡|½�Êâ®…·‡T}9KÊŸ¾º’üiu?P²í¤Z`4DH5é5 ÛHÊ*á®›¼‹ÂKò~¤áW+i¸º” +ôÔXû�Djƒƒñ‡ú"AJ�gb4O·îŠcj†©‘‡Ð†Þ_µTIòÛØ+u±4Œ{î3âHˆÈû¶Q�`•€÷m££Z¬p-Ã5Ö²–R€A²8%©““?aÕÌR ? \!OóA›¨jP]‰ˆ�J=ceæÊÙðhâ,_‰{ßskÈ4«ÙžLSž0öûs€Œm̉d�Ú w¨¼(…‰L"†^¨G‰j�fë2sw[žj¨¶îóPº�®$3-H&œWB(—CN<8oEƒ`”M‰óN§{À+ÁŸ—Ô�¢=ïI8û£x=�"Òp{<Ñ€b·ÏC¤ZëŸE�g€Æ—™øÑðCŽ9%íVÂñó Á4�ùm·ðEB8>2âý|| +;–Ã3t[JvfäƒÈ)&©B7qz”~ûir‘НG +Èdœ k�’8”j‡w‡JRÈøXz:½; e†0ÓBp¾À¶2C˜i!Š—c;™!Ì´¸¶—bH A‰k(�ŽÌ’L™‰ê;ò�„ȼ7ìVñKÕÈ}ˆ™÷Fh_þ&‰R­ú£6”÷"¼’ 훈rZR¬iÙbiª¶yÓ�$$ŒèAáÑÄY0¶Æ^üg%E—ŠÅ…Õ6'�ÖB¯&©Qý'~U¦ýª€%·‚Ñ™Ù×Èkw@ +p6Ò^ ) )xPz7Ø÷Âúñqñ±BÉÈ‘‰ÏHÐÂsdÞA2ëYxŽÌ;h@Ùš{Hü²¯.î‹ÍR6Mn™þeŒ¹]:˜�Aʾ7U¨cÀÐùꃾ̈́¸÷öô\/bŠˆ=¯¼¥Û¿G×GÓ[$(QÂå}p �/=õ ~MžÁY‡ï{飸ÑÜ�Ä&âûó7tǽ'¯qš©¸E;QŸÔ§7·h'ºˆ Ï�¦"§�>UG*¯ãò÷n¾�´î2¸Gg•ëÇzõk÷åèòúÁW{Ž”n5¨ºD]ñšA¬JMÌGiìä'êWšÄ@ã3Mœ2_ º:ÐY—…«*)CCŸ;A& uAß7ª$vò¸ëµíX}åÒ1ÕûÇq²5�Ù$tJCSá—z%RØk9˜fÕ7Øš—=jËHµæ·ƒf sÊ9vØË¡ãƒŒ�ê$‰”³ÑnC‰ô„=uHqcΜš�ix«:S`Šß ÅõCŠ+ACz[‘™zùþ)ÝÎwûš‚‡pùP„ì?)Œð@Þ{¹óù0pðAMêÚ»ÉÀ#Э:7¸ O? ÙúïÈÁöTô1ܽ/‹�7O«ü¢ÿ'*U‹ßÕ�œäŒ°‡s¯äWÄ—V1«äJÃæG¾¥Ìƒí«œÆbBnM½ÙzÀ°üTmBùÈxojú&ýákÔhÍ.ÊÐ:ظ…Fv žø< Ñóyc{õ /X¾ ¾ÂèFÏÄ=Ù¥5Ô/D¤¥C…ÏéBðŒfÝÚx=Ót} É„_Yì`õÑ_äÀì‡Ïiß‹½×ß²x¥ë²„‘9z4•ÿ9÷þ@0P]Móì›gßSнý‹ ûº †sã8ÕýÖ`ù Il zUñå¾ÝAj +¥ ‚_/�9Øhå¡L•Ÿÿ,ïëð®´Ðö¾ª[�hC¼¯ÅËÞ» ê% ÆKëüžàDÙN MÂ…Î&Ð^.•Söþ™wM”þ/ø£1ÙþÔ!œ`Òh}ON@ÇÛBÞx²É´îŒ€ëXöE\X=Qâž`Ý|JÔΨ‰ºØ*ÿ“øAÿ( +®©9@gc~bß@µnß {YmüRECÛ¨-÷²ñÃíSåׂ1ÀÌ]VÀFýˆ¢àø³×Ãþž@ˆN?è�ï�…6ò”(]%v÷>ÑÜÝZkÖ[[ždšà|w ÿüõ¢¸�Tä­]赡­-€ÓÌl1t�¶6��ØÝ/Þ=h/gÎÁ:øœ-¡�,ŽÜdசÁÛÁfïOWÐê–à 0ÓýÕ.sï«ûÁ|€mXÔ¶.N�®=dö¡åXU–ìÉ4v’2EùÊ ëüíAHSáä}�IXVÍ/£åwê´¼6•¥¥­4y¹i¦¼‰òðõñLU·„64�Q­¢®ŒdÜÆSÇ@LFK0Žu ŽËàŒòZÄW¨€]pg–8‘ +°�»%è$J�†@ŒÜ méqéOa#ÔÅFåLÞ ` &È•†ÖHй“áR ÛncxSµy ¨ÜùÒZ¦ ´=»¯|Lü†¯¾N2ÝÕ¦!˜Íj÷q7¤}ENK0+çÛ5T‰Fè_‘-›Ktù8Ò.}ƒ•Žªo’¢zVoàÙÓ´Æeb|pHQuF`Ð+@ò:iõë’Áå”wr·Ô�ŽVbøõµ P²c&‘ ÓŠ’AÃÁ?¸–äO“ <.äÂðÍ Ö ÉæüЀjFä?; ¹�ÝÜ�Qˆ-Aóà +ÍçVOöÃê“BÖ Xi^Ž×üRI'é ±@ä’@®eåY)Dx9¿r£Ñy9€ý×�c??vÑ5Î çóäö“ÈÅÏÌjàMiÀ zí¬Þ”±NV¯KWstÑ›$]bloqêÌù¹Ê9¹»·à +endstream endobj 28 0 obj <>stream +¢y-°LÛj€‹æµ€£Ùr€‹æµ@jm-Ç…�×jok“ô6ÞÜ6œ;¸vz[ˆ3·Í¥«…lj© 9ÔÉ]Î0uÎuhnX˜ºŸÿ&étVÜIgÀ?±ËÕ×d~6}Ÿî„]ÿ¸þ‹µD±;ÿÔç“Éõäÿ.«?/«ïÉt¹“Û‰]UZ­L²:yùOvpÁ­äSš°_°òT�ÄÉ�ô %W®þË6>›{—ùQõŸÐ/n„Úñý^ÏÜá·x•�;ôÝw‡‡ã{wXª_¹ýÍEþÙÇ(-ìjrÔ Óp¯:™—WµÐIçÖ°ÛPªköéº+Ë×nË“ËRlñzkÝAþÍU)¶`¶Ôñ·l«éÄ=ô{%–^wàð4áŽÄ|7ðz ˜HîöT31w8P*ÁÇÇîÐÅî)á)|QtGŽâcwø¤×tg{sÂ*Çe>óÏ i!ü‰yW›ÞB ›ZÎ)FÜ?alú€dÐ;ÎÐúÓî�þq"ù_âþQ�ùcÜ¿î˜ËÛ¤sÜ¿Î$ü;Ü?Šî¢ÓôŸâþQtŽæoqÿ(ºKÁýk—žÿîåæƒO‡Ç0G-¶ø-‚w'ÇÕÕèü ¼ËëYÏåÝ¥R˜y¾;k¦Z†Ôþ«{ÊÂÇûCzp¼ ]ÒäýqŽ ×ûÔà™p#|¼/–™P]\©LxpaT¾Â‡Õý™Ê‡žžá�ý%ñÒ…ß/3aT<3†#r‹�.K(ŠÇ ³Ð óYÿ²Ÿr0$o8 -(Ë6Ð=ö+Y6¬6F»�Ð&�ÐVÍšm¨·.pl-87”6 Ð�m0#~íþ ´´Ó”Õ͹´ýäŒ�ÛƒÍ ¼oÈ64†®wÿ„_ã„Ö ™iܲJ[ßB³zõ¬ ¤?5Üù�Mô½úuù‚`ZÿÑ0AÚW×\%šÞ`¥ åík¥m¸÷ý$'Ö]i¤6Ò bfæ•Fî}æj%Û0„Ü· +7i+ÍŠŽfDk€ÌN p1Ãêêrïë:aPk–m0ö>Ï”ÊgÏ€6#kÞÁCêg37U}cÝ1«N¢\¤Íêš¡ 1C'àh,ûÁ±QݾêÃ…Ü€´èÀ‡!MI¯ÃŒ ¶6­;¡)is? ªÉy'´µ¹¶è ò¬MU/a)`TMAëåÉÑ Œ™WÿD+m™;ÖžÄ=¹J[\LbjÊV¹ëQó;ºøâßF&‘ò¯\�Ú ”wûW®GÍï¨�cþÀõ¨ùѾù+×£æ'„Ž®?s=jíá$˜?r=j~G-üý®GÍïˆOkäzÔüŽÚhþÀõ¨ù]èÿ?r=â[à [{€d¶äûX°€åy„ÌÇ âë#Á¾!ùˆ„_»BMþð¡` ”LHáÛú`ž!œä¸8Ó•Ü�2þ­ #©-=®[±÷Þ2ŠƒŒïáJ ½"£vL»Y_¹âÐÀdø®+û ’ ­4ƒãCW£Ñ8X«!K9ÚxM@¦�Fe÷ž§¤¸gT0.MHÈFWR‚i ‘<€~ê–(kÓ1s�÷Á£«Érõ‹¾’–'¯ïÓÎè'@€‰;ø?üÿMgwD)³#%“à�$|Úyvýç¯=O¦“1°Ó�—w cGóeõýeùþ3Íÿw'‡žõN:ÝVu'·ƒ¿=ß>Øñƒ> Cðuð*€Â�CØÓ¡ë?açþÓû×+9f +û vb0t +C¨ð'èÏÑ÷¤5Oþ¯üàjù3ÿ_õ�´ƒ¿=š.ßG_ï£ÅûôUŽÅÂ/ãÑRÿ ÿ:Ÿ>À³ÿÙ…�“�ûGagì//áKðÿ±ë¿ÔŽ?°K5­à³3ô"šLÅB|È&’b³+𔲠Q‚?¹þK +ÑT:•Ù‰$²ÑL2žÜùFÏQHïDà‡D6³Þ%ÒÙ$z Jñ�D&šÎH’ú7Øê‰xTH'´GñD4•�'v"qðw:E<�âÑd<�‚?Òž‰Q!ÏìÄ“Q)-B’>dÀ¯RQ!“ÉîDÄl4 ã×àWR6* +þR<›ØÿK‹YÐ]IŠf“™1z þJE%1�:'¦£‰àCDJG…x<½ˆB~)�‹`ÔÚƒ,àUBù~–t„Œ¸¾,¦² ™T<š‘À`Aw³i)­=€cW%’ÑúQ2Íd…ÔŽ‰ã×uÀ@Ô5À@ÐýLpND"*�ÙÒž¥D0ɺ�H%ˆ ÀvñG}—¢qð³�$àD²9!E˜‹$˜‚d*¥=€¨Ì©ò ü?“Û +²l¯,ñ|#+ ÑªÏÀü$R «‰DTàè”.›Æ…‡ „¬²bÉÏ�²¼áÁþGÛ=ã™ûç£×Éõ|ôþ÷ÿëbô&;£éôg9ZN~Á«�×ùdv×dgñöó?ð ü‘ú MÎÍÿ õ¯ +endstream endobj 8 0 obj [7 0 R] endobj 29 0 obj <> endobj xref +0 30 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000044598 00000 n +0000000000 00000 f +0000046595 00000 n +0000046880 00000 n +0000046409 00000 n +0000129059 00000 n +0000044649 00000 n +0000045058 00000 n +0000052531 00000 n +0000049847 00000 n +0000049734 00000 n +0000045605 00000 n +0000045847 00000 n +0000045895 00000 n +0000046479 00000 n +0000046510 00000 n +0000048531 00000 n +0000047164 00000 n +0000047460 00000 n +0000048821 00000 n +0000049882 00000 n +0000052605 00000 n +0000052801 00000 n +0000053858 00000 n +0000061337 00000 n +0000126926 00000 n +0000129082 00000 n +trailer +<]>> +startxref +129264 +%%EOF diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Psd/icon-shapes.psd b/public/typo3conf/ext/bootstrap_package/Resources/Private/Source/Psd/icon-shapes.psd new file mode 100644 index 0000000000000000000000000000000000000000..64306f45181b71fa0aa65c86fde5a2e37a5b897c GIT binary patch literal 567856 zcmeEv2Y3|K_x71dgAjTVDH0F_!9Xf0)Kmx%2oQ?&O?HzkY*>VxBzs zK+d&Btg8>5@$Z&xhGptfh8XO=$%ZtexmCTNcki#~Yt*-@*DEB!KOr;PkZx>0!fNO~ zqH|Kph#@KA`g(0zd$$}GF)Sl9!(i9>4$Cl^Z4tv-)zj%M$%Y8CEdt_Z^?dmf`;b=k zBBAi@osj4oZLu1BLz?>grT8}w@NFL4G$7bNJUIL@-$4HW|7HP!&HO|C0{kOFLL>YG zd>u!<*51CpzAdf#)QD~|agN}u`qWnS((U%lh-S^Qv$LCK2Q{@=)0zc@hle-w4{R0~ z=x5cZ`q_q??Yd!pX4}KUh-N3oU`w$YGwnu;*%x+o$(Ag8t9tbiQ10P)u8hpwfXue0 z{ESUgEE&y)=`x!IH1%(mYZ=CeWn@M~TMat9#hPTXm|BY`PfWMiEw*$^rf+ojkfs5? zy^LnPCEM1rne*j&;pbU0#OUmX)`9*3!G8V$eu4f;fq@ahK@tApP5c8Q{QV^(;z}nQ z2^PIEb$EUo0ZD;D5kbKbfx)s3=}KoC2D?tLv+HijihQlZPRnLUWGT^e6;AS-WrjW_ zH!m`?tR~KKeM&Qf$&g_%+ilGPng-<04}D5Rs>Pb2v$xh|W}1vCI%IjXp=P}!BQv#} zY1u6A(mNgN+(2?8pYKJ=RTq4na#a!07L&!AV9^^|2er(*LlR3_mUmZtbabNCl4>*= zTHCs{i}H<+jcy(g-n_YAVABBEjC9?de)wS-nF$GnKe+Y59T*cE z9TpfH6c7;Z9}pH6ca(ZOMHA+b^Zp)rBsApx zP~~l9fK4~_Hj_X0W-s?`CVzNDP=Mx<{+r~-n=V35N!OXv4Eom1v=>$r+*dgkcXx9v zq@Me6U__8B$L?s3h2P~I3ySb}l|1ffjz!+(91DpE$?fTKwNl-IR;rMwyPRX;5dp3? zk30H}Mc>^V3kiw{aIr zzOg%*W6k~Va*l;Z1iD&+?`Vz%+_fAFNb>iO@DGRxa`kB5$s7xhjEjnmi3tmAe#cv> zv>Xd@jq|vpITm%7bF8_mCHT&^1jh!&g@=X4#KuGwHU98lw*&_y1qMU}g+>IqYS4G` z8;cFT%Q+Sv5ftibyT5~N_pu>&H^+hlA_84Kns+qEqVH~wg@n3#TkfnMi;VG)2?&l3 zjfuTGek>%+RUf;vITqMFq<^h`{iOU{?+LPO@TP=-th+px}rASG(e! z%(0u#F1nr4z0=%1Ve0?)M3p->Q$oym$v@{vns!^!uGgkD?*kRVdqmA7 zq6$Qg{ie!fT8(CVmn?f`mYs+^a7nbu+TCEz%FuoTyS0mo2F9E122F?Gj%)bZgv=;Y zvc+P;PFCgFZg=A_Tpne#Lyl`jcm``{U4|hkws(>vA{@UKxIo#GFMgGz_;ulZoNPo? ziG$6wn>Di(ZA!N0o^(sICFGt&Tg}mVCuV!zNvC9!EmzYy%|0~uBsRkolY0_xw&$6S zN*R*YC3$d4ZUSm4!&`NA)BF1BEm_HJEoTu!KH6E$1!PgCg4ab^^+`R<_PB?;nUE8? zN0dqLTbR6?&17eJ;xJR&Zn>9x4>hFNE!G&FU56*&UBwd95^Y+h;WsW$OiSbp?PN$5 zW}JdevSbz-Z1)tCkSAJG+CDCVMeey>gS+0uCTN{HA_t;g-ofbak~zx+Hw7{;m8`QFBsW!>qL_KI$W9~3KvuTtnQX~2 z>upXhA;lg*B*Fuank?otzM6>nRz8oiTQVHy*!7XRrKM|noO{|##uS6Cr>PTITgexW z2kRW}(2GyvVCW$_XU0D8D4ZmL``ah&**Bdy+0K-&N&O3?@^OVVFJM z);=krlja*sY2thrmrl1>M?{*8XOZpkPhFJm>P zr8`~DUri%6=7Z0n%_aUVve)uDovggK%`5t zWhQiwLs5?6W21es0im$OheGuG`@$E#=hr^b7jI2Tj*2OnRy&cBNJK$;gDr(f8B0W_ zYK7P2}E^sFY8d z^gCJlZ8r?#!dGDK(9`$k(bGIi$RMB!(ycL)J)|K;2srFW$EbqvZS(XxoT_JLNK2MfBpJ>N(MAbjelht2L zRDLYc_LI`{RKxosZSHC`q%=i><{me_;1&)kyru{*cVkT781V)B;;l}xm@HXVUt6Xw z#o+7b{1X4`8>K^v$79_LsRpaToMQ0pX*6UT&1t^T7PH>S`_vlE`L^$rEd0ycoDT6` z6H(>m*Qv_Drc~i%6>_`y7P(h0LvH;R!O!I8Tc^@J3142XI_JfE&xf{Gv2>`@!67yy zdj*Q_mgJj~WgRLmV8`o0-c+8d(1Y|4JxqSNTZ! zQu$u_Rk^CVsXl5IwYK_*+Dr{oBh`*-lGrsAJV>>O6I+x?bI`9#r2{&!}hB zAJr>v3+%mx<^@$S{_Y2B0S|W!%=6kL8+V6GB>zvo0rOK45Q!21jT&X^#%%z?wHK)|tQu|7s zDs{fpwbB(zHz*xZx=U$&>EWfPmtI~vr}W9v=SpAmuISy+yOnp6_h9d*z2|vv^ginS zsrPSX%9N>BCcI47GR87bm6=!Ol`_Z6d|Bo%pGrQBeWHE(`DFP_^I7F{z~>{M-^!LP z`$*ZgW&4!1mz`F2P1(a`KQH@dxyt35mWwZ^FE^&#i{-YLJ5}zd@}0JV=FDIbhy&jmE9^oTsgXOO66xOFRy&G^0_LWRT@@_uQIsGIYVp-f)uvb5Qtka}S0AYTK;#342PQtS@qtqh{87DT^|sXw z)hAWoRQ*i#s}K4<82jLm2VZz_$Ah2MaIew0M%NnIH5S!4TH`{^Dm7cwOsP4k=9Zct z*HUXWuGOv9leL!BdaKrz+7H!kS39%z{Mv_WUwEk6Lv0@#{Lrk2_C54{oyv7u*D=Mp5!qVBbN4eRx&_e{M_^*(#p`{A&MQy-r7 z@S%q<)vr@Oq5jDF>*{~ppmc+<2I&pvHaOPck4G9l((94&kL-BlyN1;p#y1?%a9zVs z8(RAf0O@m|4#xc1#}2_ zCLkx^*TBYsDScLz`QhZ*2a3 zX#LPZp$kJl2&)p77&ayBc(_M+RQQh>vG>@=HY>D`}gW}D%=uy!JV%%cd#Y~Dh5nCy?N9=;w&*SRFrNym_yVNeE-IMJOwD)M=vHc6}KZvg# zpAx?&{!)j~4x>68>FCq3d&dPGzv|SuleJS$f|}4FVP?Xoof~vEciz#3y2N*x+2ymu zhKWxk?(XW@HL>f9UBB%X&~0S5W8EuvAJ~0u_urGElBOqp(xXw2tR9DYmhaiG=bD~> z^or>LZiv?-%h#-NN{=1S%v z<|CGeEW<4CW;V$jmwEPyh$m)0amm`zy3(fD`rCHetJpK`Z)G*gdM@kBp{<9$IP}l# zp4nT6RUBp>_SW#m!zT_uKO%0#iYMKlOnLIq$hsq+9{J^{$Wcp1E2EP~9~$%Un6YEd zJ=N~1)lYjrJ>==PpYeZY#xs|n?e%QV*xF;C8vFHg?VejVuG~25xDUp+82|DF_X)-c zCng3>oImmUB>ki}Ci_pGGx_f+DO28<8ZdR<)Em=Mr=6JIeEOp2J)bu}|NaYYURXV& z;*1e9zMh#dbNejcS(9d6o;`5(>vMwVygb)?Zr0qh^E%DjIlun==jZ>uAbr7^7o%R> zw6NB~i3|UDN&nKRMQs;te7W|^lV85N*tqz^CGD1MU;4<>ImTau#tO;GSW^Jvt)7Po%vetdSzTf(HHpFb$xzTUql1Jo7>+Cd28F-A#ZOx(fq{rlc6Vfz7zgV&buw& z-FK?Zse|vuy!YDa_|tEm>3rth_j|nm;RpRbIQyag!|y&aee}!6LqERu$y1+td^+i~ z3ZKpSyw>MSzj*YEO=p{*-TP(Cmv4R5{i{#DPWk%BZ*1TEeQxZxWxt(szRvkI-vxfR z=li(t-}#~M59fZ&{PEg_aThCIT=-L?pI-gB?ayyr>V4_lFVM9 z3Ik{O93^P-KwTT<3DkD+cbX{tPa^m8RGpL?AKth~K9PD$vSDC!0x36sqH=sj`loQ; zjZbJS`IIVEs&pxz(xrVWmhmoAv1)lApYm0!SFT*Oa^>n3efV%d;fGSTOqsIf%2p^> zu0oY^<;qpTzj9T?EfsIYz>Nb`u@uEooSRaQ)QXB*Mdik4s-ke${RVlY@e-&%7J$)nG>VOJDwyVhgFZbj!1k#LP_6#~xZ{Z~nlk9$y)L z-8%O0ds$!q7T0jr^59tk;gDrRQVvIq3BJ(}AMU*$%j=omE2i^7eM$;XYutVnI>O45w@29MUC z5#J%c{)}!j;_J^^J|n(Cn;Y-2B4EpFNyi>fdA7-*rcZu4h(c@&zuJdj*rcxV!+J7Z6)qf>tf4YfVm=5iC; z^~rua{;oRa7|G+-QW1WRn*31L1>z{8Qy>?XZAM5ms zIK2MKLmz*9gL;LoZXIuIn7!?bmuK9dOU6g9K3G4Z@#XZ5Fa5Ojz4X*;<<9R;|772> z>$cDS`flQ*@%3kP7<1!YPMFp~*MmlH7&YjJI(;o~9Q^*H2ZJNlKAW+2NBHt_^s_DM z?AFYn5u+oIo>=kcM`bBzoigO9h#j_m`zBuf@^r+>&R6%(ocrz**Wa6WaPc>r_kYZ?=OdCpSeNnMy33iIyCm$r-Ro=T=?|I2JZ~oSN{fukJ`WB$gHzX_O@7Z zW!mZwcCY;Mvw4kudmDA5PmP{-@#S{bm(N^({-+)92juj9tjhjIyVk!lQ8~Er$?P!= zZ9QL(zdCyVttq)Y1yJKz0SIZ`QyuE8`s!A6+b(lZ3|MexA8Y6^4KP)dAZhR!#TP@cjrD*C-A=DJjH00uq)8y?%I!{5C<%{{#|7>3~JFJgwmPzCuM!x`lBE}8ZWt>c8cn(V_JN_1Cy zC!4aYkr|dOvmGNKr1+LMWF#B(@zK$VR!geUWY7jyc;h6_V$IOmwJxT(TnX;)kQmzz zy%1(gg3fL?aMy@-bD2!5CCzHE*^EPT4f>3*m<{@_Svr%^K0M#Em+k{iygAk4=$0#; zlCCqG4JOe!<{;j(hK$T~oy|DHfPNw^qzbvxo;x!pI+B1rc=;v#*nSx{ z10Eo+U(wysuL$1v>S?grj25$YqquV^-&rcd7MzWCRQ5N^SoUXz&TNeD7Kb4o7a)%` z#~_#A$`^v%b4ihL-Q}(#inGR>3++MF?qYuwXBDZDQga25<%sKUFTCGTyNjE3<81jl z7%4K&s`Y2`5oe3DYGLD%HS3+C%~BlkT-_|(_bU2v9X+?@QIa64m62*SB3<%7vxqm9 zDj!3o%2&S;M#N)GFgggogW+0McG+r+h%<^(xODj&{Xp_}9-+Ni;;30lu$Ds`#(#~;cgNHO3 zo@Ho;Z3vMYdiwdxc8nV-?8r^uLXKLfe-9>#YV`)2H5?APcDsWhOHH}!wu8ye7JBn@aWiZwum`cL|k2KXPQe%}PsfLiUT zU#p8Wz$=jy>U*#{_5Y_b_08DM*o{UqDinXU0qHtTqv$>%ly+e>waht4=E=X3Lg9m7 zr=c_A8PO_$^YP32kU}lCe@xS?HK=W8cbYXMj$+QOr3HE$snp?QOIl>{qi){2Xz>&a zbsIm8Rvo)Q3iYt8p$+HOQJ+JVXv?{#G^olSwBwsCq)=+AfpYXV%GmxfqjkM6qe9u? zKC~;KEj>A)CT)N7JsR_DV|vx_1F7`PS9@u5M*y|{23t$Moyy?pi!S~k&x6k4iYphfyijPrEk7-wGh zA(a-t@exhGIE)tc*+NtN59gvvhgV0i#2Hn3z5WcE-J?eV6q>0 z&g07r0gnuO|2<=3 zT*GZKCcfmt7*nMQ6DCl~?`;a8&~$0}8*5}#`TER;1yM-AuCOShN-YM|WY%*=anJG@ z@qCYrLNoote^?`A13eCdO2UsJcN*ijtOM8AhSpbCwY=kRhRB8W>8!T}~ zm5z?=#jNCvLIXB}Mn+)`oC9kziWoqG7|19z(LVmHkr3~tgAv5&(>z8{jpCON7ar(w@tpOfQ0L?^w7m6s##Mhm$hdjWHd3hTx63J~VnynG@d_RI zYb_1Da)^$7c?2azy_MeV*@dj(6B$SJ31L*|>DgQ8_}MpT{DskU`1iInExH5kFB3{C z%^1~{b{_GhSqrMsX5V$Ws8Y)C!OU*XsM73T22jF;G6hg*I!#MvjfQdcUM7WRF3zB~ zi+`YL*C$fT(g$c#zZDc}tw9Qnee)EBJn|fk?)U)XuuYQ~iM$H5-ibq{rS#RhmvzbscGFw3&CGB22D`bT zmHu|vt#T1%o&PCzdwi#0w;D-|Bi+wB*lp~vOlH8zS}+s{{Le{uo^x#XDp7xocT^W7wiTm1iQ&7G$_qM zBclih5?GP(Rv1y#0A)r*_gglZi(tjm_XR5s>UT3%#Jnv0q0AR1%6x7snDdHhGxKa& zQdX>JHKZABcB>AfT>Ub1)*<&wEzli9j&Fw`eXO-2&jR>&dlLCCmAMvx#E#Yl z%)F_{t&M49BpbIg=*Uh+Ze{SJ44&)i;7F;Z;n;oQb#(O$_d0p)j)i$0QBW_&>v#+* zsn;o&qD{3CF6SO8i_g2O9w%{dg77#~E(njashs9<&dg#@gOr8`n%dap@Hq1mv-qCn zwkpEo%x>=RI6G5Qg~vHxml^wL+91v2tlGz4Gmt&bs(lWRgKOC1oUhBC0X7^SXLfV; z9tZ~>2jL2jgSf!cAa3k&&dkz0&Zct0<4n209tY3o@Hq2paX9ct@N^OL9(H(~(B4rT zHy}I?(BX0BJ-dv2YVXCjXln}b(+UHZWJD8b%gLZ6UsO|&X(*e z90MRc1JL1dCX^8#XLW?|ILD2e$2qr-Jq^Nv$3eKla9ya-R5*CXUv;x^#YHcXxN3-t@QXX*i1FX8Ug12+BEjY6hI3Lwsth<5L$yE+9;94Dyfs880781l7h^GJ+S7J-59Z4PfttfyhOLkU% zx&W%Q#yXcZ&L}jn291oxv88GBF*5)3a{*Lo?AZj?IHS-cf2L!Nj4HiQu>wn+QD`jX z>a#{hVGR<5BcsqfS!WAtWEAfKBzO;G6dL3uG%~9EgplBgWh^d#ke7HuXS~^y_FTV+ zpHxQihCl*qGTtl(Xz|BAGKv^Lg0z-VXvSOCvPMP`14v*^Mk3E5{VCGx<;~X$ps)rF ztjQ=e_|~A2QRELK$R8PnX6DmjtdUXV93+T|gzUM*xChLWFHJV?1u%0zKq&cPz_^ol zd;PxfZpriWd$%^CzR)%b1u8xY^KQ?wra13b;?^#QcWZtRc{e11%e%R}Tb`FIj=P+_ zfOam}CVAguERj*L4J2S28HEPk1{xU!-$4StlTm2kZJ?2{IL-&7%RW*&SGh+Q8uaYS zC^Ya?(8yS{r@C1TWY2*Z;Ji4mgC~?dly)xCK=wA!;QVGeCwl?p9L|gLAh0WY8|_@g zK=x43;9TS>emQ%&f9G|Y7wUE1xG%g;O3#1ebq3zl>+}{b>(+ao9bPBo9`ZU1U0x^W zkjv}j^Ey67mYBho;Cg2i?1|bIG&0_-wgqdbAIT_~5E9L+X(%-CLy*W=oDXyMciOqb zx9odN_!bF;2KM1~WV{<5(dCcw)qXgC;1NX~r>J^RNTD9-&HKV5=_~#lkJRO+9*Ng% zD9K3AGNP4FZ!skgN6P*8W4_(7x|^#W&dPxbTuOJcQg1qn#J$T~K<4 z-*Lv`#+ho~#2JN0vd(>!H5z8|7!q^q!8A-aj-J@FjYe!4Mp-RJ(I_{x&kkSoJB@Dg z6^%Y$mvL;f*BKQa**~hXJ5BzzH;wqR9Zm1oh`p2Wy;&CoA{_W&ppd|?K_X+({b?fB zn00{Xkx^(0uTj80G|nhu04vaFIOW;Zq;UKv9$3iFgV{ouk?~yrdKm57>~$I&6T@i$ zM4A8jiJQ8EoL(33x= zI=7-|=l`xX1?(i3GPU#K7!)OKaH=zkl6~Q2@#3Ep{D|j}QKUiPwE^%wG|ni}KvH5EKNV(WwwyKB9`S(MCUQ0-(Q13CCeV)hgF1+%AC`ZvtJ z|7OhYIf1VzL3@0ubiLnDqy8Q$v%0_IVs;m^J289F?eXBbqT9*A#kfMoo3(kP?H+C3 zG79#D1lD8}8t^wXGTyA699F=0GTyAO0MCKG0vSa(kieRZcf*6AjRQ|AV{z>w&OSvu zFV0WEa}?f|f+vK=8O4(p;z4fO6JB^Yh$S@6_-{NSGrgk)1~XhsQ96%e8p><86s((^ zygxkHyZ^?6J$V;An9b$ET%&Za)p2mZy*f&_Xb%Rqg9md)!I1C{(8zc*F9B=+_j{E8 zZ5;@_?($%HbvgLB;_Gw;J(#Un54P*R@L*{(Z^eUQG%n_ugo++Gb;r#-nEU#Y*1Ygx0g(iLe0k!7RYh&p&n86V&pjpJ;NW z@s7DH6G9&0(8r$boQqhpIj8REX;iYb8EP=b|fi$_p&x$vbDt@+u8ae`y^61#FrvZa|~n@PYMa1 zR7RQUu=1V<_aR``bHSFToO_?;cJ}}N*E9K9j`y%8=lKTCEXVtg7B}C(9lH_YxaBp6 zJnWWiEUbuB`|rot-1b^S?nSa3-YNM@(9TtUqoKi@Eu+wYTcDA#IQFSlWIx{AN3G0= z&L~eUzOlD6 z%J9J=7*L^oUq$k&g$K$nps<%O(ZN=k6#jO+#%8V0GbgtE?PM+ro;&Olz!D9QtglN7 z-~C#39a}qwH6XrXVUK7yYrz+OTOO05)BteALDa{77b3I<2!oO z!d^$|*r(sng4kAcOwGg!D{I%%Yi@&S?)Zvyy}OvMx7vq2K`Wu#!k7wi1~9kf6|IonsmL| zQ})x_C^=vcue6!s<4>6%j34XLBwh?Zf}Z8-@G``{#MipRk8(a(;!jUxgLKqmS{bOvqEL&ZMEr`40)+10dcD zAW^L%ePp+lhxr<3RH>`^6$-uFF&7gjUZ=24lSrX1Lk?5;FP~87DkGTHJM9giR?j_z z^-d#CQ=83KDSk;RMMd_a_DUATyt9=Qiqkzu?R}e4%)#o^$^S4#*KI_JZ9hhNe?=!s zTCJ{tlWhr{c8QMI$BgJkzOWSz`j`p7K z(e5gLP=~c^X@7$$l+gJ)9S&KBCw;gk9X(2v*ifO@-djvvn;3ZQK$X|K$0{mFH+*{< zsx+ijJWDh*?G12zbLIy>pyN}GWU0N6jt#0nnf2<@Yk}dUQsxLf9eJ}SuPJ@FNop>t zWUAYU)=tjK#UUr6Y4wk&TMqv1B&{0TfQ&D^Nh^E4Md|*rw1U_3PhI{FuRp5)`MZ3m zQul}Fu|&hJ{;@Q_)={j{(tIIJxu7y4MR9Jcd>!wBe=Mbb-GcAI3Z=LgsIq;N|45#E&wb&^jYso)a&4XXym`}w ztkN@w25^&9q-^ zcBaXU;;tq)yUVdhns!^VVJP-c=*+iikLZyXOzuN+1oC?vbw3s*EKGyDY?f5)?0_Bb zct;(qRwH(I!NFT;@xDhmaJ^#}mD^n>w`LI~HRDk{E~?Z$>TOC>GjlQN z>j+A3FohKAx%n!k&wH49Z<@pq_`YYR_oehJhiJ-MZ;>r1h~}JqgGR-@iqb@lB%0vcj8+f3NHg~@%|(?K zRLh{Hk-c(p-mBlyvZ?2=@5#?YXhqZsntOC4tr}E;<}NHvYet?y*|GZPv@Y>in&09o zt^YJV7gbvGPIEdE6O)T;e>+J>Pqre3)(=0=>(FjY9z(DFdWK%oJ-ehQdg?-+K66epSu=f^|N?qD*ps)}BaehbfedOz9H}Lv|x&Dv!dG*)5IKSst3?H1q z-~CN?M*;84eH7m^VH8t;^}Nhil)&qGr&uyFv7MPg&oTP%Tkt%v8u0DZUyGXCAljN+ zH~EU&nt}cPYQm^cpPFw_n*sBw*S0Sy^2jsPBhgMVkN)gv2Wsb)$n8M#s!yVY2)(yx zA=1zqeGEG}CE6*gZX>pqJ-!lKAAVsBxbCke`Nk4yV~YxoDOx=DQNB{4W%fyY_ll4H zU~8+}oMr2xwFe=hbqF!gu<%u-@DvK)jVFUOJSnW>$yE*!se&;$G7^=}^H%u|QM*U4 zG}=OC6dKHIf<{KsCi;Aq7q^4SC^XoH$rk&qxbQ|pB4U|!| zNJ0WDG8VTY8S1OZe`j>G%ErX7Mn=(NhWtm{vy4K6{D($H@jQ?q)-npsj_hpK$f%O3 zZGX;xXB79~&44u-MGWv}AOxGrxupx*gB)A@8LO6rN;!urQR`zD@^HgkYI|}QDU?&U5k-CI zPP=Ly;l78R)jy}W?`o1t+c#h1@8#9+YUV?g+GBUe3!`(f-Pk33u29@_FH*bV=P7nw zLyDW-oLk*uU-2S^VuIID%=Q5k{ed?{ua2PT;e#n^{(Mp>+W!zm>c&yj-?OPLHmp2; zj#|I;4=EJ2<`rtSJc*(fU7=Q$-6?9;PHM?36Gct$OD)SSW(0fT94MFzznuSs2L0&J z$f)w&kid$Dsk{Pl)Z4F7@`vse-C+UgPS>XBV-^~8GKW-(eW5e=iy{s58ZV-iN(0 zo(Eo8LzUkqNbptxx0l(0Ao6h-mIqmEKhl1)hE=7e(m@60MI|L!m)RLL#HE1_`Wch+I+lTSHFe#J1v` z+jZQ?IjPc)8=joINCV`uhNA2N2}&3;3Ju;SXk-*A3JI(LVI8P&h zoKf5Z`?yC&v6eX`Sj${Sp#cj(Bcree39QK|Vu02o#6U)I4@QpQ9vMYAkRTixg$AVr zXk--DAb~X*MGPWO*X9_=DDDCK;2s%8T0?@gmXWAZku~6?1yz}?HSAW^&gbY=JVYrb6t`kQ8UOQ-mELTJ`|@Eh$8m!UaxSMo~L^IpD`izJ9)6>WqwBw zlz)-m_t(rO^r`qtJkBp^;H# zE0DmNj5mt`#+=|D8AUjdARHNm2G0(Sj3Ne*z?zK3t%`+fu^Xy0sx-cmH*1_xrR050 zc+7+|s?>ULC%(rSMXV7HVlAW4V80P)WE9T>3F0PWaVd)T4ECK-yj9TPt&&k_FfIxj z8O7TR39QLjTnu0Zdwx5k2nRcSLnEUI2NHxMqtL(_G!ja63o%<0`)ljSOtwPz)joJ% zuzH3$KdWn_Ct|dwEvoEb_24{KS6VY;kK+#Pam-xf@U&u26&^hiBS`($S-nh()u1=p z{Ze#R-oy95>_>8qp7>uJJ)zFJ&3?n8=Qn{(F&fJm1>a({95gbjwE0>cmT0*36)!$l zXj|PCJZf%x=j%LbZpX;ej!|>iJLbs22N^L|7Uw{fe_>oLBpPD8t-^O>EE%j}EE%ke zv1AAlu|^DJEN<3MVwSi^!_Ei9y$X*ZgxyYc8*w-temmh9`-@%>#07}BX{hoq#2*q3 z@q7y3jgf+|hLM99p@@-$Du;-aL=0ps&WFOQ;t8FxIG+RW01xSm!skE(pChBtpqv7Y zjKb$Y0&6nLb%|O;REAQxH%3oJ-p?zA$1><0*X503ICNilAG6QRyboHpP^UoamR6?_ zGmMI9-SVhkV(*h`vSels_p@Xgc+}Q^>3tkyx%9WmMiq;wQz(?9{KjA6?q;3%OWf1H zp5seIIS5}O5MQE(D*r;M91t$5) zg(}BFwA7$@!Wty7CZo_Gy`a%huxn`cP)=Kn zg#){WpI_u)*B0GBXU=K)+lhRr()Ld>Sfb(1=X>yZadispOp9lCMwOP&XwN+8j6#F* zEi^KUmKsRVHYuafASI!ZQCNcn)?^eK6eppPu{d@WZ_?ocDAF3WTBNm%LIeBI$SB?& zNMKdQg6x{gJEmvyzKMRkf1-iR1=#iQ{lTtV3TM~67MsG@bvkqBU13+7ZYYnobFu3k zVpqKX;9VI-D>Ni%g_cohz@5;@=wesQ3Gynkjoz8lv~#g%IM}Y>&ft)MJDssO-i2M1 zS)EbvF8Ce1E93plt~S!qP%;!?*CY1@yIT6+3cF(036xzU9J|qCL_ZbFuE$GSb}j2D zyIKtymZ6T+{O=jo9glH4qi`z~TYmMgyMoKF0bQQt@@wG8(~eSV&`(z8wvc6ga#56D z(Z2`QlTnmXApwudC^VT~Z?i^5QGT7(cRiP1WmIY8oMyD9${z(#rA)84cyx&~3hu@D z6O>M56eSw;dZ9!kqtIZC2Q)H@@+%}Lzse{y=of`XMqv#SSd&p`kdn}7h!j@1WQ$Zs z$ribQk}YyY<&tf)Nq=(5Rz^{>g#;yAAWF8t;!1)D8NJiaDB_0s`OwHHQWO%TsEk4b zYtYC@#jL}1+}NFS*%?)CAwh1Vr9?)Ruibkhx&W%Q^WqhHJAO$4RB3te8cq>sRB8Hx z8GMg33jc#};ALb~Y1Xce94BWK_u#F?Ju<2^{mK5EUd|}uHh=yCj+>0)d633r}SJ>gyR~DbxcTz4tx9-sby8+wyw=ZEQ|n`5G-3@Bru$b$9^vN9OmH+;+Z_ z+s;?wY4i3Y_h?j758&hQ04QIh*#P$bdk=8iEf__6fW2$|m}~ZZFrK;RfJc9a2RN{> zH1iV>e5IkvzrgR1$f)vY07$S0i;O}ul&-QyMwR>gu_Fum{$*5Y+VzPv^SVy~R4HRv zCiA;9s?_bAA8VXZrHE%&G4ng4(172ekx`|ARWGr`8HEP?4vmb$8YHkLqtGBFq0vxy z0L;^e2WZ*r2y6(ih?Pjkx{${kl;O#QD|Td8X0AlMf>K&6*X|SJAe>{2 zbCp^*`I19+Mxnt<+ zJQNyOgGNSY1}o#lVCdy%QR{SrHtx)>irnmAe!ds~{XKFebt#b>YO0P#BV~sPa zG{0{%n%?qq0Tks^w7{Z#Dx*rxuP$YYGm035uL*zKlKvlzN;|rB#cDvqr;}Cl2trLMyB5=k8U z->*J+O#xIXYUA_VljV#m^;_`<^=$Tf0aPh*>k~Zw(iw|mxe=c4k?r|Y1yJ;y=~BPu zo--L$o*nsQ>+=Orr9n+k($w_#3!s>Z2c8fkCi76Gc~Ob1aYms*9TXZF??sj~^6DFf zvD~Kng5_*eZ^m+{`8u`VDc89yS4Sd)v7Jm)COEzNv{%W_Lj*XFX^lCa8-vfSby%5hl^h_al9D*r+m4iXJT zS#C*CAeZHq9C?Pza!Y%5c9i9oRh-HtHN*fVHVsvdEhLDwj8sgo02r%(0`xBzs1+(7v$lwK zG%hcdc%-;HhKS!YeXJ^09lf1ifTEeixi+Ys->AQ@^If!3nhQd|m20?fk@F=x7>N@|)Ut2=8%% zk+azA#Cm2Xqe7{hCh;|Wr~JtGBo2O^Z79@k{(QC@S^aYkCt}{q9Iis4y(2j;K*SA* zxGH=N;*WdqJg|Z1Q`m01`L#G4Xc2A%?*xRng!Yc&xB(GYpu+LTHFzG}gXe>dqUUid zlrX`YtTlQtB5pXJdTt#l)Ghlm%|C9We!Y&;veglk8ajtI@UAh|8cDPz`wGVZIQ86G zMuo4(HMkys_zfEhZOOjOc7X^7h;S9Y2DWiM!ou|kTVcBi6UuNnK!gia_+y%* zuuTYIV(If@4D3s?a|!_-s*pDWbofN--W-{SA7M+>5Xo;|7CnVFBRu#XQFcC0)$*(NL6*AwlUF zxa#~OMupZMxxsgDXl!C@o1X8%)~p~Ts%4WOWs?yjv9MdJQ(flO z`@{R*bPWNlJ&YDW>@%ayaY|?JTgSeN|`B}1fw8wwxdGF9pTSbk&7dwYy zP9%2A1Y)iZP@(QGPNCq$U#LU5#nkGv&#CP*0n~1Af@3Z9Zs(fvnzL9(7i-S~Rcdjy z0S#H6l#4CvSLOY#6l&SOEu|hs9jt6lq z=KMONcphl*JTj^@`q%}Y59N#^e{e1GM@I3!L4x;9Mxnu6BWPq)IZluuZW1!Xi9II8 zy0<2>P#UkJg7t3&OXl?rY`ZTQFuQmD`iC~lGyndQcwW>$0z_+$V+=zvtvT)`u77x> znsl~wk&6F41K##(dDV(6i;lhV40ZF)$;DA0{zJV(=a547hSzA&?lzQmVKfbywTt?0 z9z{dV!K6^vHfL$f=4;e`UOgH=r~c@5^6ysX=bt;g&#NaY(g;_ zV0PU`JQ`q*IXD-EX72b(ERj*Ah(}7%yr*{O;qPr|enXX1YFWNE%{OFFtITD*%OBQb zonOftEkJ96Y4)dS^!Q@~Y5Ibhykqjj-ccyGyf}r%J@zTr_{UY(<)X^J)~;QfhevME z`j`G8mFz>}Xu}VaDeKE4wDE;5lpTGHHg%eYJw0+_X;ZoSG$OVYZFs+8E{fd&v3n7A z2Lv7;Se1qZ>_Mr{qdyIPxF(~q${)F?((!K_Qrh1S7C@DbT^P;#-{zv%+mzbyZ?vi9 z93sPYA6~5(YuX<&d{3z-qA_;;^<>KE{4|el9e#dME{bulJ*xf45)Hd2l)>!IA#v1= zh$epV4t4d9qX~__qr^ewNu_a<{-ng!J96I;?TwMkVHhLi!E=dpWFyCSBeBo+`+|Lj zr{`y%f~_BgmA@=EEq`I$0FGO3{qRKj%P3Zhy$9Imc4t2pz2Y`}8p;pODEzKmvdAl8 zz~7>D;EaWri(o@|SNwu^m9bz6P%8-vzl*XU;wB?eg(BB3LOBI~T}CjAD6ed9P@c;x z`!`?X^2+P22Rq6um{*N(WE63O1aShQbP5!uQ{0WxDXgJ%3hQF0AB2cfDPp3b&|t3! zNMsc01_{b5G761I`N&*ce+)aFW7ot@%iraa<`(Z9E@{4++0aqa#L6ltY04-{nvkHR z2}DT~C`y{R8zoIxLrD|X#e0Ad5exZGXb@XSWh{Cx8)wGy%q=q+3yh`MabGaji0b(n zt6+Hvj0JXbA11c ze<;u2KVkqL019S6A2}o%;wcoq8&3wF!IPp^j3*bXTVV7kVj!d7O-K-1;G#r3V{xng zfGaRQTtn=MA#81R2T?y>y9qT~gosg{h=GiPwIBg&0l`{8!CJT*tOaXeEm#-agb=|^h=GPe zgIGeMA)Z3)^@=BhH9RTydc~8Ays|8h8)Z!GoebNM_GsSTw1x#-iW9z#QD6 zRVH(C+ZWzsjuu=A-qzSt!(v%I0HvRv{ zqR0<$q%*2CyV?)Tug)lZGuRXNNGP$WSfQ;Ti*nCJAuAyBiaIH#WD~}YVWAz^GMZCS zujE;ZI3Hpjf|_XVxyhE9n(sWtWX0GFN6C)wv888VnF^GY6lUuzo86(u4kX|(1V>aV z!(i9xb#|RYQre^&Zm=d9GYoo5R&wNNtRM8`kblFZ-?RN<%AzG-eFJmJb>@3!B-ULl zhk`->p2M8i>7{?TO}u9ty;ct0GYd6RPJonz2DUk*L;49cNk(8pU6Gw6o71O|;( zhN2wmVo)wA-mB$Ml&4Xra7NL8g7#jtkuY<<51>bIY5zRPKBx;Pz|pu5#zy zsl7{VhEXh~DT~aM!h2|^&=4{dGJACS{lRLdZpLaDFX}XgR9(-kR^0rqZ}^H5v`JR8 zS*&)yc9m`zAvO-7*^b8t3mWEA5SF;)}f6=f9ngg*EI-y>sjv!F135@R);QCO2l zapsNY#4n62bVjio0W`2CV{tLS7)mk9G(U><+@ZlN0U3n`_Mwqcj17eZR%I+M1{ht5 z7(1gFp$iRm7LZYBU>_P8#h6VJ3(|I@}`+dE4ug7GIV`A2ZlNM)Af%f_GU) zp+P$xG%^aVfdtlM6q@ms#JqVKMOhO4CSWZY#XT7532QPIw{jKu2)*^rD8hjT;m9a7 zSQQEy8O8WXNU(0Gj6#E+B4}h3r9Vgz0~w2pHD*x3zB7uF95i4%8HEP@oY2T9@&^*+ zkBmZtI6)($SiJxe#Nhw2cOLLLo$vquoMW$=9jdgoTQzF0Aodo5kc7xiWXh6+AS8&0 z8Hv3|5POTgi=wq!TBSvo(JH!B|F6$=KhNWM9!dFmeP8AO{d&FHcb@w?=RWtj&pG$F z?(4oTBXb%tatB(b_KOYG9yNOW;t@uwmY6AQqm5J&=0=H;@(r5o5!ezIw`mFK!_N!e z2s4iqP3Jsn375SbE#a2OTSBvKLXMtt^uPbHB~&q;pFxvSXU>mWL3Qk-)-U6w zX#Ixwe45s;xM?p?J(FjbcmJvN%lpg`-%6QVKli{;KX(uB2sIRx(*64@Ww|^5$MlN) z^0~9bnrb9AZhLDPi5aORVd?LQ#7Om(F@@iskxJrRZ=pzxRJk#QBR(UQq-BXQA~7<1 z?<10Qsu@J){c=%l9jbXBu1+Cktu9BjZ~8K_rgSC zq{@vcypEAMwVZ4hnZGsFxQ-Hz>x@(q-a92ms*xB|I1)2bNmwRIj8yF~Q&<8cfr8oY zo?t7>nzSY(iQW;3HI-yh%s`PCX)1NhKvil3m1NC|>LM}Hbe$E|)pZP164n<>V5E9` znZozlNG0LDQ(~kV4>N^#YUDrlE4&Z(9!9Eug{7s$NY#5Vg}sN7O2S+yF;FxHYFFt8 z07}{PD((nGDE#0K4|s!mTBcaX1z7%4^e`g|Kif;DsME!lsvzO1SGL`s;OkxIflq{PVoTkpbLc&FCPsdr&d#Aj(u)mQQPNUv;Q zPW`Bi6byZ?>9?VGp)c@a|J1w4@sH*$(_W5VW&hLkDrWl^vq#GE(qm*}|H57+*E7da z&COorh3QGOFaBfm6t)jWFH`2<>gzGuJ#Zw(-%4V%d!U5BRjXsPdth#lBu2XjO88r~ zyhghR_5u8@ax>aJ@Ercm$r}m37W%icrn(L#%-={QVUIwGk?JdD3Uf13Nse5vDiR}A z?HJdqSUdc!&Kc3nU(PYm@MW8$;yo#nO4>{D1;;x+{sr5vK+*n~_B@P)Tw7@#bbI-N zbJ)p{FIA3shH+soUym1LH*KC9&-wK>$kqeN7>5Y>-P>nj%Bw#i;Om{xFy(R=1ikqQ zrmq=?z&Q^vcX(?AzFU<$FBkQN|Lp)|l<5MW{D+Y7V*{VR zi?OoEQh3%|1Pv?ag~4O)ePk9-fk*jwk(p3YyqjrQh2P=+N(J$PI-uWNtS&keZkc?N ztHa)e+dDO|dTj#wZ|#oNw{D?-w_oXT&Z#~6tto;v-=)L#%nYoJ^@PhGl{nJ5@dsSG z#$#Rc%W(c=m4!O?-S|`X)ml@>-f8RM6<*51J+lkIr+Y9o?4Dj8{s49*jg%clJBRc` z$X_L(VaHKdg!k~pj;KEn6?XzVDwaZQ3M2gO>>i8}7s9do@4u1c@c{c)Pr~FM6QGH& zko0m}h136`7@l|BL_5;R-PhxJNi;&PY9xD^eA%5exLRuAQSb3rq;;IZs zrrQ+6eBg%6pZg?ynM<)~hFmoga-!McxxXH#(Bt^JDn2PvspQUMbl^UH;-&i*K=! zI)=QxPExF?Br(hDiiC_kehe|gxqCb2bOl7;Ig9Apn-HDrI-;f=#Nbk~&=48(Euz9p zBI3I@5%o?DMD#w2$m7T91-Hu>L^c5i9q%UoYC=0rMffc4i43XU2jK-;AvmnGc+m^m zd;wt|^c@qp{ud0ow+{i{-(gVjS_~}hjL>i2g$DmTt_V$70KfOYLulIu@O6lgC}tXb zdLKi`iB|BoyNQsQQ{h$V6@>WsK!a!H1o4aOVc%QWZ(g`iL*K-52)&<$UO)FoMCan@ z*)$4~H#B-SKGqA-gWf^+Im0pJ!cTArt%TvN_dr9p&mLf8td}rxXdmHNe@Bx)=H%gf z(LLoFChU0|J=Voxvb+a9k6gnv?GBvIzJ~OJL*aa-9cGRl3myFv7GTy7$r26RNEIiX zK7AM`oa|d-j8KEa+j|lMsGU;4K2&I zKyZOQ=+Npge5(A3&IuLaF`W0~P~<(hZN316u!L%TJ`3+;0uo@?C?&1DSGpf?>^p}o3%WT zqJq<&t+Ardhrl1{_r1ph|f3lnS1ldaM`Ey?`w7PoO#aPyh=8` zxrW7=bI^0Zcr4H3ie6r~v8w-c^!7VTKd9Bb(P!Lm*ci|jF2{N!E3P{{HVk4vvc(C3 zJwLZ4KLE7pkdg%i!r}dM+|j3fH}GR5j(*hGxpPGdQ97mNc%BA zqDO2;YU~vZ&T57!1-J3*Ejj}eLl+?`?ql)BYNn2eBiH0Utf`}$YgLh$=`ipJ#(lFz z{Ko%+2@jLdE1@DL*J_JClX_yR2R*0t%jJ*Mj}O7)%K?}cG0s9={>nI)Vqw1#cE}KK z_kGrk!?GD~p=Ur_@lN4TMZ@AZdqP9!owcw~zbX5b=1n<-c5`Der~Eu_ z4{3<()f0Uq^I`DPws7hH7Gi#Fh<$6}P%ZSl~oBOy8zgO=??;;iwA^tx@Kj?qz&JGG{cHJwvLV&>{nu?Sl!qv6O= z2)ecc%R-i8pz9JW@;?cm)AQ*sp=|?rUHA#pb6tm5cu5O&`O7iBfraz5C^+t3$lXiX ztm$az-O~mBXJ3QktxyCWKaTE6xe;=J-clX(8wlUtM&4dNIljfDj?n#uO{=YAW&*GEtcl3bQ#US`)&VdGx zBiAGfsKd4Wdvc6RvDf4rGj%jvlZ3^mHdxqTa1<7;dJ~#xz&ID6CT#xr zVBy^JW1!11a{}7RIkVfpk4C40$xH&SU5=|7%zW}snC zp!^MoO8er6Q1QC1TAxR{`WY`pD>G{RANKUQHZ>o`b`c@`S zs9#91_lsgv^xQs6sD02)bzuCbVSnXBID{<6!Q?v<_u=r*7fo>=_`Wgj18LNyt2dI` zXG+XmCfW*~z2d+~$&HaDnERTEpVQlThYF(Y=9(+D-e&4(f9Q^+nAxsG0r{<=O`SDh zRH|0hys)ZqKG;`C$BIkzPuaXy8!XG%0=w?PSTub;nuM3cJc)wT=-WA%>GrC8{i$VJ zN^6jE;b&8eF{aISX(>kZneWliMi1yLt3za7=u&>JY4CoGRIAHO;k}cr6Edf<3hi51`_@zzFsyw_j8we< zQ`id_sU*ye5+k!;bJavsH#EM1knJ2bccX@NqP8!fEk?&)#;R*8G4|d*tQ{~O$)OzM zZRq!|%$hb|3=(d4t|!#6v-dGMX7?wx>M69rGF=xIMEoMT! zr)e?iGp~`XkL2deAlE@@1ai=({2!vX2KomFyfCYqxfzAyd3JYaAERR2_BLqq`L8zA zk&x$ebe`a0;n=Ay(e-PFL4S)Egsp%zdjpI(Pfc zhB|gQ9mK%E7BEPyCFt?xWmE* zXJ5k@uiMa2uX3XFM&z`qdxUe!&*iA~>}%4K@!X7i`z+Ma)nhoeS1w?oBe}V@snV z7U~$1m4yv!^IJGLs1eq^{~g~QUpK5Sum>S4s$)f$LKf-e;1m~Wg zK|}1qFX6Pbt(1Taa9JtT;dO0=9Ao{|Rj;8eG}TIbpp3r*WPJW;{5|XC=uLk3r{07; z32kKz{;P8pl-?wVmG)=1@h{}(?H(3U-8(2WB8D~h@6Ys~yGO}xrmrEe+Sh1w#7}f) zjMNd9`3{;koJ5UfQatQZw<0>%H8g+qC&Ugrj23B`&=5z*I|?kKyQW za0oQfh<8rPgK^1`=(;um(U9GlAEPWmuzNdt<=`98A5LYr6woh#(I?7#dwPUQ5+j-rr9ay0mUB)X@E>E7((K4LaN&h^^g!g#E2SSR2Av0d_YBV_E%o zgtM0%6;3Y0cu1|Pd1FlFM08o!T>R$ochsp3rgH-SoGr(?w_7Fbz2F<8T@rg`P#0!g0`S^eGw7 z`w3nH*C7{#ECGM})~EmKo@Ja^yGj?#uD;1IW`F;2f zZ*8HDQPsTQb!vl!Tvu|NlZ*XE$C+^1GfP$$`ZoCkk$MPvZ@vf(gMPY#o()RN`f&Fh zn=tT~6X<5o(THD}F6f&3veW@dkBp?TM^XO0{ooCEgo$;(H-Zp~2*lXTS7yHyJxt<~ z$9ovF9=Vl8Ey3P}J*h#DoO`24bBHLFFT-^HQ|plngt~`%hj|A2n>?le`#sEm(55T7 z!5e6D;U^pF=zRP*V%s#cuwB067*Ws;nzUsJ<8Q#eVF`@+xC5H*DJQc44UI=F6RRb1 z-X}GMODBF#4eN#5$lUp%*kP>ivj_H3aoBnw4|O?9+hSMYRp|8kRT-l?Bt68T-p9Bi zb?g&-RCFf#efcGhx-Nxx;0_$y^#S|EFMM#UQz{}pxQLJPxME100}k!VpdR(odF=bz zUhE`xhAy^H$H7_SF>GLG8|v8A>2*Zm4;$*(8M;XNG;1>A!%$3pSlEU-hF?C4^_%-! z7(L_ywwLJ&4O|`D_1cf(>3>(o77Q5qA$E6tNb8#c$=KO+FdR!hz}7+Up!4A$u|d|i z+W&L~t2|@SZo*eGM{3vPH!M2t!1!4u3Shx!e+gOF{5>m(Ys&2_=SO2h$n+F|ZJC=n*YExM)>pK5?8H0C9;{8l4yG!hACZ#q(yN^4_%6VIPrl}=! zqxFJskd`?IEmu#*jJ6xmB8zdwXPqmC=HZhh#%QziV=(`#Q)t#?C~XKQc%a$4Rk75^ zTi&0QiDl7TERfa&?2|WX{hK|}rrcI+JaSF6YZ^AcQv;pP7Z7&uHbm%TcN01`=JJPY z4?l^$HDG**g*t-XJcUI~VBx^(XR%Zwc=^7&7)yWM4A1+`~>Itb5I=}4d44LZCV6~?qbXTw(yL8{A23w5N%UY32F z*3>b++pp;NS4kV{NRAvOc1hOM;Zn1c%+k&56WAP+L>tSeJ#|SJ^!#-r()!PUV_Hqj zc%9m@9@na4b`L+{{Gu}zk5W(DdzJ{Q_h&(e)7WJkG_J7*xb?Tlb!>} z?!jw?opy0vy?1^f+Ky<3-FbV%e&e@dr_xkLoLf)qMx)n#vGIe8sNdWZtIice?LLe> zvh>7m)VlE}=DqqeKK!#B()-OrodSEPTi8_%^?SNlx4kkyRP#pVZ!}cmchF0Qr_3R3 zBY4btDSG(PDo&b>N3};Q#q8nDE5+vh7RUanhcCcYAO3s#9^T76+|MJ#J?w??qMWbK zb802CkAbxHn=R;eGa9=+@4=o|CI9eiX~!BrZ5KjiRH?+ZDC*W{S#r{~K#i|#j< zJl05T@wFw!V9WPYu=w_O*fp>VW_)}Q2YyI~hLmM3aOC~(F=FT$AuXQyTZ8Wh{pA?f z0(;~fhi~Ud9va%e79{!FPg^h7Y4U2gTvrpV7t2EJ7t2PfZ=J`m{5*&E!#sF@n&jK= zt#)#q7PAY;bsJ01%d&8Vlw~7XR#KDl^BCR_&*A+skDS&$d^Qe5_dnkjYjT$hKcUCn z!|>j|m;Gz*uP|uN2q8<&-zgF^h{w$6lq%;es^%kktSZDcjIi{oSoi1KQZ{nJ;K4!- zGu@`hFuPcg%ffS5Hs-;yYLai4LJj0PB(FB^8Y1s! z$uXRR^PKR0r=Wqmc{wcx20^Z?cbNO_DiLvnfJk60>=B{^>V5Mzs92w+~ewF41KFT-|N&S zV&_FYdDz_}@cLsRBJ7=LXYF+x5#N=OJp`oNvK>MV{Yw;-W4LC>b6iZeVj7%3$&`Fa zUXKinC}Nt)54_|o?~ecE9fU(X!yZvgaYp=^)yM5 zgs&tIUG9VVTHjYrx`YJBONa`tgV8=dh#rw8W5?L3EukT4WG%#%Z7Ce_c0J*!!nLSv zioS`&)A@_f?A6qo12R!u#h8L?hcZzP`& zsh$sy;q&1+d_K%WJs;-F=fdldlk@UvQ`16=Q0^|_eh5CF@#h)imd}SC9Qk}mkL7EH zIy{db$M^{zVil9pVS$A@yo;6`&lMgu!<^ zAy&JCsOFxuU*w(xuiH}BBEXmCh@Vn#+5WiEBs|RXDh~M&(0(<1!rrw6%`oe?-ruJa| z-Okbu@H%V{cwJ4}43>p$2+PJcg=N*GouT~_uS4>>)7?kgjHbLyk#9W^BDxdP7{H*B zpZijbrpEMmTwn5Jix~50s*!2$+kF`+Wn&T3n42A++3QY0pUA+#aL+Jr?|(lI?*BZt z|5ti!=MInOS<}zn%O=Oh>{+d;W81)wWL@5xx~!FOM;6yijMOo4+Y$7?zr%*Qtd+K% zR^NuoXAH-x^oC$$w)THH?pUT(By+K5PW!CePOB$(YE2#e?`O#!T2nWr?y#W_r>kq_ zPOYh|BUv_DM;e*a4s6yw*O{%UYKQ#*pPZ3O!c^=3R9&m%6Ca~`KHCN!HC^iw)iYgC zptU?xBh`DrC(if4$eiv+y)Uh8sOpU+V7(cs>W!sly&0*VDO32gjZ_lW3MEGB@|0Pl zeA-5;r>)-LEF-OY*n;puq(mJJhbO||4R4#6>N49`?_F>S4L&%^sGsC{qussTGNZ zvL9`s*j9>d*`xhvd7jxnL;;U5e{Ua8_wX0T?)3O`wz&DTwL9I_wmurZQUQBbE=J>s zBG_L%1x-JvzXy7-Y`*!TkUmcMn^Y3oPBO*JJ?)p#cCdH~_E*j?xzUo9xgY-74LY*? z&dN7IPm}yM%+xV&-5-)-O(kK=M2V5Q$zNrVh0L8tVg zmXP?ZvayWaP?@$R61Qj(I7*uB00OG(O^en#V_`^&IU-`Eqiw3Cu?e zZT@@euPaZ4dw4*&YRCTluPe{i=lr^|U(4CGzcA{btAM>#qtU2o5$vDfjwTCaY_#_c zG#hpir2Uy%7V7d>R@RBfxVu;e$3_#}vG-O1$?bsS9m)OBHW?dTTZzLrreN!&UXM{1 z|1Ffzj|;iH;5MO#rPce$+0^7Qw*?-$tIyQ3W^}t%rW%bL*jdgF&+Q?( zh0eWis!{Ht<`qenz)W5KVriLTrm9h%%^GEHtWoB!YLr)GJ+TBv>QYLku(Txag3PH# z`!&5I`MNE1lk0fo?_jD?&&GdCSxA=6OkMuseK5sLRiiwcHOkyrqs(2^sI%K-sVAp` zO&_C znHy`AxvLuG6$G&RMi=kY?eL=9ke(*tc5z(CM=K|HFMo3nP@P0Fs;6v4$4e=(`!EnH=j!p>QWvaWBoMb{WI+H z%!|RIp_F*eR%7s_m*WdR`{XbDQRE?7H}F4$)pV}$GQQ5nYMQHnMH%yw|DJvf?i(25 z@dD^4|F;78-?#!;h%p17r$v7yn-*Qej19NYc#9JjU+yB_Kh_p`5AC+n!yhf{X#Xsh zb;o*()f{blHKk#wQ(H)n0@OI9h!+A{-_6)CNX}u7%wuigRos_e+zIZm=`se}yA2WR{S7CZ zqHX6Ctm?|$KlbICV9BJ@u(SUZv(sv#k@t6)I*UCTy&a6Jy;;ao^LJD@_fzqhAPkjr zyz*R-JX{KHXN%rB1&&<`%5}J7fY)u?xj3z23e|^w*= zhpja4j|6&UJ5QrEj8ota@#fTb;74#d)(b9veW9bz8(+e8^fdIMzr_Q8qvwG^%ha<7wyE}JjHHLWH(zgq=v zm6FjhIRfq*zlDwtBR_=aaR+qB;|lMvk zc-^6gjM4UIM8Xk2k4(zbkDB*$#gN=-8rp2%E4!cC&by7tVp-Sjh#yiXx}rnf4`h#2 z$N7Pn-g$y)PYAuycH4Fs(??`ksKcTDZ1JIL;oN&jtN9VFGWQokYU(yPEINlNeRjhk zVF4z+)t-8?n|G0tm4&WfIm-BePhouCGtBMVIY@pmO}vmMzkXHrl#MT*0u8-(u13na zVzRS)l6N5bIJLu+yY%bHw<7gUA2_$M6PtE=<4l(tb#*#`8NEJ5znjsRg*dp4dLOe_ ztl(Z`yHL#et_(cO9L3zN-Qk7bFh_j$dM)?{bE*u7*WV*CyWvE5_bZQC9q9d*9**cM zh~yq)l69iNd#DrAAC8k_({?n3x7`g)i(yO!dTUBeEGL|L={$V49mbT&$4%CFQ{KA; z|8>BWr3Yj$`=l?fa=%;W;+Qz3KLWe`iV5)>5!BPg)P@8%8;J4O7bE1A3K&15^MCpIH!Y1 zkgqZMP9O1dKz%8_9+;`i6CUYs$HH+#E+D>oU)m7%FQa_+esLAUs(p>ou2nHKIg-~o zR}4d%UB{@7Gi5K*$cZk95&P4T`8y!`uZiMic<|MAi1*MDbxg*;b!sCrq&niOMvIm= zzFZT8)!=A4{+0O{^v+6*_&o!mi_Xg~(U1|%pkt)VN(9duk5L(o5Ol8%M!(^XAn^<} zHlhfEJY&Q@k)G;OUj5m$)|ArRQ}X4=HloN}V)^8+1(c`5HssyN$`U+F%IcFgbV)hB&%I!{jYz zFtmrC?4hC0<0<{$!tiA+sD~>07Di+>M`~Gn#5XL7)OH^VHB57eKz!{@NN-da@l|6m zqx`#wFH1Yhnbo`z-_ijyd!9%9wDp)>XAMSv&8IzU^93YM`V`YIIU{L-57K|nz_^?D zpdr0$Zj2w5fwYT3nBXx2Y5tCw)Zzj(q*Y4BfBVE6l*O2XDw;T@BN23`3gZ zB}}_=0Mk$G!L;+E<@?bw?bG)#`)Xa`oO$6$+v0?IpcP~K&@)(2b{D2sC?nS3(?7a| zr6*c(FTeNq$T)TyGk$G|<+lScGby)e@5#*b1(4}n4>PZ{!|GNYG4qCowbeM=nMKdu z>;A;-0(-Fj>{QI1@DeyL!7pAUQA!{1RkqOB9qY{#fybldo z9p+=)C1-5E(oXzlZl`tYFFl}P+t)j#UEB870VMbCimguV<$Kk!Wz!WTZ@48M7|6}n zt6*GJTDNbm`4Pru&XL*9m=+hX;bCDUo|#E&@M|@Yux=RE9q)!w=L=x%hCvwlAWghV zPLQv5Rr*r#Ww7$sP2z7{!}0|_h+k0yOQ+StsH8ktl#~aFzVx55pxr8r&NWc>l+kC$ z{ECw?O1!0V)qBLs#h4rOErvO-#~l097+QdylV`0PhM2iAm~q4(gG+yg^si1KB9-0| z)25e4SWqKO`?zkLV&dUH<|{ix9E2TA`${L)-Te#oz} z-a$$aCYBTLRl4jqck=y0tXRpoZAZk;NkeR{eQ-+4M5Na(^o~1$&>1tt zN3MpzPv1kYYTg+5%6#Rravb zV#&*K%ZT5Xqu(0?Fe;-ly}x!&L89GF^mETIGvEKVtMy^t!TNER>x*9w6%4N{-*=-4h57-A%m-Xg$xdUQC7}$#@+beEbe8W#pTOp7N_>#aOIu*28>kEYM8>>LU!p`yWFGb5V@x7;M znat~$CQBpzAAQ3-@7O8O+b80`W$eT~(wDoaJ<`;Gi#ILVTYl%P(ty9cPVFrh?JxD! zVT11qIj`Vv`jRy5E&pqx(ty`puJ)D(>^Ez`+trfm(7QM_?+4p+CQS`7eT7qFOj3ia ze1}s5erV=vqGjH<>jN1(?YeTnqygWyAxvq&>(mxab>@1`q^SX4eD{cGvuFKLS+v_z z{$`v3YP^%ihX`3}{#LP@r~wc33YT*{{ZC0A&f+(W8t@+LG^GKrwNEtQZPs!}5yx>Y z;x|g!nl3piWo`J8he-oY8(`iK$@?R7+8N@K`HqU?XGI<1Yx9Z3no2@1>693$>>8Ou zO_Y&JBAyg$?R$(m7M(9BDb`f26a5vl-7@l7#!i7^Z*2OW3}dI1m!pN+^E54#)jF)c z{2ym`ou75=RN}F*Q<%T6UxbwG-?xi=?uZE73;$$av~)< zG6+Azv0B}VGfb}@x* zmyxRF;9QI?hmoqa;jwIOjLfNpVw=UXS&=P>NteVKT!|dUNZj|}3qM##G@kHMv_g}5 z|5GbO|9P~^rjbWIlh1GNe*mce=KuMHZRg!S+Od}RvuACE3i!DPd%aM)r9AYQ_&mC$ z*RpASRHQEY=3>MyBb5g(w|bSu0~hIBxF!bVzD%E4-+N zKyPmPeRQj2z$FO5=O26_?i$>KNPnvi!yS;Spx)*pt;v zQq0_!SWbRx*nc<#5e-V?z{pji?>}gF1JUicLc_meyA2TuBk}RbVQy3C|2?ss*atE< z+6kJ;{n%Y3#muGOG?w2QmTbC$5p~we?3$K@i$bbnR74Tz5=k(z1={#}gTIM6~J zQy7D!iY;~V&PoX*vl^*O4AmuF#@J9vd>@n+iIKXz_w;kgwRt0RvV89F)hW5MHFbPA ztfNS*sU&POC^1r(T$sY#3^eqRY6qYn+z||~9CVr!Uy2@aa>>VgMBA96PwElb6Xw_> z=Ii;aJz_rT5nmKtW}f-a*&8xy)|1BKI>P$wLM#7MHdGP7x)(1lzK%%GEBn!-F8#TB z_UZ}8(XYd^<4p9*=K#+ZuIN3skSWp_qhENfi$mYH4p^v*H3mI8(kjD99UaRxmJ~Bv z)qh)lYp|PE5B|Pipiz_GC7w^+ZyF$QZRu{A{X- z-x-;6CF1w8xv>^133oso zrZ|?~ISaSH|CW7PZqbYtyCnH%@!__lXjzHKZl;dt6T8LttC>+9%fjBBp5r6R&xQTG zpKRV8;Pq_#Nm?cNO)qalwOfD5_mf3pq}q$k*#`Gw8>veK3#Krlg^{{=H|6tZG*Dqr zXIYuo&_5|23B_JVztBY(8CqHF%|@JLtXP*yuZYHk5lX33F;f@c$xNXSWwQCG_k|jo zwXKg~^bbG64nu!AiKg54BKF5bXlT003(?;+h8?5NUJR1`?-8fDC$4$$TG1CXH|mYe zRCUc1*0t~(wZ5hy=7au{62o5oq#a@_=ND>-jVP>ArrIm6A8eNVbOqrbeT5-iM<9In zLJY}#2jLsJ^M1(f?-0IX1%{S(M)>?d3~ki`;qrzI9ok#seGWbFP{wd^uT(&|>k>vP zus@A(S{JzImk~$Y2s?y}&oIU?2)hu0xG%p%*wXzNR-z!n!f4Sltp03-HA<3w4}<=E zTl|iN+&RmcWTj+@>m6tEVQ;4Tei+xB-;t3zqWVuqr_&W|m{WgzDl(tE8P-%jAo$ME zlZ259tIARu#qXQIGs2J^rMZqc{Hi@!r^WKR)NC?2+rq996}n zDkptyn#@o64ghJ7=BJ#<7I9qh>c75u;YgfUyr%s@c?j>5ne z{VY@xTKw?{Gt<&(+qZ3^3ubzSV?%CFEO2U%%$RSH(Xkw7bgSOP%Kb@LHaF%m>arJ% z67CHneah|>YGS3m^7X6mEL;oA_soWSR2(w=9id@>Umq-UUJtj+A7SaV`f%&J6-!Pw zr5CFk!?2{nbo8I`me_`vsiWmY7etpF@rWfxBkJ~dTrr~8%o`@=bCBQR+gtM-ho2EP zJ{YY!&cvW$oh;PRy?8Nr)m?63kGI#svpDxzFfzBt@Vzp-Cwq^2U#P?BR6Th7d{IWa zp63f%sH+ifowYVpk`5jZL?S%mkCx)g)W1UoG(9r|fo_x0aL_vliHbwrBJ_$Berpgu zy!ZoRj`#_=*2UkNL`bRo#sKjz)NoQSvC_87f5`Oiv|K&O=B)x=%XVx=O>ncqt8A!r z#jI-{VWIfimz040ikF;)F%A(d_1b)5Why-4ulO_V(Zg3(L2SK6GV-8b+VHfRV$ZH2 zJo#q~srv!K;~QW||1t=V`U6A8OrXTq4MX=;&!O78$za zD8jB)m(h!cu&gW$y)_77Vv6Mx8| z4nK=kdq}{3VQ`(*LLEVsk`cE*NxmJ9^!N>tx>%M5wB2Y!9i2AZMC6qNHq_M^c*;Q= z(xbjBD6yuFwcL}jbiWOiB>2{Ckr=5wP|@EXJy4N}YZK5vhGW2lLiN#a%_|r=AX)a% zjM&@{E^*yCHoJUOd^3}r#hIxjd_$OGWKJV6mikn$Pi&}K3QE{g7^x&%?sgW5k?KyF z!d#6sj=-#SBH67~PJSsyVN>QmJ_>8DbQy*{qg)ZN9)(eV4os0z7P52mjKmp1`|DL~sQfolLjR3MDoL$`1tKw0*)cMOxf+@M zOj$$bu*2vR1NR5Bj+?Y{C$EJjevO~&DwQ|RJUtFIvQc1X5of0z{zemHkSw*qG zcrlrCA0FODbTP+nJfP3%z0+`_;;W*sA-M~O)DSXlJ&yg_NOU}h=f=R_uP^qu;Z7fF zigqq`6f#N(f0Ifw`Nu>_F;bTnYj*o;7CQZ&fjP1ds(0ob*~3CTJ@>LOjtZ%xN8RO^ zQ)HR+{&L4 z^cVDc?FV_^jMQaR#uSduNRHM>pmesqKeaN9FK101olcjR=W0z|=I7I1`_YEF^p2yd z`B)g#^)HNcsR<3izF#2zmmUZi_p31U!z`gLQT|3&(M40hy<^lIjNHoov0>pQW#1FE z3-nhXcHt-4JE2LhKg#Vj83k}>OnA%V7`2}M1{kkk)Q<_G#Ym{T9O0vBm`@koM<9K$zx$qqScOXv+h{HO~Ozo&Ql@RLntH=VHeF~t##uO%rbS_!$+ zhrh?H=l%-$>wcDy&!4~5d%(YTbM4*0y{~Y;VuX)3_LUfe$f>)r@8iRW+B*&Vlh{s0 zSB=L0>q}%5NHU5RsbT0ZC*&CJ#^X7|J?}{#YQ3KMa=o6{GgC>H>7kNhCPy3^Mx3gT z#S5;AZjAek5{ga5!q6&=!nb`d7A)x^-}Zv4(H5%qZE~%)(!Lp~B#d6mmd{9CbbNf@ zsOvM*x+gDa(4}Oz-Y=Vu3?C1D9AUGhz_&YE>)aS9^o`GTX zv~TJc<(zQ8ATI#z0cbK>hzzGUKK`p~TANp^5BY<1#}YG-Dn3O&#rS#EHb3NbBeNg5=|~#+p+rHnrj7+ZUn6APZ#LA$_YL<>(+3Wjb!t6^dN3yG&I5T6ClR6U z%e-rEZckY$*Rl7^TNrhHv5hiVNHe&|T zE4~UHo8SLVy!@_Dulg8uiSSPUzl`)w&fBp`sAFbEBc$8il-f!Cb+d)4-Z)NWy_va3 z;=fJ|*pGcbe}VDuR>8r*9T}?HKq&cgONKsU&C2lR?}iv!Qs0P^o&091cZX{MOfl0f?qjZO{IfZU zyaV8B7i#nFWbeaIN6)hMa%F2O30I3KF;bN}fsrb2#63nOVQo-iqPWcU zMN+J(Bzz|+F;cx%d^h=48L4B_qP~)1O(kJ2lo+XFR^~f0v#_SBYd#m&wSnySOe;2= zD;Gip{1AyCcpy9nJBq0?3V6{+8mXloA8D9ZZd%%mGz`A*b5)mdL=L|2^FFgDf%Zm8iHA(l?o@qyLOD(kEF{N82b!Uu0(Mnnz51Qp=`M(kHc;onPq!AG~4e zlj!B0eG|TSXQjt6Q-|BS zKP1J>0j&<1`Xui@_R=S@uGuGPOnp-9bmb3< zHOfB8OdaD~7fXtnDHnrGebS^a2S}eZ)q`=2Q!Lc6vwN`gNoMZ-rMsz5Vk`vqNhDic zGgY(%ezr_8Q}s!E>V6=765kAZmof9nE7+<}+LW)Gyb-H!-Fl2U^)IwAVees0bshF1 zyt0u>!uz1aNL6pFeb$?iI)=QxPExF?Bz&7FF;cw;e4F?l7@3pLeOdr97i;S9a=awH zh&6S2?(9AI{Ed9F9S)C>7TDCoD2?>vJx?7@5CYpUz8eNp%Sh^lOSrYxJ0>VEkAc|S(#a_@Y1SO-QL zTQ4;}_LP{`5%8Bt2#hqsSP1I4N8VkAy%a6jv;j|U!5(SixI3BFP4vTB-xQ6JYi!8Q z(=s)2`RLb@|DIYCm)pZTkV?ycyY>2?7Vf`N3r8LH^Jw81srpHFO<7xa8-mRe_j}oZqS*Rd9V}gZ3fuRUz|xWNyeiV09=$6XseJA%w09DpJ7lkFS0uKfhHg0qf3}jqX$|v^OtoTGnEdE9tEibBOBM+hjHTntl?i1k@R<7 zG^|htNv#f}LHnf`J9exoCeRq?^%4_^9>Wh2pW?1rj|Uh$crY3c zdK*zY8lutgJ>pSJN8{ti#A>Fg(*Z>FpJAacrHr1`%R>80=P>9K#;xHbh6) z#j;bT+mL?nkUe#*4My>#N1}eaGAvXz+Phe))Toi_DYRQ%N}hs|O44T5c#)XdN+P!N z>9(AEU!J!8=r`o)w+LzkP2Py+mygODLh_9vvyY3UVFxXrW{(!~z2QXrT?OgE^s5~5x{4AHuPnjEMvT;?0L6c)* zr@)Rr}O+A(Sv-8lvIN)*JH51XU@J2f!&wO}-;agv@P@9jfF zpRbX0sva60@yECoE6_wdxF$D^Leq+`A~~@fnr`w&@`;wPYxg1TRPs5%Zrfq8Q=z>Y z?Nvw}L7OkgU)IzS(m4f9Fx0|Oml|mJ+Zt#XbbT@E|Kuh1n03D^BVKxIU#2}FqqvKO z=C^YnqndqC!r2-b->`%bcr{x~jLm;66blqHx2_q7?w}n&sLm!Ur0Mv4Lfe#lD%78 zC89Uv9iQKa_sS}i%o-1$vMt4)$R}|YvNm6Y&&_B?=)_R?7G8zzc~6TivYD#QbgvpM zZKjb*;(gRrBu1*45p_rG&yCb2MjKNYtIbF?J7g}L?HZ{hUHs08#LUjC(&_JE=W28= zo+3LxJEd-gU*l1-*HeSvvYqI7U?luo9YV)hMdAO|DRdn44m1q(bwfv|_89ni3_5lx zB)*?JwsfGs(ZZ|H(JmB0Z=O=@+eD}%D8)~uY`*Xql`R#|;k!wu^mG>Ln3cW+okuOR zya(p@0VtTwyQ7Ks_yZSy!lrxvs<6qAi1?#)K_xXBrYJY z$oPOP0m%|+atuA=^Bk6%dGIcD$(Nc>UdKrFhA@S12+6V@Xx&o+BBzFF(OOm6dCu_Y=cy@4X1*3 zA~Can(CR-yD23`sv2dAdTNiTB-D*kV&p%SfY-48PnCcEj0<9lbZ_H&kTt~2lU zk%fJ(XST~L9_AhHAM0J+FC@%AHY7O0J@DVx464>vbNvs^1$5A>AlIm^sYXVWaAahp zlJJY6#7LDJQ<$5PY9!9Klp}E?mA@+8mZ1vU(4pls3f#JU~Wd{tIG^2h(*;q% zbg};ZY@?WmfV}Qp;tp* zk@v&08L7&~TA{>9Wpm6F+8i5c{PNXWwhuxO2rv2Kt0M%V@P0xZfYC3<7yt0_FP=Ro zfG5~`8g`Xv&E%kLc9qB%PoGo#_tal}Vbd4y85k1o{laLmwJ)A?KT3>LUp-Tpn~~XT`;>h*^QV2ck?Jd93cnH~m4udZl#u+=NcC-x`)i_n zjbo=*kgs!e?M9|AcvR2NhO5VG9# zZPV73B`{KzjrUH8k?KyF!aFsPU#P)~yRg-l?I}@+!XegShS753OYvpT82|W}ZJw7t zvf}1w+3cm-Y-h*ObGBA0{Ic_MHyi&w^_N{F+%F_F)IZp_x~F^C3*$rox%Ut;y4;i2 zr*uq8Z7Q}2W-^Ljn@D;59E<}ca@JrDa@vY_xKB@Fb zvwa6hijhhqla}Hq8Wtm!q*t$AA~Dl(KI0XxbFPOT^c*{80=jEa*s#e9-A>PkhE0{# z6*pfDk}Gc=azUtJ+qZM%n5?(g$vN~K%RH2RhxtbY8Vx*4!g=bj^vJGl;HWxgxtcz^z@ z0Qlg3F z**CJ(dd@r{C(j5ywT}s>Q z(QjZ;@#5H8dlMElfrYwgf3vc7*icFKIs7aVGZ}|oL(9lfqO-Mcw+e@*)kljr9dY>M zj`V$(u^C7F9ntic6T&9Vt_d|X`uLC>({SExIj2Ebn&hEofy|e)Kwig8CE=UP6f-x) z45Xz<`=!{}bg`>Mhjno-Wg`0uHEpnPH85re(G#n1b{ucy&lKj)aTK(;+k;IPA}KS#|DjZ}Nzn8Lkp zMyizQ72Xnwk-EhE<99?EAV^-&QR3~!;DwLY?}mUsV!-+4Im z(Nnfu*Tiz>?s)M>dAAIZohp9$K4BUsAC9*U|7Z$8|rfG@^zXGbp$MS z#6i28Hq^16{(BGKu%SAqVaXA4j*+V6QZ_i$w-tsb{NRl!iM$#7Xm_==fR9?Z$d_VF zG^_jLEu7hl3&#ZNpRt8A&C0beMU+ho$62{)f7~;)a0SgRTx96K-nuCb`+x9lXUvZH zh9zyNBfVf#99~_@hC0@7?k{oSt*K+o>XH&+-J0s0-ZejxbBt8iX*?=Ju4AO}ZKv*~ zpv~JJ35khnc+;a^jyK(^FMqPt8SSH~b2h~%(&x#Wp2KQw-e>mzoHxkbH`x0{iHw$e z_H(xBv>|;`o33H>M;pOYXn`qs-mBbF=-Qh_2V!199`kVr>O#tN z#e}Q%`dsc?=eOvjtPq-@~GO4w&52 zg?pFqJ0^blB^IArj|p|wV#)mPF+M2|G%RiDfN>+TuykVp#+K=dWmR+}Zt`NJhyg`0 zN{bTmY4i6Gi9odU<~^}@Uz-0AB92^>+=DK6frfd_FT+2p8PX39fnVRPm{#p;neXVB z*lv~R=~!>n*O{s6nklSnBb9{Kij)|s>}Z(6XG!uIlQ~(%(Sm^aTT|(sD52iTNF`yu zlo+Y(5}3l=jQpn(@O|SsMyl&Dh1W4sN%%HVVx%eoQ<$5P#@>jl`gsuqclaWhb4si6 z*5H?-7n+^TD##-p)DyhsX+xzK%4vP`nf>49^9%_J@(zAMbWqQ|u30qOUMRiQA+Z9U zvAm901*ENk)=R|ZaF6S7jB>WPXo0-a* znq{FiHOoe8YL-=5Q>XfPOW#Co4)yhB+OCCi#gj*<6;GZ`YX;`VHB08M)-`!Wu4}Rc zW-1BqohfE2YigcNYij03Yiim`C~In7(YT&zUf)!jCQ4XZl6O)6qH$eQ>4rQJf*=Hm zoq}!D-RPI%OP*8X@tKqDdM5Qk1x@40rb;)Ii+UpD=r=^!2R_5hDQ}p2uvbXX3o>gG zJK^WqXIChjFWIz;7%@(*A{wZA*SRywO7CiqcXoE}-PzeT!xmCr_NZh)88b&m6Gsm#>D!|^NzHf4 zlhitz61|*MhSl@Wgz7CYhkM^TsvLf2%+b-r=stg7!uF#MXiB`&A)|*oprefwW{ZCq z0;M@K)|6s%hGu*_vu5OyH_vco*f>1tK|6;tZQH83c}pI0GSe<>I}3L2`)v8WJOh1# zy*=p&nUecASIpI#QbEo>9z;9l&r& zsJDND?R){bCI>nKk7T){#@my8)}$(9P(zN%IQ4L zPf~PL^A)CWzM`Yb>9gl`$#s}6*Z=?9vxK1_fq+eo!v|2jErA|J*qhyrOq53oy{6)ds342sB}7WsMB>+ zIrMGE939m;6Q+=wj?OsXd3w^fN2Sx5L!GXp${~H`=%~)^GlkT2bjAU1`H;Rns+9od za3w%Tl|%Z>(b0C_+GCke)6p3Rlo#Xb*rSrQMBF)0I1{QIe$UL&QN0DGkeZIpIH0^( zk3A|`Gl#O)QRR?6b97X1fhnY>qcaXDebTo_C2QtT);g*j(r1p2>MbyZ)O2*l0p*qG z7U_UW*36--byPV6pG%b-9o1W43aRSoj04Jx^zBi}nmLrUjw*-rnWLk63rrz39i4GN zd6B+7Dp@m!ver@MkUn#CRBwSPq^6@Y4k$0`TzgcqW)9zijw)wLTn)+5QN0DGkeZIp zIH0^p-yW5$nL}CYsB%c3IXbGhz!Xx`(HRGn7wOxhk~MQEYaLY%=`%-1^%j^yYC1aO zfbydE3wuCC^LdB$<)y*>LGNAlff9C>=n6ZbLW$P*gq8Eo?-`R~s*a?wlegUmKw$YQo(Ao)@$ z)TuEMYeLGSZl#)7^V?3b0!^&hT@m%W)kgAxQE0HUUOJi>=l6k}oU=z0Yhyws$HGmY zeFpEIPcxE4WW1a~qmLk-MYB-NU6{g|1M%R#Cj|{0x_TA8KPVyIM(G>qNbQ>v+0w+3 ziuK`L?;;LIL44|1sB}jE`sYMv=%{kWw!I-aI+{{?#-Ty!Nb0lPxUa<;XU`id9MFe9 zIhwnp3FkZeo|JW9a?SN%3r%SmQ`kZxTTV1Z8nY@k5b1Dbl~N)qiSmDxsE(#coe@y^ z7KnT+d#Z7-mTxM}>o<9GdwVR9H@UA%bNXU^e-`$=|BQGn)KRUTFomlp#Klv$3mRB> z=mz$2739bj>>czz<{tMDPl6`q)XFQq1!tEC!tQn<>1ZM>`e)(R9+e*+wu3V}qD#ql z1P#52)>Dxyw}2^h2SDrziijZx3P0Ym0S@$ak^#}n6vw7Kr}%_4)k#dC>F>Xc_( zaLS1*>y(?0$~z=e=pB+s+1K8=Q?#!-YsCGoJP1XgtOhyyrX83g)`Au+$*h^J^F^?Me;b_mWU|#wO_wSn>ywW{9LHS=iLHWQQ)wA+KsK%++ zjh|(l($N(EfAm&LKY&E~9US;Ib!YXOg)#W-FjS9@!m#J6qWb1@8155D@93}hL_*g+ zsQvLZjQIWabTs8e%KLSq(=n|=6MXPvFP@LN+8-a*_r}4~8}Y#_BXMM7f4pC0rEO*K zU7M%QxBp6#6+)s~GptzuoTOOzMm>Lyp$7`#^$PoO@b+-L_QY4%UndIXZs(;h&v9Sl z)iwnkS_qQ{rM4j$?T<%m&haTYNlGDa=#U=*_LVA%Yq=3+!rr*~EJ@%A?V?)j!r z0iReO>k2w0_wUas^73xjgUl%&%VJJpBH{c&RGOD79Y>ZtjmkkhFPQl8HB?#f1Cm~R z0oAH5!C3#(sD7do3{1@R4Qg#`hpE@RQSXmwnDtq2G;Z)Q49pK~fMy%7V)4A8Xx-@@ zEPp!`RlPA$Xp>#SbJ;lfr z+}qGm5&PHxRK8pkCI+-A zh{{i$!N6x4%Dc6Ynq@fN>_685ooVsjgWiK@F8_4&?YAF2npP)oXGX%k@23*$mN;lb zf}nwfaenC8b^yk7c7^wIRWSLv6!>2agNf<&z0kknF3i|`9eMam(v*W>B9 zbip+ud~Vq(-_L{B=Ij!CzNBcwoMo;9slAAW~_LTuqTB}%h}z++jA zN(MIMdkc%+e@0>}t$3>iR_tDfwTGi%V9DAUNIhK*3sP>%IoLT{KE}>GJ$O2FY%um* zd;wD`SHk`Y?il}ZI1bBM;4urrarDHy7(KiKj<+c!(F9Mtb%e1MKl%+P&lHq6eDw9o zczi@PUY(v=N5(51Rn#Ru!>CKd*r9uIvU^n+i0*R>$1iM?^Pk7^cp&V});RLY2p9;u zxflm#E`Z;wm$0XMD*Cu5WBb#GV4_FE_ptHcaCH5=JJz-TIvq^}tX?JY#Vrh;xv_F?;PQ6$Kua1tlSUSG42}}h#M1$?c={dLg}K|y1W^95_j|NO7s&wY7{p4 zd@C~8xG)Gw13yOU$Gl5Dwt)vyhP1-?Q`@mV=>{hCdK_!ThyRqoT}ZxiOJb$39utY_ z@vmZ4IhL8(rXW@%yo}i$&tTb{v6$QAMJ$o{((}t0^5*z{=qqJW-B8Sb?E>ep^MAu! zk7ZbLrXXfdX`GHK#`?4$dr6FS;zpk2{^A{N4$B(^1>l2N@%)zVzrtocWSnb|a}L>l zm2t_$%yU`m#8-w@!283r3K)sPvI^SDh@T|40cr69Nt95={o(xgeH$=8tpd8D$~Na3 z@?LvDt01de1S;lcr5WXP{fAW68r5ULFRTb$YRr9$asqC+)_Ua|}jolSd zqs%Q#Y+6lbJyTBALEW>%sBN0BK!Yzj$|)R|$0IQR>E>wG>Iug9I5-@wYX6R9$z{;? z(oE^Y9j9)$t(bLli@^G`f1>Bp&5*itC;D9EY23{(EQMdoXR)M&kA zeN+s1CBGm?YyKYb(RCQ|%$NhCq|BsUn}x=V%{;w8y7Qj+O6uXccdpbeUtg5B2qv9G za=FCP&Wj9y{f9 z?1LvnZpUw|7df6Rb%J_zLjq1-Q8NF#dUZhC>q5go>=R!JUB<;=J&|WdO1*}}wI?qj z+m8ruffe=(uLk_Kb`k!4+9XPQxPHs_8R%JikhHmb$Fm}X&cT&LCI&hbNE12nRtV+R z#$~U_(Ll@3KNQ(E|8<|px>=EOB6|Z(pX@E~gDBS2lfC7A8S)I@Amh3~4jJNy>mT^YBI|<(oA`PW+B3 zH-6WYBfoP~WXo@#V;K8_g=*Y;v)=(3TXY1T%3`!O(R*w#JPR~VN8f=x(4+OEjzHuUwJS!6@^?~k_BlQ? zImM7Nv(Dxg8Vmm#4MXVao=5|yaL=p-&maEM3X7-KL9c7xa>CB@#yVRR81Gm6NgN*f z>tD8GKm5)&!^%P%VW3}RJXZ7EK;ss&-rfJvN3dSJH-*=jfDNC1g^2Af#n(nut>M^M zqc{x2L=DEKD}P{M&}M8c7lt7|f!Ho9AVa@PkkOelUyjysFU`RA-HeW-(Sa!-(Tmgm3Nn8%7twb*=Iu0myujN7m|c)#;zPu zxw0T-&EEq~w&lJ|E`LOB{Q#>PA3^AWLRgWo2>sqV37cG?UoU!%kO2(;_QGZcPStL0HL-XglGo?HpRyw9@I{oAv!UJG&a# zpogs8+oOrlB_GN;dke!Sz9X@d3`E^rjF>XFFyMSMiTFC?$afghsUxE&Z@P#$&yk2< zSySTASZHEmWIjYsUz3hwa`{UXQWNnFdcg0*dx(9#C%jK@v{18h)IO?Z<=Fi1Nq&Zf zBfqn~g|oE7-7Flgd+?5A&5THLxn2?rCsiz*RIzYUGg~m~z|$9>qCto!Tx4Jx{)cDRI@|d0`u-ywM(BGB28(G8o=-M`Cip?Gi6# zl6M$0BtE^CQ0sl!S5qrG`{QG`Njb5V|{2#lH$al-ZZ{~{#58MSm zx%1h7*CzBmaz*qa@5Tk>?gL+6Ul{Oe&_i105%s&2>9npm0-^@Pkd>3bZBRnBeOx^VVtamP2Is6tVwIL~d(`nG3EV^85iAaidy3g9Y<) z!9ZxflUR7UD7;D?$Gkl&;Zb=#<`&os6PiIObo&8fr!7cT@ zk?IDm9fAM zZuuB<_RhtjkFHDPx5Ix;Fy!MLwi& zgl{JyuGv}~YLkdK-wQaHG8l0q858%w?uv-Junqe|UyDiD1TPblb|tATgmd3~ahk3!@9xMap*xNNQ6M>wam4 zF%x)KcFhZAG1fa=EQqluPhwH~z7i+Tz^t>mFz&fjOv&9x;^Og~(8w3(a}JRBDB{X@ z!_d5)FkpW%46nG;7AJkw%oj1}+s84v=4cG+atL!izJ`H^Xyq>HUKIl>G{wrTU1StZ zE;B@8-5FRr&qTyeU9sVbz6fvcht$c<(Ld!T=T5~6AY{)CU@X}~CWd%rFZkLIs3r=CB$t$Pf6M#rH`xiIWF z-wf?yzUSTSnD5c1$||I^9Uv!U*Ss7>6h_SKXpvkwBG;2Ubk@JN=Js{ax0U`XI z?X7@ix$bNQWcUQ36~KSA0xVCRf8Nas$a~+Xsd5MUc=~3WHI4_4Aoo-jR)C3(l`EmG zM_C6nv1Z5-nR)5xv5X__nv*Bd^T%FT>-Pcrxc!KAxxawVhI}xvZu5Eg*9*YUJ zZx2WRdBf0gdn-hJQwHtB7^Q9Cs6uf2vH^z1zY4c}ClNp72-=qCn8o;juBWzRT#H3; zy?Pas2fLwdQTjue?)n$nHmiV{X{9Bu59g6>B~sn|@n47^nZ=*=M!O14($SPyth|NG zn5;UQIKlmzPl6l}cr?q^g6VG_LzljvrsIe?W6^U7W5qsu5nDL^K&|y@bvu> z)7Q*T$DVIB$DBp9xZGduhefT&qx0amuwva~X!p(yO(x=iAG=U!k$i@ z9C}ypyf|#_@n6{O>W&-hBbcm~w{(fxl%VA^+gbzI7 zYd129PoL~RGA+OJ$ds`HZ;ed6D`<-xm+KiBnVj4#%*Qnp{@wGweD1#fz7g4GWXkjY z1FpVj75Q4-@}j2TEiWBa4s9al2zIM&vyt3Oo|gZ0PmNaCa<(m}+q#Kx3ECpNWiG?l zp=;5FVsV-1(!mohTY8EwT91d+ilb^}?ObhFoA!zYSYij>d1<`8OEYw_81+I?` zK=tEi;WnPOGDix|V~D&-MeKTM25)drPnPktW|4BThHIfIQ89UIgwZjHjGsA3yzaCq zR1HHSlHmH+C|PZ5Q}q?ZMGb+8R!6@^e2HMR+~Feo6BerTQ;W?ja*m2f-j?=!nzO^F z&R{vuTs?ILtHNdou9^1-&#M+6hV`LKQ7i9zNcnCAYTtZW_Wn%N8y$x&k4K>4rf(#+ zg@vZbiGHx@!F6*I(T_QcBSm;bTYzN=JJu2xihtkne<^gd#BA z_0JJ=%H?Ty8@YK7oc}m-TXV{pGAd_r4xD}_^U!-8|L%F@e#9rnE6_8@Gr~V4IJ=w$ zSH1yqah3c*PS(*vz4Iz_^02yScJT$IoNNo%%ImT1$^W}M#Bd@iGbEl8|lQ!EUb=`%aC~FNIN+-CgxOPs8Y4lF z`lNAR!$hycKVj0j<1$lY3TJLAXJqwhNE-M_IwqdYg`~1Ed~@}_!RY2IWVa#l)2}dQ zb_t9OU1Ga^$hAtYD#o{*laA_M;-Jmml49Y&$9OJ+rDMl`F4SUPDkapTwlJnGYm7Wo zP&kN8csU)_{F2fkw?wug_*q7G%bkTposGNpBZ~Fgb`re80d*2wL)+=`Q+3tpaSe6t z&G>wezy~pM0?Jc-*hRo!;$N1};+(YH!_4;cv6Xj?sK7gy{8v50(~EIaH1=ZIFI+4d zYca>L4FBkP?%SJPVOs>u@F35?z-%xtdw9F&zj(XnfxQ@V_4ZC9xQT=3T+zDi4F@!3 zH!rklbq7@UN;uNdzSU99ewe~BN=KDL>zz3|n&Q=pdoJ{DrK5?B8}i8sCVO;t@|pC> zmpz&YEn~__AA2;>T5bcyJD|GZv~fdz8y6X9%1WK$cxNV5zR%cp`aaV!OX+AUY3jyH z=7_7|qSpf<(Ra0zAK^K|K3{q3Zua>dR@O{7T1hAv;FIG~AXQ_?VS=S~MSk>KKjfWQV0Xkuk4S2Ueg%>k7)#I+3C zIy$P^G*if%j?Q{@(`i+0b!0}h5~ut8<%%4Cs~lBFU?z07vef0P4cH!V+yPCSWcE6s zc}K}4xVYH$>OywC+82@R(+(%rWoI|r+h?mjyj!m>ZrjP_iFMn0xuH&LIg5C8-#+gP zg!_4h`IPqz%r@~B4ceFwGTUa{ygQB62G+E_j=Bd%W5xI{WR-65TZhnGe3vgMv=Odt z5;3>=tLS)rGiHr=7VfeiHly#S=rj5+O#87X{8J1}9dHhzXSgOiCAkb@npKqZSsbT$ zPK#(tBs~6)k@0ji5jQPW`jS1GasqGkGiz0Pbf0%NYoPYPc_Epd`EG#5i#gL-j`}c2?8eG|YkY4C~Y>j*JbJY(t zRQ4UuZ`1bFQRV2~toQ_ft5J&okmT+qO*)L)Hg?1m&tW9_kcV5XX5QC_JGRw+yf4(?sM-wAiwGXk)hdOjX5*jCG)+iV4aT_9Got4lNw!=;#;|{9YaV2UG0zKYyz)+J4N)$kD%kt2a37IqYTZ7j~$P0ghG>Pp>)dfd}M_ z9+1UsJfjEPVGlf4oQwlm?176fG#*6b-@VTR`gjJH_wo<(3iSEc=K&9QO8$#GB@gTe zE$h{nZN3-a7SKjc`?`<)4u|@F3g7ibcvEM^ZiIa>MUc9RzsJ4GyXAa_o;!I$cxm`! zLSy~3YA~>VS}L~r`eJE#amk(K_9G7U?aiBRul5rPw1;)d27K2i$usU_FH0G>fTKdg zK(kr1gf7oAvYuKq=i5Anaz%s`iR6t)UJZGM{Id+(LmF(KA#|I~dRppXF6*r|lc&X5 zk`&0BPT3It`3&2`GHf4dWPO6nfN%BbXdnFxJh~i&N0&orAN{kW8E7-Apxo~zl567V zpjt5DR-_yzS1FH9CBDV%j%U-+#O$g|(5b}bbe#Nn1l$U*<#~dxd(dW7A>o?Ho5RGc zc{AmHP;%2v=@{JiQ@MFy$a(wJ=wE~yk+;K$24)@g$J$Yauw)Yr+}ODmR$;J&?(+;pR@E`_2$ZKt%00{c^-;wRY~E z?X`@v)^{4MHpxho#c0J7Te+{O!Rp>es{$eYtikGEAFXUBwHTf8K~}9EYOnum?Ug@^ z^FDXhQPc&7=rQ(t>NT!UQ_oQs@Mdkt{}bIoI)>0BZR#89Pu59&Y6u^9(s)_xTxVxl zm&67j_Tqd8G!Ywc3`-x6a6l7&rP^Tfq2C?Ql(kb*+uo+Oh*-onx0V@ ziCRZ{Em;5|=$BbX+Mdbqm>|2q*?w(*UB|zpC2!nKOXit+zgn_Lm`_khluvfkln;8Q z^`WMGs44%hrp)S8ttt1rLy~SdpeZ*mY02^irjDu%y~OZtxQ@zqjD0G9t5t4Nq8+ZI ziIAl0w%RkJi9QWG3w?Vu5w@kL@MMpw4BNvpI;wj5H0&bv>8N-kCGw`DY7d`fD|OVh zIK99Yk-ga zk56#8Ur2UYqkQ1o@AR>Er}Gl(Ot@>@W;qj1oZfAl+$}ONf2a#OUb%&(i!PvhL=mh$ z_!oNJ%Il!@-lC+6s=PD(O`RETb^rXuJZS0LJ5I}g8IHPG?( zPvGqpi_ZS-(Ys(>@>cyRctqWV$MiSRZB-TY`gI>ViyvdJh$M8JT>^cJ6+rv1-$1~I zymD{dMDW$CXuJKW$bjDgWkFQZ;Yu-6bX2lt3U3dQ3IBbPsdwtOOSgh`EYg^72ohwp{; z=xCz*weyll!P}*=c#!j(HxvuPC&EO~iFdJh^lhQ0``J?* z==81nlysOw>FB6(mZl7m9OA6}EwC^;8YUL`Uck)OhnI|6jCaNJ zMIjFN>3Zdik?PC4jZ}A7oiS(2DD;23I^!Sg8)CaiN6G#BXNvyG)tP0j;pP^Bw9;eX zKDZqYEpH0nRViFs{-%stTmGhu*l0xC+Vb+InAPcBDMPOfq_JMSx~@OgN4%mi>OxxH z&Y0!?1`ds!X00tB{z+^zqO4jU{)y`XtINwX?t|T=jGNmvn`f0~1H6Q8gWp$5J+)%} zrCt@~L)MmSs(S!L+uCxhzwpm8Y!7L$eTL9&7JE_ZVJ_>fCH|CTZMkL<;f<&$bA6rs z^BJ~>W!OH_019TQi+S#tC!p=o**z^* zUS^Jt>OL4#C<7f;4r^wPj?V6?$(=rq9JU+n7CO5P&)ezL+xDo=Q$#_co*d%ky$(2^Ub{v9p3_ikD;-+kX|DAGUDCtSO7oINz<1N#kevO4onQ~oVY z`EnMT(mZ1fmb5B-{MLf4<$*}Qtu_eb>R^Mb?b`3nvYeT9ChPrQqS#PR4- zur5Z9n1e3Omt$1?YcS;IMAC(=;vHn%iiYTRHWwxa(5s4j>7tl?{3CcAyp5?xzd=u* zKukZ(sD{1w&cV!qJ>hkx0A^jB58v;9!JH1BFc2^%LS{z68xjP=_B| zUjG#FX9^(ll@W;ZSc)i#DL8aUOGH;*k0G@OBgS(C2L1k;+)Xwx@LU@Vxb`ImTsx0J zBd1}2@e_tT-HhJOBjYi&>MMwCH5EhOsesrQU%;@Snp}N1uVC2KtBCpj7x5h#y~r2w zRhLjYyQ(9>H4ahry^yfz0wVX1N5U^h8RcU^I7U3XO}-&w|IxVx4TKKxLc*FC5VE>F z;*W$N_~UR4|FR*^>4!ZfJ}QZf;zS&Jj=tjLe?4ak4w?0|;NbVTQ_P&f?rRiQs;MwP z?}`UUM`O_H)d-H;gh5ZaBY12u1}2VY&fEeRSndaT+XFEe!G{K7z=z|Q^F;>?n9>Nr ze~rR`s!I^^%pSy^rQgwzW@`~UKNcYadmwi7ZG@~(LTn^YZ-;#UD`MRu5n637VxK;U z(4qSfBX2wOY%atc%p<>BADs@6qi2j4!1f7lMv=;a!+M}{3_|-aE8nhOeV~_WC^IWac^+zOp z5bk*A++kGr%n_q{itpbU)sNk6RJZNQ+{Y?izL0)0^T{5gxk>+=|In`V$S2jjCvRsp z?@4^rn)hh46Rwx@w{6~&_^6uq1qih zCGqc`*Yyk8c4--eHk)XTbN`&ycsK|6TXTS{_bs`u!Kf?tXd?L3cDYe%k0v^v9fsgj zI~>r2Z<$-7v+dCoN|P!ybwE{5a+#r0kB(~Xh0$Hen~o+XRcIp5+M_9c!dVafh3jaF ze{zl|^i!^*D#P}$jE<@vwwCp1sA)8HtAaO5Gj=Vr(rjKiLbIiA{X4c0JrX(9Y;tbn zzBF6GAphXVaJ3MeO*9)LsQ*Lu&_m7kw=`SUUb(m~>mIb#0o6=P-@D?IDn=A%^!%Sa zs$C~iV~&QJCQxT}gJh*M65$yuo$^e^DKzgKp#?Vnol|J0I%Af_Zjjt887n&AKJ1$U zp@EhX_}8_-!8Ge)r=?q*Es*62ydxp2#6Olj zni%T!D^h2ab3hYAUG}ORJ5;ymQ+cwq^q5R&Vo=oY*ign1)#)?(F5~Gl9Zht6rXkuC zs_uZQo|xisQjd-%R+s-k%GjZ1|EZO6FZjU+QQ~7I80DSZvG0;2deEi;nR^h8H~@Ax zjO}`m@rOK=g&oK{TP8i~^6#G4xe8l7NN(9@mmY*)9k(|G!JZq08j<$S8>aj;tA}Y1<`_KX9i?FTeD!-NXU;Ul$ z)OXDhU;Jh>^A~SNd|pe)2Ul!Xz+UP9+a#Ycpc9=eqBh?0I|w ze7v&HSiu`c|IFG)N^Ah?Fp}T$1E@Q!9yY!|3-#7Aw#ue{P0`@Fs)7yQeZu6bQzW1NOy7pgXLKBN$d_htyTo_bSejAwo z$CFZe-rJ3Y+T4ZT3Uw263#3VnL~>xE$|1K*v5>7Wq%>PbYHTT~v*o7LSbOJA;Xp@I zxMd2tCbAVoAXk=qL9L$n3PX-uaX=Fj&i)}SvqzOfy3Em0@9kXw$^#z+zz1G;@Eg-D zXY}y-nR~e9Jt-p^A$xZTiAM}nuvvwjrH9X#9?qzizC%$M)o9fV4=z(mrSvctuUlCTSjVZDXFvN zrqoEOkOLh}L_c*#QtVOHLra(S=%}Q_6iP=&y{D^johLke5Q_40b~6mo;y+4OFtruU z?m42@Z>e*ZX>gM`XKRZ!(tZgN*NwWogN> zw{!i$9@Uq~9Da#9DosIe?kuCD(iBW#KP6IA5S6A#>9$?^c532y>FXOeU9{D+`IV7U z&z4Vu(ou16pl}6AvGCwN##N=JI9#cwP&?B5f1)Xlj^kL(8hPi69O$St1yk5hiPRKC zr72jNeVf#%DM(%QQ`X3SN)9YkIpmfp7P1veQ?O;E#+Fi3u;ofqP#WYwN2Mv4LQSEg zs)y2NJvyo~Oko)vRTo80Xr>J!fc_3z@ZxHEYPMU8rHG zU8>n^ijjBIF1C~7_n}?#*~|$_?ccvS^AGx=qh?@KMSE0VAanQy>S&5hoObTG1FG+t z&+>cLQS||)un*{{%G7)9ODUtH;(#gSKtsNhOedjuBO-lNwe^sUokEWs@#SyrocYVQ zJn?3H`Silbf1EE{o_L$em!E|%QZ6#(dHsH^>D=KFA=$wT@55cf|Kcv;Kj!`4glq0E z(Co^PbZp)By8JfK^79YTJpMI_INl<~K=b&OX!$uKXw$2#dTuaWbDxvnM3u8X>4v0O z$f)hAbZUwr)HZ&8MyPKtT!C?N+Fr-zCEbJr9ZjLY6jCClyyhclAazDrDZTMj9ig^4 zpPNuO)pPaFWh%$=Du-OEIux>QLrSw{q{fz#I$Lf^jg*dRO9txphKhE{*-VIvORZ_y z9yvqHp31Cctu>3xT9#`T)UviU3*(wIEi1m$?mI48o>0%oaGN)df8W0N$M)t`uVbWV z_C6xNL!#<+U0!}%`bpPz-$}3QHq^z|w|JYLz0YIW@pM$ZE;65+q*xfWtA?%D#gy+R z)MDM=lwLPr)F@l8qs2iEbX2{LDg5S%>`g=isVPIGH2W{9Z7#f4sH?uk8riqVfrToE z+%m;Nw!)CoY#FJsrKHZ5n^GgCK@N1xI`X8FXrf!Bw1-HE5|u;~FTNl$82#9Fk!VsQ zH=EqXY`iLR8|U|7Ix2}SJMJMV7OoiTVw32~Yd%74^|Q4_qRFkM+9aC%7$5@pLsjV+}_*>WXON`o9|sM(Ba z^)(cpvN!MO5vOgA&}7?sWY%Pk_9ACVv==#3vg}25gEouRSK5oYxtGnqd)`sZ9UABv zn+;Z7AKHumMSBrTA8@^mcOdWV{fKi|T157!=D*ZQ+#AwS%~)B6Ggb{X?W1fco(%Ft ztfXhmRNZoh<~f;J^Eld2)I8L()I7GG-FsN0x&N3keLTJTWv@M-e=ceUzo>+BZ5&Xo z@iK=iI6A7Ykvp|4tD{Q&4bdSLcK zzby7Y+U1C^f4j@QeEs*o|55gS$K4{b|B=xJD7|bjllZ6hKh(ZN^{|q%lTc&9HQ8CH z`Bn?tcV4^RMfuL_{QP!0svgkd<;jv_A>(?feTmjBXA8A9G5uv~dd1 zN7d7q!k(t1s)y%G+0%4XWthS;I;t|<)nFMNRZn9Idzy}_cajQwr;e%&Q&>hvRfgQM zjE-ubg(=+SAab9DsP71>S0{A1@Tl!oEFoadc5Pv_pHT9IHMx z&u0qz9g#hssCquRWM3uM?D=eks)sFOJ#49kDu+^GiiK+BgQY1!QlmuK^VP}+YvhUt zInYt{e5O!3MD~25W6#exS8=zVFY)WLz0dL;O*8j=$2t9-yxb;;<>2I;eeU~?LzJ5y z%d^3pUY)Oh;FvT|W;w@OT4j~oL$pT|V;>!-ZYbKJ%Hb|Pb96K%b_-J&!$n7x!~2fR z(b2@QJRWk7+8$MzCBM~|GCHapj`5_XqvDMz-)0@qyDqH*`mnU{&NGu)vu44N(#wkf zCDhg}ye!nWmG1@<^J6b!*UzWqM5K=Deh^c5Ur0w2Q_l{Q{%(&Z<~4jzax7dpqpbWk zuq0wMmh>utWgq>9g}<-D%KGOpe@YrmtO}csIa_)P(px8g6IBj-9aAjq`Xqhbv2>@} z5Nho|m?G5OLRRrq_>8hLuOSDV-&km(w`*=mvC!l9*K9MO?xl`P=`Nek3$;#e5kg(v zdt!||^GOaYR5>Gle_c{^G*NGK9OkTfAsy=^zk=zt^4V-Bo<*hYM6GC{va0wlnPMT| zv4IA|E6RIsS#+U%2OZ{&mG8ntug9;6#<_cBQ@&%FPdV|0Cp@L}wCP|F#nm=JznsyhIQNeSQW_26aK=y2sK{X~x8mRiYVn{Qsvj zAIaj*kb&q)ClGkWK=?~D5K`x71aCf%{^P!efqpN}LqxGe`1!X-)QNZDvmqX_3DoCa zEoWiS!XS9oC?@_vdzBu8_<2KNpvThF7`eR_JT`k{bl42IACAP>*L>*>HqS>G|JP`A zk0^{u-;F@GFL%q>YoHtbww`zo-3EAL#-Tyz=5q-%(@MicH}^L%D`BzV>=ME0Xrg}J zPLg7eCVY;&rKkp>va-tiPbvm7yM z?6%vD$a>VMuHD8^>k9nx0LE+qBpyS?Ez3MH$^^f68$7p0gFk3=v#dvr zwew7|wYHWE6WeR=mYy~n{Lr8-VxJLduUTly|7hDW#X@C+vovjRQlkw{>dFS^9ZFi* zQ@6Lwgr@j0W)A%s>u6%q+LB^f+oOqvmy1Y_g-h#u*=+C?PahN;eAV!ZVuL4NDrvL9 z*Oq)oY;YoNZwpQNA1z;|Sg34pmZl9(YP7*gUD@EQk+wHE(9wj~Z}lX_!rqH~Z8mt1 zgL$O1d(Tort?P|-HXFRlp@C8(ksMfP%KzfJGdbdBBErg0%{`Y)c_$~EW#=XJ%ioY$pPXo9x+4`bVcAJDN*l-KFN8(tB8uMELk9o-Rf_D`5NHL!uCq2>cQb{bnUK0lTmNBtlac}f-`w?@W zaz~GWJuq`(Cm86udKIQsIDihHe~3x9o!!Z8fZ5U{A=my5Dn~280)x)T*T~V)$ zfe~r64{LZVL%jcKRGLvvq*Kc~OuP&kXw>>q4BXNaE!z}Cbiul4?>Y=&Jr-~lGITG3 zQih<{x#RH9;{o4BZt(7!1_OcH+|cX9dkAlIQbzXJw+^B650@Bu;&fGX=+YdcT0R4} zsdX^n;Bd4#y%7dxbnry$kn))S+b+SCi$4_v3S}{-8nUY9{@8US-B^bn?SkdZQZKoA zI@qHuy#2Z%qF)pA`*L?Wni#P7Qv@9QA{{x82q?OcZ{bV<_%CmU(UVTVf6_@zXgv=8 zgWl(8`@%ALX3ir|Nc@laZV?D95d;H^`p-pB&=%RJVLav)k$KVoRkn1MUpIt}4aVv= z1tl^OAo>>0w;6q&Y6rFn7&Fx_;ea|CmUQh3U$nfkE7t~zyfEqR{{}Tq* zzIhZ)cpqs)KD2Io13N10NBh&&U?8p6n^BKPWZLH( zeYq$Md1gwVTvBFk-`+xFS>SFMLU-+(t)-rg8}duNJ1Q_j%(B2;Nb5NZbNlv^a#Q-4 zI8x#}7#MwdjMPDI*W6Q$di^q1;$6{bG9#!WUK||WiXD9>KMVXL>vlabTKXnyu?a{=hA}b_E$Nnid zVPM_wE8)|B9+sX?g?qhkFneV!v@1ldJigCRp+s4eV*h!=1P%CfZ79#Uzu8L4w9EUR z&@k0=DK`ZvHybCKM&f#YUUWATUb;!1|ILv#)?%{;5lq3N3T}{;j?2OQr4D)|L}^~ z^5!uFwOGXQX5Js@U!e*1{I(O3)t<+Jw$~9`n>z4t`K}oFLq8lD|2YP?3&zoF=P@Mp z7oOj_ofkt-yo=*ITrg~Ifpj#nf88V`j{hPZcee|c)jvb-j7)aTjpU^rBwpL1Wo@u% z80Ym|pIYg%7vuLni*=RPWBAez*!1Fy+*g>MjIB?dMbM08f*dLM+d%gwb+Kt_N3@$a z6zjJiMe|?xVfEX4X`L4viKWk_%4uBgK3D&s1g6NGqH2>J7=1ghAhj@mtI@0aS1AZQ z-wbtMoG+218}%Lo_pi%ye$cZNI#oD;_9Z*Ot!Z_1KT`m$+~0%&@A_V7{!JMKxBp5o zrrl*h6T`1>Myts9^!H=ECm?^8cDs9_YSOxnmrBAv#enOffe1O)2L@Vg{2tM7bP#0x zH2xkn`7jK)?tK;${wyxhC8j_BhMYc}+vsgZ=j-f>1s&bdFMkWc@E!XE4Gb(@RGx`z zwpPj{1{@O_29gGTEOd#ihZxLZ)w+ul=rK?TXqLqGT+Oh&&9ySr7+7~y8$ZG_WztZUjrX&e^R<`yI`SKr*R9RuJ&YEBhRsr0}E9Sxn+ulY=t4E*)mdNOG%wAH>F0drjr95 zP2rX)h^Qv!WHE9vyLi>3B9vqH^Z=7;K6Qf2Y zVo=mg2Q)Ef>~|P3sH+2-7&CPnJj=#9pov8X;P>l(^uP5S0$(UA5rnu}VIbh=w-NefL-_jo2zq`LD`=p{pT*>v?(eLTGF_H8 z6&eOQKQdY95?K$C^&0X_*Oy93nU2>t3ypRs+rkjKZq?>WJw(<^G=vvEL*7`1ypo2l zRe4@8A41_TzBD86xSQKLM`+Z&uiaUrW}E?HTRCs2l(Cy@M2SY_ohD#_%ozr-wHdp) z_kZ)FsIRA&PlSJvPx&Z+Z=Vq1>fhI_4}9|@Yt6c*)f1?`_c^S4YyfJG{tN3r?~d9X zJn8NBKw;D!a9*(f?c3?7a^?hWl@tr-{nQPHlwSDM8KJi5!d9WaWG(MIt$t~y?7Oa* zADanHboCq|DHeA6^nz`Nw!>y`Dc$b71fk~k;tN9EMB6$)NsUBuV4=z(w@k5+tuUlC zTSjVZDXFvNrqoD%Ne*;0gRFxbW}H?n8KS-#N8fc1r6*uaz#p~-M%f<_SGmZ)Rn!*8fg)d0}E9S zxn+ulY=t4E*)mdNOG%wAH>E~Og&gSU%s)-ijrH=Zg`*oEu}L)X-Q_}eYQh2ANHZ4&ir&_n3vUc8v<;NvQN2Pa|LQSNj${`iz=xEB`JyW=cucPvivB>v=c*xLEw``QJ zaDN1g9TSWQJ?@R2RUZra?j-mA6qND0ne3rdSN7Z+j!d|7L z%BlFtWy#S|^&O^=M;)DM7HWq+dtP@yr9XIUoloef^aoR@KXg<%q{bW_osAZje?SXq zu_-@+v=Mp!g*M`#ud0ZZH{{WAHcN15{A*$f#?>gEj><+n?y*c#EIjeYbeoO%mfwd$ z?d^q^h5D(pf7xur(~~9O$TQM5fR}Bhq3cDjSidY1NS$ ztvpg!mLO}SB}fh|R5|39DHbY;vNT&pYHTTOL?uzyNNJD*9i2&(wjrOjkT#-{C~ZX2 zrB%mzXd^0#(k3J?MDk{#vJv;Z_NAm)n0De_n~lgXiPZLoz9Q5QtgL0T5f8e!2nRYU z8<8or(1^6yh{{G}XC#4IJ+$(aM5&3$3z588sB{&5STe=J3HiBq#nKZa^9ePc z+$Z(PU%z4Vjx!~$hH#*xvJsg=3ynyNji_uymZnulYP9l5U0H&xk(MAiuu$cYTc%j3 zB+Alk8L6?Qv=Nm=StF%E4s^7)XbRa`G`5&#w&ybTyc*|-b(+KKbXWT6ZR@OA#tQA7 z_PkzoX3_BUc2O1g>^>}-+=2e#4^MAL+Z;8U$YV1Jd2z}5zx?sD3W^MT9!8q&5!)># z|L_MY9@00Ewe!_x)Q;P?Z{OatTYcQ&USYvV%bez~O1*ZsQby)teSD$<0k}#rtBH9s zs!4C8FpznMWTx@Z?VWO1Dm=uOx8YtSW&Y-_0iRW}B3S=dwW&SMf)9GXDy#K4Wwp>Z z80`%4@>ZkxgLrwXQC$3%k(zjUJ95SH^5&s@0?=yVeIyIjiXc;H?Gb715!H$yy`s_D zBQ>t+DX(bsMnJD2NSAg7>!IDD{N~XnAumMoW}&iL*bb&xsQl)!G}}ySlmV?4C(<%J+wQNL}`y zmXR7;N?TG%lr>ULyHj^4Kwu0#F8>OZrU1~noLrth8N-arVh~&*erAOHgrdX&X%F=8zsZj=`uHvFm15r-Y zNIEJ#$`oobBDES(=~0%Z<|8#~LM2gZN!Cat2No(lN^Y5Ap^_*|vt^{lmQs%@iLyq@ zi5%#t^e9uvHIc0#I+G|h9qCf@u^wtdB~fZg@ys3gkLY%{4* z2BfYeN)1FgQ6uU2PsHvcx12Rws3gi+Gh468=a?K-MiGgHVlk*#nK z+Df}O(`~3g_|vzfq-V@fUHCiOuel!y%Dm=o-8*nPLp7X6<>d^ufb!dRA2ZY- zgUj+TQl9{d+)s(I)g^+E0){NK-1sbjgmZlTh(*~7x3g-r{~LNyD> z?lVlq4-I3zbB(`%IM*&8`*}B}og*!kjTvr9`uIRB)DrK7U2?l4o;EG*@--&1U?z6eHn>y{_{;R~Ccpjll_a)i}&^r^pN zb$Q7utCPDh`CM#k*7tk|y^ylH!uRg*q9)mT?4TOF06w=)=`bXOyL>_k!u{`r|N1WFwYql z$}|Fp!5@9$2ghCcra5Eu-Su}y-{8BBzRmA<^ewDLUoW5F2%oTQ;|=p48-djtKkYqh zr_$QFRBQaS7OmY)YYwSa@@Zk}qZ~&)l|wt3ITotfu{C;HI|f|iS1Xa$u7b78V4+&$ z=h~#TBVp}Ss6A$uwsteDxwqN@VU7CyoSdi}a>*PEm7UDew3DqJYwnFGJK5TuB?pv} zg;|dmYDJpQTKj6&KAT#RCS7YU&f1$(>(1mwpA{*IGKKu>s3dBwXItyr9RHL=tu=6K zP255?{!yaVI=Z#4u69IO+FE?C8$fb@-qAX2`k{V|ov`UmjStF%G z4s>)TQI0y?>$5QP?sMDs7Ro+HJ0nVFGuNwJVV zy3~D?wWl`aujSg3NyEmJIHD-0>kmXR7;N~?q|H>E~OhaBkWOrjih_^gGT5AwIVJwdu0u~-l1 zkV>K)-N*}(yjiGD#<3ktu~12rrP*duqYOCyDT%U1%84B4sK!60aQq{3{3EK9aV*W< z3{vCnhLR}f<*boN4lGo51G#02g-W6<&6bfGTS}`$Nt88G8stDjyAil>rV*HT8F}L0 z(HBJR95DhP^Z7d?@ZIOX_Z^M8pc;XB&|f(EH+LM=S*eGkuZ$TvWAvql=D1=ZH8+2& z9d?dE*4ZL!1y_v-9JlmUUN!nMWqz#6v5@{D)L5}-!8M___^rb-RxG*2TiC3Tcc00D zj%uu63NA>=~A(1wv}HNJw4TGpvzT3pub*<^2D!XE^3j`W9NNv1;_?o3d7Htrc7~ z#`5iQj3tj2s+^HedP<6giEr_%V(HQK0)$#pU;`O_$IO~#n|;!cJvq=(jlN9b*hl18 zNK~UQOLM#=HIAR8uEto_$T5~2Sg3NyEmJI1-zZD-8znVs~G0Nc7pZI-8V=oxt6BAKB+TT0E z?_VEzAMW-47x(&evu8iZUVp(X?^M1Ww@GYydo*#V$BU9UWKa5W6Arfx&0COgn-SY33UXVR-| zWIVdAE-%QHX8tCs9Ik^hMMo2}Q==ut9!)Gf{*lB1u}2eYZq1b(dsI1$lENGv6*Z=i znvRMCj*jF&N5wT$$hD3thgKhREL_ovp4};pRek;t>8#$-1eDgAN9o6l5?q@yL?pU? z_7stDirng?)KkBBN8SQGAM>qj8oG~ug31`!TpRM{HlIHzZ*t41Li7{Vs)SfReA~2u zEL7hC?I)(_XrglQKP1H-RSxIe%+XQhaL&yf9aRqZU6`Yz;(#gSKtqSopEKm*`y9{Sti-@WfU%joat zlYRD`|H0AV(6d{`9<@j16RdTG{i2U`R5|=2sqb}EzPgw~UtKz?98zJ9jwWiIZz>$v zqbgH=%g0hiN0md1nACJsyfKBm>8Nr@g*iGp8x82!%hUJEbnI3vQGOff^3)l4rjLH(g@cryFxaB(uzr#PF z?dtLfSU&~^+V+1Afo*S~tw$LIt!RL@&DJ9LuhF)a_NV8RIzNeqw@}G|`jja;nxe^= zLXD=QDSC@Oa;edDG-X|bDO?lRQRPr(%+XO%V+yJ1s5qcTCkHwzu9-rvbyPW|#2gFL zwtPzIG+T>(2ZxJv4wO0}(mEK!Tf6Lu}zTH!GewMebqw@3iL8nfVqoavxp9D&ZJ*ph; z4lqYYl@qk(6Uot0<#4QL866b|OyL))p*9+*z0i!&zz;rI?uFLN5%a+l1F{$q_<_nF zM}!i#5ut(_5yZ11vKkRMam;()UU~ESM|cMMdp(>BqH?C$n00+O{g0p3!yC%~$2XKs ziupn2f{f$D$e8wjO1IP30(HBNCiYj{DJd52+jI%zcJ6{9K9)y+@eX#s-57~ihG1vU zQW7ED#I^#BF`{p8Y&=y5BdbqON2S{t!H>FKM-y!hM`C(#m2_-<@+78z_&-|u6V77B zn4csvIO9DvANMt8O=X0UW@ZRxAN~nV0(W6<*>i$^_QIAYTy{DTZD!B6hWA8n{tE!gw;dk#qsEVQp3aBW`wQy09AiWDnM~Z|R zLIROMLLh*EAPUlp^dP-=2u*qsq}afM4GSuYG%2Bl1or=VXU;yXoR9E>*!y!87iMh z!keG$LeR}x*;J{e9S!6)wZ@p+^RhKCe4amj!s_a7N8c#Cv|B%e+IPC&9 zSNa0sXAfX&(nDzbVo9$1&xk~eeP!jHHW?A&Mg0z#!tcO9qjk}nOd`J_qehcSO1Lk#>Lr`~vY$9_9JiMT@X%^cR@@b#}pNMJz!JlaAhtmGKtF6|966XTHa%2FJ1dIo=;P zZ1R0rTD2+$pMM{Vi}b_W4US`B_Hw)j?Lv9X8y|%JzrKgryQ9$Wvtn{@tcAWq`eS-v zQ}oTb1XEA;#OtHJ!IUp2!^Z2+y?}Sm?LnV}Pw{Tu{$8}v=l)RwF z=vD6`rhWX0tgmndt4FTMm?N#3YfQL0V00d zkNL~;AUt0P7EBFbgz-zu#80(+qr70lhvEe-)Hrw)bL$L3rPaS<>Xrp4Ju(CnitVK* zyF3dc2ImlbYj>0vmBNT;e8NN<72bMMQe3Qf?*-KUxjJu>T09$de|i~}sxL+T#-E|m zukU%HpI4533k?$&pmOqfy!_+Ws4}218toVi3sqZ9LgRL)P;J;*G=6^+UR=KiP2^U> z>U%n%NwYGj@m^Cj>0BH&=j}j~H^p zeKZa(fenqmM#FP^u&I4()F1gHV|%UNjXLqKV@s{PQZEnf9qk#<4*Bp~8F{@qs<{_+q)XX2CNt6BZCcgd9WKwB z*n1FX+^UZ&gMsBv$_(f5yGNp4_dXJp$wH%@nK7a6RT+~ILsn!Fw9vkOH?hRXdKWQj z{T_6w*9*hsPC(wH{`MX71$iF{e-rhlbxO+=6U9fSIMdn|QHVr4pBAWMhG>C4+jcW8 z5L+R(KreV&Af3bFUT?NT?8_};ZLi&>mBsDb-SjM1rtqkL@61hC*rb1>F7X@u-=Z$1 z`(~N@)9i6<&-VjLEi9f2ZEP$5D$2ZG--}z9K7g`o+Hn`{_lHsbsb8@9)5@rD=tFGU z_8=;a=iPPO=gNNhhWB%$%I|Yzzr>4Ae-9gL1{6k(mkJ_&YCpVGF4~LQruO=|y0ob# zDup8>wzekPSTXx6ta*H3Dzve()DT&Z2aytHg!+J)~egEb?rfp0W!74`|Cax?R?PZ6)$Ql$P~7MCMspj zyq!WZ(U#myq0U{LaGtkXZf(>Yamo3x@uS9gcjHEBm#6mnnYS}8T!E>p{zSYLEB8IR zXk+}DRv6QvSt?WtBb@RH6K$;Qks$Z4ySO&TDl|^weJkruoh!B1v9U9WaI3F;OY}-bgXgUmVyW zGs7{e#eY(vjkd|-C2pZF+H%W9?51ZCjNR_`+$dAx+Kn=HLunYfry1ZJFEHj>%lQDiM2!E&e>dH728M=o3X2I5Y5w`K zTV~Gtrf2MyFHKL{-g8Hai|uO8kTn$xA(0jE!kv$zbzl>e?sf-S%s7g&-}1&D&QDiZ zdr*)oK>STq3fDfFVxo;#u8cyHkG}9?(;D;8bj1KzXk4Zbn&r-ph6l#TJ$Ut_AD0;n z3w5)XMXM7QYRzegkm^fOv;6M}o%I9zt3mG~yw@QaX+-P~LY1F)pwnY_!WKEAUppem z^>fNaR0>y0nBwB7$zx%m$_Wc&oIq4t{5U4GibM5R_abida?c%tQ-;M#zj)g26R5Lf z3T6iU?pbf1{Zu#_p4*MN!Ht zcX!63rZq)79OY6=MAaMDLzv>?wi@$ciPm>Ko>kt$2gA*Z;pP+ zMI9S3#a+o+ov)4jwy^g6cFDcIc`@O(aeF@DuIoH3k)@meDTO*?s*8O4mgMFaL2mp) z$emw|EhU;ObCiU?{oVMr@Ki_i_^FW~C;$0d@3fz9M`2XKt#UW!xQlCLOg{OuC9p8A zK_?jn4}a!;!2x%T6}0gBJ(=X09;I?ho-VEP2oDRLW9}EeM3zHjxt2V``@@)r_ac%< z*nb(?vgy*GfE!3;ldKWUGKRnM&_?j)TfxlHF%cX7N6D>jb$IPNQ>k2BGh z`@opOd%;Xp3cp-ZOjK@6AvY71LeET!iTc%>Ui_Lj_q7oBciQ)lDTOP@oVhYl%V9mp z#YCmhN0VZrO3f5XZ6c68%{_Ldj!c!?AiZdxKu81Lc>hB6r3hKS2PM}WLfbaOQL^x8 zga&f;gsU^5@8=e5H>QRcmBJh2_=Jm7%0g#h6#6#@W&Ec{*hlKXt`y9 z7j2QUS%IBiWG!AfdmzPFhn_w&qU9_&PojyBGS;esGK8o9>ZP0U^tnBr-d(HWXdunq z4;=5%}t9FO=UFO6}=@ z8gD&?7e+Ti&3FqXU#Wzbehj7u+Efy?>s=JAo9U1jl_KZKHU)92xiK$R`e2~H&A0{e=Rzix2ItmXiF{;bWGwxkAQ7w!q)P;eDh4Iu|J}T0bqi_V^|rArdrvwoEA5-l_%-zk{2~?V zD1Ytc*)j?@QNP|0IWriU0+mwa`(Nd|cJc9xYdn4A$IEt?KJsIWAD2GzWB0RFV;{Nj z{#DX9Hc`jgOyOADL?Bz5eSWr&rK^?qV$GlSqwEZxMy@e`v+OY-a;1g%Vv~?dBwx-J zvK%7!HrVnEWnmu5NFF5*+y_hVkDeMJ77GA*uvd?LbpI3Wy_3>7vGK9DK zHg8IA#nv7$R|+^k;;yl~b0jazLw>wfz&hn~^WG|;TS$9q?4O?>u{kD6PanX)r{bJB zJ(h|3g=*^iDNw&d&b;$GG*Ky~JzuDcrGmJgSMrG%yzs^bl>DGKN*<2K3n2qgvc`OR zs=S9~MV0djTv>HdJrz^vsZ6|)r>Y(Gv{*Kgo~o|Q0n;-z*mYL0@#6ypUm5r=*8+ap zFC%e!gO)%1Al{)(DT&lF;;@_;p{L?W5_&44C0>Tl(CaV{Jrzgu>Z!<=9*X4_1vxH$KnGSahv~cx_^?TZAeULRJ*X-!|F5fbX6chceAJDV3pVliC>X?8OjtNXu3QH!%L~Uo8LarwIlYr9FVtr9{ zKnitWqEgsXA;m=10aM7$M1K-cTCU#sqKz#%mkPxfl|r9OiixTNrjVP7{v@EZ^!mQ2 zH6?{LHBl+#Pl}1E1E!FhiT)&@v^~LYYW0QFXu+ax>AN1eBJuuD+-> zC51ILQ7M#(6cbekOd&TD{YgM+`Az$x)|3?1)I_CFCQ?jP9WaI5O!OxKrRDR!s5K>p zH8oKwe4Z2&RR>J*{m<;Da^5Nn+9Cuo2t}0KH16Aa$!Y1^{^axb)l>FYZ>sgm#8x}a znO>fAyQ985aSN?iU>9k;M4ErH&-!o7lmCk`PqJ|hIz7FWtZDXEIPzw{!WVUn!q%1) z6Lp=GDO@Kt(ccOxxv;(WMJNb#l*CGll~;2Rw#il>Kr#IEW<>lFxB@z)wMqVS_gsy`=~qPxOE=M< z&G9*E(iiVQm9cAmBMmJF;V>+Q^?Ike-e;4CH6)22U?dJDNrfY4E=$L z>Rp&ZZYG+eG2LC+<=R+G<`=KcBR-oU<`I89a-)$LN1a?bc+S{C&_l*qz2uAm_rL?a zSX(`v$2~W4zMB7TdLA)b_o&F&PGLo3qgBiQR7&Z$<_pC{TS{gMB{9+O3E)E?N?c(Vhvhvi zzio_v>K9D>^G{4GPy?gS9Q2}%Ir~>4uD}OgoNOgv=K4LbFe3gk=4IV2+=yKkloGTN zma8CUzMT)j_jQsrLKkhc8QvMA^LFrJ#JnAtIIlWvbjuf#LN-@MeYfU1 z)NR`j@tf9ovBkF+usM1TPpNkl)c(p@M zr1Wa#bzaEW7e%keorLsio}Gl&j2n5ifLmT2$>H&8?V@^grsn>6uVyheaC+t(()McX zv(zm7PAb%14dZ_C2@|y!Fs5c<=>?dmZ7@^V2Ain8L2_Yl&_tzB0#Z!$>(v|w3-<>} zf0Q_^?kkzQ>@fg1E`n_j@`jxP!~Vwc@f zg0`HCS^mc)1ecg4yN_M8(Pr^%**WZDL_9Dr>n?h=N2aBa&6U;chiDYEl$P5LQRsor zsb+_ZX9(;4H9V#D^88TB-3-_1lUQHg$a>|(1pnQ1pCr4-dZWTsqJQ3cZQd#Q_gSy> z5vIMC0@ZriTOq|nwO;m8*oQY!tylUlJ94H#wNdH&gbYl9N|C-u$iNinZ#*0KO#mil zFP92!44%J9T25cI<=OQ-)%Z<73bgUgGu7~Z?!l?hGoJmWl31XLHahQHFL`{?mQ&L# zho`4aw9(_0N+O#tY97{yc}&!DMz-xI<(R0lO&_yMWHV9g!)IA91AW^4>^|Nj3gHNs zXReKAp3e}T<8aHAo+EX;&ykGJS+Rg#;uX?}HNw$MmeKOWt$2nalc z^PVF!{bPDOM}ag)Gdu&y`Dhnkn|48dTZj(ph!=hgM*B8*qU_=4(JFW)DjvHN7Mctm zj2FvxN4-BLqW1UUs9CcxUhe%J&mUhXkLGpzqr&NSX!r7uD06HmIyGYyJnnMpKBk5s zXJ`0(NT<@UCXGqAe(60~ak8J5jB#?#p!^v3)`bMf+{6EXFNA5pjeDvX=V zeW2X+J#=mzLF$^nV}ncZ9D4s%=oofX^0a-Vknqqb6Xe^Vbsj0F)|{86+-gVP;q59L zs>)m!W#gQei>gtkus%d;l&Bi5yd$URpz^buL?@NxUL5MH;^7s76&%Nls?kzMrb&ty z?I@2%U#R|!a4WgyXVGZM!g)Lz<=0CIOia7gu_W?tz1}UcC*oz)yYw9P{9Z(&-Rqoe zgTN;8RWw-ofESg*v(fyby!hp0o>=?62*Sg|gh|fadE`uS@PS$hzIIA1`W#L0a%)Ys%Ek1Bq)#EYuYWetCm z6fY(|?a?StA@TjJ$nuG3bj5&K9*we3LfK4IjWUJxAyT76)hKgQ2joVLlDq1SB~ovc zz(u7{TBdkWBKk2mYesIYDK*NPt42BJO9@O=jWUH&6RA<6IS$a9aTo(R1nm%w4ifn! zEY*(YCo)7!{@Z_2w&baIi11VsM z#!Y*FBkx9~mHMLIGDQl{`k1H`dTUZl)EifsLT)Akccr;T$(y3M(&-|jAhx`NaX)H& zH5{$ulkj5JT?h>>fhwgPv=_f#IcrUHe0CEmM?a3JKPI8_H~r9U+6DF_z7NN1>pn%b zK26cD#N()5U?&DhpP}J7`*E&!uq`8@m#!d_MN-$lDFYOW6YqZyTTF4 z6B9n;geNnGciC`#?^2mv9r?#Gg3q~0>#|V%?4Hha&XfD5XBaX?Mupx!=OzOf)i*t3 zgnQE%BUsq+_&`)>HA&*^RNDC_cAq(js!yEqwBpsX)R$J=j76&L`?`Dj3&q8a9r*P! z_m*lKh1<5pbA#2RBO3tHlv7WVlP<#R5P(MhRFO)&kp#h$fy z_71oz@s>Z&|rgEGa%4pp~tG*qbx+77uY+!!%{o{w<>Y$=gZWGR7(Dm7DB4-=I_ z?UUjn--;#L;G3d$_~xiBzDZj&$QXjusEN9|%oKV*BHs!z?KnU-8aHkvHFS|T^|Hnm z8WyXCsDbaw4Hwa?x}e^d1<^$!sIrD#8){8sv(%U0M12b*I(#K5E{-ZlpUB*!NB$(- z-r2N9xQ{u;Xjv?g+NT62s&<${?U<+(N=b@=sk~(*q7Vw-v#?KP2ygj&lJYnwsR_h{#_Gh9}7Gn5c8oOd&TD{Yk*NX!7?(9pRC}5uS-kA%9X#)ERE3keiAAB;cA4 z`TL@_Xr$2pny3`=C&fgaD`pD0ndnaf`Zn_SMct`G3U}(5s1))i#YFX(Od&TD{Yk)g z8QGV2E2l(#+l;nAii!HRnZmbiqEg6>6chbPz&A!NzNl}T6uxZ}l|ufcn5f?YQ^?Ik ze-g;rU(Cc*sBfDTzHJkgLjI(fsNVro$kjxD67Y?Yzc1?BCWUX?M5T~FDJJT7z!Y*b z&}cci%9j<9h(K4l?T@$q`bKh$Ly9Cgp)6-kJBaQK;`m@xKYK?`B8RFWC_ z=EZ8Ed9m7P5cmbcnts6hmW<~(@aONLmzJ{^^V}MYw-O|R9rv^`k{waK7WWL(YniAN z_H9TpQTuC5VL#188#M+G!r~WKd$Ihq*D!6sV;tQrd>*6owilGOu7%H|dxx*M*7fF6 zbgDTM6-qpYb~ArPbD(ri!Yb|8of~t)sGb7$@|NXq4JSw@;vi( zsyPE?-h37|x<@pWGT08V3>Ser(wwJzuSa(@T3^eH+uPa*>D>|*b~X7(X5omGnmA+v zW7F<@{S%B?+Zx+G{08r~DuB)TLNF&Y*ZbDx`w@%#ZAbja_2j?BZ&F<(-MT=gben7p90%++&8;+*}f zuq<%_CePmt%k$hDf|Q!i>nL)?Cm-O|E2AYoV#u%Syr?ZW&jYXpH&H2^@g&7W?SnIg zeQ*PPTD&ZXK^Vg2|GT0?sy#eKGsKwj$bytDUh4UKGa`wn#S2j1kj4y~w0L|!{CCqc zY=JRh(P1Io{_*kRzb)SX#TGB!d&twe^~3Udch}py-rw@J2yP4Ewiw!~uoa=FcUu*< zGPbwn@oka(wO+n0o%`EgE7|z-CouI&ZZC44V7#pNv-KTz$CHAT&2616Z;S1=;BJd< zd0TnNHYw)*t;+UnE0vv)vrz5U3xZ@}`l2yP4Ewivdz6=6Bd=c2YZ zW((xDOqRE`a$7IAHM6`eoZI5LEuiIX72Q_SZ8f!JWlL(dtlA&oGwcsA5BmdbS+zev zzU&XM9DXHiS+zevS=b+-Z2U^tva&y5iTq|i!0jJc-aZ4%U>;AO!f3tpL=0Q6Xjz5! z9jpB}L$q9fRJc*g#c`U?SS>)?B|m$}GU@K}TWGm*L`R0aRx~ssCN%OkiLR4wZ^qpe z*SnY1!n*KZQUBFC*m9&0nh!sY588i^@a639@0q_DF$cy9Qp@~3;>nJ%^6^2iuzdVVtP2mvoUZo>HLm^{e9*oP_i{YhQ8>_oP0kj=mk*U^nh!rFdFsEq zM|fDM9v3HkE9Lt^$|*f*nv|?zV;;&z9+cG*zI6uYkaCDBXAX`V(;SbyQ9c5b0)9`0Hrjvx ztMtx&(Z-~$k7>U>B^usL_ti(sD)(zBicmzzS-(hxrRtLx%NU+*-;F#Q`{ex3yh-70 z>2IgeC+9j&z%8$OXO8IHHmc|CvWAoHJ@whs^lFT3&s~O$Y|mYXj7`s7h&mSJ&P0v{ zxsTOFrEs4pQ@nWP9#3R@?kOcV?lC2I?m4xw>&mE<&wKLg95gv`4%&;kc&}^J*2384 zSy|>xIAnTuuDsF*G*KyYPW>Si z6IB9ANeN6;3irg3Vj|ZFYRU;BUsMWD5Rqb{a$`&iax+mW)CwsE8lFR=@kgMuL_qd@ z=f+<8M>B-CINIb!-r{=wpta&H{PlxwIU0XpY;7J*XAiq`KFET{V zCGnZDZ386Fl=f|e$J|J+5|HoGVzs55RV%Vexf`D0&98GKH(_h5IJw)EWsT+8pZj>b z(~x7sgg3u@meD=WX+aB-Q>W7rR>hD zBHIf`?-5xoiS$hQ8S$C*A+mm!Ji|IO56dDCmSqWF>Pey`*SjR;QjeCQBD;6>T-7iR~`Fq6vRn$RzU&PJ+ z3N79qhuN>aitrZy!P2^n`W#cNHddAzDiRP!eD;i>g}6B{%QJkQ|1GV1Rd`r(k1+Z2 zK4F$aWVx0+6W)A@Jm2E&@xr5Fyv1?oXU~W{tf|OZthS&fvhW$o#ypgjJp6fQdRUh1 zi~js6OE!J4`&&INDfF}^Duq6t6ce=^rjUz?H{+dkABKCT{Q4gHu?*p%k4?IfhrZ5E zM$d$mzY(yWJ--DHozwNux7BXObjQq3t8c5LTJE~$7}P{vFJ%hXOHEYD;K751VxsPA z;@)cRYcf$O+@VW~i8`uf3dgx7D#hJfZK85x3b~o66z-rV#YC0*wIkC+Y7>>hUC^wl ziK-o@P&+32+l@tEGPC-!RH*&BwNnFxVxsPRV+u#kCMt#8NHNgpqj5egr>_@4(d+KY zdOSmTgX4u$dV}llYtHVO4=d}r;jmm%iHH>;)oQYqUBO)i%0R zI3%`VqEbd~dq^lIs@06$I!mm^M5P>P+*l|ks;$rX@LTZ$CMso6)Iy<{sIBS{x$k0a z3RFt>hyN?>t%=Hw=f3D|OjJti5|0bTM3wr@ijYesizQ1Lw?-tQ1 z?6$G`fM?RVH!rQW|KGK}zkY4+|8MhJfoZPo`OfCMzjfTgd47&)OjHU-Tcnt%{+cPN z=cs%~Ozv;>i5xMpWD~`U821TfLN`P(a-Mk0YmsyQlOep~iBE3i6*)4x$I};jUi(7U zkN)~X+^?5;+%0>>@QBFU!7Ki|U+@3oem#q;Q|Z~Eo^~t9)!LWl){)iQS|#t7wcuKN zI(YhhwLOu9>U8)@`hP_25w7u^jrQUR_m=au^D7Fs_e$L%+~51Kg=a08XO+1UYod-> znZhxviAot%KUOFvdV0n6W3^Xopi(F$d$=yL7J3UkYsNe6SySF|&zkEEn>=026>k%D z{g^3~TJXv!L4W%`*t2Cld{N_TbBxbj)+TDNm?_L-Vrp+5jtK7c@bTskWe9J6vQbKJ ze*KXx`|_m#l=ehV86m!Ur9^dJDbrpnS=(z-o&Se>p*uv~Mt$7B@m}b+hGasG9IH~H zjgOa36pAk@g>&^mu*8`m?vBqT;30Jex_ZAocaS#CM9aOQ3?AzeMEL;lH=e7Y+l-O&ZpjvUgs&>WP_ z6e?%1%1$VTCRMkgT#>%8(PTt>l>23~VENrAyr`5do)j0iE@50K=HAx+2jR9YaiMVE zJ~R%@72lz?p-Q7Me(%@h-Dlz-}HNpZ3C*V*K^g_4O2Fy+pfC^2>m;uaQ1@&7i& z#40br#We_UDA-+e-mXU+MWs1%-5W{QhTc1OdK z+{@>DCfrtLUoYHONAq6U-Eos7+5uN781=wK8*R5dB`LnB6h=EB#Y9_jGlg7;NeKSh3Dv?Yb_g%lID9Hy`w6O}@3kYeJEB;eP?a!gbSIMYdriCPX*SdNKGAs13i z^d|woO+M?3YCrt;Nik8sQKs-4HBl+#Mv964Bw!60Kg$#fedm6LW_T;|lQ;7kgQMbuG>49_7IpSqZ*z29?u+jbUER=pfcPg|I^U4;~ zc``B;+Hx|Bqe-67B6d3TA?kL&3>&ZBAB_5T6vC@NgNE5Rc+p1K;>XdjL$g$rXq6+U;W40tLsT{(`k~-mP)BpChp2D)ro<3$^Fp6nJ!&je>UP!6H$~U)y;9kW`hJ#9oG0(cL|fkB((^BRkvAVK|6&Ggbm|$6 z_=uO~J6O54l^6BfS$SZrd^;xU_x3@{M?|Z{UbB9{2Rj{DczyC1e31CG+zLZ{bI!|x zHU`dnQJxw6dlAXwqKy%Qa|nN5v@x>EOCpntW6J-I_`bDZV?tmPx#J-&Zj#i?MH`b# z%$Bi#Jtm-liHdgI)u)O31r7l|JMH@?dM$3EgMH@@Mx=Y@ri^~%l zV*KxOU?YA=CX9Kg1XfObLcRkRZLQ_}N~zGs2jx!6cjm=;FJfTv;yiox?FGE~>?T2e zqx}7P+3w6U??v<~{g&jR2Vh>Jmcvy=eQVdy7FlRFl!-`LJ8jPgTjY;8)luq0+he_m zs)Mk_MMMWC+WPf%8|uYX?+!=(ab?M^X${#UNL|w(xTx=kK7{YbL|fh={SDtGk?**^ zoSEf&uRH9Fd-x+b>J9SaIS~*yFb5wJ&blzMf9^ji~ zK^wh(t}f5``cr>>;t@4xqC>NF7}KE{I`!;=iG%J&%)}>nGWNbs=(#hqAm1E+4=VFI zEO}-`hp!~hm_Z|j2X9xhFsQ&z(F|pyh8WMAXd!0ef8-h3EAy~S@~{y0VGH3)WI05Z zYsoW|g?T6&c`%;nVYA+t0aM7$#2ZP#(H!%b zsJ8+#h4%%Ts1%MtNik6+U<$dJcq0iU3T5UNDbPmHCY@vRMWt|bN{Wdp0aM7$Kze-7 z?6Srm=!yumM`!L!6xy}c;lYg2I{55Qa%Y&Uuo0DiY#n^#4-67Y8m$9Q>1H18$$j%< z)TnT|1?Zn_89Zn1*s`T(RhBoJTyKo3Q92m;!i|LCM#j)69gLRYM$d4gX=s!VM!#?) zZnzORG)f1fa+py%{`&Y=8l}UGI@0CgMe^H1=+cRD8&%VJFJk?WtEe?SM(((@QRTj4 zn9F#~IhV+O85eCdtXWu6Tx_y^JZ5Zr2o_r2`6%Xh8!ESjEa|%ko$6je{9s0-?_MD^ zMI@B}HO>~t`5JkJ(OKMREsVUP_m8*{UAUKrkzH7>MtGqtoEhLvCNKAYL1cYJZsnl- ztt+&X`ta;7>qWGs&ispYCsHTDIe6lPda8SMi0JLb?hrkeJK2*lW*%OYA|eVSyf8va z+P9h5D4X!9>=kmcO!?pBw}n!l>_WG&qj+KZDa4N5ijpxC&|OA4vQzZAwSwF?&fi2` zX@6VJRY!Vp&?hyyE)X*TL(0D@+=fP06z;?1))bb=vmungL>ryfekUm|Ms?(^@H=>0 z(+_PVcTD#6!maBIqlCL>f50bt%Qhw94g#W5C?!)|WGyVo&6<%LYfA2{xh*AfClw_y z(D3Bi$CrD^QuXl*W(Y5SCirIh`1ItAwcy4-d-jH2oV)P(@20(Y)?QIjor*@q-aaw2 z1Gv>aJ>ER6vw*go1?ggSPl0`8_He=bcVkfQ?3mSWJ4Sy#&xbx$?Kw>LQ+cp_LY%X@YM)d=+ks3mRRQy{Yyo` zHZ#KoEi~M?5%bD+NA+jRWAe(LC^NqTMiohhg%UsSK>x}O1gRzdZXFL%+_3rXTc4g|?*doD-ig(MF#aMoEe4QB`6*rU!47LO{vb5Dd9ZLHtZ!Sl<5 zj}&q}YWOeeQ70@`kGkuu$D^*zu}VE^yHg%16jOWDK}9UrqYgVG9+X~zp0&-kcU_PA z-6{2`^}DG@-4*NcsNxYTHxOh#{`Pp(U9sv>>vvO+`rRqlqi%aQ#q<3ueWpLRQF}(KN3Gw@^{9OA(Mc)tc|2;Zyy{Uqe5D?B(A^%7+9y{*@t`b6 zJnFexu1D?DL_O-{JnB)`HSl=UoN1mBU|Se^p+YLOF?jGGq4=Uw`ZWDOC??v%g(>7} zqEhIWNioqz=!Np?v3*b}CP1B+d^b9S_sB2Qu?*oll&Q?g*ZF%MlA&I4CH?$jC%vMS3O4d=Z%q>f-$VEvGcX! zt+o(>F=3sex`&B0|NIP!#T$&%(?X=RuieI`7e=Gy^scE;@7d<074O+LQS;1dGhFhR zXs7r^&Ms9?^~8On_n??)qviA%Pw6SqMwQ)B!oe5yo^8s+d$vu~Jgg7%n5gAwYD@}L z*}{t?%PfV7S|8ui`P;OJoF|Ha z31WE@#PTMjv^;y#ty-QP)$um5IxsR~daN!mjd@EO(X+oo?GsiiwB>|yc-CF1&_;zr zd*%LGU$oI|-6z=l(`TvB#^&XB$QSL4Hiq{84#n@ek_yc)n>T#fh)Q+u*#jBli|(89 zi*{$?uiX;Kecl{x@D5t{i`FrTpF3!?-SSD{EZsU3<<)1@+CSfxWc^P%zv{Hw5(`^? zsf3a-4`5ra$#`M2bSjZ&Y~^xP*~ru-4PPnL6Ni(} zyDe*IERkzzl)y!$P)eq_$XZyEn>8ah)|A{?b6ZMe1Wig{qAk)gg;En)3!=Z7XzsJ% zGcIxtgTF0Ab$M7y>|Es~k)Tta(;i)OA1tLLQfe1%`HMAVii@gi=BBR6jk+dx)iq1x zt-h4NL|g7!VG8eDAr47X zo4O`9>YChD*DR6RpadqStx*dtTl`0Iw;Ix4xV3(-sYh>InPrJYO5ma`e^FYdxTtz# zZt9KPs5f#~y){2JRJ0LXLcdiPZB+WQpio?__|Wqny_H{fujDTGMtR{@w&7uq-neef z5{Z<+MZLqB(lW(G)f;nDZ{$Y3k-O@RB~o9Mz(iZ5WD2DvvKB;t8l}~DDDk-1X++y( zvD;TiH}=?eq@{OKGd?S=o~Ty8!*jp1i#xaTwgg)JuIEY#x7}@W3HLoCc+Qgc!U#LG z9~0H;nL?W*(&~w7^~_B>B{y019Df5 z(tfBX+K-90SUXc_^+b9BqWT@?rl%k`dJfeny$VYtQUVv%?@(H%xTqRsZfca=SX25P z)hJ7(o+yEd>UWqzsfnxw(Vs?Xm*h)3WjVB4{YGiil!ZvyTvV%PJ(%L6YLvNIXL6$s z$Xzu`d!e3aKPIZxGle!sqzw`+u}kKrost{vRy9hSW{E^f;G$YRrDckXs!`@<&B%>4 zrPZrOSt9jB2~1S0X9}ezvKH;9^M9|y*F28eW zL`q26D`d}*y+Y3kzyQwBBCTE_ckks|eaqvVZXN#dan8Rx_x>;L+{^j!-#P*)|Nbax zy(^p!lh(XaL7tgq+h2JUcajxA)v8szsFW6SKa>;~TLtqRJNp8yKl(zrwMkqkeSx+` zY)@aH?UtvdRW(uj0!(2`Ok`hxsC@zEX6sFE>&S(>RikX_ zSt5}VxTt*rO3M@%Rin(!nvol8%D#YVlqFJ6l)yyo3owOJ6IlzQKaFw(5H;{!vD4^P zUBqs?9Qx2>+g%%W5ZmURjI@5en~{HUWy!=*1$oAvRzG^=Pr~h;O>2bvm}7T(te#On zXg?;Z)iZ@QN2Jvg)#{m>c1muvdU99WW{I?IO5&nYC?!)|WG&R{Su=8DO=ktO|wKIC2&!#p3*YKMb#*CQ={a@n$qf3 zqb!knq68+Y)iZ@s6IlzQKaJ8Z$(MG@a%i{ujnbwm3z4$9s8-KKCE7xb@J79;@Hp;J9#mzu$J@zGEq8)Mzg}+f4g0QLUaSv^gTJo~TyO+_Y12qt%nU z+BQq1ZBqgll|m_*;v#FIR?nJ|8*56dXU)~>r^hFW1SYE0GlfzUSqq{+jnXd3mv+i> zM)zvx(I{=2vJfeoi)!_(2UA>BjWRduOm5TxxvNHLFVqw5$3(SyrqJeyv_Ya;J#*7e z$&Gfa8l_FML?R_{QLUcRGQ~yJD05SzQ$pGk$R#8CaTplg;En)3!*=b(k{uD zcFJ;SxB89JrYQ@Nvbm^M&w4P$Mb#*Cv(Ds39gw?fl=ebB(SA%+t7i&rjz}9Ms?{?$ z?UdYTx2jRvG)p8>0vFZlDJ@f6RE;t>YesIYDXm^L$`Yw3N?@W|JyR$(k+mSEUIXd| zxpUqa?dQ!9Ye46}O}Pf-M$+;-+P8JLfS)y>ES{ZfH^1X7E7yQRV%pyhu@OBne;BhU zJ*%7k*MZp21 z9!zmjHOk!7D7jIi=A!yBrqGKJ=~am8$C#U*hur9i$X&e^OQg4= z1TOy7V-`wD9lOX{+{~C|(2+v&RSmiKqI_jTE7$jYiNjX?DPJP{T>K)5e|7K0xAo;0 zqb&o!BDM_ts@O8{E7O*NUm#lsB3lL*^&6#>OmUI5up~EYMsBPrxwGcBl*p)%l*B~+ zMw!Ci3z5ASqQAD5UlIB8t719)%2cEL0x1iTvbm_=DC@x#7qzWrZq}LHr~`7>ww7;~ zdg9wQ@$YDBDJ{QR7geMD!dWwZ@vJG^TGc46f_kErn5aD~rci1kYcZ&Ptj`>KR_`2p z2x8Da)n20eGDNF;Vff9oy1qLvHu#%k=NZVXw;W}U(TKTtNv-|!J1+tm10X#uZrUfN z>7%%s z3ZuW0Vxm6@I0E9czNlj)@+ZYa9rH1TV?Gm=LT;p(=uZNAF+S^y>gULx6cg2NGlhQJ zM5T}$DJJ@pfMXUu>x(+7A%9X#)KMB!I7%~7Dda|qiT)(0exk2D>x;IekUuFV+Hzi> zDLl7tqEc8gDJJ@pfcoNo6kk-0@~&7?Ow{jd?iC&fhl zLYTrY#6+c#8!0CGlYmypyMTOAt#MPrKB1VXHDwBGYNArejT968NkCiUv%Y9c3i*>_ zqS_o&Xmchih1^In(Vqm=7oYV-)hPLsVxoQ_OyL(|qEg6>6chbPKwIOpzNpqn{-l_w zHpdj&oQX;yH&RUWCjq}RKI@D6C6YfWCaTRbg*IoRQpk-I6V3So?hwx8iN4)QdNso1VzF}F?cCEfQ*-JRxc zX!c94_n(dT*8D6KU(|c0cy9=AV>3~2{9uZE*9h_5wmd;Q3v<)J4cwp8%2l>f}a<(P-D|-%(yxPmBz1>6Ah)Kp2irt zeUfMYhu-ssAWtXocdW$y=QEw^_Ln?7X+R#W!T81GOYhEdOw=>_OrcCf%1X3E{uXQ6 zNqt&Z-6r)5`Ldu#2koY)4!EO-Iv}dv_!sqNqUxHxJ?h#-y~ltld`AX~b(@jFW6>31 zi1D%ddozU9UkbRs)nAL-!k8_z`jSS>{o`Ww^W^-)JURa`kF~va@+edNTiq9wy=%9S zn4)2wqPx9zn~Ym*-U5@JaZ8RgEq_FZ185iDHx=60@%tP!{O!M~P|xJ_@7`BV2AQaN zR=ikJ@|b92#FHH{Ev{fHw9)a!Rrut|$W*A5u`@ae#Y7vW->CZnw+4WV+k;wBxhITz(AY*ybEwfeN2JgFgG#qw)~ObngG-S9r1c5{c?l z>&4X=UTp*FKU)zN-syISoN<{jH2}dYd*a<)v1pTPGAzuzv<%^oOvA$GpGM>f3oD`@ zN7vOy*mr&NS-dvwHEemc4*D*5Pkz6(vIq2;Av41z&*<1J!ee3$-g8C1Q$w;zIkUDr zCFL&2Ul*3hvb6l~BHPL*PKm7V-P?v z&!b)&VVLs@ZcMRE;(h$gD`aA90RFpa?-STHEF>oMpFe$|`w;9y=^S089Z$?R-U@%a z(QiihjecXqotfRtZ}gjRM$DPrEY0XQ*J9yFY@A0P@kYP-HAQ4Hjef&>k^Z;nH)pZL zN|1;wM2&vKGiwdMJB@i|8IdLyj7+1^Z<1h1)SCX4>!*lj(`MU)u;dwuCssdJ@{vcG z4-y$q>;}eWzac*tQ zulOw*93SAtxpfAk>7ReX#@tMY&~j*R%nJ{fTdG{tTR?bk74JhJHkdR`&_exBb|EzI z3)Ii@F+wLzN4?7R(e8;;ya{F7gJ}2NY1Hk%O78n`(MHhaS=ipR<~7_@67Lt`U8X@_ z4afW6WJ1Xr^ROdgKT2*ahaE`|!^R6O=E@F@Qct%^fi~uhsUayYF3i4Oep^^_!ovIG z%3(#&6l^U~1grX&#Kr^TU}0^Z(|E7WAiQ_3HsYtgf%VDbvH00du(08&Fw8Ap9P8fL zfa$Z^VC`2UF!^rIH}ejT2@~gGdF_!HAM`L59laN0x6XnkdK$Oqcg)=RCMGpFj;W7K z!@J*|W{kldgE8a4eR40t{EFXU{O;peTD2-{jPF+!D}VY76F&M}ZZ37vM$;PeB*hnP zyjt{t+~(wqw#47%Jx{Cem@oKVkM4pNHa--OPLJJ*tvqM^&c}HFL=wWTa=+aN8@3~4 zbYtv}T7(ugp2XhaozeLF_OP(`gFdMDYiaDsUsrC!+STP@R6Q^j7Iw5AgGx0Xq3u}Jfi3(juBfi2RR8F3NB~z27S7&2k&BCbFZ@c$<^L&3ko-8vu z$((NlJT_?b$?nV;o@`M{Pv*|GT)$7|#t7m33;gxT0=Npse>dGH%iKOPq-)pP#gkbr z(%C1=o~9?$D8uDap)G5Tj3>-BM-!F8eF3DHs4Ejp;mU-GO5qwMDJCj6rjVP7N?|Nz zQcSc(TBcBX6E(WCu8TybK&5cCgsVR$rXJa}N2J`#=6U~y72S~`tSG5)N-J_#OjBDC z`va~OwH6EUcVF=~HKLohqQK~|&Y=P}=qkYA1<-R9hw6XGmMrglzc`CFqDd2b1 znO`v#racl+D_R!wfLIZ+#3wbde9?ay54qX~iH%QO+2fqxsz1B%j^j^iU`;jdYKz3$ z*FW{5jhb&hD^}{_OLO<)Ly31@+e*NP8>*qs#JPg?ioPOfqkg|_@=Svfhb6CzHd^d- zM9;oxqw=!Rn3X)<7k%2#Ktv-9oe|2r%7u1quSCv_Vfn{yWci#?<-CR&HSVO?wZC|c zdv4Y8vxar<9u^rDefylRNVoO#uC42j2G~Ba&GE(S?|tB22<>rmF9LhqCTbpYkHEFP z0_4w@%NK!wG*>2h(*t)W_@eHlAUE!CFi~Y=3S~3VUpd?jNFDg1jo~BPN)3I{mS@SI zc}(vax z9)PzaxVxp=i+y*OeG|NO5a`a@UfVYjaLf1IWDbptifwn>^q?6fFg?XXiu{^4e{1N@Ok4N=(r(mIP#qVTRj&bHW zJI5UeL_B{0YHsPk%4?dO@yrG}zr411o=u zCR1$;pLzw&yWWGbmzKju$i6a&i&_NU1UfY!0v$&Dh8Yu$L^nZa*ZgV0X}L{55rcS6dXV8H9-s0a%Yog=H@CW zd6wi{Dm-i~A9_*v5?PLmN~t}vt)#g4;v>8vU}@<|$sULnYvS4%uT(6D4(n+O#fj)mv@GurX&8N!OML|xyCt9jaCfH9VH19$>J zaa|cjPoV~h6$gnG2c@)PJNj1J@ywkfI>+8N<6v+Ek{&Bg`@{x!@pA92FX}$uHM4_- zVxlcOrkTQ>(^kf?S3mp$M z`zAof0mSiVS|Ru|w&BxwBgEVfF}K`Fv~JWKOP+ZjZS51V!tyT*U~-OCSn*3mOw3*m@uz>mxU4V1!pa^Ac&FJq!I4*o z2=Y#5OZI~d3p-q(X(;`O6_Du_lN(BDK(yyKGwu{K0-{XA+Ry#`Gtu7rINgb z=py=7i2B#K^|gdzqK-Re9J^D-9VRM;H^p&8LhL=|Z9yA7hIdBPqN1|9ocy`VT+88K z9DJ--q(+Az_UX>jnJ%0>FljB*?TXwNGdhP}E zz3;fJQ@!zBSGkG)t*QOk18r~&Zx>0HRj9!|PohrzWenYW2o~zpoPpsdY{8K~H4=QM zUT;!9`dr>&-F@rjo!0xZpuA%X4eIrh_x^I_Pvkpj9Q2TU7Z#c(E|71f`S4@%?X-S) zv3yH5LLVO}-xq7j@6AQ6>Gpg-N(!;H6)U@ZEHruRNo+pZ6LkyUi}iOriSoOTW4Y{) zDS7|bm^r$!;E3NA3HGbH9Tv)d8HcXLpF@q83L+xjLcPgjWo6DraL#AYI!BO{(<0k8 zFRBE!#;unW6ZIWd2)!V0&P1g&yI4vn#GVh9K{JVl)#twr(X4qf`9e(8Z-@N(?U<-v zBKdR1z(ljxq340Z5Q`W@Nx%78k0Wb_=y6;fnzF~?UG3&Hiu~h_L3h`nXSLf}BNRU| zL;^f~ZlT8!9m%e-Nb}F1X8s%RBw;U>E2F-sCzDCx$z&6iGPXbOB`%NxwQo!cxtXXG zMi3yyMD2q!g}rkVl|nA0n5gHenZn&`CMt!}%KkP3l^avY%|xXzh6O1ms?T;oGdA=?h!S$iq9!}ZUN%#GUN1?@Z3idEYvjaBjGWDOs>)1bU#09 zNY`#*F%exm-ZqwJb9OvEqtbk7_Wef84@KK)7gC{(*%#WPcD+lf(8ij_7og=E#wIF- zGv1__Xd|}T50c`GN+B0gOtjJJ!cS7NFWRWHYm!Loi#FQjnJ6{%MH^M${7fjms1&Z6 zlVYNBV+y&Ms1oqaQ34ZHYQAksZKBqcUkGbzqEa}sPKt@DQKnF%CYl~gXT(F~d_fpu z5P`0#?wtw92%f81rY z2Qe3M3Fw>PAoLOvVHHhIaIA#;G zldy35S4}_it7Ea#KKHO=U&zDzwGTUXIN$&yes?hFDmh0b9Ca|@3a$X7k2)ACe@!{+ zV2b?J|EPoh@>lVr4vJqvG7xv%L0mGDVddO+(y{jCOhyvyz}^X09qXILNshJno2!m} zp>JRkE+JEq3Qr<9$;lLqA{B~U;;m1?Ne+U~{dIp0O>!{w94^2r{&AvXeO&wke$o$t z1G>NTe?Q@`|DSxaf2ow@_Segq;dB~^Y{-F}@;}#{bBc*;n*0CRaj!TEbpr15cX{)O z3-|%2;Z#12GYAMeoe*>eXOX$^F~>Pp_$(4&} zSHjUWkz7JAItV2ft8Vf|$4ahCK333$^Nw{Ph@7k^k0m(Pu_D4N|KT%^bvVDcoLrxu za;(pDT}Be+I!U>bXvG2X#~mv^fEJAjM;%N^rZ>oQCESX-klZ^nSU!I-JvZ*by|@RtksEpO01DzEJdB5s-(&69Yxc9lK7cdG zl&^TH;yI7u9PC1azDaiMlgmn-#0A(nM<-r%tZfxe(fkU1p5UPWXnouRqp zI(W)K>{)5}|8%V6XA-2bKj8#!C>uVye|S+bpZMP#>tM?yT4lDxUma^h?klvVYCk*H zH@UC!&&Wegz=i^N6rKJ@oqe&OWMmFp>^Q5Rq5sL8 ztM5L?ll!7l?ZDV4FVk%Yoj%VLaoa(s6Zp5d?V!_V__w(2rpX?UlpKzx=W)v8l1}{{ ze-%y&N8wXA@He;x?P46j-|@e{-iiGyt^1xtw`n^!cMNkk?!sNji@eB(`|$uCKmkt& zCbzevqg|UE$cDh%-MRhb*gv|C?MJUi``)o4)sY?K7>Mrcyo2ELK=3)o;>1*;bJu?N zSJ&mG*P`P(=L7@;K}m4|K|t_%$G(t_j!Tn+lZ49TDdM$KCSPy@PUlyLbzUFzJTLt) zkE^S78?qGRnVMgL^y>boy71u5CFKb}?h@(mme`+~`F*qr2Gb8;N} zgy&)9+Iz;a_U1azerT?}3H=K2#S5s+)|-drbf0#2?I|2nCEom5IEbr*8s4&;=cS6AOwRwrKaj8`xy(Xn<^y97ID_`%EW$OR29JJ!iY=U`{+pPb}a zC-aFV=RT6;SO*?F1FLdEl7rPu#DpY{|4wnVljNY5ID-e1lO5}H;gdkqBnKZe4I`2q z)IAQ2PIByO9Qp(tOLnj!83?@;hltCta-U3gc%0Kh*(3+gBB9JJxgnNe=R)BDPF+tYuyzb;}{FC)sj2defDc%29*jd!BbCFr?p` z6do`rE-uuN-cxChU;@cT)ji5eNoFRh%%kS_k`WLpTm`ONQ??^-MBdB@eKQWMLR9NX zzQ0EL{ygvbo7~2Gz6$*yJ~uyzE5^4IsNYV0nL8Vs=vW*0on>p|erGZQzvN^)HaEOc z@#1Z~UnR!_i#;E1A~2NSbE8Cl=GFL_Z!2_((~mg^@caKc^a5ulbI0tXZLAIsI8W0l z)KX1nK!e<8@%7)-OZyss{r~=+{^VaTXNJ@1UAPl>NFJND-AY~rBG zB_SZjaSoDU5-=;7U0MsPlO2S6Jnb1EJlU~U!=ewT&lLA|2B@6uSi3mqpX?y$T5?db zV||l$GMQAq_H;E5lQfD$whK(*mObr@jiFu z!Ybvy8TTC)It8nc=N(>!zU{;Ewhw#W_7zyq_%geT5K02qlCPLI|aV62c*rP)aBvlu$}3;ZQ;erIb=a z38jP(Lgvf+b|!N(liS>z+tZ%pBq!(3K4+i(e12=~eg35By}i?u@0-rVmYlVowf5R; zuf5lAKkHe~AN$Ihd5cQWuUz`cEW^RlPMG-T13uj+@V_ zZFO5P#~mswayR$2sGTd^IJaZBmUq7sd*jJiqzL_n`it_${BEF;N2AfIk$w9t#_lxy zq@?q==$jNU20Nl?&`d@{8*i=smJa#a5d~`hYzyn%xMi% z>q$wk+dl}go*bUeZ~a3h!$%Hx4nLaPITgr_(SFBz#q}+mwgti`s69A`DFb%T(gX)(L5<9)RT-WYUhEMz{&Ny zKF<>us$hr1?E3>?$%S*bvTzh_K z42ZsPbg?7KnW+=eV$6dTyYHCOi(>7@!zU`Zx`MgBt1D1pp{9RDG{x>ay8oUoFV>eA zV8`w|iymy*jfV^Mg*m9$s0S4f=jsb6l&-nR2ean@_c7Dc)Hw&Zj~}a(H9rV&Mn3rm z|JUT|Y5(j1N9IEB?|8_c!Vhxw=^=j#SNP!)vv~I436@XWG4dqOGU^glXSvTY{;QQx zQmaSeK`CB`t@?gHJcd7}qMT6o`nfA)uE*9b*e{A& zb-$LX5O*Zx#7+<&6vV!Ag0@(wUsjVf|M#N(x#3g(&uHY)Xh3RY-#&}6i`5;quw>N7 zzpS{x3S424ZeZ+7y@PbYKde7fe_Stmebq#*-mOjNv}(CtKXJ8W)=d7A^q;C|R~z0C zMSgT@cvri^ae>)yMXhKrSD5`y)Jjx4?V3%}LYn3wNx>L>;{0R3MW8z=nA2MPt=n$| zBSjhohF^XsD$}j?`4_$wwbQCc_U5jrm9Q~$ns^<@#j>7%3WHz8HJp8AP_5?Yvv_YC zxOe$)H|Od6!5H>^iI_j2tODOwob7agcLCv=gWj^N|3(I(p7D76wwti$ z;zQj>D8O!;NUR--y_pzq&(qmk%jEJKvDR)zi*#VndN=cpSgBi4m*!YEayz0@*UPZb zviz0UOKk-8^@21#ycZwt?R3!8**hG+_pl(=CcXFNC8fXaA4-*Qp|$r~JbtaWwd7YU z2;4GM*HfC)c9pBt7xXceqMMg)4|q|~b0Oo3y|pwO^?(Oi!2=I=basi>2N@uYk;Lt5 zy|hcCGl|6_F4(=-ZYM@S9}2A-Sy3CU+OJgiPDa#DxArtQOsm_>Fby0rof1svXpj?m z_*T@zNP!Oi+E(9)T5U77IXiozc6#-+zLNV!RPIWNpfs~1m~qMOL>~W5)Z>T;3*ptT z#9j?^&~9ysb&H9OE$t6O!TpPl4fW?A{I8JP5-UdwjA`d9v7H;he>eQ=`rl~e(dch~ zBm4GQj2%7RnXkP0?sJYCb2B=^kOvEHb6S>qWu*cbvhU>7rov z4Xx})-J;-rk~4hL5w#e8N7sF~98u3A4(yirXtQ?6ch?cM(pExK`?kpTr6L_$lD6Al zhHBp_i{;+7U9OC#9cgkVfsP%HR!5o6SmLfD)?(LgK~!ek;|g#j^G>YAFg>z#ZoCt9 zmHt>Fiz!iqNI_lMON%uFyn~89I18%f&aa2IrGy!L1U$ zh8-JrIz*! z?MII|5;&Ez{=%trJ)6MD0q583u_*UST64`uqTI1VJukBfJSmHEXO81)kbaG34@50u zADB%ukpgB9nGmRn&AeE-h zLR^iuYnpz{`%wMlsuqcNmooajCk4E!3jqKZJF?Q4%{T*7g%R9Qgd;c)p&inL$LYF2jh*HL(Fp*8r zS2y~O6M6;BWdN;Wjzthc$CU?eN$lrCy&VPEExmnriV|9x?xTA;+$;&kkAO%?uxcb9 zG=M(T`%V8E`R^B;&{gjt{iXbC-0eh3aP0`NOM)j{nOTvct&-sO5zs~b*{P^U|1DX; z-2&8*lk*p5buZ1iz~xg!FpY-CPwC71=lZ>)8{yyK_xP>$wn_JP)q@s6geZz-%pW(= zgPoxFe+fpqmjW4Zp{BKq-sv=&qEj2s=paFs%dle3WEs|^6U)Hrn$LI|oi2%7@(`I9 zx-JUu%6t}TbeXErAuNb2c!)S6qrj+$Q-IZSbH~wzG}Nxy*L9$7JKSRloh&H=liAY> z=%6h5ff5WD@H}x9TEP52E!grBMvZFOt6W?$3`5Y96Pbl0fm1CTJQBH)jZX zzbgmTvChX4Y=9kW8P{i&8{szPF_3e#7^(~vSteiJcMLV{l*D$XaRxvctQX&(xQ(DR z8k){~TYV~eY{R%v*_Yy$dG%=1^kxmNKlN9xT(Q#2DBaTi+NUwZ3+39@f8%RlDu=J3 zWGauZA%YtPe9gt;O$T42EVx<3*Kh^X6vx_w@iz7J9>rn(v=-9(wbLFa;#k? zS9M>tygIs)s_H%I8*#bLTY2{$RblDvdqfL;>G!J&RB!tIc0H)x)c$*Ilu2ekT_)J` z5>!u$_fmx2lN8zEefK0~hvK}R%Zy7YAa#&5|Vb!&I`VG%f*Z^@aKg5K+O-gLlG8ZpCt9x4y|A4*1VB9ZW<}L zTVlDqv*%l4J=fm1hQ5kp$ZOEN`1H4}5g*xqv0l)T_Ae`kd2fySMzdaLaFr3&0Z_Q& z_*F&B5r{j?FIOQ(FrvrD!j$9Gs;FWnM{!=EN-GOyC=|_CN%SyXs3(;KGfq9JDB5Fn z?TLzw@E71?n8vTwxRXl>n~O)8uFR+=_ifz}Pr zC+u-Yw~SEhhKR259SJ4ats5r)hIt28>xM2)GMk5Ly~XCHcWosk5aclsE3(v%+p zvsu9`@0)ZPOFAchLnB)J^hHWHleBLnYPriq7gU zQu)sn+r1Wm&LME6DE8h(EEL6B4_C2eq9|(baZ&8`)}ZnMv=YL4YXDLEz(iKmdTW4D zDIlH~wcZkd)H~2FL9Mlv{FdJV^A5Wb5K_Q=-tT#UyYpERf<_O3`HbKD0Qu&rJap6a zJixz0V6rIoT9iN5He%;qy^NaK&QLZ8O>lr4Uiz5PBWj)D{(Q9p zYSXSy7-l;-eu-b;i+??w3~+N>RI;1M_cta8d4FeuXtyIO*+n@2nh6)ym1hx7`?q54 zT}u(Nx?F^=xUv)>=Dd?ovJ1T_B3+jYb;b3>ejXt{rP!p0P;W~7B3G>x#0HL;5@~Z8K$k+C??eL5y zX5%5`Ea2ncyqC4$*5YqD1!ht2|8l?owBu(~FrsqSDQi=%R8C6TI8|zxJFs}d$gWnEZD`O*eekX zQ6DAE@}h*+qiEeD;Rvc_(UH)rR$z%8&#;Cgp`92N!$laDwq>y(O?#a{mqSX9RSMFS z>;}S{)Ql;xj*ial0rxW^G{zXEX$Ti57(No=_HOGU^=rsov?WP$St%#Vy;=sA4zgsqN#03$#s`u*^?=bLIz)G^0LTS5mw8*%fZax0;xAe?&YDnmN?*s_Q;W! z;Vjh9CLdV_=q`)eZOy>4uc!IIN%BNF{b@9{%)6ou?Ylj}WD0iI60_{`!gnUI9$~`j zPIm0^0d!sdR!e0XKjDnj=roDXr_;`RYoOxONAmp^{INCLf5s-vIIalN1Uv>1kKyZQugA$PG+F&CkHxt zL?J|4Cl8?_FAjAw4b{AQq>~4F*0a$x%>fMYkV#YZ$QTK*LWY(Drr8YeymGDPmCCi6 zR~%8>wDTG+BM&v$p$!R2VsFJ-))=w3Ogq=X+^#NoS(c`)7(hiB7CC6ToDzJ;&+WS%%&G@>Q$^6@KdZC+euTyBB%6HU}Z<%IItP^bBnK0V(-_ zas+jMxXeMFas@9Afo46hQy!N&?{ExzO4eK7^0voXl0FNeu(@q`yn3$fwRrIm!#n^? z)6hky>ua5oJBzQi0gpy=6{fwj0*~|FR^9}1Ma^2npas9y`py*VG~HbSik{VRb!k-9rJPuB2?VYBS8Pq{p4~H=JADNm`DL9s&K@nA+s89Wng2Lk_?Y z#*bhP<;0<0ST|#8kGoLUq7LjUju`Ug9L2*f>}gqzmME(Bge`=I91+Tyr#-rKpi-_Y zyp}cW#7TA~v=Rkwltjm>jgeLqYbAQCDB1>ex**td#Nn)+-WP`u)9EmggBo!TbS*XF zq{X3C`G|8U4(IQPb0iL3{XF7t2Drt7W8emBW`Q_Q%>mLW zN;Thmn{dw2;2aJ78FvON%$l*ipiRpImlEce=Ao3F(6Fk$gy!d8d_NL=17)`t@GWfn zVY17?9-8cjBFU~IH!SRjWePq^T+Y}JY1@6#$0HRVwEn>V?D8qF_vWyW=jZ zGnnCb^0s#Ma?DTVWLDH}EUUk`?y;ziXijtbxg$}_VH12loo1*Z9eh5vyDym6u3B0* zx%I4>i^wYVYP6#k`{^5AM*ClSut$$F+MbiXMz;!rWhX)LYzFjNfw9b4q$Uap^kvS! z={4V-ny*`<(v6?jZ1F4*h+l@3j~}A;AYZ{4<>*A2s>t#;$(a zGDwX-r|D{K*`Mm#i@;k^?nsf}hspbba73ECo<@Vg3V6I5-GIIrqWS&f3>+QWZ`6N>i%;~T5q$Ae)m9PUVd}ZAc zO!7mmx*blj$qdva9Y{Id#%JO>7Z2TsP~CeaQR`ubn#c8$sAT5>=U++tmlde+u1jxH zDX2@1Yr@kDK&!y(Z}k~gTwBk)a7Ar}9W;f9;_;!d0~MxgxfgW37NauUr~?&Gl|`lE z4sgX4%Z)+dnkyuMXf;Ll`H5g0XOJ&s|55>4dQ#~Y-g~hoy&eZAHH(X*U7wK z((fyGPkDEHyt{cvFweW&(|1=hCX;$hCLLhZjETSurp>_|j>m^Nn6^Kdr;WY;jQUeh z{lPN|o@U1ZREPgGJ^J`6iQ3iAoqlWh-1UY~{X5cA=9hu*)7llAOT;T{=6&*CzVwsH zvEJUX$tP*^@)d!*dxE=MPpa!KzZ}=Kc&73$^DV!TIut8)Bb?_9X!d77bC&ZXcJ+>) zA9t?Cjy^v>QWackRO;L}7c5_JY7D;27Be@QjX%#e?V&5sH#Qh;klSoh8xLKr73S=x zXfeiKZ|IJRTc+PJ!TrrWWX80AgDekOCgGuxbn&b*R8Cm$0Uur?3L)< z4l6Usz=(0~(pre5xcPFdcac>t&5dsbYQ?M^12?l`J45|?uT){d6+FrUx3Us(hJk*z zK(C{;3FG!umTt+)2=%8moh>isf%~M7m05c5=HCc*_eWjPWY z!4%cDsm78effnN#pKwh1G7S%od_o4HF;`@+2`OwMQ^7@s|E`$6t*kb+sr<#WXG7Db_Gjsf##B+ohIDv zZdp_=_6|gFye#p_@cXmYu@5zrHs2Y6iaB)t_~J037B)(P=S2eVM;>^~NNwwB3BXm>3!96mlb&hR1i{f*p4 zP|k{(ZbaYSZ$tN%>(A;D=;D}P1AVlA4N}G)mZePnO0Q?l**~YUu|d3I0(0fKHQd{A zVDK)j4Kp>)?dzn*x0Ft5V0)*N9ue)WPHH4e`bqBB62Vf`V5#8OTUhcqk`16M2@$p0 zLPJ{(T1j}KwmS0xSS3M5vA+OiKq?8B?t%lI*kk15MZr{{J9~@+QTOctH;$?D`$X#z z6C#eO8@$>U*eo35o!Hx*0jM2Q*EmJzhNkX2vE7MkVTzNsdg{KYz1~3mS6_Ccy?WVv zg0U)EXpmLGAGH{!mZJ|qu3kP@0LT;N#(CEof%K?khH_N^;;`-YWvlS>4r;UgxDI+4 zod+!$jXdTd5O~a!p-BF|d0r)`>yCM#8g&lz^QvNwwf=bG;0&~V8>>Ux=sEju*E>q6 z=-lTfRipM+qb2`gw(JYF5wsiLcjZ?Q(M|I#9$utk~{W5eKlN8}hh_G(zEJ zkx`vm6iG*lI0WWA!GhlIy;&9v=?&kpGFO3mS9p+Nl;;c7m+R(-_ELee?AWd=*wNCa zD8IC~^;$W+ToiOMiAP1j8r_d$&JntFp~Egml-s7gyNr-c*(t=WYpukyzFbPw3r>&D z^+g~)+0CwT^31qAHsqCK%BueUBB2VnLI!dmc4mnAG-~oIp*8E zi^d;~p5x~|^`E|xTnBTQTmg@OKd9#>ey+_tY3|7yTu@c9LYs7^fxb+_nu~Ylm>x@u zwS6<<==8p*-7B2-pi8K^l1{zVfka443T{xLjVa|`@;Ddnzl9YUr1y%K%#&Mq3)Qmg ziZu%448QOen03W^N`ht>41;cEY~&2bkkVclR2OoFW7s$OA!_|=mf^qF5X zKuOe?u@ia{IjZJ0*TBF|e)&65+nvYN{9C$XrhA%dxjRu)u33kg^EK~K)Bb^|jrN-B z``iP^MYovKHUVM3$0PcdFz4T4zZn8I{tjFXT5i+~QfBC_VZmNsyRO*DW)eW_$G*dada_dzOnSjnd2XBJTTz=)^Q`FQqutdNQlcJ3%u_uOwKiy; zdPeMxmovTjb0*@GY&jbZf1lQylV|JR88e??>zmSX!mUO!--%jp({k-m_ghihF)hvRb9P0o zNBE6a;jOO)_x0!6Ux=iky0p!6H)YXAobpbaLGx?x%TnF~9j;ipNOeV05;a_1kCa5+ z3RWXIphHj2guiOY!@8DYOc-M^#Dzowp^F)L87|Zk860KP6WlpLrA;%OI|KF~6AHt@eor+9!CuVl)Xu5PlVqA+&gBqJIKR*yFl`!#)+Lzvnm6^3QHVy23 zCu*r#W7ClHt*G^8jZIzYT?&g0Hof{tj=<9-A(o zj!oKdFTf=a7(0ri|Ky~;mJyYV)ltj9gJT`Apl1G4y?-+&n5%;jmmpLS_0p~*mw;;y zk);lViok=SV5knpifq>v+^K^+hwXZ1p;Xg}0z%hBQtfq^nTPd2MtsEeaVZZKnbf#k z4^G@PtO$J7cpz;t@?P~mHmz!GsuTBG!v>q`#l0^zHc{N0>eSez#l3@7Y|4yiY|`T1 z?QVljTHHGoK8Z~uk#lVNG_3jzkdua#KRv-W8Qd|t1MmOm{@2e>VAIdIo29WSdZo%Y zS^Z0Hy2?1UJ*i=wdUvXf(?G7uICUngjFY`lVVoxG!O3Tw_P7sK%Q)47QbNT(!E$xnl|it06~V|| z1qgPJ8&(Fv#>rh71hd)_?!H(7gtd)74R)-~A?(uttnu2CpW2`L^D9d~v+$#YxVrQs zu$^`oFRdpbOmE27vR4DurC-2aap|Wrx3m_rUitalm0tO+N2@EpfV<+#Z}zm6-znTx zf_I~L(NE{DhCYJ3`X}<)P~B~+V2JKr{km-I2U(w&r?5Ulr?EcIE38klhV{8r!}@U9 z$t@?n(_O>*Tz`-C89rZ@otSAqHvbv0KGq5OvXMdu4zSGchiTEev$^-ALmT`zcX_nW z&H@q18d|BeGInQ1(Z(Cq zYgPMEn^L%OAh=-ysO#PC8;5$2fMM0M+}XaF5!|G@I`d^9qPa@{rlD&-HE2^=&GeH$JA;?}~jGp-w}x zk3ucJ(6uPm;QT}>QEk6=&IQ-3(*7BdA?W3q;^+HV{ZWWogIfIb2&$-MeDG9Ji}_mA zV!jr&n6E`G=4(-lpPqBn^3mx-zty?h$W)_wtDyId>|?bpzqe**pW&dYhoJ>gF$|K` z;#p8qk6MhV(QNGPg1N{oZymY!#}PcaFcpt$CoHumdU7EO9U<@kH~GikQ)kKdDihq$ zzVBJ)d-4;B#6+c>u00GB_Ty7oMt@JBuUu)v=ptb32Ph0;Rafg!2imEg^`X2EczM5i z0C?2J;6(#AE$in4z&rNy0pMl)d;oYyem(%a;PL_BrTucBSv&BvWZCxpbmK)Q!8HA` zORc?{f$*K5B@n*#)8{~F zfcwWn+{e}bEP>EK+b^|M2)z>V2zWvB`*A?X&B<17J${9+Dih7D8P(X2BMg?}UhPQ) zwVF0gWV1lK7Y{8Y5`C4+WPxE%5Um5?AEXpakj|<&>SGC8rG% z_%yz!Z1J<~Z9Nxgmd=J2XlA?*l?GT%TqN2jv;MEN()>>w0F`{(H@tW#_v7blzzZ3S ztIW&>ldJQyW-p-z%TK{7-qR}i;JRw01~a(6kEc+%i1y(9e??e|R_pHJ#AoaDY?Zn6 zzg7W&7As%006U!ur3N-95{X$aj<9yo;O~0qp`*GqrX9WQ;S&O0(!2qyrMT*>flU9& z`OIW4$Qz*a3qR9&Tv@$0Ds_&Ll{evMHE#a{X43rr@c(MSfZ)uZ(L>JvR3`ip7(q6e z{u$V}L~hYLok5plV7jc|@PLv9rs;2hj;c%@`kr<4=3qd{12^+}`!Jvsd|xnC?$H5m zWb_tfP^Sn?9g1}W6-o)1I-qyyph~djuU`C|Lbrj98lNgw>TgT27At*94OaS;04urj zrih06Lk1|h=r)u9DY@!4lmIHL4=`AC8-p&k<0GZ9=punoY3#X}`=2x8dCtNg%z1Ck zx8V%OHmY@fzr@e9w;HqbW_$sfTGPK+i|^ycm|h#sGBC6Lolm89@GoG!Mh=nIi3e+I zn`v=YedAtOze`Ig5Ef^A3ejO>Cot@*;a*J~r( zcR%N9dp{R+UZqw$i%`9LWwDbHkVvmoxpwUarYzP7IIr62H6;f;DvNbrQ@ZJxlwSYJ z+A6aQbh?7u`?Su9((lW&eKxj1*M4mWOx~mi1g2CgqXlGQY4(%$Pl+@X2Fr2XANNKv zj!p*(44N=@TEcdL!ctbcVdm}Fy9KtPE=Mssjo-$rH z97E!ca7}ZXEAmrI>66;i|k+GH~2N$@Ef%GR@pztPkd7WV=h3CE{-SzC7tuv!)*D)h;+*p97LPwDdDPNksF6)UFcTXcY6=vqH)h1e101$mzW%)4Sg zi=s*xD2bK6KVm9)z*-- z!YsJsiv6mS!@{1~H(a6Wvj7)4Jc$85$hNU{S8OK+4%3~K_WVd+fsYRaclC#3*2#!s z5Qq}2&c$3_tjv6@#Mi3%%Dv~F*xU2tU3A$||Jr5Y#nG8%@Nw0smDtI4zQNfX=RK~D z^x2GX<*lGQnyPaNrf6C~z+>d4z}SEs6U&0|3iJj@_cVrkVwe>JgBM_JVv}L+2UD9D zbJ#^_No4P0o?b9!bl}(mKN1T%=`eXmM^z~53iONGRbuCEI3^_Rw%P933OKtRIVVMzVB_+_Ijd!{lQ|gKFIJgKkSV`?(W0B6|H6fJjM(cW6*Expj+VgnB^n|nSX=1iQbP;M< z7g;=_4~ceG-0LdBZdoHK4;5bX2i9s?(-bqj7jsb28;0*#+ryF z#kszN5<=ls*&Fyf*`o)t+Wt4VjKKXMvW+sV{>gzR~EOp#WtiCEs zXlHF6?Aa65Lu;cw3cMBd0a8YA zY|>`$^E_P{hhUs?V(%?1?B)Dn%S+RfW}x{=-X|19Z8tNb+_v5#RMbkudl>Vr4Q0`oxV^KU$pHYW2t+_|%e#A!om|K?cF6 zI)-YEk(~*Mc@u!nc%2G}bm2$F!vT2&dh=5otr@5u#}n1UAQIu7fM!4R#Bw7P{7tSUuHKMrdBd?dQr)pScyIbZm?ETx|Okm-rhKjJMGF*@LGCnaeN6_jQv?o*KFBGi)d+qqawDN*Sdd?8UAO?ijdBPD{6?Y|#0TP%Gz{w%UNO*K-`u(<*4l&qA|lb7FZM)s zpNvHq(L;4Uq3uDm3>8m1qIRxoVboBHp1?a{Kg`lop|-7NOfPG<{b5G1sD*Srxg!CC z0ncc@(_Sx0X#MuJ>#I3wO5Yi~{>Y_lr&G&(7`5Y;s{@Fr)iy%Njw{whZ)CO)8fF4)W3|TQcG0kfkx_V(3 z=x0#WJQRamU?z`H^Nyt3^G1Yq4~qK+YPUHL>#~gJv^Y=QAiywoMR)B!GINlnsMh#$5n(^r6sP}G<1)#mL{1~W=^7ooz>HC1oS zXzCsjH~f^;J{=fCQ@3Ltl>JCk3;aTo8rp0H7}_z@&v;6jX01gNjL&yxNQ8LW=?;L4*U^+ z#DAa@|B3&Ni@1pY@{j+-e^juLc=&s?quocrpYz@LKlnfR7Lmbws~JhIJsFKSl#`8Z z6~xL+hf9=>MV}sv+U#*D8jHPhrD-j3@4UA)(p` zok3?Vm7zLzJ>A#Ko~X-&l4_m1wRO0I(ezlvZ6^0!tu)6<{eD9~;obMUB2URY*VLLN z2N=}SV?=M3bP!Uktwtehwb~kol5yadJz{6|nz~xAe@#=39+J`>gkw{0g=5KZ)T#P< zkGzVPBHiAzhzHzwuU_~u>s`^pndr91u(%$Y+A<C`bZ2YN(`A<#Dq)fu@45HN1{qdi+!Ms|e%VHFz1+Yt6fSuJP944_O%0|RxZ7SSJmPnjFWBR#3)RmFLs_@YF-`X$@{`-b_EIy$y`zuI(v<3}l&1OV z?ak$+X{(bHiKp})khAZ7RS@+sm?EiOss~t+sm-!jxy3#gp@Ebndr}m)#d-&OBMz*t zwVrn%vNRe|&DV@AH~Kj5X`@HffBM`KGJ;(Co}z;G@9+ow5r0634$1eQ_%Hp%`n3+u zM|DFg(2!eacs@quZu2*o=!#DVg*wDf!hMs8#FK}Kd)K-cWY-#bl*x;=cdw5Tb=BCb zLs3ipI*jhc)s(12RIm0Ya&JZL_AxFd=Drh^8`hd{^Le?jl9-CeZ#|$~(j6)J>Sos7 zWUB+~;=No^RIbk@%JsV?v78wOMrnUk6txr8Tz>NwS;+wph!zlvQfsCpSYR1uOL8IE z3H0t{rb@WLABK)A3Eg~pP%RV%Ienh~vLs99hw#YwMA~c9Oi3_Nh8-7KD#4x=Stm^tt@n#pH%bC$QrL6RQY2DLng`Se&@-eJ|+!IG{FAO0Qbv+haNEGi9KLsM+>aRkb`X=>;+l0J!t)bJr5V`MR{QB zs7~q$gielI^F}dYh3bJW0|^Siz!M#LG!5iL+{=0GuT?!}$(Ab^$icoiGuxBXH?QVN zUvdRE_kd-+e=oqCD|r4LR5K+HdXt_T{%*$`V8VEs7ARYX;9>;#O;@Z(did!S+3oRz zD~{?_%tfwZHk(sW-8pXP+gkaGtAyv_19JK$!8IMquOq`1P0Jxv-%d%?imlf+alTr; z8K`j`1M;HQ4SVW{T4czbK}Pq}oBJxVT9C-<%%$Gej^5#WJ3)9q)w;T;qchTh_2V~s z^D++=&!j|c59k0L9S`YzayF7@?DdNeQdzOKW?C5Cuh|}+eYWO^B-a*i_8gs=lbxy) zgvO=L2FM%NziLaLT~7mxY(_~nM*!u&(_)m9i_K>Iysm~hr+T*D0TpCLtw!}KnF0I+ zIp#B5H8WJ7AkRF*tFPvDzQFte^94VTkrXfz+vPhUwSv>F9zDmUnu(l2s@h^{hfpTH6>CDb6NEX4+@ zFU>{&podU&Ro76fWX%StN15)+vjP>e23^=uje*-7_H&E%He}@An?r@-bhd(q%-#5N|7G#YF{b!*yCo;@e-h|xXA@h|tAvbuy zeDLfsngT|HoLbTE$x7u-Skdp%O65&h(eK$xPKSB7E!#Gg=nI8N4a%zl|8P=nE2&;RUiio-8?n5p9)8Ub0jIEBDtYC&I z`=QVd%w83FsPi8^+dpZw5Le?}Is#Vo*;isOMKweCa7(O*I+fWH zE5p>EHOBp8{|^P)UoyR5$@k~tI#BcAVVrYplh=*&oR7IKoGraINp;jMF<#$Qcls-_ z)7_fuip~5jp=M%U^_hM0`(JIL(KDg(-~WHx9vVHuFZ8oARvDbBX08SQjRi;W-_)x9 zH`D zMpW)1w;pgkBe>2D2RzRTp64iMY|{wRM(zMt@`5YeZoq;gSUA=j58EYC+fi;jV1jGP z3{%>m>TFWn%IP*uQ(kW>`bViFWi$u5<8skzM3fxn2F zg9UrzuVOhpWUXUM+hXrt)`Eb@-+K`&>&2i4b#dzN2{k*cw}Y?cz7lKEhJ}{gmWh2b zx-Uo_u7y$}^c6nFkg$i#&sP?Kpdu30sT+q&ucnciiDSpQ9 z{#C43&FsX)(%;uYt9PO}18GBb&E1GpqrcmY=u@?g&!Tt6M9S#m(Hek%3^-u4>H-}- z`spy=<@f)aFSnsb3_tx1F0|iXO-btM6$g7z9giJR8*L?SXpUzbQOmtWyfHCm*Dn{i zwb|oPabPTmB(Um=m7EM`@mA|bs7yIN+Y{T8(WIvZX?g(I6Wg9x>!5<5{X8$$z{IwZ&!(X4#|NULw(K*#ujQx* zCg}%uRN==Ak=Q6DSH09X_V%i+OQxzw>i0eCS1MwY&Dv5HtjWf zE(V|2^WOSva^vUmSBPnah&IH0-CYJbA(rruQ$MrQ=yaLe9PTEi%@t zeR%|i6W6GvJMf6RJ2$jTj45i&&c}{{J0(%`HdV>=F1S0Eg+17UD@Co- zc3lsG9mxY03E!i64JR)C?6yeQ|AHUwQR3EE2tUC)VJ^q|If z3!=6n+6?q+NwDI;j`YW=4$!t*5X|b2yuHbVKpHAa>`F(q73eVKmeC{FgS}UG3xRFu zlak=kA+VbjYoi z-G>?ul@7YSLvUI>6f4O_Hj09D7Py+$>wSfFDn`XzgeMp8#ej)`{(|0f%D515MYdXT zEA2P%)DgUL5#DxYHaFUzrNz?fJ$D?j+=;MA-ij5?w zwWWEw=DkC)o?q|CY4NEu}B_NRzwbxdJ>Z9JxYDBLt!w)l}UiG`&M)E|xY|(4Wxg!b1 zfS%>DsK*h#upHXWitSF$Y9rk^l-v z&$P#0a(@3X5;ORBfWU97kh@m}+HWf0`nn3IudDdEQ-#Z8U!Zwhg~=+Zf|AtfWtg~3 z1tDuFK0*eRqW~a}{F5pGSwncl=l-aMuuj6u8iK*c8iKjlBJ1K?W02h10=H0`2E zX{HchVqVl{B*Q?S`2Y`df`yFc&gce1VJs`SmIbb5Yfw;Sy7Fu&TLHl=ThgJCvsLgr z7A!cx!f_S$js@2kWc0WSddF;zV(QFs750v$X)^*uHdz|L-m%yVz=KQ$^fDsX%xDtt zjz#D}rGj*OReXC>gKG@wehz3A*74&~RTyeq>N5s3Zs<@eiHCtKLRkQ02G)$`l7Tz} zf&{ZO1~fAVXazuy(VrgypJ?XK0!`6<{;+nM1$^PLs9a?}1{`6{ybTya&Q^bR8%H5e zYC#|XJMP$Ou*hWtxT`@F!w=>J4>LN@xes@BxMTpYz;=jUxd6R33WD(iU_3y$^^+L* zqK2SR@@WmhuzxiK19vq9pXsZC>k7vgfP96|3o2#mpiX}Z>Yy$lRrtG|8hrb@0&K5! zMS|Kl=YV!5en%PyW7U>Ev!0&Dp;6|>l`{Wx&CG*V^n|gWYltJPao^iW>D~vl@bFCH z+1lFU#LYpjm2LaVV`^e19}HFt~)DgyU#VGT!eC|sT@_POF;U7b_4=EA|73* z5mg}p#}PG4DyNuerXZv3sGtZV&6m8s1mT@>{&IOhe= z*>Xf}1?^Jj5lgfYnsSggSJzsVw{xPNwv@0>+j;>mXGQH^a&aJ*8>3LorbeGTV|ygM z(D#2oBldC(B*gWG`9(J)R&p3=vG<}x6y>8Z&l=jymR(+%xA{SSc#4|>J`2b?slqEB*S-6CbSAcX|(IZ)ThKs_PtQ9<^hdR{qVZ7~0`AStNk z#iCey%x@IrE#*YibY_0tn0&RBgsNPK3K|07qbA7Ag| zN9yBi>M^Y<5t$VGWHu%VMcjS})TIetL7=Lb?_Q);Z&XxkP_x0T9Id}(a5zXz3+Kg!j8CTzl+HNn?kgFvrvU9k`7zR5r zkCX=@$<{+$7<5E7qT0jufF~F^(CR$aGF_sE!doJVl(GMtCSguwtN9&5uV^Ys9~X|e zeQ&j?-5kmY*()M5$!h+($f_OWJ%nNz$#lN)%RSi7L?((rTiPcH>?P2tho z_pi04@z*l~nP8Ih^*yWOY~b;{=im3d^q7bBt^ut=0<|vwas}F|P1XsN+`pyE4%Q)5 z2C-XOd;yyo=XxNv{)#jZp)O&#b2%;Bi75F!)l26+YZ1Q0U#yF4FQr8$`Lh3{S7gP; zMUicrbHSeS!<*ou&fX2O!#X=3WXFC?_F7HlrksfLc$iLq{npe(vMko#?GAco)wD9K z$oLCatQXfJbTMK_=3b0>rmP67V~&84PW0>LF^!VLPg=pQYzMK(-O!O)~grh_UpwD6wbC+sC3ZyL1Hx8`UkAG+v>Bo5=aPuES_ zwbaa8QIBmVRd_8WYSAupFSO;MlNL2+yZ-A;r=a^fh+-DT-MRiQYscpwpE`%j03J{N zejjLjYT0KG^bs^`0HoNC3M^dm{x1!ZzxDkZ{RY3$+$EJ>f`gur=&jsvrq-YECmg`O zxV1C!hVC`!OF+H2_!ftV#CAk>MVy&%3P%XXw#1D`=-XoR(mpLx*2JZg>>-{qAJy91 zwk!AOI-jlv_O8&H#h#ZOU5Aa)&)c(h`nL%+Z^?EGoq#QQVr8am3Vw(KOLh_JhSpGM z&LOQ0oM-9Bf}Z^!<>+u=IDWs72t9B`h8=|L2O?>YHoggUk6L5bwB|&ILp^d`^2`;L z<_h}ezTn15dI&8!ancF2zh5#elHNPfP6$^|rS_jf6>ur7(!J>ujR;itUP18kWPt~( zWhUhaE*_pZg5QjvbZs=fL}9k z$FRpmZk zmI?{%QTNZK&-J((r=DXAchaXbI0WcjD`(s!MepVk7&yeA8al5zI~sE|5^WmOBewES z+$*9RRq=>z+;8Oy+MpY~yK(hQ9HXM&Y3N3=-sDsd;E3!~XSa;)>T_{cqq|M5Ao*ojDhoUx#z9&jBxi8jrKG^y*5IamX zJr~KfoG9AUYkI~ws6Am1p=lAiiL0f4ho;DiNdE~keU~$?!Yli|0z5B>o$5W=pF;+K zDTF>wlcLo&@ZWIm#oku2;!k%dgPm8R~r$ZAWDe$eGorJ#%^3QM*+3Lt2{ zI?}%P;uv?e$OL_&AP+HCk8b-WT7$r8TWmUDvJ zIqgoEx>m#V`dW%(u#Bc?Up#)BUVEK|Qi8s%_FCv}wxm6=scYPI-0CSJ)R_@^TrKgp zFzM5mE~w}j%bY@m;PD)qD8EX#)2Ei9^Sgd%npv)=rcE1DrMkLl(?qVzts@_xsWT_C z7UteawdH-&hSp1|rRr|DecUyvl2f?AHny6%v0Ej-(<;{1os-lsrH{#a>RUZGX^&hz z|08KrZ_zX+;#M1^54lu(3FyisnwCYjt3`DFrIu|MXibZCGbo@_AM!&bVCzWi<*+VD z(DzSMbX&yfakWACZZ4sw!gT!H)aQu2iWuKOdt|)%iJ>E6^mu{}e!{ed@nsJon;Jr- zgj#k)R?4uSi`?gjPdhOi@Jtv|5<>Q-$Wn!1#Ju5dfYxtEIKWTrS6pfP`F%ttMBI*Q zHoPP9G`_0aPl5hyFm$9%T~=JdvqQW?xMk6m^ux$upw9o^I`AK-G}c6-aad>W=-;q+ zWuJ+s$AbTbMkzxO#hu4H+z2TBR9eEfl?>(dr>|YQdjn@j} zIMMt!o@atR4!TAB9e$%(MB`x5`X4SHnr#QlZq^Hl(fbb6{3z4btW1_*O)~oJ5%*Eu zkuvNNmja<9e7Pr*>jAoRB6~;L%F`|ZZDp}{W3k<`psfUDhpCxo+iUX!CKjGBAi?D_ z?1A|;n;tAK+!fiq(~Ie>T$o1hon4W;TCcB<@e*ETMZKakzCLY*wDm@?rCl-Je&hSP zK=&I#Hw}`o@m8?Gu!nZr(DcSzu{WlN+Dd3b^VPYfz1PyTw={RPnZmZYuf)2mmDwiT z9Z~Le?Nx6m^IBA9NV^2@-uXtWb1)>2LHoyr~2qetZ~x8E?tE8~@NTsHN%Y?^T? z;=(5xGY*LEB!t*H;EEyVY^;yT@@a0d^5+tv;>RB4E=v_)A&^cLQ9Z z?wt1I>)#7CI_E&m={KhOCY@E>;j@V2+jw*$!*()OQzcC0OIk!zZwBjsr=?wB`v8Hd1FS#XuQ1?u`Mn&?k)+f+rLF{Td$(>ldqnU8g9 z>p-wopx$b;cEQuEVd+vza7m}8Qi3U+T1aUlCkNO_3D&j#a@a|Ua>5$udfy6q|1W!Q z02$Z1u8%+8TIuXP=gc{CcJ9g9`JMbu?#aEm|4>Q@A%qY@DWQ}SN+?4Jp_EWUDWQ~7 z%1}xPrIb=i38j<}a&OK*_vGx{o$j2bJ9{UcWRl6OnKiR!-k<0F)|#2L-TUnBPVYTE zw?><9y=$#+ed}B6d)E8C-}^qVmd@`8&TFcO`05UQXmy}o|6Xv7>$n*HPE0VQc#~M) zvU#y8z%9Dds()bT%nNa6IvI*O5^RVQjKJX1bFSGs=%vJGVg)n0@Iu^YC+WQFc2C{i z+z~hTXu4bdcskGCc)IGzv0(B3)v+F*3TRhfUw`U+wGZt%@Ch8?vlHp`rAz7b2?B&k zi zoGz!$t*uu_WDhp$n@kh+fQwoUGJ!LiRd3eZ8C{DyO>jvU=Qdvvom5N9R5e&p6oBB;o*hd|fG#|`~dgrR2fjt94M@}XZkvL_WNFPWPdy~X7A(K9YWGge>Q z!)JXni?w&52($%)N3RfX?*K-Hq$>rRb$RnU9E&|>O2-0}(K`8p0ST?ws%djG@dD}w z{T?=^#&eg^oL}=Gt2yoYJMJT@B6d0y{k35NR%ZW?B+(JS2%nkVwjLD!6e=xhl`F!W z+TIbfbVBukWbS)08!`R%lf!C6OV_sqm$kG=UMtlC;=z^}&(&}L@JpTKlz^F+f(t5p z{8DgV^#M2cQn0PmAAK(bJ*pT?*@*NqaQB7aw#qhN2-Z|t=-Lo;DD%U)4Z&G0r8fjO zw6wAzSkiEV)^EfFN=T1W&jlwnQfl_O(0)<@o<0{mu}l-*b1_~_c_;?I4vFY7{k7nt z${u_zc%Y@(uhXOwvXfr&bgeuWvvOYJ70$1TbDmZwtgnfq=It%PLN!$t_f{%(%d#eK z>5>D}me-8yZx_9OV!hVrN>!Mt)#qYXr#=kDr+qu#e}ezE8k#q<8*!)k1|Hk?kFd3z zW<=DxzdnKjbt%Wav%-b=sSE@C_&u0nT#M+O!MPxkfoNhhUsqC?e?o+-n%^uu z<7iD~W|6R0xk&R0z0RW+_&RaY)?J{%#F-3RKB;-hCiR{yJ?KORnDE}&xcIhr_=jZg z_O|>`EpL;5@S0E z*gLEO7jyavs(=PCOe=5hbRmp3)gHT~L*Wt=BdQ&7rXrZ(5O8NiX888Y?OP&$0$(8B@cWe-qHNN58r_*Wl=+H&rF-ld5fX5V46|`K zi_{Vat{2kg#t_rYgM1Lvn~Z_(@EN1n`I70qf)uXr3vTSE5ToZ(_A8qU>>UeSE&nE} zq9Vrc`u|y3MR4m+EYQWHs|vVZrKpUlgeD}M{YnWojv*`JcU6EVUx_mWv{1kUdcP7Z zRdrkU-}*{$z6uvv?lx`YpWTkDK=)67C77+iL6*DSjWymXx3^jQnXd%*=(2V#&`V*6 z8|~3`RHM}^@PipuZae`{wcgQ+AZyA|0?EG@I0NyWo`cI$Vc7mqHCJ%{OIPSMOMJO@a2 z`jmz3fGjEB06kS{xt{6;%jc`YFTyw0iH#nB=zNiKH%0CTaB#x=Mm0Ty)N{cwzaN8Y z(csQ_upwBb4+oYu)I=h{tqsAX%Fb^H`nA;iS1!k}Xx!Wj!D5M@jwde!H??%_ggY94*aN1p_3J#rR&jWm_bO7pU(K z?g$n=mIihNvmTR^kEhd2(OOJ1>Uu3b;W7gR9eIk@i!aC2PdSm%qBFmHKR%qly0)F)|spt6kZUo-5Hds!#r z$yZ{w`#33L()vj?M`OMZ^lksgnNw+%-!*pw zB{;DMS6;yxTI-@6tR?n9aW^`VG8$O|qPVMaVpoQ+N@89Bk_5+#RX9#EY~ zQxaH-v(!qxK}A(7a+g|_BQ2d1cLpbU+ES}>qutDjxnsALAnoS2+@%BN=65WT6%9AH zSuAnU^5!cRiIcdw%Od&Fa3jkinLcpifJNqSzzw}lo~e^=cw!b?Ny3dAMHV$4@wn32!F1OQ=#GA0FijCZ&KWrUkCMCCMN5BHnACEQsY4l;n8-4EyFbfMW`a&s zrk|lb&#VXNK(@%T1}zR`Juy!cng?tkd&n}GC(JTWVcx+$eV%OcVeDcuK9u7w=64X<3R3EoaOWU=01rlH3cOtD{UCHGNo*! z%&agH@U(v@?tGlfBat+)QfFQ%86WGBB`Y(hd0gU|$Fqx+c|z~^DuqQcEA1Z48NVp7 zzMzR`B?=EIED0vnDKznnzL)I>6b6DR^$txuWe{h3mO?7!{JOOyp2}+bF5EMLOwr=( zByP9Af;ltgM|#sc4WGuN-^a1={f5#4%K??1`IBS+h>b5 zi`r;WkP3Tsl)1l(f~h<(Srl`enZ>9_UgHMw2b$51ovpDHtwwqDIS%}G?ismj+Cylwq7Lb;`($e33`4xbmigVmdMuP z!z)Aik29g(5jbkj)(1@g*Q6FU*7E^d8#yTbRCBY1q(=R@mXCCWAGca|TQZ46S#QH! zxKDIY)biv0lx(^m;+P+I+3|rfUyOg|J1v&P_@}qD$kb}1-)fQBl1{zUB2yrp+|(kS z#7DT;#+0Gn@L!?CE#BY;KgeUb!EdOVoEmuk$&CG0^Yl-ZzMoRjIIe8@r(XA`9jC4P zOude+!J7Iq2|_G~`5)1VKd5i9UD9pEm-s#YfKL4J$Z>69AZeKEcL{4SBPR-2gEO|> zTf`a}buxWE*7R-5_Lb=G%vUfwP}U+{;6r({>0tsV#tH~`94;%@cuwEZw&0}nD= zJ*?bMnF~zBb)DJ9I1TnLRBU^;dMb>S81|TosuE6;y@Mk%gy@Evc1)< zo-%Wv4S5Z_O4=V=Jxnsl6rpy~?G5W#-0JZ;Ezxw$)SQDafEPeWf=_CMcX_WGLbYt5zcmQne> zvL!VC*KFjm_t^Y)euRB$-5-CaR=Cf?pY5M$%l`eh@W-vja^n`$Dm#C{U&4kan(WYn z8znZ8vowlavRk~@LG$VKd{wGxmy2@MbX95+vVpvLn+*s2@G1YzxAE5JQFH08rrZUQ zMqlk}s%636TT>fqJ;;CTa$!S}TNiVSTJe<_{#@^6Z`7h*Rh%Ze;Dxl)LK5H zux~jTt9v%o{T`wc16J*irQe3C;~&tWyi8Oy?Zk|#Ws-(j*1eBdeEONUl5WdVk4Y{B zVzvjAg=elLW;;o8FLV|K6Iwb|6x`C%SWz(d-&RV~DyjtECN}4B)l`#RB<8s&+Lx!f zw|(hAOm0N;UUY9{#rWqmn{9t4qXDxe5|izSxuJP4%=w@!*e)`Vg~|5Rk8h?djz2wC z6lZRT`EZ}K2AsCK>9V-XCwR;59FlWoF)N)K;u?QYmX@nAwYXu9c3^sqY@Seu`TK#G zbutZTS5?Rw8i<=|=L0<*FlP?cSaxF>CY7s*bDO);RWaMA=_AcuB}*de*RiVJWEsqifIFo_LO{Z(jr4fE4Uw>8KTR(ff zhGs%ly{=E7#eS~$M>9*>w{$kP#%c>)r2VyXU7LoGL`h^u|Go00lSYYP^`-v%znTgA z|Az4PIX)+S+!D6oc09V9+-Bja$b)S<%BL!VQ#;H{-lZaNt7AM_Srre_Q6O8S_0 ztGhNEaMgq9>htXBj}+(GQ=182I|yU+@nM&a*+qI5PZz^|HfYyuCN%tz4R}}xcZDIj z*K`$MyWvqGjYnm{d?Aeo`efC7fA`OVr}{-WwIa?qp*gm;B2Fd=gV8^c+}+^RpTwMn zi`f0(&*BCTVjtr??G4<1Kgp-LZ;iF&7x=BJb-%=~G|c07N;&t>=)%9C8~>(%{|(*v zSNse9sJ~8hYUT;r7wOz)f4_wDANUV!0`yx8S`X>v*;NrN=2#+-&T46{A~=~N>s;5l z^!(!Dt(kGUL3!~ULGjGfL%~x*n3I@XI}lt_3gQ0stYDDL!H#<=$kHSAfT~%?(_O*C z3d~@uf=2g7MuWthxutfEQl`fowhuHtkeiXUPK5$>3b;(x>`X;dzLC7nWy*^nkJH`m&=X5DC9f(C+M_b zdQ`QhK7FDhcudNxt%{gzKi4(Q@r^)^1(##?BQ;%tIqOx#tafWOY5UW%xZ9UnA65i? z6=0(x=0T#s7d3W;%7MpQ&bU=u`QKs8;u=+jzzHU(4{&w_2`c9j3g0WVf*Ie z#l^=r&voru#4d<=dWN|!oaEGcPMr0rr0Sc4>w99>2RWa1+?gPwDOXh|?0EXUn5P{f zWN(St=&qyn*1ni^4)3kr5UiOe>|$@qIFnVFP6zVK2NtHiA>gqm2&z`ky``bYMCsLJm3e-= zK`uOJ3xe$`Oq>qY=NeG@cm>WfQ5xq8g5?TKPc8&cu}UUE`liT009+~xZU*{EX#nZ7 z0a}KcnkRsn3Q8LH!3n-S#G-VjBhdNEbU@Fnvc<2C2ADn<2<8K{^ki*r5*}o-gcbex zSe)hr;$l#TX#yA5f-VLcFiDtRpz_-v;8_0_VY6^z}>K_Kz<*^|eCu93^jfjGfs zmp-KR*HmBNjhr|ee1WqtXP*_sJUdH2(RlYbm6iGQc=vA827fbvsW~w857?4uF`Vit z?UN)FwTZiJ?n!GXAoW%oz6^Pk+iPT9TskM~G99@2*OK-*|HX-Z%H1a?mV5glXYFqM zfuv~TY+=U09^zn&dsk$8j|R@mRl$=zU7+PxIladf*%*_C&9aE|obLueOlQ}Nf#3>< z&(#>;S{yHH25Dz*u~VI(FO&rfWv;<*boo4h7DK-^Kuc>Nn>{6p7D|HiWpLeLEy*=r ztd_*A#{*68h5IU^sp2*%HArI@@SyueF}D&`V2XpPm5bxJT9B5Fv!K0^wCMq$hQ+*? z?G;|QUHL@g*8|}AE6vMWh2uWDAHc+Tx52((gELiUQs&EcX0S59FU|?-p>850>t$e> z8AFoG2b!cqEHgB<=e3GBiSArZoLj24KCLQsi0Nc@$Rwt6#CAAH1XVef>jz?wX|y!% z;-NSi7tkGu>(AZZ4m6c6h7Q$d&R{SnSgQald4*DgQ#rw-3UECy&P@)fewr<5tH>*j zk3oA*aEgj>UYt&C&N{n+wu>oG@Jwgn*YoNwhpV38jD89_12z8y0HI{r)oJ^!qL^TW zmW_h-SfF?Astp;zje_8ueydJwl{J>nw0ZnG=*O*NfidkfCEyCZg_LilB{rF!Y%Reg z>E8V0IDHNHrkH0#1r{GL0x><1#~xbxZ(ceX%YD%FYVVtb?1#>84$!^LZtz1_d|&xT z+hSTo$xCXP3+w5IA~+;u5*DKb9T82$uT-=AmFks*Tv};A$7iH|VdCI5w6vW`FXK7f z#Hp*xoEPB*+_urH3k*=f7ToqTH&;t?Z2jz#tYHUkZ1mb{L1LM1EXXpQ{Ri)4^YWQL z%si}%oa~%f$jRry7;sl)UZ+i${hYMqPAav$xl5C2_ws?5)e}`s_h7Emi>7ZoCysw5 zUIorp=#6_w$3b$Xo?rkg^^LQH>W=^?#7}n#rv28TV1hynP)qGB!--8ZkRWJR zDQ|SMqYQJJhLyXdL1oyn$(;ybj?ZTWLn@o73e##htv7?LU@@RW;W?4{3e5TJt{P>1 ze0D~p4`_Rs(Pbtdu|b&!`nED+w%X|(e5^ypFq9($>>vYs+)VsL_Lbl~eIne%lqphO2{)2PzLsSqu$poR-lDx&f zQ22ICEW4S~>0>Ay%1Dc;Z;4JzKyS3Gv;FZj<7 zI9z{v*6epX^1}hlyS3w|AN|p`n9&ixRrBXRYtA(i%ty{cHh#kX-}r%Pl)qk9_fH?k zPCg0NrxW`)7Q3*p@u*KHyl1)4vB7!G$SNmYLmD-@UJ~=Dn-iRSCBYJ>!04vqrB@*y z#W@r%a=~Jg`2p=J#hI!&H~MMbT0cdf#FaptjV|h>XLJ=~wkmEPy4TC%-cQ8ul*L`| zWTlwpZl=Ilsd8|Z#VjtA#jJKz!PG#Hb@#T&MW(uaME3gjiY5!&)@6{+sv1B|>^3p5 zJwQumAkxVIDEFkuGas1s#VoazbnbeR{-XPeBbeLQ978|0RZU?bA0C}oQbnO|%JN(} z{HyGbA4t;ZkxRPjdKTLY#QhU5Ha@PPX}L3_G)HN8H0BNWEgi&g|L0A)VNt8KIl#>q{_Ix!X2zf2}O; z>ivl}<-8wwa41gjU_hO8x*zRXd@RC@dl@m_In^xOtKW;cYCUse54Px}Vi#~`NwL^P5Rp7y4h_r`#(^X(FlH_gAFl%iC9N%G= z*1Naf>4asdXc>kfRy^s7OYw2g|nN0`Bq$XCQlVU`5NS6Mizq+J;v^5|q zQ^Q~I4a~@NfDO1Ko?NcruOvXIs`cvyi-9;-fK3)lfNo7(fiQ^5^X=owIrCYBg zF4q_`aAYA_jp8(hsvym7%R&-17-Xmda@jfyr!^E~FhEAbB?imLXpqEU2^ka^VdEnM z#(oYKwSdur6)YwxD2Q21@(@qVLXs!tSs)skerwXQbj)$_R#)3|8SJpOIEL z>@D7%Nj}TK!AU)0h*T>X7|ihap-rL`mutMC7la+1;|=|l`8_U)H?+Y^UmW`8gZK+J z(}#_9HGdTSuWey8g5Mmw5%Y?UT{tx?_@!F6ti$q~XRAi{(vAw@Q0Ax*4sVVM;gIL3 z5NznEP{FWA!3z!s9>BiP868et*?8~HYj`Wtx}Mg)#Y!w%>}Ka#}`NaE-oV28Oe=i77GK}pQk@F8~KiwS1( zBs&-LxUImP!Lh#4)J;#!=3tTQ%srPDvtoj2pJOh?ELaa)%d{E~EPW?tV}LeS6HC7o z<6o%gclpU*#eI+jzq0Z9Z&Xh&12?}B_j(M}s84Q)$&RX`9b5aWm}g22h16fgT#J>d zkuQ64Z2M{YQYw`flR2fd!9%{dTer@3lyyvXDuM7^AdY|gWP#0}jWKbyak*}PyED&Q z%bdy+6Z)%S*86h2>!%%u5cOtykUU_2%(^))@TFzW-3J%!NA`&lPv&D;cHonaEGu0i zMJ#)fOtDDq!fcOF7eH(mXn)nDQQi1%{Je5A-v6I><;JuAu3BMzK7Y#p)Vu9ii~dGq z&yGU!ID7`@8+^lc6lH87-_plia?tC4E6!??@ABl9xPGrXOg{KdX_u-n$@OhrfT_@t z@s*hMq^_=CSniB!e50^h9jAD&qH(7R!w-$do3& z>$USk{A$&#m4K)&8+ZMCk zu7<$T@5G(g1mvbGvn9?YjmB8`R-9mvc&3qcifkWosrKkY4X$~AKj@3v#CF=cKD9P{ z6Jnv8T{MU0U+ee5Qhh#NmqkZ@POlKvvsyz@MXnbnSyI6ad-6mvUKvX`S(TGjlO9wyeI z4_%xsDY0rcvMgq)hm(UqOghf?)8XO_Z%xE3c5_PM$c-3p8mB+$yp0-fbJiD+*7$R_ z^mF&#Z~7~sb%*BPfsGyJSiRuO4xNmX52~`m&tBhpMRsVOne+qMpEmo;U<22U4+VI&&t;#R5-_S|E0_7xc-&? zHNC5Ac28oCdjgpA9#3NE%<6N|`VzMfC6g9jZal}!6Y-A3mXQ^!4 zAHT`=GngyKTib)%y(pqL9lIfnrp4)bT_5FiF18JscUz0 zMRizVteY>+(wP{EXj2=Er?QT;8qP354?iv{_$Mqq_7X!FP8>2mtVpF$)wszr14&fq z>1>Uh*^D3a2UVCCcQdAIy3A=fsj{3nDHSo^U@ewsjlP)FW*{UVbkGqn@;A?@GoNv~ zDf$g|z-Tndw(Hp)E#rWC^PPdw__#aa4vbf9_K;Z^jqXcvAa42^=7$RmpM$}(Kyb1c z?I;5$8T|l*Rpt|Bn46waBIS^n)o@22X&`im5A=sSSk*`wre}-SC;}s4RSYe>!00*M zQ2_5mFV1kjdjuTaLAD2mn%g@(mP-K94&yR~!I`jA-1Fg%yp3xKIyhy1!ie-X21{Z)2RZJc`NJM=40ZcHL<0Fm7Un+S6R7EO)u-? zt1;oxqy2==!}%I*UupBU& zU+xQ;eQ`1uVq`CO65)%V$a7e9oV}{U;_BIsgHOxVpO&kgAB5jlh20MPUOf>1SxGGj z#3Z&L7Y|7;7_Rr<3cr2lChorteq(2rUWeaY!x+=isPMbbVB2swa@Z>T?!k125DYsWC>2K3G0SnHBVc7PFabd{{Z zZw{t)N%<@*7SL+=TY_=VR$!9!jLZ#G>p-X|T*hbaoXi4AqQ`6%7;eO31|r|BiZh#J z7|!)d9e5S0*^YaRTIbH7zLQlClQigFPH??^6qQp|nAXKZ!L?GoF+}A%bZ1}mtV>b@ zDw{1=_Y`%{QCP<5fG3p%*NU$Jvsq&>Vv>PMSBr0e^CVpf7OR4*g@z{+en1DxaFdI2 zm8%@lgNz<|7f+lh;3!^~$#}#!Y6n^*@&$w?v?CkxCu}_Ficb{gcm~Se| z@8d}HL+5^EEq%MfOqvW5X#6WW@%x5fC;n9lHMpN@^*=6R2Y}1GHo;qvJAl)>)?3#9 z=?)lab0LaX(9)ZcOmF?~8-QMc>CIH-Sf&?X!SLwU!JQwPHFBf%_GVN$Cw?9Qd4@1& z0uk=c^aZa0eVKa;+`|lZjhc3ed$=0fS9%TJNym{Xb5Dax9Vy|xx~I2ckHR{0dueUG zrPpx1%sp&DZ$k?d*hz_0YdJgdD7x2fy^r^2*7VjJm2a>M`?L%D02WM!6c!9HuPNeY z&8?uNFC*L){e4|0=hN(4>nrR3jZZT|{)RWhJD(&vPJqNhD?%nt|K&%{2`1GvT;Jx&;Jj8j}EkJED&5a z&WFK1J5K-h)!+4qkFd30)X0SD;X6^V4~aD!!+oN1dw2w$@ra=OpOi$JZHlJiUv`|k z{&aD9dGYD>a~;b5HhiDq)x(E0ro|^#_QhG5u$JQf)r^?cekBi@rumI7bsDs@Wy5#q zBlj|7Pr&pGCEK9aP4GfY&~FXFs~a};Q5Beu;#dv^(;Ci`$ks(}HlcRjsazQUk`rf2 zB}-(KV315s9HqhUToc1YisNfy#%a&ZYeHhI9WVghFo>M#h%t8{W*!Dh4ckjFWS6Mz zU*|R{=@>0T4q}No2kU{Njn^NlX3w5M88u)X2 zOU&(uO!rj+Ior19V?ewX+r&FPb$5*n8_?I zrc*tiY^a}XsBqrErQe1bn;C5Q8)f@pYF4`Z+8?os;fdV;Ka5L<(vn$xy67{IF2W~f zWgSmc;KWAenc2}URZV+huEd$-F(}m0svx+M2QC-tXhjMdu1dM9g&JNlX>m>&enPzR zl$8_XUWi+spgVwjYw>P7Da^bO#yoQQrf`-zV4&PL7S48UE?T6$5YMvWWX~sP>Rk84 zLK=D9x=O%k-eTA~ovwV~X}C>H+h%AueY8SMdt3r8=WLzCG=l8Y5JMwuwOC6GYe3-z z#pMePNFAY91D;3dRTq6iuOFQCyuRnd=qs;Zr5W2FSxeuhRWbiOF{?EsHvbZBieHwZ zhkKYFms^omMI7TY{ug!u{(n@fdS1sT^1M840H+;sSKAX$>&Wy$z3S>seE!i>RyE4a#@CK$}8MEmxiW z#xv^d&u)x=TFCySguP7(`<-TE_=BoqN0}fZHH-?_|G^(LKLe8y|Bp=$i()n|`C=~9 zfKpS#isEi`;e1)#33RDxB~-+UVm7;~p#6rvCWbp}(?_2>1GtkSQvpoZhF{mrbYBTf zo~=8g*<^|5&@R4Fia?N}?u-@LnPo{Zvt!{*XPCYqm9flWI>TgYojo8`tic^7nNp$< z;vD^(a=@e)LYya<%2`BHge%zNC&S~T`X<8qqU)vn5Z_9I>4x^O#p|6Jm`*Ym**PX@ z-a7ZJDALe;%1SVk?1avBzXo&Ly2o1ECIY*!rm^t}byk7%3b?SpU z5ALYXLwVXoU(7{HKg~$r(5^l*P3f(+#P^ZD*(2{Sc`F#&S*F$1Yzi7m>Oacr02t|X ze@~XO2A%GC9nrq7Vc6FZa=mT|D@uk*w?d3k#tOB7DZNBZ2UEGKUZGquso|LUupBB| zwL0IN6@FdAny>5N^1O~E_D(+8tbWqF{s|#|T0gzZQ9p6b1g?CAK0&zmA!+r9wo%Ox&JhGnvHL}hwHgysGM9JDR-)P4^J zq`u4c=jq>CoO>J5^*3q%*Q+~j@J66>nZJ*cdAg64mFN-pcwXcd~`u6xN z+E+7uyKHxRFIl-i%%HL_0AGUU{yw#qAluwNjcU`rwH$g!hxY5?{tWp4A%JM42?&88 z12aD8ldExDa)Tx8S@!PSV43bJJQw&ZR~c}4E-2WMNB^cE zuLCmAVouBrj#8GG`nCWw#zeHYs~n`ZNT&0!7%+J9tRA3bc(z#LV6jD?W5^askYmp9 z3b$Pyo?)58Gc0m=Qbo9}u%so0B`ql|X-Q#8OA1R`QdrWG!jhI0mb9d>q$P!=@fs|R zAMl0`f$>A_gq*J9DJUHP<4OrwWjfJu#w8C{kkxc>hW)z-j58#8uv~u>;iLIbC=k6_ z&HVde5TKbYjOzNxT1qCZ#?fm>eS`${k2?{FTs|D#L<=H;^A{$o>(5{h&ZvKj>B3r0 z`Xbl&IIKs!ir|`N2Opvv+w49E^+3)ST((IcxtKkzRKLC1yx@Xn=035V6HF=R@A2(@ zLCWUk-r5t4Yg+EE&0R5pW&iEmAX&#*^$F@&+ZGd?)^Xjw`kfg66lt+c+se0M{F9oH zyLEY!Bzl^HJGuDRkfRdGg>S@V-bRDI^^|iK%HSwK_ctk=ta8Awi}RTK@2raxurSBa z>)M~1I6Sa^ZZnu5|MH$0mf!!K{0C_PopOJTWNk%)oN)H{YjyDbrM}&tslxmEk(`k8 zSRVOnI9o6nAm&!mHZ^Z1oE$0uk>d9jeOQ1Sul?QF6wF+e`v5 zN|)Slo8ic3iuLWXm_SLW!~G>O0Rw%bZRRU2*Eea{x6Z73HBWHSdaCMXUU12Jr|RaR zxL4|@=ES*LtCq@ebcuZdQ$n%z+i&}`udb@P|3J(l!BI=H};pAF3}lG(fAu6!}~VhuN45_8vW=##RTIYy^M^#%5eUfZrHk5Fy1 zD!5U5LM}vZ)E=J$xtaq;%VI`haOHq2)fI8(W7ulK$ZDKE^Q~&;@BPR9|MJ!`3zAJA z$87WbeHs4R)WIx?nEuFvKw}<*bNQ48_w9X zB;Bnx6hGWCS!_MjEN~L0w>g0sH4*w0na7c7CagF@Aq}>w z)Wi`Qd7Lvd6Q?~oM5Vm6aONEfEjS&D>kUUDg{T~Cs0|i zVjn419f-MFzr?d7E4&h2Aq1^MaWB;x5;M$G6~2{ozNj7riv$;THb*X6c72l#1ZSA>Ts%n1w<^ zG<3%FYj-OU$5THRqT(sO-Tj+Yas6q0fM9}mb-4fWS!C@hfrnIAA$C-RI;4I8}mY-VHDg`*wDqA`Azt<~M+d33nA+K2jW?dp(+7Yy3(~sa3Z|(>}@%E2m6MN_=DzO(E@hBK$ zPaj1hK8+(7#0S=hK76DNxT8eE5#lJ1utl0(eAVkKh7~6CR;Fxv2u#>8#q}`IVbJ=P2#L7@Yomg7zSsHf;&}! z2K9jNc~LM|?F%P=FV~NwG z>DV@lB{8eRJ9Y?~x%Lc81#z;I?jDPIF-v_}mU3d!$pe-S#B7gqReUTf=IQY~OMBu3 zR}%#mGfXC0WQl1em?;=z+v0dLF&*~biCG(|Q24F5cRO_SzZ54o9E!Hjsfh8k%u+R7f zFs}FP^Y&hGFWJHRv~McnWT)KkDXfaQ+rGtamDQ1#aB+Gjw%Md_TH`nH{l6@YH8f+S z{jY9aQ|FYsFo_cfa0b8ys^qh=99-Jyvv6A%W$X|w!=3>9XlYv#8O!4svrdD{(CsT# z!I%d#>NA;B&bn1#tUyUcgiF$$>w(5_n=^hO!jNz zeFt-g;*8;H&awgzdpR*^JxTvv7w!edIUzg!kYK=J+~X74S6~ICTJK_4_F1MMn_g{kHzs%_*C0 z&+n^H)>O>-Ww2P<%KtZ$jXavz>$^vZ-A1O zD=Y93XtHwBgC7AXD<&1$5ty=K#DDzwX6s%*ezkYq`w_IRslE}kLsilk z--j81p<4t7^c}MrKgR5P7;S~`YP1=>(b0COcGb2yLj0h<9gU>u_-MpM+u^{BHpAf? zZH9w9+O&#RxEZQh;g(gh!VOiiqO(@^ZE^c;e?pA17f{uzRv$I1a3fT#!mUWJ3O8#I zRND@NoFigJ`Uw*(0*C?)NW$6s?QBW+kCz#Ckzk+FKjr9fcA^vfn8U zkM%Q*_JvsjiK?$4v#*d*e!R;WIvCDY1T(wzWSzC-hgo3O7hKHJ=XJIqxUf%0*x9^b z>VV#{vpK;8Gm2q$UvQq(d6=aGA&K=cZQX`+7IsN} zTodP}uC7n4i8G-@ToYdlCdl`I)N{dvvOT0;t8qdz45nVY`b3#Cw$y7aozP^1sn_mm zf&^Vo>a`x2AXS%1HQbbu3C%wkdY@^JPI&BX5>o_c@_Yo-2XxV7?m^P8nc!TG4{MqU z91i#Z$t`xC9EOlNZr=r_D}t$Az7NwP7czJSGkvjHd6XK_B`Uw`m;I+5 z-|X@HskQZf*S;k^E3v0dGyXE~FMl?D0ts8cM63E`S&CNXv}p@{ws;QFh`!Fh;tI=u z!h_R#=Hg-6Oq|HkMsw;(mf<*uw8r#2-D9}~Cv`top*dzW7fML=c|TTVV8Q8tGIB?s zuZVju26`g*`!!)%oO>=~4PtA1)>i=IzL*O{fT=*7+(gH&iky2f>f`ZDAUKs#k$c}} zs2K|c&*;k^l*I750`Lodcef^^TL6{<0Vf;%-F|HcbDn{9&XwTyXE(dc45!d~=qam2lUC7##<=D}d?GR^-@b7ocZ7h|z_ByLg+~vbdXFW328$jIIRXj_%Ep zm~Dz5YTDtjs-DdpC3GmDgo$Z3^OTff5)-@yign6buwp0ibS{#InQ!!PH}OuJ_u0x>6+WPFo7>~MJsk)h?Es0gppz2Q$?zAi;}yG4ut48*rT1R!+J!lp z<+E0Q^$tG}lY6qCHn*3{f~T72dE$kbOt*eaZZd=Pu)4gvq{PgPYQD=!e_PDDO|aB? zJ0nhJDnFZliwA<%3e3j!yhX)Ban@%} z1aLRxUaVkIkyL9xrqHI?n1j=GbBkV@It&#X^Kja42M6Nb&}6O_96gx9tv!Y0 z2o?)46TzOi!8kQA0uZ^f2;kN|ixM9uq43?$`mF>v%5rRLaXy`9Yc{&s8Vg^aB|VXq zOMUcW=M5~kM@U;D<8=BsyPzWGNg{&T5=?rCeZbYQ8p4)m1p2=$i)ai zGcar8))|Yt&|iWXP!BO4`z=!wDo9#X`wlIM`yvf+_C3srwd!kNX2u!L^9j%13*SEB z+0XAk?Yqy>5o&hyzbA58J&*rezf$_%Q^(_v*v6z;);IqRJ#PhTa0Vtj7;Q;?FG%BR zkaCCm`r3WO2C^bc2@7=lVwPGtigFb(C#@Ek4P}G5fR0zH2dc~mE-}T%S&MioD*%_P z;s)nJJy3;txR*u7ZSuOcsJ{Nz0Os;IsjDMRaF6SjORXI3A>Qrc*kF!f0MxE5*zLj$ zvUy8wRK+aV?NJtp2}V_>ieNU9ozrtw2i&j8B1Ac;Ng`Cq)g%$L9M&Y(qm~*{c)fG9 zHl2yEkMOF^7%#zb@6AQ>LWA6O?@4V(v0+DxdsiCwV3{{GuI4OiZc$}E&|TXzN6oEa z4>d4mK%Apy)*ydIOe-obQfd*ggkzoJKTNe3xZ}3&P(7~%r|)#)kkVO|HYj?!eMHft z){@M~n#;TtL^_As?1DuNHY*~8com=X9fc1VrtbS7qOL+ z;EtN*E*Ax-)Ew9A(@&^PbH%#MZTE;pF4|#IQvvk*hhn@Qo$Dl4=>#9s(E4;%aJfWB zh0#4RfhFN+-KNh{EYM-ZRjr5n>LOo3tTzzx2Nw6m_+1r_xcRC$mypToysrx8FL9RK zI4kQRPUB8hoI$kh3euc!f7a@Y%mbaf;^yLNs~f9|dk*Nxh;vE>x2ocH0*OqRg}h}& zByg)hZdaUVJjC@xaur}{R~!u~OjZO8hP<__@ihjm6~XZ;a5AGt_gF=3e^}a!;%~OA zf~RU?$cnR~*L_qG43Q)yE6yF2Twu2K)(Wt-A2!akdKGC|>;PK##och##yA^@o4wRF zurD~HAE(4R6>HLW-)AqGUhkEd)pi;m&9KMbZKui6^e<<{+;5|y(TQE=GujwaOJeu+ z?V>mf=iDOl_1K&vHt>i6-Zm#wRARt)bQF)H3pSChF)K;Wh1-i8A{&dhFZ5^z>(=Sjyf~}V zt(w6)F`L^LCpVi=R64bp5wm$pzrpU+@5Nkm2|FfskAaMfhc-BwAM5+RIP0^+Rpi9n zcNK)Lkva8D83&Q^f0S`F@e(6@PHD=L#3mOyir5#knNZx(m5&0lf-A%w)2bFJ4_R?@ ztva};1EvA+uqV#63Yd~^JkRY_KJgPw{_N(lE9L|YRZGksa%+mL27zEuw-_3+$OtM| zHy2^BSrM$|c<3e!vK7IiZqZHk=oXJ$tsTkSs$n%G-adMbqt`#uIDxkPT-0`f-rPpR z&6zgd|DD?XSHrcTsE4X}y$>rer^qvN$M*B6<;gCIS+h^#x-Oc`>C+n0r}e;9P>bJZ zFc%-`{Wy`$xYxqxO~Y{X9x#WAeM9J#n}^eSX+1B_dYHrHME&JD@hOMNryM45@Jl3B zCnFAVD$8Zj-_?R6E&C%UwVbvx8vwO8yJ%YfpE_M6SK6iL$l+M;cq(6WKbrC~4gJqPR=X7M4ld8dC-7 zLP?zMiM9%y_Nh!sZA6^C(AM=RK~}U!jI2Dan037@=AK(12$nS#h0|A$mall834{W1 z1B+eskT{hCPM39^Gn~F|?5m;7xu=waIq{V z4ug1EaCslNRu;om6wqhn;Xat>-pOeln}HZFnS*Kb0&$jA_K@?t9N2#6mP)Qr{~5@` z4Etqq&Z%sWYZ?6onEq{cvEGPrw@c!96K)w!Y|<+U9%)ZpEy`zWmxucLhOTTB1*0nL zrf0sZYq>YSSLCk{wRQw){Y;#EC1x$5uyluvH~mUp)w;c>I&KL#l@+t#>H_ZUftXyk zPxoQ>NluVrDmv3n+vgk&|7Or9&39Z^Yt;+C(=O98>UCI`X>YRgsHq$GZbfj1s{FCo zLy?6z7i``5ll3;P*P3|GKAwL-9pX7Y%Ic=l& zCw=xez!}(2*$U9odMY&>-#Kyync%joVpjWJ9g%bLRTh)&&b%&ODhY1p0VejSU7CJl zF<-Fk!D(B*K=+cURne}M0$Sn=5{!`5Cfccf{;cs<5hnJy$}4h-<;Z^95Ov@R#H=Jq zn^Ql4caYUPC;~T2((=$fvOhpe8}GXaTq#=ipZdvrnlQjQ+gM>1j7xI7-iG7$>2c2q z-c$z)v^Aa*({lD*c+z=5sZ+R@y+QIeLsgTQno zrdwRkazWgMv1E2HJk}ksr|X}* zUh94q?_O#)A6p43DAQV1}_XEMkUnHCnnHl?*ONy9Kx$omB-cN3~T{i?SyMz~$)bWwqv6 zc?m6-Sph5expZNRML3sjN$-3;x^r_n*diZa{zyN)?|AyL=lQqxz2DpTw`%{f{r|&P zwx(UnzVc6@&!ye^0&Tip_8T>o{2pK8cW)fWsfhix!ub;nj%(1%F4HEb5vNBtO$|48 zfm2lhm1)p}<>9*twyoz-L@)pUd`Ia}`cJ{m|DI(sIm?`>CqLl0eUjJoLlXxk-%Yilo7_tu@KZ zUVTfFcu?S`!ErB*)M2fT3%)FuQ>L5UnimY_>z5tac*y3EE0g}%+L{VX>*O0!eFlw( zQLvpCoQ}@RY5NOg-K&e<)~|J$!SPpVX5(q-;T>@Y8@97Ms@~L|z~9>5-Vyh7?R-A- zjHLw(YxvW94xL7esxAKs&HTOJ!2Z;_kW$l9aDEX|y?haFGvi@<4VpMdV2BD=s4OLn zrH_ha&N2>AO{2dWhMw$lTVF?wKG~~nYL@q(x~cIE_F(FsvB&B+XayL1sg=I@mu<+V z&1@p5U3G9*SB;}KjqU16^lO_w&{Gau9UkGsnY$gYgu>BX!L0y3+&NjHnI&vhR?NnU zkmken#>p|tR@vbD%k`~-I1iGw&F*r_T@e2Q>(QCVxR=K9yk2v2FuLYoUa(1_Io}pU zjXM-3XSV(O!yBV{LCzj%d#@nIpR$5CdoAis_THto|jpxb*unT(~t;47A+nt+KRbUr(z^3O-#{L#aPh zCpUYP{n!NH-S>TJ-MjZ$bcXgFr|*#^F%e?G&y-mVSgQ^FwQ$HcnvQH4xwZPh{`&Rd z{BhUt>5YuuuXq3Z5%e9$hSjTS;IiLL8o^$d{e&^J!oWRhaDAj&0hPCPEvc%uhd2IG zQS*3&iA6e^?c;z<+0V5ihEA?)MI@D`P4_K-Z>?)Z!bfiU*`N2!9 z>;r>af&nho4@@5MZh`C*?@kNo-XEuYKZQ+qywcj0G`nm5n< zu~G5v`#yrc$kRP-{9K3yo;j223wC8GLr5kErkxUG{y zwV2q){eFY_BX|McG6;UI?A-^*kDc*R^j-96;a?m6bd-Xlaerf(p0Lq2%fHcKm{8lR zruq5{JuK%o)Wq>~N-c9D{-U48d|5E>r&|_1kvY0SxpT76W^)~3tO&R5nUy37aUQq9VD@WE5^lzG8{+29 z(cj;~xG0=mmhNn`e7Bl&$3jQ!a8%^tf)@8id={J#4> z`j&sDq#8EX=wFnGqrK)C7WwG^_+R?!Gi;q{*FJ~y@A!A*@C}zv1DM&?k}X$ASMw;` zsG{Y#CvvfD_mMAswJIhU3?hM&Eo`<`?6!;Ubh;|eeEKZcJk0ijpT=5Q{Iq$rR^_EA zCcBM@xkksSxv~_{GU7{pmm?dl&9mddO*iZ?a?d7Z@|X%WI$>8UVfJ3u{Auf5dZOWZ zWy5Zi=#kb1(L>*d({aNqi+M71SbH`0VbXMoeb()T?@ktnN};H4RkZPaDE#*iHWK+h zH~;scaHIJxWsM(YYncL-q(ju3tg~38K{fvU;XTn&jKpMJN+4GNvWH@rcw7so7+4ZN zeYYs?+#u+j-K&f+rz;G!TnPjx1C}ZfJS#&(4nO>fgtBmc8w%ST3TT2w@1hMb7jF@k0U)k%cOP*M!mbqp{tpq zIIAaHmFRxo60?%ro(!$cPxTmS5${hH__i88)R=nPwccO$5w`YMYA64t`m)=I=_s*T z6hCd_bVx|{+mKer9>GXNOI%Tp$Nm+Z4Q3NQke1xy?bD2!!5kxNPZi-}^kJ|oX4WMQ zj_F$872H&UfQw~`jiIkEb#tR6IIrwb>fKU?8CldQYh@Qy8AI0?gnh9tDuRO*Pmf4? zD`JAUM*HY_1t3=u*Z}E9Nnib#qD7GtMguPY9WuMWWU~%KLEs{PyfYUm1Ghn=5ttPf$XuTrlX``@+weoPkKAn6RmnL8qB4b*j|;h0{s zgB&?#rYt5|JA^Ss)K}s)NfD-NvwWnU5}fu~uO!ZmT21po+RU#O#SOYuc41pE!#TET zUE5(g+$vlo&aUq;6)rP^%7h~wYsV6Kn3eQEI*AD&MZvGIY%DAQ+*fNAx46Rmm5&WNnLW#E3GsqOP{ zAB)VCpqkAR*)LkU0tq<&VpM1PJa|eD^pGJuf#9Z+y11Jnr;ETqASN4ELcdXwV4{#x z68AAm@Gv8o*J#g<;FX|Db*Y)1kifRZT^CtA1hpZv>FUDL$*MAQV6v>boR60KB3_dG z9pr|;N1Bb6_CVzJ0dSAGG~1MIW4bCBJkZS8xIl@!CbGKED9AvttUMgURl$Xh4Zx84yF>FzT;(J!9+74UtUvn?6Xm*|P zt^S>q24~(Vh`V%_P%!8TvUy;GiArAE{PPFGia(?IzYl|I&2Q&N*QfQM9?rw;ERHe; zK+qobTO|^UD67A$g+MUjw>?8cfc9ZdT=vuE%87lZrAgi;Z)ulu-wbTz#AHX5@#aK! zUrhFdGTyXr?lHicBixQv4sGV{!ubNf)#q29i}`=;y$@&`S@tIS-6~rdb^AB!(Trz2 z3=IK6AP_JF0)apv zki}py7z_qOb_1UAw!78sv=b$YWy_XSQc36Wom(Zzj?W^;Ss(bD^ z=brPO=fjHTI=m{*Fq3Pr7RDTXC)E)whIu>n>eE|tEPHpTr)TJHw%owp7IP(-xE}?G*sPom2-4*JR3Ssl40(94Y z??wf!k@3aF@dz&!vQ4gYms#j`dq>PdqyQ6Huy>Rb^OQDS{HeX)Z853K#Jf$g#*rW^ zt(gbO}#If_$j~oL&yGVTV%(+^~Qv>{kB?+MVtBUp4{XxPuY5|2{Xu#y@vMK4$RqHPE1af z1l-vY+|d=C)RrKnc=V?>1>MvRFuExiRqFAk;IT>xmzdHySEWQ>M$o6!WJWNl)O)b!^S}>s0_1A){3g(w|CUE+VxY-yc%1OTOB|=!GGUD7Ih(W-a#jUq` z(5z*7V*0w@CY{UZv&n;=VD>dIYqyGmGa2BF%`q$rW;4L7-Fi1H^20fdqTW!SF5C5E zTUD6Y)K=0=F$FrPPjBO}F}|tx+di&#aKo|5mSMonZc0nm1%}x_c_5JyB($5aWdzrh zx|tE&%r|wgHxB&f4gI}?uzADosI_~0wwB2nMy%Mll@IyL1@_Q1s(&*FlY&Q~zZ^v7 zz85E*V2PD=F?X2C^Ql&>-Vw*Yw!Rb8+uoHHe-I~9yTLY*o(JgHO63C%lY|C*mNY8_ zoFX%;OE8^l#en09@h%iu4$TWVB{AN47EW6!1)MU$ns-=Ajdj7;gG75dw+++&+z&W3 z()zP7?L@26W2)r5g^4d$$yUfmH-ljP=moywGwZ?TLM+&9<=%xh7HOVY*Nn#QHg)5!+v=#~s*^h;{&r|X zI+$@Q^VI7`j=*CXhf zFEs9YYj@EnV4}-=cCpwvF_8SI4_w)EK}D^s3i2!pxZ8L=)+#5SWv>t1-D%vzg67$Z znCIF+JCMR`?1(49`dY~)o~{rPk{O&EP&kK^|)%<0UVMjk^M z%<0VAMqY`|w$mAf%n#4?7*u&Wv)y=Hkq)}knVm*n0a^0$jl4WpB2H%rb6C6HE(=4S z&d~o{&a9bdE0ocLqX5%%*t|n3u!n#vvESm&&IP@IyCXY0onY| zVF|nDx0F}>BwK6UN1x%h8Z2NJ&lvm|^7o=q*?MJlH}+nNHmO!SGML+Dxw23sXA_|) z&L%<;oJ}-}-fSWixn3x8vx!jDjuE1gR#`T&N5ozy>~UhhXw4=A&dQ*yBJfE)&+u3M zsF$0ljzqH@49kZG8+8Zk(f*_UIeI_-g~x|Fle(%b5KOSCE^wm?^p{6O9qK;NUmQW# z3r*)QhT}yO!{#pBKPWsvm)+}oOVnB1Y4{L5|PV4qx<&$i!Rg|sw<3Hm6 z(vRIbu8!9*Kgs$%{;bOQUxF3h|3g3jrxw!;eI~(7xTU#~7S{NEbd|8qOv?*i?8Rcu zH_IfTB6IMKBPuwxnq&|bGb`(E+=gj77*^%l;o*3rf4H{Ml%se* zTzw5Lw*P*9#;)0--rOPu2yb__SVR71kC(yNRo=+nEn@bgCnmEGG+k z2|Lz!PPw5MEui81I7hRBodx&H^X6=Sg0sTsTKd>RA+vZWWxvha2)*BSi)G_kN}jRL zzs2WpR`3Ss%rgqGOyA&Owg7i9FBg4m!tH!0QbcQ)Cz9@{(C;{ytrB0Gkp2@@EvL2( z)A7)k3Y@F{r7DcOSQTQJ=6EorXUk=g44oxCJfTVtY5PNuJ0eRW(-lOXiufIjPb(ym zDM|$`-6A>0KNx_0=9RY|o~(bDCMJgo8w#b)#g#pn7fz+?M>vM?7ns#4IV;ZcPT zJT{{bye%z~>8S99xR@@$O>D@Z&o?EWhdF+u3@ym@5vu44e*WjQ0r258Uoab8N(Kj*eHKwjT~w2tTFg!wh?b{t>x zdYPSRE~fQux+1dLW{2&4``)dITxWQ1A&E3!(MZ3@h8B9=> zFoo}ub8bFfh7+GZ$B~fXbapN;OYsUK@g>QhvtnIf+=Z&Na#b%5R_}*J?T5v4H4)L!akZ}G zWRtE+LwD;4daEPo?LS_&{_MHz6P`~P&BaJ9!X$+u;4I=7R-%vB#uAURZu9!z;|(Df z49fT;9SIq@ZcmS!VP;$6=8|7wD(2LAS3!c}lc`;C(o^vrR`!cr&2EX4y{hHDP5){} z%xa&eeU1ACk&S{Fe_Rm+ZEuPgr3@aOFGTN>!Y0jt^S*9B7nw?d>3&+y&&`NjNul*hpyIlo$mJAThlHBAHT>US zG>jHdlKWyep!y`^O>5-pqYRoqUFcUn(vcS%`trUUgfBzd;6mqTiU0LeCWWR z@mI7X7U=9&bFcqp;pe}g6Msb84@BfUU!euV$>i`lOeb1E@9PUV?Oz78k7M!4`K8CV zF2r+iBTpIp&0{Le1S^TNIFTrzCH7dO!maDp#MkrUrtgoPt{~EJJ#8b#?LOSdij!W- zY3RAVQWZ$OWR!Whx$$e*7_2qtr8sk_ZM_mV+g0DJ$g!1sSNqS6KUigi-I;3bKoPTW z#)BKXaErRvVdT<@a*d1r?*sbVL;wD&=|l4?H1pGJ!O_gNeIk8F zrOcwQe5N5(VF9x*@E3fp2F@t5yT-&7vaPRg&(oOYO&WXTK3=j%F1W*TjsF@Ya}cM1)&2^K1CJry0;| zVkSroe=Sa?lXrDx*sb2tR9&4ZYZ^FA9H98{TtPb6fY5 zdL`*5fW(%5>H7Fb^~!s$_LExlkA6;z>p>8~fiLAz3Xl~x%@>Ni;wLE>f2&?93*gkz z08dAdx)821^!eJ@^UnjgItyCIWm0?g9~3M_;bh*zZR_dj*nx?SarMJ(AAPu57I%GS zxU&SOZDFQDH*oJG<^tbORN%HP(2y#?bUoRWV^6x!wxFg}5oRc#5hp)7Ulq($m~`Ua zDu|n1T1w@VQ-+B=Dv7gt^NbHS(tk5u2>1*aFslRfj}32l%4D_iGI8K?Fvs&H#<99Q-NR@(w2J?OY1)DmX4VcHh#PgE5#&#Xss zjxkyhv*Lb3lAxQDUz1v|2>QN;K^w7*TvA;X!Ri_eardyahBbix>C+^Lc+`cjVO)Yq zwc%^lgi{!}uN9)xc>sI^>V%xyDFSw@&c{833F(=D-$1Sf!xD{URZdov<=z24rIP1faJj}&a z2J9(1-%LT=^v(W=52x?uYDvuFh~?+RO)V{D3Sy>QMeLiYiZef!&xpwn6;Z*l8IgrH zoP4?|=1Erp6~?D5v{m5r-uHLJJnG#gXz$EItOU37>f?>FxGN9G+H-ucS7JMGJ9~QC z-X0n%k$vTxkD_!~;-vX4z2*0(T zApFL%?+U+@pMdZSq~MEC23qmB@*)(4q2S!8iNsK-Zq!7hSj^(djhcw8N#j>_Ss4oL z%dhIfG7#>m$m_bWtO9+Mhp+d@N}VY(4WcrbPd4kKGMIPna;6AHr44d3s~30cl9H3z zW1YSAwdaXpX@8*#(tQnn0!Y~ls z#G9d`jF>Zoz2k=(T^xT#M-b}9a5o0T@xKjz<4PruVywWQ0sv!P=L?F$ZMYqSU(QyR z+}X*2j%~Wkq9e1r;>?ajcL`-48B1@8lOBtx)2#bhM$EHru2PyY@3k0jOjjmvZ3rfH zHFB~j(cHt)%RN1pM<3>jf=NY;9QDLm9*B5wA_L2wVAQ5HdjxzL&B2TkKG*A3*vJSy z&>P)E>f2x(K!i(;suHHVHetHb)M6MbU?S_(a+q=6=lSBUN9Z6^6uYt4dWJKioH?Hm zc_o-rojb(H^VLc2pwssS7d<$G*})wUgWT~uVQ|?OlXg9{42nE#&s%&kfZxW|p)9-npd9yfg6 zW4%}0LH}lCS0PW?EduSw6}JS_$Ba*R#rEStT^>9dW~L^>M-x88&P|xk4f_zQu#Y=+ zY76F6DtO!#qUM*y$&I)>FeAC(-SENp$UGk?zzjUMZ&4Zg%4HvnTHQpv1Cbc7Un)@d0!GD85u`uArx5yb<>Hw5FlN-)16n5RTF zaesp#fePC@_(BUBlz^ERf*Iv)yb!Fb#OsuAKRbU@8Ml z5j$SvL*lf52QvWiwEVaxYz_K?lNsQouXyaN)~baeGB7Ry z*{u)9RBSvFE34wHuqy81jBNWBHe;=S?=_BE%UNP?pEPSr`}QDhumk^&P8`QywV0q? zFzE1fs#pR>3xd(oK25O<)9*9lub-esjjEy#b27UtCfmhC z+eTfHfvu}Kwytu3vdGZ2Vx8ZhD=PmTO))q={Oy{e81V1;vPVs{p=I6yYGSyD(D)5{ z;wn2uuf~oG`Z81%>$|AeTP;0M8GFmYX=Rw+{i@>$KiKKRoCxfIP=#Dqi(!4Q3c1g^ zuo|SZG~jx0+<~RNI^@IA!JeMM(T7Jmq-mCh+jyNL9kLdGOdFmSJnizo;3F$I*#@$Di>>w5!~<*)P;9e`hWD&re>xyOa`1E#19(Qcd{y_{y$0E8}rB;oBy2 zTjJy<+th?Vzn&4Ze!gf|Xf>Fa*{EM$2Nl zVQ__*va$LO6U+NzuE0>};fXb{RcJn8IU*QUMsGIoZ~9^gqPI>pw}C&z5*-9P@&)G` z_~%*vBjjtb42tpgiq<32J$fY{=9G&5lfJ6XdaY$&aFf-cbh=;%@z$%~Q$3V$RF8KC(EPpb+DJFlWNbvpJTVlL(98I))jdvl>^$mAs zmoVYG1cP)RP}RM>!vwR)qoQD#w{0R%N`fofS|Dncb?&wx*d8%g@>Rj|_K4;b9~jd3 zz2JDo<}5Sb@kcjjDoNZ`aPSY0k^Dr1MfRv%&Dc5$#Hqarp?fcM`q9m2U4r4tGrz4v z(C!Nzg^k>h{sPW2mO1`e29@=9GG##*OP^`Yos9~x#@ai|VVK7A3b0fbtg;>&dP{=2 z3RwRGy)1u*FH4%&jt3>dms-=vW#P5E72r-uOh!whQDMVW1-Qj2R%@Kx_XO7~z;!RE ziDqJXPlz3<4)=UaYn==g1(zzorJ`U+IkT^b)IwO;PXCn{-_}UFwh@-#ST4~0H-hnk zU|Fjsb>{^%Ut@Vex7IzmRj|mu`GVknu3$hpk9IXh4p(;tkF2ZJ+f^_U4DO2Y ztjl$DNARSa#FHI0-b=v3*MbFgxSse*a6;Xx6FZCtPr};~OeklCu0l`Cm|;a%z7jdX zq6aMI1PN86r*ndb9`G=y%1nhmgPi90ahFNE>M%XGEx1nS@V4NbjpNxC40*uNb`a}i z+Vb0ivmS7ETTI?6*_XEj-5zjqOK@4;rBAm6?H&-@5sgCuS1e9 z$I!5~PRBpijNDLGS~Hk?KY52FZQH684{}M;vL*P)yGzwHUWv6(cZJm!tnH3>T#>Y0 ztFrr!8#3hYb3)P*t;)_m7i5hax&Y}i)Rk&Ic8}|^cI-QA)Qr14Xo))DzvFfc_~CDc zZpW_T2vm-H&)!w(SMRzRxq!6Kz1X<;AG#GY2e}hBkKBlXj(Fsp3wxq@--p5h&+Pvq#uM?pXSN8XF*BjX&Ph8nGC@#p z-5@62gcoixNEj1AfocK_vy_dNuI7oDVbNZ{esEbZp|w%$-jY_r4lbUwwCZ$)~jTl z{`>!0Ulac_>$U!=+o|tT&i}+~n3L_V@dobc^m6+fWYF4^5m|1}u!2Sp>!vKXYpw6z zESJ;THwkCcm-ECtYu9?-efa|EEqZbK^Sh*JlA3e*9BDN@&v{#9*OtX)mHAx6JEYghAZ$bUgvO|Ow}Nvd5n_6 z4qwK@`5e|@KWcIPd1)V0BvJ5K1>}#ad_;qZ$O@zrKk>t=DgVYR{Ee>T&I`p6Gju9P zm-1C_SImvRld+%$1PaE00u8O`7JpNuxrjtHUr|n+mm6*9i`B1ZRLxuQomN3Gr9^PDI+aLbU z;e7uSv_2BdG;ws`IR2nB5@)5~YOXZ1W4IV&69oUDWdH~k{o7#arVW3RS$tR)jA{^0B=dsH7#i&``a&?q1qS0T zZ-`lT8R3Aw4M86>9Pl77!qtxly2P>I$+4Az6Tpdq6;H6Ns%eiWW-7`Ui78KTR)fgz zlmt@+V7w%Fz{Fm+{o)jJa#o^wV7@G_H+8X{$ske1q9nMlcW~AdlWZ%)v?c9bdBBn<$JT~U0w;&oJi(Io3417Sd#D7Q+t4mx z*wg9;bAxp8X8eW5%loi>pNVMSGjV5Tepk#qeH4S*^L(1m`+)A-`ZVvH2Kt^=1=sjA z+@Z`>x8WUduVjXF`CJ1>%YuvcZOH<0`zF=juKF8C=h5Me%|moc)g*3nsH2v``2jS% zFt?=fJA}Wt-!>a??_ZryzE$7_IrQ&0wuDFUYj5=XAGMWlXiM0Jd_#+VNuIIQRQCUs zfBqe{V2UQmi28LtE&b@IwY4{ay4oLV%fwtVW<)f<`5{$DX0{H^4}f^c!bF}{#5|2; zIn!P!3oc}_i`LUK7G0Oc*)QEY%@FBhtoy;TcV#)oFOi3x>XRJG2KHw;MD;S+A?kU! z^b$(&hB`6_%3>BzR)gT?D$L16YLv8{ zOeceDCnNMYQ1__7L?(Trx!8aZU$0^Jm4O?CzEL+QL2&NZgQD@k7xZc{$o-0#^>}@k zi4)=Gz6}c@eDp{?Fd8EjalLlUlp{FKx-KxYA7%l+46>(BjYhuhgjBYSJuOcP}gOe3O>IJ~?utcT_TW^Sj@q^hchhBYQd4K&q6o(wP49|%elg1^zP{Bh zG4oy9e9y=HO)X&bQMF9x9}Dwo~;P3DQm4F7_MR`$zo8rQxQDk%6OYEIKfJ6OlKy_7gotWRnd^o zfK4Q^JlT|bsY=K`?h9NlsB`~DBb&!|DI!_z(!CWywg?9irgnGN_@hKA(-zW$aXq7W zX!ue&w=2w^*@QXCb1o_Gj4!ylsgOJ-6D_i%o-S0NYKUkoJ-JdUulYcZ;?QzbGGlRpwT%#P4p4le^0V5&v?TU^?B8^3s~Q-GM=64zZs1=kZGqmR3Yk3)2@P z6_{XG1?x4sitjA#`a{6CFqiz2IQ~VXENLbQ&~}MgPOL zQB~0E>W|9O6$(PCj`^B&{192XUOW1DMc@Y)G2UKjnm$09j!-StmOiKCx3^HT0A@+$ zQ>L!c2dwvOI@uY6x`&c=EZo5v!epb|VO$E>Y&X#$%Ok#>Z*HrYC7e)-*o}!irTuXg zv-3V5?k$8t-u7kRL%yp%30E` zKd5q+wBw(roYh07C}%HI&OV7!&R(XReG*kUd)b#KQI)e7Zbpyf?2(+U&l5T;aBZg^ z+Vq9yRoBCx-ldo;9l}HMJg)sXU(t?FYyt_60%u63x8O|6klO1*Rl#%)n63(j)J`Xs z&GfECxf#-x&7qP|8^Ux+Fr;=jQ)H$+V45j18ih2J7fhFdsk}HtYHPj(>y-Bv+&-h?Y&pAzke#&--kBwxv`(i*#9i{KCAjOY-Xv8W|iP*o(}U*-lDys zj*UT&zf%*F=^^d-J-%oNdaQ>(+7QTNaQ+w8VA@Z6_!@5evuvV-Z_wKQOeC8qbLMG( z#+f$ZQ}J(qrg#Ju8U*dnJo2kF6xyE=yE*~9AiXQjMik#$(#`h+8qb}v_}Q+Q{5h^$y6(M)kwT5-p^R4dp2)+9S7R1wCb@)rei$hST&CGF zU+i9)Tp|hZn%+6p*W7!aw9-%sn7gW4+$+#}30ONExA%6%Jl6Bh=eRxkQjB+go8xmd zO>&C^bL9zzh7ZCJr0E63zNFZ!rIhw2Bza zjWNr1%BDJFslEGtAE-G5G~K&LODzh}<0a8U^oU!pl1`6$nAbhQS{1nUQk*q%3c8NB zp}1`yL&Nt3eigX)QXH*2h^L+=P-5t%I8Sw|K35*WIhF@ckKkNY@x7|p&y{!1lmo8* zF>P%;7b#Cs@w7)$+DH4l&BBlg%s68`yzweb&w5&1&%)#}^*2u!)=P2nP3_WmuH4Xq zMA(An1Kl+XcFkU=nNomn{J&i5=n!cPQ(%7RUv=zT*t)&@Is>V|5Uss?jx&^Dk5nin zsfS~zlyq*jaaT<`6vgcY`icZK3uQ#nuHY4I%`7{H4wqM#DMew8&r3z(3pL6IPg*mb zKxf7iGqgvRlt;{9TLq?Vusq^)*{I}3S+jrt`>)z4efGBFm*|6oexok4>~rc3o>PP5 zDkU*o0fz0PwTtKbBv?sWpGJVl(~>yrYFgFgO;Ownz=fi%l6FuNehJ?D+OtOrmZWty z3Pfk^UDOuIYfgZVrJ5Uf&}?b=FW0)?<97{ZQ0oOzE%iIJ2haNhjAN_SkdToSpT@AndA-tg9nDJsso`29U z)(+6StRGv;Yx>0cxSr#~J8pcNNFUj5A7jlmTPA%>Ti!i4XdM^0tt<+^KWivzKzUQ& z8zzVH+ZL_~{W|q?w3S&zBZCi@MV229Ml{2GAmxck4KTx8!Mi3E@@z6Em}GW22DStP znp+-8Z83;N0m+6p1;a``+7vueYJF3%u9UYa@JMCkL;oVPDah#AbDM%WrLJuXu8}ew z%yIWS2y%$KTY|fUQ!^bKIWZd@3U}B(w<~6@-NHQXYH313KUyjW<38OL^VHRh`R=8h zn8ofL8jtAd~dC;M8 zqeIygBULqXr)%~rac8^K6O>;KTsr#)t{uwFAHJcn^6u-@3{JBL%u#FWPbKKvNRWTR zL2YY|+H8|Af=Z;vYp`BaM#$|@WNXH3v*Hv#jNWEIp}OLU%|z@8=XgH;hTqp^RKK6g z0--3-Qx$Y&NOA4;hGJ5<>8fCjBrf=ZGjB;TsQC_IDt;5si{wPIQBBkvsS^24Fu<+f z%!w>uMdXpD?wzPgWCRl;etQ-UqBnEN$ec(%&OLaVOFEZ1P)z%iEy05-Ft;r&{tcIT zY37QT6I`eQ!#OeQXSgV9x>@nlpD8EJZMO=7sq<^-$QOj91VM)|-m@1oV6@I_MOu~ygOiEXs>u8H(;(c8T*HzQfNZ8I{-XnrTU zdgcwx;G%~1cf`^#C)$clUTq3RNVC?Q>eo38VOPI;v#3w1mG25StJ8drcn|>{>MK^0 zv3uJzl;oEZZaP#BlUad&;#MGr3=8Aje*jJ76>zf9-^=*TcdeI=8UN%Ui zbb}mv+aP_iq0}*LPq#y9Ls^=tm+=7p(uRL;iP&;WI?{WaV1Ts4-@xQEV_a#h&57`8$eeX+JYEcq)&U_?eMQ z-HgU`+@U33oV79L=O^y_;$)I16a=7mwJ2u!L>0!JEQ;gbP;g)~?B%5;(~Zb1V>z@y zrn%tnh_f1>VbNht=Za^x1*t7@237Z;`bM0!2$i1f*J3WfU|@|dV1rw0VpdsDV$Bw# zxU(iE4TGy|V&-6QVol6dE*m}kMw|>6*35}qO5@pB)A3uu6I+jbomDMJn#kPuVzMVy zMT#xG6qD^$g($X^7L)7M0uAw{H>7QN|I%AAxjt2d;>%ev`94Olnf7NCBxefL89G*W z#N^Ma0@S(6IFoaVF5kJvK$G)oZXI7|?CV8^m+xk|iBW}@XOaRYx0nbx%o_DsY{I=G z&!Qxp$ZXdp{*J#lb@Jl%n)7Mql-isY@hZRKRvi?DZxfi}_+9X^0VqshA{NL$Q562x zyYcry=2AoCeVDn_5Obf|pR<&)*-G^Y`#0DZTmJ@oGnCfJ*c(ru(VWl5NcxPXl{UuE zXWosTXNA~(ar2u8Ma*v<#mXPW%7^;N-tT(Ecr&SHO1;MRHnWZOYXz;12KoqnFcvD5 z@$mN3h#k^M)0guFV)&CLep)|HRN+V!n~yWVH)!p=bT>7Hb-3*VUovrf1~1{pF5F@? z?F<1%qvs|Uc1dT^;`ZN|qg^mV&qUw#r?e<$=7&&>f9=l0+vFBuI&yg~qgPKNDhO_Fz=6x$&-CT*QN^+0*_1q+8Hv7Vx+2jyq^N8k&gZa% zz)_3q&nxI-x}6)1srs5zoom;de)uoz^zfq#5dz#=73Y?Q@Xmat_7bazKK@$FlZe_c z(Z!UQ#i-gZ?JM7jS!q}MrE~oSbIR3z>CSF2YftT$ME;eSd_wJ)3oJM9U(gJk%dZ8O zX}w@PBN(UcVl#Dg$!LbbH@ajLd72|siP|tx1%ivJ4b#3_piQMlOy|1C-=-C#wvEYl z(|lnKKa8m7Td_HQ{gel-_i(4o$~`0KQh>I>4aF59`pACjXj#h2wff>rGpWOpX3cD4 z{aV`E->A#QrvH3~FEl}jsX>$pdy|41x9Fz%95MV(%|NdltK83nUhNty({hZDKeU4bFWj~T)S zS|X1meOfscapoe-8;U&Q%FgKuj`ik59!0?fqR1oPGTpx1J-5m{qR1nb?mAroPWpsy zX8}EvIbFmX(s|MzGNg9|H$6hQD>+@nW=Iwk4v7a$=UHygk}P={kScgASC^tK$zrkr zxkV3*iSQsZTD=B{)oceyIg{FRP1wBoodUh7{&V~Hv1u@T+UsApo^1YDnDZd!<%OSrQ@^6%3ItZBXyo0bnmhXwyC+>JI z^1OrfiS1=df*S?69V;sx1>lDLO(L)PFl|FVq{D|9YV)<=A_LlpsOH0Mo0o|K`)pqK z*?X%5=gqUTJnbT5_uD>Uv;wb788%VYE-?#wzU@m1_p>u9iejt#TW;8AV8otY6n6rc zDB8X54ShhtrSl>adAq~80fOYj7B<8z#F)KpVhb-w>&iiF;XBeA4isBRk=D}Ov4yWm z>k2_^A$a}jFJ&`zt@;4^II4Lf?&I1~Kl@kOBElm4TTSO-sX!Q!`=*?Gi}peLCoBlP0so!p5+8L2z_n3GFyV=mQL`i z42avN?mqKYjDI@E{NU4XB=WRxWctQPw}K2jdLd@@vVvGgz3;?4jaQgad^RO!C0^C! z;%~%#>Vo9>*TP7gfLdetjT0Suw#EwXRhX{T|1D;WQto(qm5@zDA^f|T+gz>so0uDP zJ^W3~c^F*#yEu8GQ;+;zoI8AU-K*keJ9SZP_A8odIvBdREangEAW3Yb#4Pu6@Hnv> z%ioK$bnimxBL_$Q_4%pP$GmPo^|$KB{{w&ZHwS*4Z-{!f&brWs#W-~F@?*af>q#^G zBc-<*%Si2|f2fc49@)6{5og&*I&0|sUQ1^Zn2+mP9XjwsM+Z%v&+t1P`rK=eqSo?< zVCXZ!CgZKa!2)}T; z7=QrXQ{LmU;CvpqPBfz!r+hINi7~(^F~4(10Z+{|Id^@*qa1L~7xP%r z3o1#ZeZfLL=?(!M{)o9q%izXqPJRkarDPkc+MO;ZiK&FuV$w{v?NW|i^#xz1Nlo~I zn@SPAYCNr~+QMs9EQGT?$vhlbYL_5>>a=pAlT)Lp5#7n}Yj3pL=|9 zOU(UsszU!kJdrUo#?nr`?STKk=bY+ z>AWR6D>JTItL{uyTA24fSXO-W=xkNYjH}kGJL8Kx8|5x{5YbtmdsIz#XG-GCMhDB{ z3^HNf%(xnecH0v(J6sksJnIRPbfbXvVKQYwh8#LmkbEsjYB`r=Mvzn#wdAHCsl{57 zG;atDIg_%A=7)aYEG=PWOR!Q}GB-KVw^3)Bk7~k>>P+)dwbrBa8S?f1qjRst%tiHn zqjR2Mr7T$S$g_7k$3izOMKhQr*WTxNNt`76#Ti7hBpBB_9rwjeYELr7F-fgO?{~Z^ zNY;BF$*PvSDZv?+WW&?CE#ul3XNj^*w09pk>mB%{2};(?$+KA?XGg92DLrZb{onon z`M>~Luv;HAD(>S@;ah?v8GkevkpSg9^mVGyzE_|348s8Y=(* literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/Default.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/Default.html new file mode 100644 index 0000000..ae6b41b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/Default.html @@ -0,0 +1,3 @@ + +I am Block! Please see typoscript definition of lib.block for more details. + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/GoogleAnalyticsStatus.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/GoogleAnalyticsStatus.html new file mode 100644 index 0000000..5b012d2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Blocks/GoogleAnalyticsStatus.html @@ -0,0 +1,7 @@ + + + {f:translate(key: 'googleanalyticsstatus.title', extensionName: 'bootstrap_package')}:
+ {f:translate(key: 'googleanalyticsstatus.description', extensionName: 'bootstrap_package')}
+
+ + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Accordion.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Accordion.html new file mode 100644 index 0000000..31e16d8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Accordion.html @@ -0,0 +1,47 @@ + + + + + + + +
+ +
+

+ +

+
+
+
+ +
+ {settings.responsiveimages.contentelements.accordion.{record.data.mediaorient}} + + +
+
+
+ {record.data.bodytext} +
+
+
+
+
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Audio.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Audio.html new file mode 100644 index 0000000..f658d34 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Audio.html @@ -0,0 +1,29 @@ + + + + + +
    + + +
  • +

    + + {file.properties.title} + {file.properties.name} + +

    + +

    {file.properties.description}

    +
    +
    + +
    +
  • +
    +
    +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Bullets.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Bullets.html new file mode 100644 index 0000000..de828cc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Bullets.html @@ -0,0 +1,47 @@ + + + + + + + + +
    + +
  1. {bullet}
  2. +
    +
+ +
+ + +
+ + + + +
{termDescription}
+
+ +
{termDescription}
+
+
+
+
+
+ +
+ + +
    + +
  • {bullet}
  • +
    +
+ +
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CardGroup.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CardGroup.html new file mode 100644 index 0000000..b6d55fc --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CardGroup.html @@ -0,0 +1,72 @@ + + + + + + {settings.responsiveimages.contentelements.card_group.{data.pi_flexform.columns}} + +
+ + +
+
+ +
+ + + +
+
+
+

+ + {item.data.header} + +

+ +

{item.data.subheader}

+
+ + {item.data.bodytext} + +
+ + + + {item.data.link_title} + + + + + +
+
+
+
+
+ +
+ + + + + {content -> f:format.raw()} + + + {content -> f:format.raw()} + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Carousel.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Carousel.html new file mode 100644 index 0000000..030e3fa --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Carousel.html @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselFullscreen.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselFullscreen.html new file mode 100644 index 0000000..7f70a91 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselFullscreen.html @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselSmall.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselSmall.html new file mode 100644 index 0000000..81e4f05 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/CarouselSmall.html @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Container.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Container.html new file mode 100644 index 0000000..fcf6b20 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Container.html @@ -0,0 +1,11 @@ + + + + + +
+ +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Csv.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Csv.html new file mode 100644 index 0000000..0924923 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Csv.html @@ -0,0 +1,62 @@ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Div.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Div.html new file mode 100644 index 0000000..2d8dd16 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Div.html @@ -0,0 +1,9 @@ + + + + + +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ExternalMedia.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ExternalMedia.html new file mode 100644 index 0000000..b4d5052 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ExternalMedia.html @@ -0,0 +1,21 @@ + + + + + + + +
+ {externalMedia} +
+
+ +
+ +
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Gallery.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Gallery.html new file mode 100644 index 0000000..08f91a0 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Gallery.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Generic.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Generic.html new file mode 100644 index 0000000..919c485 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Generic.html @@ -0,0 +1,12 @@ + + + + + This templates is used to provide nessesary functionality for external processed content and could be used across multiple sources, for example the frontend login content element. + + {content -> f:format.raw()} + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Header.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Header.html new file mode 100644 index 0000000..3db31a8 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Header.html @@ -0,0 +1,3 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Html.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Html.html new file mode 100644 index 0000000..22fe35a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Html.html @@ -0,0 +1,9 @@ + + + + + + {data.bodytext} + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/IconGroup.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/IconGroup.html new file mode 100644 index 0000000..cc84454 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/IconGroup.html @@ -0,0 +1,47 @@ + + + + + +
+ +
+ +
+ +
+
+
+

+ + {item.data.header} + +

+ +

{item.data.subheader}

+
+ + {item.data.bodytext} + +
+
+
+
+
+ +
+ + + + + + {content -> f:format.raw()} + + + + {content -> f:format.raw()} + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Image.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Image.html new file mode 100644 index 0000000..0f2de53 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Image.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/List.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/List.html new file mode 100644 index 0000000..5daa22f --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/List.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ListGroup.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ListGroup.html new file mode 100644 index 0000000..a5b40c2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/ListGroup.html @@ -0,0 +1,14 @@ + + + + + +
    + +
  • {content}
  • +
    +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Mailform.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Mailform.html new file mode 100644 index 0000000..89528e2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Mailform.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Media.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Media.html new file mode 100644 index 0000000..0f2de53 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Media.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuAbstract.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuAbstract.html new file mode 100644 index 0000000..023d05c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuAbstract.html @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardDir.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardDir.html new file mode 100644 index 0000000..29ffe03 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardDir.html @@ -0,0 +1,63 @@ + + + + + + {settings.responsiveimages.contentelements.menu_card_dir.{data.pi_flexform.columns}} + + +
+ +
+ +
+ +
+ + + +
+
+
+ +
+ +
+
+ +

+ + {page.title} + +

+
+ +

+ {page.data.subtitle} +

+
+ +

{page.data.abstract}

+
+
+ +
+ +
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardList.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardList.html new file mode 100644 index 0000000..6d67507 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCardList.html @@ -0,0 +1,63 @@ + + + + + + {settings.responsiveimages.contentelements.menu_card_list.{data.pi_flexform.columns}} + + +
+ +
+ +
+ +
+ + + +
+
+
+ +
+ +
+
+ +

+ + {page.title} + +

+
+ +

+ {page.data.subtitle} +

+
+ +

{page.data.abstract}

+
+
+ +
+ +
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedContent.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedContent.html new file mode 100644 index 0000000..973159e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedContent.html @@ -0,0 +1,17 @@ + + + + + + +
    + +
  • + {element.data.header} +
  • +
    +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedPages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedPages.html new file mode 100644 index 0000000..af3d6de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuCategorizedPages.html @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuPages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuPages.html new file mode 100644 index 0000000..af3d6de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuPages.html @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRecentlyUpdated.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRecentlyUpdated.html new file mode 100644 index 0000000..af3d6de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRecentlyUpdated.html @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRelatedPages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRelatedPages.html new file mode 100644 index 0000000..af3d6de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuRelatedPages.html @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSection.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSection.html new file mode 100644 index 0000000..541060b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSection.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSectionPages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSectionPages.html new file mode 100644 index 0000000..b28dbf5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSectionPages.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemap.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemap.html new file mode 100644 index 0000000..948db1a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemap.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemapPages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemapPages.html new file mode 100644 index 0000000..948db1a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSitemapPages.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSubpages.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSubpages.html new file mode 100644 index 0000000..af3d6de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuSubpages.html @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailDir.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailDir.html new file mode 100644 index 0000000..0845e15 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailDir.html @@ -0,0 +1,35 @@ + + + + + + {settings.responsiveimages.contentelements.menu_thumbnail_dir.{data.pi_flexform.columns}} + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailList.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailList.html new file mode 100644 index 0000000..87a69de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/MenuThumbnailList.html @@ -0,0 +1,35 @@ + + + + + + {settings.responsiveimages.contentelements.menu_thumbnail_list.{data.pi_flexform.columns}} + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Panel.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Panel.html new file mode 100644 index 0000000..5beb7ff --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Panel.html @@ -0,0 +1,24 @@ + + + + + +
+ + + + +
+ {data.bodytext} +
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Quote.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Quote.html new file mode 100644 index 0000000..91134da --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Quote.html @@ -0,0 +1,14 @@ + + + + + +
+

{data.bodytext}

+ +
{data.quote_source}
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Shortcut.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Shortcut.html new file mode 100644 index 0000000..78f4b8a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Shortcut.html @@ -0,0 +1,9 @@ + + + + + + {shortcuts} + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/SocialLinks.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/SocialLinks.html new file mode 100644 index 0000000..3dba0a3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/SocialLinks.html @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Tab.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Tab.html new file mode 100644 index 0000000..bd110c7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Tab.html @@ -0,0 +1,54 @@ + + + + + + {records.0.data.uid} + + + + {record.data.uid} + + + + + + + + + + + +
+ +
+ +
+ +
+ {settings.responsiveimages.contentelements.tab.{record.data.mediaorient}} + + +
+
+
+ {record.data.bodytext} +
+
+
+ +
+
+ +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Table.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Table.html new file mode 100644 index 0000000..ef48e4e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Table.html @@ -0,0 +1,63 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{data.table_caption}
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Text.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Text.html new file mode 100644 index 0000000..57bbcf4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Text.html @@ -0,0 +1,8 @@ + + + + + {data.bodytext} + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textcolumn.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textcolumn.html new file mode 100644 index 0000000..0c9b589 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textcolumn.html @@ -0,0 +1,10 @@ + + + + +
+ {data.bodytext} +
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Texticon.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Texticon.html new file mode 100644 index 0000000..b3f4d78 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Texticon.html @@ -0,0 +1,31 @@ + + + + + +
+ + +
+ + + + + + + + + + + +
+
+
+
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaAbove.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaAbove.html new file mode 100644 index 0000000..ed3e882 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaAbove.html @@ -0,0 +1,17 @@ + + + + + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaBelow.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaBelow.html new file mode 100644 index 0000000..829adc3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaBelow.html @@ -0,0 +1,17 @@ + + + + + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredLeft.html new file mode 100644 index 0000000..b8769f6 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredLeft.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textmedia.centered_left} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredRight.html new file mode 100644 index 0000000..58dee7d --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaCenteredRight.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textmedia.centered_right} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaLeft.html new file mode 100644 index 0000000..543ba89 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaLeft.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textmedia.left} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaRight.html new file mode 100644 index 0000000..b0247de --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextmediaRight.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textmedia.right} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicAbove.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicAbove.html new file mode 100644 index 0000000..2bf85a7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicAbove.html @@ -0,0 +1,17 @@ + + + + + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicBelow.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicBelow.html new file mode 100644 index 0000000..d75263b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicBelow.html @@ -0,0 +1,17 @@ + + + + + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredLeft.html new file mode 100644 index 0000000..d0442c3 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredLeft.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textpic.centered_left} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredRight.html new file mode 100644 index 0000000..a702c52 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicCenteredRight.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textpic.centered_right} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicLeft.html new file mode 100644 index 0000000..d4643f2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicLeft.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textpic.left} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicRight.html new file mode 100644 index 0000000..536380c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/TextpicRight.html @@ -0,0 +1,19 @@ + + + + + + {settings.responsiveimages.contentelements.textpic.right} + +
+ +
+ + {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textteaser.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textteaser.html new file mode 100644 index 0000000..73580ce --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Textteaser.html @@ -0,0 +1,17 @@ + + + + + +
+
+ + {data.teaser} +
+
+ {data.bodytext} +
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Timeline.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Timeline.html new file mode 100644 index 0000000..23bab6b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Timeline.html @@ -0,0 +1,45 @@ + + + + + + +
+ +
+
+ +
+ {settings.responsiveimages.contentelements.timeline} + + +
+
+
+ + + + + +
+
+ +
+
+

{item.data.header}

+
+ +
+ {item.data.bodytext} +
+
+
+
+
+
+
+ +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Uploads.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Uploads.html new file mode 100644 index 0000000..c15abcf --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ContentElements/Uploads.html @@ -0,0 +1,64 @@ + + + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html new file mode 100644 index 0000000..9692e3b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Felogin/FrontendLogin.html @@ -0,0 +1,159 @@ + + + + Templates for felogin + + + +

Common markers

+

These are substituted in all felogin item displaying templates.

+ +

Markers

+
    +
  • ###ACTION_URI### - URI of the request for the login/logout form
  • +
  • ###EXTRA_HIDDEN### - Hook required (additional hidden field used by kb_md5fepw extension by Kraft Bernhard)
  • +
  • ###ON_SUBMIT### - Hook required (used by kb_md5fepw extension by Kraft Bernhard)
  • +
  • ###PREFIXID### - Same as class name ('tx_felogin_pi1') useful to get a unique classname prefix
  • +
  • ###REDIRECT_URL### - URL of redirection upon login
  • +
  • ###NOREDIRECT### - if set, no redirect will be done
  • +
  • ###STORAGE_PID### - explicit enough I guess (if not : id of the page where user are stored)
  • +
  • ###STATUS_HEADER### - depends of the template
  • +
  • ###STATUS_MESSAGE### - depends of the template
  • +
+ +

Wrap parts

+
    +
  • ###HEADER_VALID### - useful to define what to show/hide
  • +
  • ###MESSAGE_VALID### - useful to define what to show/hide
  • +
  • ###FORGOTP_VALID### - useful to define what to show/hide
  • +
  • ###PERMALOGIN_VALID### - useful to define what to show/hide
  • +
+ +

felogin Language Markers (see pi/locallang.xlf)

+
    +
  • ###EMAIL_LABEL### - corresponding to 'your_email'
  • +
  • ###FORGOT_PASSWORD### - corresponding to 'forgot_password'
  • +
  • ###FORGOT_PASSWORD_BACKTOLOGIN### - corresponding to 'forgot_password_backToLogin'
  • +
  • ###FORGOT_PASSWORD_ENTEREMAIL### - corresponding to 'forgot_password_enterEmail'
  • +
  • ###LOGIN_LABEL### - corresponding to 'login'
  • +
  • ###PASSWORD_LABEL### - corresponding to 'password'
  • +
  • ###SEND_PASSWORD### - corresponding to 'send_password'
  • +
  • ###USERNAME_LABEL### - corresponding to 'username'
  • +
+ + + +###STATUS_HEADER### +###STATUS_MESSAGE### + +
+
+ ###LEGEND### +
+ + +
+
+ + +
+ +
+
+ +
+
+ +
+ +
+
+ + + + + ###EXTRA_HIDDEN### +
+
+
+ +

###FORGOT_PASSWORD###

+ + + + + + +###STATUS_HEADER### +###STATUS_MESSAGE### +
+
+ ###LEGEND### +
+
###USERNAME_LABEL###
+
###USERNAME###
+
+
+ +
+
+ + + +
+
+
+ + + + +###STATUS_HEADER### +###STATUS_MESSAGE### + +
+
+ +
+
+ ###LEGEND### +
+ + +
+
+ +
+
+
+ +

###BACKLINK_LOGIN###

+ + + + +###STATUS_HEADER### +###STATUS_MESSAGE### + +
+
+ ###LEGEND### +
+ + +
+
+ + +
+
+ +
+
+
+ +###BACKLINK_LOGIN### + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Form/Form.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Form/Form.html new file mode 100644 index 0000000..79d67b5 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Form/Form.html @@ -0,0 +1,23 @@ + +
+ + + +
+ +
+
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Form.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Form.html new file mode 100644 index 0000000..fa83861 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Form.html @@ -0,0 +1,3 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Search.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Search.html new file mode 100644 index 0000000..1a2d781 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/IndexedSearch/Search/Search.html @@ -0,0 +1,75 @@ + + + + + + +

{result.categoryTitle}

+
+ + +

+ + + {searchWord.sword} + + + {searchWord.sword} + + +

+
+ + +

{result.searchedInSectionInfo}

+
+ + +

+ + {result.sectionText} +

+ + + + + + + +
+

+ {row.sectionTitle} + + {row.numResultRows} + +

+
+
+ + + +
+
+ +
+ +
+ +
+
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns.html new file mode 100644 index 0000000..12592b7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns2575.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns2575.html new file mode 100644 index 0000000..9359fef --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns2575.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns5050.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns5050.html new file mode 100644 index 0000000..12592b7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2Columns5050.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2ColumnsOffsetRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2ColumnsOffsetRight.html new file mode 100644 index 0000000..12592b7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/2ColumnsOffsetRight.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/3Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/3Columns.html new file mode 100644 index 0000000..b5f9154 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/3Columns.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Default.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Default.html new file mode 100644 index 0000000..a7faf1a --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Default.html @@ -0,0 +1,24 @@ + + + + + + + + + + + +
+ +
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/None.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/None.html new file mode 100644 index 0000000..512210b --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/None.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Simple.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Simple.html new file mode 100644 index 0000000..d4cb495 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/Simple.html @@ -0,0 +1,19 @@ + + + + + + + + + + + +
+ +
+ + + +
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialFeature.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialFeature.html new file mode 100644 index 0000000..5252a12 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialFeature.html @@ -0,0 +1,78 @@ + + + + + + + + + + + +
+ +
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialStart.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialStart.html new file mode 100644 index 0000000..4323906 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SpecialStart.html @@ -0,0 +1,39 @@ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft.html new file mode 100644 index 0000000..be95051 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft2Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft2Columns.html new file mode 100644 index 0000000..76e4ca4 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationLeft2Columns.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight.html new file mode 100644 index 0000000..be95051 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +
+
+
+ +
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight2Columns.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight2Columns.html new file mode 100644 index 0000000..ba4b96c --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Page/SubnavigationRight2Columns.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +
+
+
+ +
+ +
+
+ +
+
+
+
+ + + +
+ + + + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Csv.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Csv.html new file mode 100644 index 0000000..526653e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Csv.html @@ -0,0 +1,15 @@ + + + +
+
    + +
  • + {f:if(condition: file.properties.title, then: file.properties.title, else: file.properties.name)}
    + {file.publicUrl} +
  • +
    +
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ExternalMedia.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ExternalMedia.html new file mode 100644 index 0000000..ebfa1c2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ExternalMedia.html @@ -0,0 +1,19 @@ + +
+ + + +
+
+ {externalMedia} +
+
+
+ +
+ +
+
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ListGroup.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ListGroup.html new file mode 100644 index 0000000..285df17 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/ListGroup.html @@ -0,0 +1,12 @@ + +
+ + +
    + +
  • {content}
  • +
    +
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Quote.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Quote.html new file mode 100644 index 0000000..ba701da --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/Preview/Quote.html @@ -0,0 +1,11 @@ + +
+
+

{bodytext}

+ +
+ {quote_source} +
+
+
+ diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ViewHelpers/Paginate/Index.html b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ViewHelpers/Paginate/Index.html new file mode 100644 index 0000000..36e2990 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Private/Templates/ViewHelpers/Paginate/Index.html @@ -0,0 +1,46 @@ + + + diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/icons/address.png b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/icons/address.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b0aceb772dcc78017d9fc52318e6cb80b55629 GIT binary patch literal 504 zcmVGg=>S2FU2+L z%2t99NU?#OkR^M~DuiqxlbE$g?uaWJi~GBI|NB4Y4fB9oO4~l9X$k<4Qa%Q72H?@g z`U;>;L>~Y^)3khml=Ag_K7TqK4lkl88UaAHTD@PZ)sBkA;(H=`kqdBLx22Toc%Jue zwOXy}^?DNk27|$O#@L-!tM#l1vfQVYj%PAtnBTb4C;9OpzS zrADLCr_E@{0~|(CbSZ=ox~?yX=#+>~bzNTwAw(2KKL8x=0_;zx(*!w6l4J^Cf4g=! z)ANgSelL#WI7yN{DdpQua4(MIxKt`}06%vD0>d!GY&Hvh-#@o)y9oe65S#;mVHg5H zunXV`A)4dyI9x85zx)0Ew{24h@c@9gUCX{fr&6gr{CE1bHeM$eKtw+0{K_=VgKXF| z%>&N)6%qNnZU6vn+qPZC*p0^+W43L(0NUB+yj^%RnM{s)z23((P0?sHj?3lp1ra?5 u{<90$l2X3J`qyb#FVd@Ae2?g2I6J0ZkMV6!8;+YJja3tRyf!^nL47I zvHX7kd<0wsa9wx1-|w$lmi550tVgzOZvmv!X*HM29nIx($FkXMB^HalAlF_OLR>lw zz<Ty< zmuKP%aFzhYLYh~AMb~w=8;!;f-axflJ!P8a`E)v6h{a;bSS*%Ir_%+~G|yM7)l=Tw zMx$}db=_@XabaO$Itsu%K)>Jr$$QO<#bQa<^*K3x7Z{P_GJvk@bH!q@G{|=x=Sjcc zUzO7{Q2^!uEX(@M>&)l#C!~29_yG7zj%yOgn}e+Jz*}=zfLG+=M_%XPnzQqC_;uZv zGXNOWn27=~4q)519TE@HKS54Ujq#v(7(k#L$9X8tivi(Fz8nDJ@%W&}-%$V_1Ef-^ zl-Jqqc5h4b8t^ut%JGi$d2{g9=tlwQ0E~=`j6LJ*bXvV$uO_Gdn~+|wSM%-#0II5v zO7r(904o65Y<9vQsMqUDtyb#`+qTzT*L~``?o->g*Voq8KCjp7OaA<^u`ykmtNs{- z?}Yaxy)m%8YPZ{K?RI-DWbHFjRrRR1re9%apazi1WR4BfWG`hhnU|#bV-$d2fR#id zF{*iV))GC;%YOf?*g_2L&3e}! z7T`W`0iaMQoGX{hq4$IQ4m>BP7laV^_bVRd$K>My$kx`@uNxa1cQ!XSy8sgt6Zy%> z$>XZ3zASS;5kkDVtJxubOa^)bxC%^$#5aJeLWsZ{FX~rukZu5918=eOiS?TF-(}~q i{ZI(;XT+M%x&8%?i#V;%$ceuI0000' + + '

Name

' + + '

Street
Zip & City

' + + '

+49 1234 456-7890

' + + '

+49 1234 456-7891

' + + '

john.doe@example.com

' + + '

www.example.com

' + + '', + editables: { + title: { + selector: '.address-title', + allowedContent: 'br strong em' + }, + address: { + selector: '.address-address', + allowedContent: 'br strong em' + }, + phone: { + selector: '.address-phone', + allowedContent: 'br strong em' + }, + fax: { + selector: '.address-fax', + allowedContent: 'br strong em' + }, + email: { + selector: '.address-email', + allowedContent: 'br strong em a[!href]' + }, + www: { + selector: '.address-www', + allowedContent: 'br strong em a[!href]' + } + }, + allowedContent: + 'address(!address);', + requiredContent: 'address(address)', + upcast: function(element) { + return element.name == 'address' && element.hasClass('address'); + } + }); + } + }); + +})(); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js new file mode 100644 index 0000000..1902bcd --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js @@ -0,0 +1 @@ +"use strict";CKEDITOR.plugins.add("bootstrappackage_address",{lang:"en,de",requires:"widget",icons:"address",hidpi:!0,init:function(e){e.widgets.add("address",{button:e.lang.bootstrappackage_address.toolbar,template:'

Name

Street
Zip & City

+49 1234 456-7890

+49 1234 456-7891

john.doe@example.com

www.example.com

',editables:{title:{selector:".address-title",allowedContent:"br strong em"},address:{selector:".address-address",allowedContent:"br strong em"},phone:{selector:".address-phone",allowedContent:"br strong em"},fax:{selector:".address-fax",allowedContent:"br strong em"},email:{selector:".address-email",allowedContent:"br strong em a[!href]"},www:{selector:".address-www",allowedContent:"br strong em a[!href]"}},allowedContent:"address(!address);",requiredContent:"address(address)",upcast:function(e){return"address"==e.name&&e.hasClass("address")}})}}); \ No newline at end of file diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/icons/box.png b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/icons/box.png new file mode 100644 index 0000000000000000000000000000000000000000..63810add1894510f4cdcabb4ad48f61525d16bf6 GIT binary patch literal 168 zcmV;Z09XHsP)ST6ola~h$Wl>n8g`^8rEVCTxO2+kr{&mN1}-^qUFld-T#_Zom!L1F~(Nwd%0I?-xefw);xJ7sH8z|Fr@M WDG%3;K?WND000040z#V)dV39-omwhlpN+jtqlUObKM1jzwBfJMYhND_OC%)lrqcMx&D<{yTi z?|s>7mj9kEA3_Llg-0yWPt4k3gS!~xd)FP&=f%P`UT`@vIH$)7i*XzWy!{k-Nbpyz z@j0=;3<2}Rx`nf1VVPzPxYW5$=bL<43iQQdt>o^DQv$z|CeQ?$Koe*JO`r)hfhJH2 z?9!Z7 0) { + block = blocks.shift(); + wrapper.append(block); + } + } + + /** + * Find parent element for all selected blocks + * + * @param {Array} blocks + * @return {Object} + */ + function getCommonParent(blocks) { + var parent = blocks[0].getParent(), + block = null; + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + parent = parent.getCommonAncestor(block.getParent()); + } + // Filter invalid parents + var denyTags = { table: 1, tbody: 1, tr: 1, ol: 1, ul: 1 }; + while (denyTags[parent.getName()]) + parent = parent.getParent(); + return parent; + } + + /** + * Streamlines the selected block elements to match a specific parent + * + * @param {Object} parent + * @param {Array} blocks + * @return {Array} + */ + function unifyBlockParent(parent, blocks) { + var lastBlock = null, + block = null, + unifiedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + while (!block.getParent().equals(parent)) { + block = block.getParent(); + } + if (!block.equals(lastBlock)) { + unifiedBlocks.push(block); + lastBlock = block; + } + } + return unifiedBlocks; + } + + /** + * Remove existing wrapper from blocks + * + * @param {Object} editor + * @param {Array} blocks + * @return {Array} + */ + function removeExistingWrapperFromBlocks(editor, blocks) { + var block = null, + cleanedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + if (block.getName() == 'div' && block.hasClass('well')) { + var fragment = new CKEDITOR.dom.documentFragment(editor.document); + while (block.getFirst()) { + fragment.append(block.getFirst().remove()); + cleanedBlocks.push(fragment.getLast()); + } + fragment.replace(block); + } else { + cleanedBlocks.push(block); + } + } + return cleanedBlocks; + } + + /** + * Add wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function addWrap(editor, blocks) { + var commonParent = getCommonParent(blocks), + unifiedBlocks = unifyBlockParent(commonParent, blocks), + cleanedBlocks = removeExistingWrapperFromBlocks(editor, unifiedBlocks); + wrapBlocks(editor, cleanedBlocks); + } + + /** + * Moves all outside the wrap if existing + * + * @param {Array} blocks + * @return {$Array} + */ + function unwrapBlocks(blocks) { + var storage = {}, + processedBlocks = [], + unwrapBlocks = [], + block = null, + parent = null; + // Find blocks that need to be unwrapped + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + var parent = null, + child = null; + if (block.getName() == 'div' && block.hasClass('well') && isEmptyBlock(block)) { + processedBlocks.push(block); + } else { + while (block.getParent()) { + if (block.getParent().getName() == 'div' && block.getParent().hasClass('well')) { + parent = block.getParent(); + child = block; + break; + } + block = block.getParent(); + } + if (parent && child && !child.getCustomData('move')) { + unwrapBlocks.push(child); + CKEDITOR.dom.element.setMarker(storage, child, 'move', true); + } + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + // Unwrap blocks + while (unwrapBlocks.length > 0) { + block = unwrapBlocks.shift(); + parent = block.getParent(); + if (!block.getPrevious()) { + block.remove().insertBefore(parent); + } else if (!block.getNext()) { + block.remove().insertAfter(parent); + } else { + block.breakParent(block.getParent()); + processedBlocks.push(block.getNext()); + } + if (!parent.getCustomData('processed')) { + processedBlocks.push(parent); + CKEDITOR.dom.element.setMarker(storage, parent, 'processed', true); + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + return processedBlocks; + } + + /** + * Remove wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function removeWrap(editor, blocks) { + var processedBlocks = unwrapBlocks(blocks); + removeEmptyBlocks(processedBlocks); + } + + /** + * Set button state + * + * @param {Object} editor + * @param {Object} path + */ + function setButtonState(editor, path) { + var firstBlock = path.block || path.blockLimit; + var element = editor.elementPath(firstBlock).contains( + function(element) { + if (element.is('div') && element.hasClass('well')) return true; + }, 1); + this.setState(element ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF); + }; + + /** + * Check if block is empty + * + * @param {Object} block + * @return {Boolean} + */ + function isEmptyBlock(block) { + for (var i = 0, length = block.getChildCount(), child; i < length && (child = block.getChild(i)); i++) { + if (child.type == CKEDITOR.NODE_ELEMENT && child.isBlockBoundary()) + return false; + } + return true; + } + + /** + * Remove empty blocks + * + * @param {Array} blocks + */ + function removeEmptyBlocks(blocks) { + var block = null; + for (var i = blocks.length - 1; i >= 0; i--) { + block = blocks[i]; + if (isEmptyBlock(block)) { + block.remove(); + } + } + } + +})(); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js new file mode 100644 index 0000000..7de200e --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js @@ -0,0 +1 @@ +"use strict";!function(){function t(e){var t=e.getSelection(),a=t&&t.getRanges()[0];if(a){for(var r,n=t.createBookmarks(!1)[0],o=n.startNode,l=n.endNode||o,s=a.createIterator(),a=e.editable(),i=[];r=s.getNextParagraph();)i.push(r);if(e.getCommand("bootstrappackage_box").state==CKEDITOR.TRISTATE_OFF){var u=e,g=i,d=(g=function(e,t){var a=null,r=null,n=[];for(;0|j~Xs8Y$OX8x)*@nLHtJAP);sl?@Y%*M67PMsw7F7DM?nYyLUThbJ=51 zV7Zu`{=#G^_sI*`7Tl40{Q?xg0xX~a7GMDd05-?_4n9eAY>5B>002ovPDHLkV1lz= BG-3b% literal 0 HcmV?d00001 diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/de.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/de.js new file mode 100644 index 0000000..44e2939 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/de.js @@ -0,0 +1,7 @@ +CKEDITOR.plugins.setLang( + 'bootstrappackage_columns', + 'de', + { + toolbar: 'Spalten einfügen' + } +); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/en.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/en.js new file mode 100644 index 0000000..b301015 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/lang/en.js @@ -0,0 +1,7 @@ +CKEDITOR.plugins.setLang( + 'bootstrappackage_columns', + 'en', + { + toolbar: 'Insert columns' + } +); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.js new file mode 100644 index 0000000..086b750 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.js @@ -0,0 +1,280 @@ +'use strict'; + +(function() { + + CKEDITOR.plugins.add('bootstrappackage_columns', { + lang: 'en,de', + icons: 'columns', + hidpi: true, + init: function (editor) { + if (editor.blockless) + return; + + // Add command + editor.addCommand('bootstrappackage_columns', { + exec: toggleColumns, + refresh: setButtonState, + context: 'div(text-column)', + allowedContent: 'div(!text-column)', + requiredContent: 'div(!text-column)' + }); + + // Add Button + editor.ui.addButton && editor.ui.addButton('Columns', { + label: editor.lang.bootstrappackage_columns.toolbar, + command: 'bootstrappackage_columns', + toolbar: 'blocks' + }); + } + }); + + /** + * Toggle columns + * + * @param {Object} editor + */ + function toggleColumns(editor) { + var selection = editor.getSelection(), + range = selection && selection.getRanges()[0]; + + if (!range) + return; + + // Save selection and prepare data + var bookmark = selection.createBookmarks(false)[0], + startNode = bookmark.startNode, + endNode = bookmark.endNode || startNode, + iterator = range.createIterator(), + editable = editor.editable(), + block = null, + blocks = []; + + while ((block = iterator.getNextParagraph())) + blocks.push(block); + + // Add or remove the wrap + if (editor.getCommand('bootstrappackage_columns').state == CKEDITOR.TRISTATE_OFF) { + addWrap(editor, blocks); + } else { + removeWrap(editor, blocks); + } + + // Restore Selection + if (editable.contains(startNode) && editable.contains(endNode)) { + selection.selectBookmarks([bookmark]); + } + editor.focus(); + } + + /** + * Wrap blocks in new container + * + * @param {Object} editor + * @param {Array} blocks + */ + function wrapBlocks(editor, blocks) { + var wrapper = editor.document.createElement('div'), + block = null; + wrapper.addClass("text-column"); + wrapper.insertBefore(blocks[0]); + while (blocks.length > 0) { + block = blocks.shift(); + wrapper.append(block); + } + } + + /** + * Find parent element for all selected blocks + * + * @param {Array} blocks + * @return {Object} + */ + function getCommonParent(blocks) { + var parent = blocks[0].getParent(), + block = null; + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + parent = parent.getCommonAncestor(block.getParent()); + } + // Filter invalid parents + var denyTags = { table: 1, tbody: 1, tr: 1, ol: 1, ul: 1 }; + while (denyTags[parent.getName()]) + parent = parent.getParent(); + return parent; + } + + /** + * Streamlines the selected block elements to match a specific parent + * + * @param {Object} parent + * @param {Array} blocks + * @return {Array} + */ + function unifyBlockParent(parent, blocks) { + var lastBlock = null, + block = null, + unifiedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + while (!block.getParent().equals(parent)) { + block = block.getParent(); + } + if (!block.equals(lastBlock)) { + unifiedBlocks.push(block); + lastBlock = block; + } + } + return unifiedBlocks; + } + + /** + * Remove existing wrapper from blocks + * + * @param {Object} editor + * @param {Array} blocks + * @return {Array} + */ + function removeExistingWrapperFromBlocks(editor, blocks) { + var block = null, + cleanedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + if (block.getName() == 'div' && block.hasClass('text-column')) { + var fragment = new CKEDITOR.dom.documentFragment(editor.document); + while (block.getFirst()) { + fragment.append(block.getFirst().remove()); + cleanedBlocks.push(fragment.getLast()); + } + fragment.replace(block); + } else { + cleanedBlocks.push(block); + } + } + return cleanedBlocks; + } + + /** + * Add wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function addWrap(editor, blocks) { + var commonParent = getCommonParent(blocks), + unifiedBlocks = unifyBlockParent(commonParent, blocks), + cleanedBlocks = removeExistingWrapperFromBlocks(editor, unifiedBlocks); + wrapBlocks(editor, cleanedBlocks); + } + + /** + * Moves all outside the wrap if existing + * + * @param {Array} blocks + * @return {$Array} + */ + function unwrapBlocks(blocks) { + var storage = {}, + processedBlocks = [], + unwrapBlocks = [], + block = null, + parent = null; + // Find blocks that need to be unwrapped + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + var parent = null, + child = null; + if (block.getName() == 'div' && block.hasClass('text-column') && isEmptyBlock(block)) { + processedBlocks.push(block); + } else { + while (block.getParent()) { + if (block.getParent().getName() == 'div' && block.getParent().hasClass('text-column')) { + parent = block.getParent(); + child = block; + break; + } + block = block.getParent(); + } + if (parent && child && !child.getCustomData('move')) { + unwrapBlocks.push(child); + CKEDITOR.dom.element.setMarker(storage, child, 'move', true); + } + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + // Unwrap blocks + while (unwrapBlocks.length > 0) { + block = unwrapBlocks.shift(); + parent = block.getParent(); + if (!block.getPrevious()) { + block.remove().insertBefore(parent); + } else if (!block.getNext()) { + block.remove().insertAfter(parent); + } else { + block.breakParent(block.getParent()); + processedBlocks.push(block.getNext()); + } + if (!parent.getCustomData('processed')) { + processedBlocks.push(parent); + CKEDITOR.dom.element.setMarker(storage, parent, 'processed', true); + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + return processedBlocks; + } + + /** + * Remove wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function removeWrap(editor, blocks) { + var processedBlocks = unwrapBlocks(blocks); + removeEmptyBlocks(processedBlocks); + } + + /** + * Set button state + * + * @param {Object} editor + * @param {Object} path + */ + function setButtonState(editor, path) { + var firstBlock = path.block || path.blockLimit; + var element = editor.elementPath(firstBlock).contains( + function(element) { + if (element.is('div') && element.hasClass('text-column')) return true; + }, 1); + this.setState(element ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF); + }; + + /** + * Check if block is empty + * + * @param {Object} block + * @return {Boolean} + */ + function isEmptyBlock(block) { + for (var i = 0, length = block.getChildCount(), child; i < length && (child = block.getChild(i)); i++) { + if (child.type == CKEDITOR.NODE_ELEMENT && child.isBlockBoundary()) + return false; + } + return true; + } + + /** + * Remove empty blocks + * + * @param {Array} blocks + */ + function removeEmptyBlocks(blocks) { + var block = null; + for (var i = blocks.length - 1; i >= 0; i--) { + block = blocks[i]; + if (isEmptyBlock(block)) { + block.remove(); + } + } + } + +})(); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js new file mode 100644 index 0000000..3081897 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js @@ -0,0 +1 @@ +"use strict";!function(){function t(e){var t=e.getSelection(),n=t&&t.getRanges()[0];if(n){for(var o,a=t.createBookmarks(!1)[0],r=a.startNode,l=a.endNode||r,s=n.createIterator(),n=e.editable(),u=[];o=s.getNextParagraph();)u.push(o);if(e.getCommand("bootstrappackage_columns").state==CKEDITOR.TRISTATE_OFF){var c=e,i=u,m=(i=function(e,t){var n=null,o=null,a=[];for(;0{Wg0000xig*Lt~=;)Urqrq(YN`0B>EM$bw6U02PLSo*FRx5S~*z@M@el7X@gZZz(wkJhs%k zGjnI=yG%gguU%+45h6aLI~T>JMB_wAYoO{BcM7h;O`4hTeV*TrJOSJ)b5&{}x{gCV zcmNLoOET6a?QV!jbRA0*Zf_1`9g75%9vVmHLr)Uw 0) { + block = blocks.shift(); + wrapper.append(block); + } + } + + /** + * Find parent element for all selected blocks + * + * @param {Array} blocks + * @return {Object} + */ + function getCommonParent(blocks) { + var parent = blocks[0].getParent(), + block = null; + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + parent = parent.getCommonAncestor(block.getParent()); + } + // Filter invalid parents + var denyTags = { table: 1, tbody: 1, tr: 1, ol: 1, ul: 1 }; + while (denyTags[parent.getName()]) + parent = parent.getParent(); + return parent; + } + + /** + * Streamlines the selected block elements to match a specific parent + * + * @param {Object} parent + * @param {Array} blocks + * @return {Array} + */ + function unifyBlockParent(parent, blocks) { + var lastBlock = null, + block = null, + unifiedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + while (!block.getParent().equals(parent)) { + block = block.getParent(); + } + if (!block.equals(lastBlock)) { + unifiedBlocks.push(block); + lastBlock = block; + } + } + return unifiedBlocks; + } + + /** + * Remove existing wrapper from blocks + * + * @param {Object} editor + * @param {Array} blocks + * @return {Array} + */ + function removeExistingWrapperFromBlocks(editor, blocks) { + var block = null, + cleanedBlocks = []; + while (blocks.length > 0) { + block = blocks.shift(); + if (block.getName() == 'div' && block.hasClass('text-indent')) { + var fragment = new CKEDITOR.dom.documentFragment(editor.document); + while (block.getFirst()) { + fragment.append(block.getFirst().remove()); + cleanedBlocks.push(fragment.getLast()); + } + fragment.replace(block); + } else { + cleanedBlocks.push(block); + } + } + return cleanedBlocks; + } + + /** + * Add wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function addWrap(editor, blocks) { + var commonParent = getCommonParent(blocks), + unifiedBlocks = unifyBlockParent(commonParent, blocks), + cleanedBlocks = removeExistingWrapperFromBlocks(editor, unifiedBlocks); + wrapBlocks(editor, cleanedBlocks); + } + + /** + * Moves all outside the wrap if existing + * + * @param {Array} blocks + * @return {$Array} + */ + function unwrapBlocks(blocks) { + var storage = {}, + processedBlocks = [], + unwrapBlocks = [], + block = null, + parent = null; + // Find blocks that need to be unwrapped + for (var i = 0; i < blocks.length; i++) { + block = blocks[i]; + var parent = null, + child = null; + if (block.getName() == 'div' && block.hasClass('text-indent') && isEmptyBlock(block)) { + processedBlocks.push(block); + } else { + while (block.getParent()) { + if (block.getParent().getName() == 'div' && block.getParent().hasClass('text-indent')) { + parent = block.getParent(); + child = block; + break; + } + block = block.getParent(); + } + if (parent && child && !child.getCustomData('move')) { + unwrapBlocks.push(child); + CKEDITOR.dom.element.setMarker(storage, child, 'move', true); + } + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + // Unwrap blocks + while (unwrapBlocks.length > 0) { + block = unwrapBlocks.shift(); + parent = block.getParent(); + if (!block.getPrevious()) { + block.remove().insertBefore(parent); + } else if (!block.getNext()) { + block.remove().insertAfter(parent); + } else { + block.breakParent(block.getParent()); + processedBlocks.push(block.getNext()); + } + if (!parent.getCustomData('processed')) { + processedBlocks.push(parent); + CKEDITOR.dom.element.setMarker(storage, parent, 'processed', true); + } + } + CKEDITOR.dom.element.clearAllMarkers(storage); + return processedBlocks; + } + + /** + * Remove wrap around blocks + * + * @param {Object} editor + * @param {Array} blocks + */ + function removeWrap(editor, blocks) { + var processedBlocks = unwrapBlocks(blocks); + removeEmptyBlocks(processedBlocks); + } + + /** + * Set button state + * + * @param {Object} editor + * @param {Object} path + */ + function setButtonState(editor, path) { + var firstBlock = path.block || path.blockLimit; + var element = editor.elementPath(firstBlock).contains( + function(element) { + if (element.is('div') && element.hasClass('text-indent')) return true; + }, 1); + this.setState(element ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF); + }; + + /** + * Check if block is empty + * + * @param {Object} block + * @return {Boolean} + */ + function isEmptyBlock(block) { + for (var i = 0, length = block.getChildCount(), child; i < length && (child = block.getChild(i)); i++) { + if (child.type == CKEDITOR.NODE_ELEMENT && child.isBlockBoundary()) + return false; + } + return true; + } + + /** + * Remove empty blocks + * + * @param {Array} blocks + */ + function removeEmptyBlocks(blocks) { + var block = null; + for (var i = blocks.length - 1; i >= 0; i--) { + block = blocks[i]; + if (isEmptyBlock(block)) { + block.remove(); + } + } + } + +})(); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js new file mode 100644 index 0000000..d38b6b1 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js @@ -0,0 +1 @@ +"use strict";!function(){function t(e){var t=e.getSelection(),n=t&&t.getRanges()[0];if(n){for(var a,r=t.createBookmarks(!1)[0],o=r.startNode,s=r.endNode||o,l=n.createIterator(),n=e.editable(),i=[];a=l.getNextParagraph();)i.push(a);if(e.getCommand("bootstrappackage_indent").state==CKEDITOR.TRISTATE_OFF){var d=e,u=i,g=(u=function(e,t){var n=null,a=null,r=[];for(;0=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=function(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this},o.default.event.special[d.TRANSITION_END]={bindType:f,delegateType:f,handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="bs.alert",h=o.default.fn.alert,g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(c);i||(i=new t(this),n.data(c,i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',g._handleDismiss(new g)),o.default.fn.alert=g._jQueryInterface,o.default.fn.alert.Constructor=g,o.default.fn.alert.noConflict=function(){return o.default.fn.alert=h,g._jQueryInterface};var m="bs.button",p=o.default.fn.button,_="active",v='[data-toggle^="button"]',y='input:not([type="hidden"])',b=".btn",E=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector(y);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(_))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass(_)}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains(_)),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(_)),t&&o.default(this._element).toggleClass(_))},e.dispose=function(){o.default.removeData(this._element,m),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data(m);a||(a=new t(this),i.data(m,a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.button.data-api",v,(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(b)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||E._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",v,(function(t){var e=o.default(t.target).closest(b)[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(N)},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(D)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(I);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one(A,(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?N:D;this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(".bs.carousel"),o.default.removeData(this._element,w),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},k,t),d.typeCheckConfig(T,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===N,i=t===D,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+(t===D?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(I)),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass(S);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass(S)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(I);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(I),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if(t===N?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass(S))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var h=o.default.Event(A,{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass(S),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(g)}else o.default(l).removeClass(S),o.default(u).addClass(S),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(w),i=r({},k,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data(w,n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data(w).to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return k}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",P._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass(q)?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!(this._isTransitioning||o.default(this._element).hasClass(q)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(F)}))).length&&(e=null),e&&(n=o.default(e).not(this._selector).data(R))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data(R,null));var s=this._getDimension();o.default(this._element).removeClass(F).addClass(Q),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass(B).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass(Q).addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass(q)){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass(Q).removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(K);if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data(K,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll(it)),i=0,a=n.length;i0&&s--,40===e.which&&sdocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ht);var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove(ht),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass(dt),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off(pt).on(pt,(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on(yt,(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off(yt)},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on(_t,(function(e){return t.handleUpdate(e)})):o.default(window).off(_t)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass(ft),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger(gt)}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass(dt)?dt:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on(vt,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass(ct),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass(ct);var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass(dt)){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ut={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Wt=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass(Rt))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass(Lt);var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass(Rt),o.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),e===qt&&t._leave(null,t)};if(o.default(this.tip).hasClass(Lt)){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){e._hoverState!==xt&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass(Rt),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass(Lt)){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=At(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Qt:Ft]=!0),o.default(e.getTipElement()).hasClass(Rt)||e._hoverState===xt?e._hoverState=xt:(clearTimeout(e._timeout),e._hoverState=xt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===xt&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=qt,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===qt&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Pt.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(It,t,this.constructor.DefaultType),t.sanitize&&(t.template=At(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(jt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass(Lt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(kt),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data(kt,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return It}},{key:"DATA_KEY",get:function(){return kt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ut}}]),t}();o.default.fn.tooltip=Wt._jQueryInterface,o.default.fn.tooltip.Constructor=Wt,o.default.fn.tooltip.noConflict=function(){return o.default.fn.tooltip=Ot,Wt._jQueryInterface};var Vt="bs.popover",zt=o.default.fn.popover,Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=r({},Wt.Default,{placement:"right",trigger:"click",content:"",template:''}),Yt=r({},Wt.DefaultType,{content:"(string|element|function)"}),$t={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Jt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,u(e,n);var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(Kt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data(Vt),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data(Vt,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return Vt}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),i}(Wt);o.default.fn.popover=Jt._jQueryInterface,o.default.fn.popover.Constructor=Jt,o.default.fn.popover.noConflict=function(){return o.default.fn.popover=zt,Jt._jQueryInterface};var Gt="scrollspy",Zt="bs.scrollspy",te=o.default.fn[Gt],ee="active",ne="position",ie=".nav, .list-group",oe={offset:10,method:"auto",target:""},ae={offset:"number",method:"string",target:"(string|element)"},se=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ne,n="auto"===this._config.method?e:this._config.method,i=n===ne?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,Zt),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},oe,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(Gt),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(Gt,t,ae),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active",ge=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass(ue)||o.default(this._element).hasClass("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?he:ce;n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,le),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(ce):o.default(e).find(he))[0],s=n&&a&&o.default(a).hasClass(fe),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass(de).one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass(ue);var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass(ue),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}o.default(t).addClass(ue),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains(fe)&&t.classList.add(de);var a=t.parentNode;if(a&&"LI"===a.nodeName&&(a=a.parentNode),a&&o.default(a).hasClass("dropdown-menu")){var s=o.default(t).closest(".dropdown")[0];if(s){var l=[].slice.call(s.querySelectorAll(".dropdown-toggle"));o.default(l).addClass(ue)}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(le);if(i||(i=new t(this),n.data(le,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ge._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ge._jQueryInterface,o.default.fn.tab.Constructor=ge,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=re,ge._jQueryInterface};var me="bs.toast",pe=o.default.fn.toast,_e="hide",ve="show",ye="showing",be="click.dismiss.bs.toast",Ee={animation:!0,autohide:!0,delay:500},Te={animation:"boolean",autohide:"boolean",delay:"number"},we=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove(ye),t._element.classList.add(ve),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove(_e),d.reflow(this._element),this._element.classList.add(ye),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(ve)){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains(ve)&&this._element.classList.remove(ve),o.default(this._element).off(be),o.default.removeData(this._element,me),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ee,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on(be,'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add(_e),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ve),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(me);if(i||(i=new t(this,"object"==typeof e&&e),n.data(me,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"DefaultType",get:function(){return Te}},{key:"Default",get:function(){return Ee}}]),t}();o.default.fn.toast=we._jQueryInterface,o.default.fn.toast.Constructor=we,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=pe,we._jQueryInterface},t.Alert=g,t.Button=E,t.Carousel=P,t.Collapse=V,t.Dropdown=lt,t.Modal=Ct,t.Popover=Jt,t.Scrollspy=se,t.Tab=ge,t.Toast=we,t.Tooltip=Wt,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})})); diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_alert.scss b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_alert.scss new file mode 100644 index 0000000..4aa1fc2 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_alert.scss @@ -0,0 +1,52 @@ +// +// Base styles +// + +.alert { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $close-font-size + $alert-padding-x * 2; + + // Adjust close link position + .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: $alert-padding-y $alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +@each $color, $value in $theme-colors { + .alert-#{$color} { + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_badge.scss b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_badge.scss new file mode 100644 index 0000000..42c5d08 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_badge.scss @@ -0,0 +1,54 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + display: inline-block; + padding: $badge-padding-y $badge-padding-x; + @include font-size($badge-font-size); + font-weight: $badge-font-weight; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius($badge-border-radius); + @include transition($badge-transition); + + @at-root a#{&} { + @include hover-focus() { + text-decoration: none; + } + } + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Pill badges +// +// Make them extra rounded with a modifier to replace v3's badges. + +.badge-pill { + padding-right: $badge-pill-padding-x; + padding-left: $badge-pill-padding-x; + @include border-radius($badge-pill-border-radius); +} + +// Colors +// +// Contextual variations (linked badges get darker on :hover). + +@each $color, $value in $theme-colors { + .badge-#{$color} { + @include badge-variant($value); + } +} diff --git a/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_breadcrumb.scss b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_breadcrumb.scss new file mode 100644 index 0000000..9c204c7 --- /dev/null +++ b/public/typo3conf/ext/bootstrap_package/Resources/Public/Contrib/bootstrap4/scss/_breadcrumb.scss @@ -0,0 +1,42 @@ +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $breadcrumb-margin-bottom; + @include font-size($breadcrumb-font-size); + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($breadcrumb-border-radius); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: $breadcrumb-item-padding; + + &::before { + float: left; // Suppress inline spacings and underlining of the separator + padding-right: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: escape-svg($breadcrumb-divider); + } + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `

@9Ofhha3e7w(IBF@oZ}JP-A}?+U_HjKBm8C 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