feat: travel info on TYPO3 13

/reiseinformationen/{path segment} and /reiseinformationen/{travel code}
(travel info records combined with live travel data and pickup planning
from MyE&P). All of them answer 404 in production since the static
switch: the export never found these URLs.

Compared with TYPO3 10 (482 travel info pages, 40 travel codes, 20
fallbacks through the base code, unknown code): identical apart from
the content of the 404 page. The page without parameter fails on both,
as intended.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-21 17:34:37 +02:00
1 parent fc98dc7d37
commit 67c32802dc
15 files changed
+1913

No files matched your search

@@ -0,0 +1,108 @@
<?php
namespace EP\EpProducts\Controller;
use Psr\Http\Message\ResponseInterface;
use EP\EpProducts\Domain\Model\Travelinfo;
use EP\EpProducts\Domain\Repository\TravelinfoRepository;
use EP\EpProducts\MyEP\ApiClient;
use EP\EpProducts\MyEP\ApiException;
use TYPO3\CMS\Core\Http\ImmediateResponseException;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Frontend\Controller\ErrorController;
class TravelinfoController extends ActionController
{
private const SELECTION_ID_BOARD = 71;
/**
* @var ApiClient
*/
private $apiClient;
/**
* @var TravelinfoRepository
*/
private $travelinfoRepository;
public function __construct(ApiClient $apiClient, TravelinfoRepository $travelinfoRepository)
{
$this->apiClient = $apiClient;
$this->travelinfoRepository = $travelinfoRepository;
}
public function travelCodeAction(string $travelCode): ResponseInterface
{
// find specific travel info by code including travel date first
$travelInfo = $this->travelinfoRepository->findOneBy(['travelCode' => $travelCode]);
// find general travel info by code without travel date as fallback
if (null === $travelInfo) {
$travelCodeBase = substr($travelCode, 0, -6);
$travelInfo = $this->travelinfoRepository->findOneBy(['travelCode' => $travelCodeBase]);
}
// return 404 in case no travel info is available as last resort
if (null === $travelInfo) {
$response = GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
$this->request,
'Reiseinformationen nicht gefunden'
);
throw new ImmediateResponseException($response, 1731071856);
}
$this->handleRequest($travelCode, $travelInfo);
return $this->htmlResponse();
}
public function travelInfoAction(Travelinfo $travelInfo): ResponseInterface
{
$travelCode = $travelInfo->getTravelCode();
$this->handleRequest($travelCode, $travelInfo);
return $this->htmlResponse();
}
private function handleRequest(string $travelCode, Travelinfo $travelInfo)
{
// fetch travel data via API call
try {
$travelData = $this->apiClient->getTravel($travelCode);
} catch (ApiException $e) {
$travelData = [];
}
try {
$pickupsPlanning = $this->apiClient->getPickupsPlanning($travelCode);
} catch (ApiException $e) {
$pickupsPlanning = [];
}
// extract courses from additional services
$courses = array_filter($travelData['additionalServices'] ?? [], function ($service) {
return 'KUR' === $service['subType'];
});
// extract board services from included services
$includedServicesBoard = $travelData['selectionGroups'][self::SELECTION_ID_BOARD] ?? [];
$board = $includedServicesBoard['selections'] ?? [];
// extract bus departure time if applicable
$departureDayTime = null;
$service = array_filter($travelData['transportationServices'] ?? [], function ($service) {
return 'BUS' === $service['subType'] && 'RUECK' === $service['direction'];
});
if ($serviceDetail = reset($service)) {
$departureDayTime = $serviceDetail['dayTime'];
}
$this->view->assign('travelInfo', $travelInfo);
$this->view->assign('travelData', $travelData);
$this->view->assign('pickupsPlanning', $pickupsPlanning);
$this->view->assign('courses', $courses);
$this->view->assign('board', $board);
$this->view->assign('departureDayTime', $departureDayTime);
}
}
@@ -0,0 +1,329 @@
<?php
namespace EP\EpProducts\Domain\Model;
use TYPO3\CMS\Extbase\Domain\Model\FileReference;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
class Travelinfo extends AbstractEntity
{
/**
* @var string
*/
protected $title;
/**
* @var FileReference
*/
protected $headerImage;
/**
* @var FileReference
*/
protected $footerImage;
/**
* @var string
*/
protected $subline;
/**
* @var string
*/
protected $headline;
/**
* @var string
*/
protected $introText;
/**
* @var string
*/
protected $busInfoText;
/**
* @var string
*/
protected $departureText;
/**
* @var string
*/
protected $footerText;
/**
* @var string
*/
protected $additionalInfo;
/**
* @var string
*/
protected $importantPhoneNumbers;
/**
* @var string
*/
protected $importantLinks;
/**
* @var string
*/
protected $selfArrangedText;
/**
* @var ObjectStorage<TravelinfoTeaser>
*/
protected $teasers;
/**
* @var ObjectStorage<TravelinfoLink>
*/
protected $links;
/**
* @var string
*/
protected $travelCode;
/**
* @var Product
*/
protected $product;
/**
* @var bool
*/
protected $hideAddress = false;
public function __construct()
{
$this->initStorageObjects();
}
protected function initStorageObjects()
{
$this->teasers = new ObjectStorage();
$this->links = new ObjectStorage();
}
/**
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* @param string $title
*/
public function setTitle($title)
{
$this->title = $title;
}
public function getHeaderImage()
{
return $this->headerImage;
}
public function setHeaderImage($headerImage)
{
$this->headerImage = $headerImage;
return $this;
}
public function getFooterImage()
{
return $this->footerImage;
}
public function setFooterImage($footerImage)
{
$this->footerImage = $footerImage;
return $this;
}
public function getSubline()
{
return $this->subline;
}
public function setSubline($subline)
{
$this->subline = $subline;
return $this;
}
public function getHeadline()
{
return $this->headline;
}
public function setHeadline($headline)
{
$this->headline = $headline;
return $this;
}
public function getIntroText()
{
return $this->introText;
}
public function setIntroText($introText)
{
$this->introText = $introText;
return $this;
}
public function getBusInfoText()
{
return $this->busInfoText;
}
public function setBusInfoText($busInfoText)
{
$this->busInfoText = $busInfoText;
return $this;
}
public function getDepartureText()
{
return $this->departureText;
}
public function setDepartureText($departureText)
{
$this->departureText = $departureText;
return $this;
}
public function getFooterText()
{
return $this->footerText;
}
public function setFooterText($footerText)
{
$this->footerText = $footerText;
return $this;
}
public function getAdditionalInfo()
{
return $this->additionalInfo;
}
public function setAdditionalInfo($additionalInfo)
{
$this->additionalInfo = $additionalInfo;
return $this;
}
public function getImportantPhoneNumbers()
{
return $this->importantPhoneNumbers;
}
public function setImportantPhoneNumbers($importantPhoneNumbers)
{
$this->importantPhoneNumbers = $importantPhoneNumbers;
return $this;
}
public function getImportantLinks()
{
return $this->importantLinks;
}
public function setImportantLinks($importantLinks)
{
$this->importantLinks = $importantLinks;
return $this;
}
public function getSelfArrangedText()
{
return $this->selfArrangedText;
}
public function setSelfArrangedText($selfArrangedText)
{
$this->selfArrangedText = $selfArrangedText;
return $this;
}
public function getTeasers()
{
return $this->teasers;
}
public function setTeasers($teasers)
{
$this->teasers = $teasers;
}
public function getLinks()
{
return $this->links;
}
public function setLinks($links)
{
$this->links = $links;
return $this;
}
public function getTravelCode()
{
return $this->travelCode;
}
public function setTravelCode($travelCode)
{
$this->travelCode = $travelCode;
return $this;
}
public function getProduct()
{
return $this->product;
}
public function setProduct($product)
{
$this->product = $product;
return $this;
}
public function isHideAddress()
{
return $this->hideAddress;
}
public function setHideAddress($hideAddress)
{
$this->hideAddress = $hideAddress;
return $this;
}
}
@@ -0,0 +1,60 @@
<?php
namespace EP\EpProducts\Domain\Model;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
class TravelinfoLink extends AbstractEntity
{
/**
* @var string
*/
protected $title;
/**
* @var string
*/
protected $link;
/**
* @var string
*/
protected $icon;
/**
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* @param string $title
*/
public function setTitle($title)
{
$this->title = $title;
}
public function getLink()
{
return $this->link;
}
public function setLink($link)
{
$this->link = $link;
}
public function getIcon()
{
return $this->icon;
}
public function setIcon($icon)
{
$this->icon = $icon;
}
}
@@ -0,0 +1,76 @@
<?php
namespace EP\EpProducts\Domain\Model;
use TYPO3\CMS\Extbase\Domain\Model\FileReference;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
class TravelinfoTeaser extends AbstractEntity
{
/**
* @var string
*/
protected $title;
/**
* @var string
*/
protected $bodytext;
/**
* @var string
*/
protected $category;
/**
* @var FileReference
*/
protected $image;
/**
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* @param string $title
*/
public function setTitle($title)
{
$this->title = $title;
}
public function getBodytext()
{
return $this->bodytext;
}
public function setBodytext($bodytext)
{
$this->bodytext = $bodytext;
}
public function getCategory()
{
return $this->category;
}
public function setCategory($category)
{
$this->category = $category;
}
public function getImage()
{
return $this->image;
}
public function setImage($image)
{
$this->image = $image;
}
}
@@ -0,0 +1,6 @@
<?php
namespace EP\EpProducts\Domain\Repository;
class TravelinfoRepository extends AbstractRepository
{}
@@ -13,6 +13,12 @@ call_user_func(function () {
'Suchergebnis'
);
ExtensionUtility::registerPlugin(
'EpProducts',
'travelinfo',
'Reiseinformationen'
);
ExtensionUtility::registerPlugin(
'EpProducts',
'watchlist',
@@ -0,0 +1,364 @@
<?php
use TYPO3\CMS\Core\Resource\FileType;
return [
'ctrl' => [
'title' => 'Reiseinformationen',
'default_sortby' => 'ORDER BY title',
'label' => 'title',
'prependAtCopy' => '[COPY %s]',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'origUid' => 't3_origuid',
'dividers2tabs' => true,
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title,travel_code',
'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg',
],
'types' => [
'1' => [
'showitem' => '--palette--;;basics,--div--;Texte,--palette--;;text,--div--;Bilder,--palette--;;images',
],
],
'palettes' => [
'basics' => ['showitem' => 'title,path_segment,--linebreak--,travel_code,hide_address,--linebreak--,links,
--linebreak--,teasers'],
'text' => ['showitem' => 'subline,headline,--linebreak--,intro_text,--linebreak--, bus_info_text,--linebreak--,
departure_text,--linebreak--,footer_text,--linebreak--,self_arranged_text,--linebreak--,additional_info,
--linebreak--,important_phone_numbers,--linebreak--,important_links'],
'images' => ['showitem' => 'header_image,--linebreak--,footer_image'],
],
'columns' => [
'sys_language_uid' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => ['type' => 'language'],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
'config' => [
'type' => 'select',
'default' => 0,
'renderType' => 'selectSingle',
'items' => [
['label' => '', 'value' => 0],
],
'foreign_table' => 'tx_epproducts_domain_model_travelinfo',
'foreign_table_where' => 'AND tx_epproducts_domain_model_travelinfo.pid=###CURRENT_PID### AND tx_epproducts_domain_model_travelinfo.sys_language_uid IN (-1,0)',
],
],
'l10n_diffsource' => [
'config' => [
'type' => 'passthrough',
],
],
't3ver_label' => [
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel',
'config' => [
'type' => 'input',
'size' => 30,
'max' => 255,
]
],
'hidden' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
'config' => [
'type' => 'check',
],
],
'starttime' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'endtime' => [
'exclude' => 0,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'title' => [
'exclude' => false,
'label' => 'Titel (nur intern genutzt)',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'required' => true
],
],
'subline' => [
'exclude' => 0,
'label' => 'Subline',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim'
],
],
'headline' => [
'exclude' => 0,
'label' => 'Headline',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim'
],
],
'header_image' => [
'exclude' => 0,
'label' => 'Headerbild',
'config' => [
// TODO: Important! Verify that the fieldname value in foreign table either matches the column name
// or is set properly in the following TCA, see https://docs.typo3.org/permalink/t3tca:confval-inline-foreign-match-fields
'type' => 'file',
'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
FileType::IMAGE->value => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette',
],
],
],
'maxitems' => 1,
'minitems' => 1,
],
],
'footer_image' => [
'exclude' => 0,
'label' => 'Footerbild',
'config' => [
// TODO: Important! Verify that the fieldname value in foreign table either matches the column name
// or is set properly in the following TCA, see https://docs.typo3.org/permalink/t3tca:confval-inline-foreign-match-fields
'type' => 'file',
'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
FileType::IMAGE->value => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette',
],
],
],
'maxitems' => 1,
'minitems' => 1,
],
],
'travel_code' => [
'exclude' => false,
'label' => 'Reisecode',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'required' => true
],
],
'hide_address' => [
'exclude' => 0,
'label' => 'Adresse ausblenden',
'config' => [
'type' => 'check',
],
],
'intro_text' => [
'exclude' => false,
'label' => 'Introtext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 3,
'eval' => 'trim',
'enableRichtext' => true,
'required' => true,
]
],
'bus_info_text' => [
'exclude' => false,
'label' => 'Businfo',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 3,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'departure_text' => [
'exclude' => false,
'label' => 'Abreise',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 3,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'footer_text' => [
'exclude' => false,
'label' => 'Footertext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 3,
'eval' => 'trim',
'enableRichtext' => true,
'required' => true,
]
],
'self_arranged_text' => [
'exclude' => false,
'label' => 'Eigenanreise',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'additional_info' => [
'exclude' => false,
'label' => 'Weitere Infos',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'important_phone_numbers' => [
'exclude' => false,
'label' => 'Wichtige Telefonnummern',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'important_links' => [
'exclude' => false,
'label' => 'Wichtige Links',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
]
],
'teasers' => [
'exclude' => false,
'label' => 'Inhalte',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_epproducts_domain_model_travelinfoteaser',
'foreign_sortby' => 'sorting',
'foreign_field' => 'tx_epproducts_travelinfo',
'minitems' => 0,
'maxitems' => 99,
'appearance' => [
'collapseAll' => true,
'expandSingle' => true,
'levelLinksPosition' => 'bottom',
'useSortable' => true,
'showPossibleLocalizationRecords' => false,
'showAllLocalizationLink' => false,
'showSynchronizationLink' => false,
'enabledControls' => [
'info' => false,
],
],
'behaviour' => [
'allowLanguageSynchronization' => false,
],
]
],
'links' => [
'exclude' => false,
'label' => 'Links',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_epproducts_domain_model_travelinfolink',
'foreign_sortby' => 'sorting',
'foreign_field' => 'tx_epproducts_travelinfo',
'minitems' => 0,
'maxitems' => 3,
'appearance' => [
'collapseAll' => true,
'expandSingle' => true,
'levelLinksPosition' => 'bottom',
'useSortable' => true,
'showPossibleLocalizationRecords' => false,
'showAllLocalizationLink' => false,
'showSynchronizationLink' => false,
'enabledControls' => [
'info' => false,
],
],
'behaviour' => [
'allowLanguageSynchronization' => false,
],
]
],
'path_segment' => [
'exclude' => 0,
'label' => 'URL',
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['title'],
'prefixParentPageSlug' => false,
'replacements' => [
'/' => '-',
],
],
'fallbackCharacter' => '-',
'eval' => 'unique',
],
],
],
];
@@ -0,0 +1,152 @@
<?php
return [
'ctrl' => [
'title' => 'Reiseinfo Link',
'label' => 'title',
'prependAtCopy' => '[COPY %s]',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'dividers2tabs' => true,
'versioningWS' => true,
'hideTable' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title',
'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg',
],
'types' => [
'1' => [
'showitem' => '--palette--;;basics,link',
],
],
'palettes' => [
'basics' => ['showitem' => 'title,icon,hidden'],
],
'columns' => [
'sys_language_uid' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => ['type' => 'language'],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
'config' => [
'type' => 'select',
'default' => 0,
'renderType' => 'selectSingle',
'items' => [
['label' => '', 'value' => 0],
],
'foreign_table' => 'tx_epproducts_domain_model_travelinfolink',
'foreign_table_where' => 'AND tx_epproducts_domain_model_travelinfolink.pid=###CURRENT_PID### AND tx_epproducts_domain_model_travelinfolink.sys_language_uid IN (-1,0)',
],
],
'l10n_diffsource' => [
'config' => [
'type' => 'passthrough',
],
],
't3ver_label' => [
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel',
'config' => [
'type' => 'input',
'size' => 30,
'max' => 255,
]
],
'hidden' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
'config' => [
'type' => 'check',
],
],
'starttime' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'endtime' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'title' => [
'exclude' => false,
'label' => 'Bezeichnung',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'required' => true
],
],
'link' => [
'exclude' => false,
'label' => 'Link',
'config' => [
'type' => 'link',
'size' => 30,
'required' => true
],
],
'icon' => [
'exclude' => 0,
'label' => 'Icon',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['label' => 'Anreise', 'value' => 'travel'],
['label' => 'Skipass', 'value' => 'skipass'],
['label' => 'Kurse', 'value' => 'course'],
['label' => 'Verpflegung', 'value' => 'food'],
['label' => 'Gepäck', 'value' => 'luggage'],
['label' => 'Lift', 'value' => 'lift'],
['label' => 'Webcam', 'value' => 'webcam'],
['label' => 'Wetter', 'value' => 'weather'],
['label' => 'Wissenswertes', 'value' => 'chat'],
['label' => 'Währung', 'value' => 'currency'],
],
],
],
'tx_epproducts_travelinfo' => [
'config' => [
'type' => 'passthrough'
]
],
'sorting' => [
'config' => [
'type' => 'passthrough'
]
],
],
];
@@ -0,0 +1,210 @@
<?php
use TYPO3\CMS\Core\Resource\FileType;
return [
'ctrl' => [
'title' => 'Reiseinfo Teaser',
'label' => 'title',
'prependAtCopy' => '[COPY %s]',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'origUid' => 't3_origuid',
'dividers2tabs' => true,
'versioningWS' => true,
'hideTable' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title',
'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg',
],
'types' => [
'1' => [
'showitem' => '--palette--;;basics,bodytext,image',
],
],
'palettes' => [
'basics' => ['showitem' => 'title,category,hidden'],
],
'columns' => [
'sys_language_uid' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => ['type' => 'language'],
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
'config' => [
'type' => 'select',
'default' => 0,
'renderType' => 'selectSingle',
'items' => [
['label' => '', 'value' => 0],
],
'foreign_table' => 'tx_epproducts_domain_model_travelinfoteaser',
'foreign_table_where' => 'AND tx_epproducts_domain_model_travelinfoteaser.pid=###CURRENT_PID### AND tx_epproducts_domain_model_travelinfoteaser.sys_language_uid IN (-1,0)',
],
],
'l10n_diffsource' => [
'config' => [
'type' => 'passthrough',
],
],
't3ver_label' => [
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel',
'config' => [
'type' => 'input',
'size' => 30,
'max' => 255,
]
],
'hidden' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
'config' => [
'type' => 'check',
],
],
'starttime' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'endtime' => [
'exclude' => false,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
'config' => [
'type' => 'datetime',
'size' => 13,
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
],
],
'title' => [
'exclude' => false,
'label' => 'Bezeichnung/Überschrift',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'required' => true
],
],
'bodytext' => [
'exclude' => false,
'label' => 'Text',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
'required' => true,
]
],
'image' => [
'exclude' => 0,
'label' => 'Bild',
'config' => [
// TODO: Important! Verify that the fieldname value in foreign table either matches the column name
// or is set properly in the following TCA, see https://docs.typo3.org/permalink/t3tca:confval-inline-foreign-match-fields
'type' => 'file',
'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
FileType::IMAGE->value => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette',
],
],
'columns' => [
'crop' => [
'config' => [
'cropVariants' => [
'default' => [
'title' => 'Alle Geräte',
'allowedAspectRatios' => [
'teaser' => [
'title' => 'quadtratisch',
'value' => 1,
],
],
],
],
],
],
],
],
'maxitems' => 1,
'minitems' => 1,
],
],
'category' => [
'exclude' => 0,
'label' => 'Kategorie/Icon',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['label' => 'Anreise', 'value' => 'travel'],
['label' => 'Auto', 'value' => 'car'],
['label' => 'Bus', 'value' => 'bus'],
['label' => 'Gepäck', 'value' => 'luggage'],
['label' => 'Getränke', 'value' => 'drinks'],
['label' => 'Kurse', 'value' => 'course'],
['label' => 'Lift', 'value' => 'lift'],
['label' => 'Programm', 'value' => 'program'],
['label' => 'Skipass', 'value' => 'skipass'],
['label' => 'Verpflegung', 'value' => 'food'],
['label' => 'Webcam', 'value' => 'webcam'],
['label' => 'Wetter', 'value' => 'weather'],
['label' => 'Wissenswertes', 'value' => 'chat'],
['label' => 'Leihmaterial', 'value' => 'rental'],
['label' => 'Teilnehmer', 'value' => 'participants'],
['label' => 'Bett', 'value' => 'bed'],
['label' => 'Ablauf', 'value' => 'sequence'],
['label' => 'Partner', 'value' => 'partner'],
],
'maxitems' => 1,
'minitems' => 1,
],
],
'tx_epproducts_travelinfo' => [
'config' => [
'type' => 'passthrough'
]
],
'sorting' => [
'config' => [
'type' => 'passthrough'
]
],
],
];
+9
View File
@@ -2,6 +2,7 @@
use TYPO3\CMS\Extbase\Utility\ExtensionUtility;
use EP\EpProducts\Controller\ProductController;
use EP\EpProducts\Controller\SearchController;
use EP\EpProducts\Controller\TravelinfoController;
use EP\EpProducts\Controller\WatchlistController;
use EP\EpProducts\Controller\AjaxFilterPanelController;
use EP\EpProducts\Controller\AjaxSearchController;
@@ -72,6 +73,14 @@ $boot = function () {
]
);
ExtensionUtility::configurePlugin(
'EpProducts',
'travelinfo',
[
TravelinfoController::class => 'travelInfo,travelCode',
]
);
ExtensionUtility::configurePlugin(
'EpProducts',
'ajax',
@@ -0,0 +1,28 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<header class="container bg-white flex items-center justify-between">
<f:link.typolink parameter="{f:if(condition: settings.logoLink, then: settings.logoLink, else: settings.defaultHomeUid)}"
class="block lg:pb-4"
title="zur Startseite">
<f:image src="{settings.logoImage}"
class="block w-auto {ep:themeClasses(classes: '{ep: \'h-10 lg:h-12\', sbw: \'h-14 lg:h-24\', snz: \'h-14 lg:h-24\', suz: \'h-14 lg:h-24\', uch: \'h-12 lg:h-20\', ser: \'h-10 lg:h-12\'}', key: settings.themekey)}"
alt="Bildmarke"/>
</f:link.typolink>
<f:link.typolink parameter="{settings.myEpPageUid}"
title="My E&P"
class="block px-4 py-3 lg:px-8 lg:py-4 bg-badge-gradient text-white uppercase text-center">
<div class="text-xl lg:text-2xl font-light leading-none">Login</div>
<div class="text-lg lg:text-xl font-medium leading-none">My E&P</div>
</f:link.typolink>
</header>
<main id="main-content">
<f:render section="Content"/>
</main>
<footer>
<f:render partial="Footer" arguments="{_all}"/>
</footer>
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -0,0 +1,532 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:section name="Main">
<div class="container relative">
<div class="h-80 lg:h-128">
<f:image image="{travelInfo.headerImage}"
width="1280"
alt="Reiseinformationen"
class="block w-full h-full object-cover object-center" />
</div>
<div class="absolute top-8 lg:top-16 left-1/2 -translate-x-1/2 w-full max-w-screen-sm lg:left-0 lg:-translate-x-0 lg:max-w-none px-8 lg:px-24 h-64 lg:h-128 flex flex-col items-start justify-between">
<div class="bg-ep-primary-dark/80 p-4 text-2xl mb-4 lg:mb-0 md:text-3xl lg:text-6xl text-white uppercase font-black">
Reiseinformation
</div>
<div class="grid grid-cols-2 lg:grid-cols-4">
<f:variable name="bgColors" value="{0: 'bg-[#165883]/90', 1: 'bg-[#9DBACE]/90', 2: 'bg-[#3396E4]/90', 3: 'bg-[#0268AA]/90'}"/>
<f:variable name="linksCount" value="{travelInfo.links -> f:count()}"/>
<f:for each="{travelInfo.links}" as="link" iteration="iteration">
<f:render section="Link" arguments="{item: link, color: '{bgColors.{iteration.index}}'}"/>
</f:for>
<a href="#goodtoknow"
data-controller="scroll-to"
data-scroll-to-target-value="goodtoknow"
data-action="scroll-to#scroll"
class="flex flex-col space-y-4 items-center justify-center px-4 py-4 lg:py-16 text-white {bgColors.{linksCount}}">
<div class="w-10 h-10 lg:w-24 lg:h-24">
<f:render section="Icon" arguments="{icon: 'chat'}" />
</div>
<div class="uppercase lg:text-xl text-center leading-tight">
Wissens&shy;wertes
</div>
</a>
</div>
</div>
</div>
<div class="pb-32 pt-32 lg:pt-52 -mt-24 bg-ep-primary-bg">
<div class="container px-8 lg:px-24" data-rte-content>
<h1 class="headline--underlined headline--has-subline">
<span class="subline">{travelInfo.subline}</span>
{travelInfo.headline}
</h1>
{travelInfo.introText -> f:format.html()}
<f:if condition="{travelData}">
<p>
{travelData.label} {travelData.dateFrom -> f:format.date(format: 'd.m.Y')} - {travelData.dateTo -> f:format.date(format: 'd.m.Y')}
</p>
</f:if>
</div>
</div>
<div class="container -mt-24 mb-16">
<div class="flex flex-col lg:flex-row divide-y lg:divide-y-0 lg:divide-x divide-white bg-brand-gradient px-8 lg:px-0 py-8">
<div class="lg:w-1/4 flex flex-col space-y-4 pb-8 lg:pb-0 lg:px-8">
<div class="w-32 h-32 xl:w-16 xl:h-16 text-ep-primary">
<f:render section="Icon" arguments="{icon: 'travel'}"/>
</div>
<div class="text-2xl lg:text-4xl text-white uppercase font-bold">
Anreise
</div>
</div>
<div class="lg:w-3/4 pt-8 lg:pt-0 lg:px-8 text-white" data-rte-content>
<f:if condition="{travelData}">
<f:if condition="{travelInfo.hideAddress}">
<f:else>
<h3 class="text-white">
Adresse
</h3>
<p>
{travelData.hotel.name}
<br>
{travelData.hotel.street}
<br>
{travelData.hotel.country} {travelData.hotel.city}
</p>
</f:else>
</f:if>
<f:if condition="{pickupsPlanning -> f:count()} > 0">
<f:then>
<f:if condition="{pickupsPlanning -> f:count()} <= 3">
<f:then>
<f:render section="PickupsPlanning" arguments="{_all}"/>
</f:then>
<f:else>
<div data-controller="autocollapse" data-autocollapse-height-value="400" data-autocollapse-offset-value="64" class="pb-4">
<div class="relative pb-12" data-autocollapse-target="container">
<f:render section="PickupsPlanning" arguments="{_all}"/>
<div class="absolute left-0 bottom-0 w-full h-12 bg-white flex items-center">
<button type="button"
data-autocollapse-target="button"
data-action="autocollapse#toggle"
class="hidden text-ep-primary w-10 h-10 ml-2 group toggle-more">
<f:render section="Icon" arguments="{icon: 'toggle'}" />
</button>
</div>
</div>
</div>
</f:else>
</f:if>
</f:then>
<f:else>
<f:if condition="{travelData.pickupsTo -> f:count()} > 0">
<f:if condition="{travelData.pickupsTo -> f:count()} <= 3">
<f:then>
<f:render section="Pickups" arguments="{_all}"/>
</f:then>
<f:else>
<div data-controller="autocollapse" data-autocollapse-height-value="400" data-autocollapse-offset-value="64" class="pb-4">
<div class="relative pb-12" data-autocollapse-target="container">
<f:render section="Pickups" arguments="{_all}"/>
<div class="absolute left-0 bottom-0 w-full h-12 bg-white flex items-center">
<button type="button"
data-autocollapse-target="button"
data-action="autocollapse#toggle"
class="hidden text-ep-primary w-10 h-10 ml-2 group toggle-more">
<f:render section="Icon" arguments="{icon: 'toggle'}" />
</button>
</div>
</div>
</div>
</f:else>
</f:if>
</f:if>
</f:else>
</f:if>
</f:if>
<f:if condition="{travelInfo.selfArrangedText}">
<h3 class="text-white">
Eigenanreise
</h3>
{travelInfo.selfArrangedText -> f:format.html()}
</f:if>
</div>
</div>
</div>
<div class="container px-4 lg:px-24 mb-8">
<h2 class="headline--underlined headline--has-subline">
<span class="subline">Sei vorbereitet!</span>
Organisatorisches
</h2>
</div>
<div class="container px-4 lg:px-24 flex flex-col space-y-16 pb-16">
<f:for each="{travelInfo.teasers}" as="teaser">
<f:render section="Teaser" arguments="{_all}"/>
</f:for>
</div>
<div id="goodtoknow" class="bg-ep-primary-bg">
<div class="container">
<f:if condition="{travelInfo.additionalInfo}">
<div class="travel-info-box bg-[#B48F1D]">
<div class="lg:w-1/4 flex flex-col space-y-4 pb-8 lg:pb-0 lg:px-8">
<div class="travel-info-box-title text-[#F9C700]">
<f:render section="Icon" arguments="{icon: 'chat'}"/>
</div>
<div class="travel-info-box-title__inner">
Weitere Infos
</div>
</div>
<div class="travel-info-box-content" data-rte-content>
{travelInfo.additionalInfo -> f:format.html()}
</div>
</div>
</f:if>
<f:if condition="{travelInfo.importantPhoneNumbers}">
<div class="travel-info-box bg-[#F8C62F]">
<div class="travel-info-box-title">
<div class="travel-info-box-title__inner">
Wichtige Telefon&shy;nummern
</div>
</div>
<div class="travel-info-box-content" data-rte-content>
<f:if condition="{travelData.guide}">
<p>
<strong>Busbegleitung / Reiseleitung</strong>
<br>
{travelData.guide.name} {travelData.guide.phone}
</p>
</f:if>
{travelInfo.importantPhoneNumbers -> f:format.html()}
</div>
</div>
</f:if>
<f:if condition="{travelInfo.importantLinks}">
<div class="travel-info-box bg-[#18527B]">
<div class="travel-info-box-title">
<div class="travel-info-box-title__inner">
Wichtige Links vor Ort
</div>
</div>
<div class="travel-info-box-content" data-rte-content>
{travelInfo.importantLinks -> f:format.html()}
</div>
</div>
</f:if>
</div>
</div>
<div class="container px-4 lg:px-24 py-16">
{travelInfo.footerText -> f:format.html()}
<f:image src="EXT:ep_theme/Resources/Public/images/signature_ep_team.png" class="block w-full max-w-64 h-auto mt-8" alt="" />
</div>
<div class="container">
<f:image image="{travelInfo.footerImage}" width="1028" class="block w-full h-auto" alt="" />
</div>
</f:section>
<f:section name="Teaser">
<div class="grid grid-cols-1 md:grid-cols-3 gap-x-8"
data-controller="autocollapse"
data-autocollapse-offset-value="64">
<div class="relative self-start" data-autocollapse-target="sizer">
<f:if condition="{teaser.image}">
<f:then>
<f:image image="{teaser.image}" width="640" alt="" class="block w-full h-auto" />
</f:then>
<f:else>
<div class="bg-ep-primary object-cover"></div>
</f:else>
</f:if>
<div class="absolute top-0 left-0 inset-0 bg-ep-primary/25 flex items-center justify-center">
<div class="w-32 h-32 xl:w-48 xl:h-48 text-white">
<f:render section="Icon" arguments="{icon: teaser.category}"/>
</div>
</div>
</div>
<div class="md:col-span-2 relative p-4 md:p-0 md:pb-4 border border-gray-300 md:border-none">
<div class="pb-8"
data-autocollapse-target="container"
data-rte-content>
<h2 class="headline--primary">
{teaser.title}
</h2>
<f:if condition="{travelData}">
<f:if condition="{teaser.category} == 'food'">
<f:if condition="{board -> f:count()} > 0">
<f:then>
<ul>
<f:for as="item" each="{board}">
<li>
{item.label}
</li>
</f:for>
</ul>
</f:then>
</f:if>
</f:if>
<f:if condition="{teaser.category} == 'course'">
<f:if condition="{courses -> f:count()} > 0">
<f:then>
<p>
<strong>Folgende Kurse finden statt</strong>
</p>
<ul>
<f:for as="course" each="{courses}">
<li>
{course.label}
</li>
</f:for>
</ul>
</f:then>
<f:else>
<p>
Bei Eurer Reise finden keine Kurse statt.
</p>
</f:else>
</f:if>
</f:if>
</f:if>
{teaser.bodytext -> f:format.html()}
</div>
<div class="absolute left-0 bottom-0 w-full bg-gradient-to-b from-transparent via-white via-20% to-white pt-2 md:pt-0">
<button type="button"
data-autocollapse-target="button"
data-action="autocollapse#toggle"
class="hidden text-ep-primary w-12 h-12 ml-4 md:ml-0 group toggle-more">
<f:render section="Icon" arguments="{icon: 'toggle'}" />
</button>
<div class="bg-ep-primary w-full md:w-1/3 h-1"></div>
</div>
</div>
</div>
</f:section>
<f:section name="Link">
<f:link.typolink parameter="{item.link}" class="flex flex-col space-y-4 items-center justify-center px-4 py-4 lg:py-16 text-white {color}">
<div class="w-10 h-10 lg:w-24 lg:h-24">
<f:render section="Icon" arguments="{icon: item.icon}" />
</div>
<div class="uppercase lg:text-xl text-center leading-tight">
{item.title -> f:format.raw()}
</div>
</f:link.typolink>
</f:section>
<f:section name="PickupsPlanning">
<h3 class="text-white">
Bus-Zustiege
</h3>
<p>
Bitte findet euch mindestens <strong>20 Minuten vor Abfahrt</strong> an der gebuchten Haltestelle ein.
</p>
{travelInfo.busInfoText -> f:format.html()}
<table class="w-full bg-zinc-200 text-zinc-800 text-xs md:text-base mb-4">
<tr>
<th class="border-r border-white/50 px-2 py-1 md:p-2 text-left text-sm md:text-base">
Zustieg
</th>
<th class="border-r border-white/50 px-2 py-1 md:p-2 text-sm md:text-base">
Datum/Uhrzeit
</th>
</tr>
<f:for each="{pickupsPlanning}" as="pickup">
<tr class="odd:bg-zinc-50 align-top">
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
{pickup.city}<br><span class="text-xs">{pickup.location}</span>
</td>
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
{pickup.datetime -> f:format.date(format: 'd.m.Y')}<br>{pickup.datetime -> f:format.date(format: 'H:i')} Uhr
</td>
</tr>
</f:for>
</table>
<f:if condition="{departureDayTime}">
<p>
Die Rückreise mit dem Bus startet <strong>{departureDayTime}</strong>.
</p>
</f:if>
{travelInfo.departureText -> f:format.html()}
</f:section>
<f:section name="Pickups">
<h3 class="text-white">
Bus-Zustiege
</h3>
<p>
Bitte findet euch mindestens <strong>20 Minuten vor Abfahrt</strong> an der gebuchten Haltestelle ein.
</p>
{travelInfo.busInfoText -> f:format.html()}
<table class="w-full bg-zinc-200 text-zinc-800 text-xs md:text-base mb-4">
<tr>
<th class="border-r border-white/50 px-2 py-1 md:p-2 text-left text-sm md:text-base">
Zustieg
</th>
<th class="border-r border-white/50 px-2 py-1 md:p-2 text-sm md:text-base">
Datum/Uhrzeit
</th>
</tr>
<f:for each="{travelData.pickupsTo}" as="pickup">
<tr class="odd:bg-zinc-50 align-top">
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
{pickup.city}<br><span class="text-xs">{pickup.street}</span>
</td>
<td class="border-r border-zinc-200 px-2 py-1 md:p-2">
{pickup.time -> f:format.date(format: 'd.m.Y')}<br>{pickup.time -> f:format.date(format: 'H:i')} Uhr
</td>
</tr>
</f:for>
</table>
<f:if condition="{departureDayTime}">
<p>
Die Rückreise mit dem Bus startet <strong>{departureDayTime}</strong>.
</p>
</f:if>
{travelInfo.departureText -> f:format.html()}
</f:section>
<f:section name="Icon">
<f:switch expression="{icon}">
<f:case value="travel">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M38.271,44.944C37.617,45.598 37.126,46.294 36.799,47.03C36.472,47.766 36.308,48.625 36.308,49.606L36.308,214.504C36.308,216.14 36.88,217.53 38.026,218.675C39.171,219.82 40.561,220.393 42.197,220.393C43.833,220.393 45.224,219.82 46.369,218.675C47.514,217.53 48.086,216.14 48.086,214.504L48.086,170.089C61.828,158.965 74.874,154.957 87.225,158.066C99.576,161.174 112.458,166 125.873,172.543C133.889,176.469 142.15,180.191 150.656,183.708C159.163,187.225 167.915,188.984 176.912,188.984C183.62,188.984 190.449,187.716 197.402,185.18C204.355,182.645 211.511,178.187 218.873,171.807C219.364,171.316 219.814,170.662 220.223,169.844C220.632,169.026 220.836,168.208 220.836,167.39L220.836,49.606C220.836,47.97 220.263,46.58 219.118,45.435C217.973,44.29 216.583,43.717 214.947,43.717C214.129,43.717 213.393,43.84 212.738,44.085C212.084,44.331 211.511,44.617 211.021,44.944C196.788,57.377 183.374,62.08 170.778,59.053C158.182,56.027 145.013,51.079 131.271,44.208C124.4,40.772 117.284,37.501 109.923,34.393C102.561,31.284 95.036,29.28 87.348,28.381C79.659,27.481 71.725,28.176 63.545,30.466C55.366,32.757 46.941,37.583 38.271,44.944M209.058,164.691C195.316,175.815 182.27,179.823 169.919,176.715C157.568,173.607 144.686,168.699 131.271,161.992C125.055,159.047 118.675,156.103 112.131,153.158C105.424,150.213 98.635,148.128 91.765,146.901C84.894,145.674 77.778,145.551 70.416,146.533C63.218,147.678 55.775,150.704 48.086,155.612L48.086,52.305C61.828,41.018 74.874,36.928 87.225,40.036C99.576,43.145 112.458,48.052 125.873,54.759C132.089,57.868 138.469,60.894 145.013,63.839C151.72,66.62 158.509,68.664 165.379,69.973C172.25,71.282 179.366,71.364 186.728,70.218C193.926,69.073 201.369,66.129 209.058,61.385L209.058,164.691Z"/>
</g>
</svg>
</f:case>
<f:case value="course">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M215.905,68.046L36.311,68.046C32.726,68.046 29.647,69.332 27.074,71.904C24.502,74.477 23.216,77.556 23.216,81.141L23.216,148.489C23.216,152.075 24.502,155.154 27.074,157.726C29.647,160.298 32.726,161.584 36.311,161.584L60.631,161.584L60.631,193.388C60.631,194.947 61.177,196.272 62.268,197.363C63.359,198.454 64.684,199 66.243,199C67.802,199 69.128,198.454 70.219,197.363C71.31,196.272 71.856,194.947 71.856,193.388L71.856,161.584L180.36,161.584L180.36,193.388C180.36,194.947 180.906,196.272 181.997,197.363C183.089,198.454 184.414,199 185.973,199C187.532,199 188.857,198.454 189.948,197.363C191.039,196.272 191.585,194.947 191.585,193.388L191.585,161.584L215.905,161.584C219.491,161.584 222.57,160.298 225.142,157.726C227.714,155.154 229,152.075 229,148.489L229,81.141C229,77.556 227.714,74.477 225.142,71.904C222.57,69.332 219.491,68.046 215.905,68.046M217.776,81.141L217.776,131.184L165.862,79.271L215.905,79.271C216.373,79.271 216.801,79.465 217.191,79.855C217.581,80.245 217.776,80.674 217.776,81.141M36.311,79.271L82.613,79.271L153.702,150.36L102.256,150.36L34.44,82.544L34.44,81.141C34.44,80.674 34.635,80.245 35.025,79.855C35.415,79.465 35.843,79.271 36.311,79.271M34.44,148.489L34.44,98.446L86.354,150.36L36.311,150.36C35.843,150.36 35.415,150.165 35.025,149.775C34.635,149.385 34.44,148.957 34.44,148.489M215.905,150.36L169.603,150.36L98.514,79.271L149.96,79.271L217.776,147.086L217.776,148.489C217.776,148.957 217.581,149.385 217.191,149.775C216.801,150.165 216.373,150.36 215.905,150.36"/>
</g>
</svg>
</f:case>
<f:case value="luggage">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M153.863,54.439L153.863,45.4C153.863,40.109 151.952,35.553 148.131,31.732C144.31,27.911 139.754,26 134.463,26L106.245,26C100.954,26 96.398,27.911 92.577,31.732C88.755,35.553 86.845,40.109 86.845,45.4L86.845,54.439C80.819,55.174 75.234,56.937 70.09,59.73C64.946,62.375 60.501,65.829 56.753,70.091C53.005,74.353 50.029,79.13 47.824,84.421C45.62,89.859 44.518,95.664 44.518,101.837L44.518,207.655C44.518,211.035 45.73,213.938 48.155,216.363C50.58,218.788 53.483,220 56.863,220L183.845,220C187.225,220 190.128,218.788 192.553,216.363C194.978,213.938 196.19,211.035 196.19,207.655L196.19,101.837C196.19,95.664 195.088,89.932 192.883,84.641C190.679,79.203 187.703,74.353 183.955,70.091C180.207,65.829 175.761,62.375 170.618,59.73C165.474,56.937 159.962,55.174 154.083,54.439L153.863,54.439ZM106.245,36.582L134.463,36.582C136.961,36.582 139.056,37.427 140.746,39.117C142.436,40.808 143.281,42.902 143.281,45.4L143.281,54.219L97.427,54.219L97.427,45.4C97.427,42.902 98.272,40.808 99.962,39.117C101.652,37.427 103.746,36.582 106.245,36.582M157.39,160.037L83.318,160.037L83.318,151.219C83.318,148.72 84.163,146.626 85.853,144.936C87.543,143.245 89.637,142.4 92.136,142.4L148.572,142.4C151.071,142.4 153.165,143.245 154.855,144.936C156.545,146.626 157.39,148.72 157.39,151.219L157.39,160.037ZM83.318,170.619L129.172,170.619L129.172,179.437C129.172,180.906 129.687,182.156 130.715,183.184C131.744,184.213 132.993,184.728 134.463,184.728C135.933,184.728 137.182,184.213 138.211,183.184C139.239,182.156 139.754,180.906 139.754,179.437L139.754,170.619L157.39,170.619L157.39,209.419L83.318,209.419L83.318,170.619ZM185.608,207.655C185.608,208.096 185.425,208.5 185.057,208.867C184.69,209.235 184.286,209.419 183.845,209.419L167.972,209.419L167.972,151.219C167.972,145.928 166.062,141.372 162.24,137.55C158.419,133.729 153.863,131.819 148.572,131.819L92.136,131.819C86.845,131.819 82.289,133.729 78.468,137.55C74.646,141.372 72.736,145.928 72.736,151.219L72.736,209.419L56.863,209.419C56.422,209.419 56.018,209.235 55.65,208.867C55.283,208.5 55.099,208.096 55.099,207.655L55.099,101.837C55.099,91.549 58.7,82.804 65.902,75.603C73.103,68.401 81.848,64.8 92.136,64.8L148.572,64.8C158.86,64.8 167.605,68.401 174.806,75.603C182.008,82.804 185.608,91.549 185.608,101.837L185.608,207.655ZM139.754,94.782C139.754,96.252 139.239,97.501 138.211,98.53C137.182,99.559 135.933,100.073 134.463,100.073L106.245,100.073C104.775,100.073 103.526,99.559 102.497,98.53C101.468,97.501 100.954,96.252 100.954,94.782C100.954,93.313 101.468,92.063 102.497,91.034C103.526,90.006 104.775,89.491 106.245,89.491L134.463,89.491C135.933,89.491 137.182,90.006 138.211,91.034C139.239,92.063 139.754,93.313 139.754,94.782"/>
</g>
</svg>
</f:case>
<f:case value="skipass">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M197.077,211.419C197.077,211.836 196.903,212.218 196.556,212.565C196.208,212.913 195.826,213.087 195.409,213.087L75.344,213.087C74.928,213.087 74.545,212.913 74.198,212.565C73.851,212.218 73.677,211.836 73.677,211.419L73.677,64.673C73.677,64.256 73.851,63.874 74.198,63.526C74.545,63.179 74.928,63.005 75.344,63.005L112.507,63.005L129.875,87.043L93.674,87.043C92.285,87.043 91.103,87.53 90.131,88.502C89.158,89.475 88.671,90.656 88.671,92.046C88.671,93.436 89.158,94.617 90.131,95.59C91.103,96.562 92.285,97.049 93.674,97.049L173.718,97.049C175.107,97.049 176.288,96.562 177.261,95.59C178.234,94.617 178.72,93.436 178.72,92.046C178.72,90.656 178.234,89.475 177.261,88.502C176.288,87.53 175.107,87.043 173.718,87.043L150.875,87.043L133.507,63.005L195.409,63.005C195.826,63.005 196.208,63.179 196.556,63.526C196.903,63.874 197.077,64.256 197.077,64.673L197.077,211.419ZM203.643,56.439C201.35,54.146 198.606,53 195.409,53L159.025,53L183.012,20L162.012,20L137.89,53L126.277,53L100.988,18L79.988,18L105.277,53L75.344,53C72.148,53 69.404,54.146 67.111,56.439C64.818,58.732 63.671,61.477 63.671,64.673L63.671,211.419C63.671,214.615 64.818,217.36 67.111,219.653C69.404,221.945 72.148,223.092 75.344,223.092L195.409,223.092C198.606,223.092 201.35,221.945 203.643,219.653C205.936,217.36 207.082,214.615 207.082,211.419L207.082,64.673C207.082,61.477 205.936,58.732 203.643,56.439"/>
<path d="M97.041,166.489C96.094,167.338 94.718,167.762 92.914,167.762L86.821,167.762L86.821,157.371L93.074,157.371C94.756,157.402 96.075,157.917 97.03,158.917C97.985,159.917 98.462,161.229 98.462,162.851C98.462,164.428 97.989,165.64 97.041,166.489M103.828,157.088C102.812,155.412 101.361,154.12 99.474,153.211C97.587,152.301 95.4,151.846 92.914,151.846L80,151.846L80,184.951L86.821,184.951L86.821,173.287L92.801,173.287C96.726,173.287 99.8,172.352 102.021,170.479C104.241,168.607 105.352,166.049 105.352,162.806C105.352,160.668 104.843,158.763 103.828,157.088"/>
<path d="M114.56,172.606L118.675,160.214L122.835,172.606L114.56,172.606ZM115.515,151.847L103.191,184.952L110.445,184.952L112.718,178.131L124.677,178.131L126.974,184.952L134.227,184.952L121.835,151.847L115.515,151.847Z"/>
<path d="M145.163,157.883C146.088,157.179 147.384,156.825 149.052,156.825C150.78,156.825 152.122,157.246 153.075,158.088C154.031,158.929 154.508,160.108 154.508,161.623L161.33,161.623C161.33,159.637 160.818,157.864 159.795,156.303C158.771,154.742 157.335,153.533 155.487,152.677C153.637,151.82 151.529,151.392 149.165,151.392C146.816,151.392 144.698,151.786 142.81,152.574C140.923,153.362 139.476,154.458 138.468,155.86C137.459,157.262 136.955,158.857 136.955,160.645C136.955,164.086 138.835,166.822 142.594,168.854C143.973,169.596 145.846,170.351 148.211,171.116C150.575,171.882 152.212,172.609 153.122,173.299C154.031,173.989 154.486,174.978 154.486,176.266C154.486,177.448 154.031,178.37 153.122,179.028C152.212,179.688 150.947,180.017 149.324,180.017C144.959,180.017 142.776,178.191 142.776,174.538L135.933,174.538C135.933,176.675 136.482,178.555 137.58,180.177C138.679,181.799 140.275,183.076 142.367,184.008C144.459,184.94 146.778,185.406 149.324,185.406C152.993,185.406 155.911,184.592 158.078,182.962C160.246,181.333 161.33,179.086 161.33,176.221C161.33,173.643 160.442,171.491 158.67,169.763C156.895,168.035 154.068,166.588 150.188,165.421C148.082,164.784 146.486,164.101 145.402,163.374C144.318,162.646 143.777,161.745 143.777,160.669C143.777,159.517 144.239,158.588 145.163,157.883"/>
<path d="M173.789,157.883C174.714,157.179 176.01,156.825 177.678,156.825C179.406,156.825 180.748,157.246 181.701,158.088C182.658,158.929 183.134,160.108 183.134,161.623L189.956,161.623C189.956,159.637 189.444,157.864 188.421,156.303C187.397,154.742 185.961,153.533 184.113,152.677C182.262,151.82 180.154,151.392 177.791,151.392C175.442,151.392 173.324,151.786 171.436,152.574C169.549,153.362 168.101,154.458 167.094,155.86C166.085,157.262 165.581,158.857 165.581,160.645C165.581,164.086 167.461,166.822 171.22,168.854C172.599,169.596 174.472,170.351 176.837,171.116C179.201,171.882 180.839,172.609 181.748,173.299C182.658,173.989 183.112,174.978 183.112,176.266C183.112,177.448 182.658,178.37 181.748,179.028C180.839,179.688 179.573,180.017 177.95,180.017C173.585,180.017 171.402,178.191 171.402,174.538L164.559,174.538C164.559,176.675 165.107,178.555 166.206,180.177C167.305,181.799 168.901,183.076 170.993,184.008C173.085,184.94 175.404,185.406 177.95,185.406C181.619,185.406 184.537,184.592 186.704,182.962C188.872,181.333 189.956,179.086 189.956,176.221C189.956,173.643 189.068,171.491 187.296,169.763C185.521,168.035 182.695,166.588 178.814,165.421C176.708,164.784 175.112,164.101 174.028,163.374C172.944,162.646 172.403,161.745 172.403,160.669C172.403,159.517 172.865,158.588 173.789,157.883"/>
</g>
</svg>
</f:case>
<f:case value="food">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M46.496,100.165L202.71,100.165C206.452,100.165 209.666,98.823 212.351,96.138C215.036,93.453 216.378,90.239 216.378,86.496C216.378,86.008 216.338,85.52 216.256,85.032C216.175,84.544 216.134,84.055 216.134,83.567C214.344,75.268 210.683,67.539 205.15,60.379C199.781,53.382 193.028,47.321 184.891,42.195C176.755,37.069 167.562,33.123 157.31,30.357C147.058,27.428 136.156,25.964 124.603,25.964C113.049,25.964 102.147,27.428 91.896,30.357C81.644,33.123 72.45,37.069 64.314,42.195C56.178,47.321 49.425,53.382 44.055,60.379C38.523,67.539 34.861,75.268 33.071,83.567C33.071,84.055 33.031,84.544 32.949,85.032C32.868,85.52 32.827,86.008 32.827,86.496C32.827,90.239 34.17,93.453 36.855,96.138C39.54,98.823 42.753,100.165 46.496,100.165M44.543,86.008C46.008,79.174 49.181,72.746 54.063,66.726C58.782,60.868 64.721,55.782 71.881,51.47C79.041,47.158 87.095,43.782 96.045,41.341C105.157,38.9 114.677,37.68 124.603,37.68C134.529,37.68 144.048,38.9 153.161,41.341C162.11,43.782 170.165,47.158 177.325,51.47C184.485,55.782 190.505,60.868 195.387,66.726C200.106,72.746 203.198,79.174 204.662,86.008L204.662,86.496C204.662,86.984 204.5,87.432 204.174,87.839C203.849,88.246 203.36,88.449 202.71,88.449L46.496,88.449C46.008,88.449 45.56,88.246 45.154,87.839C44.747,87.432 44.543,86.984 44.543,86.496L44.543,86.008ZM224.189,151.178L183.183,166.068L146.326,151.423C146.001,151.26 145.635,151.138 145.228,151.056C144.821,150.975 144.455,150.934 144.129,150.934C143.804,150.934 143.438,150.975 143.031,151.056C142.624,151.138 142.258,151.26 141.933,151.423L105.076,166.068L68.219,151.423C67.894,151.26 67.528,151.138 67.121,151.056C66.714,150.975 66.348,150.934 66.023,150.934C65.697,150.934 65.372,150.975 65.046,151.056C64.721,151.138 64.395,151.178 64.07,151.178L21.111,166.8C19.972,167.288 19.037,168.02 18.304,168.997C17.572,169.973 17.206,171.112 17.206,172.414C17.206,174.041 17.775,175.424 18.915,176.563C20.054,177.702 21.437,178.272 23.064,178.272C23.389,178.272 23.715,178.231 24.04,178.15C24.366,178.068 24.691,178.028 25.017,178.028L40.638,172.17L40.638,180.224C40.638,190.476 44.259,199.222 51.5,206.463C58.741,213.705 67.487,217.325 77.739,217.325L171.467,217.325C181.718,217.325 190.465,213.705 197.706,206.463C204.947,199.222 208.568,190.476 208.568,180.224L208.568,169.485L228.094,162.406C229.233,161.918 230.169,161.186 230.901,160.21C231.634,159.233 232,158.094 232,156.792C232,155.165 231.43,153.782 230.291,152.643C229.152,151.504 227.769,150.934 226.142,150.934C225.816,150.934 225.491,150.975 225.165,151.056C224.84,151.138 224.514,151.178 224.189,151.178M196.852,180.224C196.852,187.222 194.37,193.202 189.407,198.165C184.444,203.128 178.464,205.609 171.467,205.609L77.739,205.609C70.742,205.609 64.762,203.128 59.799,198.165C54.836,193.202 52.354,187.222 52.354,180.224L52.354,168.02L66.023,163.139L102.879,177.784C103.205,177.946 103.571,178.068 103.978,178.15C104.385,178.231 104.751,178.272 105.076,178.272C105.402,178.272 105.768,178.231 106.174,178.15C106.581,178.068 106.947,177.946 107.273,177.784L144.129,163.139L180.986,177.784C181.312,177.946 181.678,178.068 182.085,178.15C182.491,178.231 182.857,178.272 183.183,178.272C183.508,178.272 183.834,178.231 184.159,178.15C184.485,178.068 184.81,178.028 185.136,178.028L196.852,173.634L196.852,180.224ZM17.206,125.55C17.206,123.922 17.775,122.539 18.915,121.4C20.054,120.261 21.437,119.692 23.064,119.692L226.142,119.692C227.769,119.692 229.152,120.261 230.291,121.4C231.43,122.539 232,123.922 232,125.55C232,127.177 231.43,128.56 230.291,129.699C229.152,130.838 227.769,131.408 226.142,131.408L23.064,131.408C21.437,131.408 20.054,130.838 18.915,129.699C17.775,128.56 17.206,127.177 17.206,125.55"/>
</g>
</svg>
</f:case>
<f:case value="drinks">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M161.189,215.461L161.178,215.65C161.178,216.122 161.027,216.458 160.672,216.773C160.27,217.131 159.835,217.297 159.303,217.297L83.928,217.297C83.396,217.297 82.961,217.13 82.558,216.773C82.148,216.409 81.897,215.961 81.812,215.463L65.706,80.721L96.877,80.721L130.273,197.918L130.355,198.121C130.373,198.231 130.394,198.34 130.425,198.45C130.826,199.857 131.734,201.03 132.98,201.752C134.234,202.478 135.678,202.662 137.046,202.272C138.418,201.882 139.546,200.964 140.229,199.688C140.908,198.416 141.061,196.941 140.662,195.535C140.657,195.518 140.65,195.501 140.645,195.483L107.943,80.721L177.521,80.721L161.189,215.461ZM181.895,43.954L178.815,70.225L104.953,70.225L97.466,43.954L181.895,43.954ZM86.4,43.954L93.886,70.225L64.415,70.225L61.336,43.954L86.4,43.954ZM192.704,36.857C192.511,36.377 192.229,35.855 191.833,35.265L191.666,35.065C191.238,34.639 190.714,34.27 190.109,33.967C189.431,33.629 188.654,33.458 187.797,33.458L94.475,33.458L90.371,19.053L90.29,18.854C90.272,18.742 90.251,18.631 90.219,18.521C89.818,17.113 88.911,15.94 87.664,15.218C86.412,14.494 84.969,14.309 83.597,14.699C80.775,15.503 79.154,18.526 79.984,21.438C79.989,21.456 79.994,21.473 80,21.491L79.999,21.491L83.409,33.458L55.433,33.458C53.934,33.458 52.671,33.961 51.68,34.952C50.688,35.944 50.185,37.207 50.185,38.705L50.189,39.289L71.566,216.744C71.916,219.888 73.289,222.544 75.646,224.639C78.001,226.732 80.787,227.793 83.928,227.793L159.303,227.793C162.444,227.793 165.23,226.732 167.585,224.639C169.943,222.543 171.315,219.89 171.663,216.758L193.038,39.3L193.045,38.705C193.045,38.046 192.931,37.424 192.704,36.857" style="fill-rule:nonzero;"/>
</svg>
</f:case>
<f:case value="program">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M140.5,222.743L108.731,222.743C107.153,222.743 105.825,223.271 104.782,224.314C103.74,225.357 103.211,226.685 103.211,228.264C103.211,229.841 103.74,231.169 104.782,232.212C105.825,233.255 107.153,233.783 108.731,233.783L140.5,233.783C142.078,233.783 143.406,233.255 144.449,232.212C145.492,231.169 146.021,229.841 146.021,228.264C146.021,226.685 145.492,225.357 144.449,224.314C143.406,223.271 142.078,222.743 140.5,222.743"/>
<path d="M206.46,157.279L206.46,157.851L194.077,212.858L194.064,213.14C193.963,213.563 193.707,213.928 193.284,214.258C192.481,214.881 191.622,214.879 191.089,214.665C190.869,214.576 190.673,214.444 190.437,214.215L164.855,195.076C171.656,182.88 176.738,171.063 179.963,159.943C182.869,149.911 184.722,140.175 185.475,130.985L205.839,155.553L205.921,155.642C206.082,155.804 206.203,156.012 206.291,156.279C206.404,156.62 206.46,156.947 206.46,157.279M174.443,128.227C174.283,146.847 167.571,167.958 154.492,190.973L94.739,190.973C81.662,167.962 74.949,146.851 74.788,128.227C74.626,109.336 77.548,92.718 83.475,78.837C89.41,64.934 96.695,53.527 105.132,44.928C113.382,36.354 119.379,30.592 122.958,27.801C123.221,27.675 123.51,27.549 123.825,27.423C124.282,27.238 124.948,27.239 125.406,27.422C125.722,27.549 126.011,27.675 126.272,27.801C129.851,30.591 135.851,36.355 144.111,44.939C152.539,53.53 159.822,64.935 165.756,78.837C171.684,92.721 174.606,109.339 174.443,128.227M55.143,212.782L42.771,157.851L42.771,157.031C42.771,156.958 42.788,156.737 42.94,156.28C43.034,155.998 43.162,155.791 43.408,155.537L63.757,130.985C64.509,140.174 66.362,149.909 69.27,159.944C72.492,171.059 77.575,182.88 84.381,195.08L59.566,213.808L59.196,213.808L58.741,214.261C58.561,214.443 58.365,214.575 58.148,214.663C57.453,214.939 56.629,214.788 55.948,214.258C55.506,213.914 55.259,213.467 55.143,212.782M216.656,152.515C216.1,151.032 215.344,149.713 214.408,148.591L185.454,113.993C184.743,100.834 182.039,88.724 177.419,78C172.929,67.357 167.738,57.863 161.989,49.782C156.251,41.714 150.543,34.993 145.017,29.802C141.456,26.565 138.449,23.887 136.059,21.824L137.896,21.824L132.83,18.931C131.616,18.238 130.341,17.622 129.038,17.1C126.334,16.017 123.222,15.964 120.279,16.946C118.858,17.419 117.566,18.136 116.441,19.074C113.784,21.234 109.666,24.847 104.196,29.819C98.687,34.994 92.983,41.711 87.242,49.781C81.494,57.862 76.304,67.353 71.817,77.989C67.194,88.721 64.49,100.834 63.778,113.993L34.821,148.593C33.887,149.714 33.131,151.033 32.574,152.516C32.015,154.008 31.731,155.611 31.731,157.279C31.731,157.7 31.779,158.189 31.877,158.774C31.944,159.177 31.98,159.519 31.98,159.761L31.98,159.879L44.39,215.002L44.411,215.362C44.791,217.648 45.803,219.674 47.418,221.384C47.618,221.595 47.824,221.8 48.035,221.998L46.825,221.998L50.591,223.882C51.017,224.125 51.473,224.352 51.921,224.548L52.692,224.932C53.51,225.341 54.347,225.6 55.176,225.704C55.891,225.795 56.707,225.841 57.603,225.841C59.12,225.841 60.608,225.552 62.026,224.985C63.382,224.442 64.586,223.813 65.733,223.047L93.614,202.013L155.618,202.013L183.572,223.098C184.645,223.813 185.866,224.449 187.206,224.985C188.624,225.552 190.195,225.841 191.877,225.841C192.608,225.841 193.341,225.795 194.054,225.704C194.87,225.602 195.687,225.351 196.434,224.981C198.451,224.238 200.262,223.028 201.814,221.384C203.434,219.669 204.442,217.577 204.804,215.2L217.224,160.047L217.252,159.761C217.252,159.516 217.286,159.184 217.355,158.776C217.452,158.194 217.5,157.705 217.5,157.279C217.5,155.611 217.216,154.008 216.656,152.515"/>
<path d="M124.616,95.667C122.05,95.667 119.802,96.613 117.937,98.48C116.071,100.343 115.125,102.59 115.125,105.158C115.125,107.726 116.071,109.974 117.937,111.837C119.803,113.703 122.05,114.649 124.616,114.649C127.184,114.649 129.431,113.703 131.295,111.837C133.161,109.971 134.108,107.724 134.108,105.158C134.108,102.593 133.161,100.345 131.295,98.48C129.431,96.613 127.184,95.667 124.616,95.667"/>
</svg>
</f:case>
<f:case value="car">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M59.39,152.637L74.197,152.637C75.694,152.637 76.955,152.136 77.945,151.147C78.934,150.156 79.435,148.895 79.435,147.399C79.435,145.901 78.933,144.64 77.944,143.651C76.953,142.66 75.692,142.158 74.197,142.158L59.39,142.158C57.893,142.158 56.633,142.66 55.642,143.651C54.653,144.64 54.151,145.901 54.151,147.399C54.151,148.895 54.653,150.157 55.642,151.147C56.631,152.136 57.891,152.637 59.39,152.637"/>
<path d="M163.034,152.637L177.842,152.637C179.339,152.637 180.599,152.136 181.591,151.147C182.579,150.157 183.08,148.896 183.08,147.399C183.08,145.9 182.579,144.639 181.589,143.649C180.596,142.66 179.336,142.158 177.842,142.158L163.034,142.158C161.54,142.158 160.279,142.66 159.287,143.651C158.298,144.639 157.796,145.9 157.796,147.399C157.796,148.895 158.298,150.156 159.287,151.148C160.277,152.136 161.538,152.637 163.034,152.637"/>
<path d="M175.677,182.25L202.215,182.25L202.215,199.221C202.215,199.892 202.028,200.392 201.625,200.793C201.222,201.196 200.722,201.385 200.052,201.385L177.842,201.385C177.172,201.385 176.672,201.197 176.269,200.794C175.864,200.391 175.677,199.891 175.677,199.221L175.677,182.25ZM202.215,171.771L35.016,171.771L35.016,123.023L202.215,123.023L202.215,171.771ZM199.308,112.546L37.924,112.546L62.188,57.784L62.205,57.742C62.391,57.277 62.645,56.95 62.981,56.74C63.352,56.508 63.766,56.395 64.248,56.395L172.984,56.395C173.466,56.395 173.88,56.507 174.25,56.739C174.529,56.913 174.747,57.116 174.916,57.355L174.916,57.496L199.308,112.546ZM61.554,199.221C61.554,199.891 61.366,200.391 60.964,200.794C60.56,201.197 60.06,201.385 59.39,201.385L37.18,201.385C36.51,201.385 36.01,201.197 35.607,200.794C35.204,200.391 35.016,199.891 35.016,199.221L35.016,182.25L61.554,182.25L61.554,199.221ZM226.009,114.036C225.018,113.047 223.757,112.546 222.261,112.546L210.769,112.546L184.559,53.52C183.523,51.272 181.986,49.43 179.992,48.043C177.964,46.632 175.606,45.917 172.984,45.917L64.248,45.917C61.626,45.917 59.268,46.632 57.24,48.043C55.261,49.418 53.732,51.168 52.694,53.245L52.531,53.569L52.531,53.826L26.464,112.546L14.97,112.546C13.472,112.546 12.212,113.048 11.223,114.037C10.233,115.026 9.732,116.288 9.732,117.785C9.732,119.282 10.233,120.543 11.223,121.533C12.212,122.522 13.473,123.024 14.97,123.024L24.538,123.024L24.538,199.221C24.538,202.714 25.779,205.727 28.227,208.174C30.674,210.621 33.686,211.862 37.18,211.862L59.39,211.862C62.884,211.862 65.896,210.621 68.343,208.174C70.791,205.726 72.032,202.714 72.032,199.221L72.032,182.25L165.199,182.25L165.199,199.221C165.199,202.714 166.441,205.727 168.888,208.174C171.335,210.621 174.348,211.862 177.842,211.862L200.052,211.862C203.545,211.862 206.557,210.621 209.004,208.174C211.453,205.725 212.695,202.713 212.695,199.221L212.695,123.024L222.261,123.024C223.757,123.024 225.019,122.522 226.009,121.533C226.998,120.544 227.5,119.284 227.5,117.785C227.5,116.287 226.998,115.025 226.009,114.036"/>
</svg>
</f:case>
<f:case value="bus">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M7.337,73.94C5.708,73.94 4.338,74.484 3.266,75.557C2.193,76.63 1.649,78.001 1.649,79.628L1.649,104.759C1.649,106.387 2.193,107.757 3.266,108.831C4.338,109.904 5.708,110.448 7.337,110.448C8.965,110.448 10.335,109.904 11.409,108.831C12.482,107.757 13.025,106.387 13.025,104.759L13.025,79.628C13.025,78.001 12.482,76.631 11.408,75.557C10.335,74.484 8.965,73.94 7.337,73.94"/>
<path d="M202.697,62.874L202.697,65.562L46.534,65.562L46.534,62.874C46.534,57.554 48.456,52.935 52.246,49.144C56.037,45.352 60.656,43.432 65.976,43.432L183.254,43.432C188.573,43.432 193.193,45.352 196.984,49.144C200.775,52.936 202.697,57.555 202.697,62.874M202.697,107.448L46.534,107.448L46.534,76.94L202.697,76.94L202.697,107.448ZM202.697,182.841L46.534,182.841L46.534,118.824L202.697,118.824L202.697,182.841ZM77.042,213.661C77.042,214.486 76.807,215.106 76.303,215.611C75.8,216.115 75.18,216.349 74.353,216.349L49.222,216.349C48.396,216.349 47.776,216.115 47.272,215.611C46.769,215.106 46.534,214.486 46.534,213.661L46.534,194.218L77.042,194.218L77.042,213.661ZM202.697,194.218L202.697,213.661C202.697,214.486 202.462,215.106 201.958,215.611C201.454,216.115 200.835,216.349 200.008,216.349L174.877,216.349C174.051,216.349 173.431,216.115 172.927,215.61C172.423,215.106 172.188,214.486 172.188,213.661L172.188,194.218L202.697,194.218ZM183.254,32.054L65.976,32.054C57.573,32.054 50.259,35.109 44.235,41.133C38.211,47.157 35.156,54.472 35.156,62.874L35.156,213.661C35.156,217.547 36.537,220.9 39.261,223.622C41.983,226.345 45.335,227.726 49.222,227.726L74.353,227.726C78.241,227.726 81.593,226.345 84.315,223.622C87.038,220.899 88.419,217.546 88.419,213.661L88.419,194.218L160.811,194.218L160.811,213.661C160.811,217.546 162.192,220.899 164.916,223.622C167.638,226.345 170.99,227.726 174.877,227.726L200.008,227.726C203.895,227.726 207.247,226.345 209.969,223.622C212.693,220.899 214.074,217.546 214.074,213.661L214.074,62.874C214.074,54.471 211.019,47.156 204.995,41.133C198.971,35.109 191.656,32.054 183.254,32.054"/>
<path d="M86.919,160.71C89.589,160.71 91.928,159.726 93.87,157.783C95.812,155.843 96.796,153.505 96.796,150.833C96.796,148.162 95.812,145.823 93.87,143.882C91.928,141.94 89.59,140.956 86.919,140.956C84.249,140.956 81.91,141.94 79.968,143.882C78.026,145.823 77.042,148.162 77.042,150.833C77.042,153.504 78.026,155.843 79.968,157.783C81.91,159.726 84.249,160.71 86.919,160.71"/>
<path d="M162.312,160.71C164.982,160.71 167.32,159.726 169.262,157.783C171.205,155.842 172.189,153.504 172.189,150.833C172.189,148.163 171.205,145.824 169.262,143.882C167.32,141.94 164.981,140.956 162.312,140.956C159.641,140.956 157.303,141.94 155.362,143.882C153.419,145.824 152.434,148.162 152.434,150.833C152.434,153.504 153.419,155.842 155.362,157.783C157.303,159.726 159.641,160.71 162.312,160.71"/>
<path d="M245.965,75.557L245.965,75.556C244.89,74.484 243.521,73.94 241.894,73.94C240.265,73.94 238.895,74.484 237.822,75.557C236.749,76.631 236.205,78.001 236.205,79.628L236.205,104.759C236.205,106.387 236.749,107.756 237.822,108.83C238.895,109.904 240.265,110.448 241.894,110.448C243.521,110.448 244.89,109.904 245.965,108.83C247.038,107.756 247.582,106.387 247.582,104.759L247.582,79.628C247.582,78.001 247.038,76.631 245.965,75.557"/>
</svg>
</f:case>
<f:case value="weather">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M171.567,43.979C168.306,43.979 165.152,44.227 162.104,44.723C159.056,45.219 156.043,45.893 153.066,46.744L153.491,46.531C152.216,44.404 150.798,42.384 149.238,40.47C147.679,38.556 145.978,36.749 144.135,35.048L153.066,22.288C153.35,21.863 153.562,21.402 153.704,20.906C153.846,20.41 153.917,19.878 153.917,19.311C153.917,17.893 153.421,16.688 152.428,15.696C151.436,14.704 150.231,14.207 148.813,14.207C147.962,14.207 147.183,14.42 146.474,14.845C145.765,15.271 145.198,15.767 144.773,16.334L144.56,16.334L135.629,29.093C132.51,27.392 129.107,26.045 125.421,25.053C121.735,24.06 117.837,23.564 113.725,23.564L110.748,23.564L108.196,8.253C107.913,6.977 107.31,5.949 106.389,5.17C105.467,4.39 104.368,4 103.092,4C101.675,4 100.47,4.496 99.477,5.489C98.485,6.481 97.989,7.686 97.989,9.104L97.989,10.167L100.753,25.478C96.5,26.754 92.566,28.562 88.951,30.901C85.336,33.24 82.111,35.969 79.275,39.088L66.516,30.157C66.091,29.873 65.63,29.66 65.134,29.519C64.638,29.377 64.106,29.306 63.539,29.306C62.121,29.306 60.916,29.802 59.924,30.794C58.931,31.787 58.435,32.992 58.435,34.41C58.435,35.26 58.648,36.04 59.073,36.749C59.498,37.458 59.995,38.025 60.562,38.45L73.321,47.594C71.62,50.713 70.273,54.115 69.281,57.802C68.288,61.488 67.792,65.386 67.792,69.497L67.792,72.475L52.481,75.026C51.347,75.31 50.354,75.913 49.504,76.834C48.653,77.756 48.228,78.854 48.228,80.13C48.228,81.548 48.724,82.753 49.716,83.745C50.709,84.738 51.914,85.234 53.331,85.234L54.395,85.234L54.182,85.234L69.706,82.469C70.415,84.879 71.265,87.148 72.258,89.274C73.25,91.401 74.455,93.456 75.873,95.441L75.66,95.229C71.124,99.056 67.544,103.77 64.921,109.37C62.298,114.97 60.987,120.96 60.987,127.339C60.987,133.152 62.121,138.681 64.389,143.926C66.516,149.03 69.529,153.531 73.427,157.43C77.326,161.329 81.827,164.341 86.931,166.468C92.176,168.736 97.705,169.87 103.518,169.87L171.567,169.87C180.215,169.87 188.367,168.24 196.022,164.979C203.678,161.577 210.341,157.04 216.012,151.369C221.682,145.698 226.219,139.035 229.622,131.38C232.882,123.724 234.513,115.573 234.513,106.925C234.513,98.277 232.882,90.125 229.622,82.469C226.219,74.814 221.682,68.151 216.012,62.48C210.341,56.809 203.678,52.273 196.022,48.87C188.367,45.609 180.215,43.979 171.567,43.979M77.999,69.497C77.999,59.574 81.473,51.138 88.419,44.192C95.366,37.245 103.801,33.772 113.725,33.772C120.105,33.772 125.917,35.26 131.163,38.237C136.408,41.215 140.661,45.184 143.922,50.146L143.922,50.359C136.55,54.045 130.135,58.9 124.677,64.925C119.219,70.951 115.072,77.72 112.237,85.234L112.237,85.659C110.961,85.376 109.578,85.163 108.09,85.021C106.601,84.879 105.148,84.809 103.73,84.809L103.518,84.809C99.974,84.809 96.536,85.234 93.204,86.084C89.872,86.935 86.789,88.14 83.954,89.7L84.166,89.487C82.182,86.652 80.657,83.533 79.594,80.13C78.531,76.728 77.999,73.183 77.999,69.497M171.567,159.663L103.518,159.663C94.586,159.663 86.966,156.508 80.657,150.2C74.349,143.891 71.194,136.271 71.194,127.339C71.194,118.408 74.349,110.788 80.657,104.479C86.966,98.17 94.586,95.016 103.518,95.016C104.652,95.016 105.715,95.051 106.708,95.122C107.7,95.193 108.692,95.37 109.685,95.654L109.472,95.654C109.33,96.646 109.189,97.78 109.047,99.056C108.905,100.332 108.763,101.679 108.621,103.097L108.621,103.522C108.621,104.94 109.118,106.145 110.11,107.137C111.102,108.13 112.307,108.626 113.725,108.626C115.143,108.626 116.312,108.165 117.234,107.244C118.155,106.322 118.687,105.223 118.829,103.947L118.829,103.735C118.971,101.892 119.183,100.084 119.467,98.312C119.75,96.54 120.105,94.803 120.53,93.102L120.53,93.315L120.53,93.102C122.231,87.431 124.641,82.186 127.76,77.366C131.021,72.687 134.884,68.611 139.35,65.138C143.816,61.665 148.813,58.936 154.342,56.951C159.729,55.108 165.471,54.186 171.567,54.186C178.797,54.186 185.673,55.533 192.194,58.227C198.574,61.062 204.138,64.854 208.888,69.604C213.637,74.353 217.429,79.918 220.265,86.297C222.958,92.677 224.305,99.553 224.305,106.925C224.305,114.155 222.958,120.96 220.265,127.339C217.429,133.861 213.637,139.496 208.888,144.245C204.138,148.995 198.574,152.716 192.194,155.41C185.673,158.245 178.797,159.663 171.567,159.663"/>
<path d="M44.622,196.642L55.326,188.865L51.237,201.448L61.941,209.225L48.71,209.225L44.622,221.808L40.534,209.225L27.303,209.225L38.007,201.448L33.918,188.865L44.622,196.642Z"/>
<path d="M78.646,222.834L89.35,215.057L85.261,227.64L95.965,235.417L82.734,235.417L78.646,248L74.558,235.417L61.327,235.417L72.031,227.64L67.942,215.057L78.646,222.834Z"/>
<path d="M105.866,188.81L116.57,181.033L112.481,193.616L123.185,201.393L109.954,201.393L105.866,213.976L101.778,201.393L88.547,201.393L99.251,193.616L95.162,181.033L105.866,188.81Z"/>
</g>
</svg>
</f:case>
<f:case value="lift">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M155.232,194.335C155.232,191.763 153.139,189.671 150.568,189.671L94.777,189.671L94.777,65.18C94.777,65.126 94.774,65.074 94.771,65.023L171.192,21.603C172.276,20.988 173.055,19.988 173.385,18.788C173.716,17.586 173.559,16.327 172.942,15.243C171.678,13.015 168.83,12.23 166.584,13.494L5.37,105.093C4.286,105.708 3.507,106.707 3.176,107.908C2.845,109.109 3.003,110.368 3.619,111.451C4.443,112.907 5.999,113.812 7.677,113.812C8.48,113.812 9.275,113.601 9.978,113.202L85.449,70.32L85.449,191.604C84.855,192.408 84.533,193.361 84.533,194.335C84.533,196.906 86.625,198.999 89.197,198.999L150.568,198.999C153.139,198.999 155.232,196.906 155.232,194.335"/>
<path d="M240.336,139.291C237.765,139.291 235.672,141.384 235.672,143.955L235.672,161.894L192.36,193.6C191.964,192.342 191.283,191.213 190.349,190.278L169.686,169.615C168.183,168.112 166.19,167.254 164.06,167.187C163.184,166.907 162.365,166.77 161.561,166.77L129.585,166.77L129.585,116.475C129.585,110.873 125.027,106.315 119.425,106.315C113.823,106.315 109.265,110.873 109.265,116.475L109.265,173.267C109.265,178.869 113.823,183.427 119.425,183.427C119.681,183.427 119.928,183.396 120.175,183.362L120.335,183.343L120.398,183.351C120.681,183.391 120.963,183.427 121.257,183.427L159.944,183.427L178.572,202.055C178.89,202.372 179.238,202.664 179.615,202.929L140.485,231.574C139.481,232.31 138.822,233.393 138.632,234.624C138.442,235.855 138.742,237.087 139.478,238.091C140.351,239.286 141.759,240 143.244,240C144.243,240 145.196,239.687 145.996,239.099L244.591,166.921L245,166.621L245,143.955C245,141.384 242.907,139.291 240.336,139.291"/>
<path d="M105.601,87.164C105.601,95.797 112.624,102.82 121.257,102.82C129.89,102.82 136.913,95.797 136.913,87.164C136.913,78.531 129.89,71.508 121.257,71.508C112.624,71.508 105.601,78.531 105.601,87.164"/>
</g>
</svg>
</f:case>
<f:case value="webcam">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M164.411,108.269C164.411,97.508 160.611,88.328 153.01,80.727C145.409,73.126 136.228,69.325 125.467,69.325C114.707,69.325 105.526,73.126 97.925,80.727C90.324,88.328 86.524,97.508 86.524,108.269C86.524,119.03 90.324,128.21 97.925,135.811C105.526,143.412 114.707,147.213 125.467,147.213C136.228,147.213 145.409,143.412 153.01,135.811C160.611,128.21 164.411,119.03 164.411,108.269M98.822,108.269C98.822,100.924 101.427,94.647 106.636,89.438C111.846,84.228 118.123,81.623 125.467,81.623C132.812,81.623 139.089,84.228 144.299,89.438C149.508,94.647 152.113,100.924 152.113,108.269C152.113,115.614 149.508,121.891 144.299,127.1C139.089,132.31 132.812,134.915 125.467,134.915C118.123,134.915 111.846,132.31 106.636,127.1C101.427,121.891 98.822,115.614 98.822,108.269M223.851,208.703L131.616,208.703L131.616,187.95C142.036,187.096 151.686,184.448 160.568,180.007C169.621,175.566 177.435,169.759 184.011,162.585C190.587,155.411 195.839,147.213 199.768,137.989C203.525,128.595 205.404,118.688 205.404,108.269C205.404,97.167 203.269,86.748 198.999,77.012C194.9,67.447 189.221,59.034 181.961,51.775C174.702,44.516 166.205,38.751 156.469,34.481C146.903,30.382 136.57,28.332 125.467,28.332C114.365,28.332 104.031,30.382 94.466,34.481C84.73,38.751 76.233,44.516 68.974,51.775C61.714,59.034 56.035,67.447 51.936,77.012C47.666,86.748 45.531,97.167 45.531,108.269C45.531,118.688 47.409,128.595 51.167,137.989C54.925,147.213 60.134,155.411 66.796,162.585C73.457,169.759 81.229,175.566 90.111,180.007C99.163,184.448 108.814,187.096 119.062,187.95L119.318,187.95L119.318,208.703L27.084,208.703C25.375,208.703 23.924,209.3 22.728,210.496C21.532,211.692 20.935,213.143 20.935,214.852C20.935,216.56 21.532,218.011 22.728,219.207C23.924,220.403 25.375,221.001 27.084,221.001L223.851,221.001C225.559,221.001 227.011,220.403 228.207,219.207C229.402,218.011 230,216.56 230,214.852C230,213.143 229.402,211.692 228.207,210.496C227.011,209.3 225.559,208.703 223.851,208.703M57.828,108.269C57.828,98.875 59.622,90.078 63.209,81.88C66.625,73.681 71.407,66.507 77.556,60.358C83.706,54.209 90.879,49.427 99.078,46.01C107.277,42.424 116.073,40.63 125.467,40.63C134.862,40.63 143.658,42.424 151.857,46.01C160.056,49.427 167.229,54.209 173.378,60.358C179.527,66.507 184.31,73.681 187.726,81.88C191.313,90.078 193.106,98.875 193.106,108.269C193.106,117.663 191.313,126.46 187.726,134.658C184.31,142.857 179.527,150.031 173.378,156.18C167.229,162.329 160.056,167.111 151.857,170.528C143.658,174.114 134.862,175.908 125.467,175.908C116.073,175.908 107.277,174.114 99.078,170.528C90.879,166.941 83.748,162.115 77.685,156.052C71.621,149.988 66.796,142.857 63.209,134.658C59.622,126.46 57.828,117.663 57.828,108.269"/>
</g>
</svg>
</f:case>
<f:case value="chat">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M208.235,84.81L177.235,84.81L177.235,53.81C177.235,50.315 175.981,47.314 173.474,44.806C170.967,42.299 167.965,41.045 164.47,41.045L47.764,41.045C44.269,41.045 41.268,42.299 38.761,44.806C36.253,47.314 35,50.315 35,53.81L35,170.516C35,171.58 35.304,172.567 35.911,173.479C36.519,174.391 37.279,175.075 38.191,175.531C38.495,175.683 38.837,175.797 39.217,175.873C39.597,175.948 40.014,175.986 40.47,175.986C41.078,175.986 41.686,175.873 42.294,175.645C42.902,175.417 43.434,175.151 43.889,174.847L78.536,146.81L78.764,146.81L78.764,177.81C78.764,181.305 80.018,184.306 82.525,186.814C85.033,189.321 88.034,190.575 91.529,190.575L177.463,190.575L212.11,218.611C212.566,218.915 213.098,219.181 213.706,219.409C214.313,219.637 214.921,219.751 215.529,219.751C215.985,219.751 216.403,219.713 216.783,219.637C217.163,219.561 217.505,219.447 217.809,219.295C218.72,218.839 219.48,218.156 220.088,217.244C220.696,216.332 221,215.344 221,214.281L221,97.575C221,94.08 219.746,91.078 217.239,88.571C214.731,86.064 211.73,84.81 208.235,84.81M76.485,135.869C75.877,135.869 75.269,135.983 74.661,136.211C74.054,136.439 73.522,136.705 73.066,137.009L45.941,159.119L45.941,53.81C45.941,53.354 46.131,52.936 46.511,52.556C46.891,52.176 47.309,51.986 47.764,51.986L164.47,51.986C164.926,51.986 165.344,52.176 165.724,52.556C166.104,52.936 166.294,53.354 166.294,53.81L166.294,134.045C166.294,134.501 166.104,134.919 165.724,135.299C165.344,135.679 164.926,135.869 164.47,135.869L76.485,135.869ZM210.059,202.884L182.934,180.773C182.478,180.469 181.946,180.203 181.338,179.975C180.73,179.748 180.122,179.634 179.514,179.634L91.529,179.634C91.073,179.634 90.655,179.444 90.275,179.064C89.896,178.684 89.706,178.266 89.706,177.81L89.706,146.81L164.47,146.81C167.965,146.81 170.967,145.556 173.474,143.049C175.981,140.542 177.235,137.54 177.235,134.045L177.235,95.751L208.235,95.751C208.691,95.751 209.109,95.941 209.489,96.321C209.869,96.701 210.059,97.119 210.059,97.575L210.059,202.884Z"/>
</g>
</svg>
</f:case>
<f:case value="bed">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M196.194,74.314L31.618,74.314L31.618,51.309C31.618,49.834 31.101,48.58 30.069,47.548C29.037,46.516 27.783,46 26.309,46C24.834,46 23.58,46.516 22.548,47.548C21.516,48.58 21,49.834 21,51.309L21,192.88C21,194.355 21.516,195.608 22.548,196.64C23.58,197.673 24.834,198.189 26.309,198.189C27.783,198.189 29.037,197.673 30.069,196.64C31.101,195.608 31.618,194.355 31.618,192.88L31.618,162.796L219.199,162.796L219.199,192.88C219.199,194.355 219.715,195.608 220.748,196.64C221.78,197.673 223.034,198.189 224.508,198.189C225.983,198.189 227.236,197.673 228.269,196.64C229.301,195.608 229.817,194.355 229.817,192.88L229.817,107.937C229.817,98.646 226.536,90.72 219.974,84.158C213.411,77.595 205.485,74.314 196.194,74.314M31.618,84.932L98.864,84.932L98.864,152.178L31.618,152.178L31.618,84.932ZM109.482,152.178L109.482,84.932L196.194,84.932C202.535,84.932 207.955,87.181 212.453,91.679C216.95,96.176 219.199,101.596 219.199,107.937L219.199,152.178L109.482,152.178Z"/>
</svg>
</f:case>
<f:case value="currency">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M125.5,155.259C134.799,155.259 142.732,151.975 149.3,145.407C155.868,138.839 159.153,130.905 159.153,121.606C159.153,112.308 155.868,104.374 149.3,97.806C142.732,91.238 134.799,87.954 125.5,87.954C116.201,87.954 108.268,91.238 101.7,97.806C95.132,104.374 91.847,112.308 91.847,121.606C91.847,130.905 95.132,138.839 101.7,145.407C108.268,151.975 116.201,155.259 125.5,155.259M125.5,98.581C131.847,98.581 137.271,100.832 141.773,105.334C146.275,109.835 148.525,115.26 148.525,121.606C148.525,127.953 146.275,133.377 141.773,137.879C137.271,142.381 131.847,144.632 125.5,144.632C119.153,144.632 113.729,142.381 109.227,137.879C104.725,133.377 102.475,127.953 102.475,121.606C102.475,115.26 104.725,109.835 109.227,105.334C113.729,100.832 119.153,98.581 125.5,98.581M224.686,59.615L26.314,59.615C24.838,59.615 23.583,60.132 22.55,61.165C21.517,62.198 21,63.453 21,64.928L21,178.284C21,179.76 21.517,181.015 22.55,182.048C23.583,183.081 24.838,183.598 26.314,183.598L224.686,183.598C226.162,183.598 227.417,183.081 228.45,182.048C229.483,181.015 230,179.76 230,178.284L230,64.928C230,63.453 229.483,62.198 228.45,61.165C227.417,60.132 226.162,59.615 224.686,59.615M31.627,104.559C40.04,102.345 47.309,98.175 53.435,92.05C59.56,85.924 63.73,78.803 65.944,70.685L65.944,70.242L185.056,70.242C187.27,78.655 191.44,85.924 197.565,92.05C203.691,98.175 210.812,102.345 218.93,104.559L219.373,104.559L219.373,138.654C210.96,140.868 203.691,145.038 197.565,151.163C191.44,157.288 187.27,164.41 185.056,172.528L185.056,172.971L65.944,172.971C63.73,164.558 59.56,157.288 53.435,151.163C47.309,145.038 40.188,140.868 32.07,138.654L31.627,138.654L31.627,104.559ZM219.373,93.489C213.912,91.57 209.152,88.581 205.093,84.522C201.034,80.463 198.045,75.777 196.126,70.463L196.126,70.242L219.373,70.242L219.373,93.489ZM54.874,70.242C52.955,75.703 49.966,80.463 45.907,84.522C41.848,88.581 37.162,91.57 31.849,93.489L31.627,93.489L31.627,70.242L54.874,70.242ZM31.627,149.724C37.088,151.643 41.848,154.632 45.907,158.691C49.966,162.75 52.955,167.436 54.874,172.749L54.874,172.971L31.627,172.971L31.627,149.724ZM196.126,172.971C198.045,167.51 201.034,162.75 205.093,158.691C209.152,154.632 213.838,151.643 219.151,149.724L219.373,149.724L219.373,172.971L196.126,172.971Z"/>
</svg>
</f:case>
<f:case value="participants">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M35.957,68.134C38.128,64.889 41.043,63.227 44.828,63.055C48.656,63.227 51.571,64.889 53.707,68.074C55.372,71.503 55.372,74.835 53.741,78.204C51.573,81.449 48.656,83.111 44.872,83.282C41.055,83.111 38.144,81.459 35.978,78.233C34.327,74.815 34.332,71.492 35.957,68.134M29.711,82.068C33.259,87.507 38.306,90.385 44.72,90.624L44.85,90.627L44.986,90.624C51.393,90.385 56.44,87.507 60.001,82.044L60.197,81.704C63.027,76.04 63.027,70.298 60.182,64.608L59.987,64.271C56.44,58.832 51.393,55.953 44.979,55.714L44.838,55.711L44.713,55.714C38.306,55.953 33.259,58.832 29.697,64.295L29.503,64.634C26.673,70.298 26.673,76.04 29.517,81.729L29.711,82.068Z"/>
<path d="M177.008,66.134C179.178,62.889 182.094,61.228 185.877,61.055C189.706,61.227 192.622,62.889 194.758,66.074C196.422,69.503 196.422,72.835 194.792,76.204C192.622,79.449 189.706,81.111 185.922,81.282C182.105,81.111 179.195,79.459 177.027,76.232C175.377,72.815 175.382,69.492 177.008,66.134M170.762,80.068C174.31,85.507 179.357,88.385 185.77,88.624L185.9,88.627L186.036,88.624C192.444,88.385 197.49,85.507 201.054,80.043L201.246,79.704C204.077,74.04 204.077,68.298 201.233,62.609L201.038,62.271C197.49,56.832 192.444,53.953 186.03,53.714L185.887,53.711L185.764,53.714C179.357,53.953 174.31,56.832 170.747,62.295L170.554,62.634C167.723,68.298 167.723,74.04 170.567,79.728L170.762,80.068Z"/>
<path d="M38.882,156.813L38.882,197.249C38.882,198.954 38.403,200.228 37.373,201.258C36.342,202.289 35.068,202.767 33.362,202.767C31.655,202.767 30.381,202.289 29.351,201.258C28.32,200.229 27.841,198.955 27.841,197.249L27.838,114.666C27.995,110.417 29.429,106.994 32.224,104.2C35.014,101.408 38.399,99.974 42.552,99.816L51.945,99.815C58.972,99.98 64.286,102.909 68.188,108.761L80.187,127.39L90.805,127.39C92.51,127.39 93.785,127.87 94.816,128.899C95.846,129.929 96.326,131.205 96.326,132.912C96.326,134.618 95.846,135.892 94.816,136.922C93.785,137.952 92.51,138.432 90.805,138.432L77.019,138.432C75.001,138.432 73.557,137.617 72.341,135.794L61.86,119.667L61.86,197.249C61.86,198.954 61.38,200.228 60.35,201.258C59.319,202.289 58.045,202.767 56.339,202.767C54.632,202.767 53.358,202.289 52.328,201.258C51.298,200.228 50.819,198.954 50.819,197.249L50.819,156.813L38.882,156.813ZM121.816,91.568C127.319,91.395 132.239,89.708 136.454,86.545C140.269,83.525 142.963,79.571 144.461,74.793L144.774,73.794L143.821,70.104C143.349,67.9 143.919,66.754 144.403,66.06L144.604,65.737C145.274,64.508 146.286,63.708 147.729,63.235C148.24,63.137 148.766,63.103 149.384,63.132L149.659,63.14L149.869,63.121C150.318,63.079 150.712,63.095 151.042,63.153C151.916,63.445 152.517,63.908 152.956,64.645L153.327,65.155C153.858,65.761 154.26,66.473 154.485,67.19L157.07,77.247C158.801,83.95 162.345,89.458 167.613,93.625C172.802,97.518 178.916,99.602 185.885,99.818L186.014,99.815C192.883,99.602 199.02,97.502 204.262,93.568C209.478,89.438 213,83.946 214.73,77.243L217.268,67.355C217.769,65.727 218.555,64.636 219.75,63.917C221.014,63.114 222.382,62.896 224.007,63.218C225.513,63.706 226.526,64.507 227.205,65.751L227.322,65.951C228.129,67.218 228.348,68.494 228.011,69.965L225.45,79.924C222.063,91.871 215.317,100.445 204.829,106.132L202.909,107.173L202.909,197.249C202.909,198.954 202.43,200.228 201.4,201.258C200.369,202.289 199.095,202.767 197.388,202.767C195.682,202.767 194.407,202.289 193.377,201.258C192.348,200.228 191.868,198.954 191.868,197.249L191.868,156.813L179.932,156.813L179.932,197.249C179.932,198.954 179.452,200.228 178.422,201.258C177.392,202.289 176.117,202.767 174.411,202.767C172.704,202.767 171.43,202.289 170.401,201.258C169.37,200.228 168.89,198.955 168.89,197.249L168.89,107.142L166.927,106.11C159.586,102.251 153.929,96.63 150.114,89.397L147.702,84.824L144.181,88.61C141.853,91.111 139.098,93.235 135.991,94.921L134.07,95.962L134.07,166.318C134.07,167.422 133.783,168.202 133.14,168.846C132.497,169.488 131.718,169.776 130.611,169.776C129.506,169.776 128.726,169.488 128.082,168.844C127.44,168.202 127.153,167.423 127.153,166.318L127.153,134.131L116.248,134.131L116.248,166.318C116.248,167.424 115.962,168.204 115.318,168.846C114.675,169.488 113.896,169.776 112.79,169.776C111.684,169.776 110.903,169.488 110.26,168.844C109.617,168.202 109.331,167.422 109.331,166.318L109.331,95.93L107.367,94.897C99.467,90.747 94.387,84.293 91.839,75.178L89.867,67.528C89.569,66.13 89.901,65.445 90.191,65.031L90.392,64.706C90.8,63.958 91.426,63.463 92.299,63.168C93.613,62.917 94.265,63.239 94.668,63.518L94.993,63.718C95.758,64.138 96.266,64.775 96.537,65.644L98.542,73.445C99.93,78.821 102.78,83.245 107.023,86.601C111.185,89.725 116.085,91.395 121.586,91.568L121.715,91.571L121.816,91.568ZM233.581,62.111C231.959,59.203 229.421,57.201 226.019,56.156L225.73,56.081C222.082,55.305 218.767,55.841 215.893,57.673C213.185,59.295 211.274,61.875 210.205,65.361L207.62,75.411C206.282,80.598 203.715,84.638 199.782,87.754C195.79,90.747 191.244,92.292 185.917,92.476C180.556,92.292 176.031,90.763 172.094,87.812C168.106,84.656 165.517,80.601 164.18,75.415L161.547,65.198C161.014,63.46 160.172,61.895 159.085,60.602C157.705,58.415 155.685,56.899 153.058,56.093L152.77,56.018C151.695,55.786 150.611,55.71 149.504,55.791C148.308,55.746 147.179,55.843 146.047,56.088L145.761,56.162C142.397,57.195 139.869,59.181 138.269,62.027C136.41,64.771 135.873,68.048 136.677,71.787L137.131,73.551C136.039,76.498 134.348,78.851 131.974,80.731C129.026,82.942 125.66,84.085 121.718,84.228C117.743,84.085 114.399,82.958 111.504,80.789C108.557,78.456 106.642,75.455 105.651,71.613L103.6,63.649C102.736,60.843 101.075,58.728 98.698,57.382C96.411,55.846 93.624,55.375 90.609,56.021L90.323,56.098C87.516,56.962 85.401,58.621 84.056,60.998C82.521,63.283 82.059,66.116 82.724,69.209L84.749,77.08C87.624,87.367 93.424,95.177 101.99,100.295L101.99,126.31C101.453,125.376 100.8,124.504 100.006,123.709C97.576,121.28 94.48,120.048 90.805,120.048L84.19,120.048L74.328,104.738C69.05,96.822 61.552,92.696 52.03,92.477L42.416,92.479C36.313,92.706 31.137,94.903 27.033,99.01C22.925,103.116 20.727,108.332 20.5,114.529L20.5,197.249C20.5,200.926 21.732,204.021 24.161,206.449C26.59,208.877 29.685,210.109 33.362,210.109C37.037,210.109 40.132,208.877 42.563,206.449C43.502,205.51 44.268,204.46 44.85,203.315C45.432,204.459 46.198,205.509 47.138,206.449C49.568,208.877 52.664,210.109 56.339,210.109C60.015,210.109 63.111,208.877 65.54,206Line truncated
<path d="M115.515,62.589C117.052,60.306 119.025,59.184 121.677,59.055C124.378,59.184 126.351,60.306 127.852,62.527C129.017,64.948 129.017,67.204 127.887,69.563C126.351,71.846 124.377,72.968 121.725,73.097C119.037,72.969 117.07,71.856 115.536,69.593C114.386,67.184 114.391,64.937 115.515,62.589M109.269,73.428C112.135,77.822 116.387,80.246 121.569,80.438L121.701,80.442L121.837,80.438C127.015,80.246 131.266,77.822 134.147,73.404L134.341,73.065C136.66,68.427 136.66,63.725 134.327,59.062L134.132,58.724C131.266,54.33 127.015,51.906 121.831,51.714L121.689,51.711L121.565,51.714C116.387,51.906 112.135,54.33 109.255,58.748L109.061,59.088C106.744,63.725 106.744,68.427 109.075,73.09L109.269,73.428Z"/>
</svg>
</f:case>
<f:case value="partner">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M228.753,111.845L207.552,69.444C206.582,67.504 205.162,65.945 203.292,64.767C201.421,63.589 199.377,63.001 197.16,63.001C196.19,63.001 195.255,63.104 194.354,63.312C193.453,63.52 192.657,63.832 191.964,64.248L170.763,74.848L126.491,63.208C126.353,63.07 126.18,63.001 125.972,63.001L124.517,63.001C124.309,63.001 124.136,63.07 123.997,63.208L79.725,74.848L58.525,64.248C57.832,63.832 57.035,63.52 56.135,63.312C55.234,63.104 54.299,63.001 53.329,63.001C51.112,63.001 49.068,63.589 47.197,64.767C45.326,65.945 43.906,67.504 42.936,69.444L21.736,111.845C21.32,112.676 21.008,113.508 20.8,114.339C20.592,115.171 20.488,116.071 20.488,117.041C20.488,119.397 21.077,121.475 22.255,123.277C23.433,125.078 24.992,126.464 26.932,127.434L49.587,138.865L95.73,171.913C96.007,172.052 96.284,172.19 96.561,172.329C96.838,172.468 97.115,172.537 97.393,172.537L150.602,185.839C150.74,185.978 150.914,186.047 151.121,186.047L151.849,186.047C152.542,186.047 153.2,185.908 153.824,185.631C154.447,185.354 154.967,185.008 155.382,184.592L201.317,138.657L223.557,127.434C225.497,126.464 227.056,125.078 228.233,123.277C229.411,121.475 230,119.397 230,117.041C230,116.071 229.896,115.171 229.688,114.339C229.48,113.508 229.169,112.676 228.753,111.845M184.689,141.152L154.967,117.249C154.551,116.972 154.066,116.729 153.512,116.522C152.957,116.314 152.403,116.21 151.849,116.21C151.156,116.21 150.498,116.348 149.874,116.626C149.251,116.903 148.731,117.249 148.315,117.665C140.556,125.424 132.692,129.339 124.725,129.408C116.757,129.477 110.002,127.78 104.459,124.316C104.182,124.177 103.974,124.004 103.836,123.796C103.697,123.588 103.628,123.346 103.628,123.069L103.628,122.861C103.628,122.584 103.663,122.341 103.732,122.133C103.801,121.926 103.905,121.752 104.044,121.614L140.625,86.28L168.685,86.28L192.379,133.461L184.689,141.152ZM30.465,117.665L30.465,116.626C30.465,116.487 30.534,116.418 30.673,116.418L51.874,73.809C52.012,73.532 52.22,73.324 52.497,73.185C52.774,73.047 53.051,72.977 53.329,72.977L53.744,72.977C53.883,72.977 54.021,73.047 54.16,73.185L72.659,82.33L49.795,127.849L31.297,118.704C31.158,118.565 31.019,118.392 30.881,118.184C30.742,117.977 30.604,117.803 30.465,117.665M150.394,175.447L100.718,163.184L58.525,132.838L82.635,84.409L125.244,73.185L137.507,76.511C137.092,76.511 136.676,76.615 136.26,76.822C135.845,77.03 135.429,77.342 135.013,77.758L96.977,114.547C96.007,115.656 95.21,116.903 94.587,118.288C93.963,119.674 93.651,121.198 93.651,122.861C93.651,124.939 94.136,126.81 95.106,128.473C96.076,130.136 97.393,131.521 99.055,132.63C107.508,138.034 116.48,140.286 125.972,139.385C135.464,138.484 144.158,134.639 152.057,127.849L177.622,148.219L150.394,175.447ZM220.023,117.665C219.885,117.803 219.746,117.977 219.608,118.184C219.469,118.392 219.33,118.496 219.192,118.496L200.693,127.849L177.83,82.33L196.329,73.185C196.467,73.047 196.606,72.977 196.744,72.977L197.576,72.977C197.853,73.116 198.061,73.254 198.199,73.393L198.615,73.809L219.815,116.418C219.954,116.418 220.023,116.487 220.023,116.626L220.023,117.665ZM126.907,202.259C126.63,203.368 126.041,204.268 125.14,204.961C124.24,205.654 123.166,206 121.919,206L121.399,206C121.191,206 120.949,205.931 120.672,205.793L86.169,197.271C85.753,197.132 85.407,196.994 85.129,196.855C84.852,196.717 84.575,196.578 84.298,196.439L84.506,196.439L62.474,180.851C61.781,180.297 61.261,179.673 60.915,178.98C60.569,178.287 60.395,177.524 60.395,176.694C60.395,175.308 60.88,174.13 61.85,173.16C62.82,172.19 63.998,171.705 65.384,171.705C65.938,171.705 66.458,171.775 66.943,171.913C67.428,172.052 67.878,172.329 68.294,172.745L68.294,172.537L89.494,187.71L123.166,196.232C124.274,196.509 125.175,197.063 125.868,197.894C126.561,198.726 126.907,199.765 126.907,201.012L126.907,201.636C126.907,201.913 126.838,202.121 126.699,202.259L126.907,202.259Z"/>
</svg>
</f:case>
<f:case value="rental">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M83.399,19.705C85.937,18.655 89.882,18.87 92.698,22.888L117.136,88.239L111.617,104.19L79.346,28.228C78.29,22.31 82.176,20.209 83.399,19.705M114.853,119.803L125.81,88.131L100.056,19.261L99.772,18.781C94.575,10.795 86.239,9.703 80.285,12.16C74.494,14.55 69.51,21.075 71.428,30.261L71.489,30.557L107.634,115.688L114.853,119.803Z"/>
<path d="M177.019,222.612C176.905,224.506 174.09,226.912 170.605,228.053C167.841,228.963 164.368,229.116 163.191,227.341L138.995,161.674C140.938,155.964 143.049,150.229 144.752,146.016L177.019,222.612ZM185.029,220.687L148.101,132.941L145.865,132.585C141.692,131.916 139.778,135.935 135.371,147.611C132.974,153.958 130.809,160.405 130.799,160.434L130.341,161.796L155.682,230.559L155.889,231.014C157.893,234.749 161.862,236.89 166.778,236.89C168.819,236.89 170.962,236.527 173.149,235.81C179.605,233.692 186.094,228.18 185.084,221.083L185.029,220.687Z"/>
<path d="M172.91,32.97C141.509,104.258 116.131,167.823 95.327,227.294C94.486,228.228 91.092,228.49 87.339,226.775C87.127,226.678 82.187,224.39 83.018,221.77C103.208,177.1 122.472,130.601 141.906,79.62C144.177,73.665 146.306,67.214 148.581,60.327C152.293,49.088 156.132,37.466 160.573,28.408C162.355,24.778 163.941,23.707 167.482,23.832C169.404,23.903 171.15,24.956 172.273,26.722C173.508,28.665 173.744,31.006 172.91,32.97M179.161,22.345C176.578,18.277 172.431,15.846 167.781,15.675C161.053,15.446 156.426,18.335 153.246,24.814C148.559,34.369 144.634,46.256 140.831,57.769C138.598,64.53 136.49,70.914 134.28,76.712C114.877,127.607 95.653,174.009 75.495,218.599L75.4,218.832C73.226,224.697 76.662,230.872 83.95,234.2C86.763,235.485 89.857,236.192 92.662,236.192C97.254,236.192 100.783,234.368 102.634,230.986L102.872,230.444C123.637,171.038 148.995,107.508 180.4,36.211C182.302,31.737 181.838,26.553 179.161,22.345"/>
<path d="M218.802,64.79L204.944,37.325C204.901,36.806 204.855,36.328 204.805,35.906C204.533,33.595 203.441,32.228 201.559,31.842C200.118,31.547 198.895,31.752 197.927,32.453C196.937,33.169 196.319,34.363 196.139,35.907C195.426,42.012 195.425,58.92 196.137,65.087C196.482,68.085 198.625,69.452 200.472,69.452C202.317,69.452 204.46,68.086 204.807,65.088C205.068,62.84 205.247,59.074 205.316,54.609L212.186,68.059L212.367,68.337L212.597,68.483C212.865,68.652 213.19,68.738 213.562,68.738C214.639,68.738 216.064,67.987 216.474,67.758C218.059,66.873 218.822,65.977 218.806,65.019L218.802,64.79Z"/>
<path d="M203.29,213.963L204.33,213.963L204.33,73.727L196.614,73.727L196.614,213.963L197.654,213.963C195.141,214.751 192.924,216.642 192.364,219.823L192.104,221.29L208.839,221.29L208.579,219.823C208.019,216.642 205.803,214.751 203.29,213.963"/>
<path d="M201.427,222.605L199.516,222.605C197.915,222.605 196.614,223.908 196.614,225.508L196.614,229.301C196.614,230.902 197.915,232.205 199.516,232.205L201.427,232.205C203.028,232.205 204.33,230.902 204.33,229.301L204.33,225.508C204.33,223.908 203.028,222.605 201.427,222.605"/>
<path d="M52.947,65.087C53.295,68.086 55.438,69.451 57.283,69.451C59.128,69.451 61.272,68.086 61.618,65.087C62.329,58.917 62.328,42.009 61.616,35.906C61.436,34.362 60.818,33.168 59.828,32.452C58.857,31.752 57.637,31.545 56.196,31.841C54.314,32.227 53.222,33.594 52.949,35.904C52.899,36.326 52.853,36.804 52.811,37.321L39.082,64.475L38.948,65.019C38.932,65.975 39.694,66.87 41.276,67.755C41.688,67.985 43.116,68.737 44.193,68.737C44.565,68.737 44.89,68.651 45.22,68.441L45.447,68.296L52.44,54.649C52.509,59.1 52.688,62.851 52.947,65.087"/>
<path d="M60.101,213.963L61.142,213.963L61.142,73.727L53.424,73.727L53.424,213.963L54.465,213.963C51.952,214.751 49.735,216.642 49.175,219.823L48.915,221.29L65.651,221.29L65.392,219.823C64.831,216.642 62.614,214.751 60.101,213.963"/>
<path d="M58.238,222.605L56.327,222.605C54.726,222.605 53.424,223.908 53.424,225.508L53.424,229.301C53.424,230.902 54.726,232.205 56.327,232.205L58.238,232.205C59.839,232.205 61.141,230.902 61.141,229.301L61.141,225.508C61.141,223.908 59.839,222.605 58.238,222.605"/>
</svg>
</f:case>
<f:case value="sequence">
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<path d="M207.956,29.471L181.191,29.471L181.191,19.177C181.191,17.461 180.591,16.003 179.39,14.802C178.189,13.601 176.73,13 175.015,13C173.299,13 171.841,13.601 170.64,14.802C169.439,16.003 168.838,17.461 168.838,19.177L168.838,29.471L82.368,29.471L82.368,19.177C82.368,17.461 81.767,16.003 80.566,14.802C79.365,13.601 77.907,13 76.191,13C74.476,13 73.017,13.601 71.816,14.802C70.615,16.003 70.015,17.461 70.015,19.177L70.015,29.471L43.25,29.471C39.304,29.471 35.916,30.886 33.085,33.717C30.254,36.548 28.838,39.937 28.838,43.883L28.838,208.589C28.838,212.535 30.254,215.923 33.085,218.754C35.916,221.585 39.304,223 43.25,223L207.956,223C211.902,223 215.291,221.585 218.121,218.754C220.952,215.923 222.368,212.535 222.368,208.589L222.368,43.883C222.368,39.937 220.952,36.548 218.121,33.717C215.291,30.886 211.902,29.471 207.956,29.471M43.25,41.824L70.015,41.824L70.015,52.118C70.015,53.834 70.615,55.292 71.816,56.493C73.017,57.694 74.476,58.295 76.191,58.295C77.907,58.295 79.365,57.694 80.566,56.493C81.767,55.292 82.368,53.834 82.368,52.118L82.368,41.824L168.838,41.824L168.838,52.118C168.838,53.834 169.439,55.292 170.64,56.493C171.841,57.694 173.299,58.295 175.015,58.295C176.73,58.295 178.189,57.694 179.39,56.493C180.591,55.292 181.191,53.834 181.191,52.118L181.191,41.824L207.956,41.824C208.471,41.824 208.942,42.038 209.371,42.467C209.8,42.896 210.015,43.368 210.015,43.883L210.015,78.883L41.191,78.883L41.191,43.883C41.191,43.368 41.406,42.896 41.835,42.467C42.264,42.038 42.735,41.824 43.25,41.824M207.956,210.647L43.25,210.647C42.735,210.647 42.264,210.433 41.835,210.004C41.406,209.575 41.191,209.103 41.191,208.589L41.191,91.236L210.015,91.236L210.015,208.589C210.015,209.103 209.8,209.575 209.371,210.004C208.942,210.433 208.471,210.647 207.956,210.647M135.897,130.353C135.897,133.27 134.911,135.715 132.938,137.688C130.965,139.661 128.52,140.647 125.603,140.647C122.686,140.647 120.242,139.661 118.269,137.688C116.295,135.715 115.309,133.27 115.309,130.353C115.309,127.437 116.295,124.992 118.269,123.019C120.242,121.046 122.686,120.059 125.603,120.059C128.52,120.059 130.965,121.046 132.938,123.019C134.911,124.992 135.897,127.437 135.897,130.353M181.191,130.353C181.191,133.27 180.205,135.715 178.232,137.688C176.259,139.661 173.814,140.647 170.897,140.647C167.98,140.647 165.536,139.661 163.563,137.688C161.59,135.715 160.603,133.27 160.603,130.353C160.603,127.437 161.59,124.992 163.563,123.019C165.536,121.046 167.98,120.059 170.897,120.059C173.814,120.059 176.259,121.046 178.232,123.019C180.205,124.992 181.191,127.437 181.191,130.353M90.603,171.53C90.603,174.447 89.617,176.891 87.643,178.864C85.67,180.837 83.226,181.824 80.309,181.824C77.392,181.824 74.947,180.837 72.974,178.864C71.001,176.891 70.015,174.447 70.015,171.53C70.015,168.613 71.001,166.168 72.974,164.195C74.947,162.222 77.392,161.236 80.309,161.236C83.226,161.236 85.67,162.222 87.643,164.195C89.617,166.168 90.603,168.613 90.603,171.53M135.897,171.53C135.897,174.447 134.911,176.891 132.938,178.864C130.965,180.837 128.52,181.824 125.603,181.824C122.686,181.824 120.242,180.837 118.269,178.864C116.295,176.891 115.309,174.447 115.309,171.53C115.309,168.613 116.295,166.168 118.269,164.195C120.242,162.222 122.686,161.236 125.603,161.236C128.52,161.236 130.965,162.222 132.938,164.195C134.911,166.168 135.897,168.613 135.897,171.53M181.191,171.53C181.191,174.447 180.205,176.891 178.232,178.864C176.259,180.837 173.814,181.824 170.897,181.824C167.98,181.824 165.536,180.837 163.563,178.864C161.59,176.891 160.603,174.447 160.603,171.53C160.603,168.613 161.59,166.168 163.563,164.195C165.536,162.222 167.98,161.236 170.897,161.236C173.814,161.236 176.259,162.222 178.232,164.195C180.205,166.168 181.191,168.613 181.191,171.53"/>
</svg>
</f:case>
<f:case value="toggle">
<svg viewBox="0 0 184 185" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M92,0C41.2,0 0,41.2 0,92.1C0,143 41.2,184.1 92,184.1C142.8,184.1 184,142.9 184,92.1C184,41.3 142.8,0 92,0ZM92,173.1C47.3,173.1 11,136.8 11,92.1C11,47.4 47.3,11.1 92,11.1C136.7,11.1 173,47.4 173,92.1C173,136.8 136.7,173.1 92,173.1Z"/>
<path d="M134.2,92.1C134.2,93.6 133.7,95 132.6,96C131.5,97.1 130.3,97.6 128.7,97.6L55.3,97.6C53.8,97.6 52.4,97.1 51.4,96C50.3,94.9 49.8,93.7 49.8,92.1C49.8,90.5 50.3,89.2 51.4,88.2C52.5,87.1 53.7,86.6 55.3,86.6L128.6,86.6C130.1,86.6 131.5,87.1 132.5,88.2C133.6,89.3 134.1,90.5 134.1,92.1"/>
</g>
<g class="group-[.toggle-less]:hidden">
<path d="M97,128.7C97,130.2 96.5,131.6 95.4,132.6C94.3,133.7 93.1,134.2 91.5,134.2C89.9,134.2 88.6,133.7 87.6,132.6C86.5,131.5 86,130.3 86,128.7L86,55.4C86,53.9 86.5,52.5 87.6,51.5C88.7,50.4 89.9,49.9 91.5,49.9C93.1,49.9 94.4,50.4 95.4,51.5C96.5,52.6 97,53.8 97,55.4L97,128.7Z"/>
</g>
</svg>
</f:case>
<f:defaultCase>
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg" stroke="none" fill="currentColor">
<g>
<path d="M38.271,44.944C37.617,45.598 37.126,46.294 36.799,47.03C36.472,47.766 36.308,48.625 36.308,49.606L36.308,214.504C36.308,216.14 36.88,217.53 38.026,218.675C39.171,219.82 40.561,220.393 42.197,220.393C43.833,220.393 45.224,219.82 46.369,218.675C47.514,217.53 48.086,216.14 48.086,214.504L48.086,170.089C61.828,158.965 74.874,154.957 87.225,158.066C99.576,161.174 112.458,166 125.873,172.543C133.889,176.469 142.15,180.191 150.656,183.708C159.163,187.225 167.915,188.984 176.912,188.984C183.62,188.984 190.449,187.716 197.402,185.18C204.355,182.645 211.511,178.187 218.873,171.807C219.364,171.316 219.814,170.662 220.223,169.844C220.632,169.026 220.836,168.208 220.836,167.39L220.836,49.606C220.836,47.97 220.263,46.58 219.118,45.435C217.973,44.29 216.583,43.717 214.947,43.717C214.129,43.717 213.393,43.84 212.738,44.085C212.084,44.331 211.511,44.617 211.021,44.944C196.788,57.377 183.374,62.08 170.778,59.053C158.182,56.027 145.013,51.079 131.271,44.208C124.4,40.772 117.284,37.501 109.923,34.393C102.561,31.284 95.036,29.28 87.348,28.381C79.659,27.481 71.725,28.176 63.545,30.466C55.366,32.757 46.941,37.583 38.271,44.944M209.058,164.691C195.316,175.815 182.27,179.823 169.919,176.715C157.568,173.607 144.686,168.699 131.271,161.992C125.055,159.047 118.675,156.103 112.131,153.158C105.424,150.213 98.635,148.128 91.765,146.901C84.894,145.674 77.778,145.551 70.416,146.533C63.218,147.678 55.775,150.704 48.086,155.612L48.086,52.305C61.828,41.018 74.874,36.928 87.225,40.036C99.576,43.145 112.458,48.052 125.873,54.759C132.089,57.868 138.469,60.894 145.013,63.839C151.72,66.62 158.509,68.664 165.379,69.973C172.25,71.282 179.366,71.364 186.728,70.218C193.926,69.073 201.369,66.129 209.058,61.385L209.058,164.691Z"/>
</g>
</svg>
</f:defaultCase>
</f:switch>
</f:section>
</html>
@@ -0,0 +1,11 @@
<html data-namespace-typo3-fluid="true" lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:layout name="Page/Travelinfo"/>
<f:section name="Content">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '{data.uid}', colPos: '0'}" />
</f:section>
</html>
@@ -0,0 +1,11 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
<f:layout name="Default"/>
<f:section name="Main">
<f:render partial="Travelinfo" section="Main" arguments="{_all}"/>
</f:section>
</html>
@@ -0,0 +1,11 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers"
xmlns:ep="http://typo3.org/ns/EP/EpTheme/ViewHelpers">
<f:layout name="Default"/>
<f:section name="Main">
<f:render partial="Travelinfo" section="Main" arguments="{_all}"/>
</f:section>
</html>